• PORTADA
    • Últimas noticias
    • España
      • Andalucía
      • Aragón
      • Canarias
      • Castilla y León
      • Castilla-La Mancha
      • Cataluña
      • Comunidad Valenciana
      • Madrid
      • Galicia
      • País Vasco
    • OKBaleares
    • Navarra.com
    • Opinión
    • Investigación
    • Economía
      • Empresas
      • Consumo
      • Empleo
    • Sociedad
    • Metabolic
    • Talent24H
    • Techy
    • Diario Madridista
      • Últimas noticias
      • Real Madrid
    • Deportes
      • Fútbol
      • Atlético de Madrid
      • Barcelona
      • Champions League
      • Tenis
      • Fórmula 1
    • Mundial 2026
    • Sucesos
    • Internacional
    • Cool
      • Actualidad
      • Belleza
      • Casa Real
      • Famosos
      • Moda
      • Lifestyle
      • Televisión
    • HappyFM
    • Cine y Series
    • OKMotor
    • OKSalud
    • OKGreen
    • Curiosidades
    • ESPECIALES
      • Recetas
      • ¿Cómo se hace?
      • Religión
      • Mascotas
      • Bebés
      • Tecnología
      • Naturaleza
      • Educación
      • Historia
      • Ciencia
      • Listas
      • Gastronomía
      • Historia
      • Horóscopo
    • OKPlanes
    • OKCLUB
    • OkShopping
    • Lotería
    • SER PADRES
    • MIA REVISTA
    • Muy interesante
Destacados:
  • Marroquíes detenidos Ceuta
  • Cócteles molotov Ceuta
  • Protestas Ceuta
  • Carlos Espinosa de los Monteros
  • Explosivos caseros inmigrantes
  • ‘Consulado móvil’ Ley de Nietos
  • Ataques playa de Palma
  • Audiencia Nacional PP
  • Playa del Trampolín
  • Pateras de inmigrantes Canarias
  • Liderazgo aceite de oliva
  • Detenidos futbolistas Mallorca
  • Caída Pogacar
  • Precio gasolina hoy
  • Alineación Real Madrid
  • Horario Real Madrid – Málaga
  • Horario Rafa Jódar – Kokkinakis
  • Horario y dónde ver Alcaraz
  • Horario toros Feria Bilbao 2026
  • Horario MotoGP Aragón
  • La Vuelta España hoy
  • Horario Sevilla – Atlético de Madrid
  • Últimas noticias
Más

    El sitio de los inconformistas

    29 Ago 2026
    Actualizado 22:50 CET
    INICIAR SESIÓN
    Es Noticia
    • Llevar una MONEDA de 50 céntimos en el BOLSILLO
    • PLAGA de PULPOS en Reino Unido
    • ADVERTENCIA de los BOMBEROS sobre los eléctricos de noche
    • Miguel INDURAÍN reflexiona sobre la VUELTA CICLISTA
    • El mejor COLCHÓN TÉRMICO para una vivienda
    • La LECCIÓN de SANCHO PANZA sobre la humildad
    • La REFLEXIÓN de LUTHER KING sobre el aprendizaje
    • MEZCLA de bicarbonato, vinagre y limón
    • Las CABAÑUELAS de JORGE REY dictan el tiempo de septiembre
    • La PSICOLOGÍA aclara la ventaja de la generación del baby boom
    • La PLANTA exterior que mejor AGUANTA el sol
    • Llevar el COCHE sucio qué significa según la PSICOLOGÍA
    • La mezcla de CEMENTO y JABÓN para los ALBAÑILES
    • ALARMANTE la escasez de PULPO en Galicia
    • La FRASE de EINSTEIN sobre las relaciones sentimentales
    • Qué dicen los DERMATÓLOGOS de la crema azul de NIVEA
    • EXPERTOS en QUESOS explican dónde hay que GUARDARLO
    • La REFLEXIÓN de SAN AGUSTÍN
    • PEZ icóno gastronómico de Galicia
    • La REFLEXIÓN de un experto FINANCIERO sobre el éxito
    • Los VETERINARIOS alertan a quienes tienen dos gatos

    Okdiario

    • España
    • Economía
    • Deportes
    • Investigación
    • Cool
    • Mundial
    • Opinión
    • Sociedad
    • Diario Madridista
    • Una ONG alemana instala un puesto en la playa del Trampolín en Ceuta para regalar móviles y cargadores a los invasores
        • España
        • España

      Una ONG alemana instala un puesto en la playa del Trampolín en Ceuta para regalar móviles y cargadores a los invasores

      • Carmen Villarrubia y Alejandro Fernández
      • Enviados especiales
      • Ceuta
      • 2026-08-29 19:06
    • Identifican a miembros de una ONG por repartir explosivos caseros a los inmigrantes ilegales de Ceuta
        • España
        • España

      La Policía identifica a los activistas de No Name Kitchen como la ONG que repartió cócteles molotov entre los invasores

      Varios miembros de la ONG No Name Kitchen han sido identificados por repartir artefactos explosivos caseros entre los inmigrantes llegados a Ceuta a finales de julio. Las identificaciones se producen después de detectarse compras masivas de aguarrás y papel de aluminio en supermercados, productos que se introducen en botellas de plástico para provocar una deflagración y liberar gases.
      • Charo Miñano
      • 2026-08-29 18:59
    • Centenares de ceutíes vuelven a las calles en una protesta improvisada al grito de ¡Ceuta unida jamás será vencida!
        • España
        • España

      Centenares de ceutíes vuelven a las calles en una protesta improvisada al grito de "¡Ceuta unida jamás será vencida!"

      • Neila Gallego
      • 2026-08-29 22:09
    • CjxzdHlsZT4KLmNkLXhvM3B2IC5saXZlLWNhcm91c2VsewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIHdpZHRoOjEwMCU7CiAgbWF4LXdpZHRoOjk2MHB4OwogIGhlaWdodDoxNzBweDsKICBib3JkZXItcmFkaXVzOjZweDsKICBvdmVyZmxvdzpoaWRkZW47CiAgYmFja2dyb3VuZDojMDIwYjFhOwogIGNvbG9yOiNmZmY7CiAgZm9udC1zaXplOjEycHg7Cn0KQG1lZGlhIChtYXgtd2lkdGg6NzY4cHgpewogIC5jZC14bzNwdiAubGl2ZS1jYXJvdXNlbHsKICAgIG1heC13aWR0aDoxMDAlOwogICAgaGVpZ2h0OjE5MHB4OwogIH0KfQouY2QteG8zcHYgLmxpdmUtYmd7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgaW5zZXQ6MDsKICBvdmVyZmxvdzpoaWRkZW47Cn0KLmNkLXhvM3B2IC5saXZlLWJnIGltZywKLmNkLXhvM3B2IC5saXZlLWJnIHZpZGVvewogIHdpZHRoOjEwMCU7CiAgaGVpZ2h0OjEwMCU7CiAgb2JqZWN0LWZpdDpjb3ZlcjsKICBkaXNwbGF5OmJsb2NrOwp9Ci5jZC14bzNwdiAubGl2ZS1iZy1wbGFjZWhvbGRlcnsKICB3aWR0aDoxMDAlOwogIGhlaWdodDoxMDAlOwogIGJhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAxMCUgMjAlLCAjMjgzZTUxIDAsICMwYTIzNDIgNDAlLCAjMDAwIDEwMCUpOwp9Ci5jZC14bzNwdiAubGl2ZS1iZy1zbGlkZXJ7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgaW5zZXQ6MDsKfQouY2QteG8zcHYgLmxpdmUtYmctc2xpZGVyIGltZ3sKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBpbnNldDowOwogIHdpZHRoOjEwMCU7CiAgaGVpZ2h0OjEwMCU7CiAgb2JqZWN0LWZpdDpjb3ZlcjsKICBvcGFjaXR5OjA7CiAgdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgY2VudGVyOwogIGFuaW1hdGlvbjpjZC14bzNwdi1rZW5idXJucyAxMnMgZWFzZS1pbi1vdXQgaW5maW5pdGUgYWx0ZXJuYXRlOwogIHRyYW5zaXRpb246b3BhY2l0eSAuOHMgZWFzZS1pbi1vdXQ7Cn0KLmNkLXhvM3B2IC5saXZlLWJnLXNsaWRlciBpbWcuaXMtYWN0aXZle29wYWNpdHk6MTt9CkBrZXlmcmFtZXMgY2QteG8zcHYta2VuYnVybnN7CiAgMCV7dHJhbnNmb3JtOnNjYWxlKDEuMDgpIHRyYW5zbGF0ZTNkKDAsMCwwKTt9CiAgNTAle3RyYW5zZm9ybTpzY2FsZSgxLjE0KSB0cmFuc2xhdGUzZCgyJSwtMiUsMCk7fQogIDEwMCV7dHJhbnNmb3JtOnNjYWxlKDEuMikgdHJhbnNsYXRlM2QoLTIlLDIlLDApO30KfQouY2QteG8zcHYgLmxpdmUtYmctLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQpAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgLmNkLXhvM3B2IC5saXZlLWJnLS1kZXNre2Rpc3BsYXk6bm9uZTt9CiAgLmNkLXhvM3B2IC5saXZlLWJnLS1tb2JpbGV7ZGlzcGxheTpibG9jazt9Cn0KLmNkLXhvM3B2IC5saXZlLWJnLXZlaWx7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgaW5zZXQ6MDsKICBiYWNrZ3JvdW5kOnJnYig0LDEyLDMyKTsKICBvcGFjaXR5OjA7CiAgcG9pbnRlci1ldmVudHM6bm9uZTsKfQpAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgLmNkLXhvM3B2IC5saXZlLWJnLXZlaWx7b3BhY2l0eTowO30KfQouY2QteG8zcHYgLmxpdmUtYmctc2hhZGV7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgaW5zZXQ6MDsKICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgwZGVnLAogICAgcmdiYSg0LDEyLDMyLDAuOTUpIDAlLAogICAgcmdiYSg0LDEyLDMyLDAuNSkgNTAlLAogICAgcmdiYSg0LDEyLDMyLDApIDEwMCUpOwogIHBvaW50ZXItZXZlbnRzOm5vbmU7Cn0KLmNkLXhvM3B2IC5saXZlLWlubmVyewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIHotaW5kZXg6MTsKICBkaXNwbGF5OmZsZXg7CiAgZmxleC1kaXJlY3Rpb246Y29sdW1uOwogIGhlaWdodDoxMDAlOwp9Ci5jZC14bzNwdiAubGl2ZS10b3B7CiAgZGlzcGxheTpmbGV4OwogIGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOwogIGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7CiAgZ2FwOjEycHg7CiAgcGFkZGluZzogN3B4Owp9Ci5jZC14bzNwdiAubGl2ZS10YWdzewogIGRpc3BsYXk6ZmxleDsKICBmbGV4LXdyYXA6d3JhcDsKICBnYXA6NHB4OwogIGFsaWduLWl0ZW1zOmNlbnRlcjsKfQouY2QteG8zcHYgLnRhZy1saXZlewogIGJhY2tncm91bmQ6I2U1MjQyYTsKICBjb2xvcjojZmZmOwogIHBhZGRpbmc6MnB4IDVweCAycHggNXB4OwogIGJvcmRlci1yYWRpdXM6M3B4OwogIGZvbnQtZmFtaWx5OiAnYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQnLCBzYW5zLXNlcmlmOwogIGZvbnQtc2l6ZToxMnB4OwogIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICBsZXR0ZXItc3BhY2luZzouMDRlbTsKfQouY2QteG8zcHYgLnRhZy10b3BpY3sKICBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4yKTsKICBjb2xvcjojZmZmOwogIHBhZGRpbmc6MnB4IDVweCAxcHggNXB4OwogIGJvcmRlci1yYWRpdXM6M3B4OwogIGZvbnQtZmFtaWx5OiAnYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQnLCBzYW5zLXNlcmlmOwogIGZvbnQtc2l6ZToxMnB4OwogIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICBsZXR0ZXItc3BhY2luZzoxcHg7Cn0KLmNkLXhvM3B2IC5saXZlLXRvcC1yaWdodHsKICBkaXNwbGF5OmZsZXg7CiAgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsKICBnYXA6MTBweDsKfQouY2QteG8zcHYgLmxpdmUtc3BvbnNvcnsKICBkaXNwbGF5OmZsZXg7CiAgYWxpZ24taXRlbXM6Y2VudGVyOwogIGdhcDowcHg7CiAgZm9udC1zaXplOjEwcHg7CiAgZm9udC13ZWlnaHQ6NDAwOwp9Ci5jZC14bzNwdiAubGl2ZS1zcG9uc29yLWxhYmVsewogIHdoaXRlLXNwYWNlOm5vd3JhcDsKICBvcGFjaXR5Oi43OwogIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOwp9Ci5jZC14bzNwdiAubGl2ZS1zcG9uc29yLWxvZ29zewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIHdpZHRoOjEwMHB4OwogIGhlaWdodDozNXB4OwogIGJvcmRlci1yYWRpdXM6NHB4OwogIG92ZXJmbG93OmhpZGRlbjsKICBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4wKTsKICBmbGV4LXNocmluazowOwp9Ci5jZC14bzNwdiAubGl2ZS1zcG9uc29yLWxvZ29zIGltZ3sKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBpbnNldDowOwogIG1hcmdpbjphdXRvOwogIG1heC13aWR0aDoxMDAlOwogIG1heC1oZWlnaHQ6MTAwJTsKICBvYmplY3QtZml0OmNvbnRhaW47CiAgb3BhY2l0eTowOwogIHRyYW5zaXRpb246b3BhY2l0eSAuN3MgZWFzZS1pbi1vdXQ7Cn0KLmNkLXhvM3B2IC5saXZlLXNwb25zb3ItbG9nb3MgaW1nLmlzLWFjdGl2ZXtvcGFjaXR5OjE7fQouY2QteG8zcHYgLmxpdmUtYXJyb3dzewogIGRpc3BsYXk6ZmxleDsKICBnYXA6NnB4Owp9Ci5jZC14bzNwdiBidXR0b246Zm9jdXMge2JhY2tncm91bmQ6IHJnYigyNTUgMjU1IDI1NSAvIDIwJSkgIWltcG9ydGFudDt9Ci5jZC14bzNwdiAuYXJyb3d7CiAgd2lkdGg6MzJweDsKICBoZWlnaHQ6IDMycHg7CiAgYm9yZGVyLXJhZGl1czo1MCU7CiAgYmFja2dyb3VuZDpyZ2IoMjU1IDI1NSAyNTUgLyAyMCUpOwogIGJveC1zaGFkb3c6MCA0cHggMTJweCByZ2IoMCAwIDAgLyAyNSUpOwogIGJvcmRlcjoxcHggc29saWQgI2ZmZjsKICBkaXNwbGF5OmZsZXg7CiAgYWxpZ24taXRlbXM6Y2VudGVyOwogIGp1c3RpZnktY29udGVudDpjZW50ZXI7CiAgY3Vyc29yOnBvaW50ZXI7CiAgdHJhbnNpdGlvbjouMjVzOwogIGNvbG9yOiNmZmY7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKfQouY2QteG8zcHYgLmFycm93OmhvdmVyewogIGJhY2tncm91bmQ6cmdiKDAgMCAwIC8gMjUlKTsKfQouY2QteG8zcHYgLmFycm93OmZvY3VzewogIG91dGxpbmU6MnB4IHNvbGlkICNmZmY7CiAgb3V0bGluZS1vZmZzZXQ6MnB4Owp9Ci5jZC14bzNwdiAuYXJyb3cgc3ZnewogIHdpZHRoOjE2cHg7CiAgaGVpZ2h0OjE2cHg7CiAgZGlzcGxheTpibG9jazsKfQpAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgLmNkLXhvM3B2IC5saXZlLWFycm93c3tkaXNwbGF5Om5vbmU7fQogIC5jZC14bzNwdiAubGl2ZS1zcG9uc29ye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoycHg7fQogIC5jZC14bzNwdiAubGl2ZS1zcG9uc29yLWxhYmVse2Rpc3BsYXk6YmxvY2s7fQogIC5jZC14bzNwdiAubGl2ZS1zcG9uc29yLWxvZ29ze3dpZHRoOjkwcHg7fQp9Ci5jZC14bzNwdiAubGl2ZS10cmFjay13cmFwewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIG1hcmdpbi10b3A6MTBweDsKICBmbGV4OjE7CiAgZGlzcGxheTpmbGV4OwogIGFsaWduLWl0ZW1zOmZsZXgtZW5kOwogIG92ZXJmbG93OmhpZGRlbjsKfQouY2QteG8zcHYgLmxpdmUtdHJhY2stc2Nyb2xsewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIHdpZHRoOjEwMCU7CiAgcGFkZGluZy10b3A6NHB4Owp9Ci5jZC14bzNwdiAubGl2ZS10cmFjay1zY3JvbGw6OmJlZm9yZXsKICBjb250ZW50OiIiOwogIHBvc2l0aW9uOmFic29sdXRlOwogIGxlZnQ6MDsKICByaWdodDowOwogIGJvdHRvbTp2YXIoLS10cmFjay1saW5lLWJvdHRvbSw2NnB4KTsKICBoZWlnaHQ6MXB4OwogIGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjI1KTsKfQouY2QteG8zcHYgLmxpdmUtdHJhY2t7CiAgLS1nYXA6MTZweDsKICBwb3NpdGlvbjpyZWxhdGl2ZTsKICB3aWR0aDoxMDAlOwogIGRpc3BsYXk6ZmxleDsKICBhbGlnbi1pdGVtczpmbGV4LWVuZDsKICBnYXA6dmFyKC0tZ2FwKTsKICBvdmVyZmxvdy14OmF1dG87CiAgc2Nyb2xsLXNuYXAtdHlwZTp4IG1hbmRhdG9yeTsKICBzY3JvbGwtYmVoYXZpb3I6c21vb3RoOwogIHBhZGRpbmctYm90dG9tOjRweDsKICBzY3JvbGxiYXItd2lkdGg6bm9uZTsKfQouY2QteG8zcHYgLmxpdmUtdHJhY2s6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZTt9Ci5jZC14bzNwdiAubmV3cy1jYXJkewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIGZsZXg6MCAwIGF1dG87CiAgc2Nyb2xsLXNuYXAtYWxpZ246c3RhcnQ7CiAgd2lkdGg6Y2FsYygoMTAwJSAtIDMqdmFyKC0tZ2FwKSkvNCk7CiAgY29sb3I6I2ZmZjsKICB0ZXh0LWRlY29yYXRpb246bm9uZTsKICBwYWRkaW5nOiAyMHB4IDAgMTBweCAxMHB4Owp9Ci5jZC14bzNwdiAubmV3cy1jYXJke3dpZHRoOmNhbGMoKDEwMCUgLSAyLjMqdmFyKC0tZ2FwKSkvMy4zKTt9Ci5jZC14bzNwdiAubmV3cy1jYXJkLmhhcy1waG90b3t3aWR0aDpjYWxjKCgxMDAlIC0gMi4zKnZhcigtLWdhcCkpLzMuMyArIDgwcHgpO30KQG1lZGlhIChtYXgtd2lkdGg6NzY4cHgpewogIC5jZC14bzNwdiAubmV3cy1jYXJkewogICAgd2lkdGg6NzUlOwogIH0KfQouY2QteG8zcHYgLm5ld3Mtbm9kZXsKICBkaXNwbGF5OmZsZXg7CiAgYWxpZ24taXRlbXM6Y2VudGVyOwogIGdhcDo1cHg7CiAgbWFyZ2luLWJvdHRvbTo2cHg7CiAgcG9zaXRpb246cmVsYXRpdmU7Cn0KLmNkLXhvM3B2IC5uZXdzLWljb257CiAgcG9zaXRpb246cmVsYXRpdmU7CiAgd2lkdGg6MjBweDsKICBoZWlnaHQ6MjBweDsKICBmbGV4LXNocmluazowOwogIGRpc3BsYXk6ZmxleDsKICBhbGlnbi1pdGVtczpjZW50ZXI7CiAganVzdGlmeS1jb250ZW50OmNlbnRlcjsKfQouY2QteG8zcHYgLm5ld3MtaWNvbjo6YmVmb3JlewogIGNvbnRlbnQ6IiI7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgdG9wOjUwJTsKICBsZWZ0OjUwJTsKICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7CiAgd2lkdGg6OHB4OwogIGhlaWdodDo4cHg7CiAgYm9yZGVyLXJhZGl1czo1MCU7CiAgYmFja2dyb3VuZDojZmZmOwogIGJvcmRlcjo0cHggc29saWQgI2U1MjQyYTsKICBib3gtc2hhZG93OjAgMCAwIDAgcmdiYSgyMjksMzYsNDIsMC42KTsKfQouY2QteG8zcHYgLm5ld3MtaWNvbi5uZXdzLWljb24tLWltZzo6YmVmb3JlewogIHdpZHRoOjEwMCU7CiAgaGVpZ2h0OjEwMCU7CiAgYm9yZGVyLXJhZGl1czo5OTlweDsKICBib3JkZXI6bm9uZTsKICBib3gtc2hhZG93Om5vbmU7CiAgYmFja2dyb3VuZC1zaXplOmNvbnRhaW47CiAgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OwogIGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOwogIGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Cn0KLmNkLXhvM3B2IC5uZXdzLWljb24uaGFzLXJhZGFyOjpiZWZvcmV7CiAgYW5pbWF0aW9uOmNkLXhvM3B2LXJhZGFyUHVsc2UgMS40cyBpbmZpbml0ZTsKfQouY2QteG8zcHYgLm5ld3MtaWNvbi5uZXdzLWljb24tLWltZy5oYXMtcmFkYXI6OmJlZm9yZXsKICBhbmltYXRpb246bm9uZTsKfQouY2QteG8zcHYgLm5ld3MtaWNvbi5uZXdzLWljb24tLWltZy5oYXMtcmFkYXI6OmFmdGVyewogIGNvbnRlbnQ6IiI7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgdG9wOjUwJTsKICBsZWZ0OjUwJTsKICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7CiAgd2lkdGg6MTRweDsKICBoZWlnaHQ6MTRweDsKICBib3JkZXItcmFkaXVzOjUwJTsKICBhbmltYXRpb246Y2QteG8zcHYtcmFkYXJQdWxzZSAxLjRzIGluZmluaXRlOwp9CkBrZXlmcmFtZXMgY2QteG8zcHYtcmFkYXJQdWxzZXsKICAwJXtib3gtc2hhZG93OjAgMCAwIDAgcmdiYSgyMjksMzYsNDIsMC45KTt9CiAgNzAle2JveC1zaGFkb3c6MCAwIDAgMjBweCByZ2JhKDIyOSwzNiw0MiwwKTt9CiAgMTAwJXtib3gtc2hhZG93OjAgMCAwIDAgcmdiYSgyMjksMzYsNDIsMCk7fQp9Ci5jZC14bzNwdiAubmV3cy1tZXRhe3RleHQtYWxpZ246bGVmdDt9CgouY2QteG8zcHYgLm5ld3MtY2FyZHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjhweDt9Ci5jZC14bzNwdiAubmV3cy10ZXh0e2ZsZXg6MTttaW4td2lkdGg6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO30KLmNkLXhvM3B2IC5uZXdzLXBob3RvewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIHdpZHRoOjgwcHg7aGVpZ2h0OjYwcHg7bWFyZ2luLWJvdHRvbTowOwogIG92ZXJmbG93OmhpZGRlbjsKICBib3JkZXItcmFkaXVzOjNweDsKICBmbGV4LXNocmluazowOwp9Ci5jZC14bzNwdiAubmV3cy1waG90byBpbWd7CiAgd2lkdGg6MTAwJTsKICBoZWlnaHQ6MTAwJTsKICBvYmplY3QtZml0OmNvdmVyOwogIGRpc3BsYXk6YmxvY2s7CiAgdHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlOwp9Ci5jZC14bzNwdiAubmV3cy1jYXJkOmhvdmVyIC5uZXdzLXBob3RvIGltZ3sKICBvcGFjaXR5Oi44NTsKfQouY2QteG8zcHYgLm5ld3MtcGhvdG8tcGxheXsKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBib3R0b206NXB4OwogIGxlZnQ6NXB4OwogIHdpZHRoOjIwcHg7CiAgaGVpZ2h0OjIwcHg7CiAgYm9yZGVyLXJhZGl1czoycHg7CiAgZGlzcGxheTppbmxpbmUtZ3JpZDsKICBwbGFjZS1pdGVtczpjZW50ZXI7CiAgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNyk7CiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTgpOwogIHBhZGRpbmc6MDsKICBjdXJzb3I6cG9pbnRlcjsKICB6LWluZGV4OjI7CiAgYW5pbWF0aW9uOmNkLXhvM3B2LXBsYXktYmxpbmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLmNkLXhvM3B2IC5uZXdzLXBob3RvLXBsYXk6OmJlZm9yZXsKICBjb250ZW50OiIiOwogIGRpc3BsYXk6YmxvY2s7CiAgd2lkdGg6MDsKICBoZWlnaHQ6MDsKICBib3JkZXItbGVmdDo1cHggc29saWQgI2ZmZjsKICBib3JkZXItdG9wOjRweCBzb2xpZCB0cmFuc3BhcmVudDsKICBib3JkZXItYm90dG9tOjRweCBzb2xpZCB0cmFuc3BhcmVudDsKICBtYXJnaW4tbGVmdDoycHg7Cn0KQGtleWZyYW1lcyBjZC14bzNwdi1wbGF5LWJsaW5rewogIDAlLDEwMCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNyk7fQogIDUwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwxNjUsMjU1LDAuOSk7fQp9CkBtZWRpYSAobWF4LXdpZHRoOjc2OHB4KXsKICAuY2QteG8zcHYgLm5ld3MtcGhvdG97ZGlzcGxheTpub25lO30KICAuY2QteG8zcHYgLm5ld3MtcGhvdG8tcGxheXtsZWZ0OmF1dG87cmlnaHQ6NXB4O30KfQouY2QteG8zcHYgLm5ld3MtdGltZSB7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgZm9udC1zaXplOiAxMXB4OwogICAgY29sb3I6ICNmZmY7CiAgICBiYWNrZ3JvdW5kOiAjMGQxODIyM2Q7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBwYWRkaW5nOiAxcHggNXB4OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwZGVnIDAlIDEwMCUgLyA0MCUpOwogICAgZm9udC1mYW1pbHk6ICdiZWJhcy1uZXVlLXByby1leHBhbmRlZCcsIHNhbnMtc2VyaWY7CiAgICBsZXR0ZXItc3BhY2luZzogMXB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQouY2QteG8zcHYgLm5ld3MtdGltZS1kYXl7CiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4Owp9Ci5jZC14bzNwdiAubmV3cy1jYXJkOmZpcnN0LWNoaWxkIC5uZXdzLXRpbWV7CiAgY29sb3I6ICNmZmY7CiAgYmFja2dyb3VuZDogIzBkMTgyMjNkOwogIGJvcmRlcjogMXB4IHNvbGlkICNlNTI0MmE7Cn0KLmNkLXhvM3B2IC5uZXdzLXRpdGxlIHsKICAgIGZvbnQtZmFtaWx5OiAnYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQnLCBzYW5zLXNlcmlmOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBjb2xvcjogI2ZmZjsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyOwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIGxldHRlci1zcGFjaW5nOiAuMnB4OwogICAgbWluLWhlaWdodDogMi42ZW07Cn0KLmNkLXhvM3B2IC5uZXdzLXRpdGxlOmhvdmVyIHsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwp9Ci5jZC14bzNwdiAubmV3cy1jYXJkW2FyaWEtZGlzYWJsZWQ9InRydWUiXXsKICBjdXJzb3I6ZGVmYXVsdDsKfQouY2QteG8zcHYgLm5ld3MtY2FyZFthcmlhLWRpc2FibGVkPSJ0cnVlIl0gLm5ld3MtdGl0bGU6aG92ZXJ7CiAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7Cn0KLmNkLXhvM3B2IC5uZXdzLWNhcmRbYXJpYS1kaXNhYmxlZD0idHJ1ZSJdOmhvdmVyIC5uZXdzLXBob3RvIGltZ3sKICBvcGFjaXR5OjE7Cn0KLmNkLXhvM3B2IC5uZXdzLWNhcmRbYXJpYS1kaXNhYmxlZD0idHJ1ZSJdIC5uZXdzLXBob3RvLXBsYXl7CiAgY3Vyc29yOmRlZmF1bHQ7Cn0KCkBtZWRpYSAobWF4LXdpZHRoOjc2OHB4KXsKICAuY2QteG8zcHYgLm5ld3MtY2FyZDpub3QoW2FyaWEtZGlzYWJsZWQ9InRydWUiXSkgLm5ld3MtdGl0bGV7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9CiAgLmNkLXhvM3B2IC5uZXdzLXRpdGxle2ZvbnQtc2l6ZToxOXB4Oy13ZWJraXQtbGluZS1jbGFtcDozO2xpbmUtY2xhbXA6MzttaW4taGVpZ2h0OjMuOWVtO30KICAuY2QteG8zcHYgLm5ld3MtdGltZXtmb250LXNpemU6MTRweDt9CiAgLmNkLXhvM3B2IC5uZXdzLWljb257d2lkdGg6MjVweDtoZWlnaHQ6MjVweDt9CiAgLmNkLXhvM3B2IC5uZXdzLWljb246bm90KC5uZXdzLWljb24tLWltZyk6OmJlZm9yZXt3aWR0aDoxMnB4O2hlaWdodDoxMnB4O2JvcmRlcjo2cHggc29saWQgI2U1MjQyYTt9CiAgLmNkLXhvM3B2IC5saXZlLWJnLXNoYWRle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDBkZWcscmdiYSg0LDEyLDMyLDAuOTIpIDAlLHJnYmEoNCwxMiwzMiwwLjUpIDI1JSxyZ2JhKDQsMTIsMzIsMCkgNTAlKTt9Cn0KLyogPT09PT0gTk9USUNJQSBERVNUQUNBREEgKGV4cG9ydGFkbykgPT09PT0gKi8KLmNkLXhvM3B2IC5saXZlLWZlYXR1cmVkewogIGRpc3BsYXk6bm9uZTsKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBsZWZ0OjIwcHg7CiAgcmlnaHQ6MjBweDsKICB0b3A6NDZweDsKICBib3R0b206MDsKICBmbGV4LWRpcmVjdGlvbjpjb2x1bW47CiAgYWxpZ24taXRlbXM6Y2VudGVyOwogIGp1c3RpZnktY29udGVudDpjZW50ZXI7CiAgcGFkZGluZy1ib3R0b206MTMwcHg7CiAgcG9pbnRlci1ldmVudHM6bm9uZTsKICB0ZXh0LWFsaWduOmNlbnRlcjsKICBnYXA6MDsKICB6LWluZGV4OjU7Cn0KCkBtZWRpYSAobWF4LXdpZHRoOjc2OHB4KXsKICAuY2QteG8zcHYgLmxpdmUtZmVhdHVyZWR7ZGlzcGxheTpub25lO30KfQouY2QteG8zcHYgLmxpdmUtZmVhdHVyZWQtY291bnRlcnsKICBmb250LWZhbWlseTonYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQnLHNhbnMtc2VyaWY7CiAgZm9udC13ZWlnaHQ6NzAwOwogIGZvbnQtc2l6ZTo0MnB4OwogIGNvbG9yOiNmZmY7CiAgbGV0dGVyLXNwYWNpbmc6MnB4OwogIGxpbmUtaGVpZ2h0OjE7CiAgb3JkZXI6MTsKfQouY2QteG8zcHYgLmxpdmUtZmVhdHVyZWQtbmV3c3sKICBkaXNwbGF5OmZsZXg7CiAgZmxleC1kaXJlY3Rpb246cm93OwogIGFsaWduLWl0ZW1zOmNlbnRlcjsKICBnYXA6MTBweDsKICBvcmRlcjoyOwp9CkBtZWRpYSAobWF4LXdpZHRoOjc2OHB4KXsKICAuY2QteG8zcHYgLmxpdmUtZmVhdHVyZWQtY291bnRlcntvcmRlcjoxO21hcmdpbi1ib3R0b206OHB4O21hcmdpbi10b3A6MDt9CiAgLmNkLXhvM3B2IC5saXZlLWZlYXR1cmVkLW5ld3N7b3JkZXI6MjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7fQp9Ci5jZC14bzNwdiAubGl2ZS1mZWF0dXJlZC1pY29uewogIHdpZHRoOjM2cHg7CiAgaGVpZ2h0OjM2cHg7CiAgZmxleC1zaHJpbms6MDsKICBwb3NpdGlvbjpyZWxhdGl2ZTsKICBkaXNwbGF5OmZsZXg7CiAgYWxpZ24taXRlbXM6Y2VudGVyOwogIGp1c3RpZnktY29udGVudDpjZW50ZXI7Cn0KLmNkLXhvM3B2IC5saXZlLWZlYXR1cmVkLWljb246OmJlZm9yZXsKICBjb250ZW50OiIiOwogIHBvc2l0aW9uOmFic29sdXRlOwogIHRvcDo1MCU7CiAgbGVmdDo1MCU7CiAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpOwogIHdpZHRoOjE0cHg7CiAgaGVpZ2h0OjE0cHg7CiAgYm9yZGVyLXJhZGl1czo1MCU7CiAgYmFja2dyb3VuZDojZmZmOwogIGJvcmRlcjo2cHggc29saWQgI2U1MjQyYTsKICBhbmltYXRpb246Y2QteG8zcHYtcmFkYXJQdWxzZSAxLjRzIGluZmluaXRlOwp9Ci5jZC14bzNwdiAubGl2ZS1mZWF0dXJlZC1pY29uLm5ld3MtaWNvbi0taW1nOjpiZWZvcmV7CiAgd2lkdGg6MTAwJTsKICBoZWlnaHQ6MTAwJTsKICBib3JkZXItcmFkaXVzOjk5OXB4OwogIGJvcmRlcjpub25lOwogIGJhY2tncm91bmQtc2l6ZTpjb250YWluOwogIGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsKICBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OwogIGFuaW1hdGlvbjpub25lOwp9Ci5jZC14bzNwdiAubGl2ZS1mZWF0dXJlZC1pY29uLm5ld3MtaWNvbi0taW1nOjphZnRlcnsKICBjb250ZW50OiIiOwogIHBvc2l0aW9uOmFic29sdXRlOwogIHRvcDo1MCU7CiAgbGVmdDo1MCU7CiAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpOwogIHdpZHRoOjIycHg7CiAgaGVpZ2h0OjIycHg7CiAgYm9yZGVyLXJhZGl1czo1MCU7CiAgYW5pbWF0aW9uOmNkLXhvM3B2LXJhZGFyUHVsc2UgMS40cyBpbmZpbml0ZTsKfQouY2QteG8zcHYgLmxpdmUtZmVhdHVyZWQtdGltZXsKICBmb250LWZhbWlseTonYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQnLHNhbnMtc2VyaWY7CiAgZm9udC1zaXplOjEycHg7CiAgbGV0dGVyLXNwYWNpbmc6MXB4OwogIGJhY2tncm91bmQtY29sb3I6I2U1MjQyYTsKICBjb2xvcjojZmZmOwogIHBhZGRpbmc6MXB4IDVweCAycHggNXB4OwogIGJvcmRlci1yYWRpdXM6M3B4OwogIHdoaXRlLXNwYWNlOm5vd3JhcDsKfQouY2QteG8zcHYgLmxpdmUtZmVhdHVyZWQtdGl0bGV7CiAgZm9udC1mYW1pbHk6J2JlYmFzLW5ldWUtcHJvLWV4cGFuZGVkJyxzYW5zLXNlcmlmOwogIGZvbnQtd2VpZ2h0OjcwMDsKICBmb250LXNpemU6MjRweDsKICBsaW5lLWhlaWdodDozMHB4OwogIGNvbG9yOiNmZmY7CiAgb3ZlcmZsb3c6aGlkZGVuOwogIHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7CiAgd2hpdGUtc3BhY2U6bm93cmFwOwogIG1heC13aWR0aDo2MDBweDsKfQpAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgLmNkLXhvM3B2IC5saXZlLWZlYXR1cmVkLXRpdGxlewogICAgZm9udC1zaXplOjMwcHg7CiAgICBsaW5lLWhlaWdodDozMHB4OwogICAgd2hpdGUtc3BhY2U6bm9ybWFsOwogICAgdGV4dC1hbGlnbjpjZW50ZXI7CiAgICBtYXgtd2lkdGg6MzIwcHg7CiAgfQogICAgCn0KLmNkLXhvM3B2IC5saXZlLWZlYXR1cmVkLXRpdGxlIGF7Y29sb3I6aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246bm9uZTtwb2ludGVyLWV2ZW50czphdXRvO30KLmNkLXhvM3B2IC5saXZlLWZlYXR1cmVkLXRpdGxlIGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9CkBtZWRpYSAobWF4LXdpZHRoOjc2OHB4KXsKICAuY2QteG8zcHYgLmxpdmUtZmVhdHVyZWQtdGl0bGUgYXt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30KfQouY2QteG8zcHYgLmxpdmUtZmVhdHVyZWR7ZGlzcGxheTpub25lIWltcG9ydGFudDt9Ci8qID09PT09IFJFQUNDSU9ORVMgKGFsdGVybmFuIGNvbiBsYSBOb3RpY2lhIGRlc3RhY2FkYSBlbiBlbCBtaXNtbyBodWVjbykgPT09PT0gKi8KLmNkLXhvM3B2IC5yZWFjdGlvbnMtb3ZlcmxheXsKICBkaXNwbGF5Om5vbmU7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgbGVmdDoyMHB4OwogIHJpZ2h0OjIwcHg7CiAgdG9wOjQ2cHg7CiAgYm90dG9tOjA7CiAgZmxleC1kaXJlY3Rpb246Y29sdW1uOwogIGFsaWduLWl0ZW1zOmNlbnRlcjsKICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOwogIHBhZGRpbmctYm90dG9tOjEzMHB4OwogIHBvaW50ZXItZXZlbnRzOm5vbmU7CiAgdGV4dC1hbGlnbjpjZW50ZXI7CiAgb3BhY2l0eTowOwogIHRyYW5zaXRpb246b3BhY2l0eSAuNXMgZWFzZTsKICB6LWluZGV4OjU7Cn0KCkBtZWRpYSAobWF4LXdpZHRoOjc2OHB4KXsKICAuY2QteG8zcHYgLnJlYWN0aW9ucy1vdmVybGF5e2Rpc3BsYXk6bm9uZTt9Cn0KLmNkLXhvM3B2IC5yZWFjdGlvbnMtb3ZlcmxheS5jZW50ZXItdmlzaWJsZXtvcGFjaXR5OjE7fQouY2QteG8zcHYgLnJlYWN0aW9uLWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDttYXgtd2lkdGg6ODYwcHg7fQouY2QteG8zcHYgLnJlYWN0aW9uLWltZ3t3aWR0aDo4MHB4O2hlaWdodDo4MHB4O2JvcmRlci1yYWRpdXM6NTAlO292ZXJmbG93OmhpZGRlbjtmbGV4LXNocmluazowO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMjUpO30KLmNkLXhvM3B2IC5yZWFjdGlvbi1pbWcgaW1ne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb3ZlcjtkaXNwbGF5OmJsb2NrO30KLmNkLXhvM3B2IC5yZWFjdGlvbi10ZXh0ewogIGZvbnQtZmFtaWx5OidiZWJhcy1uZXVlLXByby1leHBhbmRlZCcsc2Fucy1zZXJpZjsKICBmb250LXdlaWdodDo3MDA7CiAgZm9udC1zaXplOjI0cHg7CiAgbGluZS1oZWlnaHQ6MzBweDsKICBjb2xvcjojZmZmOwogIG92ZXJmbG93OmhpZGRlbjsKICB0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOwogIHdoaXRlLXNwYWNlOm5vd3JhcDsKICBtYXgtd2lkdGg6NjAwcHg7Cn0KLmNkLXhvM3B2IC5yZWFjdGlvbi10ZXh0IC5yeC1oaXtjb2xvcjojRkNCRTExO30KLmNkLXhvM3B2IC5yZWFjdGlvbi1saW5re2NvbG9yOiNmZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7cG9pbnRlci1ldmVudHM6YXV0bzt9Ci5jZC14bzNwdiAucmVhY3Rpb24tbGluazpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2NvbG9yOiNmZmY7fQpAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgLmNkLXhvM3B2IC5yZWFjdGlvbi1saW5rOm5vdChbaHJlZj0iIyJdKSAucmVhY3Rpb24tdGV4dHt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30KICAuY2QteG8zcHYgLnJlYWN0aW9uLWl0ZW17ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O30KICAuY2QteG8zcHYgLnJlYWN0aW9uLXRleHR7CiAgICBmb250LXNpemU6MzBweDsKICAgIGxpbmUtaGVpZ2h0OjMwcHg7CiAgICB3aGl0ZS1zcGFjZTpub3JtYWw7CiAgICB0ZXh0LWFsaWduOmNlbnRlcjsKICAgIG1heC13aWR0aDozMjBweDsKICB9Cn0KLmNkLXhvM3B2IC5saXZlLWZlYXR1cmVke3RyYW5zaXRpb246b3BhY2l0eSAuNnMgZWFzZTt9Ci8qIE1vZG8gZm9yemFkbyB2aWEgP21vZGU9ZGVza3xtb2JpbGUgLSBzb2JyZXNjcmliZSBlbCBtZWRpYSBxdWVyeSBwYXJhIGZpamFyIGxhIGFsdHVyYSBjb3JyZWN0YSAqLwouY2QteG8zcHZbZGF0YS1tb2RlPSJkZXNrIl0gLmxpdmUtY2Fyb3VzZWx7aGVpZ2h0OjE3MHB4IWltcG9ydGFudDt9Ci5jZC14bzNwdltkYXRhLW1vZGU9ImRlc2siXSAubGl2ZS1hcnJvd3N7ZGlzcGxheTpmbGV4IWltcG9ydGFudDt9Ci5jZC14bzNwdltkYXRhLW1vZGU9ImRlc2siXSAubGl2ZS1iZy12ZWlse29wYWNpdHk6MCFpbXBvcnRhbnQ7fQouY2QteG8zcHZbZGF0YS1tb2RlPSJtb2JpbGUiXSAubGl2ZS1jYXJvdXNlbHtoZWlnaHQ6MTkwcHghaW1wb3J0YW50O30KLmNkLXhvM3B2W2RhdGEtbW9kZT0ibW9iaWxlIl0gLmxpdmUtYXJyb3dze2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7fQouY2QteG8zcHZbZGF0YS1tb2RlPSJtb2JpbGUiXSAubGl2ZS1iZy12ZWlse29wYWNpdHk6MCFpbXBvcnRhbnQ7fQo8L3N0eWxlPgoKPGRpdiBjbGFzcz0iY2QteG8zcHYiPgogIDxzZWN0aW9uIGNsYXNzPSJsaXZlLXNlY3Rpb24iIGFyaWEtbGFiZWw9IkNhcnJ1c2VsIGRlIGRpcmVjdG9zIiBhcmlhLXJvbGVkZXNjcmlwdGlvbj0iY2FycnVzZWwiPgogICAgPGRpdiBjbGFzcz0ibGl2ZS1jYXJvdXNlbCIKICAgICAgICAgZGF0YS1yY3ljbGU9IjEiCiAgICAgICAgIGRhdGEtcm1vZGU9ImludGVybGVhdmUiCiAgICAgICAgIGRhdGEtcmR1cj0iMyIKICAgICAgICAgZGF0YS1yZmR1cj0iNSI+CiAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImxpdmUtYmcgbGl2ZS1iZy0tZGVzayI+CiAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2ludmFzaW9uLWRlLWNldXRhLWZvbmRvLWRlc2stMjAyNjA4MjktMTkzMjA3LTcwMGI3OS5qcGciIGFsdD0iRU4gRElSRUNUTzogaW52YXNp824gZGUgY2V1dGEiIGZldGNocHJpb3JpdHk9ImhpZ2giIGxvYWRpbmc9ImVhZ2VyIiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxpdmUtYmcgbGl2ZS1iZy0tbW9iaWxlIj4KICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEvaW52YXNpb24tZGUtY2V1dGEtZm9uZG8tbW9iaWxlLTIwMjYwODI5LTIwMTUzNy1hOTMzMGIuanBnIiBhbHQ9IkVOIERJUkVDVE86IGludmFzafNuIGRlIGNldXRhIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJsaXZlLWJnLXZlaWwiPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJsaXZlLWJnLXNoYWRlIj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ibGl2ZS1pbm5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGl2ZS10b3AiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGl2ZS10YWdzIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhZy1saXZlIj5FTiBESVJFQ1RPPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFnLXRvcGljIj5pbnZhc2nzbiBkZSBjZXV0YTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGl2ZS10b3AtcmlnaHQiPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGl2ZS1hcnJvd3MiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IkFudGVyaW9yIj4KICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNS41IDE5bC03LTcgNy03IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IlNpZ3VpZW50ZSI+CiAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPgogICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNOC41IDVsNyA3LTcgNyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJsaXZlLXRyYWNrLXdyYXAiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGl2ZS10cmFjay1zY3JvbGwiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaXZlLXRyYWNrIiByb2xlPSJsaXN0IiBzdHlsZT0icGFkZGluZy1yaWdodDo1MHB4Ij4KICAgICAgICAgICAgICAKICAgICAgPGEgY2xhc3M9Im5ld3MtY2FyZCBoYXMtcGhvdG8iIHJvbGU9Imxpc3RpdGVtIgogICAgICAgICBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BhbmEvY2VudGVuYXJlcy1jZXV0aWVzLXZ1ZWx2ZW4tY2FsbGVzLXByb3Rlc3RhLWltcHJvdmlzYWRhLWdyaXRvLWNldXRhLXVuaWRhLWphbWFzLXNlcmEtdmVuY2lkYS0yMDE5NDQ1MCIgdGFyZ2V0PSJfdG9wIiB0aXRsZT0iTGVlciBhaG9yYTogMjI6MDkgtyBDZW50ZW5hcmVzIGRlIGNldXTtZXMgdnVlbHZlbiBhIGxhcyBjYWxsZXMgZW4gdW5hIHByb3Rlc3RhIGltcHJvdmlzYWRhIGFsIGdyaXRvIGRlICZxdW90O6FDZXV0YSB1bmlkYSBqYW3hcyBzZXLhIHZlbmNpZGEhJnF1b3Q7IiBhcmlhLWxhYmVsPSJMZWVyIGFob3JhOiAyMjowOSC3IENlbnRlbmFyZXMgZGUgY2V1dO1lcyB2dWVsdmVuIGEgbGFzIGNhbGxlcyBlbiB1bmEgcHJvdGVzdGEgaW1wcm92aXNhZGEgYWwgZ3JpdG8gZGUgJnF1b3Q7oUNldXRhIHVuaWRhIGphbeFzIHNlcuEgdmVuY2lkYSEmcXVvdDsiPgogICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtcGhvdG8iPjxpbWcgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEvaW52YXNpb24tZGUtY2V1dGEtbm90aWNpYS1mb3RvLTIwMjYwODI5LTIwMTQwMi01NzNiNzkuanBnIiBhbHQ9IkNlbnRlbmFyZXMgZGUgY2V1dO1lcyB2dWVsdmVuIGEgbGFzIGNhbGxlcyBlbiB1bmEgcHJvdGVzdGEgaW1wcm92aXNhZGEgYWwgZ3JpdG8gZGUgJnF1b3Q7oUNldXRhIHVuaWRhIGphLi4uIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtdGV4dCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLW5vZGUiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmV3cy1pY29uIGhhcy1yYWRhciIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5ld3MtdGltZSIgZGF0YS1kYXRlPSIyMDI2LTA4LTI5Ij4yMjowOTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibmV3cy1tZXRhIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmV3cy10aXRsZSI+Q2VudGVuYXJlcyBkZSBjZXV07WVzIHZ1ZWx2ZW4gYSBsYXMgY2FsbGVzIGVuIHVuYSBwcm90ZXN0YSBpbXByb3Zpc2FkYSBhbCBncml0byBkZSAioUNldXQuLi48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2E+CiAgICAgIDxhIGNsYXNzPSJuZXdzLWNhcmQgaGFzLXBob3RvIiByb2xlPSJsaXN0aXRlbSIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwYW5hL29uZy1hbGVtYW5hLWluc3RhbGEtcHVlc3RvLXBsYXlhLWRlbC10cmFtcG9saW4tY2V1dGEtcmVnYWxhci1tb3ZpbGVzLWNhcmdhZG9yZXMtaW52YXNvcmVzLTIwMTk0MjI2IiB0YXJnZXQ9Il90b3AiIHRpdGxlPSJMZWVyIGFob3JhOiAxOTowNiC3IFVuYSBPTkcgYWxlbWFuYSBpbnN0YWxhIHVuIHB1ZXN0byBlbiBsYSBwbGF5YSBkZWwgVHJhbXBvbO1uIGVuIENldXRhIHBhcmEgcmVnYWxhciBt83ZpbGVzIHkgY2FyZ2Fkb3JlcyBhIGxvcyBpbnZhc29yZXMiIGFyaWEtbGFiZWw9IkxlZXIgYWhvcmE6IDE5OjA2ILcgVW5hIE9ORyBhbGVtYW5hIGluc3RhbGEgdW4gcHVlc3RvIGVuIGxhIHBsYXlhIGRlbCBUcmFtcG9s7W4gZW4gQ2V1dGEgcGFyYSByZWdhbGFyIG3zdmlsZXMgeSBjYXJnYWRvcmVzIGEgbG9zIGludmFzb3JlcyI+CiAgICAgICAgPGRpdiBjbGFzcz0ibmV3cy1waG90byI+PGltZyBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9pbnZhc2lvbi1kZS1jZXV0YS1ub3RpY2lhLWZvdG8tMjAyNjA4MjktMTkzMjM0LTNhYjliYi5qcGciIGFsdD0iVW5hIE9ORyBhbGVtYW5hIGluc3RhbGEgdW4gcHVlc3RvIGVuIGxhIHBsYXlhIGRlbCBUcmFtcG9s7W4gZW4gQ2V1dGEgcGFyYSByZWdhbGFyIG3zdmlsZXMgeSBjYXJnYWRvLi4uIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtdGV4dCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLW5vZGUiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmV3cy1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmV3cy10aW1lIiBkYXRhLWRhdGU9IjIwMjYtMDgtMjkiPjE5OjA2PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLW1ldGEiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLXRpdGxlIj5VbmEgT05HIGFsZW1hbmEgaW5zdGFsYSB1biBwdWVzdG8gZW4gbGEgcGxheWEgZGVsIFRyYW1wb2ztbiBlbiBDZXV0YSBwYXJhIHJlZ2FsYXIgbfN2aWxlcy4uLjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvYT4KICAgICAgPGEgY2xhc3M9Im5ld3MtY2FyZCBoYXMtcGhvdG8iIHJvbGU9Imxpc3RpdGVtIgogICAgICAgICBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BhbmEvaWRlbnRpZmljYW4tbWllbWJyb3Mtb25nLXJlcGFydGlyLWV4cGxvc2l2b3MtY2FzZXJvcy1pbm1pZ3JhbnRlcy1pbGVnYWxlcy1jZXV0YS0yMDE5NDE2OCIgdGFyZ2V0PSJfdG9wIiB0aXRsZT0iTGVlciBhaG9yYTogMTg6NTkgtyBMYSBQb2xpY+1hIGlkZW50aWZpY2EgYSBsb3MgYWN0aXZpc3RhcyBkZSBObyBOYW1lIEtpdGNoZW4gY29tbyBsYSBPTkcgcXVlIHJlcGFydGnzIGPzY3RlbGVzIG1vbG90b3YgZW50cmUgbG9zIGludmFzb3JlcyBkZSBDZXV0YSIgYXJpYS1sYWJlbD0iTGVlciBhaG9yYTogMTg6NTkgtyBMYSBQb2xpY+1hIGlkZW50aWZpY2EgYSBsb3MgYWN0aXZpc3RhcyBkZSBObyBOYW1lIEtpdGNoZW4gY29tbyBsYSBPTkcgcXVlIHJlcGFydGnzIGPzY3RlbGVzIG1vbG90b3YgZW50cmUgbG9zIGludmFzb3JlcyBkZSBDZXV0YSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibmV3cy1waG90byI+PGltZyBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9pbnZhc2lvbi1kZS1jZXV0YS1ub3RpY2lhLWZvdG8tMjAyNjA4MjktMTkzMzA0LWUyOTdjYy5qcGciIGFsdD0iTGEgUG9saWPtYSBpZGVudGlmaWNhIGEgbG9zIGFjdGl2aXN0YXMgZGUgTm8gTmFtZSBLaXRjaGVuIGNvbW8gbGEgT05HIHF1ZSByZXBhcnRp8yBj82N0ZWxlcyBtb2xvdG92Li4uIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtdGV4dCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLW5vZGUiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmV3cy1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmV3cy10aW1lIiBkYXRhLWRhdGU9IjIwMjYtMDgtMjkiPjE4OjU5PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLW1ldGEiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLXRpdGxlIj5MYSBQb2xpY+1hIGlkZW50aWZpY2EgYSBsb3MgYWN0aXZpc3RhcyBkZSBObyBOYW1lIEtpdGNoZW4gY29tbyBsYSBPTkcgcXVlIHJlcGFydGnzIGPzY3RlbC4uLjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvYT4KICAgICAgPGEgY2xhc3M9Im5ld3MtY2FyZCBoYXMtcGhvdG8iIHJvbGU9Imxpc3RpdGVtIgogICAgICAgICBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BhbmEvbnVldmEtZW1ib3NjYWRhLWNldXRhLWN1YXRyby1tYXJyb3F1aWVzLWRldGVuaWRvcy1hcGVkcmVhci1ncnVwby1taWxpdGFyZXMtaGVyaXItc2FyZ2VudG8tMjAxOTM1NDYiIHRhcmdldD0iX3RvcCIgdGl0bGU9IkxlZXIgYWhvcmE6IDEyOjUzILcgTnVldmEgZW1ib3NjYWRhIGVuIENldXRhOiA0IG1hcnJvcXXtZXMgZGV0ZW5pZG9zIHBvciBhcGVkcmVhciBhIG1pbGl0YXJlcyIgYXJpYS1sYWJlbD0iTGVlciBhaG9yYTogMTI6NTMgtyBOdWV2YSBlbWJvc2NhZGEgZW4gQ2V1dGE6IDQgbWFycm9xde1lcyBkZXRlbmlkb3MgcG9yIGFwZWRyZWFyIGEgbWlsaXRhcmVzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLXBob3RvIj48aW1nIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2ludmFzaW9uLWRlLWNldXRhLW5vdGljaWEtZm90by0yMDI2MDgyOS0xOTMzMTUtNGQ4ZTY1LmpwZyIgYWx0PSJOdWV2YSBlbWJvc2NhZGEgZW4gQ2V1dGE6IDQgbWFycm9xde1lcyBkZXRlbmlkb3MgcG9yIGFwZWRyZWFyIGEgbWlsaXRhcmVzIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtdGV4dCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLW5vZGUiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmV3cy1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmV3cy10aW1lIiBkYXRhLWRhdGU9IjIwMjYtMDgtMjkiPjEyOjUzPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLW1ldGEiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLXRpdGxlIj5OdWV2YSBlbWJvc2NhZGEgZW4gQ2V1dGE6IDQgbWFycm9xde1lcyBkZXRlbmlkb3MgcG9yIGFwZWRyZWFyIGEgbWlsaXRhcmVzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9hPgogICAgICA8YSBjbGFzcz0ibmV3cy1jYXJkIGhhcy1waG90byIgcm9sZT0ibGlzdGl0ZW0iCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGFuYS9mZWlqb28tYW51bmNpYS1xdWUtcHAtcGVyc29uYXJhLWNhdXNhLWFiaWVydGEtYXVkaWVuY2lhLW5hY2lvbmFsLWludmFzaW9uLWNldXRhLTIwMTkzNjY2IiB0YXJnZXQ9Il90b3AiIHRpdGxlPSJMZWVyIGFob3JhOiAxMzozMyC3IEZlaWrzbyBhbnVuY2lhIHF1ZSBlbCBQUCBzZSBwZXJzb25hcuEgZW4gbGEgY2F1c2EgYWJpZXJ0YSBlbiBsYSBBdWRpZW5jaWEgTmFjaW9uYWwgcG9yIENldXRhOiAmcXVvdDtFbCBzYW5jaGlzbW8gZXN04SBhY2FiYWRvJnF1b3Q7IiBhcmlhLWxhYmVsPSJMZWVyIGFob3JhOiAxMzozMyC3IEZlaWrzbyBhbnVuY2lhIHF1ZSBlbCBQUCBzZSBwZXJzb25hcuEgZW4gbGEgY2F1c2EgYWJpZXJ0YSBlbiBsYSBBdWRpZW5jaWEgTmFjaW9uYWwgcG9yIENldXRhOiAmcXVvdDtFbCBzYW5jaGlzbW8gZXN04SBhY2FiYWRvJnF1b3Q7Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLXBob3RvIj48aW1nIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2ludmFzaW9uLWRlLWNldXRhLW5vdGljaWEtZm90by0yMDI2MDgyOS0xOTMzMjctNDJhZmY1LmpwZyIgYWx0PSJGZWlq828gYW51bmNpYSBxdWUgZWwgUFAgc2UgcGVyc29uYXLhIGVuIGxhIGNhdXNhIGFiaWVydGEgZW4gbGEgQXVkaWVuY2lhIE5hY2lvbmFsIHBvciBDZXV0YTogJnF1b3Q7RWwgcy4uLiIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLXRleHQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibmV3cy1ub2RlIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5ld3MtaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5ld3MtdGltZSIgZGF0YS1kYXRlPSIyMDI2LTA4LTI5Ij4xMzozMzwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibmV3cy1tZXRhIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmV3cy10aXRsZSI+RmVpavNvIGFudW5jaWEgcXVlIGVsIFBQIHNlIHBlcnNvbmFy4SBlbiBsYSBjYXVzYSBhYmllcnRhIGVuIGxhIEF1ZGllbmNpYSBOYWNpb25hbCBwb3IgQ2UuLi48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9zZWN0aW9uPgo8L2Rpdj4KCjxzY3JpcHQ+CihmdW5jdGlvbigpewogIHZhciByb290ICA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jZC14bzNwdicpOwogIGlmICghcm9vdCkgcmV0dXJuOwogIHZhciB0cmFjayA9IHJvb3QucXVlcnlTZWxlY3RvcignLmxpdmUtdHJhY2snKTsKICBpZiAoIXRyYWNrKSByZXR1cm47CgogIC8vIERldGVjdGFyIG1vZG8gZm9yemFkbyBwb3IgcGFy4W1ldHJvIFVSTCAoP21vZGU9ZGVza3xtb2JpbGUpCiAgdmFyIF91cmxNb2RlID0gKG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCkpLmdldCgnbW9kZScpOwogIGlmIChfdXJsTW9kZSA9PT0gJ2Rlc2snIHx8IF91cmxNb2RlID09PSAnbW9iaWxlJykgewogICAgcm9vdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbW9kZScsIF91cmxNb2RlKTsKICB9CiAgZnVuY3Rpb24gX2lzTW9iaWxlKCl7CiAgICB2YXIgbSA9IHJvb3QuZ2V0QXR0cmlidXRlKCdkYXRhLW1vZGUnKTsKICAgIGlmIChtID09PSAnZGVzaycpICAgcmV0dXJuIGZhbHNlOwogICAgaWYgKG0gPT09ICdtb2JpbGUnKSByZXR1cm4gdHJ1ZTsKICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8PSA3Njg7CiAgfQoKICB2YXIgYXJyb3dzID0gcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuYXJyb3cnKTsKICB2YXIgR0FQID0gMTY7CgogIGZ1bmN0aW9uIHNldE1vYmlsZUNhcmRXaWR0aHMoKXsKICAgIHZhciBjYXJkcyA9IHJvb3QucXVlcnlTZWxlY3RvckFsbCgnLm5ld3MtY2FyZCcpOwogICAgaWYgKCFjYXJkcy5sZW5ndGgpIHJldHVybjsKICAgIGlmIChfaXNNb2JpbGUoKSkgewogICAgICB2YXIgdHJhY2tXID0gdHJhY2suZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7CiAgICAgIGlmICghdHJhY2tXKSByZXR1cm47CiAgICAgIHZhciBtb2JpbGVDYXJkVyA9IE1hdGgucm91bmQodHJhY2tXICogMC43NSk7CiAgICAgIGNhcmRzLmZvckVhY2goZnVuY3Rpb24oYyl7IGMuc3R5bGUud2lkdGggPSBtb2JpbGVDYXJkVyArICdweCc7IH0pOwogICAgICB0cmFjay5zdHlsZS5wYWRkaW5nUmlnaHQgPSBNYXRoLnJvdW5kKG1vYmlsZUNhcmRXICogMC41KSArICdweCc7CiAgICB9IGVsc2UgewogICAgICBjYXJkcy5mb3JFYWNoKGZ1bmN0aW9uKGMpeyBjLnN0eWxlLndpZHRoID0gJyc7IH0pOwogICAgICB2YXIgZGVza1cgPSBnZXRDYXJkV2lkdGgoKTsKICAgICAgaWYgKGRlc2tXKSB0cmFjay5zdHlsZS5wYWRkaW5nUmlnaHQgPSBNYXRoLnJvdW5kKGRlc2tXICogMC41KSArICdweCc7CiAgICB9CiAgfQogIGZ1bmN0aW9uIGdldENhcmRXaWR0aCgpewogICAgdmFyIGNhcmQgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy5uZXdzLWNhcmQnKTsKICAgIHJldHVybiBjYXJkID8gY2FyZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCA6IDA7CiAgfQoKICBmdW5jdGlvbiB1cGRhdGVUcmFja0xpbmUoKXsKICAgIHZhciBzY3JvbGwgPSB0cmFjay5wYXJlbnRFbGVtZW50OwogICAgaWYgKCFzY3JvbGwpIHJldHVybjsKICAgIHZhciBmaXJzdENhcmQgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy5uZXdzLWNhcmQnKTsKICAgIGlmICghZmlyc3RDYXJkKSByZXR1cm47CiAgICB2YXIgbm9kZSA9IGZpcnN0Q2FyZC5xdWVyeVNlbGVjdG9yKCcubmV3cy1ub2RlJyk7CiAgICBpZiAoIW5vZGUpIHJldHVybjsKICAgIHZhciBzY3JvbGxSZWN0ID0gc2Nyb2xsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgdmFyIG5vZGVSZWN0ICAgPSBub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgaWYgKCFzY3JvbGxSZWN0LmhlaWdodCkgcmV0dXJuOwogICAgdmFyIGJvdHRvbSA9IE1hdGgucm91bmQoc2Nyb2xsUmVjdC5ib3R0b20gLSBub2RlUmVjdC5ib3R0b20gKyBub2RlUmVjdC5oZWlnaHQgLyAyKTsKICAgIGlmIChib3R0b20gPj0gMCkgc2Nyb2xsLnN0eWxlLnNldFByb3BlcnR5KCctLXRyYWNrLWxpbmUtYm90dG9tJywgYm90dG9tICsgJ3B4Jyk7CiAgfQoKICBzZXRNb2JpbGVDYXJkV2lkdGhzKCk7CiAgdXBkYXRlVHJhY2tMaW5lKCk7CiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZ1bmN0aW9uKCl7IHNldE1vYmlsZUNhcmRXaWR0aHMoKTsgdXBkYXRlVHJhY2tMaW5lKCk7IH0pOwoKICAvLyBDcm9ub2xvZ+1hIGF1dG9t4XRpY2E6IGVsIGNhcnJ1c2VsIHB1ZWRlIHNlZ3VpciBlbiBwb3J0YWRhIHZhcmlvcyBk7WFzLAogIC8vIGFz7SBxdWUgY2FkYSB2aXNpdGEgY2FsY3VsYSBhcXXtICJBeWVyIi8iSGFjZSBOIGTtYXMiIGEgcGFydGlyIGRlIGxhCiAgLy8gZmVjaGEgcmVhbCBkZSBsYSBub3RpY2lhIChkYXRhLWRhdGUpLCBzaW4gdGVuZXIgcXVlIHJlcHVibGljYXIgbmFkYS4KICB2YXIgdGltZUVscyA9IHJvb3QucXVlcnlTZWxlY3RvckFsbCgnLm5ld3MtdGltZVtkYXRhLWRhdGVdJyk7CiAgaWYgKHRpbWVFbHMubGVuZ3RoKXsKICAgIHZhciBfbm93ID0gbmV3IERhdGUoKTsKICAgIHZhciBfdG9kYXkgPSBuZXcgRGF0ZShfbm93LmdldEZ1bGxZZWFyKCksIF9ub3cuZ2V0TW9udGgoKSwgX25vdy5nZXREYXRlKCkpOwogICAgdGltZUVscy5mb3JFYWNoKGZ1bmN0aW9uKHQpewogICAgICB2YXIgaXNvID0gdC5nZXRBdHRyaWJ1dGUoJ2RhdGEtZGF0ZScpOwogICAgICBpZiAoIWlzbykgcmV0dXJuOwogICAgICB2YXIgcCA9IGlzby5zcGxpdCgnLScpOwogICAgICB2YXIgZGlmZiA9IE1hdGgucm91bmQoKF90b2RheSAtIG5ldyBEYXRlKCtwWzBdLCArcFsxXS0xLCArcFsyXSkpIC8gODY0MDAwMDApOwogICAgICBpZiAoZGlmZiA8PSAwKSByZXR1cm47CiAgICAgIHZhciBsYWJlbCA9IGRpZmYgPT09IDEgPyAnQXllcicgOiAoJ0hhY2UgJyArIGRpZmYgKyAnIGTtYXMnKTsKICAgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CiAgICAgIHNwYW4uY2xhc3NOYW1lID0gJ25ld3MtdGltZS1kYXknOwogICAgICBzcGFuLnRleHRDb250ZW50ID0gJy0gJyArIGxhYmVsOwogICAgICB0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcgJykpOwogICAgICB0LmFwcGVuZENoaWxkKHNwYW4pOwogICAgfSk7CiAgfQoKICBhcnJvd3MuZm9yRWFjaChmdW5jdGlvbihidG4pewogICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSl7CiAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgdmFyIGRpciA9IHRoaXMgPT09IGFycm93c1swXSA/IC0xIDogMTsKCiAgICAgIGlmIChfaXNNb2JpbGUoKSl7CiAgICAgICAgdmFyIHcgPSBnZXRDYXJkV2lkdGgoKTsKICAgICAgICBpZiAoIXcpIHJldHVybjsKICAgICAgICB0cmFjay5zY3JvbGxCeSh7IGxlZnQ6ICh3ICsgR0FQKSAqIGRpciwgYmVoYXZpb3I6J3Ntb290aCcgfSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICAvLyBEZXNrOiBtZWRpbW9zIGxhIHBvc2ljafNuIHkgZWwgYW5jaG8gUkVBTCBkZSBjYWRhIHRhcmpldGEgKHZhcu1hbgogICAgICAvLyBzaSB0aWVuZW4gZm90byBvIG5vKSB5IGFsaW5lYW1vcyBzaWVtcHJlIGVsIGJvcmRlIGl6cXVpZXJkbyBkZSBsYQogICAgICAvLyBzaWd1aWVudGUgdGFyamV0YSBubyBjb21wbGV0YW1lbnRlIHZpc2libGUsIGVuIHZleiBkZSBhc3VtaXIgdW4KICAgICAgLy8gYW5jaG8gdW5pZm9ybWUgbyBkZXNwbGF6YXIgcG9yIGVsIGFuY2hvIGZpam8gZGVsIHRyYWNrLgogICAgICB2YXIgY2FyZHMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChyb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5uZXdzLWNhcmQnKSk7CiAgICAgIGlmICghY2FyZHMubGVuZ3RoKSByZXR1cm47CiAgICAgIHZhciB0cmFja1JlY3QgPSB0cmFjay5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgdmFyIHRyYWNrVyA9IHRyYWNrUmVjdC53aWR0aCB8fCAwOwogICAgICBpZiAoIXRyYWNrVykgcmV0dXJuOwogICAgICB2YXIgc2Nyb2xsTGVmdCA9IHRyYWNrLnNjcm9sbExlZnQ7CgogICAgICB2YXIgcG9zaXRpb25zID0gY2FyZHMubWFwKGZ1bmN0aW9uKGMpewogICAgICAgIHZhciByID0gYy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICByZXR1cm4geyBsZWZ0OiByLmxlZnQgLSB0cmFja1JlY3QubGVmdCArIHNjcm9sbExlZnQsIHdpZHRoOiByLndpZHRoIH07CiAgICAgIH0pOwoKICAgICAgdmFyIHRhcmdldExlZnQgPSBudWxsOwoKICAgICAgaWYgKGRpciA+IDApewogICAgICAgIHZhciB2aWV3cG9ydFJpZ2h0ID0gc2Nyb2xsTGVmdCArIHRyYWNrVzsKICAgICAgICB2YXIgbmV4dCA9IG51bGw7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwb3NpdGlvbnMubGVuZ3RoOyBpKyspewogICAgICAgICAgaWYgKHBvc2l0aW9uc1tpXS5sZWZ0ICsgcG9zaXRpb25zW2ldLndpZHRoID4gdmlld3BvcnRSaWdodCArIDEpeyBuZXh0ID0gcG9zaXRpb25zW2ldOyBicmVhazsgfQogICAgICAgIH0KICAgICAgICBpZiAoIW5leHQpIHJldHVybjsKICAgICAgICB0YXJnZXRMZWZ0ID0gbmV4dC5sZWZ0OwogICAgICB9IGVsc2UgewogICAgICAgIHZhciBjdXJJZHggPSAtMTsKICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHBvc2l0aW9ucy5sZW5ndGg7IGorKyl7CiAgICAgICAgICBpZiAocG9zaXRpb25zW2pdLmxlZnQgPj0gc2Nyb2xsTGVmdCAtIDEpeyBjdXJJZHggPSBqOyBicmVhazsgfQogICAgICAgIH0KICAgICAgICBpZiAoY3VySWR4ID09PSAtMSkgY3VySWR4ID0gcG9zaXRpb25zLmxlbmd0aCAtIDE7CiAgICAgICAgaWYgKGN1cklkeCA8PSAwKSByZXR1cm47CiAgICAgICAgdmFyIGFjYyA9IDA7CiAgICAgICAgdmFyIG5ld0lkeCA9IGN1cklkeDsKICAgICAgICBmb3IgKHZhciBrID0gY3VySWR4IC0gMTsgayA+PSAwOyBrLS0pewogICAgICAgICAgdmFyIHcyID0gcG9zaXRpb25zW2tdLndpZHRoICsgR0FQOwogICAgICAgICAgaWYgKGFjYyArIHcyID4gdHJhY2tXKSBicmVhazsKICAgICAgICAgIGFjYyArPSB3MjsKICAgICAgICAgIG5ld0lkeCA9IGs7CiAgICAgICAgfQogICAgICAgIGlmIChuZXdJZHggPT09IGN1cklkeCkgbmV3SWR4ID0gY3VySWR4IC0gMTsKICAgICAgICB0YXJnZXRMZWZ0ID0gcG9zaXRpb25zW25ld0lkeF0ubGVmdDsKICAgICAgfQoKICAgICAgdmFyIGRlbHRhID0gdGFyZ2V0TGVmdCAtIHNjcm9sbExlZnQ7CiAgICAgIGlmIChNYXRoLmFicyhkZWx0YSkgPCAxKSByZXR1cm47CiAgICAgIHRyYWNrLnNjcm9sbEJ5KHsgbGVmdDogZGVsdGEsIGJlaGF2aW9yOidzbW9vdGgnIH0pOwogICAgfSk7CiAgfSk7CgogIAoKICB2YXIgc3BvbnNvcldyYXAgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy5saXZlLXNwb25zb3ItbG9nb3MnKTsKICBpZiAoc3BvbnNvcldyYXApewogICAgdmFyIHNJbWdzID0gc3BvbnNvcldyYXAucXVlcnlTZWxlY3RvckFsbCgnaW1nJyk7CiAgICBpZiAoc0ltZ3MubGVuZ3RoID4gMSl7CiAgICAgIHZhciBzSWR4ID0gMDsKICAgICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXsKICAgICAgICBzSW1nc1tzSWR4XS5jbGFzc0xpc3QucmVtb3ZlKCdpcy1hY3RpdmUnKTsKICAgICAgICBzSWR4ID0gKHNJZHggKyAxKSAlIHNJbWdzLmxlbmd0aDsKICAgICAgICBzSW1nc1tzSWR4XS5jbGFzc0xpc3QuYWRkKCdpcy1hY3RpdmUnKTsKICAgICAgfSwgNDAwMCk7CiAgICB9CiAgfQoKICAvLyBDdWVudGEgYXRy4XMgbm90aWNpYSBkZXN0YWNhZGEKICB2YXIgZmVhdHVyZWRDb3VudGVyRWwgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy5saXZlLWZlYXR1cmVkLWNvdW50ZXInKTsKICB2YXIgZmVhdHVyZWRUYXJnZXQgPSAnMjAyNi0wOC0yOFQxOTowNic7CiAgaWYgKGZlYXR1cmVkQ291bnRlckVsICYmIGZlYXR1cmVkVGFyZ2V0KXsKICAgIGZ1bmN0aW9uIHVwZGF0ZUZlYXR1cmVkQ291bnRlcigpewogICAgICB2YXIgZGlmZiA9IG5ldyBEYXRlKGZlYXR1cmVkVGFyZ2V0KSAtIG5ldyBEYXRlKCk7CiAgICAgIGlmIChkaWZmIDw9IDApeyBmZWF0dXJlZENvdW50ZXJFbC50ZXh0Q29udGVudCA9ICcwMDowMDowMCc7IHJldHVybjsgfQogICAgICB2YXIgdG90YWxIID0gTWF0aC5mbG9vcihkaWZmIC8gMzYwMDAwMCk7CiAgICAgIHZhciBtID0gTWF0aC5mbG9vcigoZGlmZiAlIDM2MDAwMDApIC8gNjAwMDApOwogICAgICB2YXIgcyA9IE1hdGguZmxvb3IoKGRpZmYgJSA2MDAwMCkgICAvIDEwMDApOwogICAgICBmdW5jdGlvbiBwYWQobil7IHJldHVybiBuIDwgMTAgPyAnMCcgKyBuIDogU3RyaW5nKG4pOyB9CiAgICAgIGZlYXR1cmVkQ291bnRlckVsLnRleHRDb250ZW50ID0gcGFkKHRvdGFsSCkrJzonK3BhZChtKSsnOicrcGFkKHMpOwogICAgfQogICAgdXBkYXRlRmVhdHVyZWRDb3VudGVyKCk7CiAgICBzZXRJbnRlcnZhbCh1cGRhdGVGZWF0dXJlZENvdW50ZXIsIDEwMDApOwogIH0KCiAgLy8gUmVhY2Npb25lczogYWx0ZXJuYW4gY29uIGxhIE5vdGljaWEgZGVzdGFjYWRhIGVuIGVsIG1pc21vIGh1ZWNvIGNlbnRyYWwKICB2YXIgbGMgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy5saXZlLWNhcm91c2VsJyk7CiAgdmFyIGZlYXR1cmVkRWwgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy5saXZlLWZlYXR1cmVkJyk7CiAgdmFyIGZlYXR1cmVkTGlua0VsID0gZmVhdHVyZWRFbCA/IGZlYXR1cmVkRWwucXVlcnlTZWxlY3RvcignLmxpdmUtZmVhdHVyZWQtdGl0bGUgYScpIDogbnVsbDsKICB2YXIgcmVhY3Rpb25zT3ZlcmxheUVsID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcucmVhY3Rpb25zLW92ZXJsYXknKTsKICB2YXIgcmVhY3Rpb25MaW5rRWwgID0gcmVhY3Rpb25zT3ZlcmxheUVsID8gcmVhY3Rpb25zT3ZlcmxheUVsLnF1ZXJ5U2VsZWN0b3IoJy5yZWFjdGlvbi1saW5rJykgOiBudWxsOwogIHZhciByZWFjdGlvbkltZ0VsICAgPSByZWFjdGlvbnNPdmVybGF5RWwgPyByZWFjdGlvbnNPdmVybGF5RWwucXVlcnlTZWxlY3RvcignLnJlYWN0aW9uLWltZyBpbWcnKSA6IG51bGw7CiAgdmFyIHJlYWN0aW9uVGV4dEVsICA9IHJlYWN0aW9uc092ZXJsYXlFbCA/IHJlYWN0aW9uc092ZXJsYXlFbC5xdWVyeVNlbGVjdG9yKCcucmVhY3Rpb24tdGV4dCcpIDogbnVsbDsKICBpZiAobGMgJiYgcmVhY3Rpb25zT3ZlcmxheUVsKXsKICAgIHZhciB1c2VSQyAgPSBsYy5nZXRBdHRyaWJ1dGUoJ2RhdGEtcmN5Y2xlJykgPT09ICcxJzsKICAgIHZhciByTW9kZSAgPSBsYy5nZXRBdHRyaWJ1dGUoJ2RhdGEtcm1vZGUnKSB8fCAnaW50ZXJsZWF2ZSc7CiAgICB2YXIgckR1ciAgID0gTWF0aC5tYXgoMSwgcGFyc2VJbnQobGMuZ2V0QXR0cmlidXRlKCdkYXRhLXJkdXInKXx8JzMnLDEwKSk7CiAgICB2YXIgcmZEdXIgID0gTWF0aC5tYXgoMSwgcGFyc2VJbnQobGMuZ2V0QXR0cmlidXRlKCdkYXRhLXJmZHVyJyl8fCc1JywxMCkpOwogICAgdmFyIHJJbnRlcmxlYXZlID0gKHJNb2RlID09PSAnaW50ZXJsZWF2ZScpOwogICAgdmFyIHJEYXRhRWwgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy5yZWFjdGlvbnMtZGF0YScpOwogICAgdmFyIHJlYWN0aW9ucyA9IFtdOwogICAgaWYgKHJEYXRhRWwpeyB0cnl7IHJlYWN0aW9ucyA9IEpTT04ucGFyc2UockRhdGFFbC50ZXh0Q29udGVudHx8J1tdJyl8fFtdOyB9Y2F0Y2goXyl7IHJlYWN0aW9ucz1bXTsgfSB9CiAgICB2YXIgcmNUaW1lciA9IG51bGwsIHJjUnVuSWQgPSAwLCByY0luZGV4ID0gMDsKCiAgICAvLyBTaSBlbCBwdW50ZXJvIHNlIHF1ZWRhIHF1aWV0byBzb2JyZSBlbCBodWVjbyBjZW50cmFsIG1pZW50cmFzIG5vdGljaWEKICAgIC8vIGRlc3RhY2FkYSB5IHJlYWNjaW9uZXMgc2UgYWx0ZXJuYW4sIGVsIG5hdmVnYWRvciBubyByZWNhbGN1bGEgcG9yIHN1CiAgICAvLyBjdWVudGEgcXXpIGVubGFjZSBoYXkgYmFqbyBlbCBjdXJzb3IgKGVzbyBzb2xvIG9jdXJyZSBjb24gdW4gbW91c2Vtb3ZlCiAgICAvLyByZWFsKS4gR3VhcmRhbW9zIGxhIPpsdGltYSBwb3NpY2nzbiB5IHJlZW1pdGltb3MgdW4gbW91c2Vtb3ZlCiAgICAvLyBzaW506XRpY28gY2FkYSB2ZXogcXVlIGNhbWJpYSBlbCBlbmxhY2UgYWN0aXZvLgogICAgdmFyIGxhc3RQb2ludGVyWCA9IG51bGwsIGxhc3RQb2ludGVyWSA9IG51bGw7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBmdW5jdGlvbihlKXsgbGFzdFBvaW50ZXJYID0gZS5jbGllbnRYOyBsYXN0UG9pbnRlclkgPSBlLmNsaWVudFk7IH0sIHsgcGFzc2l2ZTp0cnVlIH0pOwogICAgZnVuY3Rpb24gcmVmcmVzaEhvdmVyQXRQb2ludGVyKCl7CiAgICAgIGlmIChsYXN0UG9pbnRlclggPT0gbnVsbCB8fCBsYXN0UG9pbnRlclkgPT0gbnVsbCkgcmV0dXJuOwogICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChsYXN0UG9pbnRlclgsIGxhc3RQb2ludGVyWSk7CiAgICAgIGlmICh0YXJnZXQpIHRhcmdldC5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCdtb3VzZW1vdmUnLCB7IGJ1YmJsZXM6dHJ1ZSwgY2xpZW50WDpsYXN0UG9pbnRlclgsIGNsaWVudFk6bGFzdFBvaW50ZXJZIH0pKTsKICAgIH0KCiAgICAvLyBFbCBlbmxhY2UgZGVsIGJsb3F1ZSBpbmFjdGl2byBzZSBkZXNhY3RpdmEgZXhwbO1jaXRhbWVudGU6IGFsIGNvbXBhcnRpciBlbCBtaXNtbwogICAgLy8gaHVlY28geSB6LWluZGV4LCBzaW4gZXN0byBlbCBlbmxhY2Ugb2N1bHRvIHNlZ3XtYSBpbnRlcmNhbWJpYW5kbyBjbGljcyBjb24gZWwgdmlzaWJsZS4KICAgIGZ1bmN0aW9uIHNob3coZWwpeyBlbC5oaWRkZW49ZmFsc2U7IHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpeyBlbC5jbGFzc0xpc3QuYWRkKCdjZW50ZXItdmlzaWJsZScpOyB9KTsgcmVmcmVzaEhvdmVyQXRQb2ludGVyKCk7IH0KICAgIGZ1bmN0aW9uIGhpZGUoZWwpeyBlbC5jbGFzc0xpc3QucmVtb3ZlKCdjZW50ZXItdmlzaWJsZScpOyBpZiAocmVhY3Rpb25MaW5rRWwpIHJlYWN0aW9uTGlua0VsLnN0eWxlLnBvaW50ZXJFdmVudHM9J25vbmUnOyBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IGVsLmhpZGRlbj10cnVlOyB9LCA1MDApOyByZWZyZXNoSG92ZXJBdFBvaW50ZXIoKTsgfQogICAgZnVuY3Rpb24gc2hvd0ZlYXR1cmVkT3BhY2l0eSh2KXsKICAgICAgaWYgKGZlYXR1cmVkRWwpIGZlYXR1cmVkRWwuc3R5bGUub3BhY2l0eSA9IHY7CiAgICAgIGlmIChmZWF0dXJlZExpbmtFbCkgZmVhdHVyZWRMaW5rRWwuc3R5bGUucG9pbnRlckV2ZW50cyA9ICh2ID09PSAnMScpID8gJ2F1dG8nIDogJ25vbmUnOwogICAgICByZWZyZXNoSG92ZXJBdFBvaW50ZXIoKTsKICAgIH0KCiAgICBmdW5jdGlvbiByeFJhd1RvSFRNTChyYXcpewogICAgICByYXcgPSByYXcgfHwgJyc7CiAgICAgIHZhciBodG1sID0gJycsIGkgPSAwLCBpbkhpID0gZmFsc2U7CiAgICAgIHdoaWxlKGkgPCByYXcubGVuZ3RoKXsKICAgICAgICBpZiAocmF3LnNsaWNlKGksIGkrMykgPT09ICdbKl0nKXsgaHRtbCArPSBpbkhpID8gJzwvc3Bhbj4nIDogJzxzcGFuIGNsYXNzPSJyeC1oaSI+JzsgaW5IaSA9ICFpbkhpOyBpICs9IDM7IGNvbnRpbnVlOyB9CiAgICAgICAgdmFyIGNoID0gcmF3W2ldOwogICAgICAgIGlmIChjaCA9PT0gJyYnKSBodG1sICs9ICcmYW1wOyc7IGVsc2UgaWYgKGNoID09PSAnPCcpIGh0bWwgKz0gJyZsdDsnOyBlbHNlIGlmIChjaCA9PT0gJz4nKSBodG1sICs9ICcmZ3Q7JzsgZWxzZSBodG1sICs9IGNoOwogICAgICAgIGkrKzsKICAgICAgfQogICAgICBpZiAoaW5IaSkgaHRtbCArPSAnPC9zcGFuPic7CiAgICAgIHJldHVybiBodG1sOwogICAgfQoKICAgIGZ1bmN0aW9uIHJlbmRlclJlYWN0aW9uKGkpewogICAgICBpZighcmVhY3Rpb25zLmxlbmd0aCkgcmV0dXJuOwogICAgICB2YXIgciA9IHJlYWN0aW9uc1tpICUgcmVhY3Rpb25zLmxlbmd0aF07CiAgICAgIGlmIChyZWFjdGlvbkltZ0VsKXsgaWYoci5pbWcpeyByZWFjdGlvbkltZ0VsLnNyYz1yLmltZzsgcmVhY3Rpb25JbWdFbC5zdHlsZS5kaXNwbGF5PSdibG9jayc7IH0gZWxzZSB7IHJlYWN0aW9uSW1nRWwucmVtb3ZlQXR0cmlidXRlKCdzcmMnKTsgcmVhY3Rpb25JbWdFbC5zdHlsZS5kaXNwbGF5PSdub25lJzsgfSB9CiAgICAgIGlmIChyZWFjdGlvblRleHRFbCl7IHJlYWN0aW9uVGV4dEVsLmlubmVySFRNTCA9IHJ4UmF3VG9IVE1MKHIudGV4dHx8JycpOyB9CiAgICAgIGlmIChyZWFjdGlvbkxpbmtFbCl7IGlmKHIudXJsKXsgcmVhY3Rpb25MaW5rRWwuaHJlZj1yLnVybDsgcmVhY3Rpb25MaW5rRWwuc3R5bGUucG9pbnRlckV2ZW50cz0nYXV0byc7IH0gZWxzZSB7IHJlYWN0aW9uTGlua0VsLmhyZWY9JyMnOyByZWFjdGlvbkxpbmtFbC5zdHlsZS5wb2ludGVyRXZlbnRzPSdub25lJzsgfSB9CiAgICB9CgogICAgZnVuY3Rpb24gc3RhcnRSQygpewogICAgICBpZighdXNlUkMgfHwgIXJlYWN0aW9ucy5sZW5ndGgpIHJldHVybjsKICAgICAgaWYgKCFySW50ZXJsZWF2ZSAmJiByZWFjdGlvbnMubGVuZ3RoID09PSAxKXsKICAgICAgICByZW5kZXJSZWFjdGlvbigwKTsKICAgICAgICBzaG93RmVhdHVyZWRPcGFjaXR5KCcwJyk7CiAgICAgICAgc2hvdyhyZWFjdGlvbnNPdmVybGF5RWwpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB2YXIgRkFERV9NUyA9IDUwMDsKICAgICAgdmFyIHJ1bklkID0gKytyY1J1bklkOwogICAgICBpZihyY1RpbWVyKXsgY2xlYXJUaW1lb3V0KHJjVGltZXIpOyByY1RpbWVyPW51bGw7IH0KICAgICAgZnVuY3Rpb24gd2FpdChtcyl7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXMpeyByY1RpbWVyID0gc2V0VGltZW91dChyZXMsIG1zKTsgfSk7IH0KICAgICAgKGFzeW5jIGZ1bmN0aW9uIGxvb3AoKXsKICAgICAgICB3aGlsZSh1c2VSQyAmJiByZWFjdGlvbnMubGVuZ3RoICYmIHJ1bklkPT09cmNSdW5JZCl7CiAgICAgICAgICByZW5kZXJSZWFjdGlvbihyY0luZGV4KTsKICAgICAgICAgIHNob3dGZWF0dXJlZE9wYWNpdHkoJzAnKTsgYXdhaXQgd2FpdChGQURFX01TKTsgaWYocnVuSWQhPT1yY1J1bklkKSBicmVhazsKICAgICAgICAgIHNob3cocmVhY3Rpb25zT3ZlcmxheUVsKTsgYXdhaXQgd2FpdChGQURFX01TKTsgaWYocnVuSWQhPT1yY1J1bklkKSBicmVhazsKICAgICAgICAgIGF3YWl0IHdhaXQockR1cioxMDAwKTsgaWYocnVuSWQhPT1yY1J1bklkKSBicmVhazsKICAgICAgICAgIGlmIChySW50ZXJsZWF2ZSl7CiAgICAgICAgICAgIGhpZGUocmVhY3Rpb25zT3ZlcmxheUVsKTsgYXdhaXQgd2FpdChGQURFX01TKTsgaWYocnVuSWQhPT1yY1J1bklkKSBicmVhazsKICAgICAgICAgICAgc2hvd0ZlYXR1cmVkT3BhY2l0eSgnMScpOyBhd2FpdCB3YWl0KEZBREVfTVMpOyBpZihydW5JZCE9PXJjUnVuSWQpIGJyZWFrOwogICAgICAgICAgICBhd2FpdCB3YWl0KHJmRHVyKjEwMDApOyBpZihydW5JZCE9PXJjUnVuSWQpIGJyZWFrOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaGlkZShyZWFjdGlvbnNPdmVybGF5RWwpOyBhd2FpdCB3YWl0KEZBREVfTVMpOyBpZihydW5JZCE9PXJjUnVuSWQpIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgcmNJbmRleCA9IChyY0luZGV4ICsgMSkgJSByZWFjdGlvbnMubGVuZ3RoOwogICAgICAgIH0KICAgICAgfSkoKTsKICAgIH0KICAgIHN0YXJ0UkMoKTsKICB9CgogIAp9KSgpOwo8L3NjcmlwdD4=
      CjxzdHlsZT4KLmNkLTd2cGo3IC5saXZlLWNhcm91c2VsewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIHdpZHRoOjEwMCU7CiAgbWF4LXdpZHRoOjk2MHB4OwogIGhlaWdodDoxNzBweDsKICBib3JkZXItcmFkaXVzOjZweDsKICBvdmVyZmxvdzpoaWRkZW47CiAgYmFja2dyb3VuZDojMDIwYjFhOwogIGNvbG9yOiNmZmY7CiAgZm9udC1zaXplOjEycHg7Cn0KQG1lZGlhIChtYXgtd2lkdGg6NzY4cHgpewogIC5jZC03dnBqNyAubGl2ZS1jYXJvdXNlbHsKICAgIG1heC13aWR0aDoxMDAlOwogICAgaGVpZ2h0OjE5MHB4OwogIH0KfQouY2QtN3ZwajcgLmxpdmUtYmd7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgaW5zZXQ6MDsKICBvdmVyZmxvdzpoaWRkZW47Cn0KLmNkLTd2cGo3IC5saXZlLWJnIGltZywKLmNkLTd2cGo3IC5saXZlLWJnIHZpZGVvewogIHdpZHRoOjEwMCU7CiAgaGVpZ2h0OjEwMCU7CiAgb2JqZWN0LWZpdDpjb3ZlcjsKICBkaXNwbGF5OmJsb2NrOwp9Ci5jZC03dnBqNyAubGl2ZS1iZy1wbGFjZWhvbGRlcnsKICB3aWR0aDoxMDAlOwogIGhlaWdodDoxMDAlOwogIGJhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAxMCUgMjAlLCAjMjgzZTUxIDAsICMwYTIzNDIgNDAlLCAjMDAwIDEwMCUpOwp9Ci5jZC03dnBqNyAubGl2ZS1iZy1zbGlkZXJ7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgaW5zZXQ6MDsKfQouY2QtN3ZwajcgLmxpdmUtYmctc2xpZGVyIGltZ3sKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBpbnNldDowOwogIHdpZHRoOjEwMCU7CiAgaGVpZ2h0OjEwMCU7CiAgb2JqZWN0LWZpdDpjb3ZlcjsKICBvcGFjaXR5OjA7CiAgdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgY2VudGVyOwogIGFuaW1hdGlvbjpjZC03dnBqNy1rZW5idXJucyAxMnMgZWFzZS1pbi1vdXQgaW5maW5pdGUgYWx0ZXJuYXRlOwogIHRyYW5zaXRpb246b3BhY2l0eSAuOHMgZWFzZS1pbi1vdXQ7Cn0KLmNkLTd2cGo3IC5saXZlLWJnLXNsaWRlciBpbWcuaXMtYWN0aXZle29wYWNpdHk6MTt9CkBrZXlmcmFtZXMgY2QtN3Zwajcta2VuYnVybnN7CiAgMCV7dHJhbnNmb3JtOnNjYWxlKDEuMDgpIHRyYW5zbGF0ZTNkKDAsMCwwKTt9CiAgNTAle3RyYW5zZm9ybTpzY2FsZSgxLjE0KSB0cmFuc2xhdGUzZCgyJSwtMiUsMCk7fQogIDEwMCV7dHJhbnNmb3JtOnNjYWxlKDEuMikgdHJhbnNsYXRlM2QoLTIlLDIlLDApO30KfQouY2QtN3ZwajcgLmxpdmUtYmctLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQpAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgLmNkLTd2cGo3IC5saXZlLWJnLS1kZXNre2Rpc3BsYXk6bm9uZTt9CiAgLmNkLTd2cGo3IC5saXZlLWJnLS1tb2JpbGV7ZGlzcGxheTpibG9jazt9Cn0KLmNkLTd2cGo3IC5saXZlLWJnLXZlaWx7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgaW5zZXQ6MDsKICBiYWNrZ3JvdW5kOnJnYig0LDEyLDMyKTsKICBvcGFjaXR5OjA7CiAgcG9pbnRlci1ldmVudHM6bm9uZTsKfQpAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgLmNkLTd2cGo3IC5saXZlLWJnLXZlaWx7b3BhY2l0eTowO30KfQouY2QtN3ZwajcgLmxpdmUtYmctc2hhZGV7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgaW5zZXQ6MDsKICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgwZGVnLAogICAgcmdiYSg0LDEyLDMyLDAuOTUpIDAlLAogICAgcmdiYSg0LDEyLDMyLDAuNSkgNTAlLAogICAgcmdiYSg0LDEyLDMyLDApIDEwMCUpOwogIHBvaW50ZXItZXZlbnRzOm5vbmU7Cn0KLmNkLTd2cGo3IC5saXZlLWlubmVyewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIHotaW5kZXg6MTsKICBkaXNwbGF5OmZsZXg7CiAgZmxleC1kaXJlY3Rpb246Y29sdW1uOwogIGhlaWdodDoxMDAlOwp9Ci5jZC03dnBqNyAubGl2ZS10b3B7CiAgZGlzcGxheTpmbGV4OwogIGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOwogIGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7CiAgZ2FwOjEycHg7CiAgcGFkZGluZzogN3B4Owp9Ci5jZC03dnBqNyAubGl2ZS10YWdzewogIGRpc3BsYXk6ZmxleDsKICBmbGV4LXdyYXA6d3JhcDsKICBnYXA6NHB4OwogIGFsaWduLWl0ZW1zOmNlbnRlcjsKfQouY2QtN3ZwajcgLnRhZy1saXZlewogIGJhY2tncm91bmQ6I2U1MjQyYTsKICBjb2xvcjojZmZmOwogIHBhZGRpbmc6MnB4IDVweCAycHggNXB4OwogIGJvcmRlci1yYWRpdXM6M3B4OwogIGZvbnQtZmFtaWx5OiAnYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQnLCBzYW5zLXNlcmlmOwogIGZvbnQtc2l6ZToxMnB4OwogIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICBsZXR0ZXItc3BhY2luZzouMDRlbTsKfQouY2QtN3ZwajcgLnRhZy10b3BpY3sKICBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4yKTsKICBjb2xvcjojZmZmOwogIHBhZGRpbmc6MnB4IDVweCAxcHggNXB4OwogIGJvcmRlci1yYWRpdXM6M3B4OwogIGZvbnQtZmFtaWx5OiAnYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQnLCBzYW5zLXNlcmlmOwogIGZvbnQtc2l6ZToxMnB4OwogIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICBsZXR0ZXItc3BhY2luZzoxcHg7Cn0KLmNkLTd2cGo3IC5saXZlLXRvcC1yaWdodHsKICBkaXNwbGF5OmZsZXg7CiAgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsKICBnYXA6MTBweDsKfQouY2QtN3ZwajcgLmxpdmUtc3BvbnNvcnsKICBkaXNwbGF5OmZsZXg7CiAgYWxpZ24taXRlbXM6Y2VudGVyOwogIGdhcDowcHg7CiAgZm9udC1zaXplOjEwcHg7CiAgZm9udC13ZWlnaHQ6NDAwOwp9Ci5jZC03dnBqNyAubGl2ZS1zcG9uc29yLWxhYmVsewogIHdoaXRlLXNwYWNlOm5vd3JhcDsKICBvcGFjaXR5Oi43OwogIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOwp9Ci5jZC03dnBqNyAubGl2ZS1zcG9uc29yLWxvZ29zewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIHdpZHRoOjEwMHB4OwogIGhlaWdodDozNXB4OwogIGJvcmRlci1yYWRpdXM6NHB4OwogIG92ZXJmbG93OmhpZGRlbjsKICBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4wKTsKICBmbGV4LXNocmluazowOwp9Ci5jZC03dnBqNyAubGl2ZS1zcG9uc29yLWxvZ29zIGltZ3sKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBpbnNldDowOwogIG1hcmdpbjphdXRvOwogIG1heC13aWR0aDoxMDAlOwogIG1heC1oZWlnaHQ6MTAwJTsKICBvYmplY3QtZml0OmNvbnRhaW47CiAgb3BhY2l0eTowOwogIHRyYW5zaXRpb246b3BhY2l0eSAuN3MgZWFzZS1pbi1vdXQ7Cn0KLmNkLTd2cGo3IC5saXZlLXNwb25zb3ItbG9nb3MgaW1nLmlzLWFjdGl2ZXtvcGFjaXR5OjE7fQouY2QtN3ZwajcgLmxpdmUtYXJyb3dzewogIGRpc3BsYXk6ZmxleDsKICBnYXA6NnB4Owp9Ci5jZC03dnBqNyBidXR0b246Zm9jdXMge2JhY2tncm91bmQ6IHJnYigyNTUgMjU1IDI1NSAvIDIwJSkgIWltcG9ydGFudDt9Ci5jZC03dnBqNyAuYXJyb3d7CiAgd2lkdGg6MzJweDsKICBoZWlnaHQ6IDMycHg7CiAgYm9yZGVyLXJhZGl1czo1MCU7CiAgYmFja2dyb3VuZDpyZ2IoMjU1IDI1NSAyNTUgLyAyMCUpOwogIGJveC1zaGFkb3c6MCA0cHggMTJweCByZ2IoMCAwIDAgLyAyNSUpOwogIGJvcmRlcjoxcHggc29saWQgI2ZmZjsKICBkaXNwbGF5OmZsZXg7CiAgYWxpZ24taXRlbXM6Y2VudGVyOwogIGp1c3RpZnktY29udGVudDpjZW50ZXI7CiAgY3Vyc29yOnBvaW50ZXI7CiAgdHJhbnNpdGlvbjouMjVzOwogIGNvbG9yOiNmZmY7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKfQouY2QtN3ZwajcgLmFycm93OmhvdmVyewogIGJhY2tncm91bmQ6cmdiKDAgMCAwIC8gMjUlKTsKfQouY2QtN3ZwajcgLmFycm93OmZvY3VzewogIG91dGxpbmU6MnB4IHNvbGlkICNmZmY7CiAgb3V0bGluZS1vZmZzZXQ6MnB4Owp9Ci5jZC03dnBqNyAuYXJyb3cgc3ZnewogIHdpZHRoOjE2cHg7CiAgaGVpZ2h0OjE2cHg7CiAgZGlzcGxheTpibG9jazsKfQpAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgLmNkLTd2cGo3IC5saXZlLWFycm93c3tkaXNwbGF5Om5vbmU7fQogIC5jZC03dnBqNyAubGl2ZS1zcG9uc29ye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoycHg7fQogIC5jZC03dnBqNyAubGl2ZS1zcG9uc29yLWxhYmVse2Rpc3BsYXk6YmxvY2s7fQogIC5jZC03dnBqNyAubGl2ZS1zcG9uc29yLWxvZ29ze3dpZHRoOjkwcHg7fQp9Ci5jZC03dnBqNyAubGl2ZS10cmFjay13cmFwewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIG1hcmdpbi10b3A6MTBweDsKICBmbGV4OjE7CiAgZGlzcGxheTpmbGV4OwogIGFsaWduLWl0ZW1zOmZsZXgtZW5kOwogIG92ZXJmbG93OmhpZGRlbjsKfQouY2QtN3ZwajcgLmxpdmUtdHJhY2stc2Nyb2xsewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIHdpZHRoOjEwMCU7CiAgcGFkZGluZy10b3A6NHB4Owp9Ci5jZC03dnBqNyAubGl2ZS10cmFjay1zY3JvbGw6OmJlZm9yZXsKICBjb250ZW50OiIiOwogIHBvc2l0aW9uOmFic29sdXRlOwogIGxlZnQ6MDsKICByaWdodDowOwogIGJvdHRvbTp2YXIoLS10cmFjay1saW5lLWJvdHRvbSw2NnB4KTsKICBoZWlnaHQ6MXB4OwogIGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjI1KTsKfQouY2QtN3ZwajcgLmxpdmUtdHJhY2t7CiAgLS1nYXA6MTZweDsKICBwb3NpdGlvbjpyZWxhdGl2ZTsKICB3aWR0aDoxMDAlOwogIGRpc3BsYXk6ZmxleDsKICBhbGlnbi1pdGVtczpmbGV4LWVuZDsKICBnYXA6dmFyKC0tZ2FwKTsKICBvdmVyZmxvdy14OmF1dG87CiAgc2Nyb2xsLXNuYXAtdHlwZTp4IG1hbmRhdG9yeTsKICBzY3JvbGwtYmVoYXZpb3I6c21vb3RoOwogIHBhZGRpbmctYm90dG9tOjRweDsKICBzY3JvbGxiYXItd2lkdGg6bm9uZTsKfQouY2QtN3ZwajcgLmxpdmUtdHJhY2s6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZTt9Ci5jZC03dnBqNyAubmV3cy1jYXJkewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIGZsZXg6MCAwIGF1dG87CiAgc2Nyb2xsLXNuYXAtYWxpZ246c3RhcnQ7CiAgd2lkdGg6Y2FsYygoMTAwJSAtIDMqdmFyKC0tZ2FwKSkvNCk7CiAgY29sb3I6I2ZmZjsKICB0ZXh0LWRlY29yYXRpb246bm9uZTsKICBwYWRkaW5nOiAyMHB4IDAgMTBweCAxMHB4Owp9Ci5jZC03dnBqNyAubmV3cy1jYXJke3dpZHRoOmNhbGMoKDEwMCUgLSAyLjMqdmFyKC0tZ2FwKSkvMy4zKTt9Ci5jZC03dnBqNyAubmV3cy1jYXJkLmhhcy1waG90b3t3aWR0aDpjYWxjKCgxMDAlIC0gMi4zKnZhcigtLWdhcCkpLzMuMyArIDgwcHgpO30KQG1lZGlhIChtYXgtd2lkdGg6NzY4cHgpewogIC5jZC03dnBqNyAubmV3cy1jYXJkewogICAgd2lkdGg6NzUlOwogIH0KfQouY2QtN3ZwajcgLm5ld3Mtbm9kZXsKICBkaXNwbGF5OmZsZXg7CiAgYWxpZ24taXRlbXM6Y2VudGVyOwogIGdhcDo1cHg7CiAgbWFyZ2luLWJvdHRvbTo2cHg7CiAgcG9zaXRpb246cmVsYXRpdmU7Cn0KLmNkLTd2cGo3IC5uZXdzLWljb257CiAgcG9zaXRpb246cmVsYXRpdmU7CiAgd2lkdGg6MjBweDsKICBoZWlnaHQ6MjBweDsKICBmbGV4LXNocmluazowOwogIGRpc3BsYXk6ZmxleDsKICBhbGlnbi1pdGVtczpjZW50ZXI7CiAganVzdGlmeS1jb250ZW50OmNlbnRlcjsKfQouY2QtN3ZwajcgLm5ld3MtaWNvbjo6YmVmb3JlewogIGNvbnRlbnQ6IiI7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgdG9wOjUwJTsKICBsZWZ0OjUwJTsKICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7CiAgd2lkdGg6OHB4OwogIGhlaWdodDo4cHg7CiAgYm9yZGVyLXJhZGl1czo1MCU7CiAgYmFja2dyb3VuZDojZmZmOwogIGJvcmRlcjo0cHggc29saWQgI2U1MjQyYTsKICBib3gtc2hhZG93OjAgMCAwIDAgcmdiYSgyMjksMzYsNDIsMC42KTsKfQouY2QtN3ZwajcgLm5ld3MtaWNvbi5uZXdzLWljb24tLWltZzo6YmVmb3JlewogIHdpZHRoOjEwMCU7CiAgaGVpZ2h0OjEwMCU7CiAgYm9yZGVyLXJhZGl1czo5OTlweDsKICBib3JkZXI6bm9uZTsKICBib3gtc2hhZG93Om5vbmU7CiAgYmFja2dyb3VuZC1zaXplOmNvbnRhaW47CiAgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OwogIGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOwogIGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Cn0KLmNkLTd2cGo3IC5uZXdzLWljb24uaGFzLXJhZGFyOjpiZWZvcmV7CiAgYW5pbWF0aW9uOmNkLTd2cGo3LXJhZGFyUHVsc2UgMS40cyBpbmZpbml0ZTsKfQouY2QtN3ZwajcgLm5ld3MtaWNvbi5uZXdzLWljb24tLWltZy5oYXMtcmFkYXI6OmJlZm9yZXsKICBhbmltYXRpb246bm9uZTsKfQouY2QtN3ZwajcgLm5ld3MtaWNvbi5uZXdzLWljb24tLWltZy5oYXMtcmFkYXI6OmFmdGVyewogIGNvbnRlbnQ6IiI7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgdG9wOjUwJTsKICBsZWZ0OjUwJTsKICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7CiAgd2lkdGg6MTRweDsKICBoZWlnaHQ6MTRweDsKICBib3JkZXItcmFkaXVzOjUwJTsKICBhbmltYXRpb246Y2QtN3ZwajctcmFkYXJQdWxzZSAxLjRzIGluZmluaXRlOwp9CkBrZXlmcmFtZXMgY2QtN3ZwajctcmFkYXJQdWxzZXsKICAwJXtib3gtc2hhZG93OjAgMCAwIDAgcmdiYSgyMjksMzYsNDIsMC45KTt9CiAgNzAle2JveC1zaGFkb3c6MCAwIDAgMjBweCByZ2JhKDIyOSwzNiw0MiwwKTt9CiAgMTAwJXtib3gtc2hhZG93OjAgMCAwIDAgcmdiYSgyMjksMzYsNDIsMCk7fQp9Ci5jZC03dnBqNyAubmV3cy1tZXRhe3RleHQtYWxpZ246bGVmdDt9CgouY2QtN3ZwajcgLm5ld3MtY2FyZHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjhweDt9Ci5jZC03dnBqNyAubmV3cy10ZXh0e2ZsZXg6MTttaW4td2lkdGg6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO30KLmNkLTd2cGo3IC5uZXdzLXBob3RvewogIHBvc2l0aW9uOnJlbGF0aXZlOwogIHdpZHRoOjgwcHg7aGVpZ2h0OjYwcHg7bWFyZ2luLWJvdHRvbTowOwogIG92ZXJmbG93OmhpZGRlbjsKICBib3JkZXItcmFkaXVzOjNweDsKICBmbGV4LXNocmluazowOwp9Ci5jZC03dnBqNyAubmV3cy1waG90byBpbWd7CiAgd2lkdGg6MTAwJTsKICBoZWlnaHQ6MTAwJTsKICBvYmplY3QtZml0OmNvdmVyOwogIGRpc3BsYXk6YmxvY2s7CiAgdHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlOwp9Ci5jZC03dnBqNyAubmV3cy1jYXJkOmhvdmVyIC5uZXdzLXBob3RvIGltZ3sKICBvcGFjaXR5Oi44NTsKfQouY2QtN3ZwajcgLm5ld3MtcGhvdG8tcGxheXsKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBib3R0b206NXB4OwogIGxlZnQ6NXB4OwogIHdpZHRoOjIwcHg7CiAgaGVpZ2h0OjIwcHg7CiAgYm9yZGVyLXJhZGl1czoycHg7CiAgZGlzcGxheTppbmxpbmUtZ3JpZDsKICBwbGFjZS1pdGVtczpjZW50ZXI7CiAgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNyk7CiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTgpOwogIHBhZGRpbmc6MDsKICBjdXJzb3I6cG9pbnRlcjsKICB6LWluZGV4OjI7CiAgYW5pbWF0aW9uOmNkLTd2cGo3LXBsYXktYmxpbmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLmNkLTd2cGo3IC5uZXdzLXBob3RvLXBsYXk6OmJlZm9yZXsKICBjb250ZW50OiIiOwogIGRpc3BsYXk6YmxvY2s7CiAgd2lkdGg6MDsKICBoZWlnaHQ6MDsKICBib3JkZXItbGVmdDo1cHggc29saWQgI2ZmZjsKICBib3JkZXItdG9wOjRweCBzb2xpZCB0cmFuc3BhcmVudDsKICBib3JkZXItYm90dG9tOjRweCBzb2xpZCB0cmFuc3BhcmVudDsKICBtYXJnaW4tbGVmdDoycHg7Cn0KQGtleWZyYW1lcyBjZC03dnBqNy1wbGF5LWJsaW5rewogIDAlLDEwMCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNyk7fQogIDUwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwxNjUsMjU1LDAuOSk7fQp9CkBtZWRpYSAobWF4LXdpZHRoOjc2OHB4KXsKICAuY2QtN3ZwajcgLm5ld3MtcGhvdG97ZGlzcGxheTpub25lO30KICAuY2QtN3ZwajcgLm5ld3MtcGhvdG8tcGxheXtsZWZ0OmF1dG87cmlnaHQ6NXB4O30KfQouY2QtN3ZwajcgLm5ld3MtdGltZSB7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgZm9udC1zaXplOiAxMXB4OwogICAgY29sb3I6ICNmZmY7CiAgICBiYWNrZ3JvdW5kOiAjMGQxODIyM2Q7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBwYWRkaW5nOiAxcHggNXB4OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwZGVnIDAlIDEwMCUgLyA0MCUpOwogICAgZm9udC1mYW1pbHk6ICdiZWJhcy1uZXVlLXByby1leHBhbmRlZCcsIHNhbnMtc2VyaWY7CiAgICBsZXR0ZXItc3BhY2luZzogMXB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQouY2QtN3ZwajcgLm5ld3MtdGltZS1kYXl7CiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7CiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4Owp9Ci5jZC03dnBqNyAubmV3cy1jYXJkOmZpcnN0LWNoaWxkIC5uZXdzLXRpbWV7CiAgY29sb3I6ICNmZmY7CiAgYmFja2dyb3VuZDogIzBkMTgyMjNkOwogIGJvcmRlcjogMXB4IHNvbGlkICNlNTI0MmE7Cn0KLmNkLTd2cGo3IC5uZXdzLXRpdGxlIHsKICAgIGZvbnQtZmFtaWx5OiAnYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQnLCBzYW5zLXNlcmlmOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBjb2xvcjogI2ZmZjsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyOwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIGxldHRlci1zcGFjaW5nOiAuMnB4OwogICAgbWluLWhlaWdodDogMi42ZW07Cn0KLmNkLTd2cGo3IC5uZXdzLXRpdGxlOmhvdmVyIHsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwp9Ci5jZC03dnBqNyAubmV3cy1jYXJkW2FyaWEtZGlzYWJsZWQ9InRydWUiXXsKICBjdXJzb3I6ZGVmYXVsdDsKfQouY2QtN3ZwajcgLm5ld3MtY2FyZFthcmlhLWRpc2FibGVkPSJ0cnVlIl0gLm5ld3MtdGl0bGU6aG92ZXJ7CiAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7Cn0KLmNkLTd2cGo3IC5uZXdzLWNhcmRbYXJpYS1kaXNhYmxlZD0idHJ1ZSJdOmhvdmVyIC5uZXdzLXBob3RvIGltZ3sKICBvcGFjaXR5OjE7Cn0KLmNkLTd2cGo3IC5uZXdzLWNhcmRbYXJpYS1kaXNhYmxlZD0idHJ1ZSJdIC5uZXdzLXBob3RvLXBsYXl7CiAgY3Vyc29yOmRlZmF1bHQ7Cn0KCkBtZWRpYSAobWF4LXdpZHRoOjc2OHB4KXsKICAuY2QtN3ZwajcgLm5ld3MtY2FyZDpub3QoW2FyaWEtZGlzYWJsZWQ9InRydWUiXSkgLm5ld3MtdGl0bGV7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9CiAgLmNkLTd2cGo3IC5uZXdzLXRpdGxle2ZvbnQtc2l6ZToxOXB4Oy13ZWJraXQtbGluZS1jbGFtcDozO2xpbmUtY2xhbXA6MzttaW4taGVpZ2h0OjMuOWVtO30KICAuY2QtN3ZwajcgLm5ld3MtdGltZXtmb250LXNpemU6MTRweDt9CiAgLmNkLTd2cGo3IC5uZXdzLWljb257d2lkdGg6MjVweDtoZWlnaHQ6MjVweDt9CiAgLmNkLTd2cGo3IC5uZXdzLWljb246bm90KC5uZXdzLWljb24tLWltZyk6OmJlZm9yZXt3aWR0aDoxMnB4O2hlaWdodDoxMnB4O2JvcmRlcjo2cHggc29saWQgI2U1MjQyYTt9CiAgLmNkLTd2cGo3IC5saXZlLWJnLXNoYWRle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDBkZWcscmdiYSg0LDEyLDMyLDAuOTIpIDAlLHJnYmEoNCwxMiwzMiwwLjUpIDI1JSxyZ2JhKDQsMTIsMzIsMCkgNTAlKTt9Cn0KLyogPT09PT0gTk9USUNJQSBERVNUQUNBREEgKGV4cG9ydGFkbykgPT09PT0gKi8KLmNkLTd2cGo3IC5saXZlLWZlYXR1cmVkewogIGRpc3BsYXk6bm9uZTsKICBwb3NpdGlvbjphYnNvbHV0ZTsKICBsZWZ0OjIwcHg7CiAgcmlnaHQ6MjBweDsKICB0b3A6NDZweDsKICBib3R0b206MDsKICBmbGV4LWRpcmVjdGlvbjpjb2x1bW47CiAgYWxpZ24taXRlbXM6Y2VudGVyOwogIGp1c3RpZnktY29udGVudDpjZW50ZXI7CiAgcGFkZGluZy1ib3R0b206MTMwcHg7CiAgcG9pbnRlci1ldmVudHM6bm9uZTsKICB0ZXh0LWFsaWduOmNlbnRlcjsKICBnYXA6MDsKICB6LWluZGV4OjU7Cn0KCkBtZWRpYSAobWF4LXdpZHRoOjc2OHB4KXsKICAuY2QtN3ZwajcgLmxpdmUtZmVhdHVyZWR7ZGlzcGxheTpub25lO30KfQouY2QtN3ZwajcgLmxpdmUtZmVhdHVyZWQtY291bnRlcnsKICBmb250LWZhbWlseTonYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQnLHNhbnMtc2VyaWY7CiAgZm9udC13ZWlnaHQ6NzAwOwogIGZvbnQtc2l6ZTo0MnB4OwogIGNvbG9yOiNmZmY7CiAgbGV0dGVyLXNwYWNpbmc6MnB4OwogIGxpbmUtaGVpZ2h0OjE7CiAgb3JkZXI6MTsKfQouY2QtN3ZwajcgLmxpdmUtZmVhdHVyZWQtbmV3c3sKICBkaXNwbGF5OmZsZXg7CiAgZmxleC1kaXJlY3Rpb246cm93OwogIGFsaWduLWl0ZW1zOmNlbnRlcjsKICBnYXA6MTBweDsKICBvcmRlcjoyOwp9CkBtZWRpYSAobWF4LXdpZHRoOjc2OHB4KXsKICAuY2QtN3ZwajcgLmxpdmUtZmVhdHVyZWQtY291bnRlcntvcmRlcjoxO21hcmdpbi1ib3R0b206OHB4O21hcmdpbi10b3A6MDt9CiAgLmNkLTd2cGo3IC5saXZlLWZlYXR1cmVkLW5ld3N7b3JkZXI6MjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7fQp9Ci5jZC03dnBqNyAubGl2ZS1mZWF0dXJlZC1pY29uewogIHdpZHRoOjM2cHg7CiAgaGVpZ2h0OjM2cHg7CiAgZmxleC1zaHJpbms6MDsKICBwb3NpdGlvbjpyZWxhdGl2ZTsKICBkaXNwbGF5OmZsZXg7CiAgYWxpZ24taXRlbXM6Y2VudGVyOwogIGp1c3RpZnktY29udGVudDpjZW50ZXI7Cn0KLmNkLTd2cGo3IC5saXZlLWZlYXR1cmVkLWljb246OmJlZm9yZXsKICBjb250ZW50OiIiOwogIHBvc2l0aW9uOmFic29sdXRlOwogIHRvcDo1MCU7CiAgbGVmdDo1MCU7CiAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpOwogIHdpZHRoOjE0cHg7CiAgaGVpZ2h0OjE0cHg7CiAgYm9yZGVyLXJhZGl1czo1MCU7CiAgYmFja2dyb3VuZDojZmZmOwogIGJvcmRlcjo2cHggc29saWQgI2U1MjQyYTsKICBhbmltYXRpb246Y2QtN3ZwajctcmFkYXJQdWxzZSAxLjRzIGluZmluaXRlOwp9Ci5jZC03dnBqNyAubGl2ZS1mZWF0dXJlZC1pY29uLm5ld3MtaWNvbi0taW1nOjpiZWZvcmV7CiAgd2lkdGg6MTAwJTsKICBoZWlnaHQ6MTAwJTsKICBib3JkZXItcmFkaXVzOjk5OXB4OwogIGJvcmRlcjpub25lOwogIGJhY2tncm91bmQtc2l6ZTpjb250YWluOwogIGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsKICBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OwogIGFuaW1hdGlvbjpub25lOwp9Ci5jZC03dnBqNyAubGl2ZS1mZWF0dXJlZC1pY29uLm5ld3MtaWNvbi0taW1nOjphZnRlcnsKICBjb250ZW50OiIiOwogIHBvc2l0aW9uOmFic29sdXRlOwogIHRvcDo1MCU7CiAgbGVmdDo1MCU7CiAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpOwogIHdpZHRoOjIycHg7CiAgaGVpZ2h0OjIycHg7CiAgYm9yZGVyLXJhZGl1czo1MCU7CiAgYW5pbWF0aW9uOmNkLTd2cGo3LXJhZGFyUHVsc2UgMS40cyBpbmZpbml0ZTsKfQouY2QtN3ZwajcgLmxpdmUtZmVhdHVyZWQtdGltZXsKICBmb250LWZhbWlseTonYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQnLHNhbnMtc2VyaWY7CiAgZm9udC1zaXplOjEycHg7CiAgbGV0dGVyLXNwYWNpbmc6MXB4OwogIGJhY2tncm91bmQtY29sb3I6I2U1MjQyYTsKICBjb2xvcjojZmZmOwogIHBhZGRpbmc6MXB4IDVweCAycHggNXB4OwogIGJvcmRlci1yYWRpdXM6M3B4OwogIHdoaXRlLXNwYWNlOm5vd3JhcDsKfQouY2QtN3ZwajcgLmxpdmUtZmVhdHVyZWQtdGl0bGV7CiAgZm9udC1mYW1pbHk6J2JlYmFzLW5ldWUtcHJvLWV4cGFuZGVkJyxzYW5zLXNlcmlmOwogIGZvbnQtd2VpZ2h0OjcwMDsKICBmb250LXNpemU6MjRweDsKICBsaW5lLWhlaWdodDozMHB4OwogIGNvbG9yOiNmZmY7CiAgb3ZlcmZsb3c6aGlkZGVuOwogIHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7CiAgd2hpdGUtc3BhY2U6bm93cmFwOwogIG1heC13aWR0aDo2MDBweDsKfQpAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgLmNkLTd2cGo3IC5saXZlLWZlYXR1cmVkLXRpdGxlewogICAgZm9udC1zaXplOjMwcHg7CiAgICBsaW5lLWhlaWdodDozMHB4OwogICAgd2hpdGUtc3BhY2U6bm9ybWFsOwogICAgdGV4dC1hbGlnbjpjZW50ZXI7CiAgICBtYXgtd2lkdGg6MzIwcHg7CiAgfQogICAgCn0KLmNkLTd2cGo3IC5saXZlLWZlYXR1cmVkLXRpdGxlIGF7Y29sb3I6aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246bm9uZTtwb2ludGVyLWV2ZW50czphdXRvO30KLmNkLTd2cGo3IC5saXZlLWZlYXR1cmVkLXRpdGxlIGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9CkBtZWRpYSAobWF4LXdpZHRoOjc2OHB4KXsKICAuY2QtN3ZwajcgLmxpdmUtZmVhdHVyZWQtdGl0bGUgYXt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30KfQouY2QtN3ZwajcgLmxpdmUtZmVhdHVyZWR7ZGlzcGxheTpub25lIWltcG9ydGFudDt9Ci8qID09PT09IFJFQUNDSU9ORVMgKGFsdGVybmFuIGNvbiBsYSBOb3RpY2lhIGRlc3RhY2FkYSBlbiBlbCBtaXNtbyBodWVjbykgPT09PT0gKi8KLmNkLTd2cGo3IC5yZWFjdGlvbnMtb3ZlcmxheXsKICBkaXNwbGF5Om5vbmU7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgbGVmdDoyMHB4OwogIHJpZ2h0OjIwcHg7CiAgdG9wOjQ2cHg7CiAgYm90dG9tOjA7CiAgZmxleC1kaXJlY3Rpb246Y29sdW1uOwogIGFsaWduLWl0ZW1zOmNlbnRlcjsKICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOwogIHBhZGRpbmctYm90dG9tOjEzMHB4OwogIHBvaW50ZXItZXZlbnRzOm5vbmU7CiAgdGV4dC1hbGlnbjpjZW50ZXI7CiAgb3BhY2l0eTowOwogIHRyYW5zaXRpb246b3BhY2l0eSAuNXMgZWFzZTsKICB6LWluZGV4OjU7Cn0KCkBtZWRpYSAobWF4LXdpZHRoOjc2OHB4KXsKICAuY2QtN3ZwajcgLnJlYWN0aW9ucy1vdmVybGF5e2Rpc3BsYXk6bm9uZTt9Cn0KLmNkLTd2cGo3IC5yZWFjdGlvbnMtb3ZlcmxheS5jZW50ZXItdmlzaWJsZXtvcGFjaXR5OjE7fQouY2QtN3ZwajcgLnJlYWN0aW9uLWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDttYXgtd2lkdGg6ODYwcHg7fQouY2QtN3ZwajcgLnJlYWN0aW9uLWltZ3t3aWR0aDo4MHB4O2hlaWdodDo4MHB4O2JvcmRlci1yYWRpdXM6NTAlO292ZXJmbG93OmhpZGRlbjtmbGV4LXNocmluazowO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMjUpO30KLmNkLTd2cGo3IC5yZWFjdGlvbi1pbWcgaW1ne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb3ZlcjtkaXNwbGF5OmJsb2NrO30KLmNkLTd2cGo3IC5yZWFjdGlvbi10ZXh0ewogIGZvbnQtZmFtaWx5OidiZWJhcy1uZXVlLXByby1leHBhbmRlZCcsc2Fucy1zZXJpZjsKICBmb250LXdlaWdodDo3MDA7CiAgZm9udC1zaXplOjI0cHg7CiAgbGluZS1oZWlnaHQ6MzBweDsKICBjb2xvcjojZmZmOwogIG92ZXJmbG93OmhpZGRlbjsKICB0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOwogIHdoaXRlLXNwYWNlOm5vd3JhcDsKICBtYXgtd2lkdGg6NjAwcHg7Cn0KLmNkLTd2cGo3IC5yZWFjdGlvbi10ZXh0IC5yeC1oaXtjb2xvcjojRkNCRTExO30KLmNkLTd2cGo3IC5yZWFjdGlvbi1saW5re2NvbG9yOiNmZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7cG9pbnRlci1ldmVudHM6YXV0bzt9Ci5jZC03dnBqNyAucmVhY3Rpb24tbGluazpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2NvbG9yOiNmZmY7fQpAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgLmNkLTd2cGo3IC5yZWFjdGlvbi1saW5rOm5vdChbaHJlZj0iIyJdKSAucmVhY3Rpb24tdGV4dHt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30KICAuY2QtN3ZwajcgLnJlYWN0aW9uLWl0ZW17ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O30KICAuY2QtN3ZwajcgLnJlYWN0aW9uLXRleHR7CiAgICBmb250LXNpemU6MzBweDsKICAgIGxpbmUtaGVpZ2h0OjMwcHg7CiAgICB3aGl0ZS1zcGFjZTpub3JtYWw7CiAgICB0ZXh0LWFsaWduOmNlbnRlcjsKICAgIG1heC13aWR0aDozMjBweDsKICB9Cn0KLmNkLTd2cGo3IC5saXZlLWZlYXR1cmVke3RyYW5zaXRpb246b3BhY2l0eSAuNnMgZWFzZTt9Ci8qIE1vZG8gZm9yemFkbyB2aWEgP21vZGU9ZGVza3xtb2JpbGUgLSBzb2JyZXNjcmliZSBlbCBtZWRpYSBxdWVyeSBwYXJhIGZpamFyIGxhIGFsdHVyYSBjb3JyZWN0YSAqLwouY2QtN3ZwajdbZGF0YS1tb2RlPSJkZXNrIl0gLmxpdmUtY2Fyb3VzZWx7aGVpZ2h0OjE3MHB4IWltcG9ydGFudDt9Ci5jZC03dnBqN1tkYXRhLW1vZGU9ImRlc2siXSAubGl2ZS1hcnJvd3N7ZGlzcGxheTpmbGV4IWltcG9ydGFudDt9Ci5jZC03dnBqN1tkYXRhLW1vZGU9ImRlc2siXSAubGl2ZS1iZy12ZWlse29wYWNpdHk6MCFpbXBvcnRhbnQ7fQouY2QtN3ZwajdbZGF0YS1tb2RlPSJtb2JpbGUiXSAubGl2ZS1jYXJvdXNlbHtoZWlnaHQ6MTkwcHghaW1wb3J0YW50O30KLmNkLTd2cGo3W2RhdGEtbW9kZT0ibW9iaWxlIl0gLmxpdmUtYXJyb3dze2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7fQouY2QtN3ZwajdbZGF0YS1tb2RlPSJtb2JpbGUiXSAubGl2ZS1iZy12ZWlse29wYWNpdHk6MCFpbXBvcnRhbnQ7fQo8L3N0eWxlPgoKPGRpdiBjbGFzcz0iY2QtN3ZwajciPgogIDxzZWN0aW9uIGNsYXNzPSJsaXZlLXNlY3Rpb24iIGFyaWEtbGFiZWw9IkNhcnJ1c2VsIGRlIGRpcmVjdG9zIiBhcmlhLXJvbGVkZXNjcmlwdGlvbj0iY2FycnVzZWwiPgogICAgPGRpdiBjbGFzcz0ibGl2ZS1jYXJvdXNlbCIKICAgICAgICAgZGF0YS1yY3ljbGU9IjEiCiAgICAgICAgIGRhdGEtcm1vZGU9ImludGVybGVhdmUiCiAgICAgICAgIGRhdGEtcmR1cj0iMyIKICAgICAgICAgZGF0YS1yZmR1cj0iNSI+CiAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImxpdmUtYmcgbGl2ZS1iZy0tZGVzayI+CiAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2ludmFzaW9uLWRlLWNldXRhLWZvbmRvLWRlc2stMjAyNjA4MjktMTkzMjA3LTcwMGI3OS5qcGciIGFsdD0iRU4gRElSRUNUTzogaW52YXNp824gZGUgY2V1dGEiIGZldGNocHJpb3JpdHk9ImhpZ2giIGxvYWRpbmc9ImVhZ2VyIiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxpdmUtYmcgbGl2ZS1iZy0tbW9iaWxlIj4KICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEvaW52YXNpb24tZGUtY2V1dGEtZm9uZG8tbW9iaWxlLTIwMjYwODI5LTIwMTUzNy1hOTMzMGIuanBnIiBhbHQ9IkVOIERJUkVDVE86IGludmFzafNuIGRlIGNldXRhIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJsaXZlLWJnLXZlaWwiPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJsaXZlLWJnLXNoYWRlIj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ibGl2ZS1pbm5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibGl2ZS10b3AiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGl2ZS10YWdzIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhZy1saXZlIj5FTiBESVJFQ1RPPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFnLXRvcGljIj5pbnZhc2nzbiBkZSBjZXV0YTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGl2ZS10b3AtcmlnaHQiPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGl2ZS1hcnJvd3MiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IkFudGVyaW9yIj4KICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+CiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNS41IDE5bC03LTcgNy03IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IlNpZ3VpZW50ZSI+CiAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPgogICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNOC41IDVsNyA3LTcgNyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJsaXZlLXRyYWNrLXdyYXAiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGl2ZS10cmFjay1zY3JvbGwiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaXZlLXRyYWNrIiByb2xlPSJsaXN0IiBzdHlsZT0icGFkZGluZy1yaWdodDo1MHB4Ij4KICAgICAgICAgICAgICAKICAgICAgPGEgY2xhc3M9Im5ld3MtY2FyZCBoYXMtcGhvdG8iIHJvbGU9Imxpc3RpdGVtIgogICAgICAgICBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BhbmEvY2VudGVuYXJlcy1jZXV0aWVzLXZ1ZWx2ZW4tY2FsbGVzLXByb3Rlc3RhLWltcHJvdmlzYWRhLWdyaXRvLWNldXRhLXVuaWRhLWphbWFzLXNlcmEtdmVuY2lkYS0yMDE5NDQ1MCIgdGFyZ2V0PSJfdG9wIiB0aXRsZT0iTGVlciBhaG9yYTogMjI6MDkgtyBDZW50ZW5hcmVzIGRlIGNldXTtZXMgdnVlbHZlbiBhIGxhcyBjYWxsZXMgZW4gdW5hIHByb3Rlc3RhIGltcHJvdmlzYWRhIGFsIGdyaXRvIGRlICZxdW90O6FDZXV0YSB1bmlkYSBqYW3hcyBzZXLhIHZlbmNpZGEhJnF1b3Q7IiBhcmlhLWxhYmVsPSJMZWVyIGFob3JhOiAyMjowOSC3IENlbnRlbmFyZXMgZGUgY2V1dO1lcyB2dWVsdmVuIGEgbGFzIGNhbGxlcyBlbiB1bmEgcHJvdGVzdGEgaW1wcm92aXNhZGEgYWwgZ3JpdG8gZGUgJnF1b3Q7oUNldXRhIHVuaWRhIGphbeFzIHNlcuEgdmVuY2lkYSEmcXVvdDsiPgogICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtcGhvdG8iPjxpbWcgc3JjPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEvaW52YXNpb24tZGUtY2V1dGEtbm90aWNpYS1mb3RvLTIwMjYwODI5LTIwMTQwMi01NzNiNzkuanBnIiBhbHQ9IkNlbnRlbmFyZXMgZGUgY2V1dO1lcyB2dWVsdmVuIGEgbGFzIGNhbGxlcyBlbiB1bmEgcHJvdGVzdGEgaW1wcm92aXNhZGEgYWwgZ3JpdG8gZGUgJnF1b3Q7oUNldXRhIHVuaWRhIGphLi4uIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtdGV4dCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLW5vZGUiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmV3cy1pY29uIGhhcy1yYWRhciIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5ld3MtdGltZSIgZGF0YS1kYXRlPSIyMDI2LTA4LTI5Ij4yMjowOTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibmV3cy1tZXRhIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmV3cy10aXRsZSI+Q2VudGVuYXJlcyBkZSBjZXV07WVzIHZ1ZWx2ZW4gYSBsYXMgY2FsbGVzIGVuIHVuYSBwcm90ZXN0YSBpbXByb3Zpc2FkYSBhbCBncml0byBkZSAioUNldXQuLi48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2E+CiAgICAgIDxhIGNsYXNzPSJuZXdzLWNhcmQgaGFzLXBob3RvIiByb2xlPSJsaXN0aXRlbSIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwYW5hL29uZy1hbGVtYW5hLWluc3RhbGEtcHVlc3RvLXBsYXlhLWRlbC10cmFtcG9saW4tY2V1dGEtcmVnYWxhci1tb3ZpbGVzLWNhcmdhZG9yZXMtaW52YXNvcmVzLTIwMTk0MjI2IiB0YXJnZXQ9Il90b3AiIHRpdGxlPSJMZWVyIGFob3JhOiAxOTowNiC3IFVuYSBPTkcgYWxlbWFuYSBpbnN0YWxhIHVuIHB1ZXN0byBlbiBsYSBwbGF5YSBkZWwgVHJhbXBvbO1uIGVuIENldXRhIHBhcmEgcmVnYWxhciBt83ZpbGVzIHkgY2FyZ2Fkb3JlcyBhIGxvcyBpbnZhc29yZXMiIGFyaWEtbGFiZWw9IkxlZXIgYWhvcmE6IDE5OjA2ILcgVW5hIE9ORyBhbGVtYW5hIGluc3RhbGEgdW4gcHVlc3RvIGVuIGxhIHBsYXlhIGRlbCBUcmFtcG9s7W4gZW4gQ2V1dGEgcGFyYSByZWdhbGFyIG3zdmlsZXMgeSBjYXJnYWRvcmVzIGEgbG9zIGludmFzb3JlcyI+CiAgICAgICAgPGRpdiBjbGFzcz0ibmV3cy1waG90byI+PGltZyBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9pbnZhc2lvbi1kZS1jZXV0YS1ub3RpY2lhLWZvdG8tMjAyNjA4MjktMTkzMjM0LTNhYjliYi5qcGciIGFsdD0iVW5hIE9ORyBhbGVtYW5hIGluc3RhbGEgdW4gcHVlc3RvIGVuIGxhIHBsYXlhIGRlbCBUcmFtcG9s7W4gZW4gQ2V1dGEgcGFyYSByZWdhbGFyIG3zdmlsZXMgeSBjYXJnYWRvLi4uIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtdGV4dCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLW5vZGUiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmV3cy1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmV3cy10aW1lIiBkYXRhLWRhdGU9IjIwMjYtMDgtMjkiPjE5OjA2PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLW1ldGEiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLXRpdGxlIj5VbmEgT05HIGFsZW1hbmEgaW5zdGFsYSB1biBwdWVzdG8gZW4gbGEgcGxheWEgZGVsIFRyYW1wb2ztbiBlbiBDZXV0YSBwYXJhIHJlZ2FsYXIgbfN2aWxlcy4uLjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvYT4KICAgICAgPGEgY2xhc3M9Im5ld3MtY2FyZCBoYXMtcGhvdG8iIHJvbGU9Imxpc3RpdGVtIgogICAgICAgICBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BhbmEvaWRlbnRpZmljYW4tbWllbWJyb3Mtb25nLXJlcGFydGlyLWV4cGxvc2l2b3MtY2FzZXJvcy1pbm1pZ3JhbnRlcy1pbGVnYWxlcy1jZXV0YS0yMDE5NDE2OCIgdGFyZ2V0PSJfdG9wIiB0aXRsZT0iTGVlciBhaG9yYTogMTg6NTkgtyBMYSBQb2xpY+1hIGlkZW50aWZpY2EgYSBsb3MgYWN0aXZpc3RhcyBkZSBObyBOYW1lIEtpdGNoZW4gY29tbyBsYSBPTkcgcXVlIHJlcGFydGnzIGPzY3RlbGVzIG1vbG90b3YgZW50cmUgbG9zIGludmFzb3JlcyBkZSBDZXV0YSIgYXJpYS1sYWJlbD0iTGVlciBhaG9yYTogMTg6NTkgtyBMYSBQb2xpY+1hIGlkZW50aWZpY2EgYSBsb3MgYWN0aXZpc3RhcyBkZSBObyBOYW1lIEtpdGNoZW4gY29tbyBsYSBPTkcgcXVlIHJlcGFydGnzIGPzY3RlbGVzIG1vbG90b3YgZW50cmUgbG9zIGludmFzb3JlcyBkZSBDZXV0YSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibmV3cy1waG90byI+PGltZyBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9pbnZhc2lvbi1kZS1jZXV0YS1ub3RpY2lhLWZvdG8tMjAyNjA4MjktMTkzMzA0LWUyOTdjYy5qcGciIGFsdD0iTGEgUG9saWPtYSBpZGVudGlmaWNhIGEgbG9zIGFjdGl2aXN0YXMgZGUgTm8gTmFtZSBLaXRjaGVuIGNvbW8gbGEgT05HIHF1ZSByZXBhcnRp8yBj82N0ZWxlcyBtb2xvdG92Li4uIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtdGV4dCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLW5vZGUiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmV3cy1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmV3cy10aW1lIiBkYXRhLWRhdGU9IjIwMjYtMDgtMjkiPjE4OjU5PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLW1ldGEiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLXRpdGxlIj5MYSBQb2xpY+1hIGlkZW50aWZpY2EgYSBsb3MgYWN0aXZpc3RhcyBkZSBObyBOYW1lIEtpdGNoZW4gY29tbyBsYSBPTkcgcXVlIHJlcGFydGnzIGPzY3RlbC4uLjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvYT4KICAgICAgPGEgY2xhc3M9Im5ld3MtY2FyZCBoYXMtcGhvdG8iIHJvbGU9Imxpc3RpdGVtIgogICAgICAgICBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BhbmEvbnVldmEtZW1ib3NjYWRhLWNldXRhLWN1YXRyby1tYXJyb3F1aWVzLWRldGVuaWRvcy1hcGVkcmVhci1ncnVwby1taWxpdGFyZXMtaGVyaXItc2FyZ2VudG8tMjAxOTM1NDYiIHRhcmdldD0iX3RvcCIgdGl0bGU9IkxlZXIgYWhvcmE6IDEyOjUzILcgTnVldmEgZW1ib3NjYWRhIGVuIENldXRhOiA0IG1hcnJvcXXtZXMgZGV0ZW5pZG9zIHBvciBhcGVkcmVhciBhIG1pbGl0YXJlcyIgYXJpYS1sYWJlbD0iTGVlciBhaG9yYTogMTI6NTMgtyBOdWV2YSBlbWJvc2NhZGEgZW4gQ2V1dGE6IDQgbWFycm9xde1lcyBkZXRlbmlkb3MgcG9yIGFwZWRyZWFyIGEgbWlsaXRhcmVzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLXBob3RvIj48aW1nIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2ludmFzaW9uLWRlLWNldXRhLW5vdGljaWEtZm90by0yMDI2MDgyOS0xOTMzMTUtNGQ4ZTY1LmpwZyIgYWx0PSJOdWV2YSBlbWJvc2NhZGEgZW4gQ2V1dGE6IDQgbWFycm9xde1lcyBkZXRlbmlkb3MgcG9yIGFwZWRyZWFyIGEgbWlsaXRhcmVzIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im5ld3MtdGV4dCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLW5vZGUiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmV3cy1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0ibmV3cy10aW1lIiBkYXRhLWRhdGU9IjIwMjYtMDgtMjkiPjEyOjUzPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLW1ldGEiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLXRpdGxlIj5OdWV2YSBlbWJvc2NhZGEgZW4gQ2V1dGE6IDQgbWFycm9xde1lcyBkZXRlbmlkb3MgcG9yIGFwZWRyZWFyIGEgbWlsaXRhcmVzPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9hPgogICAgICA8YSBjbGFzcz0ibmV3cy1jYXJkIGhhcy1waG90byIgcm9sZT0ibGlzdGl0ZW0iCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGFuYS9mZWlqb28tYW51bmNpYS1xdWUtcHAtcGVyc29uYXJhLWNhdXNhLWFiaWVydGEtYXVkaWVuY2lhLW5hY2lvbmFsLWludmFzaW9uLWNldXRhLTIwMTkzNjY2IiB0YXJnZXQ9Il90b3AiIHRpdGxlPSJMZWVyIGFob3JhOiAxMzozMyC3IEZlaWrzbyBhbnVuY2lhIHF1ZSBlbCBQUCBzZSBwZXJzb25hcuEgZW4gbGEgY2F1c2EgYWJpZXJ0YSBlbiBsYSBBdWRpZW5jaWEgTmFjaW9uYWwgcG9yIENldXRhOiAmcXVvdDtFbCBzYW5jaGlzbW8gZXN04SBhY2FiYWRvJnF1b3Q7IiBhcmlhLWxhYmVsPSJMZWVyIGFob3JhOiAxMzozMyC3IEZlaWrzbyBhbnVuY2lhIHF1ZSBlbCBQUCBzZSBwZXJzb25hcuEgZW4gbGEgY2F1c2EgYWJpZXJ0YSBlbiBsYSBBdWRpZW5jaWEgTmFjaW9uYWwgcG9yIENldXRhOiAmcXVvdDtFbCBzYW5jaGlzbW8gZXN04SBhY2FiYWRvJnF1b3Q7Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLXBob3RvIj48aW1nIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2ludmFzaW9uLWRlLWNldXRhLW5vdGljaWEtZm90by0yMDI2MDgyOS0xOTMzMjctNDJhZmY1LmpwZyIgYWx0PSJGZWlq828gYW51bmNpYSBxdWUgZWwgUFAgc2UgcGVyc29uYXLhIGVuIGxhIGNhdXNhIGFiaWVydGEgZW4gbGEgQXVkaWVuY2lhIE5hY2lvbmFsIHBvciBDZXV0YTogJnF1b3Q7RWwgcy4uLiIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJuZXdzLXRleHQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibmV3cy1ub2RlIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5ld3MtaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im5ld3MtdGltZSIgZGF0YS1kYXRlPSIyMDI2LTA4LTI5Ij4xMzozMzwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibmV3cy1tZXRhIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmV3cy10aXRsZSI+RmVpavNvIGFudW5jaWEgcXVlIGVsIFBQIHNlIHBlcnNvbmFy4SBlbiBsYSBjYXVzYSBhYmllcnRhIGVuIGxhIEF1ZGllbmNpYSBOYWNpb25hbCBwb3IgQ2UuLi48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9zZWN0aW9uPgo8L2Rpdj4KCjxzY3JpcHQ+CihmdW5jdGlvbigpewogIHZhciByb290ICA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jZC03dnBqNycpOwogIGlmICghcm9vdCkgcmV0dXJuOwogIHZhciB0cmFjayA9IHJvb3QucXVlcnlTZWxlY3RvcignLmxpdmUtdHJhY2snKTsKICBpZiAoIXRyYWNrKSByZXR1cm47CgogIC8vIERldGVjdGFyIG1vZG8gZm9yemFkbyBwb3IgcGFy4W1ldHJvIFVSTCAoP21vZGU9ZGVza3xtb2JpbGUpCiAgdmFyIF91cmxNb2RlID0gKG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCkpLmdldCgnbW9kZScpOwogIGlmIChfdXJsTW9kZSA9PT0gJ2Rlc2snIHx8IF91cmxNb2RlID09PSAnbW9iaWxlJykgewogICAgcm9vdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbW9kZScsIF91cmxNb2RlKTsKICB9CiAgZnVuY3Rpb24gX2lzTW9iaWxlKCl7CiAgICB2YXIgbSA9IHJvb3QuZ2V0QXR0cmlidXRlKCdkYXRhLW1vZGUnKTsKICAgIGlmIChtID09PSAnZGVzaycpICAgcmV0dXJuIGZhbHNlOwogICAgaWYgKG0gPT09ICdtb2JpbGUnKSByZXR1cm4gdHJ1ZTsKICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8PSA3Njg7CiAgfQoKICB2YXIgYXJyb3dzID0gcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuYXJyb3cnKTsKICB2YXIgR0FQID0gMTY7CgogIGZ1bmN0aW9uIHNldE1vYmlsZUNhcmRXaWR0aHMoKXsKICAgIHZhciBjYXJkcyA9IHJvb3QucXVlcnlTZWxlY3RvckFsbCgnLm5ld3MtY2FyZCcpOwogICAgaWYgKCFjYXJkcy5sZW5ndGgpIHJldHVybjsKICAgIGlmIChfaXNNb2JpbGUoKSkgewogICAgICB2YXIgdHJhY2tXID0gdHJhY2suZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7CiAgICAgIGlmICghdHJhY2tXKSByZXR1cm47CiAgICAgIHZhciBtb2JpbGVDYXJkVyA9IE1hdGgucm91bmQodHJhY2tXICogMC43NSk7CiAgICAgIGNhcmRzLmZvckVhY2goZnVuY3Rpb24oYyl7IGMuc3R5bGUud2lkdGggPSBtb2JpbGVDYXJkVyArICdweCc7IH0pOwogICAgICB0cmFjay5zdHlsZS5wYWRkaW5nUmlnaHQgPSBNYXRoLnJvdW5kKG1vYmlsZUNhcmRXICogMC41KSArICdweCc7CiAgICB9IGVsc2UgewogICAgICBjYXJkcy5mb3JFYWNoKGZ1bmN0aW9uKGMpeyBjLnN0eWxlLndpZHRoID0gJyc7IH0pOwogICAgICB2YXIgZGVza1cgPSBnZXRDYXJkV2lkdGgoKTsKICAgICAgaWYgKGRlc2tXKSB0cmFjay5zdHlsZS5wYWRkaW5nUmlnaHQgPSBNYXRoLnJvdW5kKGRlc2tXICogMC41KSArICdweCc7CiAgICB9CiAgfQogIGZ1bmN0aW9uIGdldENhcmRXaWR0aCgpewogICAgdmFyIGNhcmQgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy5uZXdzLWNhcmQnKTsKICAgIHJldHVybiBjYXJkID8gY2FyZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCA6IDA7CiAgfQoKICBmdW5jdGlvbiB1cGRhdGVUcmFja0xpbmUoKXsKICAgIHZhciBzY3JvbGwgPSB0cmFjay5wYXJlbnRFbGVtZW50OwogICAgaWYgKCFzY3JvbGwpIHJldHVybjsKICAgIHZhciBmaXJzdENhcmQgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy5uZXdzLWNhcmQnKTsKICAgIGlmICghZmlyc3RDYXJkKSByZXR1cm47CiAgICB2YXIgbm9kZSA9IGZpcnN0Q2FyZC5xdWVyeVNlbGVjdG9yKCcubmV3cy1ub2RlJyk7CiAgICBpZiAoIW5vZGUpIHJldHVybjsKICAgIHZhciBzY3JvbGxSZWN0ID0gc2Nyb2xsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgdmFyIG5vZGVSZWN0ICAgPSBub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgaWYgKCFzY3JvbGxSZWN0LmhlaWdodCkgcmV0dXJuOwogICAgdmFyIGJvdHRvbSA9IE1hdGgucm91bmQoc2Nyb2xsUmVjdC5ib3R0b20gLSBub2RlUmVjdC5ib3R0b20gKyBub2RlUmVjdC5oZWlnaHQgLyAyKTsKICAgIGlmIChib3R0b20gPj0gMCkgc2Nyb2xsLnN0eWxlLnNldFByb3BlcnR5KCctLXRyYWNrLWxpbmUtYm90dG9tJywgYm90dG9tICsgJ3B4Jyk7CiAgfQoKICBzZXRNb2JpbGVDYXJkV2lkdGhzKCk7CiAgdXBkYXRlVHJhY2tMaW5lKCk7CiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZ1bmN0aW9uKCl7IHNldE1vYmlsZUNhcmRXaWR0aHMoKTsgdXBkYXRlVHJhY2tMaW5lKCk7IH0pOwoKICAvLyBDcm9ub2xvZ+1hIGF1dG9t4XRpY2E6IGVsIGNhcnJ1c2VsIHB1ZWRlIHNlZ3VpciBlbiBwb3J0YWRhIHZhcmlvcyBk7WFzLAogIC8vIGFz7SBxdWUgY2FkYSB2aXNpdGEgY2FsY3VsYSBhcXXtICJBeWVyIi8iSGFjZSBOIGTtYXMiIGEgcGFydGlyIGRlIGxhCiAgLy8gZmVjaGEgcmVhbCBkZSBsYSBub3RpY2lhIChkYXRhLWRhdGUpLCBzaW4gdGVuZXIgcXVlIHJlcHVibGljYXIgbmFkYS4KICB2YXIgdGltZUVscyA9IHJvb3QucXVlcnlTZWxlY3RvckFsbCgnLm5ld3MtdGltZVtkYXRhLWRhdGVdJyk7CiAgaWYgKHRpbWVFbHMubGVuZ3RoKXsKICAgIHZhciBfbm93ID0gbmV3IERhdGUoKTsKICAgIHZhciBfdG9kYXkgPSBuZXcgRGF0ZShfbm93LmdldEZ1bGxZZWFyKCksIF9ub3cuZ2V0TW9udGgoKSwgX25vdy5nZXREYXRlKCkpOwogICAgdGltZUVscy5mb3JFYWNoKGZ1bmN0aW9uKHQpewogICAgICB2YXIgaXNvID0gdC5nZXRBdHRyaWJ1dGUoJ2RhdGEtZGF0ZScpOwogICAgICBpZiAoIWlzbykgcmV0dXJuOwogICAgICB2YXIgcCA9IGlzby5zcGxpdCgnLScpOwogICAgICB2YXIgZGlmZiA9IE1hdGgucm91bmQoKF90b2RheSAtIG5ldyBEYXRlKCtwWzBdLCArcFsxXS0xLCArcFsyXSkpIC8gODY0MDAwMDApOwogICAgICBpZiAoZGlmZiA8PSAwKSByZXR1cm47CiAgICAgIHZhciBsYWJlbCA9IGRpZmYgPT09IDEgPyAnQXllcicgOiAoJ0hhY2UgJyArIGRpZmYgKyAnIGTtYXMnKTsKICAgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CiAgICAgIHNwYW4uY2xhc3NOYW1lID0gJ25ld3MtdGltZS1kYXknOwogICAgICBzcGFuLnRleHRDb250ZW50ID0gJy0gJyArIGxhYmVsOwogICAgICB0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcgJykpOwogICAgICB0LmFwcGVuZENoaWxkKHNwYW4pOwogICAgfSk7CiAgfQoKICBhcnJvd3MuZm9yRWFjaChmdW5jdGlvbihidG4pewogICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSl7CiAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgdmFyIGRpciA9IHRoaXMgPT09IGFycm93c1swXSA/IC0xIDogMTsKCiAgICAgIGlmIChfaXNNb2JpbGUoKSl7CiAgICAgICAgdmFyIHcgPSBnZXRDYXJkV2lkdGgoKTsKICAgICAgICBpZiAoIXcpIHJldHVybjsKICAgICAgICB0cmFjay5zY3JvbGxCeSh7IGxlZnQ6ICh3ICsgR0FQKSAqIGRpciwgYmVoYXZpb3I6J3Ntb290aCcgfSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICAvLyBEZXNrOiBtZWRpbW9zIGxhIHBvc2ljafNuIHkgZWwgYW5jaG8gUkVBTCBkZSBjYWRhIHRhcmpldGEgKHZhcu1hbgogICAgICAvLyBzaSB0aWVuZW4gZm90byBvIG5vKSB5IGFsaW5lYW1vcyBzaWVtcHJlIGVsIGJvcmRlIGl6cXVpZXJkbyBkZSBsYQogICAgICAvLyBzaWd1aWVudGUgdGFyamV0YSBubyBjb21wbGV0YW1lbnRlIHZpc2libGUsIGVuIHZleiBkZSBhc3VtaXIgdW4KICAgICAgLy8gYW5jaG8gdW5pZm9ybWUgbyBkZXNwbGF6YXIgcG9yIGVsIGFuY2hvIGZpam8gZGVsIHRyYWNrLgogICAgICB2YXIgY2FyZHMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChyb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5uZXdzLWNhcmQnKSk7CiAgICAgIGlmICghY2FyZHMubGVuZ3RoKSByZXR1cm47CiAgICAgIHZhciB0cmFja1JlY3QgPSB0cmFjay5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgdmFyIHRyYWNrVyA9IHRyYWNrUmVjdC53aWR0aCB8fCAwOwogICAgICBpZiAoIXRyYWNrVykgcmV0dXJuOwogICAgICB2YXIgc2Nyb2xsTGVmdCA9IHRyYWNrLnNjcm9sbExlZnQ7CgogICAgICB2YXIgcG9zaXRpb25zID0gY2FyZHMubWFwKGZ1bmN0aW9uKGMpewogICAgICAgIHZhciByID0gYy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICByZXR1cm4geyBsZWZ0OiByLmxlZnQgLSB0cmFja1JlY3QubGVmdCArIHNjcm9sbExlZnQsIHdpZHRoOiByLndpZHRoIH07CiAgICAgIH0pOwoKICAgICAgdmFyIHRhcmdldExlZnQgPSBudWxsOwoKICAgICAgaWYgKGRpciA+IDApewogICAgICAgIHZhciB2aWV3cG9ydFJpZ2h0ID0gc2Nyb2xsTGVmdCArIHRyYWNrVzsKICAgICAgICB2YXIgbmV4dCA9IG51bGw7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwb3NpdGlvbnMubGVuZ3RoOyBpKyspewogICAgICAgICAgaWYgKHBvc2l0aW9uc1tpXS5sZWZ0ICsgcG9zaXRpb25zW2ldLndpZHRoID4gdmlld3BvcnRSaWdodCArIDEpeyBuZXh0ID0gcG9zaXRpb25zW2ldOyBicmVhazsgfQogICAgICAgIH0KICAgICAgICBpZiAoIW5leHQpIHJldHVybjsKICAgICAgICB0YXJnZXRMZWZ0ID0gbmV4dC5sZWZ0OwogICAgICB9IGVsc2UgewogICAgICAgIHZhciBjdXJJZHggPSAtMTsKICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHBvc2l0aW9ucy5sZW5ndGg7IGorKyl7CiAgICAgICAgICBpZiAocG9zaXRpb25zW2pdLmxlZnQgPj0gc2Nyb2xsTGVmdCAtIDEpeyBjdXJJZHggPSBqOyBicmVhazsgfQogICAgICAgIH0KICAgICAgICBpZiAoY3VySWR4ID09PSAtMSkgY3VySWR4ID0gcG9zaXRpb25zLmxlbmd0aCAtIDE7CiAgICAgICAgaWYgKGN1cklkeCA8PSAwKSByZXR1cm47CiAgICAgICAgdmFyIGFjYyA9IDA7CiAgICAgICAgdmFyIG5ld0lkeCA9IGN1cklkeDsKICAgICAgICBmb3IgKHZhciBrID0gY3VySWR4IC0gMTsgayA+PSAwOyBrLS0pewogICAgICAgICAgdmFyIHcyID0gcG9zaXRpb25zW2tdLndpZHRoICsgR0FQOwogICAgICAgICAgaWYgKGFjYyArIHcyID4gdHJhY2tXKSBicmVhazsKICAgICAgICAgIGFjYyArPSB3MjsKICAgICAgICAgIG5ld0lkeCA9IGs7CiAgICAgICAgfQogICAgICAgIGlmIChuZXdJZHggPT09IGN1cklkeCkgbmV3SWR4ID0gY3VySWR4IC0gMTsKICAgICAgICB0YXJnZXRMZWZ0ID0gcG9zaXRpb25zW25ld0lkeF0ubGVmdDsKICAgICAgfQoKICAgICAgdmFyIGRlbHRhID0gdGFyZ2V0TGVmdCAtIHNjcm9sbExlZnQ7CiAgICAgIGlmIChNYXRoLmFicyhkZWx0YSkgPCAxKSByZXR1cm47CiAgICAgIHRyYWNrLnNjcm9sbEJ5KHsgbGVmdDogZGVsdGEsIGJlaGF2aW9yOidzbW9vdGgnIH0pOwogICAgfSk7CiAgfSk7CgogIAoKICB2YXIgc3BvbnNvcldyYXAgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy5saXZlLXNwb25zb3ItbG9nb3MnKTsKICBpZiAoc3BvbnNvcldyYXApewogICAgdmFyIHNJbWdzID0gc3BvbnNvcldyYXAucXVlcnlTZWxlY3RvckFsbCgnaW1nJyk7CiAgICBpZiAoc0ltZ3MubGVuZ3RoID4gMSl7CiAgICAgIHZhciBzSWR4ID0gMDsKICAgICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXsKICAgICAgICBzSW1nc1tzSWR4XS5jbGFzc0xpc3QucmVtb3ZlKCdpcy1hY3RpdmUnKTsKICAgICAgICBzSWR4ID0gKHNJZHggKyAxKSAlIHNJbWdzLmxlbmd0aDsKICAgICAgICBzSW1nc1tzSWR4XS5jbGFzc0xpc3QuYWRkKCdpcy1hY3RpdmUnKTsKICAgICAgfSwgNDAwMCk7CiAgICB9CiAgfQoKICAvLyBDdWVudGEgYXRy4XMgbm90aWNpYSBkZXN0YWNhZGEKICB2YXIgZmVhdHVyZWRDb3VudGVyRWwgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy5saXZlLWZlYXR1cmVkLWNvdW50ZXInKTsKICB2YXIgZmVhdHVyZWRUYXJnZXQgPSAnMjAyNi0wOC0yOFQxOTowNic7CiAgaWYgKGZlYXR1cmVkQ291bnRlckVsICYmIGZlYXR1cmVkVGFyZ2V0KXsKICAgIGZ1bmN0aW9uIHVwZGF0ZUZlYXR1cmVkQ291bnRlcigpewogICAgICB2YXIgZGlmZiA9IG5ldyBEYXRlKGZlYXR1cmVkVGFyZ2V0KSAtIG5ldyBEYXRlKCk7CiAgICAgIGlmIChkaWZmIDw9IDApeyBmZWF0dXJlZENvdW50ZXJFbC50ZXh0Q29udGVudCA9ICcwMDowMDowMCc7IHJldHVybjsgfQogICAgICB2YXIgdG90YWxIID0gTWF0aC5mbG9vcihkaWZmIC8gMzYwMDAwMCk7CiAgICAgIHZhciBtID0gTWF0aC5mbG9vcigoZGlmZiAlIDM2MDAwMDApIC8gNjAwMDApOwogICAgICB2YXIgcyA9IE1hdGguZmxvb3IoKGRpZmYgJSA2MDAwMCkgICAvIDEwMDApOwogICAgICBmdW5jdGlvbiBwYWQobil7IHJldHVybiBuIDwgMTAgPyAnMCcgKyBuIDogU3RyaW5nKG4pOyB9CiAgICAgIGZlYXR1cmVkQ291bnRlckVsLnRleHRDb250ZW50ID0gcGFkKHRvdGFsSCkrJzonK3BhZChtKSsnOicrcGFkKHMpOwogICAgfQogICAgdXBkYXRlRmVhdHVyZWRDb3VudGVyKCk7CiAgICBzZXRJbnRlcnZhbCh1cGRhdGVGZWF0dXJlZENvdW50ZXIsIDEwMDApOwogIH0KCiAgLy8gUmVhY2Npb25lczogYWx0ZXJuYW4gY29uIGxhIE5vdGljaWEgZGVzdGFjYWRhIGVuIGVsIG1pc21vIGh1ZWNvIGNlbnRyYWwKICB2YXIgbGMgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy5saXZlLWNhcm91c2VsJyk7CiAgdmFyIGZlYXR1cmVkRWwgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy5saXZlLWZlYXR1cmVkJyk7CiAgdmFyIGZlYXR1cmVkTGlua0VsID0gZmVhdHVyZWRFbCA/IGZlYXR1cmVkRWwucXVlcnlTZWxlY3RvcignLmxpdmUtZmVhdHVyZWQtdGl0bGUgYScpIDogbnVsbDsKICB2YXIgcmVhY3Rpb25zT3ZlcmxheUVsID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcucmVhY3Rpb25zLW92ZXJsYXknKTsKICB2YXIgcmVhY3Rpb25MaW5rRWwgID0gcmVhY3Rpb25zT3ZlcmxheUVsID8gcmVhY3Rpb25zT3ZlcmxheUVsLnF1ZXJ5U2VsZWN0b3IoJy5yZWFjdGlvbi1saW5rJykgOiBudWxsOwogIHZhciByZWFjdGlvbkltZ0VsICAgPSByZWFjdGlvbnNPdmVybGF5RWwgPyByZWFjdGlvbnNPdmVybGF5RWwucXVlcnlTZWxlY3RvcignLnJlYWN0aW9uLWltZyBpbWcnKSA6IG51bGw7CiAgdmFyIHJlYWN0aW9uVGV4dEVsICA9IHJlYWN0aW9uc092ZXJsYXlFbCA/IHJlYWN0aW9uc092ZXJsYXlFbC5xdWVyeVNlbGVjdG9yKCcucmVhY3Rpb24tdGV4dCcpIDogbnVsbDsKICBpZiAobGMgJiYgcmVhY3Rpb25zT3ZlcmxheUVsKXsKICAgIHZhciB1c2VSQyAgPSBsYy5nZXRBdHRyaWJ1dGUoJ2RhdGEtcmN5Y2xlJykgPT09ICcxJzsKICAgIHZhciByTW9kZSAgPSBsYy5nZXRBdHRyaWJ1dGUoJ2RhdGEtcm1vZGUnKSB8fCAnaW50ZXJsZWF2ZSc7CiAgICB2YXIgckR1ciAgID0gTWF0aC5tYXgoMSwgcGFyc2VJbnQobGMuZ2V0QXR0cmlidXRlKCdkYXRhLXJkdXInKXx8JzMnLDEwKSk7CiAgICB2YXIgcmZEdXIgID0gTWF0aC5tYXgoMSwgcGFyc2VJbnQobGMuZ2V0QXR0cmlidXRlKCdkYXRhLXJmZHVyJyl8fCc1JywxMCkpOwogICAgdmFyIHJJbnRlcmxlYXZlID0gKHJNb2RlID09PSAnaW50ZXJsZWF2ZScpOwogICAgdmFyIHJEYXRhRWwgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy5yZWFjdGlvbnMtZGF0YScpOwogICAgdmFyIHJlYWN0aW9ucyA9IFtdOwogICAgaWYgKHJEYXRhRWwpeyB0cnl7IHJlYWN0aW9ucyA9IEpTT04ucGFyc2UockRhdGFFbC50ZXh0Q29udGVudHx8J1tdJyl8fFtdOyB9Y2F0Y2goXyl7IHJlYWN0aW9ucz1bXTsgfSB9CiAgICB2YXIgcmNUaW1lciA9IG51bGwsIHJjUnVuSWQgPSAwLCByY0luZGV4ID0gMDsKCiAgICAvLyBTaSBlbCBwdW50ZXJvIHNlIHF1ZWRhIHF1aWV0byBzb2JyZSBlbCBodWVjbyBjZW50cmFsIG1pZW50cmFzIG5vdGljaWEKICAgIC8vIGRlc3RhY2FkYSB5IHJlYWNjaW9uZXMgc2UgYWx0ZXJuYW4sIGVsIG5hdmVnYWRvciBubyByZWNhbGN1bGEgcG9yIHN1CiAgICAvLyBjdWVudGEgcXXpIGVubGFjZSBoYXkgYmFqbyBlbCBjdXJzb3IgKGVzbyBzb2xvIG9jdXJyZSBjb24gdW4gbW91c2Vtb3ZlCiAgICAvLyByZWFsKS4gR3VhcmRhbW9zIGxhIPpsdGltYSBwb3NpY2nzbiB5IHJlZW1pdGltb3MgdW4gbW91c2Vtb3ZlCiAgICAvLyBzaW506XRpY28gY2FkYSB2ZXogcXVlIGNhbWJpYSBlbCBlbmxhY2UgYWN0aXZvLgogICAgdmFyIGxhc3RQb2ludGVyWCA9IG51bGwsIGxhc3RQb2ludGVyWSA9IG51bGw7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBmdW5jdGlvbihlKXsgbGFzdFBvaW50ZXJYID0gZS5jbGllbnRYOyBsYXN0UG9pbnRlclkgPSBlLmNsaWVudFk7IH0sIHsgcGFzc2l2ZTp0cnVlIH0pOwogICAgZnVuY3Rpb24gcmVmcmVzaEhvdmVyQXRQb2ludGVyKCl7CiAgICAgIGlmIChsYXN0UG9pbnRlclggPT0gbnVsbCB8fCBsYXN0UG9pbnRlclkgPT0gbnVsbCkgcmV0dXJuOwogICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChsYXN0UG9pbnRlclgsIGxhc3RQb2ludGVyWSk7CiAgICAgIGlmICh0YXJnZXQpIHRhcmdldC5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCdtb3VzZW1vdmUnLCB7IGJ1YmJsZXM6dHJ1ZSwgY2xpZW50WDpsYXN0UG9pbnRlclgsIGNsaWVudFk6bGFzdFBvaW50ZXJZIH0pKTsKICAgIH0KCiAgICAvLyBFbCBlbmxhY2UgZGVsIGJsb3F1ZSBpbmFjdGl2byBzZSBkZXNhY3RpdmEgZXhwbO1jaXRhbWVudGU6IGFsIGNvbXBhcnRpciBlbCBtaXNtbwogICAgLy8gaHVlY28geSB6LWluZGV4LCBzaW4gZXN0byBlbCBlbmxhY2Ugb2N1bHRvIHNlZ3XtYSBpbnRlcmNhbWJpYW5kbyBjbGljcyBjb24gZWwgdmlzaWJsZS4KICAgIGZ1bmN0aW9uIHNob3coZWwpeyBlbC5oaWRkZW49ZmFsc2U7IHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpeyBlbC5jbGFzc0xpc3QuYWRkKCdjZW50ZXItdmlzaWJsZScpOyB9KTsgcmVmcmVzaEhvdmVyQXRQb2ludGVyKCk7IH0KICAgIGZ1bmN0aW9uIGhpZGUoZWwpeyBlbC5jbGFzc0xpc3QucmVtb3ZlKCdjZW50ZXItdmlzaWJsZScpOyBpZiAocmVhY3Rpb25MaW5rRWwpIHJlYWN0aW9uTGlua0VsLnN0eWxlLnBvaW50ZXJFdmVudHM9J25vbmUnOyBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IGVsLmhpZGRlbj10cnVlOyB9LCA1MDApOyByZWZyZXNoSG92ZXJBdFBvaW50ZXIoKTsgfQogICAgZnVuY3Rpb24gc2hvd0ZlYXR1cmVkT3BhY2l0eSh2KXsKICAgICAgaWYgKGZlYXR1cmVkRWwpIGZlYXR1cmVkRWwuc3R5bGUub3BhY2l0eSA9IHY7CiAgICAgIGlmIChmZWF0dXJlZExpbmtFbCkgZmVhdHVyZWRMaW5rRWwuc3R5bGUucG9pbnRlckV2ZW50cyA9ICh2ID09PSAnMScpID8gJ2F1dG8nIDogJ25vbmUnOwogICAgICByZWZyZXNoSG92ZXJBdFBvaW50ZXIoKTsKICAgIH0KCiAgICBmdW5jdGlvbiByeFJhd1RvSFRNTChyYXcpewogICAgICByYXcgPSByYXcgfHwgJyc7CiAgICAgIHZhciBodG1sID0gJycsIGkgPSAwLCBpbkhpID0gZmFsc2U7CiAgICAgIHdoaWxlKGkgPCByYXcubGVuZ3RoKXsKICAgICAgICBpZiAocmF3LnNsaWNlKGksIGkrMykgPT09ICdbKl0nKXsgaHRtbCArPSBpbkhpID8gJzwvc3Bhbj4nIDogJzxzcGFuIGNsYXNzPSJyeC1oaSI+JzsgaW5IaSA9ICFpbkhpOyBpICs9IDM7IGNvbnRpbnVlOyB9CiAgICAgICAgdmFyIGNoID0gcmF3W2ldOwogICAgICAgIGlmIChjaCA9PT0gJyYnKSBodG1sICs9ICcmYW1wOyc7IGVsc2UgaWYgKGNoID09PSAnPCcpIGh0bWwgKz0gJyZsdDsnOyBlbHNlIGlmIChjaCA9PT0gJz4nKSBodG1sICs9ICcmZ3Q7JzsgZWxzZSBodG1sICs9IGNoOwogICAgICAgIGkrKzsKICAgICAgfQogICAgICBpZiAoaW5IaSkgaHRtbCArPSAnPC9zcGFuPic7CiAgICAgIHJldHVybiBodG1sOwogICAgfQoKICAgIGZ1bmN0aW9uIHJlbmRlclJlYWN0aW9uKGkpewogICAgICBpZighcmVhY3Rpb25zLmxlbmd0aCkgcmV0dXJuOwogICAgICB2YXIgciA9IHJlYWN0aW9uc1tpICUgcmVhY3Rpb25zLmxlbmd0aF07CiAgICAgIGlmIChyZWFjdGlvbkltZ0VsKXsgaWYoci5pbWcpeyByZWFjdGlvbkltZ0VsLnNyYz1yLmltZzsgcmVhY3Rpb25JbWdFbC5zdHlsZS5kaXNwbGF5PSdibG9jayc7IH0gZWxzZSB7IHJlYWN0aW9uSW1nRWwucmVtb3ZlQXR0cmlidXRlKCdzcmMnKTsgcmVhY3Rpb25JbWdFbC5zdHlsZS5kaXNwbGF5PSdub25lJzsgfSB9CiAgICAgIGlmIChyZWFjdGlvblRleHRFbCl7IHJlYWN0aW9uVGV4dEVsLmlubmVySFRNTCA9IHJ4UmF3VG9IVE1MKHIudGV4dHx8JycpOyB9CiAgICAgIGlmIChyZWFjdGlvbkxpbmtFbCl7IGlmKHIudXJsKXsgcmVhY3Rpb25MaW5rRWwuaHJlZj1yLnVybDsgcmVhY3Rpb25MaW5rRWwuc3R5bGUucG9pbnRlckV2ZW50cz0nYXV0byc7IH0gZWxzZSB7IHJlYWN0aW9uTGlua0VsLmhyZWY9JyMnOyByZWFjdGlvbkxpbmtFbC5zdHlsZS5wb2ludGVyRXZlbnRzPSdub25lJzsgfSB9CiAgICB9CgogICAgZnVuY3Rpb24gc3RhcnRSQygpewogICAgICBpZighdXNlUkMgfHwgIXJlYWN0aW9ucy5sZW5ndGgpIHJldHVybjsKICAgICAgaWYgKCFySW50ZXJsZWF2ZSAmJiByZWFjdGlvbnMubGVuZ3RoID09PSAxKXsKICAgICAgICByZW5kZXJSZWFjdGlvbigwKTsKICAgICAgICBzaG93RmVhdHVyZWRPcGFjaXR5KCcwJyk7CiAgICAgICAgc2hvdyhyZWFjdGlvbnNPdmVybGF5RWwpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB2YXIgRkFERV9NUyA9IDUwMDsKICAgICAgdmFyIHJ1bklkID0gKytyY1J1bklkOwogICAgICBpZihyY1RpbWVyKXsgY2xlYXJUaW1lb3V0KHJjVGltZXIpOyByY1RpbWVyPW51bGw7IH0KICAgICAgZnVuY3Rpb24gd2FpdChtcyl7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXMpeyByY1RpbWVyID0gc2V0VGltZW91dChyZXMsIG1zKTsgfSk7IH0KICAgICAgKGFzeW5jIGZ1bmN0aW9uIGxvb3AoKXsKICAgICAgICB3aGlsZSh1c2VSQyAmJiByZWFjdGlvbnMubGVuZ3RoICYmIHJ1bklkPT09cmNSdW5JZCl7CiAgICAgICAgICByZW5kZXJSZWFjdGlvbihyY0luZGV4KTsKICAgICAgICAgIHNob3dGZWF0dXJlZE9wYWNpdHkoJzAnKTsgYXdhaXQgd2FpdChGQURFX01TKTsgaWYocnVuSWQhPT1yY1J1bklkKSBicmVhazsKICAgICAgICAgIHNob3cocmVhY3Rpb25zT3ZlcmxheUVsKTsgYXdhaXQgd2FpdChGQURFX01TKTsgaWYocnVuSWQhPT1yY1J1bklkKSBicmVhazsKICAgICAgICAgIGF3YWl0IHdhaXQockR1cioxMDAwKTsgaWYocnVuSWQhPT1yY1J1bklkKSBicmVhazsKICAgICAgICAgIGlmIChySW50ZXJsZWF2ZSl7CiAgICAgICAgICAgIGhpZGUocmVhY3Rpb25zT3ZlcmxheUVsKTsgYXdhaXQgd2FpdChGQURFX01TKTsgaWYocnVuSWQhPT1yY1J1bklkKSBicmVhazsKICAgICAgICAgICAgc2hvd0ZlYXR1cmVkT3BhY2l0eSgnMScpOyBhd2FpdCB3YWl0KEZBREVfTVMpOyBpZihydW5JZCE9PXJjUnVuSWQpIGJyZWFrOwogICAgICAgICAgICBhd2FpdCB3YWl0KHJmRHVyKjEwMDApOyBpZihydW5JZCE9PXJjUnVuSWQpIGJyZWFrOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaGlkZShyZWFjdGlvbnNPdmVybGF5RWwpOyBhd2FpdCB3YWl0KEZBREVfTVMpOyBpZihydW5JZCE9PXJjUnVuSWQpIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgcmNJbmRleCA9IChyY0luZGV4ICsgMSkgJSByZWFjdGlvbnMubGVuZ3RoOwogICAgICAgIH0KICAgICAgfSkoKTsKICAgIH0KICAgIHN0YXJ0UkMoKTsKICB9CgogIAp9KSgpOwo8L3NjcmlwdD4=
    • El PSOE prohíbe a sus alcaldes sumarse a las concentraciones por Ceuta porque dice que el PP las usa para ir contra el Gobierno
        • España
        • España

      El PSOE prohíbe a sus alcaldes sumarse a las concentraciones por Ceuta porque dice que "el PP las usa para ir contra el Gobierno"

      El PSOE se ha desmarcado de las movilizaciones previstas para el 2 de septiembre ante los ayuntamientos y prohíbe a sus alcaldes sumarse. La dirección socialista ha trasladado la decisión mediante un comunicado interno en el que acusa al Partido Popular de intentar utilizar la situación políticamente. "El PP las usa para ir contra el Gobierno", indican.
      • Neila Gallego
      • 2026-08-29 22:46
    • Nueva emboscada en Ceuta: cuatro marroquíes detenidos por apedrear a un grupo de militares y herir a un sargento
        • España
        • España

      Nueva emboscada en Ceuta: 4 marroquíes detenidos por apedrear a un grupo de militares y herir a un sargento

      • Diana Arias
      • 2026-08-29 12:53
    • Feijóo anuncia que el PP se personará en la causa abierta en la Audiencia Nacional por Ceuta: El sanchismo está acabado
        • España
        • España

      Feijóo anuncia que el PP se personará en la causa abierta en la Audiencia Nacional por Ceuta: "El sanchismo está acabado"

      • Luz Sela
      • 2026-08-29 13:33
    • Ceuta es un polvorín: los policías denuncian que los ilegales de la invasión ya fabrican cócteles molotov
        • España
        • España

      Ceuta es un polvorín: los policías denuncian que los ilegales ya fabrican cócteles molotov

      • Diego Buenosvinos
      • 2026-08-29 05:50
    • PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL3VzZS50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9wLnR5cGVraXQubmV0IiBjcm9zc29yaWdpbj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tIj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3VzZS50eXBla2l0Lm5ldC9pcWExcWViLmNzcyI+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Sb2JvdG86d2dodEA0MDA7NzAwJmRpc3BsYXk9c3dhcCI+CjxzdHlsZT4KLyogYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQ6IHZlciByZWxhdGVkVXBwZXJjYXNlVGl0bGVGb250IG3hcyBhYmFqby4gKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICJhbXBsaXR1ZGUtbWVkaXVtLWNvbmRlbnNlZCI7CiAgc3JjOiB1cmwoImh0dHBzOi8vb2tkaWFyaW8uY29tL3dlYi90aGVtZXMvdjEwL2Nzcy9fZm9udHNfYW1wbGl0dWRlL0FtcGxpdHVkZSUyMEF1YmklMjBNZWRpdW0lMjBDbmQub3RmIik7Cn0KLyogYW1wbGl0dWRlLWJvb2s6IHZlciByZWxhdGVkQXV0aG9yRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLWJvb2siOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwQm9vay5vdGYiKTsKfQovKiBjb250YWluZXItdHlwZTppbmxpbmUtc2l6ZSBhcXXtIGVzIGltcHJlc2NpbmRpYmxlOiBjb252aWVydGUgZXN0ZSBibG9xdWUKICAgZW4gZWwgY29udGVuZWRvciBkZSByZWZlcmVuY2lhIHBhcmEgbG9zICJAY29udGFpbmVyICguLi4taW5saW5lLXNpemUuLi4pIgogICBkZSBt4XMgYWJham8uIFVzYW1vcyBAY29udGFpbmVyIGVuIHZleiBkZSBAbWVkaWEgcG9ycXVlICJAbWVkaWEKICAgKG1heC1pbmxpbmUtc2l6ZTouLi4pIiBOTyBlcyB1bmEgY29uZGljafNuIENTUyB24WxpZGEgJiM4MjEyOyBpbmxpbmUtc2l6ZSBzb2xvCiAgIGV4aXN0ZSBjb21vIGNhcmFjdGVy7XN0aWNhIGRlIEBjb250YWluZXIsIG51bmNhIGRlIEBtZWRpYSAmIzgyMTI7IGFz7SBxdWUgZXNhcwogICByZWdsYXMgamFt4XMgc2UgYWN0aXZhYmFuICh2ZXJpZmljYWRvIGNvbiBtYXRjaE1lZGlhOiBzaWVtcHJlIGZhbHNlLCBzaW4KICAgaW1wb3J0YXIgZWwgYW5jaG8pLCB5IHBvciBlc28gbGEgbm90aWNpYSBwcmluY2lwYWwgcG9k7WEgZGVzYXBhcmVjZXIgbyBlbAogICBkaXNl8W8gbfN2aWwgbm8gc2UgYWN0aXZhYmEgbnVuY2EuIEBjb250YWluZXIgc+0gc29wb3J0YSBpbmxpbmUtc2l6ZSBkZQogICBmb3JtYSB24WxpZGEsIHkgZXZpdGEgaWd1YWxtZW50ZSBsYSBwYWxhYnJhICJ3aWR0aDoiIHF1ZSBlbCBDTVMgZGVsCiAgIHVzdWFyaW8gZWxpbWluYSBhbCBwZWdhciBIVE1ML0NTUyBkaXJlY3RhbWVudGUuICovCi8qIEZJWCBPS0RJQVJJTyAqLwogICAgLml0ZW0gYXJ0aWNsZSAuYXJ0aWNsZS1zY3JpcHQgewogICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICB9Ci8qIENvbnRlbmVkb3IgZGUgdG9kYSBsYSBhcGVydHVyYSAoY2FiZWNlcmEgKyBub3RpY2lhIHByaW5jaXBhbCArIGNvbHVtbmEpOgogICBmb25kbyBibGFuY28geSBhaXJlIGFscmVkZWRvciwgc29sbyBlbiBEZXNrICYjODIxMjsgdmVyIG92ZXJyaWRlIGRlbnRybyBkZWwKICAgQGNvbnRhaW5lcihtYXgtaW5saW5lLXNpemU6ODYwcHgpIGRlIG3hcyBhYmFqbywgcXVlIGxvIGFudWxhIHBvciBkZWJham8KICAgZGUgZXNlIGFuY2hvIChlcXVpdmFsZW50ZSBhIGxhIHZpc3RhIE3zdmlsKS4gKi8KLmJsay14c3drcnttYXgtaW5saW5lLXNpemU6OTYwcHg7bWFyZ2luOjAgYXV0bztjb250YWluZXItdHlwZTppbmxpbmUtc2l6ZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7cGFkZGluZzoxMHB4O30KLmJsay14c3drciBhe3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmluaGVyaXR9Ci5ibGsteHN3a3IgLnBhZ2V7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjE1cHh9Ci5ibGsteHN3a3IgLnBhZ2UgLmNvbHVtbntvcmRlcjoxfQouYmxrLXhzd2tyIC5wYWdlIC5sZWFke29yZGVyOjJ9Ci8qIDg2MHB4IHkgbm8gNDc1cHg6IGNvbiBsYSBjb2x1bW5hIGZpamEgKDIyMHB4ICsgMjBweCBkZSBnYXAgPSAyNDBweCksCiAgIGN1YWxxdWllciBhbmNobyBkZSBpZnJhbWUgcG9yIGRlYmFqbyBkZSB+ODYwcHggZGVqYSBsYSBub3RpY2lhIHByaW5jaXBhbAogICAoMWZyKSBjYWRhIHZleiBjb24gbWVub3MgZXNwYWNpbyBoYXN0YSBjb2xhcHNhciBhIDBweCBkZSBhbmNobyBhbnRlcyBkZQogICBsbGVnYXIgYSB1biBicmVha3BvaW50IHRhbiBiYWpvIGNvbW8gNDc1cHggJiM4MjEyOyBsYSBub3RpY2lhIHByaW5jaXBhbAogICBkaXJlY3RhbWVudGUgZGVzYXBhcmVjZSBlbiBlc2EgZnJhbmphIGludGVybWVkaWEgKG5pICJkZXNrIiBjb21wbGV0byBuaQogICAibfN2aWwiIGVzdHJlY2hvKS4gQ29uIDg2MHB4IHNlIHBhc2EgYSB1bmEgc29sYSBjb2x1bW5hIGFwaWxhZGEgYW50ZXMgZGUKICAgcXVlIGVzbyBwdWVkYSBvY3VycmlyLgogICBFc3RlIGJyZWFrcG9pbnQgc2Ugb21pdGUgcG9yIGNvbXBsZXRvIG1pZW50cmFzIGxhIHNpbXVsYWNp824gZGUgYW5jaG8gZXN06QogICBhY3RpdmEgKHZlciBsZWFkV2lkdGhQcmV2aWV3KTogcGVuc2FkbyBwYXJhIGN1YW5kbyBlbCBt82R1bG8gbGxldmEgc3UKICAgY29sdW1uYSBhIDk2MHB4LCBkZWphIGRlIHRlbmVyIHNlbnRpZG8gZW4gdW5hIGV4cG9ydGFjafNuIGRlIHNvbG8gbGEKICAgbm90aWNpYSBwcmluY2lwYWwgYSB1biBhbmNobyBmaWpvIGVsZWdpZG8gYSBtYW5vICYjODIxMjsgbG9zIGFuY2hvcyBzaW11bGFkb3MKICAgKDYxMy80NjAvMzA3cHgpIGVzdOFuIFRPRE9TIHBvciBkZWJham8gZGUgODYwcHgsIGFz7SBxdWUgc2luIGVzdGUgZ2F0aW5nCiAgIGVsIEhUTUwgZXhwb3J0YWRvIGNhZXLtYSBzaWVtcHJlIGEgbGEgdGlwb2dyYWbtYSAiTfN2aWwiIChjb24gIWltcG9ydGFudCkKICAgc2VhIGN1YWwgc2VhIGxhIHF1ZSBlbCB1c3VhcmlvIGNvbmZpZ3Vy8yBlbiAiRGVzayIgcGFyYSBlc2Egc2ltdWxhY2nzbiwKICAgZGFuZG8gbGEgZmFsc2Egc2Vuc2FjafNuIGRlIHF1ZSB1bmEgY29uZmlndXJhY2nzbiAicGlzYSIgYSBvdHJhLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpewogIC5ibGsteHN3a3J7YmFja2dyb3VuZDpub25lO3BhZGRpbmc6MDt9CiAgLmJsay14c3drciAucGFnZXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfQogIC5ibGsteHN3a3IgLnBhZ2UgLnN0YWNrLXRpdGxlIHtmb250LXNpemU6MThweDsgbGluZS1oZWlnaHQ6IDEuMmVtO30KICAuYmxrLXhzd2tyIC5wYWdlIC5zdGFjay1hdXRob3Ige21hcmdpbi10b3A6IDEwcHg7fQogIC5ibGsteHN3a3IgLmxlYWQtbWVkaWEuaXMtaWZyYW1le2Jsb2NrLXNpemU6NDAwcHggIWltcG9ydGFudDt9CiAgLmJsay14c3drciAubGVhZC1tZWRpYXthc3BlY3QtcmF0aW86MTYvOSAhaW1wb3J0YW50O30KICAuYmxrLXhzd2tyIC5wYWdlIC5sZWFke29yZGVyOjF9CiAgLmJsay14c3drciAucGFnZSAuY29sdW1ue29yZGVyOjJ9CiAgLyogUG9yIGRlYmFqbyBkZWwgYnJlYWtwb2ludCwgZWwgbGVhZC1ib2R5IHNpZW1wcmUgdnVlbHZlIGEgaXIgZGViYWpvIGRlbAogICAgIGxlYWQtbWVkaWEgKG5vIGhheSBzaXRpbyBwYXJhIGVsIGxheW91dCBsYWRvIGEgbGFkbykuICovCiAgLmJsay14c3drciAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCwKICAuYmxrLXhzd2tyIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YXNwZWN0LXJhdGlvOmF1dG87fQogIC5ibGsteHN3a3IgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtbWVkaWEsCiAgLmJsay14c3drciAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtbWVkaWF7ZmxleDoxIDEgYXV0bzt9CiAgLmJsay14c3drciAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5LAogIC5ibGsteHN3a3IgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7ZmxleDoxIDEgYXV0bztpbmxpbmUtc2l6ZTo5MCU7bWFyZ2luOi0zMHB4IGF1dG8gMDtibG9jay1zaXplOmF1dG87YWxpZ24tc2VsZjphdXRvO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmc6MTBweDt9CiAgLmJsay14c3drciAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCAucGxheS1idXR0b257bGVmdDoxMHB4O3JpZ2h0OmF1dG87fQogIC5ibGsteHN3a3IgLnBhZ2UgLmNvbHVtbi1pdGVte2JvcmRlcjoxcHggc29saWQgI2U3ZWJlZTtwYWRkaW5nOjEwcHg7YmFja2dyb3VuZDojZmZmO2Jsb2NrLXNpemU6c3RyZXRjaDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7fQogIC5ibGsteHN3a3IgLnBhZ2UgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MjBweDtsaW5lLWhlaWdodDoxLjE1O2NvbG9yOiMyYzNlNTM7bWFyZ2luOjA7dGV4dC1hbGlnbjpsZWZ0O30KICAuYmxrLXhzd2tyIC5wYWdlIC5jb2x1bW4taXRlbS50aXRsZS1vbmx5LW1vYmlsZS0yMSAubGVmdC10aXRsZXtmb250LXNpemU6MjFweCAhaW1wb3J0YW50O30KICAuYmxrLXhzd2tyIC5wYWdlIC5jb2x1bW4taXRlbS50aXRsZS1vbmx5LW1vYmlsZS0xOCAubGVmdC10aXRsZXtmb250LXNpemU6MThweCAhaW1wb3J0YW50O30KICAuYmxrLXhzd2tyIC5wYWdlIC5sZWZ0LXBsYXl7CiAgICBmbGV4OjAgMCBhdXRvO2lubGluZS1zaXplOjE1cHg7YmxvY2stc2l6ZToxNXB4O2JvcmRlci1yYWRpdXM6MnB4OwogICAgYmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgIzAwYTdmZjsKICAgIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzowOwogICAgdmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWJvdHRvbTo0cHg7CiAgfQogIC5ibGsteHN3a3IgLnBhZ2UgLmxlZnQtcGxheTo6YmVmb3JlewogICAgY29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogICAgYm9yZGVyLWxlZnQ6NHB4IHNvbGlkICMwMGE3ZmY7Ym9yZGVyLXRvcDozcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7bWFyZ2luLWxlZnQ6MXB4OwogIH0KfQovKiBUaXBvZ3JhZu1hICJN83ZpbCIgKGFudGV07XR1bG8vdGl0dWxhci9zdWJ07XR1bG8vdGl0dWxhcmVzIGFuaW1hZG9zKSBjb24gU1UKICAgUFJPUElPIGJyZWFrcG9pbnQgKDQ4MHB4KSwgc2VwYXJhZG8gZGVsIGRlIGFycmliYSAoODYwcHgsIHNvbG8gcGFyYSBhcGlsYXIKICAgbGEgcmVqaWxsYSBjb2x1bW5hK25vdGljaWEpOiB1biBjb250ZW5lZG9yIHJlYWwgZGUgbWVub3MgZGUgODYwcHggZXMgbXV5CiAgIGhhYml0dWFsIChwLmVqLiB1bmEgY29sdW1uYSBkZSBhcnTtY3VsbyBkZSB+NzAwcHgpIHkgTk8gZXMgdW4gbfN2aWwgJiM4MjEyOyBjb24KICAgdW4g+m5pY28gYnJlYWtwb2ludCBjb21wYXJ0aWRvLCBsYSB0aXBvZ3JhZu1hICJEZXNrIiBxdWUgY29uZmlndXJhIGVsCiAgIHVzdWFyaW8gbm8gbGxlZ2FiYSBhIHZlcnNlIG51bmNhIGVuIGVzZSBjYXNvLCBjYXllbmRvIHNpZW1wcmUgYSBsb3MgdmFsb3JlcwogICBwb3IgZGVmZWN0byBkZSAiTfN2aWwiIHNpbiBxdWUgbmFkaWUgbG8gaHViaWVyYSBwZWRpZG8uIDQ4MHB4IHPtIHNlCiAgIGNvcnJlc3BvbmRlIGNvbiB1biBhbmNobyBkZSBt83ZpbCByZWFsIChsYSB2aXN0YSAiTfN2aWwiIGRlbCBwcm9waW8gZ2VzdG9yCiAgIHNpbXVsYSAzNzVweCkuIElndWFsIHF1ZSBlbCBicmVha3BvaW50IGRlIGFycmliYSwgc2Ugb21pdGUgZHVyYW50ZSBsYQogICBzaW11bGFjafNuIGRlIGFuY2hvIGRlIGxhIG5vdGljaWEgcHJpbmNpcGFsICh2ZXIgbGVhZFdpZHRoUHJldmlldykuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo0ODBweCl7CiAgLmJsay14c3drciAubGVhZC1raWNrZXJ7Zm9udC1zaXplOjEuMTVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjEgIWltcG9ydGFudDtjb2xvcjojRkFCMTIxICFpbXBvcnRhbnQ7fQogIC5ibGsteHN3a3IgLmxlYWQtc3VidGl0bGV7Zm9udC1zaXplOjEuMzEyNXJlbSAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjEuMSAhaW1wb3J0YW50O2NvbG9yOiNGQUIxMjEgIWltcG9ydGFudDt9CiAgLmJsay14c3drciAubGVhZC10aXRsZXtmb250LXNpemU6Mi41NXJlbSAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjAuOSAhaW1wb3J0YW50O30KICAuYmxrLXhzd2tyIC5sZWFkLXRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGsteHN3a3IgLmxlYWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGsteHN3a3IgLmxlYWQta2lja2VyLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGsteHN3a3IgLmxlYWQta2lja2VyLW1vYmlsZXtkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O30KICAuYmxrLXhzd2tyIC5sZWFkLXN1YnRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGsteHN3a3IgLmxlYWQtc3VidGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGsteHN3a3IgLmxlYWQtYW5pbS1oZWFkbGluZXN7Zm9udC1zaXplOjEuODc1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4wMiAhaW1wb3J0YW50O30KICAKICAuYmxrLXhzd2tyIC5yZWxhdGVkLXRpdGxlLWRlc2t7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fQogIC5ibGsteHN3a3IgLnJlbGF0ZWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQp9Ci5ibGsteHN3a3IgLmxlYWR7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjojZmZmO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9Ci5ibGsteHN3a3IgLmxlYWQtbWVkaWF7cG9zaXRpb246cmVsYXRpdmU7YXNwZWN0LXJhdGlvOjE2Lzk7YmFja2dyb3VuZDojMDAwO292ZXJmbG93OmhpZGRlbn0KLyogTWVkaWEgbWVkaWFudGUgaWZyYW1lOiBhbHRvIGZpam8gZW4gcO14ZWxlcyBlbiB2ZXogZGUgbGEgcHJvcG9yY2nzbiBkZQogICBhcnJpYmEgKHZlciBjb21lbnRhcmlvIGRldGFsbGFkbyBqdW50byBhIHN0YXRlLmxlYWQuaWZyYW1lSGVpZ2h0KSAmIzgyMTI7IGVsCiAgIHZhbG9yIGRlIE3zdmlsIHNlIHNvYnJlc2NyaWJlIGVuIGVsIEBjb250YWluZXIgZGUgbeFzIGFiYWpvLCBpZ3VhbCBxdWUgZWwKICAgcmVzdG8gZGUgb3ZlcnJpZGVzIHJlc3BvbnNpdmUgZGUgZXN0ZSBIVE1MIGV4cG9ydGFkby4gKi8KLmJsay14c3drciAubGVhZC1tZWRpYS5pcy1pZnJhbWV7YXNwZWN0LXJhdGlvOm5vbmU7YmxvY2stc2l6ZTo2NDBweDt9Ci5ibGsteHN3a3IgLmxlYWQtbWVkaWEgaW1nLAouYmxrLXhzd2tyIC5sZWFkLW1lZGlhIHZpZGVve3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0KLyogQ2FycnVzZWwgZGUgZm90b3MgZGUgZm9uZG8gY29uIGVmZWN0byBLZW4gQnVybnMgJiM4MjEyOyB2ZXIgZWwgbWlzbW8gYmxvcXVlLAogICBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4KICAgTGEgZHVyYWNp824gZGUgbGFzIGFuaW1hY2lvbmVzICg2cykgY29pbmNpZGUgY29uCiAgIExFQURfQ0FST1VTRUxfSU5URVJWQUwsIHF1ZSB0YW1iaeluIGdvYmllcm5hIGVsIHNjcmlwdCBkZSByb3RhY2nzbgogICAoYnVpbGRMZWFkQ2Fyb3VzZWxTY3JpcHQpIGHxYWRpZG8gYWwgZmluYWwgZGVsIEhUTUwgZXhwb3J0YWRvLiAqLwouYmxrLXhzd2tyIC5sZWFkLWNhcm91c2Vse3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO30KLmJsay14c3drciAubGVhZC1jYXJvdXNlbC1zbGlkZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgMS41cyBlYXNlO30KLmJsay14c3drciAubGVhZC1jYXJvdXNlbC1zbGlkZS5pcy1hY3RpdmV7b3BhY2l0eToxO3otaW5kZXg6MTt9Ci5ibGsteHN3a3IgLmxlYWQtY2Fyb3VzZWwtc2xpZGUgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3Zlcjt9Ci5ibGsteHN3a3IgLmxlYWQtY2Fyb3VzZWwtc2xpZGU6bnRoLWNoaWxkKG9kZCkgaW1ne2FuaW1hdGlvbjpibGsteHN3a3Ita2VuYnVybnMtYSA2cyBlYXNlLWluLW91dCBmb3J3YXJkczt9Ci5ibGsteHN3a3IgLmxlYWQtY2Fyb3VzZWwtc2xpZGU6bnRoLWNoaWxkKGV2ZW4pIGltZ3thbmltYXRpb246YmxrLXhzd2tyLWtlbmJ1cm5zLWIgNnMgZWFzZS1pbi1vdXQgZm9yd2FyZHM7fQpAa2V5ZnJhbWVzIGJsay14c3drci1rZW5idXJucy1heyBmcm9te3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IHRve3RyYW5zZm9ybTpzY2FsZSgxLjE1KSB0cmFuc2xhdGUoLTQlLC0zJSk7fSB9CkBrZXlmcmFtZXMgYmxrLXhzd2tyLWtlbmJ1cm5zLWJ7IGZyb217dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gdG97dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSg0JSwzJSk7fSB9Ci8qIENvbiB1bmEg+m5pY2EgZm90byAoc2luIHJvdGFjafNuIHBvc2libGUpIHNlIGFwbGljYSB1biB6b29tIGluL291dCBlbgogICBidWNsZSBpbmZpbml0byBlbiB2ZXogZGVsIHJlY29ycmlkbyD6bmljbyAoZm9yd2FyZHMpIGRlIGFycmliYS4gKi8KLmJsay14c3drciAubGVhZC1jYXJvdXNlbC5pcy1zaW5nbGUgLmxlYWQtY2Fyb3VzZWwtc2xpZGUgaW1ne2FuaW1hdGlvbjpibGsteHN3a3Ita2VuYnVybnMtbG9vcCAxNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7fQpAa2V5ZnJhbWVzIGJsay14c3drci1rZW5idXJucy1sb29weyAwJXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSA1MCV7dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSgtNCUsLTMlKTt9IDEwMCV7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gfQovKiBDb21wYXJhZG9yIGFudGVzL2Rlc3B16XMgKGRlc2xpemFkb3IpICYjODIxMjsgdmVyIGVsIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuCiAgIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGsteHN3a3IgLmxlYWQtY29tcGFyZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93OmhpZGRlbjtpc29sYXRpb246aXNvbGF0ZTt0b3VjaC1hY3Rpb246bm9uZTt6LWluZGV4OjI7fQouYmxrLXhzd2tyIC5sZWFkLWNvbXBhcmUgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb3ZlcjtvYmplY3QtcG9zaXRpb246Y2VudGVyO2Rpc3BsYXk6YmxvY2s7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItZHJhZzpub25lO3BvaW50ZXItZXZlbnRzOm5vbmU7fQouYmxrLXhzd2tyIC5sZWFkLWNvbXBhcmUtYmVmb3Jle2NsaXAtcGF0aDppbnNldCgwIDUwJSAwIDApO3dpbGwtY2hhbmdlOmNsaXAtcGF0aDt9Ci5ibGsteHN3a3IgLmxlYWQtY29tcGFyZS1yYW5nZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO21hcmdpbjowO29wYWNpdHk6MDtjdXJzb3I6ZXctcmVzaXplO30KLmJsay14c3drciAubGVhZC1jb21wYXJlLWhhbmRsZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjUwJTtpbmxpbmUtc2l6ZTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoyO30KLmJsay14c3drciAubGVhZC1jb21wYXJlLWhhbmRsZTo6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO2lubGluZS1zaXplOjJweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjkpO2JveC1zaGFkb3c6MCAwIDAgMXB4IHJnYmEoMCwwLDAsLjI1KTt9Ci5ibGsteHN3a3IgLmxlYWQtY29tcGFyZS1oYW5kbGU6OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0Oi0xNXB4O2lubGluZS1zaXplOjMwcHg7YmxvY2stc2l6ZTozMHB4O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6I2ZmZiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjAnIGhlaWdodD0nMjAnIHZpZXdCb3g9JzAgMCAyMCAyMCc+PGcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMwMDAnIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSdNOCA2IEw0IDEwIEw4IDE0Jy8+PHBhdGggZD0nTTEyIDYgTDE2IDEwIEwxMiAxNCcvPjwvZz48L3N2Zz4iKSBjZW50ZXIvMTZweCAxNnB4IG5vLXJlcGVhdDtib3gtc2hhZG93OjAgMnB4IDZweCByZ2JhKDAsMCwwLC4yNSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4yNSk7fQovKiBNZWRpYSBtZWRpYW50ZSBpZnJhbWUgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gTWlzbW8gei1pbmRleDoyIHF1ZQogICAubGVhZC1jb21wYXJlLCBwb3IgZWwgbWlzbW8gbW90aXZvIChnYW5hcmxlIGEgLmxlYWQtbGluaykuICovCi5ibGsteHN3a3IgLmxlYWQtaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3otaW5kZXg6Mjt9Ci5ibGsteHN3a3IgLmxlYWQtaWZyYW1lIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7fQouYmxrLXhzd2tyIC5sZWFkLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjE7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci5ibGsteHN3a3IgLmxlYWQtYm9keXtwYWRkaW5nOjBweCAyMHB4IDIwcHggMjBweDs7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6NjsgcG9pbnRlci1ldmVudHM6bm9uZTsgaW5saW5lLXNpemU6OTUlOyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6YXV0bzsgbWFyZ2luLXRvcDotMzBweDsgYmFja2dyb3VuZDojMEUxMTFBOyBmbGV4OjEgMSBhdXRvO30KLyogQXBhcmllbmNpYSBuZWdhdGl2YSAocG9yIGRlZmVjdG8pIHZzLiBwb3NpdGl2YSBkZSBsYSBjYWphIGRlIHRpdHVsYXIgJiM4MjEyOyB2ZXIKICAgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay14c3drciAubGVhZC5pcy1hcHBlYXJhbmNlLXBvc2l0aXZlIC5sZWFkLWJvZHl7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2U3ZWJlZTt9Ci5ibGsteHN3a3IgLmxlYWQuaXMtYXBwZWFyYW5jZS1wb3NpdGl2ZSAubGVhZC10aXRsZSwKLmJsay14c3drciAubGVhZC5pcy1hcHBlYXJhbmNlLXBvc2l0aXZlIC5hdXRob3ItbGFiZWx7Y29sb3I6IzBFMTExQTt9Ci8qIFBvc2ljafNuIGRlbCBsZWFkLWJvZHkgcmVzcGVjdG8gYWwgbGVhZC1tZWRpYSAoJ2xlZnQnLydyaWdodCcpICYjODIxMjsgdmVyIG1pc21vCiAgIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGsteHN3a3IgLmxlYWQubGVhZC1ib2R5LWxlZnQsCi5ibGsteHN3a3IgLmxlYWQubGVhZC1ib2R5LXJpZ2h0e2ZsZXgtZGlyZWN0aW9uOnJvdzthc3BlY3QtcmF0aW86Mi45NjI5NjI5NjI5NjI5NjM7fQouYmxrLXhzd2tyIC5sZWFkLmxlYWQtYm9keS1sZWZ0e2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO30KLmJsay14c3drciAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1tZWRpYSwKLmJsay14c3drciAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtbWVkaWF7ZmxleDowIDAgNjAlO30KLmJsay14c3drciAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5LAouYmxrLXhzd2tyIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1ib2R5e2ZsZXg6MCAwIGNhbGMoNDAlICsgMzBweCk7aW5saW5lLXNpemU6YXV0bzttYXJnaW4tdG9wOjA7YmxvY2stc2l6ZTpjYWxjKDEwMCUgLSA2MHB4KTthbGlnbi1zZWxmOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO30KLmJsay14c3drciAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1ib2R5e21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0Oi0zMHB4O30KLmJsay14c3drciAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXttYXJnaW4tbGVmdDotMzBweDttYXJnaW4tcmlnaHQ6MDt9Ci8qIFBvc2ljafNuICdib3R0b20tZnVsbCcgZGVsIGxlYWQtYm9keSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbgogICBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBpbmxpbmUtc2l6ZQogICBlbiB2ZXogZGUgd2lkdGggcG9yIGVsIG1pc21vIG1vdGl2byBxdWUgZWwgcmVzdG8gZGUgZXN0ZSBibG9xdWUgKGV2aXRhcgogICBsYSBwYWxhYnJhICJ3aWR0aDoiIHF1ZSBlbCBDTVMgZGVsIHVzdWFyaW8gZWxpbWluYSBhbCBwZWdhciBIVE1ML0NTUwogICBkaXJlY3RhbWVudGUpLiAqLwouYmxrLXhzd2tyIC5sZWFkLmxlYWQtYm9keS1ib3R0b20tZnVsbCAubGVhZC1ib2R5ewogIGlubGluZS1zaXplOjEwMCU7CiAgbWFyZ2luOjA7CiAgcGFkZGluZy10b3A6MzBweDsKICBwYWRkaW5nLWJvdHRvbTozMHB4OwogIGJvcmRlcjpub25lOwp9Ci8qIEV0aXF1ZXRhIGRlIGV4Y2x1c2l2YSAobyB0ZXh0byBwZXJzb25hbGl6YWRvKSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLXhzd2tyIC5sZWFkLWV4Y2x1c2l2ZS10YWd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHg7bGVmdDoxMHB4O3otaW5kZXg6MztkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MnB4O2xldHRlci1zcGFjaW5nOjAuNXB4O3BhZGRpbmc6MnB4IDhweDtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC1zaXplOi44ZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiNmZmY7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3BvaW50ZXItZXZlbnRzOm5vbmU7fQovKiBTZWxlY3RvciBjb24gMyBjbGFzZXMgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEKICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YSAoIi5sZWFkLW1lZGlhIGltZyIgdGFtYmnpbgogICBtYXRjaGVhIGVzdGUgPGltZz4geSBsZSBnYW5hYmEgZW4gZXNwZWNpZmljaWRhZCkuICovCi5ibGsteHN3a3IgLmxlYWQtZXhjbHVzaXZlLXRhZyAubGVhZC1leGNsdXNpdmUtdGFnLWljb257cG9zaXRpb246c3RhdGljO2luc2V0OmF1dG87aW5saW5lLXNpemU6MTRweDtibG9jay1zaXplOjE0cHg7b2JqZWN0LWZpdDpjb250YWluO2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpibG9jazt9Ci5ibGsteHN3a3IgLmxlYWQtY2F0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7cGFkZGluZzoycHggOHB4O3RyYW5zZm9ybTpza2V3WSgtNmRlZyk7bWFyZ2luLXRvcDotMTVweDttYXJnaW4tYm90dG9tOjEwcHg7fQouYmxrLXhzd2tyIC5sZWFkLWtpY2tlciwgLmJsay14c3drciAubGVhZC1zdWJ0aXRsZXsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7dGV4dC10cmFuc2Zvcm06bm9uZTttYXJnaW46MDsKfQouYmxrLXhzd2tyIC5sZWFkLWtpY2tlcntmb250LXdlaWdodDo3MDA7fQouYmxrLXhzd2tyIC5sZWFkLXN1YnRpdGxle2ZvbnQtd2VpZ2h0OjYwMDt9Ci8qIFRhbWHxby9pbnRlcmxpbmVhZG8vY29sb3IgZGUgYW50ZXTtdHVsbyB5IHN1YnTtdHVsbyBlbiBEZXNrICh2YWxvcmVzIHBvcgogICBkZWZlY3RvIGRlbCBibG9xdWU7IGVsIG92ZXJyaWRlIGRlIE3zdmlsIHZhIGVuIGVsIEBjb250YWluZXIgZGUgbeFzIGFiYWpvLAogICB5YSBxdWUgZWwgSFRNTCBleHBvcnRhZG8gZXMgcmVzcG9uc2l2ZSB5IG5vIGRlcGVuZGUgZGUgcXXpIHZpc3RhIHR1dmllcmFzCiAgIHNlbGVjY2lvbmFkYSBlbiBlbCBnZXN0b3IgYWwgZXhwb3J0YXIvY29waWFyKS4gKi8KLmJsay14c3drciAubGVhZC1raWNrZXJ7Zm9udC1zaXplOjEuMzEyNXJlbTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6I0ZBQjEyMTt9Ci5ibGsteHN3a3IgLmxlYWQtc3VidGl0bGV7Zm9udC1zaXplOjEuMzEyNXJlbTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6I0ZBQjEyMTt9Ci8qIHRleHQtd3JhcDpiYWxhbmNlICYjODIxMjsgbWlzbW8gY3JpdGVyaW8gcXVlIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwKICAgZGVsIGdlc3RvciAodmVyIGNvbWVudGFyaW8gZGV0YWxsYWRvIGp1bnRvIGEgZXNhIHJlZ2xhKTogcmVwYXJ0ZSBsYXMKICAgbO1uZWFzIGRlbCB0aXR1bGFyIGRlIGZvcm1hIG3hcyB1bmlmb3JtZSBkZW50cm8gZGUgY2FkYSBkaXNwb3NpdGl2bywgc2luCiAgIHByZXRlbmRlciBpZ3VhbGFyIGVsIG76bWVybyBkZSBs7W5lYXMgZW50cmUgcGxhdGFmb3JtYXMgZGlzdGludGFzLiAqLwouYmxrLXhzd2tyIC5sZWFkLXRpdGxle2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo5MDA7Zm9udC1zaXplOjIuMXJlbTtsaW5lLWhlaWdodDoxLjA1O21hcmdpbjowO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7dGV4dC13cmFwOmJhbGFuY2U7fQovKiBUaXR1bGFyIGNvbiBzYWx0b3MgZGUgbO1uZWEgaW5kZXBlbmRpZW50ZXMgcG9yIHZpc3RhICh2ZXIgYnVpbGRTY29wZWRIVE1MKToKICAgc2UgZ2VuZXJhbiBsb3MgZG9zIHRleHRvcyAoRGVzay9N83ZpbCkgeSBhcXXtIHNlIG11ZXN0cmEgc29sbyB1bm8gc2Vn+m4gZWwKICAgYW5jaG8gcmVhbCBkZWwgY29udGVuZWRvciAmIzgyMTI7IGVsIG1pc21vIG1lY2FuaXNtbyBkZSBAY29udGFpbmVyIHF1ZSB5YSB1c2EgZWwKICAgcmVzdG8gZGVsIEhUTUwgZXhwb3J0YWRvIHBhcmEgYWRhcHRhcnNlIHNpbiBkZXBlbmRlciBkZSBKUy4gKi8KLmJsay14c3drciAubGVhZC10aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLyogQW50ZXTtdHVsby9zdWJ07XR1bG8gY29uIHNhbHRvcyBkZSBs7W5lYSBpbmRlcGVuZGllbnRlcyBwb3IgdmlzdGE6IG1pc21vCiAgIG1lY2FuaXNtbyBkZSBAY29udGFpbmVyIHF1ZSBlbCB0aXR1bGFyICh2ZXIgYXJyaWJhKS4gKi8KLmJsay14c3drciAubGVhZC1raWNrZXItbW9iaWxlLCAuYmxrLXhzd2tyIC5sZWFkLXN1YnRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQovKiBUaXR1bGFyIGRlIG5vdGljaWEgcmVsYWNpb25hZGEgKGNvbHVtbmEpIGNvbiB0ZXh0byBwcm9waW8gZW4gTfN2aWwgKHZlcgogICBpdGVtLnRpdGxlTW9iaWxlIGVuIGJ1aWxkQ29sdW1uSXRlbVRpdGxlSFRNTCk6IG1pc21vIG1lY2FuaXNtbyBkZQogICBAY29udGFpbmVyIHF1ZSBlbCB0aXR1bGFyIHByaW5jaXBhbCBkZSBhcnJpYmEuICovCi5ibGsteHN3a3IgLnJlbGF0ZWQtdGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci5ibGsteHN3a3IgLmF1dGhvci1sYWJlbHtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Y29sb3I6I2ZmZjtmb250LXdlaWdodDoyMDA7Zm9udC1zaXplOi44ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RleHQtYWxpZ246cmlnaHQ7ZGlzcGxheTpibG9ja30KLmJsay14c3drciAuY29sdW1ue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO30KLmJsay14c3drciAuY29sdW1uLWl0ZW17ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXI6MXB4IHNvbGlkICNlN2ViZWU7cGFkZGluZzoxMHB4O2JhY2tncm91bmQ6I2ZmZjtibG9jay1zaXplOnN0cmV0Y2g7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO30KLmJsay14c3drciAudGh1bWJ7cG9zaXRpb246cmVsYXRpdmU7aW5saW5lLXNpemU6MTAwJTthc3BlY3QtcmF0aW86NC8zO2JhY2tncm91bmQ6I2VlZTtvdmVyZmxvdzpoaWRkZW59Ci5ibGsteHN3a3IgLnRodW1iIGltZywKLmJsay14c3drciAudGh1bWIgdmlkZW97cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyfQouYmxrLXhzd2tyIC50aHVtYiAucGxheS1zcXVhcmUsCi5ibGsteHN3a3IgLm1lZGlhLWJsb2NrLXdyYXAgLnBsYXktc3F1YXJlewogIHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206NXB4OyBsZWZ0OjVweDsKICBpbmxpbmUtc2l6ZToyNXB4O2Jsb2NrLXNpemU6MjVweDtib3JkZXItcmFkaXVzOjJweDtkaXNwbGF5OmlubGluZS1ncmlkO3BsYWNlLWl0ZW1zOmNlbnRlcjsKICBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC42KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xOCk7CiAgY3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMsIHRyYW5zZm9ybSAuMTJzOwogIHotaW5kZXg6MjsgYW5pbWF0aW9uOmJsay14c3drci1ibGluayAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKfQouYmxrLXhzd2tyIC50aHVtYiAucGxheS1zcXVhcmU6OmJlZm9yZSwKLmJsay14c3drciAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmU6OmJlZm9yZXsKICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6NnB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDo1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo1cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgbWFyZ2luLWxlZnQ6MnB4Owp9Ci5ibGsteHN3a3IgLnRodW1iIC5wbGF5LXNxdWFyZTpob3ZlciwKLmJsay14c3drciAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmU6aG92ZXJ7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjg1KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7IH0KLmJsay14c3drciAuc3RhY2stdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTdweDtsaW5lLWhlaWdodDoxLjE1ZW07bWFyZ2luOjA7Y29sb3I6IzJjM2U1Mzt9Ci5ibGsteHN3a3IgLnN0YWNrLWF1dGhvcntmb250LWZhbWlseToiYW1wbGl0dWRlLWJvb2siLHNhbnMtc2VyaWY7Y29sb3I6IzgyODU5NTtmb250LXdlaWdodDoyMDA7Zm9udC1zaXplOi44cmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6MTFweDtsZXR0ZXItc3BhY2luZzowO3RleHQtYWxpZ246cmlnaHQ7fQovKiBTaW4gZXN0YSByZWdsYSBlbCBhdXRvciBxdWVkYSBwZWdhZG8ganVzdG8gZGViYWpvIGRlbCB0aXR1bGFyIGVuIHZleiBkZQogICBhYmFqbyBkZSBsYSB0YXJqZXRhOiAubW9kLXN0YWNrIG5lY2VzaXRhIHNlciBmbGV4LWNvbHVtbiBjb24KICAganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4gcGFyYSBxdWUgZWwgaHVlY28gc29icmFudGUgKGN1YW5kbyBsYQogICB0YXJqZXRhIGNyZWNlIG3hcyBxdWUgc3UgY29udGVuaWRvLCB2ZXIgLmNvbHVtbi1pdGVtOm5vdCgubGF5b3V0LW1lZGlhLWJsb2NrKQogICBt4XMgYWJham8pIGVtcHVqZSBlbCBhdXRvciBoYWNpYSBlbCBib3JkZSBpbmZlcmlvci4gKi8KLmJsay14c3drciAubW9kLXN0YWNre2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47ZmxleDoxIDEgYXV0bzt9Ci8qIEVzdGlsbyAiZm90byBwZXF1ZfFhICsgdGl0dWxhciI6IGZvdG8gNDozIGEgbGEgaXpxdWllcmRhLCB0ZXh0byBhIGxhIGRlcmVjaGEuICovCi5ibGsteHN3a3IgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by1sZWZ0e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MTEwcHggMWZyO2dhcDoxMHB4O30KLyogRXN0aWxvICJzb2xvIHRleHRvIiAocG9yIGRlZmVjdG8pOiBlbCBhdXRvciBzZSBwb3NpY2lvbmEgZW4gYWJzb2x1dG8sCiAgIGFuY2xhZG8gYSBsYSBlc3F1aW5hIGluZmVyaW9yIGRlcmVjaGEgZGUgbGEgdGFyamV0YSAoaWd1YWwgcXVlIGVsIHBsYXkgZGUKICAgbGFzIG1pbmlhdHVyYXMpLCBlbiB2ZXogZGUgZGVwZW5kZXIgZGUgcXVlIGVsIGJsb3F1ZSBkZSB0ZXh0byB0ZW5nYSBodWVjbwogICBkZSBzb2JyYSBwYXJhIGVtcHVqYXJsbyBhYmFqbyBjb24gZmxleGJveCAmIzgyMTI7IGNvbiB07XR1bG9zIGRlIDItMyBs7W5lYXMgZXNlCiAgIGh1ZWNvIG5vIGV4aXN0ZSB5IGVsIGF1dG9yIG51bmNhIGxsZWdhYmEgYSBiYWphci4gcGFkZGluZy1ib3R0b20gZW4KICAgbGVmdC1ib2R5IHJlc2VydmEgZWwgZXNwYWNpbyBwYXJhIHF1ZSBlbCB07XR1bG8gbm8gc2Ugc29sYXBlIGNvbiDpbC4gKi8KLmJsay14c3drciAuY29sdW1uLWl0ZW0ubGF5b3V0LXRpdGxlLW9ubHkgLmxlZnQtYm9keXtwYWRkaW5nLWJvdHRvbTozM3B4O30KLmJsay14c3drciAuY29sdW1uLWl0ZW0ubGF5b3V0LXRpdGxlLW9ubHkgLnN0YWNrLWF1dGhvcntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMHB4O2JvdHRvbToxMHB4O21hcmdpbi10b3A6MDt9Ci5ibGsteHN3a3IgLmxlZnQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MjFweDtsaW5lLWhlaWdodDoxLjE1O2NvbG9yOiMyYzNlNTM7bWFyZ2luOjA7dGV4dC1hbGlnbjpsZWZ0O30KLmJsay14c3drciAubGVmdC1wbGF5ewogIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgYmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgIzAwYTdmZjsKICBkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MDsKICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOiA0cHg7Cn0KLmJsay14c3drciAubGVmdC1wbGF5OjpiZWZvcmV7CiAgY29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjRweCBzb2xpZCAjMDBhN2ZmO2JvcmRlci10b3A6M3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206M3B4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbi1sZWZ0OjFweDsKfQouYmxrLXhzd2tyIC5yZWxhdGVkLWxpdmUtdGFnewogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAwIGF1dG87CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDsKICBmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MC44O2xldHRlci1zcGFjaW5nOi4zcHg7Y29sb3I6I0ZGNTA1MDsKICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0ZGNTA1MDsKICBwYWRkaW5nOjNweCA0cHggMnB4IDRweDttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKICB3aGl0ZS1zcGFjZTpub3dyYXA7Cn0KLmJsay14c3drciAucmVsYXRlZC1lZGl0b3JpYWwtdGFnewogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAwIGF1dG87CiAgZm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDsKICBmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MC44O2xldHRlci1zcGFjaW5nOi4zcHg7Y29sb3I6I0ZBQjEyMTsKICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI0ZBQjEyMTsKICBwYWRkaW5nOjNweCA0cHggMnB4IDRweDttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsKICB3aGl0ZS1zcGFjZTpub3dyYXA7Cn0KLmJsay14c3drciAucGxheS1idXR0b257CiAgLyogQW5jaG8vYWx0byBmaWpvcyBlbiB2ZXogZGUgYXNwZWN0LXJhdGlvOjEvMSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEgKGVsCiAgICAgY+FsY3VsbyBkZSAic2hyaW5rLXRvLWZpdCIgcGFyYSB1biA8YnV0dG9uPiBlbiBhYnNvbHV0byBzaW4gdGFtYfFvCiAgICAgZXhwbO1jaXRvIG5vIGVzIGZpYWJsZSBlbnRyZSBtb3RvcmVzOyBlbiBXZWJLaXQvaU9TIGRhYmEgdW4gcmVjdOFuZ3VsbwogICAgIHZlcnRpY2FsIGVzdHJlY2jtc2ltbyBlbiB2ZXogZGUgdW4gY3VhZHJhZG8pLiAqLwogIGFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTsKICBwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7CiAgaW5saW5lLXNpemU6MzRweDtibG9jay1zaXplOjM0cHg7CiAgZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MTBweCAxMHB4IDEwcHggMTJweDsKICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjcpOwogIGJvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNDIpO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czozcHg7CiAgY3Vyc29yOnBvaW50ZXI7ei1pbmRleDoyO2FuaW1hdGlvbjpibGsteHN3a3ItYmxpbmsgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KLmJsay14c3drciAucGxheS1idXR0b24gLnBsYXktaWNvbnsKICBpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICBib3JkZXItbGVmdDoxMHB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDo2cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo2cHggc29saWQgdHJhbnNwYXJlbnQ7Cn0KLmJsay14c3drciAucGxheS1idXR0b24gLnBsYXktdGV4dHtkaXNwbGF5Om5vbmU7fQovKiBFbiBlbCBtb2RvICdsZWZ0JyBlbCBQbGF5IHBhc2EgYSBsYSBlc3F1aW5hIHN1cGVyaW9yIGRlcmVjaGEgJiM4MjEyOyB2ZXIgbWlzbW8KICAgYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay14c3drciAubGVhZC5sZWFkLWJvZHktbGVmdCAucGxheS1idXR0b257bGVmdDphdXRvO3JpZ2h0OjEwcHg7fQoKLyogVGl0dWxhcmVzIGFuaW1hZG9zIChjYXBhIGFsdGVybmF0aXZhIHNvYnJlIGxlYWQtbWVkaWEpICYjODIxMjsgdmVyIG1pc21vCiAgIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEKICAgaGVycmFtaWVudGEuIENhZGEgdGl0dWxhciB0aWVuZSBzdSBwcm9waWEgcG9zaWNp824gKGNsYXNlIHBvcy0qLCB2ZXIKICAgYnVpbGRTY29wZWRIVE1MKSB5IHNlIHJldmVsYSBs7W5lYSBwb3IgbO1uZWEgKHVuYSB2ZXogbWVkaWRhcyBzdXMgbO1uZWFzCiAgIHJlYWxlcyBwb3IgZWwgc2NyaXB0IHN0YW5kYWxvbmUsIHZlciBidWlsZEFuaW1IZWFkbGluZXNTY3JpcHQpIGNvbiB1bmEKICAgY2FqYSBkZSBmb25kbyBkZXRy4XMgZGUgY2FkYSBs7W5lYSB5IHVuIGZhZGUgZGUgb3BhY2lkYWQgZW50cmUgdGl0dWxhcmVzLiAqLwouYmxrLXhzd2tyIC5sZWFkLWFuaW0taGVhZGxpbmVzewogIHBvc2l0aW9uOmFic29sdXRlOwogIGluc2V0OjA7CiAgei1pbmRleDo0OwogIHBvaW50ZXItZXZlbnRzOm5vbmU7Cn0KLmJsay14c3drciAubGVhZC1hbmltLWhlYWRsaW5lewogIHBvc2l0aW9uOmFic29sdXRlOwogIGxlZnQ6MTVweDsKICBvcGFjaXR5OjA7Cn0KLmJsay14c3drciAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tbGVmdHsgYm90dG9tOjYwcHg7IH0KLmJsay14c3drciAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtbGVmdHsgdG9wOjYwcHg7IH0KLmJsay14c3drciAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtbGVmdHsgdG9wOjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IH0KLmJsay14c3drciAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHQsCi5ibGsteHN3a3IgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0LAouYmxrLXhzd2tyIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodHsgbGVmdDphdXRvOyByaWdodDoxNXB4OyB9Ci5ibGsteHN3a3IgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0eyB0b3A6NjBweDsgfQouYmxrLXhzd2tyIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodHsgdG9wOjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IH0KLmJsay14c3drciAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHR7IGJvdHRvbTo2MHB4OyB9Ci8qIENvbiBlbCB0ZXh0byAobGVhZC1ib2R5KSBhIGxhIGl6cXVpZXJkYSBvIGxhIGRlcmVjaGEsIGVzZSBibG9xdWUgc29sYXBhCiAgIDMwcHggZGVsIGxhZG8gZGUgbGEgZm90by927WRlbyBwZWdhZG8gYSDpbCAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbwogICBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLXhzd2tyIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1sZWZ0LAouYmxrLXhzd2tyIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1sZWZ0LAouYmxrLXhzd2tyIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1sZWZ0eyBsZWZ0OjQwcHg7IH0KLmJsay14c3drciAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLXJpZ2h0LAouYmxrLXhzd2tyIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQsCi5ibGsteHN3a3IgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodHsgcmlnaHQ6NDBweDsgfQouYmxrLXhzd2tyIC5sZWFkLWFuaW0taGVhZGxpbmUuaXMtYWN0aXZleyBvcGFjaXR5OjE7IH0KLmJsay14c3drciAubGVhZC1hbmltLWxpbmV7CiAgcG9zaXRpb246cmVsYXRpdmU7CiAgZGlzcGxheTp0YWJsZTsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7CiAgZm9udC13ZWlnaHQ6OTAwOwogIGNvbG9yOiNmZmY7CiAgcGFkZGluZzoycHggOHB4OwogIGNsaXAtcGF0aDppbnNldCgwIDEwMCUgMCAwKTsKICBvcGFjaXR5OjE7CiAgdHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgZWFzZTsKfQouYmxrLXhzd2tyIC5sZWFkLWFuaW0tbGluZS5pcy1oaWRpbmd7IG9wYWNpdHk6MDsgfQovKiBTb2xhcGUgZGUgMXB4IGVudGVyYSBlbnRyZSBs7W5lYXMgcGFyYSBjZXJyYXIgZWwgaGlsbyBkZSBzdWItcO14ZWwgcXVlCiAgIHB1ZWRlIHF1ZWRhciBlbnRyZSBzdXMgY2FqYXMgZGUgZm9uZG8gKHJlZG9uZGVvIGRlIGFsdHVyYXMgZnJhY2Npb25hcmlhcykgJiM4MjEyOwogICB2ZXIgbWlzbW8gY29tZW50YXJpbywgZGV0YWxsYWRvLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLXhzd2tyIC5sZWFkLWFuaW0tbGluZSArIC5sZWFkLWFuaW0tbGluZXsKICBtYXJnaW4tdG9wOi0xcHg7Cn0KLmJsay14c3drciAubGVhZC1hbmltLWxpbmU6Zmlyc3QtY2hpbGR7IHBhZGRpbmctdG9wOjZweDsgfQouYmxrLXhzd2tyIC5sZWFkLWFuaW0tbGluZTpsYXN0LWNoaWxkeyBwYWRkaW5nLWJvdHRvbTo2cHg7IH0KLmJsay14c3drciAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHQgLmxlYWQtYW5pbS1saW5lLAouYmxrLXhzd2tyIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCAubGVhZC1hbmltLWxpbmUsCi5ibGsteHN3a3IgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0IC5sZWFkLWFuaW0tbGluZXsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OjA7IH0KLmJsay14c3drciAubGVhZC1hbmltLWhlYWRsaW5lcy5pcy1wb3NpdGl2ZSAubGVhZC1hbmltLWxpbmV7IGNvbG9yOiMwRTExMUE7IH0KLmJsay14c3drciAubGVhZC1hbmltLWxpbmUtYmd7IHBvc2l0aW9uOmFic29sdXRlOyBpbnNldDowOyB6LWluZGV4Oi0xOyB9Ci5ibGsteHN3a3IgLmxlYWQtYW5pbS1saW5lLXRleHR7IHBvc2l0aW9uOnJlbGF0aXZlOyB9CkBrZXlmcmFtZXMgYmxrLXhzd2tyLWFuaW0tbGluZS1yZXZlYWx7IHRveyBjbGlwLXBhdGg6aW5zZXQoMCAwIDAgMCk7IH0gfQoKLyogQW5jaG9yIG92ZXJsYXkgZm9yIGZ1bGwgY2xpY2thYmxlIGxlYWQgKi8KLmJsay14c3drciAubGVhZC1saW5re3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7ei1pbmRleDoxfQoKLyogSG92ZXIgb3BhY2l0eSBhbmltYXRpb24gKi8KLmJsay14c3drciAubGVhZDpob3ZlciAubGVhZC10aXRsZSwKLmJsay14c3drciAuY29sdW1uLWl0ZW06aG92ZXJ7b3BhY2l0eTouOH0KLyogRm90byBwcmluY2lwYWwgKGZhbGxiYWNrL3NpbmdsZSkgbyBjYXJydXNlbCBkZSBmb3Rvczogb3BhY2lkYWQgMC45IGFsCiAgIHBhc2FyIGVsIHJhdPNuIHBvciBsYSB0YXJqZXRhICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuCiAgIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIE5vIGFwbGljYSBhIHbtZGVvIG5pIGFsCiAgIGNvbXBhcmFkb3IgYW50ZXMvZGVzcHXpcy4gKi8KLmJsay14c3drciAubGVhZC1tZWRpYSA+IGltZywKLmJsay14c3drciAubGVhZC1tZWRpYSA+IC5sZWFkLWNhcm91c2Vse3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9Ci5ibGsteHN3a3IgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiBpbWcsCi5ibGsteHN3a3IgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiAubGVhZC1jYXJvdXNlbHtvcGFjaXR5Oi45O30KLyogRW4gZWwgYW5jaG8gbfN2aWwgKG1pc21vIEBjb250YWluZXIgcXVlIGVsIHJlc3RvIGRlbCBIVE1MIGV4cG9ydGFkbykgbm8KICAgYXBsaWNhIGVzdGEgYW5pbWFjafNuIGRlIG9wYWNpZGFkIHNvYnJlIGxhIG5vdGljaWEgcHJpbmNpcGFsOiB2YSBERVNQVclTCiAgIGRlIGxhIHJlZ2xhIGdlbmVyYWwgZGUgYXJyaWJhIChtaXNtYSBlc3BlY2lmaWNpZGFkKSBwYXJhIHBvZGVyIGdhbmFybGUuCiAgIE9taXRpZG8sIGlndWFsIHF1ZSBlbCBibG9xdWUgZGUgdGlwb2dyYWbtYSBkZSBhcnJpYmEsIG1pZW50cmFzIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZXN06SBhY3RpdmEgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjg2MHB4KXsKICAuYmxrLXhzd2tyIC5sZWFkOmhvdmVyIC5sZWFkLXRpdGxlLAogIC5ibGsteHN3a3IgLmxlYWQ6aG92ZXIgLmxlYWQtbWVkaWEgPiBpbWcsCiAgLmJsay14c3drciAubGVhZDpob3ZlciAubGVhZC1tZWRpYSA+IC5sZWFkLWNhcm91c2Vse29wYWNpdHk6MTt9Cn0KCi8qIEFuaW1hY2nzbiBjb21wYXJ0aWRhIHBsYXkgcHJpbmNpcGFsICsgY3VhZHJhZG9zIHBsYXkgYXBpbGFkYXMgKi8KQGtleWZyYW1lcyBibGsteHN3a3ItYmxpbmt7CiAgMCUsMTAwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC43KX0KICA1MCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMTY1LDI1NSwwLjkpfQp9Ci8qIENhYmVjZXJhICovCi5ibGsteHN3a3IgLmJnLXNlY3Rpb24tdGl0bGV7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW46MTBweCAwIDMycHh9Ci5ibGsteHN3a3IgLmZuZC1saW5lYXtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6NXB4O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7bWFyZ2luLXRvcDotMThweDtib3JkZXItdG9wOjFweCBzb2xpZCAjMzMzO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMzMzN9Ci5ibGsteHN3a3IgLnNlY3Rpb24tdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOi0xcHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjRweCAxM3B4O2JvcmRlcjoxcHggc29saWQgIzBFMTExQTt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyk7Zm9udC1zaXplOjQycHg7Y29sb3I6IzBFMTExQTt9CkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo4NjBweCl7LmJsay14c3drciAuc2VjdGlvbi10aXRsZXtmb250LXNpemU6MjdweDtwYWRkaW5nOjAgMTBweH19Ci8qIENhYmVjZXJhICYjODIxMjsgRGlzZfFvIDIgKHRpdHVsYXIgKyBjYXJydXNlbCBkZSBsb2dvdGlwb3MpICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwKICAgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGsteHN3a3IgLmhlYWRlcjJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MjBweDtwYWRkaW5nLWJvdHRvbTo1cHg7bWFyZ2luLWJvdHRvbToxMHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMwRTExMUE7fQovKiBhbGlnbi1zZWxmOmZsZXgtZW5kIGZpamEgZWwgdGl0dWxhciBTSUVNUFJFIGEgMTVweCBkZSBsYSBs7W5lYSBzZXBhcmFkb3JhCiAgIGVuIERlc2sgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zCiAgIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay14c3drciAuaGVhZGVyMi1sZWZ0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7ZmxleDoxIDEgNTAlO21pbi1pbmxpbmUtc2l6ZTowO2FsaWduLXNlbGY6ZmxleC1lbmQ7fQouYmxrLXhzd2tyIC5oZWFkZXIyLXRhZ3N7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZsZXg6MCAwIGF1dG87fQovKiBNaXNtbyB0YW1h8W8vdGlwb2dyYWbtYSBxdWUgLmxlYWQtZXhjbHVzaXZlLXRhZyAobGEgZGUgbGEgbm90aWNpYQogICBwcmluY2lwYWwpICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUKICAgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGsteHN3a3IgLmhlYWRlcjItY2F0LXRhZywKLmJsay14c3drciAuaGVhZGVyMi1leGNsdXNpdmUtdGFne2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MnB4O2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOi44ZW07bGV0dGVyLXNwYWNpbmc6LjVweDtwYWRkaW5nOjJweCA4cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3doaXRlLXNwYWNlOm5vd3JhcDtjb2xvcjojZmZmO30KLmJsay14c3drciAuaGVhZGVyMi1leGNsdXNpdmUtdGFnLWljb257cG9zaXRpb246c3RhdGljO2luc2V0OmF1dG87aW5saW5lLXNpemU6MTRweDtibG9jay1zaXplOjE0cHg7b2JqZWN0LWZpdDpjb250YWluO2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpibG9jazt9Ci5ibGsteHN3a3IgLmhlYWRlcjItdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtmb250LXNpemU6MzZweDtsaW5lLWhlaWdodDoxLjA1O2NvbG9yOiMwRTExMUE7bWFyZ2luOjA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO21pbi1pbmxpbmUtc2l6ZTowO292ZXJmbG93LXdyYXA6YnJlYWstd29yZDt9Ci8qIFNlcGFyYWNp824gZGUgMTBweCBlbnRyZSBlbCB0ZXh0byBkZSBwYXRyb2NpbmlvIHkgZWwgbG9nbyBlbiBEZXNrICYjODIxMjsgZW4KICAgTfN2aWwgc2lndWUgc2luIHNlcGFyYWNp824gKGdhcDowLCB2ZXIgQGNvbnRhaW5lciBt4XMgYWJham8pLiAqLwouYmxrLXhzd2tyIC5oZWFkZXIyLWxvZ29zLXdyYXB7ZmxleDowIDAgYXV0bzttYXgtaW5saW5lLXNpemU6NTAlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO30KLyogRXRpcXVldGEgb3BjaW9uYWwganVudG8gYWwgY2FycnVzZWwgZGUgbG9nb3MgKHAuZWouICJQYXRyb2NpbmFkbyBwb3I6IikgJiM4MjEyOwogICB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbAogICBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay14c3drciAuaGVhZGVyMi1sb2dvcy1sYWJlbHtmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtmb250LXNpemU6MTBweDtmb250LXdlaWdodDo0MDA7Y29sb3I6IzY2Nzt3aGl0ZS1zcGFjZTpub3dyYXA7fQouYmxrLXhzd2tyIC5oZWFkZXIyLWxvZ29ze3Bvc2l0aW9uOnJlbGF0aXZlO2lubGluZS1zaXplOjE2MHB4O2Jsb2NrLXNpemU6NTBweDtmbGV4LXNocmluazowO30KLmJsay14c3drciAuaGVhZGVyMi1sb2dvcyBpbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDttYXJnaW46YXV0bzttYXgtaW5saW5lLXNpemU6MTAwJTttYXgtYmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y29udGFpbjtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC43cyBlYXNlLWluLW91dDt9Ci5ibGsteHN3a3IgLmhlYWRlcjItbG9nb3MgaW1nLmlzLWFjdGl2ZXtvcGFjaXR5OjE7fQovKiBJZ3VhbCBxdWUgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbDogcG9yIGRlYmFqbyBkZSBlc3RlIGFuY2hvIHNlCiAgIGludGVudGEgcHJpbWVybyAxIFNPTEEgRklMQSAoZXRpcXVldGFzK3RpdHVsYXIganVudG8gYWwgbG9nbywgaWd1YWwgcXVlCiAgIGVuIERlc2ssIGEgdGFtYfFvIHJlZHVjaWRvKS4gRWwgYmxvcXVlIGRlIGxvZ29zIG1hbnRpZW5lIFNJRU1QUkUgc3UKICAgZGlzcG9zaWNp824gZW4gY29sdW1uYSAoZXRpcXVldGEgZGUgcGF0cm9jaW5pbyBlbmNpbWEgZGVsIGxvZ28sCiAgIGFsaW5lYWRvcyBhIGxhIGRlcmVjaGEsIHNpbiBzZXBhcmFjafNuKSB0YW50byBlbiBlc3RhIGZpbGEg+m5pY2EgY29tbyBlbgogICBlbCByZXNndWFyZG8gZGUgYWJham8uIFNpIGVsIHRpdHVsYXIsIHN1bWFkbyBhbCBhbmNobyBkZSBsYXMgZXRpcXVldGFzCiAgIGFjdGl2YXMgKGNhdGVnb3LtYSB5L28gZXhjbHVzaXZhLCBzaSBsYXMgaGF5KSwgc3VwZXJhIGVsIDU1JSBkZWwgYW5jaG8KICAgdG90YWwgZGUgbGEgY2FiZWNlcmEgKGNhZGEgdW5vIG1lZGlkbyBhIHVuYSBzb2xhIGztbmVhKSwgZWwgc2NyaXB0CiAgIHN0YW5kYWxvbmUgYfFhZGlkbyBhbCBmaW5hbCBkZSBlc3RlIEhUTUwgKHZlcgogICBidWlsZEhlYWRlcjJTdGFja2luZ1NjcmlwdCgpKSBsbyBkZXRlY3RhIG1pZGllbmRvIHN1IGFuY2hvIG5hdHVyYWwKICAgeSBh8WFkZSBsYSBjbGFzZSAiaGVhZGVyMi1zdGFja2VkIjogZWwgYmxvcXVlIGRlCiAgIGxvZ29zIHN1YmUgZW50b25jZXMgYSBzdSBwcm9waWEgZmlsYSAoYWxpbmVhZG8gYSBsYSBkZXJlY2hhKSB5CiAgIHRpdHVsYXIrZXRpcXVldGFzIGJhamFuIGEgbGEgZmlsYSBkZSBhYmFqbywgYSBhbmNobyBjb21wbGV0byAmIzgyMTI7IG1pc21vCiAgIGxheW91dCBkZSAyIGZpbGFzIHF1ZSBoYWLtYSBhbnRlcyBzaWVtcHJlIHBvciBkZWJham8gZGUgZXN0ZSBicmVha3BvaW50LAogICBhaG9yYSBzb2xvIGNvbW8gcmVzZ3VhcmRvLiBEZW50cm8gZGUgZXNlIHJlc2d1YXJkbywgY29uIGV0aXF1ZXRhKHMpIGVsCiAgIHRpdHVsYXIgcGFzYSBhZGVt4XMgYSBzdSBQUk9QSUEgZmlsYSBhIGFuY2hvIGNvbXBsZXRvLCBkZWJham8gZGUgbGEgZmlsYSBkZSBldGlxdWV0YXMgKHZlcgogICAiLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sZWZ0IiBt4XMgYWJham8pLiBFbCBsb2dvIHNlIHJlZHVjZSB1biAyMCUKICAgKDE2MHg1MCAmIzg1OTQ7IDEyOHg0MCkuCiAgIGFsaWduLXNlbGY6ZmxleC1lbmQgZW4gaGVhZGVyMi1sZWZ0IGZpamEgZWwgdGl0dWxhciBTSUVNUFJFIGEgbG9zIDEwcHgKICAgZGVsIHBhZGRpbmctYm90dG9tIHJlc3BlY3RvIGEgbGEgbO1uZWEgc2VwYXJhZG9yYSAmIzgyMTI7IG1pc21vIGNyaXRlcmlvIHF1ZQogICBlbiBEZXNrICh2ZXIgaGVhZGVyMi1sZWZ0IG3hcyBhcnJpYmEpOiBzaW4gZXN0bywgYWwgc2VyIGVsIGJsb3F1ZSBkZQogICBsb2dvcyBt4XMgYWx0byBxdWUgZWwgdGl0dWxhciwgZWwgY2VudHJhZG8gdmVydGljYWwgZGVsIHJvdyBkZWphYmEgdW4KICAgaHVlY28gbWF5b3IgZW50cmUgZWwgdGl0dWxhciB5IGxhIGztbmVhLiBFbCBibG9xdWUgZGUgbG9nb3Mgc2lndWUKICAgY2VudHJhZG8gKHNpbiBlc2Ugb3ZlcnJpZGUpLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6NDgwcHgpewogIC5ibGsteHN3a3IgLmhlYWRlcjJ7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nLWxlZnQ6MTBweDtwYWRkaW5nLXJpZ2h0OjEwcHg7cGFkZGluZy1ib3R0b206MTBweDt9CiAgLmJsay14c3drciAuaGVhZGVyMi1sZWZ0e29yZGVyOjE7YWxpZ24tc2VsZjpmbGV4LWVuZDt9CiAgLmJsay14c3drciAuaGVhZGVyMi1sb2dvcy13cmFwe29yZGVyOjI7YWxpZ24tc2VsZjpjZW50ZXI7bWF4LWlubGluZS1zaXplOm5vbmU7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtZW5kO2dhcDowO30KICAuYmxrLXhzd2tyIC5oZWFkZXIyLWxvZ29ze2lubGluZS1zaXplOjEyOHB4O2Jsb2NrLXNpemU6NDBweDt9CiAgLmJsay14c3drciAuaGVhZGVyMi10aXRsZXtmb250LXNpemU6MjdweDt9CiAgLmJsay14c3drciAuaGVhZGVyMi5oZWFkZXIyLXN0YWNrZWR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7fQogIC5ibGsteHN3a3IgLmhlYWRlcjIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxlZnR7b3JkZXI6MjthbGlnbi1zZWxmOmZsZXgtc3RhcnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2g7Z2FwOjVweDt9CiAgLmJsay14c3drciAuaGVhZGVyMi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbG9nb3Mtd3JhcHtvcmRlcjoxO21heC1pbmxpbmUtc2l6ZToxMDAlO2FsaWduLXNlbGY6ZmxleC1lbmQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtZW5kO2dhcDowO30KICAvKiBSZXNndWFyZG8gaW50ZXJtZWRpbyAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGE6IHNvbG8gZWwgdGl0dWxhciBiYWphIGEgc3UKICAgICBwcm9waWEgZmlsYSBhIGFuY2hvIGNvbXBsZXRvIGN1YW5kbyBsYXMgZXRpcXVldGFzIFPNIGNhYmVuIGp1bnRvIGFsCiAgICAgbG9nbyBwZXJvIGVsIHRpdHVsYXIgbm8uIGhlYWRlcjItbGVmdCBwYXNhIGRlIGZpbGEgYSBjb2x1bW5hCiAgICAgKGV0aXF1ZXRhcyBhcnJpYmEsIHRpdHVsYXIgZGViYWpvKSB5IHJlY3VwZXJhIGFsaWduLXNlbGY6YXV0byBwYXJhCiAgICAgY2VudHJhcnNlIHZlcnRpY2FsbWVudGUgY29udHJhIGVsIGxvZ28gKGFsaWduLXNlbGY6Y2VudGVyIGRlIGxhIHJlZ2xhCiAgICAgYmFzZSBkZSAuaGVhZGVyMi1sb2dvcy13cmFwLCBhcnJpYmEpLCBpZ3VhbCBxdWUgZW4gZWwgcmVzdG8gZGUgZXN0YWRvcy4gKi8KICAuYmxrLXhzd2tyIC5oZWFkZXIyLmhlYWRlcjItdGl0bGUtYmVsb3cgLmhlYWRlcjItbGVmdHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RyZXRjaDthbGlnbi1zZWxmOmF1dG87Z2FwOjVweDt9Cn0KCi8qIEVzdGlsbyAiZm90byBncmFuZGUgKyB0aXR1bGFyIjogZm90byAxNjo5IGFycmliYSwgdGl0dWxhciBkZWJham8gJiM4MjEyOyBlbGVnaWJsZQogICBwb3Igbm90aWNpYSBkZXNkZSBlbCBnZXN0b3IuIE5vIHNlIHJlc3RyaW5nZSBjb24gQGNvbnRhaW5lciBwb3JxdWUKICAgLmNvbHVtbi1pdGVtIHlhIGVzIGJsb2NrIHBvciBkZWZlY3RvIChlbCB0aHVtYiB5IGVsIHRleHRvIHNlIGFwaWxhbiBzb2xvcwogICBzaW4gbeFzIGFqdXN0ZSksIGFz7SBxdWUgZWwgZGlzZfFvIGZ1bmNpb25hIGlndWFsIGRlIGJpZW4gZW4gY3VhbHF1aWVyCiAgIGFuY2hvLCBEZXNrIG8gTfN2aWwuICovCi5ibGsteHN3a3IgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3B7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9Ci5ibGsteHN3a3IgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLnRodW1ie2lubGluZS1zaXplOjEwMCU7YXNwZWN0LXJhdGlvOjE2Lzk7bWFyZ2luLWJvdHRvbToxMHB4O30KLmJsay14c3drciAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAubGVmdC10aXRsZXtmb250LWZhbWlseToiYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuMnJlbTtsaW5lLWhlaWdodDoxLjJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Zm9udC13ZWlnaHQ6OTAwO30KLyogRW4gTfN2aWwgZWwgdGl0dWxhciBkZSBlc3RlIGRpc2XxbyBzZSBtdWVzdHJhIG3hcyBncmFuZGUgKDEuNXJlbSBlbiB2ZXogZGUKICAgbG9zIDEuMnJlbSBkZSBEZXNrKSAmIzgyMTI7IG1pc21hIGVzcGVjaWZpY2lkYWQgKDMgY2xhc2VzKSBxdWUgbGEgcmVnbGEgZGUKICAgYXJyaWJhOyBhbCBpciBERVNQVclTIGVuIGVsIENTUyBnYW5hIHBvciBvcmRlbiBkZSBjYXNjYWRhLiBTZSB1c2EgZWwKICAgYnJlYWtwb2ludCBkZSA0ODBweCAoZWwgZGUgdGlwb2dyYWbtYSBlbiBlc3RhIGFwcCwgbm8gZWwgZGUgODYwcHggcXVlIGFxde0KICAgc29sbyBnb2JpZXJuYSBlbCBhcGlsYWRvIGRlIGNvbHVtbmFzKSBwYXJhIHF1ZSBjb2luY2lkYSBjb24gZWwgcmVzdG8gZGUKICAgY2FtYmlvcyBkZSB0ZXh0by90YW1h8W8gcG9yIHZpc3RhLiBObyBhZmVjdGEgYWwgcmVzZ3VhcmRvIGRlIDIgY29sdW1uYXMgZW4KICAgbfN2aWwgKG1vYi1ncmlkKSwgbeFzIGVzcGVj7WZpY28gKDE4cHgsIHZlciBt4XMgYXJyaWJhKS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLXhzd2tyIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxLjVyZW07fQp9Ci8qIEVzdGlsbyAiQmxvcXVlIG1lZGlhIiAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLXhzd2tyIC5tZWRpYS1ibG9jay1tZWRpYXtkaXNwbGF5OmJsb2NrO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZTphdXRvO30KLmJsay14c3drciAubWVkaWEtYmxvY2std3JhcHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO30KLmJsay14c3drciAubWVkaWEtYmxvY2staWZyYW1lLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7aW5saW5lLXNpemU6MTAwJTthc3BlY3QtcmF0aW86MTYvOTtiYWNrZ3JvdW5kOiMwMDA7b3ZlcmZsb3c6aGlkZGVuO30KLmJsay14c3drciAubWVkaWEtYmxvY2staWZyYW1lLXdyYXAgaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7Ym9yZGVyOjA7ZGlzcGxheTpibG9jazt9Ci5ibGsteHN3a3IgLmNvbHVtbi1pdGVtLmxheW91dC1tZWRpYS1ibG9ja3tib3JkZXI6bm9uZTtwYWRkaW5nOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtibG9jay1zaXplOmF1dG87ZmxleDowIDAgYXV0bzt9Ci5ibGsteHN3a3IgLmNvbHVtbi1pdGVtOm5vdCgubGF5b3V0LW1lZGlhLWJsb2NrKXtmbGV4OjEgMSBhdXRvO30KPC9zdHlsZT4KCjxkaXYgY2xhc3M9ImJsay14c3drciI+CiAgCiAgPG1haW4gY2xhc3M9InBhZ2UiPgogICAgCiAgICA8YXJ0aWNsZSBjbGFzcz0ibGVhZCBpcy1hcHBlYXJhbmNlLXBvc2l0aXZlIGxlYWQtYm9keS1sZWZ0Ij4KICAgICAgPGRpdiBjbGFzcz0ibGVhZC1tZWRpYSI+CiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9jZXV0YS1kZXNjdWJyZS1sby1xdWUtcGFzYS1jdWFuZG8tZWwtZXN0YWRvLWRlamEtZGUtcHJvdGVnZXItYS1sb3Mtc3V5b3MtMjAyNjA4MjktMDgwODQzLTljZjkwMS5qcGciIGFsdD0iQ2V1dGEgZGVzY3VicmUgbG8gcXVlIHBhc2EgY3VhbmRvIGVsIEVzdGFkbyBkZWphIGRlIHByb3RlZ2VyIGEgbG9zIHN1eW9zIiBsb2FkaW5nPSJlYWdlciIgZmV0Y2hwcmlvcml0eT0iaGlnaCIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsZWFkLW92ZXJsYXkiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTQsMTcsMjYsMC4wMCk7Ij48L2Rpdj4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImxlYWQtYm9keSI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImxlYWQtY2F0IiBzdHlsZT0iYmFja2dyb3VuZDojRkFCMTIxO2NvbG9yOiNmZmYiPk9QSU5J0048L3NwYW4+CiAgICAgICAgCiAgICAgICAgPGgyIGNsYXNzPSJsZWFkLXRpdGxlIj48c3BhbiBjbGFzcz0ibGVhZC10aXRsZS1kZXNrIj5DZXV0YSBkZXNjdWJyZSBsbyBxdWUgcGFzYSBjdWFuZG8gZWwgRXN0YWRvIGRlamEgZGUgcHJvdGVnZXIgYSBsb3Mgc3V5b3M8L3NwYW4+PHNwYW4gY2xhc3M9ImxlYWQtdGl0bGUtbW9iaWxlIj5VbiBudWV2byBjYXNvIGRlIGluZmFudGljaWRpbyBzYWN1ZGUgRUVVVSB0cmFzIExpbmRzYXkgQ2xhbmN5OiAmcXVvdDtEZXNw7WRldGUgZGUgdHVzIGhpam9zJnF1b3Q7PC9zcGFuPjwvaDI+CiAgICAgICAgCiAgICAgICAgPHNwYW4gY2xhc3M9ImF1dGhvci1sYWJlbCI+Q2FybG9zIEVzdGViYW48L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8YSBjbGFzcz0ibGVhZC1saW5rIiBocmVmPSJodHRwczovL29rZGlhcmlvLmNvbS9lc3BhbmEvY2V1dGEtZGVzY3VicmUtbG8tcXVlLXBhc2EtY3VhbmRvLWVzdGFkby1kZWphLXByb3RlZ2VyLXN1eW9zLTIwMTkwNjQ2IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgdGl0bGU9IkNldXRhIGRlc2N1YnJlIGxvIHF1ZSBwYXNhIGN1YW5kbyBlbCBFc3RhZG8gZGVqYSBkZSBwcm90ZWdlciBhIGxvcyBzdXlvcyIgYXJpYS1sYWJlbD0iQ2V1dGEgZGVzY3VicmUgbG8gcXVlIHBhc2EgY3VhbmRvIGVsIEVzdGFkbyBkZWphIGRlIHByb3RlZ2VyIGEgbG9zIHN1eW9zIj48L2E+CiAgICA8L2FydGljbGU+CiAgPC9tYWluPgo8L2Rpdj4=
      PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL3VzZS50eXBla2l0Lm5ldCIgY3Jvc3NvcmlnaW4+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9wLnR5cGVraXQubmV0IiBjcm9zc29yaWdpbj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tIj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3VzZS50eXBla2l0Lm5ldC9pcWExcWViLmNzcyI+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Sb2JvdG86d2dodEA0MDA7NzAwJmRpc3BsYXk9c3dhcCI+CjxzdHlsZT4KLyogYW1wbGl0dWRlLW1lZGl1bS1jb25kZW5zZWQ6IHZlciByZWxhdGVkVXBwZXJjYXNlVGl0bGVGb250IG3hcyBhYmFqby4gKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICJhbXBsaXR1ZGUtbWVkaXVtLWNvbmRlbnNlZCI7CiAgc3JjOiB1cmwoImh0dHBzOi8vb2tkaWFyaW8uY29tL3dlYi90aGVtZXMvdjEwL2Nzcy9fZm9udHNfYW1wbGl0dWRlL0FtcGxpdHVkZSUyMEF1YmklMjBNZWRpdW0lMjBDbmQub3RmIik7Cn0KLyogYW1wbGl0dWRlLWJvb2s6IHZlciByZWxhdGVkQXV0aG9yRm9udCBt4XMgYWJham8uICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAiYW1wbGl0dWRlLWJvb2siOwogIHNyYzogdXJsKCJodHRwczovL29rZGlhcmlvLmNvbS93ZWIvdGhlbWVzL3YxMC9jc3MvX2ZvbnRzX2FtcGxpdHVkZS9BbXBsaXR1ZGUlMjBBdWJpJTIwQm9vay5vdGYiKTsKfQovKiBjb250YWluZXItdHlwZTppbmxpbmUtc2l6ZSBhcXXtIGVzIGltcHJlc2NpbmRpYmxlOiBjb252aWVydGUgZXN0ZSBibG9xdWUKICAgZW4gZWwgY29udGVuZWRvciBkZSByZWZlcmVuY2lhIHBhcmEgbG9zICJAY29udGFpbmVyICguLi4taW5saW5lLXNpemUuLi4pIgogICBkZSBt4XMgYWJham8uIFVzYW1vcyBAY29udGFpbmVyIGVuIHZleiBkZSBAbWVkaWEgcG9ycXVlICJAbWVkaWEKICAgKG1heC1pbmxpbmUtc2l6ZTouLi4pIiBOTyBlcyB1bmEgY29uZGljafNuIENTUyB24WxpZGEgJiM4MjEyOyBpbmxpbmUtc2l6ZSBzb2xvCiAgIGV4aXN0ZSBjb21vIGNhcmFjdGVy7XN0aWNhIGRlIEBjb250YWluZXIsIG51bmNhIGRlIEBtZWRpYSAmIzgyMTI7IGFz7SBxdWUgZXNhcwogICByZWdsYXMgamFt4XMgc2UgYWN0aXZhYmFuICh2ZXJpZmljYWRvIGNvbiBtYXRjaE1lZGlhOiBzaWVtcHJlIGZhbHNlLCBzaW4KICAgaW1wb3J0YXIgZWwgYW5jaG8pLCB5IHBvciBlc28gbGEgbm90aWNpYSBwcmluY2lwYWwgcG9k7WEgZGVzYXBhcmVjZXIgbyBlbAogICBkaXNl8W8gbfN2aWwgbm8gc2UgYWN0aXZhYmEgbnVuY2EuIEBjb250YWluZXIgc+0gc29wb3J0YSBpbmxpbmUtc2l6ZSBkZQogICBmb3JtYSB24WxpZGEsIHkgZXZpdGEgaWd1YWxtZW50ZSBsYSBwYWxhYnJhICJ3aWR0aDoiIHF1ZSBlbCBDTVMgZGVsCiAgIHVzdWFyaW8gZWxpbWluYSBhbCBwZWdhciBIVE1ML0NTUyBkaXJlY3RhbWVudGUuICovCi8qIEZJWCBPS0RJQVJJTyAqLwogICAgLml0ZW0gYXJ0aWNsZSAuYXJ0aWNsZS1zY3JpcHQgewogICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICB9Ci8qIENvbnRlbmVkb3IgZGUgdG9kYSBsYSBhcGVydHVyYSAoY2FiZWNlcmEgKyBub3RpY2lhIHByaW5jaXBhbCArIGNvbHVtbmEpOgogICBmb25kbyBibGFuY28geSBhaXJlIGFscmVkZWRvciwgc29sbyBlbiBEZXNrICYjODIxMjsgdmVyIG92ZXJyaWRlIGRlbnRybyBkZWwKICAgQGNvbnRhaW5lcihtYXgtaW5saW5lLXNpemU6ODYwcHgpIGRlIG3hcyBhYmFqbywgcXVlIGxvIGFudWxhIHBvciBkZWJham8KICAgZGUgZXNlIGFuY2hvIChlcXVpdmFsZW50ZSBhIGxhIHZpc3RhIE3zdmlsKS4gKi8KLmJsay13OXdzYXttYXgtaW5saW5lLXNpemU6OTYwcHg7bWFyZ2luOjAgYXV0bztjb250YWluZXItdHlwZTppbmxpbmUtc2l6ZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7cGFkZGluZzoxMHB4O30KLmJsay13OXdzYSBhe3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmluaGVyaXR9Ci5ibGstdzl3c2EgLnBhZ2V7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjE1cHh9Ci5ibGstdzl3c2EgLnBhZ2UgLmNvbHVtbntvcmRlcjoxfQouYmxrLXc5d3NhIC5wYWdlIC5sZWFke29yZGVyOjJ9Ci8qIDg2MHB4IHkgbm8gNDc1cHg6IGNvbiBsYSBjb2x1bW5hIGZpamEgKDIyMHB4ICsgMjBweCBkZSBnYXAgPSAyNDBweCksCiAgIGN1YWxxdWllciBhbmNobyBkZSBpZnJhbWUgcG9yIGRlYmFqbyBkZSB+ODYwcHggZGVqYSBsYSBub3RpY2lhIHByaW5jaXBhbAogICAoMWZyKSBjYWRhIHZleiBjb24gbWVub3MgZXNwYWNpbyBoYXN0YSBjb2xhcHNhciBhIDBweCBkZSBhbmNobyBhbnRlcyBkZQogICBsbGVnYXIgYSB1biBicmVha3BvaW50IHRhbiBiYWpvIGNvbW8gNDc1cHggJiM4MjEyOyBsYSBub3RpY2lhIHByaW5jaXBhbAogICBkaXJlY3RhbWVudGUgZGVzYXBhcmVjZSBlbiBlc2EgZnJhbmphIGludGVybWVkaWEgKG5pICJkZXNrIiBjb21wbGV0byBuaQogICAibfN2aWwiIGVzdHJlY2hvKS4gQ29uIDg2MHB4IHNlIHBhc2EgYSB1bmEgc29sYSBjb2x1bW5hIGFwaWxhZGEgYW50ZXMgZGUKICAgcXVlIGVzbyBwdWVkYSBvY3VycmlyLgogICBFc3RlIGJyZWFrcG9pbnQgc2Ugb21pdGUgcG9yIGNvbXBsZXRvIG1pZW50cmFzIGxhIHNpbXVsYWNp824gZGUgYW5jaG8gZXN06QogICBhY3RpdmEgKHZlciBsZWFkV2lkdGhQcmV2aWV3KTogcGVuc2FkbyBwYXJhIGN1YW5kbyBlbCBt82R1bG8gbGxldmEgc3UKICAgY29sdW1uYSBhIDk2MHB4LCBkZWphIGRlIHRlbmVyIHNlbnRpZG8gZW4gdW5hIGV4cG9ydGFjafNuIGRlIHNvbG8gbGEKICAgbm90aWNpYSBwcmluY2lwYWwgYSB1biBhbmNobyBmaWpvIGVsZWdpZG8gYSBtYW5vICYjODIxMjsgbG9zIGFuY2hvcyBzaW11bGFkb3MKICAgKDYxMy80NjAvMzA3cHgpIGVzdOFuIFRPRE9TIHBvciBkZWJham8gZGUgODYwcHgsIGFz7SBxdWUgc2luIGVzdGUgZ2F0aW5nCiAgIGVsIEhUTUwgZXhwb3J0YWRvIGNhZXLtYSBzaWVtcHJlIGEgbGEgdGlwb2dyYWbtYSAiTfN2aWwiIChjb24gIWltcG9ydGFudCkKICAgc2VhIGN1YWwgc2VhIGxhIHF1ZSBlbCB1c3VhcmlvIGNvbmZpZ3Vy8yBlbiAiRGVzayIgcGFyYSBlc2Egc2ltdWxhY2nzbiwKICAgZGFuZG8gbGEgZmFsc2Egc2Vuc2FjafNuIGRlIHF1ZSB1bmEgY29uZmlndXJhY2nzbiAicGlzYSIgYSBvdHJhLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpewogIC5ibGstdzl3c2F7YmFja2dyb3VuZDpub25lO3BhZGRpbmc6MDt9CiAgLmJsay13OXdzYSAucGFnZXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfQogIC5ibGstdzl3c2EgLnBhZ2UgLnN0YWNrLXRpdGxlIHtmb250LXNpemU6MThweDsgbGluZS1oZWlnaHQ6IDEuMmVtO30KICAuYmxrLXc5d3NhIC5wYWdlIC5zdGFjay1hdXRob3Ige21hcmdpbi10b3A6IDEwcHg7fQogIC5ibGstdzl3c2EgLmxlYWQtbWVkaWEuaXMtaWZyYW1le2Jsb2NrLXNpemU6NDAwcHggIWltcG9ydGFudDt9CiAgLmJsay13OXdzYSAubGVhZC1tZWRpYXthc3BlY3QtcmF0aW86NC8zICFpbXBvcnRhbnQ7fQogIC5ibGstdzl3c2EgLnBhZ2UgLmxlYWR7b3JkZXI6MX0KICAuYmxrLXc5d3NhIC5wYWdlIC5jb2x1bW57b3JkZXI6Mn0KICAvKiBQb3IgZGViYWpvIGRlbCBicmVha3BvaW50LCBlbCBsZWFkLWJvZHkgc2llbXByZSB2dWVsdmUgYSBpciBkZWJham8gZGVsCiAgICAgbGVhZC1tZWRpYSAobm8gaGF5IHNpdGlvIHBhcmEgZWwgbGF5b3V0IGxhZG8gYSBsYWRvKS4gKi8KICAuYmxrLXc5d3NhIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0LAogIC5ibGstdzl3c2EgLnBhZ2UgLmxlYWQubGVhZC1ib2R5LXJpZ2h0e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthc3BlY3QtcmF0aW86YXV0bzt9CiAgLmJsay13OXdzYSAucGFnZSAubGVhZC5sZWFkLWJvZHktbGVmdCAubGVhZC1tZWRpYSwKICAuYmxrLXc5d3NhIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1tZWRpYXtmbGV4OjEgMSBhdXRvO30KICAuYmxrLXc5d3NhIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHksCiAgLmJsay13OXdzYSAucGFnZSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYm9keXtmbGV4OjEgMSBhdXRvO2lubGluZS1zaXplOjkwJTttYXJnaW46LTMwcHggYXV0byAwO2Jsb2NrLXNpemU6YXV0bzthbGlnbi1zZWxmOmF1dG87anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7cGFkZGluZzoxMHB4O30KICAuYmxrLXc5d3NhIC5wYWdlIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5wbGF5LWJ1dHRvbntsZWZ0OjEwcHg7cmlnaHQ6YXV0bzt9CiAgLmJsay13OXdzYSAucGFnZSAuY29sdW1uLWl0ZW17Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO3BhZGRpbmc6MTBweDtiYWNrZ3JvdW5kOiNmZmY7YmxvY2stc2l6ZTpzdHJldGNoO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt9CiAgLmJsay13OXdzYSAucGFnZSAubGVmdC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjEuMTU7Y29sb3I6IzJjM2U1MzttYXJnaW46MDt0ZXh0LWFsaWduOmxlZnQ7fQogIC5ibGstdzl3c2EgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTIxIC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToyMXB4ICFpbXBvcnRhbnQ7fQogIC5ibGstdzl3c2EgLnBhZ2UgLmNvbHVtbi1pdGVtLnRpdGxlLW9ubHktbW9iaWxlLTE4IC5sZWZ0LXRpdGxle2ZvbnQtc2l6ZToxOHB4ICFpbXBvcnRhbnQ7fQogIC5ibGstdzl3c2EgLnBhZ2UgLmxlZnQtcGxheXsKICAgIGZsZXg6MCAwIGF1dG87aW5saW5lLXNpemU6MTVweDtibG9jay1zaXplOjE1cHg7Ym9yZGVyLXJhZGl1czoycHg7CiAgICBiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjMDBhN2ZmOwogICAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7CiAgICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweDttYXJnaW4tYm90dG9tOjRweDsKICB9CiAgLmJsay13OXdzYSAucGFnZSAubGVmdC1wbGF5OjpiZWZvcmV7CiAgICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgICBib3JkZXItbGVmdDo0cHggc29saWQgIzAwYTdmZjtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDttYXJnaW4tbGVmdDoxcHg7CiAgfQp9Ci8qIFRpcG9ncmFm7WEgIk3zdmlsIiAoYW50ZXTtdHVsby90aXR1bGFyL3N1YnTtdHVsby90aXR1bGFyZXMgYW5pbWFkb3MpIGNvbiBTVQogICBQUk9QSU8gYnJlYWtwb2ludCAoNDgwcHgpLCBzZXBhcmFkbyBkZWwgZGUgYXJyaWJhICg4NjBweCwgc29sbyBwYXJhIGFwaWxhcgogICBsYSByZWppbGxhIGNvbHVtbmErbm90aWNpYSk6IHVuIGNvbnRlbmVkb3IgcmVhbCBkZSBtZW5vcyBkZSA4NjBweCBlcyBtdXkKICAgaGFiaXR1YWwgKHAuZWouIHVuYSBjb2x1bW5hIGRlIGFydO1jdWxvIGRlIH43MDBweCkgeSBOTyBlcyB1biBt83ZpbCAmIzgyMTI7IGNvbgogICB1biD6bmljbyBicmVha3BvaW50IGNvbXBhcnRpZG8sIGxhIHRpcG9ncmFm7WEgIkRlc2siIHF1ZSBjb25maWd1cmEgZWwKICAgdXN1YXJpbyBubyBsbGVnYWJhIGEgdmVyc2UgbnVuY2EgZW4gZXNlIGNhc28sIGNheWVuZG8gc2llbXByZSBhIGxvcyB2YWxvcmVzCiAgIHBvciBkZWZlY3RvIGRlICJN83ZpbCIgc2luIHF1ZSBuYWRpZSBsbyBodWJpZXJhIHBlZGlkby4gNDgwcHggc+0gc2UKICAgY29ycmVzcG9uZGUgY29uIHVuIGFuY2hvIGRlIG3zdmlsIHJlYWwgKGxhIHZpc3RhICJN83ZpbCIgZGVsIHByb3BpbyBnZXN0b3IKICAgc2ltdWxhIDM3NXB4KS4gSWd1YWwgcXVlIGVsIGJyZWFrcG9pbnQgZGUgYXJyaWJhLCBzZSBvbWl0ZSBkdXJhbnRlIGxhCiAgIHNpbXVsYWNp824gZGUgYW5jaG8gZGUgbGEgbm90aWNpYSBwcmluY2lwYWwgKHZlciBsZWFkV2lkdGhQcmV2aWV3KS4gKi8KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjQ4MHB4KXsKICAuYmxrLXc5d3NhIC5sZWFkLWtpY2tlcntmb250LXNpemU6MS4xNXJlbSAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjEuMSAhaW1wb3J0YW50O2NvbG9yOiNGQUIxMjEgIWltcG9ydGFudDt9CiAgLmJsay13OXdzYSAubGVhZC1zdWJ0aXRsZXtmb250LXNpemU6MS4zMTI1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MS4xICFpbXBvcnRhbnQ7Y29sb3I6I0ZBQjEyMSAhaW1wb3J0YW50O30KICAuYmxrLXc5d3NhIC5sZWFkLXRpdGxle2ZvbnQtc2l6ZToyLjU1cmVtICFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6MC45ICFpbXBvcnRhbnQ7fQogIC5ibGstdzl3c2EgLmxlYWQtdGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay13OXdzYSAubGVhZC10aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay13OXdzYSAubGVhZC1raWNrZXItZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay13OXdzYSAubGVhZC1raWNrZXItbW9iaWxle2Rpc3BsYXk6aW5saW5lICFpbXBvcnRhbnQ7fQogIC5ibGstdzl3c2EgLmxlYWQtc3VidGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay13OXdzYSAubGVhZC1zdWJ0aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9CiAgLmJsay13OXdzYSAubGVhZC1hbmltLWhlYWRsaW5lc3tmb250LXNpemU6MS44NzVyZW0gIWltcG9ydGFudDtsaW5lLWhlaWdodDoxLjAyICFpbXBvcnRhbnQ7fQogIAogIC5ibGstdzl3c2EgLnJlbGF0ZWQtdGl0bGUtZGVza3tkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9CiAgLmJsay13OXdzYSAucmVsYXRlZC10aXRsZS1tb2JpbGV7ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDt9Cn0KLmJsay13OXdzYSAubGVhZHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOiNmZmY7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO30KLmJsay13OXdzYSAubGVhZC1tZWRpYXtwb3NpdGlvbjpyZWxhdGl2ZTthc3BlY3QtcmF0aW86MTYvOTtiYWNrZ3JvdW5kOiMwMDA7b3ZlcmZsb3c6aGlkZGVufQovKiBNZWRpYSBtZWRpYW50ZSBpZnJhbWU6IGFsdG8gZmlqbyBlbiBw7XhlbGVzIGVuIHZleiBkZSBsYSBwcm9wb3JjafNuIGRlCiAgIGFycmliYSAodmVyIGNvbWVudGFyaW8gZGV0YWxsYWRvIGp1bnRvIGEgc3RhdGUubGVhZC5pZnJhbWVIZWlnaHQpICYjODIxMjsgZWwKICAgdmFsb3IgZGUgTfN2aWwgc2Ugc29icmVzY3JpYmUgZW4gZWwgQGNvbnRhaW5lciBkZSBt4XMgYWJham8sIGlndWFsIHF1ZSBlbAogICByZXN0byBkZSBvdmVycmlkZXMgcmVzcG9uc2l2ZSBkZSBlc3RlIEhUTUwgZXhwb3J0YWRvLiAqLwouYmxrLXc5d3NhIC5sZWFkLW1lZGlhLmlzLWlmcmFtZXthc3BlY3QtcmF0aW86bm9uZTtibG9jay1zaXplOjY0MHB4O30KLmJsay13OXdzYSAubGVhZC1tZWRpYSBpbWcsCi5ibGstdzl3c2EgLmxlYWQtbWVkaWEgdmlkZW97cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyfQovKiBDYXJydXNlbCBkZSBmb3RvcyBkZSBmb25kbyBjb24gZWZlY3RvIEtlbiBCdXJucyAmIzgyMTI7IHZlciBlbCBtaXNtbyBibG9xdWUsCiAgIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLgogICBMYSBkdXJhY2nzbiBkZSBsYXMgYW5pbWFjaW9uZXMgKDZzKSBjb2luY2lkZSBjb24KICAgTEVBRF9DQVJPVVNFTF9JTlRFUlZBTCwgcXVlIHRhbWJp6W4gZ29iaWVybmEgZWwgc2NyaXB0IGRlIHJvdGFjafNuCiAgIChidWlsZExlYWRDYXJvdXNlbFNjcmlwdCkgYfFhZGlkbyBhbCBmaW5hbCBkZWwgSFRNTCBleHBvcnRhZG8uICovCi5ibGstdzl3c2EgLmxlYWQtY2Fyb3VzZWx7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW47fQouYmxrLXc5d3NhIC5sZWFkLWNhcm91c2VsLXNsaWRle3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAxLjVzIGVhc2U7fQouYmxrLXc5d3NhIC5sZWFkLWNhcm91c2VsLXNsaWRlLmlzLWFjdGl2ZXtvcGFjaXR5OjE7ei1pbmRleDoxO30KLmJsay13OXdzYSAubGVhZC1jYXJvdXNlbC1zbGlkZSBpbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyO30KLmJsay13OXdzYSAubGVhZC1jYXJvdXNlbC1zbGlkZTpudGgtY2hpbGQob2RkKSBpbWd7YW5pbWF0aW9uOmJsay13OXdzYS1rZW5idXJucy1hIDZzIGVhc2UtaW4tb3V0IGZvcndhcmRzO30KLmJsay13OXdzYSAubGVhZC1jYXJvdXNlbC1zbGlkZTpudGgtY2hpbGQoZXZlbikgaW1ne2FuaW1hdGlvbjpibGstdzl3c2Eta2VuYnVybnMtYiA2cyBlYXNlLWluLW91dCBmb3J3YXJkczt9CkBrZXlmcmFtZXMgYmxrLXc5d3NhLWtlbmJ1cm5zLWF7IGZyb217dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZSgwLDApO30gdG97dHJhbnNmb3JtOnNjYWxlKDEuMTUpIHRyYW5zbGF0ZSgtNCUsLTMlKTt9IH0KQGtleWZyYW1lcyBibGstdzl3c2Eta2VuYnVybnMtYnsgZnJvbXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSB0b3t0cmFuc2Zvcm06c2NhbGUoMS4xNSkgdHJhbnNsYXRlKDQlLDMlKTt9IH0KLyogQ29uIHVuYSD6bmljYSBmb3RvIChzaW4gcm90YWNp824gcG9zaWJsZSkgc2UgYXBsaWNhIHVuIHpvb20gaW4vb3V0IGVuCiAgIGJ1Y2xlIGluZmluaXRvIGVuIHZleiBkZWwgcmVjb3JyaWRvIPpuaWNvIChmb3J3YXJkcykgZGUgYXJyaWJhLiAqLwouYmxrLXc5d3NhIC5sZWFkLWNhcm91c2VsLmlzLXNpbmdsZSAubGVhZC1jYXJvdXNlbC1zbGlkZSBpbWd7YW5pbWF0aW9uOmJsay13OXdzYS1rZW5idXJucy1sb29wIDE0cyBlYXNlLWluLW91dCBpbmZpbml0ZTt9CkBrZXlmcmFtZXMgYmxrLXc5d3NhLWtlbmJ1cm5zLWxvb3B7IDAle3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGUoMCwwKTt9IDUwJXt0cmFuc2Zvcm06c2NhbGUoMS4xNSkgdHJhbnNsYXRlKC00JSwtMyUpO30gMTAwJXt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlKDAsMCk7fSB9Ci8qIENvbXBhcmFkb3IgYW50ZXMvZGVzcHXpcyAoZGVzbGl6YWRvcikgJiM4MjEyOyB2ZXIgZWwgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4KICAgZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay13OXdzYSAubGVhZC1jb21wYXJle3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlO3RvdWNoLWFjdGlvbjpub25lO3otaW5kZXg6Mjt9Ci5ibGstdzl3c2EgLmxlYWQtY29tcGFyZSBpbWd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtvYmplY3QtZml0OmNvdmVyO29iamVjdC1wb3NpdGlvbjpjZW50ZXI7ZGlzcGxheTpibG9jazt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1kcmFnOm5vbmU7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci5ibGstdzl3c2EgLmxlYWQtY29tcGFyZS1iZWZvcmV7Y2xpcC1wYXRoOmluc2V0KDAgNTAlIDAgMCk7d2lsbC1jaGFuZ2U6Y2xpcC1wYXRoO30KLmJsay13OXdzYSAubGVhZC1jb21wYXJlLXJhbmdle3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7bWFyZ2luOjA7b3BhY2l0eTowO2N1cnNvcjpldy1yZXNpemU7fQouYmxrLXc5d3NhIC5sZWFkLWNvbXBhcmUtaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6NTAlO2lubGluZS1zaXplOjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjI7fQouYmxrLXc5d3NhIC5sZWFkLWNvbXBhcmUtaGFuZGxlOjpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7aW5saW5lLXNpemU6MnB4O2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuOSk7Ym94LXNoYWRvdzowIDAgMCAxcHggcmdiYSgwLDAsMCwuMjUpO30KLmJsay13OXdzYSAubGVhZC1jb21wYXJlLWhhbmRsZTo6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6LTE1cHg7aW5saW5lLXNpemU6MzBweDtibG9jay1zaXplOjMwcHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojZmZmIHVybCgiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMCcgaGVpZ2h0PScyMCcgdmlld0JveD0nMCAwIDIwIDIwJz48ZyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzAwMCcgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnPjxwYXRoIGQ9J004IDYgTDQgMTAgTDggMTQnLz48cGF0aCBkPSdNMTIgNiBMMTYgMTAgTDEyIDE0Jy8+PC9nPjwvc3ZnPiIpIGNlbnRlci8xNnB4IDE2cHggbm8tcmVwZWF0O2JveC1zaGFkb3c6MCAycHggNnB4IHJnYmEoMCwwLDAsLjI1KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjI1KTt9Ci8qIE1lZGlhIG1lZGlhbnRlIGlmcmFtZSAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiBNaXNtbyB6LWluZGV4OjIgcXVlCiAgIC5sZWFkLWNvbXBhcmUsIHBvciBlbCBtaXNtbyBtb3Rpdm8gKGdhbmFybGUgYSAubGVhZC1saW5rKS4gKi8KLmJsay13OXdzYSAubGVhZC1pZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGU7ei1pbmRleDoyO30KLmJsay13OXdzYSAubGVhZC1pZnJhbWUgaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOjEwMCU7Ym9yZGVyOjA7ZGlzcGxheTpibG9jazt9Ci5ibGstdzl3c2EgLmxlYWQtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MTtwb2ludGVyLWV2ZW50czpub25lO30KLmJsay13OXdzYSAubGVhZC1ib2R5e3BhZGRpbmc6MHB4IDIwcHggMjBweCAyMHB4OztkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDo2OyBwb2ludGVyLWV2ZW50czpub25lOyBpbmxpbmUtc2l6ZTo5NSU7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDphdXRvOyBtYXJnaW4tdG9wOi0zMHB4OyBiYWNrZ3JvdW5kOiMwRTExMUE7IGZsZXg6MSAxIGF1dG87fQovKiBBcGFyaWVuY2lhIG5lZ2F0aXZhIChwb3IgZGVmZWN0bykgdnMuIHBvc2l0aXZhIGRlIGxhIGNhamEgZGUgdGl0dWxhciAmIzgyMTI7IHZlcgogICBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLXc5d3NhIC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmxlYWQtYm9keXtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZTdlYmVlO30KLmJsay13OXdzYSAubGVhZC5pcy1hcHBlYXJhbmNlLXBvc2l0aXZlIC5sZWFkLXRpdGxlLAouYmxrLXc5d3NhIC5sZWFkLmlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgLmF1dGhvci1sYWJlbHtjb2xvcjojMEUxMTFBO30KLyogUG9zaWNp824gZGVsIGxlYWQtYm9keSByZXNwZWN0byBhbCBsZWFkLW1lZGlhICgnbGVmdCcvJ3JpZ2h0JykgJiM4MjEyOyB2ZXIgbWlzbW8KICAgYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbC4gKi8KLmJsay13OXdzYSAubGVhZC5sZWFkLWJvZHktbGVmdCwKLmJsay13OXdzYSAubGVhZC5sZWFkLWJvZHktcmlnaHR7ZmxleC1kaXJlY3Rpb246cm93O2FzcGVjdC1yYXRpbzoyLjk2Mjk2Mjk2Mjk2Mjk2Mzt9Ci5ibGstdzl3c2EgLmxlYWQubGVhZC1ib2R5LWxlZnR7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7fQouYmxrLXc5d3NhIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLW1lZGlhLAouYmxrLXc5d3NhIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1tZWRpYXtmbGV4OjAgMCA2MCU7fQouYmxrLXc5d3NhIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHksCi5ibGstdzl3c2EgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWJvZHl7ZmxleDowIDAgY2FsYyg0MCUgKyAzMHB4KTtpbmxpbmUtc2l6ZTphdXRvO21hcmdpbi10b3A6MDtibG9jay1zaXplOmNhbGMoMTAwJSAtIDYwcHgpO2FsaWduLXNlbGY6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7fQouYmxrLXc5d3NhIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5sZWFkLWJvZHl7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6LTMwcHg7fQouYmxrLXc5d3NhIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1ib2R5e21hcmdpbi1sZWZ0Oi0zMHB4O21hcmdpbi1yaWdodDowO30KLyogUG9zaWNp824gJ2JvdHRvbS1mdWxsJyBkZWwgbGVhZC1ib2R5ICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuCiAgIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuIGlubGluZS1zaXplCiAgIGVuIHZleiBkZSB3aWR0aCBwb3IgZWwgbWlzbW8gbW90aXZvIHF1ZSBlbCByZXN0byBkZSBlc3RlIGJsb3F1ZSAoZXZpdGFyCiAgIGxhIHBhbGFicmEgIndpZHRoOiIgcXVlIGVsIENNUyBkZWwgdXN1YXJpbyBlbGltaW5hIGFsIHBlZ2FyIEhUTUwvQ1NTCiAgIGRpcmVjdGFtZW50ZSkuICovCi5ibGstdzl3c2EgLmxlYWQubGVhZC1ib2R5LWJvdHRvbS1mdWxsIC5sZWFkLWJvZHl7CiAgaW5saW5lLXNpemU6MTAwJTsKICBtYXJnaW46MDsKICBwYWRkaW5nLXRvcDozMHB4OwogIHBhZGRpbmctYm90dG9tOjMwcHg7CiAgYm9yZGVyOm5vbmU7Cn0KLyogRXRpcXVldGEgZGUgZXhjbHVzaXZhIChvIHRleHRvIHBlcnNvbmFsaXphZG8pICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvCiAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstdzl3c2EgLmxlYWQtZXhjbHVzaXZlLXRhZ3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7ei1pbmRleDozO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoycHg7bGV0dGVyLXNwYWNpbmc6MC41cHg7cGFkZGluZzoycHggOHB4O2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtmb250LXNpemU6LjhlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6I2ZmZjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7cG9pbnRlci1ldmVudHM6bm9uZTt9Ci8qIFNlbGVjdG9yIGNvbiAzIGNsYXNlcyAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYQogICBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhICgiLmxlYWQtbWVkaWEgaW1nIiB0YW1iaeluCiAgIG1hdGNoZWEgZXN0ZSA8aW1nPiB5IGxlIGdhbmFiYSBlbiBlc3BlY2lmaWNpZGFkKS4gKi8KLmJsay13OXdzYSAubGVhZC1leGNsdXNpdmUtdGFnIC5sZWFkLWV4Y2x1c2l2ZS10YWctaWNvbntwb3NpdGlvbjpzdGF0aWM7aW5zZXQ6YXV0bztpbmxpbmUtc2l6ZToxNHB4O2Jsb2NrLXNpemU6MTRweDtvYmplY3QtZml0OmNvbnRhaW47ZmxleDowIDAgYXV0bztkaXNwbGF5OmJsb2NrO30KLmJsay13OXdzYSAubGVhZC1jYXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtwYWRkaW5nOjJweCA4cHg7dHJhbnNmb3JtOnNrZXdZKC02ZGVnKTttYXJnaW4tdG9wOi0xNXB4O21hcmdpbi1ib3R0b206MTBweDt9Ci5ibGstdzl3c2EgLmxlYWQta2lja2VyLCAuYmxrLXc5d3NhIC5sZWFkLXN1YnRpdGxlewogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjt0ZXh0LXRyYW5zZm9ybTpub25lO21hcmdpbjowOwp9Ci5ibGstdzl3c2EgLmxlYWQta2lja2Vye2ZvbnQtd2VpZ2h0OjcwMDt9Ci5ibGstdzl3c2EgLmxlYWQtc3VidGl0bGV7Zm9udC13ZWlnaHQ6NjAwO30KLyogVGFtYfFvL2ludGVybGluZWFkby9jb2xvciBkZSBhbnRldO10dWxvIHkgc3VidO10dWxvIGVuIERlc2sgKHZhbG9yZXMgcG9yCiAgIGRlZmVjdG8gZGVsIGJsb3F1ZTsgZWwgb3ZlcnJpZGUgZGUgTfN2aWwgdmEgZW4gZWwgQGNvbnRhaW5lciBkZSBt4XMgYWJham8sCiAgIHlhIHF1ZSBlbCBIVE1MIGV4cG9ydGFkbyBlcyByZXNwb25zaXZlIHkgbm8gZGVwZW5kZSBkZSBxdekgdmlzdGEgdHV2aWVyYXMKICAgc2VsZWNjaW9uYWRhIGVuIGVsIGdlc3RvciBhbCBleHBvcnRhci9jb3BpYXIpLiAqLwouYmxrLXc5d3NhIC5sZWFkLWtpY2tlcntmb250LXNpemU6MS4zMTI1cmVtO2xpbmUtaGVpZ2h0OjEuMTtjb2xvcjojRkFCMTIxO30KLmJsay13OXdzYSAubGVhZC1zdWJ0aXRsZXtmb250LXNpemU6MS4zMTI1cmVtO2xpbmUtaGVpZ2h0OjEuMTtjb2xvcjojRkFCMTIxO30KLyogdGV4dC13cmFwOmJhbGFuY2UgJiM4MjEyOyBtaXNtbyBjcml0ZXJpbyBxdWUgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbAogICBkZWwgZ2VzdG9yICh2ZXIgY29tZW50YXJpbyBkZXRhbGxhZG8ganVudG8gYSBlc2EgcmVnbGEpOiByZXBhcnRlIGxhcwogICBs7W5lYXMgZGVsIHRpdHVsYXIgZGUgZm9ybWEgbeFzIHVuaWZvcm1lIGRlbnRybyBkZSBjYWRhIGRpc3Bvc2l0aXZvLCBzaW4KICAgcHJldGVuZGVyIGlndWFsYXIgZWwgbvptZXJvIGRlIGztbmVhcyBlbnRyZSBwbGF0YWZvcm1hcyBkaXN0aW50YXMuICovCi5ibGstdzl3c2EgLmxlYWQtdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDtmb250LXNpemU6Mi4xcmVtO2xpbmUtaGVpZ2h0OjEuMDU7bWFyZ2luOjA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZTt0ZXh0LXdyYXA6YmFsYW5jZTt9Ci8qIFRpdHVsYXIgY29uIHNhbHRvcyBkZSBs7W5lYSBpbmRlcGVuZGllbnRlcyBwb3IgdmlzdGEgKHZlciBidWlsZFNjb3BlZEhUTUwpOgogICBzZSBnZW5lcmFuIGxvcyBkb3MgdGV4dG9zIChEZXNrL03zdmlsKSB5IGFxde0gc2UgbXVlc3RyYSBzb2xvIHVubyBzZWf6biBlbAogICBhbmNobyByZWFsIGRlbCBjb250ZW5lZG9yICYjODIxMjsgZWwgbWlzbW8gbWVjYW5pc21vIGRlIEBjb250YWluZXIgcXVlIHlhIHVzYSBlbAogICByZXN0byBkZWwgSFRNTCBleHBvcnRhZG8gcGFyYSBhZGFwdGFyc2Ugc2luIGRlcGVuZGVyIGRlIEpTLiAqLwouYmxrLXc5d3NhIC5sZWFkLXRpdGxlLW1vYmlsZXtkaXNwbGF5Om5vbmU7fQovKiBBbnRldO10dWxvL3N1YnTtdHVsbyBjb24gc2FsdG9zIGRlIGztbmVhIGluZGVwZW5kaWVudGVzIHBvciB2aXN0YTogbWlzbW8KICAgbWVjYW5pc21vIGRlIEBjb250YWluZXIgcXVlIGVsIHRpdHVsYXIgKHZlciBhcnJpYmEpLiAqLwouYmxrLXc5d3NhIC5sZWFkLWtpY2tlci1tb2JpbGUsIC5ibGstdzl3c2EgLmxlYWQtc3VidGl0bGUtbW9iaWxle2Rpc3BsYXk6bm9uZTt9Ci8qIFRpdHVsYXIgZGUgbm90aWNpYSByZWxhY2lvbmFkYSAoY29sdW1uYSkgY29uIHRleHRvIHByb3BpbyBlbiBN83ZpbCAodmVyCiAgIGl0ZW0udGl0bGVNb2JpbGUgZW4gYnVpbGRDb2x1bW5JdGVtVGl0bGVIVE1MKTogbWlzbW8gbWVjYW5pc21vIGRlCiAgIEBjb250YWluZXIgcXVlIGVsIHRpdHVsYXIgcHJpbmNpcGFsIGRlIGFycmliYS4gKi8KLmJsay13OXdzYSAucmVsYXRlZC10aXRsZS1tb2JpbGV7ZGlzcGxheTpub25lO30KLmJsay13OXdzYSAuYXV0aG9yLWxhYmVse2ZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXNpemU6LjhlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpyaWdodDtkaXNwbGF5OmJsb2NrfQouYmxrLXc5d3NhIC5jb2x1bW57ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDtqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47fQouYmxrLXc5d3NhIC5jb2x1bW4taXRlbXtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjoxcHggc29saWQgI2U3ZWJlZTtwYWRkaW5nOjEwcHg7YmFja2dyb3VuZDojZmZmO2Jsb2NrLXNpemU6c3RyZXRjaDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2U7fQouYmxrLXc5d3NhIC50aHVtYntwb3NpdGlvbjpyZWxhdGl2ZTtpbmxpbmUtc2l6ZToxMDAlO2FzcGVjdC1yYXRpbzo0LzM7YmFja2dyb3VuZDojZWVlO292ZXJmbG93OmhpZGRlbn0KLmJsay13OXdzYSAudGh1bWIgaW1nLAouYmxrLXc5d3NhIC50aHVtYiB2aWRlb3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZToxMDAlO29iamVjdC1maXQ6Y292ZXJ9Ci5ibGstdzl3c2EgLnRodW1iIC5wbGF5LXNxdWFyZSwKLmJsay13OXdzYSAubWVkaWEtYmxvY2std3JhcCAucGxheS1zcXVhcmV7CiAgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTo1cHg7IGxlZnQ6NXB4OwogIGlubGluZS1zaXplOjI1cHg7YmxvY2stc2l6ZToyNXB4O2JvcmRlci1yYWRpdXM6MnB4O2Rpc3BsYXk6aW5saW5lLWdyaWQ7cGxhY2UtaXRlbXM6Y2VudGVyOwogIGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjYpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjE4KTsKICBjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cywgdHJhbnNmb3JtIC4xMnM7CiAgei1pbmRleDoyOyBhbmltYXRpb246YmxrLXc5d3NhLWJsaW5rIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwp9Ci5ibGstdzl3c2EgLnRodW1iIC5wbGF5LXNxdWFyZTo6YmVmb3JlLAouYmxrLXc5d3NhIC5tZWRpYS1ibG9jay13cmFwIC5wbGF5LXNxdWFyZTo6YmVmb3JlewogIGNvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztpbmxpbmUtc2l6ZTowO2Jsb2NrLXNpemU6MDsKICBib3JkZXItbGVmdDo2cHggc29saWQgI2ZmZjtib3JkZXItdG9wOjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjVweCBzb2xpZCB0cmFuc3BhcmVudDsKICBtYXJnaW4tbGVmdDoycHg7Cn0KLmJsay13OXdzYSAudGh1bWIgLnBsYXktc3F1YXJlOmhvdmVyLAouYmxrLXc5d3NhIC5tZWRpYS1ibG9jay13cmFwIC5wbGF5LXNxdWFyZTpob3ZlcnsgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuODUpOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTsgfQouYmxrLXc5d3NhIC5zdGFjay10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxN3B4O2xpbmUtaGVpZ2h0OjEuMTVlbTttYXJnaW46MDtjb2xvcjojMmMzZTUzO30KLmJsay13OXdzYSAuc3RhY2stYXV0aG9ye2ZvbnQtZmFtaWx5OiJhbXBsaXR1ZGUtYm9vayIsc2Fucy1zZXJpZjtjb2xvcjojODI4NTk1O2ZvbnQtd2VpZ2h0OjIwMDtmb250LXNpemU6LjhyZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDoxMXB4O2xldHRlci1zcGFjaW5nOjA7dGV4dC1hbGlnbjpyaWdodDt9Ci8qIFNpbiBlc3RhIHJlZ2xhIGVsIGF1dG9yIHF1ZWRhIHBlZ2FkbyBqdXN0byBkZWJham8gZGVsIHRpdHVsYXIgZW4gdmV6IGRlCiAgIGFiYWpvIGRlIGxhIHRhcmpldGE6IC5tb2Qtc3RhY2sgbmVjZXNpdGEgc2VyIGZsZXgtY29sdW1uIGNvbgogICBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiBwYXJhIHF1ZSBlbCBodWVjbyBzb2JyYW50ZSAoY3VhbmRvIGxhCiAgIHRhcmpldGEgY3JlY2UgbeFzIHF1ZSBzdSBjb250ZW5pZG8sIHZlciAuY29sdW1uLWl0ZW06bm90KC5sYXlvdXQtbWVkaWEtYmxvY2spCiAgIG3hcyBhYmFqbykgZW1wdWplIGVsIGF1dG9yIGhhY2lhIGVsIGJvcmRlIGluZmVyaW9yLiAqLwouYmxrLXc5d3NhIC5tb2Qtc3RhY2t7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtmbGV4OjEgMSBhdXRvO30KLyogRXN0aWxvICJmb3RvIHBlcXVl8WEgKyB0aXR1bGFyIjogZm90byA0OjMgYSBsYSBpenF1aWVyZGEsIHRleHRvIGEgbGEgZGVyZWNoYS4gKi8KLmJsay13OXdzYSAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLWxlZnR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxMTBweCAxZnI7Z2FwOjEwcHg7fQovKiBFc3RpbG8gInNvbG8gdGV4dG8iIChwb3IgZGVmZWN0byk6IGVsIGF1dG9yIHNlIHBvc2ljaW9uYSBlbiBhYnNvbHV0bywKICAgYW5jbGFkbyBhIGxhIGVzcXVpbmEgaW5mZXJpb3IgZGVyZWNoYSBkZSBsYSB0YXJqZXRhIChpZ3VhbCBxdWUgZWwgcGxheSBkZQogICBsYXMgbWluaWF0dXJhcyksIGVuIHZleiBkZSBkZXBlbmRlciBkZSBxdWUgZWwgYmxvcXVlIGRlIHRleHRvIHRlbmdhIGh1ZWNvCiAgIGRlIHNvYnJhIHBhcmEgZW1wdWphcmxvIGFiYWpvIGNvbiBmbGV4Ym94ICYjODIxMjsgY29uIHTtdHVsb3MgZGUgMi0zIGztbmVhcyBlc2UKICAgaHVlY28gbm8gZXhpc3RlIHkgZWwgYXV0b3IgbnVuY2EgbGxlZ2FiYSBhIGJhamFyLiBwYWRkaW5nLWJvdHRvbSBlbgogICBsZWZ0LWJvZHkgcmVzZXJ2YSBlbCBlc3BhY2lvIHBhcmEgcXVlIGVsIHTtdHVsbyBubyBzZSBzb2xhcGUgY29uIOlsLiAqLwouYmxrLXc5d3NhIC5jb2x1bW4taXRlbS5sYXlvdXQtdGl0bGUtb25seSAubGVmdC1ib2R5e3BhZGRpbmctYm90dG9tOjMzcHg7fQouYmxrLXc5d3NhIC5jb2x1bW4taXRlbS5sYXlvdXQtdGl0bGUtb25seSAuc3RhY2stYXV0aG9ye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjEwcHg7Ym90dG9tOjEwcHg7bWFyZ2luLXRvcDowO30KLmJsay13OXdzYSAubGVmdC10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMXB4O2xpbmUtaGVpZ2h0OjEuMTU7Y29sb3I6IzJjM2U1MzttYXJnaW46MDt0ZXh0LWFsaWduOmxlZnQ7fQouYmxrLXc5d3NhIC5sZWZ0LXBsYXl7CiAgZmxleDowIDAgYXV0bztpbmxpbmUtc2l6ZToxNXB4O2Jsb2NrLXNpemU6MTVweDtib3JkZXItcmFkaXVzOjJweDsKICBiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjMDBhN2ZmOwogIGRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzowOwogIHZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW4tcmlnaHQ6NnB4O21hcmdpbi1ib3R0b206IDRweDsKfQouYmxrLXc5d3NhIC5sZWZ0LXBsYXk6OmJlZm9yZXsKICBjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MDtibG9jay1zaXplOjA7CiAgYm9yZGVyLWxlZnQ6NHB4IHNvbGlkICMwMGE3ZmY7Ym9yZGVyLXRvcDozcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7bWFyZ2luLWxlZnQ6MXB4Owp9Ci5ibGstdzl3c2EgLnJlbGF0ZWQtbGl2ZS10YWd7CiAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleDowIDAgYXV0bzsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwOwogIGZvbnQtc2l6ZTouN3JlbTtsaW5lLWhlaWdodDowLjg7bGV0dGVyLXNwYWNpbmc6LjNweDtjb2xvcjojRkY1MDUwOwogIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjRkY1MDUwOwogIHBhZGRpbmc6M3B4IDRweCAycHggNHB4O21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWJvdHRvbTo0cHg7dmVydGljYWwtYWxpZ246bWlkZGxlOwogIHdoaXRlLXNwYWNlOm5vd3JhcDsKfQouYmxrLXc5d3NhIC5yZWxhdGVkLWVkaXRvcmlhbC10YWd7CiAgZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleDowIDAgYXV0bzsKICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwOwogIGZvbnQtc2l6ZTouN3JlbTtsaW5lLWhlaWdodDowLjg7bGV0dGVyLXNwYWNpbmc6LjNweDtjb2xvcjojRkFCMTIxOwogIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjRkFCMTIxOwogIHBhZGRpbmc6M3B4IDRweCAycHggNHB4O21hcmdpbi1yaWdodDo2cHg7bWFyZ2luLWJvdHRvbTo0cHg7dmVydGljYWwtYWxpZ246bWlkZGxlOwogIHdoaXRlLXNwYWNlOm5vd3JhcDsKfQouYmxrLXc5d3NhIC5wbGF5LWJ1dHRvbnsKICAvKiBBbmNoby9hbHRvIGZpam9zIGVuIHZleiBkZSBhc3BlY3QtcmF0aW86MS8xICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvCiAgICAgZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YSAoZWwKICAgICBj4WxjdWxvIGRlICJzaHJpbmstdG8tZml0IiBwYXJhIHVuIDxidXR0b24+IGVuIGFic29sdXRvIHNpbiB0YW1h8W8KICAgICBleHBs7WNpdG8gbm8gZXMgZmlhYmxlIGVudHJlIG1vdG9yZXM7IGVuIFdlYktpdC9pT1MgZGFiYSB1biByZWN04W5ndWxvCiAgICAgdmVydGljYWwgZXN0cmVjaO1zaW1vIGVuIHZleiBkZSB1biBjdWFkcmFkbykuICovCiAgYXBwZWFyYW5jZTpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOwogIHBvc2l0aW9uOmFic29sdXRlO3RvcDoxMHB4O2xlZnQ6MTBweDsKICBpbmxpbmUtc2l6ZTozNHB4O2Jsb2NrLXNpemU6MzRweDsKICBkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzoxMHB4IDEwcHggMTBweCAxMnB4OwogIGJhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNyk7CiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC40Mik7Y29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjNweDsKICBjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjI7YW5pbWF0aW9uOmJsay13OXdzYS1ibGluayAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsKfQouYmxrLXc5d3NhIC5wbGF5LWJ1dHRvbiAucGxheS1pY29uewogIGlubGluZS1zaXplOjA7YmxvY2stc2l6ZTowOwogIGJvcmRlci1sZWZ0OjEwcHggc29saWQgI2ZmZjtib3JkZXItdG9wOjZweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjZweCBzb2xpZCB0cmFuc3BhcmVudDsKfQouYmxrLXc5d3NhIC5wbGF5LWJ1dHRvbiAucGxheS10ZXh0e2Rpc3BsYXk6bm9uZTt9Ci8qIEVuIGVsIG1vZG8gJ2xlZnQnIGVsIFBsYXkgcGFzYSBhIGxhIGVzcXVpbmEgc3VwZXJpb3IgZGVyZWNoYSAmIzgyMTI7IHZlciBtaXNtbwogICBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsLiAqLwouYmxrLXc5d3NhIC5sZWFkLmxlYWQtYm9keS1sZWZ0IC5wbGF5LWJ1dHRvbntsZWZ0OmF1dG87cmlnaHQ6MTBweDt9CgovKiBUaXR1bGFyZXMgYW5pbWFkb3MgKGNhcGEgYWx0ZXJuYXRpdmEgc29icmUgbGVhZC1tZWRpYSkgJiM4MjEyOyB2ZXIgbWlzbW8KICAgYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYQogICBoZXJyYW1pZW50YS4gQ2FkYSB0aXR1bGFyIHRpZW5lIHN1IHByb3BpYSBwb3NpY2nzbiAoY2xhc2UgcG9zLSosIHZlcgogICBidWlsZFNjb3BlZEhUTUwpIHkgc2UgcmV2ZWxhIGztbmVhIHBvciBs7W5lYSAodW5hIHZleiBtZWRpZGFzIHN1cyBs7W5lYXMKICAgcmVhbGVzIHBvciBlbCBzY3JpcHQgc3RhbmRhbG9uZSwgdmVyIGJ1aWxkQW5pbUhlYWRsaW5lc1NjcmlwdCkgY29uIHVuYQogICBjYWphIGRlIGZvbmRvIGRldHLhcyBkZSBjYWRhIGztbmVhIHkgdW4gZmFkZSBkZSBvcGFjaWRhZCBlbnRyZSB0aXR1bGFyZXMuICovCi5ibGstdzl3c2EgLmxlYWQtYW5pbS1oZWFkbGluZXN7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgaW5zZXQ6MDsKICB6LWluZGV4OjQ7CiAgcG9pbnRlci1ldmVudHM6bm9uZTsKfQouYmxrLXc5d3NhIC5sZWFkLWFuaW0taGVhZGxpbmV7CiAgcG9zaXRpb246YWJzb2x1dGU7CiAgbGVmdDoxNXB4OwogIG9wYWNpdHk6MDsKfQouYmxrLXc5d3NhIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1sZWZ0eyBib3R0b206NjBweDsgfQouYmxrLXc5d3NhIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1sZWZ0eyB0b3A6NjBweDsgfQouYmxrLXc5d3NhIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1sZWZ0eyB0b3A6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgfQouYmxrLXc5d3NhIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodCwKLmJsay13OXdzYSAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1taWRkbGUtcmlnaHQsCi5ibGstdzl3c2EgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0eyBsZWZ0OmF1dG87IHJpZ2h0OjE1cHg7IH0KLmJsay13OXdzYSAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHR7IHRvcDo2MHB4OyB9Ci5ibGstdzl3c2EgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0eyB0b3A6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgfQouYmxrLXc5d3NhIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLWJvdHRvbS1yaWdodHsgYm90dG9tOjYwcHg7IH0KLyogQ29uIGVsIHRleHRvIChsZWFkLWJvZHkpIGEgbGEgaXpxdWllcmRhIG8gbGEgZGVyZWNoYSwgZXNlIGJsb3F1ZSBzb2xhcGEKICAgMzBweCBkZWwgbGFkbyBkZSBsYSBmb3RvL3btZGVvIHBlZ2FkbyBhIOlsICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvCiAgIGVuIGRldGFsbGUsIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstdzl3c2EgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtdG9wLWxlZnQsCi5ibGstdzl3c2EgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLWxlZnQsCi5ibGstdzl3c2EgLmxlYWQubGVhZC1ib2R5LWxlZnQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLWxlZnR7IGxlZnQ6NDBweDsgfQouYmxrLXc5d3NhIC5sZWFkLmxlYWQtYm9keS1yaWdodCAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy10b3AtcmlnaHQsCi5ibGstdzl3c2EgLmxlYWQubGVhZC1ib2R5LXJpZ2h0IC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLW1pZGRsZS1yaWdodCwKLmJsay13OXdzYSAubGVhZC5sZWFkLWJvZHktcmlnaHQgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtYm90dG9tLXJpZ2h0eyByaWdodDo0MHB4OyB9Ci5ibGstdzl3c2EgLmxlYWQtYW5pbS1oZWFkbGluZS5pcy1hY3RpdmV7IG9wYWNpdHk6MTsgfQouYmxrLXc5d3NhIC5sZWFkLWFuaW0tbGluZXsKICBwb3NpdGlvbjpyZWxhdGl2ZTsKICBkaXNwbGF5OnRhYmxlOwogIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjsKICBmb250LXdlaWdodDo5MDA7CiAgY29sb3I6I2ZmZjsKICBwYWRkaW5nOjJweCA4cHg7CiAgY2xpcC1wYXRoOmluc2V0KDAgMTAwJSAwIDApOwogIG9wYWNpdHk6MTsKICB0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBlYXNlOwp9Ci5ibGstdzl3c2EgLmxlYWQtYW5pbS1saW5lLmlzLWhpZGluZ3sgb3BhY2l0eTowOyB9Ci8qIFNvbGFwZSBkZSAxcHggZW50ZXJhIGVudHJlIGztbmVhcyBwYXJhIGNlcnJhciBlbCBoaWxvIGRlIHN1Yi1w7XhlbCBxdWUKICAgcHVlZGUgcXVlZGFyIGVudHJlIHN1cyBjYWphcyBkZSBmb25kbyAocmVkb25kZW8gZGUgYWx0dXJhcyBmcmFjY2lvbmFyaWFzKSAmIzgyMTI7CiAgIHZlciBtaXNtbyBjb21lbnRhcmlvLCBkZXRhbGxhZG8sIGVuIGxhIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwuICovCi5ibGstdzl3c2EgLmxlYWQtYW5pbS1saW5lICsgLmxlYWQtYW5pbS1saW5lewogIG1hcmdpbi10b3A6LTFweDsKfQouYmxrLXc5d3NhIC5sZWFkLWFuaW0tbGluZTpmaXJzdC1jaGlsZHsgcGFkZGluZy10b3A6NnB4OyB9Ci5ibGstdzl3c2EgLmxlYWQtYW5pbS1saW5lOmxhc3QtY2hpbGR7IHBhZGRpbmctYm90dG9tOjZweDsgfQouYmxrLXc5d3NhIC5sZWFkLWFuaW0taGVhZGxpbmUucG9zLXRvcC1yaWdodCAubGVhZC1hbmltLWxpbmUsCi5ibGstdzl3c2EgLmxlYWQtYW5pbS1oZWFkbGluZS5wb3MtbWlkZGxlLXJpZ2h0IC5sZWFkLWFuaW0tbGluZSwKLmJsay13OXdzYSAubGVhZC1hbmltLWhlYWRsaW5lLnBvcy1ib3R0b20tcmlnaHQgLmxlYWQtYW5pbS1saW5leyBtYXJnaW4tbGVmdDphdXRvOyBtYXJnaW4tcmlnaHQ6MDsgfQouYmxrLXc5d3NhIC5sZWFkLWFuaW0taGVhZGxpbmVzLmlzLXBvc2l0aXZlIC5sZWFkLWFuaW0tbGluZXsgY29sb3I6IzBFMTExQTsgfQouYmxrLXc5d3NhIC5sZWFkLWFuaW0tbGluZS1iZ3sgcG9zaXRpb246YWJzb2x1dGU7IGluc2V0OjA7IHotaW5kZXg6LTE7IH0KLmJsay13OXdzYSAubGVhZC1hbmltLWxpbmUtdGV4dHsgcG9zaXRpb246cmVsYXRpdmU7IH0KQGtleWZyYW1lcyBibGstdzl3c2EtYW5pbS1saW5lLXJldmVhbHsgdG97IGNsaXAtcGF0aDppbnNldCgwIDAgMCAwKTsgfSB9CgovKiBBbmNob3Igb3ZlcmxheSBmb3IgZnVsbCBjbGlja2FibGUgbGVhZCAqLwouYmxrLXc5d3NhIC5sZWFkLWxpbmt7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjF9CgovKiBIb3ZlciBvcGFjaXR5IGFuaW1hdGlvbiAqLwouYmxrLXc5d3NhIC5sZWFkOmhvdmVyIC5sZWFkLXRpdGxlLAouYmxrLXc5d3NhIC5jb2x1bW4taXRlbTpob3ZlcntvcGFjaXR5Oi44fQovKiBGb3RvIHByaW5jaXBhbCAoZmFsbGJhY2svc2luZ2xlKSBvIGNhcnJ1c2VsIGRlIGZvdG9zOiBvcGFjaWRhZCAwLjkgYWwKICAgcGFzYXIgZWwgcmF0824gcG9yIGxhIHRhcmpldGEgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4KICAgbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gTm8gYXBsaWNhIGEgdu1kZW8gbmkgYWwKICAgY29tcGFyYWRvciBhbnRlcy9kZXNwdelzLiAqLwouYmxrLXc5d3NhIC5sZWFkLW1lZGlhID4gaW1nLAouYmxrLXc5d3NhIC5sZWFkLW1lZGlhID4gLmxlYWQtY2Fyb3VzZWx7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlO30KLmJsay13OXdzYSAubGVhZDpob3ZlciAubGVhZC1tZWRpYSA+IGltZywKLmJsay13OXdzYSAubGVhZDpob3ZlciAubGVhZC1tZWRpYSA+IC5sZWFkLWNhcm91c2Vse29wYWNpdHk6Ljk7fQovKiBFbiBlbCBhbmNobyBt83ZpbCAobWlzbW8gQGNvbnRhaW5lciBxdWUgZWwgcmVzdG8gZGVsIEhUTUwgZXhwb3J0YWRvKSBubwogICBhcGxpY2EgZXN0YSBhbmltYWNp824gZGUgb3BhY2lkYWQgc29icmUgbGEgbm90aWNpYSBwcmluY2lwYWw6IHZhIERFU1BVyVMKICAgZGUgbGEgcmVnbGEgZ2VuZXJhbCBkZSBhcnJpYmEgKG1pc21hIGVzcGVjaWZpY2lkYWQpIHBhcmEgcG9kZXIgZ2FuYXJsZS4KICAgT21pdGlkbywgaWd1YWwgcXVlIGVsIGJsb3F1ZSBkZSB0aXBvZ3JhZu1hIGRlIGFycmliYSwgbWllbnRyYXMgbGEKICAgc2ltdWxhY2nzbiBkZSBhbmNobyBlc3TpIGFjdGl2YSAodmVyIGxlYWRXaWR0aFByZXZpZXcpLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6ODYwcHgpewogIC5ibGstdzl3c2EgLmxlYWQ6aG92ZXIgLmxlYWQtdGl0bGUsCiAgLmJsay13OXdzYSAubGVhZDpob3ZlciAubGVhZC1tZWRpYSA+IGltZywKICAuYmxrLXc5d3NhIC5sZWFkOmhvdmVyIC5sZWFkLW1lZGlhID4gLmxlYWQtY2Fyb3VzZWx7b3BhY2l0eToxO30KfQoKLyogQW5pbWFjafNuIGNvbXBhcnRpZGEgcGxheSBwcmluY2lwYWwgKyBjdWFkcmFkb3MgcGxheSBhcGlsYWRhcyAqLwpAa2V5ZnJhbWVzIGJsay13OXdzYS1ibGlua3sKICAwJSwxMDAle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjcpfQogIDUwJXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwxNjUsMjU1LDAuOSl9Cn0KLyogQ2FiZWNlcmEgKi8KLmJsay13OXdzYSAuYmctc2VjdGlvbi10aXRsZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjoxMHB4IDAgMzJweH0KLmJsay13OXdzYSAuZm5kLWxpbmVhe2lubGluZS1zaXplOjEwMCU7YmxvY2stc2l6ZTo1cHg7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTttYXJnaW4tdG9wOi0xOHB4O2JvcmRlci10b3A6MXB4IHNvbGlkICMzMzM7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzMzM30KLmJsay13OXdzYSAuc2VjdGlvbi10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6OTAwO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MDtsaW5lLWhlaWdodDoxLjI7bGV0dGVyLXNwYWNpbmc6LTFweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI7YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6NHB4IDEzcHg7Ym9yZGVyOjFweCBzb2xpZCAjMEUxMTFBO3RyYW5zZm9ybTpyb3RhdGVYKDVkZWcpIHJvdGF0ZVkoLTI1ZGVnKSBza2V3WCgwZGVnKTtmb250LXNpemU6NDJweDtjb2xvcjojMEUxMTFBO30KQGNvbnRhaW5lciAobWF4LWlubGluZS1zaXplOjg2MHB4KXsuYmxrLXc5d3NhIC5zZWN0aW9uLXRpdGxle2ZvbnQtc2l6ZToyN3B4O3BhZGRpbmc6MCAxMHB4fX0KLyogQ2FiZWNlcmEgJiM4MjEyOyBEaXNl8W8gMiAodGl0dWxhciArIGNhcnJ1c2VsIGRlIGxvZ290aXBvcykgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLAogICBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay13OXdzYSAuaGVhZGVyMntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoyMHB4O3BhZGRpbmctYm90dG9tOjVweDttYXJnaW4tYm90dG9tOjEwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzBFMTExQTt9Ci8qIGFsaWduLXNlbGY6ZmxleC1lbmQgZmlqYSBlbCB0aXR1bGFyIFNJRU1QUkUgYSAxNXB4IGRlIGxhIGztbmVhIHNlcGFyYWRvcmEKICAgZW4gRGVzayAmIzgyMTI7IHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MKICAgcHJpbmNpcGFsIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLXc5d3NhIC5oZWFkZXIyLWxlZnR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtmbGV4OjEgMSA1MCU7bWluLWlubGluZS1zaXplOjA7YWxpZ24tc2VsZjpmbGV4LWVuZDt9Ci5ibGstdzl3c2EgLmhlYWRlcjItdGFnc3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7ZmxleDowIDAgYXV0bzt9Ci8qIE1pc21vIHRhbWHxby90aXBvZ3JhZu1hIHF1ZSAubGVhZC1leGNsdXNpdmUtdGFnIChsYSBkZSBsYSBub3RpY2lhCiAgIHByaW5jaXBhbCkgJiM4MjEyOyB2ZXIgbWlzbW8gYmxvcXVlLCBjb21lbnRhZG8gZW4gZGV0YWxsZSwgZW4gbGEgaG9qYSBkZQogICBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YS4gKi8KLmJsay13OXdzYSAuaGVhZGVyMi1jYXQtdGFnLAouYmxrLXc5d3NhIC5oZWFkZXIyLWV4Y2x1c2l2ZS10YWd7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoycHg7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6LjhlbTtsZXR0ZXItc3BhY2luZzouNXB4O3BhZGRpbmc6MnB4IDhweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOiNmZmY7fQouYmxrLXc5d3NhIC5oZWFkZXIyLWV4Y2x1c2l2ZS10YWctaWNvbntwb3NpdGlvbjpzdGF0aWM7aW5zZXQ6YXV0bztpbmxpbmUtc2l6ZToxNHB4O2Jsb2NrLXNpemU6MTRweDtvYmplY3QtZml0OmNvbnRhaW47ZmxleDowIDAgYXV0bztkaXNwbGF5OmJsb2NrO30KLmJsay13OXdzYSAuaGVhZGVyMi10aXRsZXtmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6OTAwO2ZvbnQtc2l6ZTozNnB4O2xpbmUtaGVpZ2h0OjEuMDU7Y29sb3I6IzBFMTExQTttYXJnaW46MDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bWluLWlubGluZS1zaXplOjA7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkO30KLyogU2VwYXJhY2nzbiBkZSAxMHB4IGVudHJlIGVsIHRleHRvIGRlIHBhdHJvY2luaW8geSBlbCBsb2dvIGVuIERlc2sgJiM4MjEyOyBlbgogICBN83ZpbCBzaWd1ZSBzaW4gc2VwYXJhY2nzbiAoZ2FwOjAsIHZlciBAY29udGFpbmVyIG3hcyBhYmFqbykuICovCi5ibGstdzl3c2EgLmhlYWRlcjItbG9nb3Mtd3JhcHtmbGV4OjAgMCBhdXRvO21heC1pbmxpbmUtc2l6ZTo1MCU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7fQovKiBFdGlxdWV0YSBvcGNpb25hbCBqdW50byBhbCBjYXJydXNlbCBkZSBsb2dvcyAocC5lai4gIlBhdHJvY2luYWRvIHBvcjoiKSAmIzgyMTI7CiAgIHZlciBtaXNtbyBibG9xdWUsIGNvbWVudGFkbyBlbiBkZXRhbGxlLCBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsCiAgIGRlIGxhIGhlcnJhbWllbnRhLiAqLwouYmxrLXc5d3NhIC5oZWFkZXIyLWxvZ29zLWxhYmVse2ZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojNjY3O3doaXRlLXNwYWNlOm5vd3JhcDt9Ci5ibGstdzl3c2EgLmhlYWRlcjItbG9nb3N7cG9zaXRpb246cmVsYXRpdmU7aW5saW5lLXNpemU6MTYwcHg7YmxvY2stc2l6ZTo1MHB4O2ZsZXgtc2hyaW5rOjA7fQouYmxrLXc5d3NhIC5oZWFkZXIyLWxvZ29zIGltZ3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO21hcmdpbjphdXRvO21heC1pbmxpbmUtc2l6ZToxMDAlO21heC1ibG9jay1zaXplOjEwMCU7b2JqZWN0LWZpdDpjb250YWluO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjdzIGVhc2UtaW4tb3V0O30KLmJsay13OXdzYSAuaGVhZGVyMi1sb2dvcyBpbWcuaXMtYWN0aXZle29wYWNpdHk6MTt9Ci8qIElndWFsIHF1ZSBlbiBsYSBob2phIGRlIGVzdGlsb3MgcHJpbmNpcGFsOiBwb3IgZGViYWpvIGRlIGVzdGUgYW5jaG8gc2UKICAgaW50ZW50YSBwcmltZXJvIDEgU09MQSBGSUxBIChldGlxdWV0YXMrdGl0dWxhciBqdW50byBhbCBsb2dvLCBpZ3VhbCBxdWUKICAgZW4gRGVzaywgYSB0YW1h8W8gcmVkdWNpZG8pLiBFbCBibG9xdWUgZGUgbG9nb3MgbWFudGllbmUgU0lFTVBSRSBzdQogICBkaXNwb3NpY2nzbiBlbiBjb2x1bW5hIChldGlxdWV0YSBkZSBwYXRyb2NpbmlvIGVuY2ltYSBkZWwgbG9nbywKICAgYWxpbmVhZG9zIGEgbGEgZGVyZWNoYSwgc2luIHNlcGFyYWNp824pIHRhbnRvIGVuIGVzdGEgZmlsYSD6bmljYSBjb21vIGVuCiAgIGVsIHJlc2d1YXJkbyBkZSBhYmFqby4gU2kgZWwgdGl0dWxhciwgc3VtYWRvIGFsIGFuY2hvIGRlIGxhcyBldGlxdWV0YXMKICAgYWN0aXZhcyAoY2F0ZWdvcu1hIHkvbyBleGNsdXNpdmEsIHNpIGxhcyBoYXkpLCBzdXBlcmEgZWwgNTUlIGRlbCBhbmNobwogICB0b3RhbCBkZSBsYSBjYWJlY2VyYSAoY2FkYSB1bm8gbWVkaWRvIGEgdW5hIHNvbGEgbO1uZWEpLCBlbCBzY3JpcHQKICAgc3RhbmRhbG9uZSBh8WFkaWRvIGFsIGZpbmFsIGRlIGVzdGUgSFRNTCAodmVyCiAgIGJ1aWxkSGVhZGVyMlN0YWNraW5nU2NyaXB0KCkpIGxvIGRldGVjdGEgbWlkaWVuZG8gc3UgYW5jaG8gbmF0dXJhbAogICB5IGHxYWRlIGxhIGNsYXNlICJoZWFkZXIyLXN0YWNrZWQiOiBlbCBibG9xdWUgZGUKICAgbG9nb3Mgc3ViZSBlbnRvbmNlcyBhIHN1IHByb3BpYSBmaWxhIChhbGluZWFkbyBhIGxhIGRlcmVjaGEpIHkKICAgdGl0dWxhcitldGlxdWV0YXMgYmFqYW4gYSBsYSBmaWxhIGRlIGFiYWpvLCBhIGFuY2hvIGNvbXBsZXRvICYjODIxMjsgbWlzbW8KICAgbGF5b3V0IGRlIDIgZmlsYXMgcXVlIGhhYu1hIGFudGVzIHNpZW1wcmUgcG9yIGRlYmFqbyBkZSBlc3RlIGJyZWFrcG9pbnQsCiAgIGFob3JhIHNvbG8gY29tbyByZXNndWFyZG8uIERlbnRybyBkZSBlc2UgcmVzZ3VhcmRvLCBjb24gZXRpcXVldGEocykgZWwKICAgdGl0dWxhciBwYXNhIGFkZW3hcyBhIHN1IFBST1BJQSBmaWxhIGEgYW5jaG8gY29tcGxldG8sIGRlYmFqbyBkZSBsYSBmaWxhIGRlIGV0aXF1ZXRhcyAodmVyCiAgICIuaGVhZGVyMi1zdGFja2VkIC5oZWFkZXIyLWxlZnQiIG3hcyBhYmFqbykuIEVsIGxvZ28gc2UgcmVkdWNlIHVuIDIwJQogICAoMTYweDUwICYjODU5NDsgMTI4eDQwKS4KICAgYWxpZ24tc2VsZjpmbGV4LWVuZCBlbiBoZWFkZXIyLWxlZnQgZmlqYSBlbCB0aXR1bGFyIFNJRU1QUkUgYSBsb3MgMTBweAogICBkZWwgcGFkZGluZy1ib3R0b20gcmVzcGVjdG8gYSBsYSBs7W5lYSBzZXBhcmFkb3JhICYjODIxMjsgbWlzbW8gY3JpdGVyaW8gcXVlCiAgIGVuIERlc2sgKHZlciBoZWFkZXIyLWxlZnQgbeFzIGFycmliYSk6IHNpbiBlc3RvLCBhbCBzZXIgZWwgYmxvcXVlIGRlCiAgIGxvZ29zIG3hcyBhbHRvIHF1ZSBlbCB0aXR1bGFyLCBlbCBjZW50cmFkbyB2ZXJ0aWNhbCBkZWwgcm93IGRlamFiYSB1bgogICBodWVjbyBtYXlvciBlbnRyZSBlbCB0aXR1bGFyIHkgbGEgbO1uZWEuIEVsIGJsb3F1ZSBkZSBsb2dvcyBzaWd1ZQogICBjZW50cmFkbyAoc2luIGVzZSBvdmVycmlkZSkuICovCkBjb250YWluZXIgKG1heC1pbmxpbmUtc2l6ZTo0ODBweCl7CiAgLmJsay13OXdzYSAuaGVhZGVyMntmbGV4LWRpcmVjdGlvbjpyb3c7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O3BhZGRpbmctbGVmdDoxMHB4O3BhZGRpbmctcmlnaHQ6MTBweDtwYWRkaW5nLWJvdHRvbToxMHB4O30KICAuYmxrLXc5d3NhIC5oZWFkZXIyLWxlZnR7b3JkZXI6MTthbGlnbi1zZWxmOmZsZXgtZW5kO30KICAuYmxrLXc5d3NhIC5oZWFkZXIyLWxvZ29zLXdyYXB7b3JkZXI6MjthbGlnbi1zZWxmOmNlbnRlcjttYXgtaW5saW5lLXNpemU6bm9uZTtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1lbmQ7Z2FwOjA7fQogIC5ibGstdzl3c2EgLmhlYWRlcjItbG9nb3N7aW5saW5lLXNpemU6MTI4cHg7YmxvY2stc2l6ZTo0MHB4O30KICAuYmxrLXc5d3NhIC5oZWFkZXIyLXRpdGxle2ZvbnQtc2l6ZToyN3B4O30KICAuYmxrLXc5d3NhIC5oZWFkZXIyLmhlYWRlcjItc3RhY2tlZHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1zdGFydDt9CiAgLmJsay13OXdzYSAuaGVhZGVyMi5oZWFkZXIyLXN0YWNrZWQgLmhlYWRlcjItbGVmdHtvcmRlcjoyO2FsaWduLXNlbGY6ZmxleC1zdGFydDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RyZXRjaDtnYXA6NXB4O30KICAuYmxrLXc5d3NhIC5oZWFkZXIyLmhlYWRlcjItc3RhY2tlZCAuaGVhZGVyMi1sb2dvcy13cmFwe29yZGVyOjE7bWF4LWlubGluZS1zaXplOjEwMCU7YWxpZ24tc2VsZjpmbGV4LWVuZDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1lbmQ7Z2FwOjA7fQogIC8qIFJlc2d1YXJkbyBpbnRlcm1lZGlvICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgICAgaG9qYSBkZSBlc3RpbG9zIHByaW5jaXBhbCBkZSBsYSBoZXJyYW1pZW50YTogc29sbyBlbCB0aXR1bGFyIGJhamEgYSBzdQogICAgIHByb3BpYSBmaWxhIGEgYW5jaG8gY29tcGxldG8gY3VhbmRvIGxhcyBldGlxdWV0YXMgU80gY2FiZW4ganVudG8gYWwKICAgICBsb2dvIHBlcm8gZWwgdGl0dWxhciBuby4gaGVhZGVyMi1sZWZ0IHBhc2EgZGUgZmlsYSBhIGNvbHVtbmEKICAgICAoZXRpcXVldGFzIGFycmliYSwgdGl0dWxhciBkZWJham8pIHkgcmVjdXBlcmEgYWxpZ24tc2VsZjphdXRvIHBhcmEKICAgICBjZW50cmFyc2UgdmVydGljYWxtZW50ZSBjb250cmEgZWwgbG9nbyAoYWxpZ24tc2VsZjpjZW50ZXIgZGUgbGEgcmVnbGEKICAgICBiYXNlIGRlIC5oZWFkZXIyLWxvZ29zLXdyYXAsIGFycmliYSksIGlndWFsIHF1ZSBlbiBlbCByZXN0byBkZSBlc3RhZG9zLiAqLwogIC5ibGstdzl3c2EgLmhlYWRlcjIuaGVhZGVyMi10aXRsZS1iZWxvdyAuaGVhZGVyMi1sZWZ0e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO2FsaWduLXNlbGY6YXV0bztnYXA6NXB4O30KfQoKLyogRXN0aWxvICJmb3RvIGdyYW5kZSArIHRpdHVsYXIiOiBmb3RvIDE2OjkgYXJyaWJhLCB0aXR1bGFyIGRlYmFqbyAmIzgyMTI7IGVsZWdpYmxlCiAgIHBvciBub3RpY2lhIGRlc2RlIGVsIGdlc3Rvci4gTm8gc2UgcmVzdHJpbmdlIGNvbiBAY29udGFpbmVyIHBvcnF1ZQogICAuY29sdW1uLWl0ZW0geWEgZXMgYmxvY2sgcG9yIGRlZmVjdG8gKGVsIHRodW1iIHkgZWwgdGV4dG8gc2UgYXBpbGFuIHNvbG9zCiAgIHNpbiBt4XMgYWp1c3RlKSwgYXPtIHF1ZSBlbCBkaXNl8W8gZnVuY2lvbmEgaWd1YWwgZGUgYmllbiBlbiBjdWFscXVpZXIKICAgYW5jaG8sIERlc2sgbyBN83ZpbC4gKi8KLmJsay13OXdzYSAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO30KLmJsay13OXdzYSAuY29sdW1uLWl0ZW0ubGF5b3V0LXBob3RvLXRvcCAudGh1bWJ7aW5saW5lLXNpemU6MTAwJTthc3BlY3QtcmF0aW86MTYvOTttYXJnaW4tYm90dG9tOjEwcHg7fQouYmxrLXc5d3NhIC5jb2x1bW4taXRlbS5sYXlvdXQtcGhvdG8tdG9wIC5sZWZ0LXRpdGxle2ZvbnQtZmFtaWx5OiJhbXBsaXR1ZGUtbWVkaXVtLWNvbmRlbnNlZCIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuMmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtmb250LXdlaWdodDo5MDA7fQovKiBFbiBN83ZpbCBlbCB0aXR1bGFyIGRlIGVzdGUgZGlzZfFvIHNlIG11ZXN0cmEgbeFzIGdyYW5kZSAoMS41cmVtIGVuIHZleiBkZQogICBsb3MgMS4ycmVtIGRlIERlc2spICYjODIxMjsgbWlzbWEgZXNwZWNpZmljaWRhZCAoMyBjbGFzZXMpIHF1ZSBsYSByZWdsYSBkZQogICBhcnJpYmE7IGFsIGlyIERFU1BVyVMgZW4gZWwgQ1NTIGdhbmEgcG9yIG9yZGVuIGRlIGNhc2NhZGEuIFNlIHVzYSBlbAogICBicmVha3BvaW50IGRlIDQ4MHB4IChlbCBkZSB0aXBvZ3JhZu1hIGVuIGVzdGEgYXBwLCBubyBlbCBkZSA4NjBweCBxdWUgYXF17QogICBzb2xvIGdvYmllcm5hIGVsIGFwaWxhZG8gZGUgY29sdW1uYXMpIHBhcmEgcXVlIGNvaW5jaWRhIGNvbiBlbCByZXN0byBkZQogICBjYW1iaW9zIGRlIHRleHRvL3RhbWHxbyBwb3IgdmlzdGEuIE5vIGFmZWN0YSBhbCByZXNndWFyZG8gZGUgMiBjb2x1bW5hcyBlbgogICBt83ZpbCAobW9iLWdyaWQpLCBt4XMgZXNwZWPtZmljbyAoMThweCwgdmVyIG3hcyBhcnJpYmEpLiAqLwpAY29udGFpbmVyIChtYXgtaW5saW5lLXNpemU6NDgwcHgpewogIC5ibGstdzl3c2EgLmNvbHVtbi1pdGVtLmxheW91dC1waG90by10b3AgLmxlZnQtdGl0bGV7Zm9udC1zaXplOjEuNXJlbTt9Cn0KLyogRXN0aWxvICJCbG9xdWUgbWVkaWEiICYjODIxMjsgdmVyIG1pc21vIGJsb3F1ZSwgY29tZW50YWRvIGVuIGRldGFsbGUsIGVuIGxhCiAgIGhvamEgZGUgZXN0aWxvcyBwcmluY2lwYWwgZGUgbGEgaGVycmFtaWVudGEuICovCi5ibGstdzl3c2EgLm1lZGlhLWJsb2NrLW1lZGlhe2Rpc3BsYXk6YmxvY2s7aW5saW5lLXNpemU6MTAwJTtibG9jay1zaXplOmF1dG87fQouYmxrLXc5d3NhIC5tZWRpYS1ibG9jay13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7fQouYmxrLXc5d3NhIC5tZWRpYS1ibG9jay1pZnJhbWUtd3JhcHtwb3NpdGlvbjpyZWxhdGl2ZTtpbmxpbmUtc2l6ZToxMDAlO2FzcGVjdC1yYXRpbzoxNi85O2JhY2tncm91bmQ6IzAwMDtvdmVyZmxvdzpoaWRkZW47fQouYmxrLXc5d3NhIC5tZWRpYS1ibG9jay1pZnJhbWUtd3JhcCBpZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtpbmxpbmUtc2l6ZToxMDAlO2Jsb2NrLXNpemU6MTAwJTtib3JkZXI6MDtkaXNwbGF5OmJsb2NrO30KLmJsay13OXdzYSAuY29sdW1uLWl0ZW0ubGF5b3V0LW1lZGlhLWJsb2Nre2JvcmRlcjpub25lO3BhZGRpbmc6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2Jsb2NrLXNpemU6YXV0bztmbGV4OjAgMCBhdXRvO30KLmJsay13OXdzYSAuY29sdW1uLWl0ZW06bm90KC5sYXlvdXQtbWVkaWEtYmxvY2spe2ZsZXg6MSAxIGF1dG87fQo8L3N0eWxlPgoKPGRpdiBjbGFzcz0iYmxrLXc5d3NhIj4KICAKICA8bWFpbiBjbGFzcz0icGFnZSI+CiAgICAKICAgIDxhcnRpY2xlIGNsYXNzPSJsZWFkIGlzLWFwcGVhcmFuY2UtcG9zaXRpdmUgbGVhZC1ib2R5LWxlZnQiPgogICAgICA8ZGl2IGNsYXNzPSJsZWFkLW1lZGlhIj4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2NldXRhLWRlc2N1YnJlLWxvLXF1ZS1wYXNhLWN1YW5kby1lbC1lc3RhZG8tZGVqYS1kZS1wcm90ZWdlci1hLWxvcy1zdXlvcy0yMDI2MDgyOS0wODA4NDMtOWNmOTAxLmpwZyIgYWx0PSJDZXV0YSBkZXNjdWJyZSBsbyBxdWUgcGFzYSBjdWFuZG8gZWwgRXN0YWRvIGRlamEgZGUgcHJvdGVnZXIgYSBsb3Mgc3V5b3MiIGxvYWRpbmc9ImVhZ2VyIiBmZXRjaHByaW9yaXR5PSJoaWdoIiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDxkaXYgY2xhc3M9ImxlYWQtb3ZlcmxheSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6cmdiYSgxNCwxNywyNiwwLjAwKTsiPjwvZGl2PgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ibGVhZC1ib2R5Ij4KICAgICAgICA8c3BhbiBjbGFzcz0ibGVhZC1jYXQiIHN0eWxlPSJiYWNrZ3JvdW5kOiNGQUIxMjE7Y29sb3I6I2ZmZiI+T1BJTknTTjwvc3Bhbj4KICAgICAgICAKICAgICAgICA8aDIgY2xhc3M9ImxlYWQtdGl0bGUiPjxzcGFuIGNsYXNzPSJsZWFkLXRpdGxlLWRlc2siPkNldXRhIGRlc2N1YnJlIGxvIHF1ZSBwYXNhIGN1YW5kbyBlbCBFc3RhZG8gZGVqYSBkZSBwcm90ZWdlciBhIGxvcyBzdXlvczwvc3Bhbj48c3BhbiBjbGFzcz0ibGVhZC10aXRsZS1tb2JpbGUiPkNldXRhIGRlc2N1YnJlIGxvIHF1ZSBwYXNhIGN1YW5kbyBlbCBFc3RhZG8gZGVqYSBkZSBwcm90ZWdlciBhIGxvcyBzdXlvczwvc3Bhbj48L2gyPgogICAgICAgIAogICAgICAgIDxzcGFuIGNsYXNzPSJhdXRob3ItbGFiZWwiPkNhcmxvcyBFc3RlYmFuPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGEgY2xhc3M9ImxlYWQtbGluayIgaHJlZj0iaHR0cHM6Ly9va2RpYXJpby5jb20vZXNwYW5hL2NldXRhLWRlc2N1YnJlLWxvLXF1ZS1wYXNhLWN1YW5kby1lc3RhZG8tZGVqYS1wcm90ZWdlci1zdXlvcy0yMDE5MDY0NiIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIHRpdGxlPSJDZXV0YSBkZXNjdWJyZSBsbyBxdWUgcGFzYSBjdWFuZG8gZWwgRXN0YWRvIGRlamEgZGUgcHJvdGVnZXIgYSBsb3Mgc3V5b3MiIGFyaWEtbGFiZWw9IkNldXRhIGRlc2N1YnJlIGxvIHF1ZSBwYXNhIGN1YW5kbyBlbCBFc3RhZG8gZGVqYSBkZSBwcm90ZWdlciBhIGxvcyBzdXlvcyI+PC9hPgogICAgPC9hcnRpY2xlPgogIDwvbWFpbj4KPC9kaXY+
    • CiAgICA8c3R5bGU+CiAgICBAaW1wb3J0IHVybCgnaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MnKTsKCiAgICAvKiBUaXR1bGFyIGZpbmFsIGNhcnJ1c2VsIChIVE1MIGV4cG9ydGFkbykgKi8KICAgIC5jdi14MzFucSAuYmctc2VjdGlvbi10aXRsZSB7CiAgICAgIGRpc3BsYXk6ZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246Y29sdW1uOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOwogICAgICBhbGlnbi1pdGVtczpjZW50ZXI7CiAgICAgIG1hcmdpbi1ib3R0b206NTBweDsKICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgfQogICAgLmN2LXgzMW5xIC5mbmQtbGluZWEgewogICAgICB3aWR0aDoxMDAlOwogICAgICBoZWlnaHQ6NXB4OwogICAgICBkaXNwbGF5OmZsZXg7CiAgICAgIHBvc2l0aW9uOnJlbGF0aXZlOwogICAgICB6LWluZGV4OjE7CiAgICAgIG1hcmdpbi10b3A6LTI1cHg7CiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMzMzOwogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMzMzsKICAgIH0KICAgIC5jdi14MzFucSAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjsKICAgICAgZm9udC13ZWlnaHQ6OTAwOwogICAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7CiAgICAgIHRleHQtYWxpZ246Y2VudGVyOwogICAgICBtYXJnaW46MDsKICAgICAgbGluZS1oZWlnaHQ6MS4yOwogICAgICBsZXR0ZXItc3BhY2luZzotMXB4OwogICAgICBwb3NpdGlvbjpyZWxhdGl2ZTsKICAgICAgei1pbmRleDoyOwogICAgICBiYWNrZ3JvdW5kOiNmZmY7CiAgICAgIHBhZGRpbmc6NHB4IDEzcHggNHB4IDEzcHg7CiAgICAgIGJvcmRlcjoxcHggc29saWQgIzMzMzsKICAgICAgZm9udC1zaXplOjQycHg7CiAgICAgIHRyYW5zZm9ybTpyb3RhdGVYKDVkZWcpIHJvdGF0ZVkoLTI1ZGVnKSBza2V3WCgwZGVnKTsKICAgIH0KCiAgICAuY3YteDMxbnEgLmNhcm91c2VsewogICAgICAtLWdhcDoxNnB4OwogICAgICBkaXNwbGF5OmZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsKICAgICAgZ2FwOnZhcigtLWdhcCk7CiAgICAgIG92ZXJmbG93OmhpZGRlbjsKICAgICAgcGFkZGluZy1ib3R0b206NnB4OwogICAgfQogICAgLnJvdyBzZWN0aW9ueyB3aWR0aDotd2Via2l0LWZpbGwtYXZhaWxhYmxlOyB9CiAgICAuY3YteDMxbnEgLnNlY3Rpb257IHdpZHRoOi13ZWJraXQtZmlsbC1hdmFpbGFibGU7IH0KICAgIC5jdi14MzFucSAudHJhY2t7CiAgICAgIGRpc3BsYXk6ZmxleDsKICAgICAgZ2FwOnZhcigtLWdhcCk7CiAgICAgIG92ZXJmbG93LXg6aGlkZGVuOwogICAgICBzY3JvbGwtc25hcC10eXBlOnggbWFuZGF0b3J5OwogICAgICBzY3JvbGwtYmVoYXZpb3I6c21vb3RoOwogICAgfQogICAgLmN2LXgzMW5xIC5jYXJkewogICAgICBwb3NpdGlvbjpyZWxhdGl2ZTsKICAgICAgZmxleDowIDAgYXV0bzsKICAgICAgc2Nyb2xsLXNuYXAtYWxpZ246c3RhcnQ7CiAgICAgIHdpZHRoOmNhbGMoKDEwMCUgLSAzKnZhcigtLWdhcCkpLzQpOwogICAgICBhc3BlY3QtcmF0aW86OS8xNjsKICAgICAgYm9yZGVyLXJhZGl1czoxMHB4OwogICAgICBvdmVyZmxvdzpoaWRkZW47CiAgICAgIGJhY2tncm91bmQ6IzExMTsKICAgICAgaXNvbGF0aW9uOmlzb2xhdGU7CiAgICB9CiAgICAuY3YteDMxbnEgLmNhcmQgaW1newogICAgICBwb3NpdGlvbjphYnNvbHV0ZTsKICAgICAgaW5zZXQ6MDsKICAgICAgd2lkdGg6MTAwJTsKICAgICAgaGVpZ2h0OjEwMCU7CiAgICAgIG9iamVjdC1maXQ6Y292ZXI7CiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMzVzIGVhc2UsIG9wYWNpdHkgLjI1cyBlYXNlOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDEpOwogICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OwogICAgICBzY2FsZTogMS4wMjsKICAgIH0KICAgIC5jdi14MzFucSAuY2FyZDpob3ZlciBpbWcsCiAgICAuY3YteDMxbnEgLmNhcmQ6Zm9jdXMtdmlzaWJsZSBpbWd7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNik7CiAgICB9CgogICAgLmN2LXgzMW5xIC5jYXJkIHZpZGVvLnRlYXNlcnsKICAgICAgcG9zaXRpb246YWJzb2x1dGU7CiAgICAgIGluc2V0OjA7CiAgICAgIHdpZHRoOjEwMCU7CiAgICAgIGhlaWdodDoxMDAlOwogICAgICBvYmplY3QtZml0OmNvdmVyOwogICAgICBvcGFjaXR5OjA7CiAgICAgIHRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGVhc2U7CiAgICAgIHBvaW50ZXItZXZlbnRzOm5vbmU7CiAgICAgIHNjYWxlOiAxLjAyOwogICAgfQogICAgLmN2LXgzMW5xIC5jYXJkLmhhcy10ZWFzZXI6aG92ZXIgaW1nLAogICAgLmN2LXgzMW5xIC5jYXJkLmhhcy10ZWFzZXI6Zm9jdXMtdmlzaWJsZSBpbWd7CiAgICAgIG9wYWNpdHk6MDsKICAgIH0KICAgIC5jdi14MzFucSAuY2FyZC5oYXMtdGVhc2VyOmhvdmVyIHZpZGVvLnRlYXNlciwKICAgIC5jdi14MzFucSAuY2FyZC5oYXMtdGVhc2VyOmZvY3VzLXZpc2libGUgdmlkZW8udGVhc2VyewogICAgICBvcGFjaXR5OjE7CiAgICB9CgogICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpewogICAgICAuY3YteDMxbnEgLmNhcmQgaW1neyB0cmFuc2l0aW9uOiBub25lOyB9CiAgICAgIC5jdi14MzFucSAuY2FyZCB2aWRlby50ZWFzZXJ7IHRyYW5zaXRpb246bm9uZTsgfQogICAgfQoKICAgIC5jdi14MzFucSAuc2hhZGV7CiAgICAgIHBvc2l0aW9uOmFic29sdXRlOwogICAgICBpbnNldDphdXRvIDAgMCAwOwogICAgICBoZWlnaHQ6NzAlOwogICAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcscmdiYSgwLDAsMCwwKSAwJSwgcmdiYSgwLDAsMCwuODUpIDEwMCUpOwogICAgfQogICAgLmN2LXgzMW5xIC50aXRsZXsKICAgICAgcG9zaXRpb246YWJzb2x1dGU7CiAgICAgIGxlZnQ6MTJweDsKICAgICAgcmlnaHQ6MTJweDsKICAgICAgYm90dG9tOjEwcHg7CiAgICAgIG1hcmdpbjowOwogICAgICBjb2xvcjojZmZmOwogICAgICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7CiAgICAgIGZvbnQtd2VpZ2h0OjkwMDsKICAgICAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOwogICAgICBkaXNwbGF5Oi13ZWJraXQtYm94OwogICAgICAtd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7CiAgICAgIG92ZXJmbG93OmhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzplbGxpcHNpczsKICAgIH0KICAgIC5jdi14MzFucSAudGl0bGUudGl0bGUtbGFyZ2V7Zm9udC1zaXplOjI3cHg7bGluZS1oZWlnaHQ6MWVtOy13ZWJraXQtbGluZS1jbGFtcDo1O2xpbmUtY2xhbXA6NTt9CiAgICAuY3YteDMxbnEgLnRpdGxlLnRpdGxlLXNtYWxse2ZvbnQtc2l6ZToyMXB4O2xpbmUtaGVpZ2h0OjFlbTstd2Via2l0LWxpbmUtY2xhbXA6NztsaW5lLWNsYW1wOjc7fQogICAgLmN2LXgzMW5xIC50aXRsZSAuYWNjZW50e2NvbG9yOnZhcigtLWFjY2VudCwgIzAwZDRmZil9CgogICAgLmN2LXgzMW5xIC5wbGF5LWJ0bntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7d2lkdGg6MzBweDtoZWlnaHQ6MzBweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjQyKTtib3JkZXItcmFkaXVzOjRweDt6LWluZGV4OjI7YW5pbWF0aW9uOmN2LXgzMW5xUGxheUJsaW5rIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO30KICAgIC5jdi14MzFucSAucGxheS1idG46OmJlZm9yZXtjb250ZW50OiIiO3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyLWxlZnQ6MTBweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NnB4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbi1sZWZ0OjNweDt9CiAgICBAa2V5ZnJhbWVzIGN2LXgzMW5xUGxheUJsaW5rezAlLDEwMCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTt9NTAle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE2NSwyNTUsLjkpO319CgogICAgLmN2LXgzMW5xIC5hcntwb3NpdGlvbjpyZWxhdGl2ZX0KICAgIC5jdi14MzFucSAuYXJyb3d7CiAgICAgIHBvc2l0aW9uOmFic29sdXRlOwogICAgICB0b3A6NTAlOwogICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsKICAgICAgd2lkdGg6NDRweDsKICAgICAgaGVpZ2h0OjQ0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6NTAlOwogICAgICBiYWNrZ3JvdW5kOnJnYigyNTUgMjU1IDI1NSAvIDIwJSk7CiAgICAgIGJveC1zaGFkb3c6MCA2cHggMTZweCByZ2IoMCAwIDAgLyAyMCUpOwogICAgICBib3JkZXI6MXB4IHNvbGlkICNmZmY7CiAgICAgIGRpc3BsYXk6ZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246Y29sdW1uOwogICAgICBhbGlnbi1pdGVtczpjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDpjZW50ZXI7CiAgICAgIGN1cnNvcjpwb2ludGVyOwogICAgICB6LWluZGV4OjI7CiAgICAgIHRyYW5zaXRpb246LjNzOwogICAgfQogICAgLmN2LXgzMW5xIC5hcnJvdzpob3ZlcnsKICAgICAgYmFja2dyb3VuZDpyZ2IoMCAwIDAgLyAyMCUpOwogICAgICBib3JkZXI6MXB4IHNvbGlkICNmZmY7CiAgICB9CiAgICAuY3YteDMxbnEgLmFycm93OmZvY3VzewogICAgICBiYWNrZ3JvdW5kOnJnYigyNTUgMjU1IDI1NSAvIDIwJSk7CiAgICB9CiAgICAuY3YteDMxbnEgLmFycm93IHN2Z3t3aWR0aDoyMHB4O2hlaWdodDoyMHB4fQogICAgLmN2LXgzMW5xIC5hcnJvdy5sZWZ0e2xlZnQ6MTBweH0KICAgIC5jdi14MzFucSAuYXJyb3cucmlnaHR7cmlnaHQ6MTBweH0KCiAgICBAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgICAgIC5jdi14MzFucSAuYmctc2VjdGlvbi10aXRsZXsKICAgICAgICBtYXJnaW4tYm90dG9tOjMycHg7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICB9CiAgICAgIC5jdi14MzFucSAuZm5kLWxpbmVhewogICAgICAgIG1hcmdpbi10b3A6LTE4cHg7CiAgICAgICAgaGVpZ2h0OiAzcHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMzMzM7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzM7CiAgICAgIH0KICAgICAgLmN2LXgzMW5xIC5zZWN0aW9uLXRpdGxlewogICAgICAgIGZvbnQtc2l6ZToyN3B4OwogICAgICAgIHBhZGRpbmc6MnB4IDhweCAycHggOHB4OwogICAgICAgIHRyYW5zZm9ybTpyb3RhdGVYKDVkZWcpIHJvdGF0ZVkoLTI1ZGVnKSBza2V3WCgwZGVnKTsKICAgICAgfQogICAgICAuY3YteDMxbnEgLmNhcmR7CiAgICAgICAgd2lkdGg6Y2FsYygoMTAwJSAtIDEqdmFyKC0tZ2FwKSkvMik7CiAgICAgIH0KICAgICAgLmN2LXgzMW5xIC50aXRsZS50aXRsZS1sYXJnZXsKICAgICAgICBmb250LXNpemU6MjRweDsKICAgICAgfQogICAgICAuY3YteDMxbnEgLnRpdGxlLnRpdGxlLXNtYWxsewogICAgICAgIGZvbnQtc2l6ZToxOHB4OwogICAgICB9CiAgICAgIC5jdi14MzFucSAuYXJyb3d7CiAgICAgICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7IAogICAgICB9CiAgICAgIC5jdi14MzFucSAudHJhY2t7CiAgICAgICAgb3ZlcmZsb3cteDphdXRvOwogICAgICB9CiAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImN2LXgzMW5xIj4KICAgICAgPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGFyaWEtbGFiZWw9IkNhcnJ1c2VsIGRlIHbtZGVvcyI+CiAgICAgICAgPGRpdiBjbGFzcz0iYmctc2VjdGlvbi10aXRsZSI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICBDZXV0YQogICAgICAgICAgPC9oMj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJmbmQtbGluZWEiPjwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhciIgcm9sZT0icmVnaW9uIiBhcmlhLWxhYmVsPSJMaXN0YWRvIGRlIHbtZGVvcyBkZXN0YWNhZG9zIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IGxlZnQiIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iQW50ZXJpb3IiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSA2bC02IDYgNiA2IiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhcnJvdyByaWdodCIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJTaWd1aWVudGUiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik05IDE4bDYtNi02LTYiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8L2J1dHRvbj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJvdXNlbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWNrIiByb2xlPSJsaXN0Ij4KICAKICAgICAgICA8YSBjbGFzcz0iY2FyZCIKICAgICAgICAgICBocmVmPSJodHRwczovL3lvdXR1YmUuY29tL3Nob3J0cy9aSUNyU1JZVGJ6RSIKICAgICAgICAgICB0YXJnZXQ9Il90b3AiCiAgICAgICAgICAgdGl0bGU9IlZlciB27WRlbzogT2NobyBmdXJnb25lcyBkZSBsYSBwb2xpY+1hIGN1c3RvZGlhbiBsb3MgY2FtaW9uZXMgZGUgbGEgQ3J1eiBSb2phIgogICAgICAgICAgIGFyaWEtbGFiZWw9IlZlciB27WRlbzogT2NobyBmdXJnb25lcyBkZSBsYSBwb2xpY+1hIGN1c3RvZGlhbiBsb3MgY2FtaW9uZXMgZGUgbGEgQ3J1eiBSb2phIgogICAgICAgICAgIHN0eWxlPSItLWFjY2VudDojMDBBN0ZGIj4KICAgICAgICAgIDxpbWcgc3JjPSJodHRwOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9vY2hvLWZ1cmdvbmVzLWRlLWxhLXBvbGljaWEtY3VzdG9kaWFuLWxvcy1jYW1pb25lcy1kZS1sYS1jcnV6LXJvamEtbWluaWF0dXJhLTIwMjYwODI5LTE4MjQxNS1kNWJjOGMuanBnIiBhbHQ9IlbtZGVvOiBPY2hvIGZ1cmdvbmVzIGRlIGxhIHBvbGlj7WEgY3VzdG9kaWFuIGxvcyBjYW1pb25lcyBkZSBsYSBDcnV6IFJvamEiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXktYnRuIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkZSIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSB0aXRsZS1sYXJnZSI+T2NobyBmdXJnb25lcyBkZSBsYSBwb2xpY+1hPHNwYW4gY2xhc3M9ImFjY2VudCI+IGN1c3RvZGlhbiBsb3MgY2FtaW9uZXMgZGUgbGEgQ3J1eiBSb2phPC9zcGFuPjwvaDI+CiAgICAgICAgPC9hPgoKICAgICAgICA8YSBjbGFzcz0iY2FyZCIKICAgICAgICAgICBocmVmPSJodHRwczovL3lvdXR1YmUuY29tL3Nob3J0cy9wMGpmVGtuejFnTSIKICAgICAgICAgICB0YXJnZXQ9Il90b3AiCiAgICAgICAgICAgdGl0bGU9IlZlciB27WRlbzogSW52YXNvcmVzIGRlIENldXRhIG9yZ2FuaXphbiB1biB6b2NvIGNvbiBsYSBjb21pZGEgZG9uYWRhIHBvciBsYXMgT05HcyIKICAgICAgICAgICBhcmlhLWxhYmVsPSJWZXIgdu1kZW86IEludmFzb3JlcyBkZSBDZXV0YSBvcmdhbml6YW4gdW4gem9jbyBjb24gbGEgY29taWRhIGRvbmFkYSBwb3IgbGFzIE9OR3MiCiAgICAgICAgICAgc3R5bGU9Ii0tYWNjZW50OiMwMEE3RkYiPgogICAgICAgICAgPGltZyBzcmM9Imh0dHA6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2ludmFzb3Jlcy1kZS1jZXV0YS1vcmdhbml6YW4tdW4tem9jby1jb24tbGEtY29taWRhLWRvbmFkYS1wb3ItbGFzLW9uZ3MtbWluaWF0dXJhLTIwMjYwODI5LTE4MjU1MC00ODMyOTUuanBnIiBhbHQ9IlbtZGVvOiBJbnZhc29yZXMgZGUgQ2V1dGEgb3JnYW5pemFuIHVuIHpvY28gY29uIGxhIGNvbWlkYSBkb25hZGEgcG9yIGxhcyBPTkdzIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LWJ0biIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZGUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj4KICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUgdGl0bGUtbGFyZ2UiPkludmFzb3JlcyBkZSBDZXV0YSBvcmdhbml6YW4gdW48c3BhbiBjbGFzcz0iYWNjZW50Ij4gem9jbyBjb24gbGEgY29taWRhIGRvbmFkYTwvc3Bhbj4gcG9yIGxhcyBPTkdzPC9oMj4KICAgICAgICA8L2E+CgogICAgICAgIDxhIGNsYXNzPSJjYXJkIgogICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy9mQkNXLUdCbHEyOCIKICAgICAgICAgICB0YXJnZXQ9Il90b3AiCiAgICAgICAgICAgdGl0bGU9IlZlciB27WRlbzogbWFycm9xde1lcyBhdGFjYW4gYSBsb3MgY2V1dO1lcyBjb24gYm90ZWxsYXMgZGUgYWd1YXJy4XMiCiAgICAgICAgICAgYXJpYS1sYWJlbD0iVmVyIHbtZGVvOiBtYXJyb3F17WVzIGF0YWNhbiBhIGxvcyBjZXV07WVzIGNvbiBib3RlbGxhcyBkZSBhZ3VhcnLhcyIKICAgICAgICAgICBzdHlsZT0iLS1hY2NlbnQ6IzAwQTdGRiI+CiAgICAgICAgICA8aW1nIHNyYz0iaHR0cDovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEveW91dHViZS1taW5pYXR1cmEtMjAyNjA4MjktMTEyMDMxLTllNmU1Yy5qcGciIGFsdD0iVu1kZW86IG1hcnJvcXXtZXMgYXRhY2FuIGEgbG9zIGNldXTtZXMgY29uIGJvdGVsbGFzIGRlIGFndWFycuFzIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LWJ0biIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZGUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj4KICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUgdGl0bGUtbGFyZ2UiPm1hcnJvcXXtZXMgYXRhY2FuIGEgbG9zIGNldXTtZXMgY29uIDxzcGFuIGNsYXNzPSJhY2NlbnQiPmJvdGVsbGFzIGRlIGFndWFycuFzJm5ic3A7PC9zcGFuPjwvaDI+CiAgICAgICAgPC9hPgoKICAgICAgICA8YSBjbGFzcz0iY2FyZCIKICAgICAgICAgICBocmVmPSJodHRwczovL3lvdXR1YmUuY29tL3Nob3J0cy9HSlBnc3RKR2tmNCIKICAgICAgICAgICB0YXJnZXQ9Il90b3AiCiAgICAgICAgICAgdGl0bGU9IlZlciB27WRlbzogVW5hIGFuY2lhbmEgbGxvcmEgYWwgdmVyIG1hbmlmZXN0YW50ZXOgIGZyZW50ZSBhIHN1IGNhc2EgZW4gQ2V1dGEiCiAgICAgICAgICAgYXJpYS1sYWJlbD0iVmVyIHbtZGVvOiBVbmEgYW5jaWFuYSBsbG9yYSBhbCB2ZXIgbWFuaWZlc3RhbnRlc6AgZnJlbnRlIGEgc3UgY2FzYSBlbiBDZXV0YSIKICAgICAgICAgICBzdHlsZT0iLS1hY2NlbnQ6IzAwQTdGRiI+CiAgICAgICAgICA8aW1nIHNyYz0iaHR0cDovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEvdW5hLWFuY2lhbmEtbGxvcmEteS1zZS1zYW50aWd1YS1hbnRlLWxhLW11bHRpdHVkLWRlLW1hbmlmZXN0YW50ZXMtcXVlLWFjdWRlbi1hLXZlcmxhLWEtc3UtdmVudGFuYS1taW5pYXR1cmEtMjAyNjA4MjgtMjEyNzQxLTlhNjcxNy5qcGciIGFsdD0iVu1kZW86IFVuYSBhbmNpYW5hIGxsb3JhIGFsIHZlciBtYW5pZmVzdGFudGVzoCBmcmVudGUgYSBzdSBjYXNhIGVuIENldXRhIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LWJ0biIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZGUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj4KICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUgdGl0bGUtbGFyZ2UiPjxkaXY+VW5hIDxzcGFuIGNsYXNzPSJhY2NlbnQiPmFuY2lhbmEgbGxvcmEgPC9zcGFuPmFsIHZlciBtYW5pZmVzdGFudGVzJm5ic3A7IGZyZW50ZSBhIHN1IGNhc2EgZW4gQ2V1dGE8L2Rpdj48L2gyPgogICAgICAgIDwvYT4KCiAgICAgICAgPGEgY2xhc3M9ImNhcmQiCiAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly95b3V0dWJlLmNvbS9zaG9ydHMvRW8tUmZ1dFpVU3ciCiAgICAgICAgICAgdGFyZ2V0PSJfdG9wIgogICAgICAgICAgIHRpdGxlPSJWZXIgdu1kZW86IExvcyBpbnZhc29yZXMgdnVlbHZlbiBhIGxhIHBsYXlhIHRyYXMgY29tcHJhciBlbiBlbCBzdXBlcm1lcmNhZG8iCiAgICAgICAgICAgYXJpYS1sYWJlbD0iVmVyIHbtZGVvOiBMb3MgaW52YXNvcmVzIHZ1ZWx2ZW4gYSBsYSBwbGF5YSB0cmFzIGNvbXByYXIgZW4gZWwgc3VwZXJtZXJjYWRvIgogICAgICAgICAgIHN0eWxlPSItLWFjY2VudDojMDBBN0ZGIj4KICAgICAgICAgIDxpbWcgc3JjPSJodHRwOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9sb3MtaW52YXNvcmVzLW1hcnJvcXVpZXMtZGUtY2V1dGEtdnVlbHZlbi1hLWxhLXBsYXlhLWJlbml0ZXotdHJhcy1oYWNlci1sYS1jb21wcmEtZW4tZWwtc3VwZXJtZXJjYWRvLW1pbmlhdHVyYS0yMDI2MDgyOC0yMTI4MzktNzIxMTA2LmpwZyIgYWx0PSJW7WRlbzogTG9zIGludmFzb3JlcyB2dWVsdmVuIGEgbGEgcGxheWEgdHJhcyBjb21wcmFyIGVuIGVsIHN1cGVybWVyY2FkbyIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICAgIAogICAgICAgICAgPGRpdiBjbGFzcz0icGxheS1idG4iIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+CiAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIHRpdGxlLWxhcmdlIj48ZGl2PkxvcyBpbnZhc29yZXMgdnVlbHZlbiBhIGxhIHBsYXlhIHRyYXMgPHNwYW4gY2xhc3M9ImFjY2VudCI+Y29tcHJhciBlbiBlbCBzdXBlcm1lcmNhZG88L3NwYW4+PC9kaXY+PC9oMj4KICAgICAgICA8L2E+CgogICAgICAgIDxhIGNsYXNzPSJjYXJkIgogICAgICAgICAgIGhyZWY9Imh0dHBzOi8veW91dHViZS5jb20vc2hvcnRzL21sS0FaSnVSV2t3IgogICAgICAgICAgIHRhcmdldD0iX3RvcCIKICAgICAgICAgICB0aXRsZT0iVmVyIHbtZGVvOiBMb3MgaWxlZ2FsZXMgc2UgYnVybGFuIGRlIGxvcyBjZXV07WVzIGVuIFBsYXlhIEJlbml0ZXoiCiAgICAgICAgICAgYXJpYS1sYWJlbD0iVmVyIHbtZGVvOiBMb3MgaWxlZ2FsZXMgc2UgYnVybGFuIGRlIGxvcyBjZXV07WVzIGVuIFBsYXlhIEJlbml0ZXoiCiAgICAgICAgICAgc3R5bGU9Ii0tYWNjZW50OiMwMEE3RkYiPgogICAgICAgICAgPGltZyBzcmM9Imh0dHA6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2VsLWJ1cmxlc2NvLXJlY2liaW1pZW50by1kZS1sb3MtaW52YXNvcmVzLW1hcnJvcXVpZXMtYS1sb3MtY2V1dGllcy1lbi1wbGF5YS1iZW5pdGV6LW1pbmlhdHVyYS0yMDI2MDgyOC0yMTI5MTItMmE1OGQ1LmpwZyIgYWx0PSJW7WRlbzogTG9zIGlsZWdhbGVzIHNlIGJ1cmxhbiBkZSBsb3MgY2V1dO1lcyBlbiBQbGF5YSBCZW5pdGV6IiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LWJ0biIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZGUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj4KICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUgdGl0bGUtbGFyZ2UiPkxvcyBpbGVnYWxlcyA8c3BhbiBjbGFzcz0iYWNjZW50Ij5zZSBidXJsYW4gZGUgbG9zIGNldXTtZXMgPC9zcGFuPmVuIFBsYXlhIEJlbml0ZXo8L2gyPgogICAgICAgIDwvYT4KCiAgICAgICAgPGEgY2xhc3M9ImNhcmQiCiAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly95b3V0dWJlLmNvbS9zaG9ydHMvUF9NYWNxUkR0UUkiCiAgICAgICAgICAgdGFyZ2V0PSJfdG9wIgogICAgICAgICAgIHRpdGxlPSJWZXIgdu1kZW86IGNldXTtZXOgY2xhbWFuIGNvbnRyYSBlbCBHb2JpZXJubzogJnF1b3Q7Tm8gaGFuIGhlY2hvIG5hZGEmcXVvdDsiCiAgICAgICAgICAgYXJpYS1sYWJlbD0iVmVyIHbtZGVvOiBjZXV07WVzoGNsYW1hbiBjb250cmEgZWwgR29iaWVybm86ICZxdW90O05vIGhhbiBoZWNobyBuYWRhJnF1b3Q7IgogICAgICAgICAgIHN0eWxlPSItLWFjY2VudDojMDBBN0ZGIj4KICAgICAgICAgIDxpbWcgc3JjPSJodHRwOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9jZXV0aWVzLWNsYW1hbi1jb250cmEtZWwtZ29iaWVybm8tbm8taGFuLWhlY2hvLWFic29sdXRhbWVudGUtbmFkYS1taW5pYXR1cmEtMjAyNjA4MjgtMjEzMDEyLWMzYWZlOC5qcGciIGFsdD0iVu1kZW86IGNldXTtZXOgY2xhbWFuIGNvbnRyYSBlbCBHb2JpZXJubzogJnF1b3Q7Tm8gaGFuIGhlY2hvIG5hZGEmcXVvdDsiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXktYnRuIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkZSIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSB0aXRsZS1sYXJnZSI+PGRpdj5jZXV07WVzJm5ic3A7PHNwYW4gY2xhc3M9ImFjY2VudCI+Y2xhbWFuIGNvbnRyYSBlbCBHb2JpZXJubzwvc3Bhbj46ICJObyBoYW4gaGVjaG8gbmFkYSI8L2Rpdj48L2gyPgogICAgICAgIDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9zZWN0aW9uPgogICAgPC9kaXY+CiAgICA8c2NyaXB0PgogICAgKGZ1bmN0aW9uKCl7CiAgICAgIHZhciByb290ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmN2LXgzMW5xJyk7CiAgICAgIGlmICghcm9vdCkgcmV0dXJuOwogICAgICB2YXIgdHJhY2sgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFjaycpOwogICAgICBpZiAoIXRyYWNrKSByZXR1cm47CgogICAgICB2YXIgYXJyb3dzID0gcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuYXJyb3cnKTsKICAgICAgdmFyIEdBUCA9IDE2OwoKICAgICAgZnVuY3Rpb24gZ2V0Q2FyZFdpZHRoKCl7CiAgICAgICAgdmFyIGZpcnN0ID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcuY2FyZCcpOwogICAgICAgIGlmICghZmlyc3QpIHJldHVybiAwOwogICAgICAgIHJldHVybiBmaXJzdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gZ2V0Q2FyZHNQZXJQYWdlKCl7CiAgICAgICAgcmV0dXJuICh3aW5kb3cuaW5uZXJXaWR0aCA8PSA3NjgpID8gMiA6IDQ7CiAgICAgIH0KCiAgICAgIC8vIEh1ZWNvIGEgbGEgZGVyZWNoYSBkZWwgdHJhY2sgPSAxMCUgZGVsIGFuY2hvIGRlIFVOQSB0YXJqZXRhIChubyBkZWwKICAgICAgLy8gY29udGVuZWRvciksIHBhcmEgcXVlIHNlIGludHV5YSB2aXN1YWxtZW50ZSBxdWUgaGF5IG3hcyB27WRlb3MuCiAgICAgIGZ1bmN0aW9uIHVwZGF0ZVBhZEhpbnQoKXsKICAgICAgICB2YXIgY2FyZFcgPSBnZXRDYXJkV2lkdGgoKTsKICAgICAgICBpZiAoIWNhcmRXKSByZXR1cm47CiAgICAgICAgdHJhY2suc3R5bGUucGFkZGluZ1JpZ2h0ID0gTWF0aC5yb3VuZChjYXJkVyAqIDAuMTApICsgJ3B4JzsKICAgICAgfQogICAgICB1cGRhdGVQYWRIaW50KCk7CiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB1cGRhdGVQYWRIaW50KTsKCiAgICAgIGFycm93cy5mb3JFYWNoKGZ1bmN0aW9uKGJ0bil7CiAgICAgICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSl7CiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICB2YXIgZGlyID0gdGhpcy5jbGFzc0xpc3QuY29udGFpbnMoJ2xlZnQnKSA/IC0xIDogMTsKICAgICAgICAgIHZhciBjYXJkVyA9IGdldENhcmRXaWR0aCgpOwogICAgICAgICAgaWYgKCFjYXJkVykgcmV0dXJuOwogICAgICAgICAgdmFyIHN0ZXAgPSAoY2FyZFcgKyBHQVApICogZ2V0Q2FyZHNQZXJQYWdlKCkgKiBkaXI7CiAgICAgICAgICB0cmFjay5zY3JvbGxCeSh7IGxlZnQ6IHN0ZXAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTsKICAgICAgICB9KTsKICAgICAgfSk7CgogICAgICB2YXIgdGVhc2VyQ2FyZHMgPSByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jYXJkLmhhcy10ZWFzZXInKTsKICAgICAgdGVhc2VyQ2FyZHMuZm9yRWFjaChmdW5jdGlvbihjYXJkKXsKICAgICAgICB2YXIgdiA9IGNhcmQucXVlcnlTZWxlY3RvcigndmlkZW8udGVhc2VyJyk7CiAgICAgICAgaWYgKCF2KSByZXR1cm47CgogICAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIGZ1bmN0aW9uKCl7CiAgICAgICAgICB0cnl7CiAgICAgICAgICAgIHYuY3VycmVudFRpbWUgPSAwOwogICAgICAgICAgICB2YXIgcCA9IHYucGxheSgpOwogICAgICAgICAgICBpZiAocCAmJiB0eXBlb2YgcC50aGVuID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICAgICAgcC5jYXRjaChmdW5jdGlvbigpe30pOwogICAgICAgICAgICB9CiAgICAgICAgICB9Y2F0Y2goZSl7fQogICAgICAgIH0pOwoKICAgICAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBmdW5jdGlvbigpewogICAgICAgICAgdHJ5ewogICAgICAgICAgICB2LnBhdXNlKCk7CiAgICAgICAgICAgIHYuY3VycmVudFRpbWUgPSAwOwogICAgICAgICAgfWNhdGNoKGUpe30KICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KSgpOwogICAgPC9zY3JpcHQ+
      CiAgICA8c3R5bGU+CiAgICBAaW1wb3J0IHVybCgnaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MnKTsKCiAgICAvKiBUaXR1bGFyIGZpbmFsIGNhcnJ1c2VsIChIVE1MIGV4cG9ydGFkbykgKi8KICAgIC5jdi14MzFucSAuYmctc2VjdGlvbi10aXRsZSB7CiAgICAgIGRpc3BsYXk6ZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246Y29sdW1uOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOwogICAgICBhbGlnbi1pdGVtczpjZW50ZXI7CiAgICAgIG1hcmdpbi1ib3R0b206NTBweDsKICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgfQogICAgLmN2LXgzMW5xIC5mbmQtbGluZWEgewogICAgICB3aWR0aDoxMDAlOwogICAgICBoZWlnaHQ6NXB4OwogICAgICBkaXNwbGF5OmZsZXg7CiAgICAgIHBvc2l0aW9uOnJlbGF0aXZlOwogICAgICB6LWluZGV4OjE7CiAgICAgIG1hcmdpbi10b3A6LTI1cHg7CiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMzMzOwogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMzMzsKICAgIH0KICAgIC5jdi14MzFucSAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtZmFtaWx5OiJiZWJhcy1uZXVlLXByby1leHBhbmRlZCIsc2Fucy1zZXJpZjsKICAgICAgZm9udC13ZWlnaHQ6OTAwOwogICAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7CiAgICAgIHRleHQtYWxpZ246Y2VudGVyOwogICAgICBtYXJnaW46MDsKICAgICAgbGluZS1oZWlnaHQ6MS4yOwogICAgICBsZXR0ZXItc3BhY2luZzotMXB4OwogICAgICBwb3NpdGlvbjpyZWxhdGl2ZTsKICAgICAgei1pbmRleDoyOwogICAgICBiYWNrZ3JvdW5kOiNmZmY7CiAgICAgIHBhZGRpbmc6NHB4IDEzcHggNHB4IDEzcHg7CiAgICAgIGJvcmRlcjoxcHggc29saWQgIzMzMzsKICAgICAgZm9udC1zaXplOjQycHg7CiAgICAgIHRyYW5zZm9ybTpyb3RhdGVYKDVkZWcpIHJvdGF0ZVkoLTI1ZGVnKSBza2V3WCgwZGVnKTsKICAgIH0KCiAgICAuY3YteDMxbnEgLmNhcm91c2VsewogICAgICAtLWdhcDoxNnB4OwogICAgICBkaXNwbGF5OmZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsKICAgICAgZ2FwOnZhcigtLWdhcCk7CiAgICAgIG92ZXJmbG93OmhpZGRlbjsKICAgICAgcGFkZGluZy1ib3R0b206NnB4OwogICAgfQogICAgLnJvdyBzZWN0aW9ueyB3aWR0aDotd2Via2l0LWZpbGwtYXZhaWxhYmxlOyB9CiAgICAuY3YteDMxbnEgLnNlY3Rpb257IHdpZHRoOi13ZWJraXQtZmlsbC1hdmFpbGFibGU7IH0KICAgIC5jdi14MzFucSAudHJhY2t7CiAgICAgIGRpc3BsYXk6ZmxleDsKICAgICAgZ2FwOnZhcigtLWdhcCk7CiAgICAgIG92ZXJmbG93LXg6aGlkZGVuOwogICAgICBzY3JvbGwtc25hcC10eXBlOnggbWFuZGF0b3J5OwogICAgICBzY3JvbGwtYmVoYXZpb3I6c21vb3RoOwogICAgfQogICAgLmN2LXgzMW5xIC5jYXJkewogICAgICBwb3NpdGlvbjpyZWxhdGl2ZTsKICAgICAgZmxleDowIDAgYXV0bzsKICAgICAgc2Nyb2xsLXNuYXAtYWxpZ246c3RhcnQ7CiAgICAgIHdpZHRoOmNhbGMoKDEwMCUgLSAzKnZhcigtLWdhcCkpLzQpOwogICAgICBhc3BlY3QtcmF0aW86OS8xNjsKICAgICAgYm9yZGVyLXJhZGl1czoxMHB4OwogICAgICBvdmVyZmxvdzpoaWRkZW47CiAgICAgIGJhY2tncm91bmQ6IzExMTsKICAgICAgaXNvbGF0aW9uOmlzb2xhdGU7CiAgICB9CiAgICAuY3YteDMxbnEgLmNhcmQgaW1newogICAgICBwb3NpdGlvbjphYnNvbHV0ZTsKICAgICAgaW5zZXQ6MDsKICAgICAgd2lkdGg6MTAwJTsKICAgICAgaGVpZ2h0OjEwMCU7CiAgICAgIG9iamVjdC1maXQ6Y292ZXI7CiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMzVzIGVhc2UsIG9wYWNpdHkgLjI1cyBlYXNlOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDEpOwogICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OwogICAgICBzY2FsZTogMS4wMjsKICAgIH0KICAgIC5jdi14MzFucSAuY2FyZDpob3ZlciBpbWcsCiAgICAuY3YteDMxbnEgLmNhcmQ6Zm9jdXMtdmlzaWJsZSBpbWd7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNik7CiAgICB9CgogICAgLmN2LXgzMW5xIC5jYXJkIHZpZGVvLnRlYXNlcnsKICAgICAgcG9zaXRpb246YWJzb2x1dGU7CiAgICAgIGluc2V0OjA7CiAgICAgIHdpZHRoOjEwMCU7CiAgICAgIGhlaWdodDoxMDAlOwogICAgICBvYmplY3QtZml0OmNvdmVyOwogICAgICBvcGFjaXR5OjA7CiAgICAgIHRyYW5zaXRpb246b3BhY2l0eSAuMjVzIGVhc2U7CiAgICAgIHBvaW50ZXItZXZlbnRzOm5vbmU7CiAgICAgIHNjYWxlOiAxLjAyOwogICAgfQogICAgLmN2LXgzMW5xIC5jYXJkLmhhcy10ZWFzZXI6aG92ZXIgaW1nLAogICAgLmN2LXgzMW5xIC5jYXJkLmhhcy10ZWFzZXI6Zm9jdXMtdmlzaWJsZSBpbWd7CiAgICAgIG9wYWNpdHk6MDsKICAgIH0KICAgIC5jdi14MzFucSAuY2FyZC5oYXMtdGVhc2VyOmhvdmVyIHZpZGVvLnRlYXNlciwKICAgIC5jdi14MzFucSAuY2FyZC5oYXMtdGVhc2VyOmZvY3VzLXZpc2libGUgdmlkZW8udGVhc2VyewogICAgICBvcGFjaXR5OjE7CiAgICB9CgogICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpewogICAgICAuY3YteDMxbnEgLmNhcmQgaW1neyB0cmFuc2l0aW9uOiBub25lOyB9CiAgICAgIC5jdi14MzFucSAuY2FyZCB2aWRlby50ZWFzZXJ7IHRyYW5zaXRpb246bm9uZTsgfQogICAgfQoKICAgIC5jdi14MzFucSAuc2hhZGV7CiAgICAgIHBvc2l0aW9uOmFic29sdXRlOwogICAgICBpbnNldDphdXRvIDAgMCAwOwogICAgICBoZWlnaHQ6NzAlOwogICAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcscmdiYSgwLDAsMCwwKSAwJSwgcmdiYSgwLDAsMCwuODUpIDEwMCUpOwogICAgfQogICAgLmN2LXgzMW5xIC50aXRsZXsKICAgICAgcG9zaXRpb246YWJzb2x1dGU7CiAgICAgIGxlZnQ6MTJweDsKICAgICAgcmlnaHQ6MTJweDsKICAgICAgYm90dG9tOjEwcHg7CiAgICAgIG1hcmdpbjowOwogICAgICBjb2xvcjojZmZmOwogICAgICBmb250LWZhbWlseToiYmViYXMtbmV1ZS1wcm8tZXhwYW5kZWQiLHNhbnMtc2VyaWY7CiAgICAgIGZvbnQtd2VpZ2h0OjkwMDsKICAgICAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOwogICAgICBkaXNwbGF5Oi13ZWJraXQtYm94OwogICAgICAtd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7CiAgICAgIG92ZXJmbG93OmhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzplbGxpcHNpczsKICAgIH0KICAgIC5jdi14MzFucSAudGl0bGUudGl0bGUtbGFyZ2V7Zm9udC1zaXplOjI3cHg7bGluZS1oZWlnaHQ6MWVtOy13ZWJraXQtbGluZS1jbGFtcDo1O2xpbmUtY2xhbXA6NTt9CiAgICAuY3YteDMxbnEgLnRpdGxlLnRpdGxlLXNtYWxse2ZvbnQtc2l6ZToyMXB4O2xpbmUtaGVpZ2h0OjFlbTstd2Via2l0LWxpbmUtY2xhbXA6NztsaW5lLWNsYW1wOjc7fQogICAgLmN2LXgzMW5xIC50aXRsZSAuYWNjZW50e2NvbG9yOnZhcigtLWFjY2VudCwgIzAwZDRmZil9CgogICAgLmN2LXgzMW5xIC5wbGF5LWJ0bntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTBweDtsZWZ0OjEwcHg7d2lkdGg6MzBweDtoZWlnaHQ6MzBweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjQyKTtib3JkZXItcmFkaXVzOjRweDt6LWluZGV4OjI7YW5pbWF0aW9uOmN2LXgzMW5xUGxheUJsaW5rIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO30KICAgIC5jdi14MzFucSAucGxheS1idG46OmJlZm9yZXtjb250ZW50OiIiO3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyLWxlZnQ6MTBweCBzb2xpZCAjZmZmO2JvcmRlci10b3A6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NnB4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbi1sZWZ0OjNweDt9CiAgICBAa2V5ZnJhbWVzIGN2LXgzMW5xUGxheUJsaW5rezAlLDEwMCV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43KTt9NTAle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE2NSwyNTUsLjkpO319CgogICAgLmN2LXgzMW5xIC5hcntwb3NpdGlvbjpyZWxhdGl2ZX0KICAgIC5jdi14MzFucSAuYXJyb3d7CiAgICAgIHBvc2l0aW9uOmFic29sdXRlOwogICAgICB0b3A6NTAlOwogICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsKICAgICAgd2lkdGg6NDRweDsKICAgICAgaGVpZ2h0OjQ0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6NTAlOwogICAgICBiYWNrZ3JvdW5kOnJnYigyNTUgMjU1IDI1NSAvIDIwJSk7CiAgICAgIGJveC1zaGFkb3c6MCA2cHggMTZweCByZ2IoMCAwIDAgLyAyMCUpOwogICAgICBib3JkZXI6MXB4IHNvbGlkICNmZmY7CiAgICAgIGRpc3BsYXk6ZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246Y29sdW1uOwogICAgICBhbGlnbi1pdGVtczpjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDpjZW50ZXI7CiAgICAgIGN1cnNvcjpwb2ludGVyOwogICAgICB6LWluZGV4OjI7CiAgICAgIHRyYW5zaXRpb246LjNzOwogICAgfQogICAgLmN2LXgzMW5xIC5hcnJvdzpob3ZlcnsKICAgICAgYmFja2dyb3VuZDpyZ2IoMCAwIDAgLyAyMCUpOwogICAgICBib3JkZXI6MXB4IHNvbGlkICNmZmY7CiAgICB9CiAgICAuY3YteDMxbnEgLmFycm93OmZvY3VzewogICAgICBiYWNrZ3JvdW5kOnJnYigyNTUgMjU1IDI1NSAvIDIwJSk7CiAgICB9CiAgICAuY3YteDMxbnEgLmFycm93IHN2Z3t3aWR0aDoyMHB4O2hlaWdodDoyMHB4fQogICAgLmN2LXgzMW5xIC5hcnJvdy5sZWZ0e2xlZnQ6MTBweH0KICAgIC5jdi14MzFucSAuYXJyb3cucmlnaHR7cmlnaHQ6MTBweH0KCiAgICBAbWVkaWEgKG1heC13aWR0aDo3NjhweCl7CiAgICAgIC5jdi14MzFucSAuYmctc2VjdGlvbi10aXRsZXsKICAgICAgICBtYXJnaW4tYm90dG9tOjMycHg7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICB9CiAgICAgIC5jdi14MzFucSAuZm5kLWxpbmVhewogICAgICAgIG1hcmdpbi10b3A6LTE4cHg7CiAgICAgICAgaGVpZ2h0OiAzcHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMzMzM7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzM7CiAgICAgIH0KICAgICAgLmN2LXgzMW5xIC5zZWN0aW9uLXRpdGxlewogICAgICAgIGZvbnQtc2l6ZToyN3B4OwogICAgICAgIHBhZGRpbmc6MnB4IDhweCAycHggOHB4OwogICAgICAgIHRyYW5zZm9ybTpyb3RhdGVYKDVkZWcpIHJvdGF0ZVkoLTI1ZGVnKSBza2V3WCgwZGVnKTsKICAgICAgfQogICAgICAuY3YteDMxbnEgLmNhcmR7CiAgICAgICAgd2lkdGg6Y2FsYygoMTAwJSAtIDEqdmFyKC0tZ2FwKSkvMik7CiAgICAgIH0KICAgICAgLmN2LXgzMW5xIC50aXRsZS50aXRsZS1sYXJnZXsKICAgICAgICBmb250LXNpemU6MjRweDsKICAgICAgfQogICAgICAuY3YteDMxbnEgLnRpdGxlLnRpdGxlLXNtYWxsewogICAgICAgIGZvbnQtc2l6ZToxOHB4OwogICAgICB9CiAgICAgIC5jdi14MzFucSAuYXJyb3d7CiAgICAgICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7IAogICAgICB9CiAgICAgIC5jdi14MzFucSAudHJhY2t7CiAgICAgICAgb3ZlcmZsb3cteDphdXRvOwogICAgICB9CiAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImN2LXgzMW5xIj4KICAgICAgPHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iIGFyaWEtbGFiZWw9IkNhcnJ1c2VsIGRlIHbtZGVvcyI+CiAgICAgICAgPGRpdiBjbGFzcz0iYmctc2VjdGlvbi10aXRsZSI+CiAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgICBDZXV0YQogICAgICAgICAgPC9oMj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJmbmQtbGluZWEiPjwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhciIgcm9sZT0icmVnaW9uIiBhcmlhLWxhYmVsPSJMaXN0YWRvIGRlIHbtZGVvcyBkZXN0YWNhZG9zIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IGxlZnQiIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iQW50ZXJpb3IiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSA2bC02IDYgNiA2IiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhcnJvdyByaWdodCIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJTaWd1aWVudGUiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik05IDE4bDYtNi02LTYiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8L2J1dHRvbj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJvdXNlbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWNrIiByb2xlPSJsaXN0Ij4KICAKICAgICAgICA8YSBjbGFzcz0iY2FyZCIKICAgICAgICAgICBocmVmPSJodHRwczovL3lvdXR1YmUuY29tL3Nob3J0cy9aSUNyU1JZVGJ6RSIKICAgICAgICAgICB0YXJnZXQ9Il90b3AiCiAgICAgICAgICAgdGl0bGU9IlZlciB27WRlbzogT2NobyBmdXJnb25lcyBkZSBsYSBwb2xpY+1hIGN1c3RvZGlhbiBsb3MgY2FtaW9uZXMgZGUgbGEgQ3J1eiBSb2phIgogICAgICAgICAgIGFyaWEtbGFiZWw9IlZlciB27WRlbzogT2NobyBmdXJnb25lcyBkZSBsYSBwb2xpY+1hIGN1c3RvZGlhbiBsb3MgY2FtaW9uZXMgZGUgbGEgQ3J1eiBSb2phIgogICAgICAgICAgIHN0eWxlPSItLWFjY2VudDojMDBBN0ZGIj4KICAgICAgICAgIDxpbWcgc3JjPSJodHRwOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9vY2hvLWZ1cmdvbmVzLWRlLWxhLXBvbGljaWEtY3VzdG9kaWFuLWxvcy1jYW1pb25lcy1kZS1sYS1jcnV6LXJvamEtbWluaWF0dXJhLTIwMjYwODI5LTE4MjQxNS1kNWJjOGMuanBnIiBhbHQ9IlbtZGVvOiBPY2hvIGZ1cmdvbmVzIGRlIGxhIHBvbGlj7WEgY3VzdG9kaWFuIGxvcyBjYW1pb25lcyBkZSBsYSBDcnV6IFJvamEiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXktYnRuIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkZSIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSB0aXRsZS1sYXJnZSI+T2NobyBmdXJnb25lcyBkZSBsYSBwb2xpY+1hPHNwYW4gY2xhc3M9ImFjY2VudCI+IGN1c3RvZGlhbiBsb3MgY2FtaW9uZXMgZGUgbGEgQ3J1eiBSb2phPC9zcGFuPjwvaDI+CiAgICAgICAgPC9hPgoKICAgICAgICA8YSBjbGFzcz0iY2FyZCIKICAgICAgICAgICBocmVmPSJodHRwczovL3lvdXR1YmUuY29tL3Nob3J0cy9wMGpmVGtuejFnTSIKICAgICAgICAgICB0YXJnZXQ9Il90b3AiCiAgICAgICAgICAgdGl0bGU9IlZlciB27WRlbzogSW52YXNvcmVzIGRlIENldXRhIG9yZ2FuaXphbiB1biB6b2NvIGNvbiBsYSBjb21pZGEgZG9uYWRhIHBvciBsYXMgT05HcyIKICAgICAgICAgICBhcmlhLWxhYmVsPSJWZXIgdu1kZW86IEludmFzb3JlcyBkZSBDZXV0YSBvcmdhbml6YW4gdW4gem9jbyBjb24gbGEgY29taWRhIGRvbmFkYSBwb3IgbGFzIE9OR3MiCiAgICAgICAgICAgc3R5bGU9Ii0tYWNjZW50OiMwMEE3RkYiPgogICAgICAgICAgPGltZyBzcmM9Imh0dHA6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2ludmFzb3Jlcy1kZS1jZXV0YS1vcmdhbml6YW4tdW4tem9jby1jb24tbGEtY29taWRhLWRvbmFkYS1wb3ItbGFzLW9uZ3MtbWluaWF0dXJhLTIwMjYwODI5LTE4MjU1MC00ODMyOTUuanBnIiBhbHQ9IlbtZGVvOiBJbnZhc29yZXMgZGUgQ2V1dGEgb3JnYW5pemFuIHVuIHpvY28gY29uIGxhIGNvbWlkYSBkb25hZGEgcG9yIGxhcyBPTkdzIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LWJ0biIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZGUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj4KICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUgdGl0bGUtbGFyZ2UiPkludmFzb3JlcyBkZSBDZXV0YSBvcmdhbml6YW4gdW48c3BhbiBjbGFzcz0iYWNjZW50Ij4gem9jbyBjb24gbGEgY29taWRhIGRvbmFkYTwvc3Bhbj4gcG9yIGxhcyBPTkdzPC9oMj4KICAgICAgICA8L2E+CgogICAgICAgIDxhIGNsYXNzPSJjYXJkIgogICAgICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy9mQkNXLUdCbHEyOCIKICAgICAgICAgICB0YXJnZXQ9Il90b3AiCiAgICAgICAgICAgdGl0bGU9IlZlciB27WRlbzogbWFycm9xde1lcyBhdGFjYW4gYSBsb3MgY2V1dO1lcyBjb24gYm90ZWxsYXMgZGUgYWd1YXJy4XMiCiAgICAgICAgICAgYXJpYS1sYWJlbD0iVmVyIHbtZGVvOiBtYXJyb3F17WVzIGF0YWNhbiBhIGxvcyBjZXV07WVzIGNvbiBib3RlbGxhcyBkZSBhZ3VhcnLhcyIKICAgICAgICAgICBzdHlsZT0iLS1hY2NlbnQ6IzAwQTdGRiI+CiAgICAgICAgICA8aW1nIHNyYz0iaHR0cDovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEveW91dHViZS1taW5pYXR1cmEtMjAyNjA4MjktMTEyMDMxLTllNmU1Yy5qcGciIGFsdD0iVu1kZW86IG1hcnJvcXXtZXMgYXRhY2FuIGEgbG9zIGNldXTtZXMgY29uIGJvdGVsbGFzIGRlIGFndWFycuFzIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LWJ0biIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZGUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj4KICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUgdGl0bGUtbGFyZ2UiPm1hcnJvcXXtZXMgYXRhY2FuIGEgbG9zIGNldXTtZXMgY29uIDxzcGFuIGNsYXNzPSJhY2NlbnQiPmJvdGVsbGFzIGRlIGFndWFycuFzJm5ic3A7PC9zcGFuPjwvaDI+CiAgICAgICAgPC9hPgoKICAgICAgICA8YSBjbGFzcz0iY2FyZCIKICAgICAgICAgICBocmVmPSJodHRwczovL3lvdXR1YmUuY29tL3Nob3J0cy9HSlBnc3RKR2tmNCIKICAgICAgICAgICB0YXJnZXQ9Il90b3AiCiAgICAgICAgICAgdGl0bGU9IlZlciB27WRlbzogVW5hIGFuY2lhbmEgbGxvcmEgYWwgdmVyIG1hbmlmZXN0YW50ZXOgIGZyZW50ZSBhIHN1IGNhc2EgZW4gQ2V1dGEiCiAgICAgICAgICAgYXJpYS1sYWJlbD0iVmVyIHbtZGVvOiBVbmEgYW5jaWFuYSBsbG9yYSBhbCB2ZXIgbWFuaWZlc3RhbnRlc6AgZnJlbnRlIGEgc3UgY2FzYSBlbiBDZXV0YSIKICAgICAgICAgICBzdHlsZT0iLS1hY2NlbnQ6IzAwQTdGRiI+CiAgICAgICAgICA8aW1nIHNyYz0iaHR0cDovL29rZGlhcmlvLmNvbS9lc3BlY2lhbGVzL2FwcHMvbWVkaWEvdW5hLWFuY2lhbmEtbGxvcmEteS1zZS1zYW50aWd1YS1hbnRlLWxhLW11bHRpdHVkLWRlLW1hbmlmZXN0YW50ZXMtcXVlLWFjdWRlbi1hLXZlcmxhLWEtc3UtdmVudGFuYS1taW5pYXR1cmEtMjAyNjA4MjgtMjEyNzQxLTlhNjcxNy5qcGciIGFsdD0iVu1kZW86IFVuYSBhbmNpYW5hIGxsb3JhIGFsIHZlciBtYW5pZmVzdGFudGVzoCBmcmVudGUgYSBzdSBjYXNhIGVuIENldXRhIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LWJ0biIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZGUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj4KICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUgdGl0bGUtbGFyZ2UiPjxkaXY+VW5hIDxzcGFuIGNsYXNzPSJhY2NlbnQiPmFuY2lhbmEgbGxvcmEgPC9zcGFuPmFsIHZlciBtYW5pZmVzdGFudGVzJm5ic3A7IGZyZW50ZSBhIHN1IGNhc2EgZW4gQ2V1dGE8L2Rpdj48L2gyPgogICAgICAgIDwvYT4KCiAgICAgICAgPGEgY2xhc3M9ImNhcmQiCiAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly95b3V0dWJlLmNvbS9zaG9ydHMvRW8tUmZ1dFpVU3ciCiAgICAgICAgICAgdGFyZ2V0PSJfdG9wIgogICAgICAgICAgIHRpdGxlPSJWZXIgdu1kZW86IExvcyBpbnZhc29yZXMgdnVlbHZlbiBhIGxhIHBsYXlhIHRyYXMgY29tcHJhciBlbiBlbCBzdXBlcm1lcmNhZG8iCiAgICAgICAgICAgYXJpYS1sYWJlbD0iVmVyIHbtZGVvOiBMb3MgaW52YXNvcmVzIHZ1ZWx2ZW4gYSBsYSBwbGF5YSB0cmFzIGNvbXByYXIgZW4gZWwgc3VwZXJtZXJjYWRvIgogICAgICAgICAgIHN0eWxlPSItLWFjY2VudDojMDBBN0ZGIj4KICAgICAgICAgIDxpbWcgc3JjPSJodHRwOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9sb3MtaW52YXNvcmVzLW1hcnJvcXVpZXMtZGUtY2V1dGEtdnVlbHZlbi1hLWxhLXBsYXlhLWJlbml0ZXotdHJhcy1oYWNlci1sYS1jb21wcmEtZW4tZWwtc3VwZXJtZXJjYWRvLW1pbmlhdHVyYS0yMDI2MDgyOC0yMTI4MzktNzIxMTA2LmpwZyIgYWx0PSJW7WRlbzogTG9zIGludmFzb3JlcyB2dWVsdmVuIGEgbGEgcGxheWEgdHJhcyBjb21wcmFyIGVuIGVsIHN1cGVybWVyY2FkbyIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICAgIAogICAgICAgICAgPGRpdiBjbGFzcz0icGxheS1idG4iIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+CiAgICAgICAgICA8aDIgY2xhc3M9InRpdGxlIHRpdGxlLWxhcmdlIj48ZGl2PkxvcyBpbnZhc29yZXMgdnVlbHZlbiBhIGxhIHBsYXlhIHRyYXMgPHNwYW4gY2xhc3M9ImFjY2VudCI+Y29tcHJhciBlbiBlbCBzdXBlcm1lcmNhZG88L3NwYW4+PC9kaXY+PC9oMj4KICAgICAgICA8L2E+CgogICAgICAgIDxhIGNsYXNzPSJjYXJkIgogICAgICAgICAgIGhyZWY9Imh0dHBzOi8veW91dHViZS5jb20vc2hvcnRzL21sS0FaSnVSV2t3IgogICAgICAgICAgIHRhcmdldD0iX3RvcCIKICAgICAgICAgICB0aXRsZT0iVmVyIHbtZGVvOiBMb3MgaWxlZ2FsZXMgc2UgYnVybGFuIGRlIGxvcyBjZXV07WVzIGVuIFBsYXlhIEJlbml0ZXoiCiAgICAgICAgICAgYXJpYS1sYWJlbD0iVmVyIHbtZGVvOiBMb3MgaWxlZ2FsZXMgc2UgYnVybGFuIGRlIGxvcyBjZXV07WVzIGVuIFBsYXlhIEJlbml0ZXoiCiAgICAgICAgICAgc3R5bGU9Ii0tYWNjZW50OiMwMEE3RkYiPgogICAgICAgICAgPGltZyBzcmM9Imh0dHA6Ly9va2RpYXJpby5jb20vZXNwZWNpYWxlcy9hcHBzL21lZGlhL2VsLWJ1cmxlc2NvLXJlY2liaW1pZW50by1kZS1sb3MtaW52YXNvcmVzLW1hcnJvcXVpZXMtYS1sb3MtY2V1dGllcy1lbi1wbGF5YS1iZW5pdGV6LW1pbmlhdHVyYS0yMDI2MDgyOC0yMTI5MTItMmE1OGQ1LmpwZyIgYWx0PSJW7WRlbzogTG9zIGlsZWdhbGVzIHNlIGJ1cmxhbiBkZSBsb3MgY2V1dO1lcyBlbiBQbGF5YSBCZW5pdGV6IiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LWJ0biIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZGUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj4KICAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUgdGl0bGUtbGFyZ2UiPkxvcyBpbGVnYWxlcyA8c3BhbiBjbGFzcz0iYWNjZW50Ij5zZSBidXJsYW4gZGUgbG9zIGNldXTtZXMgPC9zcGFuPmVuIFBsYXlhIEJlbml0ZXo8L2gyPgogICAgICAgIDwvYT4KCiAgICAgICAgPGEgY2xhc3M9ImNhcmQiCiAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly95b3V0dWJlLmNvbS9zaG9ydHMvUF9NYWNxUkR0UUkiCiAgICAgICAgICAgdGFyZ2V0PSJfdG9wIgogICAgICAgICAgIHRpdGxlPSJWZXIgdu1kZW86IGNldXTtZXOgY2xhbWFuIGNvbnRyYSBlbCBHb2JpZXJubzogJnF1b3Q7Tm8gaGFuIGhlY2hvIG5hZGEmcXVvdDsiCiAgICAgICAgICAgYXJpYS1sYWJlbD0iVmVyIHbtZGVvOiBjZXV07WVzoGNsYW1hbiBjb250cmEgZWwgR29iaWVybm86ICZxdW90O05vIGhhbiBoZWNobyBuYWRhJnF1b3Q7IgogICAgICAgICAgIHN0eWxlPSItLWFjY2VudDojMDBBN0ZGIj4KICAgICAgICAgIDxpbWcgc3JjPSJodHRwOi8vb2tkaWFyaW8uY29tL2VzcGVjaWFsZXMvYXBwcy9tZWRpYS9jZXV0aWVzLWNsYW1hbi1jb250cmEtZWwtZ29iaWVybm8tbm8taGFuLWhlY2hvLWFic29sdXRhbWVudGUtbmFkYS1taW5pYXR1cmEtMjAyNjA4MjgtMjEzMDEyLWMzYWZlOC5qcGciIGFsdD0iVu1kZW86IGNldXTtZXOgY2xhbWFuIGNvbnRyYSBlbCBHb2JpZXJubzogJnF1b3Q7Tm8gaGFuIGhlY2hvIG5hZGEmcXVvdDsiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9InBsYXktYnRuIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkZSIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PgogICAgICAgICAgPGgyIGNsYXNzPSJ0aXRsZSB0aXRsZS1sYXJnZSI+PGRpdj5jZXV07WVzJm5ic3A7PHNwYW4gY2xhc3M9ImFjY2VudCI+Y2xhbWFuIGNvbnRyYSBlbCBHb2JpZXJubzwvc3Bhbj46ICJObyBoYW4gaGVjaG8gbmFkYSI8L2Rpdj48L2gyPgogICAgICAgIDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9zZWN0aW9uPgogICAgPC9kaXY+CiAgICA8c2NyaXB0PgogICAgKGZ1bmN0aW9uKCl7CiAgICAgIHZhciByb290ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmN2LXgzMW5xJyk7CiAgICAgIGlmICghcm9vdCkgcmV0dXJuOwogICAgICB2YXIgdHJhY2sgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFjaycpOwogICAgICBpZiAoIXRyYWNrKSByZXR1cm47CgogICAgICB2YXIgYXJyb3dzID0gcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuYXJyb3cnKTsKICAgICAgdmFyIEdBUCA9IDE2OwoKICAgICAgZnVuY3Rpb24gZ2V0Q2FyZFdpZHRoKCl7CiAgICAgICAgdmFyIGZpcnN0ID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcuY2FyZCcpOwogICAgICAgIGlmICghZmlyc3QpIHJldHVybiAwOwogICAgICAgIHJldHVybiBmaXJzdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gZ2V0Q2FyZHNQZXJQYWdlKCl7CiAgICAgICAgcmV0dXJuICh3aW5kb3cuaW5uZXJXaWR0aCA8PSA3NjgpID8gMiA6IDQ7CiAgICAgIH0KCiAgICAgIC8vIEh1ZWNvIGEgbGEgZGVyZWNoYSBkZWwgdHJhY2sgPSAxMCUgZGVsIGFuY2hvIGRlIFVOQSB0YXJqZXRhIChubyBkZWwKICAgICAgLy8gY29udGVuZWRvciksIHBhcmEgcXVlIHNlIGludHV5YSB2aXN1YWxtZW50ZSBxdWUgaGF5IG3hcyB27WRlb3MuCiAgICAgIGZ1bmN0aW9uIHVwZGF0ZVBhZEhpbnQoKXsKICAgICAgICB2YXIgY2FyZFcgPSBnZXRDYXJkV2lkdGgoKTsKICAgICAgICBpZiAoIWNhcmRXKSByZXR1cm47CiAgICAgICAgdHJhY2suc3R5bGUucGFkZGluZ1JpZ2h0ID0gTWF0aC5yb3VuZChjYXJkVyAqIDAuMTApICsgJ3B4JzsKICAgICAgfQogICAgICB1cGRhdGVQYWRIaW50KCk7CiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB1cGRhdGVQYWRIaW50KTsKCiAgICAgIGFycm93cy5mb3JFYWNoKGZ1bmN0aW9uKGJ0bil7CiAgICAgICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSl7CiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICB2YXIgZGlyID0gdGhpcy5jbGFzc0xpc3QuY29udGFpbnMoJ2xlZnQnKSA/IC0xIDogMTsKICAgICAgICAgIHZhciBjYXJkVyA9IGdldENhcmRXaWR0aCgpOwogICAgICAgICAgaWYgKCFjYXJkVykgcmV0dXJuOwogICAgICAgICAgdmFyIHN0ZXAgPSAoY2FyZFcgKyBHQVApICogZ2V0Q2FyZHNQZXJQYWdlKCkgKiBkaXI7CiAgICAgICAgICB0cmFjay5zY3JvbGxCeSh7IGxlZnQ6IHN0ZXAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTsKICAgICAgICB9KTsKICAgICAgfSk7CgogICAgICB2YXIgdGVhc2VyQ2FyZHMgPSByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jYXJkLmhhcy10ZWFzZXInKTsKICAgICAgdGVhc2VyQ2FyZHMuZm9yRWFjaChmdW5jdGlvbihjYXJkKXsKICAgICAgICB2YXIgdiA9IGNhcmQucXVlcnlTZWxlY3RvcigndmlkZW8udGVhc2VyJyk7CiAgICAgICAgaWYgKCF2KSByZXR1cm47CgogICAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIGZ1bmN0aW9uKCl7CiAgICAgICAgICB0cnl7CiAgICAgICAgICAgIHYuY3VycmVudFRpbWUgPSAwOwogICAgICAgICAgICB2YXIgcCA9IHYucGxheSgpOwogICAgICAgICAgICBpZiAocCAmJiB0eXBlb2YgcC50aGVuID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICAgICAgcC5jYXRjaChmdW5jdGlvbigpe30pOwogICAgICAgICAgICB9CiAgICAgICAgICB9Y2F0Y2goZSl7fQogICAgICAgIH0pOwoKICAgICAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBmdW5jdGlvbigpewogICAgICAgICAgdHJ5ewogICAgICAgICAgICB2LnBhdXNlKCk7CiAgICAgICAgICAgIHYuY3VycmVudFRpbWUgPSAwOwogICAgICAgICAgfWNhdGNoKGUpe30KICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9KSgpOwogICAgPC9zY3JpcHQ+
    • Mourinho tiene lo que quería
    • Escalofriante parte médico de Pogacar: Conmoción cerebral, abrasiones y fractura cervical y de clavícula
        • Deportes
        • Deportes

      Escalofriante parte médico de Pogacar: "Conmoción cerebral, abrasiones y fractura cervical y de clavícula"

      UAE Team Emirates-XRG ha confirmado el parte médico de Tadej Pogacar tras su accidente en La Vuelta que le costó abandonar la competición y ser trasladado al hospital para conocer el alcance de las lesiones. Un trágico suceso para el ciclista esloveno después de haber sido líder indiscutible.
      • Pablo Villanueva
      • 2026-08-29 21:26
    • Coquard se aprovecha de la caída de Pogacar y se impone en la etapa caótica de La Vuelta
        • Deportes
        • Deportes

      Coquard se aprovecha de la caída de Pogacar y se impone en la etapa caótica de La Vuelta

      • Pablo Villanueva
      • 2026-08-29 18:21
    • Inter para empezar y Arsenal en Londres: así queda el calendario del Real Madrid en la Champions
        • Real Madrid
        • Real Madrid

      Inter para empezar y Arsenal en Londres: así queda el calendario del Real Madrid en la Champions

      • Iván Martín
      • 2026-08-29 13:22
    • El Gobierno monta un
    • Un incendio devora un plató de televisión y calcina sus oficinas en Madrid
        • España
        • España

      Un incendio devora un plató de televisión y calcina sus oficinas en Madrid

      • Charo Miñano
      • 2026-08-29 22:12
    • Muere Carlos Espinosa de los Monteros, padre del ex dirigente de Vox Iván Espinosa y ex presidente de Iberia
        • España
        • España

      Muere Carlos Espinosa de los Monteros, padre del ex dirigente de Vox Iván Espinosa y ex presidente de Iberia

      • OKDIARIO
      • 2026-08-29 18:56
    • Ceutíes, sois el orgullo de España
    • Localizan a un segundo español desaparecido en la catastrófica riada de Nepal
        • Internacional
        • Internacional

      Localizan a un segundo español desaparecido en la catastrófica riada de Nepal

      • Charo Miñano
      • 2026-08-29 16:15
    • Trump se queda con 65.000 millones de barriles de Venezuela y duplica las reservas de petróleo de EEUU
        • Economía
        • Economía

      Trump se queda con 65.000 millones de barriles de Venezuela y duplica las reservas de petróleo de EEUU

      • Jose de la Morena
      • 2026-08-29 11:03
    • El emotivo discurso de Haakon VIII como nuevo rey de Noruega en recuerdo a Harald V: Gracias por haber sido un padre tan bueno
        • Cool
        • Cool

      El emotivo discurso de Haakon VIII como nuevo rey de Noruega en recuerdo a Harald V: "Gracias por haber sido un padre tan bueno"

      Haakon VIII de Noruega ha pronunciado sus primeras palabras como rey a través de un discurso marcado por la emoción y el recuerdo de su padre. Mientras el hijo de Harald V se encuentra en pleno luto por la muerte del monarca, ha comparecido ante los noruegos para dirigirse por primera vez al país desde su llegada al trono. Después de acompañar el féretro de su padre y recibir numerosas condolencias institucionales de gobiernos y otras casas reales, el nuevo monarca no ha dudado en expresarse sobre la situación e incluso en añadir un toque personal. 
      • Javi Fernández
      • 2026-08-29 22:46
    • El último adiós Harald V ya tiene fecha y habrá ausencias: Mette-Marit no estará en el funeral
        • Cool
        • Cool

      El último adiós Harald V ya tiene fecha y habrá ausencias: Mette-Marit no estará en el funeral

      • Javi Fernández
      • 2026-08-29 19:38
    • Sofía sería hoy viuda...
    • Sube & Baja, por Jaime Peñafiel: semana del 22 al 28 de agosto
    • OK AL DÍA

    • La impactante frase de Einstein sobre las relaciones sentimentales: El amor es la fuente de energía más poderosa de todo el mundo porque no tiene límites
        • Curiosidades
        • Curiosidades

      einstein: "El amor es la fuente de energía más poderosa de todo el mundo porque no tiene límites"

      • Xabier Vergara
      • 2026-08-29 15:00
    • Las Cabañuelas de Jorge Rey confirman lo que llega en septiembre y la previsión no es buena: Un claro reflejo de un otoño muy húmedo
        • Sociedad
        • Sociedad

      Las Cabañuelas de Jorge Rey confirman lo que llega en septiembre y no es bueno

      • Gemma Meca
      • 2026-08-29 09:30
    • Los expertos gastronómicos coinciden: la mejor
        • Recetas de cocina
        • Recetas de cocina

      Los expertos gastronómicos coinciden: la mejor 'tarta de la abuela' se hace con galletas hojaldradas y una ramita de canela

      Pocos postres generan tanto debate en las cocinas españolas como este clásico sin horno, heredado de generación en generación, pero que nunca se hace igual en dos casas distintas. Unos defienden las galletas redondas, otros las cuadradas, y no faltan quienes discuten si la leche debe estar fría o caliente al mojarlas. Ahora, varios cocineros y blogs gastronómicos han comparado las distintas versiones para señalar cuál convence más al paladar. El veredicto pasa por un tipo concreto de galleta y un ingrediente aromático que marca la diferencia. Aquí te lo contamos, paso a paso.
      • Alejo Lucarás
      • 2026-08-29 12:00
    • Los albañiles coinciden: para arreglar las fisuras de las baldosas y azulejos debes emplear este fácil truco que no deja marcas
        • Curiosidades
        • Curiosidades

      Los albañiles coinciden: para arreglar las fisuras de las baldosas y azulejos debes emplear este fácil truco

      • Gemma Meca
      • 2026-08-29 16:30
    • Hito arqueológico en Gerona: encuentran intacta una vasija romana de cerámica para guardar vino que llevaba 2.000 años enterrada bajo tierra
        • Historia
        • Historia

      Hito arqueológico en Gerona: encuentran intacta una vasija romana de cerámica para guardar vino que llevaba 2.000 años enterrada bajo tierra

      • Sofía Crotti
      • 2026-08-29 16:00
    • Muchos no se atreven a probarlo, pero en Galicia este pez es un icono gastronómico y tiene hasta su propia fiesta de Interés Turístico Internacional
        • Gastronomía
        • Gastronomía

      este pez es un icono gastronómico y tiene hasta su propia fiesta de Interés Turístico Internacional

      • Sofía Narváez
      • 2026-08-29 12:30
    • El récord de Hollywood que solo tiene una persona: aparece en dos películas con 11 Óscars cada una y sus dos papeles son inolvidables
        • Cool
        • Cool

      El récord de Hollywood que solo tiene una persona: aparece en dos películas con 11 Óscars cada una y sus dos papeles son inolvidables

      • Francisco-Eme
      • 2026-08-29 16:30
    • Ronald Rondón, técnico en electrodomésticos: Los cajones del frigorífico no están ahí por casualidad, ayudan a conservar los alimentos
        • Curiosidades
        • Curiosidades

      Ronald Rondón, técnico en electrodomésticos: "Los cajones del frigorífico no están ahí por casualidad, ayudan a conservar los alimentos"

      • Gemma Meca
      • 2026-08-29 16:30
    • La psicología lo confirma: los nacidos entre 1945 y 1965 desarrollaron una ventaja única a la hora de gestionar las emociones, debido a que vivieron largos períodos de incertidumbre
        • Curiosidades
        • Curiosidades

      los nacidos entre 1945 y 1965 desarrollaron una ventaja a la hora de gestionar las emociones

      • Laura Mesonero
      • 2026-08-29 10:45
    • CiAgICA8c3R5bGU+CiAgICBAaW1wb3J0IHVybCgnaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MnKTsKCiAgICAvKiBDb250ZW5lZG9yIHByaW5jaXBhbCBsaW1pdGFkbyBhIDk2MHB4IGVuIGVzY3JpdG9yaW8gKi8KICAgIC5jdi15ZWFvZiAuc2VjdGlvbnttYXgtd2lkdGg6OTYwcHg7bWFyZ2luOjAgYXV0bzt3aWR0aDoxMDAlfQoKICAgIC5jdi15ZWFvZiAuYmctc2VjdGlvbi10aXRsZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjo4cHggMCA1MHB4fQogICAgLmN2LXllYW9mIC5mbmQtbGluZWF7d2lkdGg6MTAwJTtoZWlnaHQ6NXB4O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7bWFyZ2luLXRvcDotMjVweDtib3JkZXItdG9wOjFweCBzb2xpZCAjMzMzO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMzMzN9CiAgICAuY3YteWVhb2YgLnNlY3Rpb24tdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOi0xcHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjRweCAxM3B4O2JvcmRlcjoxcHggc29saWQgIzMzMztmb250LXNpemU6NDJweDt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyl9CgogICAgLmN2LXllYW9mIC5jYXJvdXNlbHstLWdhcDoxNnB4Oy0tcGVlazoxMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6dmFyKC0tZ2FwKTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1ib3R0b206NnB4fQogICAgLmN2LXllYW9mIC50cmFja3tkaXNwbGF5OmZsZXg7Z2FwOnZhcigtLWdhcCk7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO3Njcm9sbC1zbmFwLXR5cGU6eCBtYW5kYXRvcnk7c2Nyb2xsLWJlaGF2aW9yOnNtb290aDtzY3JvbGxiYXItd2lkdGg6bm9uZTstbXMtb3ZlcmZsb3ctc3R5bGU6bm9uZTtwYWRkaW5nLXJpZ2h0OnZhcigtLXBlZWspfQogICAgLmN2LXllYW9mIC50cmFjazo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfQogICAgLmN2LXllYW9mIC5jYXJke3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6MCAwIGF1dG87c2Nyb2xsLXNuYXAtYWxpZ246c3RhcnQ7d2lkdGg6Y2FsYygoMTAwJSAtIDIqdmFyKC0tZ2FwKSAtIHZhcigtLXBlZWspKS8zKTthc3BlY3QtcmF0aW86OS8xNjtib3JkZXItcmFkaXVzOjEwcHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6IzAwMDtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNnB4KTt0cmFuc2l0aW9uOm9wYWNpdHkgLjRzIGVhc2UsIHRyYW5zZm9ybSAuNHMgZWFzZX0KICAgIC5jdi15ZWFvZiAuY2FyZC5pcy1pbntvcGFjaXR5OjE7dHJhbnNmb3JtOm5vbmV9CgogICAgLmN2LXllYW9mIC50aHVtYntwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb3Zlcjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzIGVhc2UsIG9wYWNpdHkgLjI1cyBlYXNlO3RyYW5zZm9ybTpzY2FsZSgxLjAxKX0KICAgIC5jdi15ZWFvZiAuY2FyZDpob3ZlciAudGh1bWIsLmN2LXllYW9mIC5jYXJkOmZvY3VzLXZpc2libGUgLnRodW1ie3RyYW5zZm9ybTpzY2FsZSgxLjA2KX0KICAgIC8qIFNpbiBvdmVybGF5cyBwZXJzb25hbGl6YWRvczogc2UgdXNhbiBjb250cm9sZXMgbmF0aXZvcyBkZWwgcGxheWVyICovCgogICAgLmN2LXllYW9mIC5hcntwb3NpdGlvbjpyZWxhdGl2ZX0KICAgIC5jdi15ZWFvZiAuYXJyb3d7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt3aWR0aDo0NHB4O2hlaWdodDo0NHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6cmdiKDI1NSAyNTUgMjU1IC8gMjAlKTtib3gtc2hhZG93OjAgNnB4IDE2cHggcmdiKDAgMCAwIC8gMjAlKTtib3JkZXI6MXB4IHNvbGlkICNmZmY7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3otaW5kZXg6Mjt0cmFuc2l0aW9uOi4zc30KICAgIC5jdi15ZWFvZiAuYXJyb3c6aG92ZXJ7YmFja2dyb3VuZDpyZ2IoMCAwIDAgLyAyMCUpO2JvcmRlcjoxcHggc29saWQgI2ZmZn0KICAgIC5jdi15ZWFvZiAuYXJyb3c6Zm9jdXN7YmFja2dyb3VuZDpyZ2IoMjU1IDI1NSAyNTUgLyAyMCUpfQogICAgLmN2LXllYW9mIC5hcnJvdyBzdmd7d2lkdGg6MjBweDtoZWlnaHQ6MjBweH0KICAgIC5jdi15ZWFvZiAuYXJyb3cubGVmdHtsZWZ0OjEwcHh9CiAgICAuY3YteWVhb2YgLmFycm93LnJpZ2h0e3JpZ2h0OjEwcHh9CgogICAgQG1lZGlhIChtYXgtd2lkdGg6NzY4cHgpewogICAgICAvKiBFbiBt83ZpbCwgZWwgY29udGVuZWRvciBvY3VwYSB0b2RvIGVsIGFuY2hvICovCiAgICAgIC5jdi15ZWFvZiAuc2VjdGlvbnttYXgtd2lkdGg6MTAwJX0KICAgICAgLmN2LXllYW9mIC5zZWN0aW9uLXRpdGxle2ZvbnQtc2l6ZToyN3B4O3BhZGRpbmc6MnB4IDhweDt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyl9CiAgICAgIC5jdi15ZWFvZiAuY2Fyb3VzZWx7LS1wZWVrOjEyJX0KICAgICAgLyogMiB0YXJqZXRhcyBjb21wbGV0YXMgKyB1biBwZWVrIGRlIGxhIDOqICovCiAgICAgIC5jdi15ZWFvZiAuY2FyZHt3aWR0aDpjYWxjKCgxMDAlIC0gNCp2YXIoLS1nYXApIC0gdmFyKC0tcGVlaykpLzEpfQogICAgICAuY3YteWVhb2YgLmFycm93e2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fQogICAgICAuY3YteWVhb2YgLnRyYWNre292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmhpZGRlbjtwYWRkaW5nLXJpZ2h0OnZhcigtLXBlZWspfQogICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJjdi15ZWFvZiI+CiAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBhcmlhLWxhYmVsPSJDYXJydXNlbCBkZSB27WRlb3MgKFNob3J0cykiPgogICAgICAgIDxkaXYgY2xhc3M9ImJnLXNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Mb3MgJ3Nob3J0cycgZGUgT0tESUFSSU88L2gyPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImZuZC1saW5lYSI+PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFyIiByb2xlPSJyZWdpb24iIGFyaWEtbGFiZWw9Ikxpc3RhZG8gZGUgdu1kZW9zIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IGxlZnQiIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iQW50ZXJpb3IiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0xNSA2bC02IDYgNiA2IiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IHJpZ2h0IiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IlNpZ3VpZW50ZSI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTkgMThsNi02LTYtNiIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJvdXNlbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWNrIiByb2xlPSJsaXN0Ij4KCiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy95eE92LWMxYi10NCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9Inl4T3YtYzFiLXQ0IiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkveXhPdi1jMWItdDQvaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDEiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvTHdLT3FXMnJ2UDgiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJMd0tPcVcycnZQOCIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL0x3S09xVzJydlA4L2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCAyIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzL0cwZTRWNXpFVWlrIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0iRzBlNFY1ekVVaWsiIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9HMGU0VjV6RVVpay9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgMyIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy9Ma2NmRV9iOVFROCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9IkxrY2ZFX2I5UVE4IiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvTGtjZkVfYjlRUTgvaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDQiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvYWVFMDg2Z1ZoejQiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJhZUUwODZnVmh6NCIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL2FlRTA4NmdWaHo0L2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCA1IiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzL1VsZm42MVBKcVdrIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0iVWxmbjYxUEpxV2siIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9VbGZuNjFQSnFXay9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgNiIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvc2VjdGlvbj4KICAgIDwvZGl2PgogICAgPHNjcmlwdD4KICAgIChmdW5jdGlvbigpewogICAgICB2YXIgcm9vdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jdi15ZWFvZicpOwogICAgICBpZiAoIXJvb3QpIHJldHVybjsKICAgICAgdmFyIHRyYWNrID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2snKTsKICAgICAgaWYgKCF0cmFjaykgcmV0dXJuOwoKICAgICAgdmFyIGFycm93cyA9IHJvb3QucXVlcnlTZWxlY3RvckFsbCgnLmFycm93Jyk7CiAgICAgIHZhciBHQVAgPSAxNjsKCiAgICAgIGZ1bmN0aW9uIGdldENhcmRXaWR0aCgpewogICAgICAgIHZhciBmaXJzdCA9IHJvb3QucXVlcnlTZWxlY3RvcignLmNhcmQnKTsKICAgICAgICBpZiAoIWZpcnN0KSByZXR1cm4gMDsKICAgICAgICByZXR1cm4gZmlyc3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIGdldENhcmRzUGVyUGFnZSgpewogICAgICAgIHJldHVybiAod2luZG93LmlubmVyV2lkdGggPD0gNzY4KSA/IDIgOiA0OwogICAgICB9CgogICAgICBhcnJvd3MuZm9yRWFjaChmdW5jdGlvbihidG4pewogICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpewogICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgdmFyIGRpciA9IHRoaXMuY2xhc3NMaXN0LmNvbnRhaW5zKCdsZWZ0JykgPyAtMSA6IDE7CiAgICAgICAgICB2YXIgY2FyZFcgPSBnZXRDYXJkV2lkdGgoKTsKICAgICAgICAgIGlmICghY2FyZFcpIHJldHVybjsKICAgICAgICAgIHZhciBzdGVwID0gKGNhcmRXICsgR0FQKSAqIGdldENhcmRzUGVyUGFnZSgpICogZGlyOwogICAgICAgICAgdHJhY2suc2Nyb2xsQnkoeyBsZWZ0OiBzdGVwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7CiAgICAgICAgfSk7CiAgICAgIH0pOwoKICAgICAgLy8gRmFkZS1pbiBhbCBlbnRyYXIgZW4gdmlld3BvcnQKICAgICAgdmFyIGlvID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGVudHJpZXMpewogICAgICAgIGVudHJpZXMuZm9yRWFjaChmdW5jdGlvbihlbil7IGlmKGVuLmlzSW50ZXJzZWN0aW5nKXsgZW4udGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2lzLWluJyk7IH0gfSk7CiAgICAgIH0sIHsgcm9vdDogdHJhY2ssIHRocmVzaG9sZDogMC4xIH0pOwogICAgICByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jYXJkJykuZm9yRWFjaChmdW5jdGlvbihjKXsgaW8ub2JzZXJ2ZShjKTsgfSk7CgogICAgICAvLyBDbGljayBwZXJzaXN0ZW50ZSAoc2luIHRlYXNlciBwb3IgaG92ZXIpCiAgICAgIGZ1bmN0aW9uIG1ha2VFbWJlZFVybChpZCwgb3B0cyl7CiAgICAgICAgdmFyIHFzID0gWwogICAgICAgICAgJ2F1dG9wbGF5PScgKyAob3B0cyAmJiBvcHRzLmF1dG9wbGF5PyAnMSc6JzAnKSwKICAgICAgICAgICdwbGF5c2lubGluZT0xJywnZnM9MScsJ2l2X2xvYWRfcG9saWN5PTMnLCdzaG93aW5mbz0xJywncmVsPTAnLCdjY19sb2FkX3BvbGljeT0wJywnc3RhcnQ9MCcsCiAgICAgICAgICAnbXV0ZT0nICsgKG9wdHMgJiYgb3B0cy5tdXRlPyAnMSc6JzAnKSwKICAgICAgICAgIChvcHRzICYmIG9wdHMuY29udHJvbHM9PT0wPyAnY29udHJvbHM9MCc6J2NvbnRyb2xzPTEnKSwKICAgICAgICAgICdtb2Rlc3RicmFuZGluZz0xJywnZW5hYmxlanNhcGk9MScKICAgICAgICBdLmpvaW4oJyYnKTsKICAgICAgICByZXR1cm4gJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLycgKyBpZCArICc/JyArIHFzOwogICAgICB9CgogICAgICAvLyBDYXJnYXIgQVBJIGRlIFlvdVR1YmUgYmFqbyBkZW1hbmRhCiAgICAgIHZhciB5dEFwaVByb21pc2UgPSBudWxsOwogICAgICBmdW5jdGlvbiBlbnN1cmVZVEFwaSgpewogICAgICAgIGlmICh3aW5kb3cuWVQgJiYgd2luZG93LllULlBsYXllcikgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOwogICAgICAgIGlmICh5dEFwaVByb21pc2UpIHJldHVybiB5dEFwaVByb21pc2U7CiAgICAgICAgeXRBcGlQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSl7CiAgICAgICAgICB2YXIgcHJldkNiID0gd2luZG93Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5OwogICAgICAgICAgd2luZG93Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5ID0gZnVuY3Rpb24oKXsgaWYgKHR5cGVvZiBwcmV2Q2I9PT0nZnVuY3Rpb24nKSB7IHRyeXsgcHJldkNiKCk7IH1jYXRjaChfKXt9IH0gcmVzb2x2ZSgpOyB9OwogICAgICAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2lmcmFtZV9hcGknOwogICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4geXRBcGlQcm9taXNlOwogICAgICB9CgogICAgICAvLyBJbnN0YW5jaWFyIHBsYXllciBuYXRpdm8gZW4gdGFyamV0YXMgdmlzaWJsZXMgcGFyYSBxdWUgZWwgaWNvbm8gZGUgcGxheSBhcGFyZXpjYSBkZXNkZSBlbCBpbmljaW8KICAgICAgZnVuY3Rpb24gaW5pdFBsYXllckZvckNhcmQoY2FyZCl7CiAgICAgICAgaWYoIWNhcmQgfHwgY2FyZC5feXRQbGF5ZXIgfHwgY2FyZC5feXRJbml0KSByZXR1cm47CiAgICAgICAgdmFyIGlkID0gY2FyZC5nZXRBdHRyaWJ1dGUoJ2RhdGEteXQtaWQnKTsKICAgICAgICBpZighaWQpIHJldHVybjsKICAgICAgICBjYXJkLl95dEluaXQgPSB0cnVlOwogICAgICAgIHZhciBwb3N0ZXIgPSBjYXJkLnF1ZXJ5U2VsZWN0b3IoJ2ltZy50aHVtYicpOwogICAgICAgIHZhciBob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBob2xkZXIuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaG9sZGVyLnN0eWxlLmluc2V0PScwJzsgaG9sZGVyLnN0eWxlLndpZHRoPScxMDAlJzsgaG9sZGVyLnN0eWxlLmhlaWdodD0nMTAwJSc7IGhvbGRlci5zdHlsZS5iYWNrZ3JvdW5kPScjMDAwJzsKICAgICAgICBpZihwb3N0ZXIpeyBjYXJkLmluc2VydEJlZm9yZShob2xkZXIsIHBvc3Rlcik7IH0gZWxzZSB7IGNhcmQuYXBwZW5kQ2hpbGQoaG9sZGVyKTsgfQogICAgICAgIC8vIE9jdWx0YW1vcyBlbCBw83N0ZXIgY3VhbnRvIGFudGVzIHBhcmEgZGVqYXIgdmVyIGVsIG92ZXJsYXkgbmF0aXZvCiAgICAgICAgaWYocG9zdGVyKXsgcG9zdGVyLnN0eWxlLnRyYW5zaXRpb24gPSBwb3N0ZXIuc3R5bGUudHJhbnNpdGlvbiB8fCAnb3BhY2l0eSAuMTVzIGVhc2UnOyBwb3N0ZXIuc3R5bGUub3BhY2l0eT0nMCc7IHBvc3Rlci5zdHlsZS5wb2ludGVyRXZlbnRzPSdub25lJzsgfQogICAgICAgIGVuc3VyZVlUQXBpKCkudGhlbihmdW5jdGlvbigpewogICAgICAgICAgdmFyIHBsYXllciA9IG5ldyBZVC5QbGF5ZXIoaG9sZGVyLCB7CiAgICAgICAgICAgIHZpZGVvSWQ6IGlkLAogICAgICAgICAgICBwbGF5ZXJWYXJzOiB7IGF1dG9wbGF5OjAsIGNvbnRyb2xzOjEsIHJlbDowLCBwbGF5c2lubGluZToxLCBpdl9sb2FkX3BvbGljeTozLCBtb2Rlc3RicmFuZGluZzoxLCBmczoxLCBvcmlnaW46IChsb2NhdGlvbiAmJiBsb2NhdGlvbi5vcmlnaW4pID8gbG9jYXRpb24ub3JpZ2luIDogdW5kZWZpbmVkIH0sCiAgICAgICAgICAgIGV2ZW50czogewogICAgICAgICAgICAgIG9uUmVhZHk6IGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICBpZihwb3N0ZXIpeyBwb3N0ZXIuc3R5bGUub3BhY2l0eT0nMCc7IHBvc3Rlci5zdHlsZS5wb2ludGVyRXZlbnRzPSdub25lJzsgfQogICAgICAgICAgICAgICAgLy8gRm9yemFyIHBlcm1pc29zIGRlIHBhbnRhbGxhIGNvbXBsZXRhIGVuIGVsIGlmcmFtZSBnZW5lcmFkbwogICAgICAgICAgICAgICAgdHJ5ewogICAgICAgICAgICAgICAgICB2YXIgaWZyID0gcGxheWVyLmdldElmcmFtZSAmJiBwbGF5ZXIuZ2V0SWZyYW1lKCk7CiAgICAgICAgICAgICAgICAgIGlmIChpZnIpewogICAgICAgICAgICAgICAgICAgIGlmci5zZXRBdHRyaWJ1dGUoJ2FsbG93ZnVsbHNjcmVlbicsJycpOwogICAgICAgICAgICAgICAgICAgIHZhciBjdXIgPSBpZnIuZ2V0QXR0cmlidXRlKCdhbGxvdycpIHx8ICcnOwogICAgICAgICAgICAgICAgICAgIGlmci5zZXRBdHRyaWJ1dGUoJ2FsbG93JywgKGN1ciA/IGN1ciArICc7ICcgOiAnJykgKyAnZnVsbHNjcmVlbicpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9Y2F0Y2goXyl7IH0KICAgICAgICAgICAgICAgIGNhcmQuX3l0UGxheWVyID0gcGxheWVyOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKXsKICAgICAgICAgIHRyeXsgY2FyZC5yZW1vdmVDaGlsZChob2xkZXIpOyB9Y2F0Y2goXyl7IH0KICAgICAgICAgIC8vIFNpIGZhbGxhIGxhIEFQSSwgZGVqYW1vcyBlbCBw83N0ZXIgaGFzdGEgaW50ZXJhY2Np824KICAgICAgICAgIGlmKHBvc3Rlcil7IHBvc3Rlci5zdHlsZS5vcGFjaXR5PScnOyBwb3N0ZXIuc3R5bGUucG9pbnRlckV2ZW50cz0nJzsgfQogICAgICAgICAgY2FyZC5feXRJbml0ID0gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgIH0KCiAgICAgIC8vIEluaWNpYWxpemFyIGF1dG9t4XRpY2FtZW50ZSBsb3MgcGxheWVycyBkZSBsYXMgdGFyamV0YXMgdmlzaWJsZXMgYWwgY2FyZ2FyCiAgICAgIHZhciBpbml0SU8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZW50cmllcyl7CiAgICAgICAgZW50cmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVuKXsgaWYoZW4uaXNJbnRlcnNlY3RpbmcpeyBpbml0UGxheWVyRm9yQ2FyZChlbi50YXJnZXQpOyB9IH0pOwogICAgICB9LCB7IHJvb3Q6IG51bGwsIHRocmVzaG9sZDogMC4yNSB9KTsKICAgICAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuY2FyZCcpLmZvckVhY2goZnVuY3Rpb24oYyl7IGluaXRJTy5vYnNlcnZlKGMpOyB9KTsKCiAgICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKXsKICAgICAgICB2YXIgYSA9IGUudGFyZ2V0LmNsb3Nlc3QoJ2EuY2FyZFtkYXRhLXl0LWlkXScpOwogICAgICAgIGlmKCFhIHx8ICFyb290LmNvbnRhaW5zKGEpKSByZXR1cm47CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIHZhciBwb3N0ZXIgPSBhLnF1ZXJ5U2VsZWN0b3IoJ2ltZy50aHVtYicpOwogICAgICAgIC8vIHNpbiBvdmVybGF5cyBwZXJzb25hbGl6YWRvcwoKICAgICAgICAvLyBUb2dnbGUgc2kgeWEgaGF5IHBsYXllcgogICAgICAgIGlmIChhLl95dFBsYXllcil7CiAgICAgICAgICB2YXIgcCA9IGEuX3l0UGxheWVyOwogICAgICAgICAgaWYgKGEuY2xhc3NMaXN0LmNvbnRhaW5zKCdpcy1wYXVzZWQnKSl7CiAgICAgICAgICAgIHRyeXsgcC51bk11dGUoKTsgcC5zZXRWb2x1bWUoMTAwKTsgcC5wbGF5VmlkZW8oKTsgfWNhdGNoKF8peyB9CiAgICAgICAgICAgIGEuY2xhc3NMaXN0LnJlbW92ZSgnaXMtcGF1c2VkJyk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0cnl7IHAucGF1c2VWaWRlbygpOyB9Y2F0Y2goXyl7IH0KICAgICAgICAgICAgYS5jbGFzc0xpc3QuYWRkKCdpcy1wYXVzZWQnKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgc3RvcFRlYXNlcihhKTsKICAgICAgICB2YXIgaWQgPSBhLmdldEF0dHJpYnV0ZSgnZGF0YS15dC1pZCcpOwogICAgICAgIHZhciBob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBob2xkZXIuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaG9sZGVyLnN0eWxlLmluc2V0PScwJzsgaG9sZGVyLnN0eWxlLndpZHRoPScxMDAlJzsgaG9sZGVyLnN0eWxlLmhlaWdodD0nMTAwJSc7IGhvbGRlci5zdHlsZS5iYWNrZ3JvdW5kPScjMDAwJzsKICAgICAgICBpZihwb3N0ZXIpeyBhLmluc2VydEJlZm9yZShob2xkZXIsIHBvc3Rlcik7IH0gZWxzZSB7IGEuYXBwZW5kQ2hpbGQoaG9sZGVyKTsgfQoKICAgICAgICBlbnN1cmVZVEFwaSgpLnRoZW4oZnVuY3Rpb24oKXsKICAgICAgICAgIHZhciBwbGF5ZXIgPSBuZXcgWVQuUGxheWVyKGhvbGRlciwgewogICAgICAgICAgICB2aWRlb0lkOiBpZCwKICAgICAgICAgICAgcGxheWVyVmFyczogeyBhdXRvcGxheToxLCBjb250cm9sczoxLCByZWw6MCwgcGxheXNpbmxpbmU6MSwgaXZfbG9hZF9wb2xpY3k6MywgbW9kZXN0YnJhbmRpbmc6MSwgZnM6MSwgb3JpZ2luOiAobG9jYXRpb24gJiYgbG9jYXRpb24ub3JpZ2luKSA/IGxvY2F0aW9uLm9yaWdpbiA6IHVuZGVmaW5lZCB9LAogICAgICAgICAgICBldmVudHM6IHsKICAgICAgICAgICAgICBvblJlYWR5OiBmdW5jdGlvbihldil7CiAgICAgICAgICAgICAgICB0cnl7IGV2LnRhcmdldC51bk11dGUoKTsgZXYudGFyZ2V0LnNldFZvbHVtZSgxMDApOyBldi50YXJnZXQucGxheVZpZGVvKCk7IH1jYXRjaChfKXt9CiAgICAgICAgICAgICAgICAvLyBGb3J6YXIgZnVsbHNjcmVlbiBkaXNwb25pYmxlIGVuIGlmcmFtZSBJRnJhbWUgQVBJCiAgICAgICAgICAgICAgICB0cnl7CiAgICAgICAgICAgICAgICAgIHZhciBpZnIgPSBwbGF5ZXIuZ2V0SWZyYW1lICYmIHBsYXllci5nZXRJZnJhbWUoKTsKICAgICAgICAgICAgICAgICAgaWYgKGlmcil7CiAgICAgICAgICAgICAgICAgICAgaWZyLnNldEF0dHJpYnV0ZSgnYWxsb3dmdWxsc2NyZWVuJywnJyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGN1ciA9IGlmci5nZXRBdHRyaWJ1dGUoJ2FsbG93JykgfHwgJyc7CiAgICAgICAgICAgICAgICAgICAgaWZyLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAoY3VyID8gY3VyICsgJzsgJyA6ICcnKSArICdmdWxsc2NyZWVuJyk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH1jYXRjaChfKXsgfQogICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICBpZihwb3N0ZXIpeyBwb3N0ZXIuc3R5bGUudHJhbnNpdGlvbiA9IHBvc3Rlci5zdHlsZS50cmFuc2l0aW9uIHx8ICdvcGFjaXR5IC4xNXMgZWFzZSc7IHBvc3Rlci5zdHlsZS5vcGFjaXR5PScwJzsgfQogICAgICAgICAgICAgICAgICBhLmNsYXNzTGlzdC5hZGQoJ2lzLXBsYXlpbmcnKTsKICAgICAgICAgICAgICAgICAgYS5feXRQbGF5ZXIgPSBwbGF5ZXI7CiAgICAgICAgICAgICAgICB9LCAxMDApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKXsKICAgICAgICAgIC8vIEZhbGxiYWNrOiBpZnJhbWUgc2ltcGxlCiAgICAgICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CiAgICAgICAgICBpZnJhbWUuc3JjID0gbWFrZUVtYmVkVXJsKGlkLCB7YXV0b3BsYXk6dHJ1ZSwgbXV0ZTpmYWxzZX0pOwogICAgICAgICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAnYXV0b3BsYXk7IGVuY3J5cHRlZC1tZWRpYTsgcGljdHVyZS1pbi1waWN0dXJlJyk7CiAgICAgICAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCdhbGxvd2Z1bGxzY3JlZW4nLCAnJyk7CiAgICAgICAgICBpZnJhbWUuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaWZyYW1lLnN0eWxlLmluc2V0PScwJzsgaWZyYW1lLnN0eWxlLndpZHRoPScxMDAlJzsgaWZyYW1lLnN0eWxlLmhlaWdodD0nMTAwJSc7IGlmcmFtZS5zdHlsZS5ib3JkZXI9JzAnOyBpZnJhbWUuc3R5bGUuZGlzcGxheT0nYmxvY2snOyBpZnJhbWUuc3R5bGUuYmFja2dyb3VuZD0nIzAwMCc7CiAgICAgICAgICBob2xkZXIucmVwbGFjZVdpdGgoaWZyYW1lKTsKICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgYS5jbGFzc0xpc3QuYWRkKCdpcy1wbGF5aW5nJyk7IH0sIDE1MCk7CiAgICAgICAgfSk7CiAgICAgIH0pOwoKICAgICAgCiAgICB9KSgpOwogICAgPC9zY3JpcHQ+
      CiAgICA8c3R5bGU+CiAgICBAaW1wb3J0IHVybCgnaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvaXFhMXFlYi5jc3MnKTsKCiAgICAvKiBDb250ZW5lZG9yIHByaW5jaXBhbCBsaW1pdGFkbyBhIDk2MHB4IGVuIGVzY3JpdG9yaW8gKi8KICAgIC5jdi1xOWxhZSAuc2VjdGlvbnttYXgtd2lkdGg6OTYwcHg7bWFyZ2luOjAgYXV0bzt3aWR0aDoxMDAlfQoKICAgIC5jdi1xOWxhZSAuYmctc2VjdGlvbi10aXRsZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjo4cHggMCA1MHB4fQogICAgLmN2LXE5bGFlIC5mbmQtbGluZWF7d2lkdGg6MTAwJTtoZWlnaHQ6NXB4O2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7bWFyZ2luLXRvcDotMjVweDtib3JkZXItdG9wOjFweCBzb2xpZCAjMzMzO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMzMzN9CiAgICAuY3YtcTlsYWUgLnNlY3Rpb24tdGl0bGV7Zm9udC1mYW1pbHk6ImJlYmFzLW5ldWUtcHJvLWV4cGFuZGVkIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjkwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOi0xcHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjRweCAxM3B4O2JvcmRlcjoxcHggc29saWQgIzMzMztmb250LXNpemU6NDJweDt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyl9CgogICAgLmN2LXE5bGFlIC5jYXJvdXNlbHstLWdhcDoxNnB4Oy0tcGVlazoxMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6dmFyKC0tZ2FwKTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1ib3R0b206NnB4fQogICAgLmN2LXE5bGFlIC50cmFja3tkaXNwbGF5OmZsZXg7Z2FwOnZhcigtLWdhcCk7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO3Njcm9sbC1zbmFwLXR5cGU6eCBtYW5kYXRvcnk7c2Nyb2xsLWJlaGF2aW9yOnNtb290aDtzY3JvbGxiYXItd2lkdGg6bm9uZTstbXMtb3ZlcmZsb3ctc3R5bGU6bm9uZTtwYWRkaW5nLXJpZ2h0OnZhcigtLXBlZWspfQogICAgLmN2LXE5bGFlIC50cmFjazo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfQogICAgLmN2LXE5bGFlIC5jYXJke3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6MCAwIGF1dG87c2Nyb2xsLXNuYXAtYWxpZ246c3RhcnQ7d2lkdGg6Y2FsYygoMTAwJSAtIDIqdmFyKC0tZ2FwKSAtIHZhcigtLXBlZWspKS8zKTthc3BlY3QtcmF0aW86OS8xNjtib3JkZXItcmFkaXVzOjEwcHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6IzAwMDtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNnB4KTt0cmFuc2l0aW9uOm9wYWNpdHkgLjRzIGVhc2UsIHRyYW5zZm9ybSAuNHMgZWFzZX0KICAgIC5jdi1xOWxhZSAuY2FyZC5pcy1pbntvcGFjaXR5OjE7dHJhbnNmb3JtOm5vbmV9CgogICAgLmN2LXE5bGFlIC50aHVtYntwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb3Zlcjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzIGVhc2UsIG9wYWNpdHkgLjI1cyBlYXNlO3RyYW5zZm9ybTpzY2FsZSgxLjAxKX0KICAgIC5jdi1xOWxhZSAuY2FyZDpob3ZlciAudGh1bWIsLmN2LXE5bGFlIC5jYXJkOmZvY3VzLXZpc2libGUgLnRodW1ie3RyYW5zZm9ybTpzY2FsZSgxLjA2KX0KICAgIC8qIFNpbiBvdmVybGF5cyBwZXJzb25hbGl6YWRvczogc2UgdXNhbiBjb250cm9sZXMgbmF0aXZvcyBkZWwgcGxheWVyICovCgogICAgLmN2LXE5bGFlIC5hcntwb3NpdGlvbjpyZWxhdGl2ZX0KICAgIC5jdi1xOWxhZSAuYXJyb3d7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt3aWR0aDo0NHB4O2hlaWdodDo0NHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6cmdiKDI1NSAyNTUgMjU1IC8gMjAlKTtib3gtc2hhZG93OjAgNnB4IDE2cHggcmdiKDAgMCAwIC8gMjAlKTtib3JkZXI6MXB4IHNvbGlkICNmZmY7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3otaW5kZXg6Mjt0cmFuc2l0aW9uOi4zc30KICAgIC5jdi1xOWxhZSAuYXJyb3c6aG92ZXJ7YmFja2dyb3VuZDpyZ2IoMCAwIDAgLyAyMCUpO2JvcmRlcjoxcHggc29saWQgI2ZmZn0KICAgIC5jdi1xOWxhZSAuYXJyb3c6Zm9jdXN7YmFja2dyb3VuZDpyZ2IoMjU1IDI1NSAyNTUgLyAyMCUpfQogICAgLmN2LXE5bGFlIC5hcnJvdyBzdmd7d2lkdGg6MjBweDtoZWlnaHQ6MjBweH0KICAgIC5jdi1xOWxhZSAuYXJyb3cubGVmdHtsZWZ0OjEwcHh9CiAgICAuY3YtcTlsYWUgLmFycm93LnJpZ2h0e3JpZ2h0OjEwcHh9CgogICAgQG1lZGlhIChtYXgtd2lkdGg6NzY4cHgpewogICAgICAvKiBFbiBt83ZpbCwgZWwgY29udGVuZWRvciBvY3VwYSB0b2RvIGVsIGFuY2hvICovCiAgICAgIC5jdi1xOWxhZSAuc2VjdGlvbnttYXgtd2lkdGg6MTAwJX0KICAgICAgLmN2LXE5bGFlIC5zZWN0aW9uLXRpdGxle2ZvbnQtc2l6ZToyN3B4O3BhZGRpbmc6MnB4IDhweDt0cmFuc2Zvcm06cm90YXRlWCg1ZGVnKSByb3RhdGVZKC0yNWRlZykgc2tld1goMGRlZyl9CiAgICAgIC5jdi1xOWxhZSAuY2Fyb3VzZWx7LS1wZWVrOjEyJX0KICAgICAgLyogMiB0YXJqZXRhcyBjb21wbGV0YXMgKyB1biBwZWVrIGRlIGxhIDOqICovCiAgICAgIC5jdi1xOWxhZSAuY2FyZHt3aWR0aDpjYWxjKCgxMDAlIC0gNCp2YXIoLS1nYXApIC0gdmFyKC0tcGVlaykpLzEpfQogICAgICAuY3YtcTlsYWUgLmFycm93e2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fQogICAgICAuY3YtcTlsYWUgLnRyYWNre292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmhpZGRlbjtwYWRkaW5nLXJpZ2h0OnZhcigtLXBlZWspfQogICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJjdi1xOWxhZSI+CiAgICAgIDxzZWN0aW9uIGNsYXNzPSJzZWN0aW9uIiBhcmlhLWxhYmVsPSJDYXJydXNlbCBkZSB27WRlb3MgKFNob3J0cykiPgogICAgICAgIDxkaXYgY2xhc3M9ImJnLXNlY3Rpb24tdGl0bGUiPgogICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Mb3MgJ3Nob3J0cycgZGUgT0tESUFSSU88L2gyPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImZuZC1saW5lYSI+PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFyIiByb2xlPSJyZWdpb24iIGFyaWEtbGFiZWw9Ikxpc3RhZG8gZGUgdu1kZW9zIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IGxlZnQiIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iQW50ZXJpb3IiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0xNSA2bC02IDYgNiA2IiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFycm93IHJpZ2h0IiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IlNpZ3VpZW50ZSI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTkgMThsNi02LTYtNiIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJvdXNlbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYWNrIiByb2xlPSJsaXN0Ij4KCiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy95eE92LWMxYi10NCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9Inl4T3YtYzFiLXQ0IiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkveXhPdi1jMWItdDQvaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDEiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvTHdLT3FXMnJ2UDgiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJMd0tPcVcycnZQOCIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL0x3S09xVzJydlA4L2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCAyIiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzL0cwZTRWNXpFVWlrIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0iRzBlNFY1ekVVaWsiIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9HMGU0VjV6RVVpay9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgMyIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgPGEgY2xhc3M9ImNhcmQiIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Nob3J0cy9Ma2NmRV9iOVFROCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEteXQtaWQ9IkxrY2ZFX2I5UVE4IiB0aXRsZT0iVmVyIHNob3J0Ij4KICAgICAgICAgIDxpbWcgY2xhc3M9InRodW1iIiBzcmM9Imh0dHBzOi8vaS55dGltZy5jb20vdmkvTGtjZkVfYjlRUTgvaHFkZWZhdWx0LmpwZyIgYWx0PSJZb3VUdWJlIFNob3J0IDQiIGxvYWRpbmc9ImxhenkiIGRlY29kaW5nPSJhc3luYyI+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGNsYXNzPSJjYXJkIiBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9zaG9ydHMvYWVFMDg2Z1ZoejQiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIiBkYXRhLXl0LWlkPSJhZUUwODZnVmh6NCIgdGl0bGU9IlZlciBzaG9ydCI+CiAgICAgICAgICA8aW1nIGNsYXNzPSJ0aHVtYiIgc3JjPSJodHRwczovL2kueXRpbWcuY29tL3ZpL2FlRTA4NmdWaHo0L2hxZGVmYXVsdC5qcGciIGFsdD0iWW91VHViZSBTaG9ydCA1IiBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiPgogICAgICAgIDwvYT4KICAgICAgICA8YSBjbGFzcz0iY2FyZCIgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vc2hvcnRzL1VsZm42MVBKcVdrIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS15dC1pZD0iVWxmbjYxUEpxV2siIHRpdGxlPSJWZXIgc2hvcnQiPgogICAgICAgICAgPGltZyBjbGFzcz0idGh1bWIiIHNyYz0iaHR0cHM6Ly9pLnl0aW1nLmNvbS92aS9VbGZuNjFQSnFXay9ocWRlZmF1bHQuanBnIiBhbHQ9IllvdVR1YmUgU2hvcnQgNiIgbG9hZGluZz0ibGF6eSIgZGVjb2Rpbmc9ImFzeW5jIj4KICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvc2VjdGlvbj4KICAgIDwvZGl2PgogICAgPHNjcmlwdD4KICAgIChmdW5jdGlvbigpewogICAgICB2YXIgcm9vdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jdi1xOWxhZScpOwogICAgICBpZiAoIXJvb3QpIHJldHVybjsKICAgICAgdmFyIHRyYWNrID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2snKTsKICAgICAgaWYgKCF0cmFjaykgcmV0dXJuOwoKICAgICAgdmFyIGFycm93cyA9IHJvb3QucXVlcnlTZWxlY3RvckFsbCgnLmFycm93Jyk7CiAgICAgIHZhciBHQVAgPSAxNjsKCiAgICAgIGZ1bmN0aW9uIGdldENhcmRXaWR0aCgpewogICAgICAgIHZhciBmaXJzdCA9IHJvb3QucXVlcnlTZWxlY3RvcignLmNhcmQnKTsKICAgICAgICBpZiAoIWZpcnN0KSByZXR1cm4gMDsKICAgICAgICByZXR1cm4gZmlyc3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIGdldENhcmRzUGVyUGFnZSgpewogICAgICAgIHJldHVybiAod2luZG93LmlubmVyV2lkdGggPD0gNzY4KSA/IDIgOiA0OwogICAgICB9CgogICAgICBhcnJvd3MuZm9yRWFjaChmdW5jdGlvbihidG4pewogICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpewogICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgdmFyIGRpciA9IHRoaXMuY2xhc3NMaXN0LmNvbnRhaW5zKCdsZWZ0JykgPyAtMSA6IDE7CiAgICAgICAgICB2YXIgY2FyZFcgPSBnZXRDYXJkV2lkdGgoKTsKICAgICAgICAgIGlmICghY2FyZFcpIHJldHVybjsKICAgICAgICAgIHZhciBzdGVwID0gKGNhcmRXICsgR0FQKSAqIGdldENhcmRzUGVyUGFnZSgpICogZGlyOwogICAgICAgICAgdHJhY2suc2Nyb2xsQnkoeyBsZWZ0OiBzdGVwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7CiAgICAgICAgfSk7CiAgICAgIH0pOwoKICAgICAgLy8gRmFkZS1pbiBhbCBlbnRyYXIgZW4gdmlld3BvcnQKICAgICAgdmFyIGlvID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGVudHJpZXMpewogICAgICAgIGVudHJpZXMuZm9yRWFjaChmdW5jdGlvbihlbil7IGlmKGVuLmlzSW50ZXJzZWN0aW5nKXsgZW4udGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2lzLWluJyk7IH0gfSk7CiAgICAgIH0sIHsgcm9vdDogdHJhY2ssIHRocmVzaG9sZDogMC4xIH0pOwogICAgICByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jYXJkJykuZm9yRWFjaChmdW5jdGlvbihjKXsgaW8ub2JzZXJ2ZShjKTsgfSk7CgogICAgICAvLyBDbGljayBwZXJzaXN0ZW50ZSAoc2luIHRlYXNlciBwb3IgaG92ZXIpCiAgICAgIGZ1bmN0aW9uIG1ha2VFbWJlZFVybChpZCwgb3B0cyl7CiAgICAgICAgdmFyIHFzID0gWwogICAgICAgICAgJ2F1dG9wbGF5PScgKyAob3B0cyAmJiBvcHRzLmF1dG9wbGF5PyAnMSc6JzAnKSwKICAgICAgICAgICdwbGF5c2lubGluZT0xJywnZnM9MScsJ2l2X2xvYWRfcG9saWN5PTMnLCdzaG93aW5mbz0xJywncmVsPTAnLCdjY19sb2FkX3BvbGljeT0wJywnc3RhcnQ9MCcsCiAgICAgICAgICAnbXV0ZT0nICsgKG9wdHMgJiYgb3B0cy5tdXRlPyAnMSc6JzAnKSwKICAgICAgICAgIChvcHRzICYmIG9wdHMuY29udHJvbHM9PT0wPyAnY29udHJvbHM9MCc6J2NvbnRyb2xzPTEnKSwKICAgICAgICAgICdtb2Rlc3RicmFuZGluZz0xJywnZW5hYmxlanNhcGk9MScKICAgICAgICBdLmpvaW4oJyYnKTsKICAgICAgICByZXR1cm4gJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLycgKyBpZCArICc/JyArIHFzOwogICAgICB9CgogICAgICAvLyBDYXJnYXIgQVBJIGRlIFlvdVR1YmUgYmFqbyBkZW1hbmRhCiAgICAgIHZhciB5dEFwaVByb21pc2UgPSBudWxsOwogICAgICBmdW5jdGlvbiBlbnN1cmVZVEFwaSgpewogICAgICAgIGlmICh3aW5kb3cuWVQgJiYgd2luZG93LllULlBsYXllcikgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOwogICAgICAgIGlmICh5dEFwaVByb21pc2UpIHJldHVybiB5dEFwaVByb21pc2U7CiAgICAgICAgeXRBcGlQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSl7CiAgICAgICAgICB2YXIgcHJldkNiID0gd2luZG93Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5OwogICAgICAgICAgd2luZG93Lm9uWW91VHViZUlmcmFtZUFQSVJlYWR5ID0gZnVuY3Rpb24oKXsgaWYgKHR5cGVvZiBwcmV2Q2I9PT0nZnVuY3Rpb24nKSB7IHRyeXsgcHJldkNiKCk7IH1jYXRjaChfKXt9IH0gcmVzb2x2ZSgpOyB9OwogICAgICAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2lmcmFtZV9hcGknOwogICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4geXRBcGlQcm9taXNlOwogICAgICB9CgogICAgICAvLyBJbnN0YW5jaWFyIHBsYXllciBuYXRpdm8gZW4gdGFyamV0YXMgdmlzaWJsZXMgcGFyYSBxdWUgZWwgaWNvbm8gZGUgcGxheSBhcGFyZXpjYSBkZXNkZSBlbCBpbmljaW8KICAgICAgZnVuY3Rpb24gaW5pdFBsYXllckZvckNhcmQoY2FyZCl7CiAgICAgICAgaWYoIWNhcmQgfHwgY2FyZC5feXRQbGF5ZXIgfHwgY2FyZC5feXRJbml0KSByZXR1cm47CiAgICAgICAgdmFyIGlkID0gY2FyZC5nZXRBdHRyaWJ1dGUoJ2RhdGEteXQtaWQnKTsKICAgICAgICBpZighaWQpIHJldHVybjsKICAgICAgICBjYXJkLl95dEluaXQgPSB0cnVlOwogICAgICAgIHZhciBwb3N0ZXIgPSBjYXJkLnF1ZXJ5U2VsZWN0b3IoJ2ltZy50aHVtYicpOwogICAgICAgIHZhciBob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBob2xkZXIuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaG9sZGVyLnN0eWxlLmluc2V0PScwJzsgaG9sZGVyLnN0eWxlLndpZHRoPScxMDAlJzsgaG9sZGVyLnN0eWxlLmhlaWdodD0nMTAwJSc7IGhvbGRlci5zdHlsZS5iYWNrZ3JvdW5kPScjMDAwJzsKICAgICAgICBpZihwb3N0ZXIpeyBjYXJkLmluc2VydEJlZm9yZShob2xkZXIsIHBvc3Rlcik7IH0gZWxzZSB7IGNhcmQuYXBwZW5kQ2hpbGQoaG9sZGVyKTsgfQogICAgICAgIC8vIE9jdWx0YW1vcyBlbCBw83N0ZXIgY3VhbnRvIGFudGVzIHBhcmEgZGVqYXIgdmVyIGVsIG92ZXJsYXkgbmF0aXZvCiAgICAgICAgaWYocG9zdGVyKXsgcG9zdGVyLnN0eWxlLnRyYW5zaXRpb24gPSBwb3N0ZXIuc3R5bGUudHJhbnNpdGlvbiB8fCAnb3BhY2l0eSAuMTVzIGVhc2UnOyBwb3N0ZXIuc3R5bGUub3BhY2l0eT0nMCc7IHBvc3Rlci5zdHlsZS5wb2ludGVyRXZlbnRzPSdub25lJzsgfQogICAgICAgIGVuc3VyZVlUQXBpKCkudGhlbihmdW5jdGlvbigpewogICAgICAgICAgdmFyIHBsYXllciA9IG5ldyBZVC5QbGF5ZXIoaG9sZGVyLCB7CiAgICAgICAgICAgIHZpZGVvSWQ6IGlkLAogICAgICAgICAgICBwbGF5ZXJWYXJzOiB7IGF1dG9wbGF5OjAsIGNvbnRyb2xzOjEsIHJlbDowLCBwbGF5c2lubGluZToxLCBpdl9sb2FkX3BvbGljeTozLCBtb2Rlc3RicmFuZGluZzoxLCBmczoxLCBvcmlnaW46IChsb2NhdGlvbiAmJiBsb2NhdGlvbi5vcmlnaW4pID8gbG9jYXRpb24ub3JpZ2luIDogdW5kZWZpbmVkIH0sCiAgICAgICAgICAgIGV2ZW50czogewogICAgICAgICAgICAgIG9uUmVhZHk6IGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICBpZihwb3N0ZXIpeyBwb3N0ZXIuc3R5bGUub3BhY2l0eT0nMCc7IHBvc3Rlci5zdHlsZS5wb2ludGVyRXZlbnRzPSdub25lJzsgfQogICAgICAgICAgICAgICAgLy8gRm9yemFyIHBlcm1pc29zIGRlIHBhbnRhbGxhIGNvbXBsZXRhIGVuIGVsIGlmcmFtZSBnZW5lcmFkbwogICAgICAgICAgICAgICAgdHJ5ewogICAgICAgICAgICAgICAgICB2YXIgaWZyID0gcGxheWVyLmdldElmcmFtZSAmJiBwbGF5ZXIuZ2V0SWZyYW1lKCk7CiAgICAgICAgICAgICAgICAgIGlmIChpZnIpewogICAgICAgICAgICAgICAgICAgIGlmci5zZXRBdHRyaWJ1dGUoJ2FsbG93ZnVsbHNjcmVlbicsJycpOwogICAgICAgICAgICAgICAgICAgIHZhciBjdXIgPSBpZnIuZ2V0QXR0cmlidXRlKCdhbGxvdycpIHx8ICcnOwogICAgICAgICAgICAgICAgICAgIGlmci5zZXRBdHRyaWJ1dGUoJ2FsbG93JywgKGN1ciA/IGN1ciArICc7ICcgOiAnJykgKyAnZnVsbHNjcmVlbicpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9Y2F0Y2goXyl7IH0KICAgICAgICAgICAgICAgIGNhcmQuX3l0UGxheWVyID0gcGxheWVyOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKXsKICAgICAgICAgIHRyeXsgY2FyZC5yZW1vdmVDaGlsZChob2xkZXIpOyB9Y2F0Y2goXyl7IH0KICAgICAgICAgIC8vIFNpIGZhbGxhIGxhIEFQSSwgZGVqYW1vcyBlbCBw83N0ZXIgaGFzdGEgaW50ZXJhY2Np824KICAgICAgICAgIGlmKHBvc3Rlcil7IHBvc3Rlci5zdHlsZS5vcGFjaXR5PScnOyBwb3N0ZXIuc3R5bGUucG9pbnRlckV2ZW50cz0nJzsgfQogICAgICAgICAgY2FyZC5feXRJbml0ID0gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgIH0KCiAgICAgIC8vIEluaWNpYWxpemFyIGF1dG9t4XRpY2FtZW50ZSBsb3MgcGxheWVycyBkZSBsYXMgdGFyamV0YXMgdmlzaWJsZXMgYWwgY2FyZ2FyCiAgICAgIHZhciBpbml0SU8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZW50cmllcyl7CiAgICAgICAgZW50cmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVuKXsgaWYoZW4uaXNJbnRlcnNlY3RpbmcpeyBpbml0UGxheWVyRm9yQ2FyZChlbi50YXJnZXQpOyB9IH0pOwogICAgICB9LCB7IHJvb3Q6IG51bGwsIHRocmVzaG9sZDogMC4yNSB9KTsKICAgICAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuY2FyZCcpLmZvckVhY2goZnVuY3Rpb24oYyl7IGluaXRJTy5vYnNlcnZlKGMpOyB9KTsKCiAgICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKXsKICAgICAgICB2YXIgYSA9IGUudGFyZ2V0LmNsb3Nlc3QoJ2EuY2FyZFtkYXRhLXl0LWlkXScpOwogICAgICAgIGlmKCFhIHx8ICFyb290LmNvbnRhaW5zKGEpKSByZXR1cm47CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIHZhciBwb3N0ZXIgPSBhLnF1ZXJ5U2VsZWN0b3IoJ2ltZy50aHVtYicpOwogICAgICAgIC8vIHNpbiBvdmVybGF5cyBwZXJzb25hbGl6YWRvcwoKICAgICAgICAvLyBUb2dnbGUgc2kgeWEgaGF5IHBsYXllcgogICAgICAgIGlmIChhLl95dFBsYXllcil7CiAgICAgICAgICB2YXIgcCA9IGEuX3l0UGxheWVyOwogICAgICAgICAgaWYgKGEuY2xhc3NMaXN0LmNvbnRhaW5zKCdpcy1wYXVzZWQnKSl7CiAgICAgICAgICAgIHRyeXsgcC51bk11dGUoKTsgcC5zZXRWb2x1bWUoMTAwKTsgcC5wbGF5VmlkZW8oKTsgfWNhdGNoKF8peyB9CiAgICAgICAgICAgIGEuY2xhc3NMaXN0LnJlbW92ZSgnaXMtcGF1c2VkJyk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0cnl7IHAucGF1c2VWaWRlbygpOyB9Y2F0Y2goXyl7IH0KICAgICAgICAgICAgYS5jbGFzc0xpc3QuYWRkKCdpcy1wYXVzZWQnKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgc3RvcFRlYXNlcihhKTsKICAgICAgICB2YXIgaWQgPSBhLmdldEF0dHJpYnV0ZSgnZGF0YS15dC1pZCcpOwogICAgICAgIHZhciBob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBob2xkZXIuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaG9sZGVyLnN0eWxlLmluc2V0PScwJzsgaG9sZGVyLnN0eWxlLndpZHRoPScxMDAlJzsgaG9sZGVyLnN0eWxlLmhlaWdodD0nMTAwJSc7IGhvbGRlci5zdHlsZS5iYWNrZ3JvdW5kPScjMDAwJzsKICAgICAgICBpZihwb3N0ZXIpeyBhLmluc2VydEJlZm9yZShob2xkZXIsIHBvc3Rlcik7IH0gZWxzZSB7IGEuYXBwZW5kQ2hpbGQoaG9sZGVyKTsgfQoKICAgICAgICBlbnN1cmVZVEFwaSgpLnRoZW4oZnVuY3Rpb24oKXsKICAgICAgICAgIHZhciBwbGF5ZXIgPSBuZXcgWVQuUGxheWVyKGhvbGRlciwgewogICAgICAgICAgICB2aWRlb0lkOiBpZCwKICAgICAgICAgICAgcGxheWVyVmFyczogeyBhdXRvcGxheToxLCBjb250cm9sczoxLCByZWw6MCwgcGxheXNpbmxpbmU6MSwgaXZfbG9hZF9wb2xpY3k6MywgbW9kZXN0YnJhbmRpbmc6MSwgZnM6MSwgb3JpZ2luOiAobG9jYXRpb24gJiYgbG9jYXRpb24ub3JpZ2luKSA/IGxvY2F0aW9uLm9yaWdpbiA6IHVuZGVmaW5lZCB9LAogICAgICAgICAgICBldmVudHM6IHsKICAgICAgICAgICAgICBvblJlYWR5OiBmdW5jdGlvbihldil7CiAgICAgICAgICAgICAgICB0cnl7IGV2LnRhcmdldC51bk11dGUoKTsgZXYudGFyZ2V0LnNldFZvbHVtZSgxMDApOyBldi50YXJnZXQucGxheVZpZGVvKCk7IH1jYXRjaChfKXt9CiAgICAgICAgICAgICAgICAvLyBGb3J6YXIgZnVsbHNjcmVlbiBkaXNwb25pYmxlIGVuIGlmcmFtZSBJRnJhbWUgQVBJCiAgICAgICAgICAgICAgICB0cnl7CiAgICAgICAgICAgICAgICAgIHZhciBpZnIgPSBwbGF5ZXIuZ2V0SWZyYW1lICYmIHBsYXllci5nZXRJZnJhbWUoKTsKICAgICAgICAgICAgICAgICAgaWYgKGlmcil7CiAgICAgICAgICAgICAgICAgICAgaWZyLnNldEF0dHJpYnV0ZSgnYWxsb3dmdWxsc2NyZWVuJywnJyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGN1ciA9IGlmci5nZXRBdHRyaWJ1dGUoJ2FsbG93JykgfHwgJyc7CiAgICAgICAgICAgICAgICAgICAgaWZyLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAoY3VyID8gY3VyICsgJzsgJyA6ICcnKSArICdmdWxsc2NyZWVuJyk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH1jYXRjaChfKXsgfQogICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICBpZihwb3N0ZXIpeyBwb3N0ZXIuc3R5bGUudHJhbnNpdGlvbiA9IHBvc3Rlci5zdHlsZS50cmFuc2l0aW9uIHx8ICdvcGFjaXR5IC4xNXMgZWFzZSc7IHBvc3Rlci5zdHlsZS5vcGFjaXR5PScwJzsgfQogICAgICAgICAgICAgICAgICBhLmNsYXNzTGlzdC5hZGQoJ2lzLXBsYXlpbmcnKTsKICAgICAgICAgICAgICAgICAgYS5feXRQbGF5ZXIgPSBwbGF5ZXI7CiAgICAgICAgICAgICAgICB9LCAxMDApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKXsKICAgICAgICAgIC8vIEZhbGxiYWNrOiBpZnJhbWUgc2ltcGxlCiAgICAgICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CiAgICAgICAgICBpZnJhbWUuc3JjID0gbWFrZUVtYmVkVXJsKGlkLCB7YXV0b3BsYXk6dHJ1ZSwgbXV0ZTpmYWxzZX0pOwogICAgICAgICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAnYXV0b3BsYXk7IGVuY3J5cHRlZC1tZWRpYTsgcGljdHVyZS1pbi1waWN0dXJlJyk7CiAgICAgICAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCdhbGxvd2Z1bGxzY3JlZW4nLCAnJyk7CiAgICAgICAgICBpZnJhbWUuc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzsgaWZyYW1lLnN0eWxlLmluc2V0PScwJzsgaWZyYW1lLnN0eWxlLndpZHRoPScxMDAlJzsgaWZyYW1lLnN0eWxlLmhlaWdodD0nMTAwJSc7IGlmcmFtZS5zdHlsZS5ib3JkZXI9JzAnOyBpZnJhbWUuc3R5bGUuZGlzcGxheT0nYmxvY2snOyBpZnJhbWUuc3R5bGUuYmFja2dyb3VuZD0nIzAwMCc7CiAgICAgICAgICBob2xkZXIucmVwbGFjZVdpdGgoaWZyYW1lKTsKICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgYS5jbGFzc0xpc3QuYWRkKCdpcy1wbGF5aW5nJyk7IH0sIDE1MCk7CiAgICAgICAgfSk7CiAgICAgIH0pOwoKICAgICAgCiAgICB9KSgpOwogICAgPC9zY3JpcHQ+
    • Detenidos dos jugadores de la cantera del Real Mallorca por grabar a una menor manteniendo sexo con uno de ellos
        • OkBaleares
        • OkBaleares

      Detenidos dos jugadores de la cantera del Mallorca por grabar a una menor manteniendo sexo

      • Julio Bastida
      • 2026-08-29 09:10
    • Detenido un conductor de un VTC en Guipúzcoa por retener y agredir sexualmente a una clienta
        • Sucesos
        • Sucesos

      Detenido un conductor de un VTC en Guipúzcoa por retener y agredir sexualmente a una clienta

      • Diana Arias
      • 2026-08-29 11:07
    • Mohamed Alami Susi: Marruecos podría estar utilizando la migración para presionar a España
        • España
        • España

      "Marruecos podría estar utilizando la migración para presionar a España"

      He entrevistado a Mohamed Alami Susi, presidente de la Asociación Amigos del Pueblo Marroquí (ITRAN), para analizar la crisis de Ceuta. Alami considera que Marruecos podría estar utilizando la presión migratoria como instrumento frente a España. Defiende que la prioridad debe ser el retorno ordenado de los menores.
      • María Zabay
      • 2026-08-29 05:45
    • Sánchez, esa inigualable vida de superlujo
    • A propósito de ZP: ¿Qué hacer con los ex?
    • Marlaska & Robles
    • La Policía Local blinda Playa de Palma y anuncia más contundencia tras los ataques a sus agentes: No habrá marcha atrás
        • OkBaleares
        • OkBaleares

      La Policía Local blinda Playa de Palma y anuncia más contundencia tras los ataques a sus agentes: "No habrá marcha atrás"

      La Policía Local de Palma no da marcha atrás en su ofensiva contra la venta ambulante ilegal en Playa de Palma. Tras los graves incidentes registrados durante una intervención policial, el cuerpo municipal ha decidido mantener y reforzar su presencia en una de las zonas turísticas más conflictivas de la capital balear.
      • Julio Bastida
      • 2026-08-29 05:45
    • Detenido un peligroso acosador de Palma por intentar secuestrar a una menor e introducirla en una furgoneta
        • OkBaleares
        • OkBaleares

      Detenido un peligroso acosador de Palma por intentar secuestrar a una menor 

      • Julio Bastida
      • 2026-08-29 11:10
    • PHN0eWxlPgogICNjaW50aWxsby1lY2kgewogICAgZGlzcGxheTogZmxleDsKICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBmb250LWZhbWlseTogJ1JvYm90byBDb25kZW5zZWQnOwogICAgY29sb3I6ICMwMDA7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHBhZGRpbmc6IDhweDsKfQouZWNpLXRpdHVsbyB7CiAgICBmb250LXNpemU6IDI0cHg7Cn0KLmVjaS1sb2dvIHsKfQouZWNpLWxvZ28gcCB7CiAgZm9udC1zaXplOiAxMHB4Owp9Ci5lY2ktbG9nbyBpbWcgewoKICAgIHdpZHRoOiAxMjBweDsKICAgIGhlaWdodDogMzBweDsKICAgIG9iamVjdC1maXQ6IGNvdmVyOwp9Cgo8L3N0eWxlPgo8YSBocmVmPSJodHRwczovL3d3dy5lbGNvcnRlaW5nbGVzLmVzLyIgdGFyZ2V0PSJfYmxhbmsiIGlkPSJjaW50aWxsby1lY2kiPgogIDxkaXYgY2xhc3M9ImVjaS10aXR1bG8iPgogICAgSW5zcGlyYWNp824geSB0ZW5kZW5jaWFzCiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iZWNpLWxvZ28iPgogICAgPHA+RW4gY29sYWJvcmFjafNuIGNvbjwvcD4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vaW1nLzIwMjYvMDgvMjcvbG9nby1lbC1jb3J0ZS1pbmdsZXMtbmVncm8uanBnIiBhbHQ9IkVsIENvcnRlIEluZ2zpcyI+CiAgPC9kaXY+CjwvYT4K
      PHN0eWxlPgogICNjaW50aWxsby1lY2kgewogICAgZGlzcGxheTogZmxleDsKICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBmb250LWZhbWlseTogJ1JvYm90byBDb25kZW5zZWQnOwogICAgY29sb3I6ICMwMDA7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHBhZGRpbmc6IDhweDsKfQouZWNpLXRpdHVsbyB7CiAgICBmb250LXNpemU6IDI0cHg7Cn0KLmVjaS1sb2dvIHsKfQouZWNpLWxvZ28gcCB7CiAgZm9udC1zaXplOiAxMHB4Owp9Ci5lY2ktbG9nbyBpbWcgewoKICAgIHdpZHRoOiAxMjBweDsKICAgIGhlaWdodDogMzBweDsKICAgIG9iamVjdC1maXQ6IGNvdmVyOwp9Cgo8L3N0eWxlPgo8YSBocmVmPSJodHRwczovL3d3dy5lbGNvcnRlaW5nbGVzLmVzLyIgdGFyZ2V0PSJfYmxhbmsiIGlkPSJjaW50aWxsby1lY2kiPgogIDxkaXYgY2xhc3M9ImVjaS10aXR1bG8iPgogICAgSW5zcGlyYWNp824geSB0ZW5kZW5jaWFzCiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iZWNpLWxvZ28iPgogICAgPHA+RW4gY29sYWJvcmFjafNuIGNvbjwvcD4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9va2RpYXJpby5jb20vaW1nLzIwMjYvMDgvMjcvbG9nby1lbC1jb3J0ZS1pbmdsZXMtbmVncm8uanBnIiBhbHQ9IkVsIENvcnRlIEluZ2zpcyI+CiAgPC9kaXY+CjwvYT4K
    • Un conductor argentino borracho irrumpe en un carril bici de Palma, se estrella y desafía a la Policía: «¿No tenéis nada mejor que hacer?»
        • OkBaleares
        • OkBaleares

      Un conductor borracho irrumpe en un carril bici, se estrella y desafía a la Policía: "¿No tenéis nada que hacer?"

      • Julio Bastida
      • 2026-08-29 09:08
    • Forzó una autocaravana, se instaló dentro durante una semana y acabó detenida cuando intentaba cambiar la cerradura
        • OkBaleares
        • OkBaleares

      Forzó una autocaravana, se instaló durante una semana y acabó detenida cuando cambiaba la cerradura

      • Julio Bastida
      • 2026-08-29 08:44
    • si te lo perdiste...

    • Los albañiles coinciden: mezclar cemento con cola blanca es el truco más eficaz para lograr un acabado perfecto
        • Curiosidades
        • Curiosidades

      Los albañiles coinciden: mezclar cemento con cola blanca es el truco más eficaz para lograr un acabado perfecto

      • Pedro Antolinos
      • 2026-08-26 11:11
    • La psicología aclara que las personas que no se tiñen las canas no se están rindiendo, sino que pueden estar prefiriendo la autenticidad por encima de la aprobación
        • Curiosidades
        • Curiosidades

      La psicología aclara que las personas que no se tiñen las canas no se están rindiendo

      • Laura Mesonero
      • 2026-08-29 09:28
    • Los dermatólogos expertos coinciden sobre la crema Nivea de lata azul: Aporta alivio y reduce la tirantez
        • Cool
        • Cool

      Los dermatólogos expertos coinciden sobre la crema Nivea de lata azul: "Aporta alivio y reduce la tirantez"

      Desde su lanzamiento en 1925, la crema Nivea de lata pasó a formar parte de la vida cotidiana de muchas familias. Su fórmula, diseñada para hidratar y proteger la piel, ha estado presente durante generaciones en hogares de todo el mundo, hasta el punto de convertirse en un icono cultural. El secreto de su éxito se encuentra en su característica textura protectora y en una fórmula que combina ingredientes cuidadosamente seleccionados para proporcionar una gran hidratación. 
      • Janire Manzanas
      • 2026-08-29 13:00
    • Sale a la luz la verdad de la relación entre Kim Basinger y Robert Redford en 1984: Fue una barrera que tuve que superar
        • Cool
        • Cool

      Sale a la luz la verdad de la relación entre Kim Basinger y Robert Redford en 1984

      • Francisco-Eme
      • 2026-08-29 13:00
    • La reflexión de Oscar Wilde, poeta irlandés, sobre la inteligencia emocional: “Un tonto nunca se repone de un éxito”
        • Curiosidades
        • Curiosidades

      La reflexión de Oscar Wilde sobre la inteligencia emocional: "Un tonto no se repone de un éxito"

      • Janire Manzanas
      • 2026-08-29 11:00
    • Los chefs expertos coinciden: para que las patatas queden buenas no hay que freírlas, lo mejor es hacerlas con 8 ajos, caldo de pollo y pimentón
        • Recetas de cocina
        • Recetas de cocina

      para que las patatas queden buenas no hay que freírlas, lo mejor es hacerlas "con 8 ajos, caldo de pollo y pimentón"

      • Gemma Meca
      • 2026-08-29 16:45
    • Nassim Nicholas Taleb, filósofo y experto financiero (65 años): La única medida del éxito es cuánto tiempo te puedes permitir desperdiciar
        • Curiosidades
        • Curiosidades

      Nassim Nicholas Taleb, filósofo y experto financiero: "La única medida del éxito es cuánto tiempo te puedes permitir desperdiciar"

      • Naiara Philpotts
      • 2026-08-29 17:00
    • Qué quiere decir el proverbio campesino: Entre col y col, lechuga
        • Curiosidades
        • Curiosidades

      Qué quiere decir el proverbio campesino: "Entre col y col, lechuga"

      • Ana López Vera
      • 2026-08-29 18:00
    • Karlos Arguiñano recuerda los duros momentos que vivió al perder a sus dos primeros hijos: Mi mujer lloraba y lloraba
        • Cool
        • Cool

      Karlos Arguiñano recuerda los duros momentos que vivió al perder a sus dos primeros hijos: "Mi mujer lloraba y lloraba"

      • Fernando Larruscain
      • 2026-08-29 18:30
    • Menos dolor y mayor precisión con la cirugía torácica uniportal de la Dra. Arango en Juaneda Hospitales
    • Los OK y KO del sábado, 29 de agosto de 2026
    • Diario Madridista

    • Sergio Martínez elige al Real Madrid
        • Real Madrid
        • Real Madrid

      Sergio Martínez elige al Real Madrid

      El Real Madrid ha cerrado el fichaje de Sergio Martínez, una de las grandes promesas del Racing y del fútbol español. El centrocampista, nacido en 2007, firma con el conjunto blanco hasta 2030 después de que la entidad madridista haya acordado pagar tres millones de euros por su incorporación. En principio, Sergio Martínez tendrá ficha y dinámica de competición con el Castilla, pero el plan diseñado para él va mucho más allá: entrenará habitualmente con el primer equipo y estará muy vigilado por José Mourinho. El técnico portugués ha tenido un papel importante para convencer al futbolista de que el Santiago Bernabéu era el mejor lugar para continuar su carrera.
      • Iván Martín
      • 2026-08-29 16:23
    • Mourinho señala al mejor jugador del mundo: Sabemos quién es y sabemos dónde está: aquí
        • Real Madrid
        • Real Madrid

      Mourinho señala al mejor jugador del mundo: "Sabemos quién es y sabemos dónde está, aquí"

      • Iván Martín
      • 2026-08-29 12:21
    • Convocatoria del Real Madrid contra el Málaga: Mourinho mantiene siete bajas
        • Real Madrid
        • Real Madrid

      Mourinho mantiene siete bajas ante el Málaga

      • Iván Martín
      • 2026-08-29 14:09
    • Alineación del Real Madrid contra el Málaga: Diomande apunta a titular
        • Real Madrid
        • Real Madrid

      Diomande apunta a titular

      • Iván Martín
      • 2026-08-29 18:00
    • Deportes

    • Marc Márquez reina en la sprint con Álex segundo y recorta puntos al líder
        • Deportes
        • Deportes

      Marc Márquez reina en la sprint con Álex segundo y recorta puntos al líder

      • Miguel Zorío
      • 2026-08-29 15:32
    • Paredes rabia contra España por su sanción en la final del Mundial: Gavi me dio un golpe en el pecho
        • Deportes
        • Deportes

      Paredes rabia contra España por su sanción en la final del Mundial: "Gavi me dio un golpe en el pecho"

      • Pablo Villanueva
      • 2026-08-29 12:46
    • Jornada 3 de la Liga: resumen de todos los partidos
        • Deportes
        • Deportes

      Boyé prolonga el glorioso inicio del Alavés que duerme como líder

      Con la primera jornada aún sin terminar, ya ha finalizado la jornada 2 de esta Liga del caos. Quedan por disputarse los aplazados de la inaugural. Para otras fechas quedan los otros cuatro partidos de la primera jornada inaugural. Serán Valencia - Betis (25 de agosto), Real Madrid - Real Sociedad (26), Celta de Vigo - Osasuna (27) y Barcelona - Athletic Club (27). Los cuatro se jugarán después de la segunda jornada.
      • Alejandro Peinado
      • 2026-08-29 19:13
    • El calendario del Betis en su regreso a Champions: estreno con el Lille y final por todo lo alto en el Allianz
        • Deportes
        • Deportes

      El calendario del Betis en champions: estreno con el Lille y final en el Allianz

      • Pablo Duque
      • 2026-08-29 13:53
    • El calendario del Barcelona en la Champions: se estrena con el Feyenoord y se mide al Como de Cesc en la última jornada
        • Deportes
        • Deportes

      El calendario del Barça: se estrena con el Feyenoord y se mide al Como de Cesc 

      • Pablo Duque
      • 2026-08-29 13:34
    • Este es el calendario del Atlético en Champions: inicia contra el Liverpool y finaliza la Fase Liga ante el Fenerbahce
        • Deportes
        • Deportes

      éste es el del Atlético: inicia contra el Liverpool y finaliza ante el Fenerbahce

      • Alejandro Peinado
      • 2026-08-29 13:30
    • Calendario de la Champions League 2026/27: cuándo juega el Villarreal contra PSG y Liverpool
        • Deportes
        • Deportes

      Calendario de la Champions: cuándo juega el Villarreal contra PSG y Liverpool

      • Pablo Duque
      • 2026-08-29 13:27
    • Pipi Estrada ensalza el cariño del Bernabéu a Mourinho y castiga una mala decisión de Laporta
    • Nueve años de la nada a la Champions League: el club rosa que vino del mar Caspio
        • Deportes
        • Deportes

      Nueve años de la nada a la Champions League: el club rosa que vino del mar Caspio

      • Khais Rahmanie
      • 2026-08-29 17:01
    • Rafa Jódar - Kokkinakis: horario y canal de TV para ver en directo gratis y en vivo online el partido del US Open 2026
        • Deportes
        • Deportes

      Rafa Jódar - Kokkinakis: horario y canal de TV para ver en directo el partido del US Open 2026

      • Alberto Sarmiento
      • 2026-08-29 11:16
    • Horario del Sevilla - Atlético de Madrid y canal de televisión para ver en directo y en vivo online el partido de la Liga
        • Deportes
        • Deportes

      Horario del Sevilla - Atlético de Madrid y canal de televisión para verlo en directo

      • Alberto Sarmiento
      • 2026-08-28 21:30
    • economía

    • España perderá el liderazgo mundial del aceite: el sector cree que sólo la intervención del Gobierno evitaría que los italianos compren Deoleo
        • Economía
        • Economía

      España perderá el liderazgo del aceite: sólo la intervención del Gobierno evitaría que los italianos compren Deoleo

      La posibilidad de la venta de Deoleo a la empresa italiana Coricelli ha hecho que fuentes del sector reclamen que el Gobierno intervenga para evitar que la aceitera acabe en manos extranjeras, ya que defienden que "la permanencia de Deoleo en España es clave para mantener el control sobre la comercialización del aceite". 
      • Alicia Bonilla
      • 2026-08-29 05:45
    • Scope incluye a España en la crisis de deuda mundial: gastará un 6% de sus ingresos sólo en intereses
        • Economía
        • Economía

      Scope incluye a España en la crisis de deuda mundial: gastará un 6% de sus ingresos sólo en intereses

      • Benjamín Santamaría
      • 2026-08-29 05:45
    • COOL

    • ¿Quién es Rafael Martínez-Almeida, sobrino del alcalde de Madrid y nuevo tertuliano de
        • Cool
        • Cool

      ¿Quién es Rafael Martínez-Almeida, sobrino del alcalde de Madrid y nuevo tertuliano de 'Espejo Público'?

      • Javi Fernández
      • 2026-08-29 14:41
    • Beatriz Trapote aumenta la tensión en el culebrón entre Belén Esteban y Juls Janeiro : Es momento de que saque el dolor que lleva dentro
        • Cool
        • Cool

      Beatriz Trapote aumenta la tensión en el culebrón entre Belén Esteban y Juls Janeiro

      • Javi Fernández
      • 2026-08-29 11:18
    • Alice Campello no falla a Morata en su regreso a Madrid y le acompaña en su presentación con el Leganés
        • Cool
        • Cool

      Alice Campello no falla a Morata en su regreso a Madrid y le acompaña en su presentación con el Leganés

      Morata ha sorprendido con su cambio de equipo. El futbolista ha dejado Como, el conjunto italiano en el que militaba, para volver a pisar España y fichar por el Leganés. Aunque su carrera deportiva vuelva a cambiar de rumbo, hay algo que permanece: Alice Campello. En la presentación del nuevo jugador del club, su mujer estuvo presente junto a sus hijos para mostrarle su apoyo en esta etapa.
      • Javi Fernández
      • 2026-08-29 13:34
    • Una experta sobre el auge de las segundas residencias en España: El teletrabajo ha cambiado el mercado
        • Cool
        • Cool

      Una experta sobre el auge de las segundas residencias: "El teletrabajo cambia el mercado"

      • Rocío Álvarez
      • 2026-08-29 09:31
    • El padre de Iñaki Urdangarin, sobre su relación con la infanta Cristina: Esto es muy complicado
        • Cool
        • Cool

      El padre de Iñaki Urdangarin, sobre su relación con la infanta Cristina: "Esto es muy complicado"

      • Daniel Marín
      • 2026-08-29 19:00
    • Happy FM

    • Una conocida presentadora de Antena 3 saca a la luz la oferta que recibió para presentar
        • HappyFM
        • HappyFM

      Una presentadora de Antena 3 saca a la luz la oferta que recibió para presentar 'Pasapalabra'

      • Idania Monzón
      • 2026-08-29 14:07
    • Aitana Sánchez-Gijón (57 años) comparte su plan de alimentación: Hago ayuno intermitente y lo rompo con...
        • HappyFM
        • HappyFM

      Aitana Sánchez-Gijón comparte su plan de alimentación: "Hago ayuno intermitente y lo rompo con..."

      • Idania Monzón
      • 2026-08-29 13:04
    • Qué fue de Eugenio Siller, el actor protagonista de
        • HappyFM
        • HappyFM

      Qué fue de Eugenio Siller, el actor protagonista de 'Al diablo con los guapos'

      • Idania Monzón
      • 2026-08-29 11:59
    • Un comensal de
        • HappyFM
        • HappyFM

      Un comensal de 'First Dates': "No me quiero imaginar cómo se tiene que mover en la cama"

      • Idania Monzón
      • 2026-08-28 19:00
    • Bertín Osborne (71 años) se sincera: Como igual que los perros, una vez al día
        • HappyFM
        • HappyFM

      Bertín Osborne (71 años) se sincera: "Como igual que los perros, una vez al día"

      • Nacho Molina
      • 2026-08-28 18:36
    • La reflexión de un tiktoker sobre la caída de los influencers: Se están riendo de ti
        • HappyFM
        • HappyFM

      La reflexión de un tiktoker sobre la caída de los influencers: "Se están riendo de ti"

      • Nacho Molina
      • 2026-08-28 17:33
    • Okmotor

    • La DGT lo confirma: estas señales de tráfico son muy distintas pero pocos saben diferenciarlas
        • Motor
        • Motor

      La DGT lo confirma: estas señales de tráfico son muy distintas pero pocos saben diferenciarlas

      • Janire Manzanas
      • 2026-08-28 11:07
    • Pocos lo saben y muchos pican: el truco de los mecánicos para que pagues más en el taller
        • Motor
        • Motor

      Pocos lo saben y muchos pican: el truco de los mecánicos para que pagues más en el taller

      • Janire Manzanas
      • 2026-08-28 11:05
    • Los mecánicos expertos coinciden: éste es el significado del punto rojo en los neumáticos del coche
        • Motor
        • Motor

      Los mecánicos expertos coinciden: éste es el significado del punto rojo en los neumáticos del coche

      • Janire Manzanas
      • 2026-08-28 11:00
    • OKGreen

    • Bulgaria levanta a la desesperada una presa en el Danubio para que su central nuclear siga funcionando
        • OKGREEN
        • OKGREEN

      Bulgaria levanta a la desesperada una presa en el Danubio para que su central nuclear siga funcionando

      La grave sequía que asfixia a Europa Central ha puesto contra las cuerdas a la única central nuclear de Bulgaria. Para evitar el apagón de sus reactores, el país levanta a marchas forzadas un dique de entre 250 y 300 metros sobre el cauce del Danubio. El objetivo es garantizar el agua necesaria para refrigerar la planta de Kozloduy, según confirmó la ministra de Energía, Iva Petrova, en la televisión pública BNT. Las autoridades calculan que las obras se prolongarán hasta 15 días.
      • Antonio Quilis
      • 2026-08-29 05:00
    • ¿Y si la naturaleza tuviera derechos? Nuevos avances en la protección legal de animales y ecosistemas
        • OKGREEN
        • OKGREEN

      ¿Y si la naturaleza tuviera derechos? Nuevos avances en la protección legal de animales y ecosistemas

      • Daniel Jiménez
      • 2026-08-29 05:30
    • Cámaras aéreas captan desde el cielo el antes y el después del devastador colapso del glaciar en Nepal
        • OKGREEN
        • OKGREEN

      Cámaras aéreas captan el antes y el después del devastador colapso del glaciar en Nepal

      • Antonio Quilis
      • 2026-08-28 11:46
    • OKSalud

    • Estos son los nutrientes esenciales para reparar tu melena después del verano
    • Las camas elásticas esconden una lesión infantil que puede pasar inadvertida
        • OkSalud
        • OkSalud

      Las camas elásticas esconden una lesión infantil que puede pasar inadvertida

      • Rita Montagu
      • 2026-08-29 05:40
    • Limonadas caseras: un nutricionista avisa de que pueden llevar tanto azúcar como un refresco
        • OkSalud
        • OkSalud

      Limonadas caseras: un nutricionista avisa de que pueden llevar tanto azúcar como un refresco

      • B. Muñoz
      • 2026-08-29 05:40
    • Núria León: Si sientes que la IA te entiende más que nadie es una señal de dependencia
        • OkSalud
        • OkSalud

      Núria León: "Si sientes que la IA te entiende más que nadie es una señal de dependencia"

      La irrupción de los chatbots de inteligencia artificial ha cambiado la forma en que muchas personas buscan compañía, apoyo emocional o simplemente alguien con quien hablar. Sin embargo, detrás de esa disponibilidad constante y de las respuestas personalizadas pueden esconderse riesgos psicológicos que van desde la dependencia emocional hasta el aislamiento social. De este tema, desde OKSALUD hemos charlado con la psicóloga sanitaria, Núria León.
      • Tamara García Yuste
      • 2026-08-29 05:40
    • OKCLUB

    • Celebra con nosotros el X Aniversario de OKDIARIO
        • OKCLUB
        • OKCLUB

      Celebra con nosotros el X Aniversario de OKDIARIO

      • OKDIARIO
      • 2025-03-10 17:54
    • Alejandro Peinado: Nueva jornada de Liga con el liderato en juego y Alcaraz debuta en el US Open
        • OKCLUB
        • OKCLUB

      Alejandro Peinado: "Nueva jornada de Liga con el liderato en juego y Alcaraz debuta en el US Open"

      • OKDIARIO
      • 2026-08-29 05:45
    • navarra

    • El Xota respira aliviado tras semanas de incertidumbre: la RFEF confirma que seguirá una temporada más en Primera División
        • Más deporte

      El Xota respira aliviado tras semanas de incertidumbre: la RFEF confirma que seguirá una temporada más en Primera División

    • El misterio de la furgoneta que ha aparecido bajo las aguas del pantano de Itoiz tras ser robada en Francia
        • Sucesos

      El misterio de la furgoneta que ha aparecido bajo las aguas del pantano de Itoiz tras ser robada en Francia

    • Una niña de Pamplona crea una bruja diferente y gana 400 euros con un dibujo que acabará convertido en cartel
        • Sociedad

      Una niña de Pamplona crea una bruja diferente y gana 400 euros con un dibujo que acabará convertido en cartel

    • Música, peñas, Grand Prix y bicicletas: así serán las Fiestas de la Juventud que prepara Tudela en septiembre
        • Tudela y Ribera

      Música, peñas, Grand Prix y bicicletas: así serán las Fiestas de la Juventud que prepara Tudela en septiembre

    • La Plaza del Castillo se convierte en una gran cancha: récord de participación en el Circuito 3x3 CaixaBank de Pamplona
        • Más deporte

      La Plaza del Castillo se convierte en una gran cancha: récord de participación en el Circuito 3x3 CaixaBank de Pamplona

    • La nueva joya tradicional de Ochagavía: una almadía de dos tramos construida a mano que podrá visitarse junto al río
        • Sociedad

      La nueva joya tradicional de Ochagavía: una almadía de dos tramos construida a mano que podrá visitarse junto al río

    • metabolic

    • Expertos en ciencias físicas coinciden: a partir de los 40 entrenar fuerza no es sólo por una cuestión estética, se debe hacer para «fortalecer los músculos»
        • Deporte

      Expertos en ciencias físicas coinciden: a partir de los 40 entrenar fuerza no es sólo por una cuestión estética, se debe hacer para «fortalecer los músculos»

    • La psicología dice que las personas que desean el mal a los demás no son malas, más bien su cerebro actúa así como mecanismo de defensa
        • Emociones y Salud Mental

      La psicología dice que las personas que desean el mal a los demás no son malas, más bien su cerebro actúa así como mecanismo de defensa

    • La natación ayuda, pero los profesionales coinciden en un ejercicio de gimnasia más eficaz para quemar grasa del abdomen a partir de los 50 años
        • Deporte

      La natación ayuda, pero los profesionales coinciden en un ejercicio de gimnasia más eficaz para quemar grasa del abdomen a partir de los 50 años

    • La psicología dice que las personas que cambian de opinión en público no es porque sean oportunistas: es una forma de demostrar una mayor flexibilidad cognitiva
        • Desarrollo Personal y Autoayuda

      La psicología dice que las personas que cambian de opinión en público no es porque sean oportunistas: es una forma de demostrar una mayor flexibilidad cognitiva

    • David Céspedes, doctor experto en longevidad: «Esta es la rutina que recomendaría a mis padres de más de 50 años para empezar a entrenar en casa con dos mancuernas»
        • Entrenamiento

      David Céspedes, doctor experto en longevidad: «Esta es la rutina que recomendaría a mis padres de más de 50 años para empezar a entrenar en casa con dos mancuernas»

    • Los expertos lo tienen claro: este es el mejor ejercicio para hacer durante la menopausia
        • Deporte

      Los expertos lo tienen claro: este es el mejor ejercicio para hacer durante la menopausia

    • talent24h

    • Irse de vacaciones estando de baja puede acabar en despido sin indemnización en estos casos.
        • Actualidad

      Irse de vacaciones estando de baja puede acabar en despido sin indemnización en estos casos.

    • El nuevo Reglamento europeo limita las ataduras de perros y gatos y España ya cuenta con restricciones propias
        • Actualidad

      El nuevo Reglamento europeo limita las ataduras de perros y gatos y España ya cuenta con restricciones propias

    • El uso del ordenador cambia para millones de personas mientras el smartphone se convierte en su dispositivo principal
        • Actualidad

      El uso del ordenador cambia para millones de personas mientras el smartphone se convierte en su dispositivo principal

    • Ni bares ni supermercados tienen que cobrar ahora 10 céntimos por cada lata o botella vendida en España: este es el calendario real
        • Actualidad

      Ni bares ni supermercados tienen que cobrar ahora 10 céntimos por cada lata o botella vendida en España: este es el calendario real

    • Tiene 99 años, está a punto de cumplir 100 y consigue renovar su carnet de conducir durante un año más
        • Actualidad

      Tiene 99 años, está a punto de cumplir 100 y consigue renovar su carnet de conducir durante un año más

    • Un agricultor pierde 10 hectáreas de sésamo tras seguir una receta de pesticidas generada por una IA
        • Actualidad

      Un agricultor pierde 10 hectáreas de sésamo tras seguir una receta de pesticidas generada por una IA

    • Muy Interesante

    • Hallan en Lima un esqueleto de 1.400 años en un canal ceremonial: ¿ritual de clausura o sacrificio humano?
        • Historia

      Hallan en Lima un esqueleto de 1.400 años en un canal ceremonial: ¿ritual de clausura o sacrificio humano?

    • Hallan una gran acumulación de magma bajo Tenerife y obtienen la primera imagen 3D del interior de la isla
        • Ciencia

      Hallan una gran acumulación de magma bajo Tenerife y obtienen la primera imagen 3D del interior de la isla

    • Descubren el secreto de las pinturas rupestres de Huashan: sangre humana y cal las conservaron durante 2.000 años
        • Historia

      Descubren el secreto de las pinturas rupestres de Huashan: sangre humana y cal las conservaron durante 2.000 años

    • Un libro de dibujos del siglo XVII reaparece casi intacto y devuelve a la historia a un pintor olvidado
        • Historia

      Un libro de dibujos del siglo XVII reaparece casi intacto y devuelve a la historia a un pintor olvidado

    • Científicos descubren en monos africanos una pista que cambia lo que creíamos sobre la evolución de nuestros antepasados hace 7 millones de años
        • Ciencia

      Científicos descubren en monos africanos una pista que cambia lo que creíamos sobre la evolución de nuestros antepasados hace 7 millones de años

    • La Bullpadel Hack 04 2026 cae de precio y se postula como una de las mejores palas para la Vuelta al Cole
        • Compras

      La Bullpadel Hack 04 2026 cae de precio y se postula como una de las mejores palas para la Vuelta al Cole

    • okzinet

    • ¿Tu bebé saca mucho la lengua? Lo que podría significar según su edad
        • Ser Padres

      ¿Tu bebé saca mucho la lengua? Lo que podría significar según su edad

    • Por qué este año no deberías preguntar a tu hijo “¿qué tal el cole?”: 5 alternativas avaladas por una psicóloga
        • Ser Padres

      Por qué este año no deberías preguntar a tu hijo “¿qué tal el cole?”: 5 alternativas avaladas por una psicóloga

    • El ritual de 30 minutos para cerrar el verano en familia y quedarse con lo importante
        • Ser Padres

      El ritual de 30 minutos para cerrar el verano en familia y quedarse con lo importante

    • ¿Por la mañana o por la noche? Este es el mejor momento para lavarse el pelo, según los expertos
        • Mia Revista

      ¿Por la mañana o por la noche? Este es el mejor momento para lavarse el pelo, según los expertos

    • 6 compras de Lefties por menos de 10 € para elevar la decoración de tu salón
        • Mia Revista

      6 compras de Lefties por menos de 10 € para elevar la decoración de tu salón

    • 3 cremas y geles corporales de aceite de oliva: clásicos de supermercado desde 1,50 euros que siguen siendo superventas
        • Mia Revista

      3 cremas y geles corporales de aceite de oliva: clásicos de supermercado desde 1,50 euros que siguen siendo superventas

    • Techy

    • Submarino INS Drakon de la Armada israelí atracado en el astillero de Kiel, Alemania
        • Techy

      Con más de 70 metros de eslora, 2000 toneladas y un sistema que le permite cargar sus baterías bajo el agua, Alemania entrega a Israel el submarino más grande y potente construido desde la II Guerra Mundial

      • Adrián Villellas
    • Gran cañón durante una prueba de disparo en Yuma Proving Ground, Arizona
        • Techy

      Estados Unidos ha disparado una ojiva hipersónica de tamaño real desde un enorme cañón en Arizona para recrear los últimos segundos antes del impacto, reutilizando una tecnología vinculada a un supercañón de 1.600 kilómetros que terminó siendo cancelado

      • Adrián Villellas
    • Nivel de burbuja colocado sobre el carril de una puerta corredera de garaje
        • Techy

      Los fabricantes de puertas automáticas coinciden y lo dejan claro: este fallo en el carril puede hacer trabajar de más al motor

      • Adrián Villellas
    • B-1B Lancer dentro de una instalación de pintura en Tinker Air Force Base tras completar su repintado
        • Techy

      Estados Unidos sacó del “cementerio” de Arizona un bombardero B-1B retirado en 2021 y, tras casi dos años de trabajo, más de 200 especialistas y 500 componentes sustituidos, el avión supersónico ha vuelto completamente operativo con un nuevo nombre: Apmiocalypse II

      • Adrián Villellas
    • Vista aérea del emplazamiento de Wesleyville junto al lago Ontario, donde OPG estudia una nueva central nuclear
        • Techy

      Ontario está perforando 40 pozos de hasta 120 metros junto al lago Ontario para estudiar una central nuclear de hasta 10.000 MW, capaz de abastecer a unos 10 millones de hogares, aunque su primera unidad todavía podría tardar 15 años en conectarse

      • Adrián Villellas
    • Tuneladora Lily de United Utilities utilizada para excavar el túnel de almacenamiento de agua de lluvia en Knutsford
        • Techy

      Una tuneladora de 40 toneladas métricas llamada Lily está excavando un túnel de 1,8 kilómetros bajo una localidad inglesa, con capacidad para almacenar 5,5 millones de litros de agua de lluvia, el equivalente a dos piscinas olímpicas

      • Adrián Villellas
    • OkPlanes

    • restaurantes por menos de 20 euros
        • OkPlanes

      Comer muy bien en Madrid por menos de 20 euros es posible

      • Sandra Quintana C
    • Water Lanter Festival
        • OkPlanes

      Water Lantern Festival aterriza en Madrid este septiembre

      • Sandra Quintana C
    • Richard Avedon. Ronald Fischer, beekeeper, Davis, California, May 9, 1987 © The Richard Avedon Foundation
        • OkPlanes

      Richard Avedon retrata la cara oculta del sueño americano en MAPFRE

      • Sandra Quintana C
    • estrenos de cine
        • OkPlanes

      Cartelera de cine: estrenos del 28 de agosto de 2026

      • Sandra Quintana C
    • exposicion relojes del siglo xix
        • OkPlanes

      Relojes del siglo XIX: la precisión del tiempo en la Galería de las Colecciones Reales

      • Sandra Quintana C
    • the weeknd
        • OkPlanes

      The Weeknd toma Madrid con un triple concierto histórico

      • Sandra Quintana C
    • Curiosidades

    • San Agustín. Imagen generada con IA.
        • Curiosidades

      La reflexión de San Agustín, filósofo y teólogo: «Si quieres conocer a una persona, no le preguntes lo que piensa sino lo que ama»

      • Aitana Pascual
    • Nassim Nicholas Taleb, en la conferencia DLD de 2009. Foto: @eirikso, CC BY-SA 2.0, vía Wikimedia Commons
        • Curiosidades

      Nassim Nicholas Taleb, filósofo y experto financiero (65 años): «La única medida del éxito es cuánto tiempo te puedes permitir desperdiciar»

      • Naiara Philpotts
    • albañiles, construcción, vivienda
        • Curiosidades

      Los albañiles coinciden: para arreglar las fisuras de las baldosas y azulejos debes emplear este fácil truco que no deja marcas

      • Gemma Meca
        • Curiosidades

      Ronald Rondón, técnico en electrodomésticos: «Los cajones del frigorífico no están ahí por casualidad, ayudan a conservar los alimentos»

      • Gemma Meca
    • Albañiles, truco, vivienda, techo
        • Curiosidades

      Los albañiles lo tienen claro: mezclar cemento con jabón es el truco más eficaz para impermeabilizar un techo y evitar goteras

      • Ana López Vera
        • Curiosidades

      La impactante frase de Einstein sobre las relaciones sentimentales: «El amor es la fuente de energía más poderosa de todo el mundo porque no tiene límites»

      • Xabier Vergara
    • Recetas de cocina

    • Receta de fabada
        • Recetas de cocina

      Fabada en olla express: receta rápida y muy fácil

      • Francisco María
    • Patatas estofadas con pimentón, receta tradicional fácil de preparar
        • Recetas de cocina

      Los chefs expertos coinciden: para que las patatas queden buenas no hay que freírlas, lo mejor es hacerlas «con 8 ajos, caldo de pollo y pimentón»

      • Gemma Meca
    • tarta de la abuela
        • Recetas de cocina

      Los expertos gastronómicos coinciden: la mejor ‘tarta de la abuela’ se hace con galletas hojaldradas y una ramita de canela

      • Alejo Lucarás
    • vinagre cuecen huevos
        • Recetas de cocina

      Añadir 2 gotas de vinagre al agua donde se cuecen los huevos: para qué sirve y por qué lo recomiendan los chefs expertos

      • Blanca Espada
        • Recetas de cocina

      En otros lugares, sumergen la pasta en crema o salsa de tomate; en la cocina francesa, simplemente mezclan nueces con ricotta

      • Gemma Meca
        • Recetas de cocina

      Pasta cremosa con setas

      • OKDIARIO
    • OkShopping

    • Dyson Cool PC2 De-NOx
        • OkShopping

      El purificador Dyson que captura un 50% más de NO₂ ahora cuesta 200 euros menos

      • New Mall Media
    • Grill LG Smart Inverter
        • OkShopping

      Este microondas LG de 32 litros tiene grill y Smart Inverter y ahora cuesta un 28% menos

      • New Mall Media
    • silla Lidario
        • OkShopping

      Una silla de exterior con aspecto de madera, cojines desenfundables y un 30% de descuento

      • New Mall Media
        • OkShopping

      Combate la caspa y el cuero cabelludo graso con este champú sólido

      • New Mall Media
        • OkShopping

      Pequeña, práctica y fácil de llevar: esta mini recortadora Braun está pensada para el vello corporal

      • New Mall Media
        • OkShopping

      Renueva cualquier espacio por mucho menos: la alfombra Despas está al 50% en Kave Home

      • New Mall Media
    • Mascotas

    • "Mitu", una gata negra de pelo largo, recostada en piso de madera. Foto: Naiara Philpotts
        • Mascotas

      Un experto veterinario extremeño desmiente el mito de los gatos negros: «Son de los que más complicado lo tienen para salir de los refugios»

      • Naiara Philpotts
    • Limpiar el bebedero del perro
        • Mascotas

      Los veterinarios instan a limpiar el bebedero de tu perro por el peligro del biofilm: una capa transparente llena de bacterias

      • Janire Manzanas
    • Dos gatos
        • Mascotas

      Comunicado importante de los veterinarios a las personas que tienen dos gatos

      • Janire Manzanas
    • Dos gatos mirando por una ventana. Foto: Magnific / Freepik
        • Mascotas

      Los expertos veterinarios coinciden: si tu gato se queda mirando por la ventana no es por cotillear, en realidad está estimulando su mente

      • Naiara Philpotts
    • Un perro duerme en el suelo
        • Mascotas

      Los adiestradores caninos coinciden: si tu perro duerme en el suelo en lugar de en su cama es porque busca regular su temperatura corporal

      • Janire Manzanas
    • Perro, animales, mascotas
        • Mascotas

      Los veterinarios coinciden: «Lavar a tu perro con champú humano altera el pH de su piel, aunque lo hagas una vez al mes»

      • Ana López Vera
    • Ciencia

    • Instalación experimental al aire libre en la azotea de Tres Cantos, Madrid, con la estación meteorológica visible al fondo. Foto: onlinelibrary.wiley.com
        • Ciencia

      Gran impacto en la industria de los materiales: investigadores españoles descubren una nanoestructura que enfría la temperatura hasta casi 13 º C sin usar electricidad

      • Naiara Philpotts
    • Una excavadora carga tierra en un camión volcador junto al cauce de agua durante las obras de excavación del complejo de la presa Daudhan. Foto: Autoridad del Proyecto de Enlace Ken-Betwa
        • Ciencia

      India desafía a la Naturaleza y construye un río artificial de 221 km para unir dos ríos naturales y combatir la sequía en una de las regiones más áridas de la Tierra

      • Naiara Philpotts
    • Los virus
        • Ciencia

      El papel de los virus en la evolución humana

      • Francisco María
        • Ciencia

      La comunidad científica insta a los españoles a prepararse para lo que llega a España en 2027: no hay nada igual

      • Xabier Vergara
    • NASA y Universo
        • Ciencia

      Astrónomos no dan crédito: una estrella que se mueve a 25.000 kilómetros por segundo «siente» la rotación del agujero negro

      • Gemma Meca
    • Microbiota
        • Ciencia

      La guerra microscópica silenciosa: cómo los virus bacteriófagos defienden constantemente nuestro cuerpo sin que lo sepamos

      • Francisco María
    • Bebés

    • antojos aversiones embarazo
        • Bebés

      Antojos y aversiones en el embarazo: ¿Qué los causa y cómo manejarlos?

      • Blanca Espada
    • embarazo ectópico
        • Bebés

      Embarazo Ectópico: Síntomas, Causas y Tratamiento

      • Blanca Espada
    • ansiedad embarazo
        • Bebés

      Cómo gestionar la ansiedad en el embarazo: consejos y recursos para sentirte mejor

      • Blanca Espada
    • alimentación complementaria
        • Bebés

      Cómo introducir la alimentación complementaria sin morir en el intento: trucos y recetas para padres primerizos

      • Blanca Espada
    • urticaria niños
        • Bebés

      Urticaria en niños: causas, síntomas, tratamiento y complicaciones

      • Blanca Espada
    • granuloma umbilical
        • Bebés

      Granuloma umbilical del bebé: ¿Qué es y cómo tratarlo?

      • Blanca Espada
    • Tecnología

    • Tim Cook
        • Tecnología

      El legado de Tim Cook en Apple, los hitos que marcaron sus 15 años como CEO

      • Nacho Grosso
    • ordenador trabajo uso personal
        • Tecnología

      El ordenador del trabajo no es tuyo, y esto es lo que no deberías hacer nunca en él

      • Nacho Grosso
        • Tecnología

      El precio del iPhone plegable ya apunta a un récord, el modelo más caro que ha vendido nunca Apple

      • Nacho Grosso
        • Tecnología

      El iPhone 18, la jugada con la que Apple parte en dos su calendario de lanzamientos

      • Nacho Grosso
    • ChatGPT
        • Tecnología

      Estos son los errores que cometes al utilizar ChatGPT en el trabajo

      • Nacho Grosso
    • Twitter.now
        • Tecnología

      Twitter.now, la red social que reclama el nombre de Twitter, se enfrenta a X en los tribunales

      • Nacho Grosso
    Ir Arriba

    Noticias de última hora

    • El PSOE prohíbe a sus alcaldes sumarse a las concentraciones por Ceuta porque dice que «el PP las usa para ir contra el Gobierno»
    • El emotivo discurso de Haakon VIII como nuevo rey de Noruega en recuerdo a Harald V: «Gracias por haber sido un padre tan bueno»
    • Un incendio devora un plató de televisión y calcina sus oficinas en Madrid
    • Centenares de ceutíes vuelven a las calles en una protesta improvisada al grito de «¡Ceuta unida jamás será vencida!»
    • Jornada 3 de la Liga: resumen de todos los partidos
    • Escalofriante parte médico de Pogacar: «Conmoción cerebral, abrasiones y sufre una fractura cervical
    • El secreto de Kate Middleton para lucir un rostro más joven: consigue un «lifting definido» sin pasar por quirófano
    • El último adiós Harald V ya tiene fecha y habrá ausencias: Mette-Marit no estará en el funeral
    • La reflexión de San Agustín, filósofo y teólogo: «Si quieres conocer a una persona, no le preguntes lo que piensa sino lo que ama»
    • Con más de 70 metros de eslora, 2000 toneladas y un sistema que le permite cargar sus baterías bajo el agua, Alemania entrega a Israel el submarino más grande y potente construido desde la II Guerra Mundial

    Noticias más vistas

    • Etapa 8 de La Vuelta a España 2026 hoy, sábado 29 de agosto de Puçol a Xeraco: horario, recorrido, perfil y dónde ver por TV
    • El alcalde socialista de La Rinconada colocó a su orientadora municipal en Prodetur, organismo público que él mismo presidía
    • Los 12 asesores que el PSOE de Sevilla ha colocado en la Diputación siendo cargos socialistas
    • La reflexión de Usain Bolt (40 años) sobre el esfuerzo y la constancia: «Entrené 4 años para correr 9 segundos y la gente se rinde cuando no ve resultados en 2 meses»
    • Vox pide suspender de forma cautelar la licencia de la mezquita del Polígono Sur por sus dudas urbanísticas
    • Cubarsí avala el desplante del Barcelona a sus campeones del mundo por el incidente de la estelada
    • Flick pasa del homenaje a los campeones con España: «Fantástico trabajo en el Mundial, pero es pasado»
    • Ortiz Arias evita que el Barça juegue con 9: también perdona la expulsión a Lamine Yamal
    • Colas kilométricas en Decathlon por la bicicleta eléctrica de 29» con motor de 250W y autonomía de 120 km
    • Rafa Jódar – Kokkinakis: horario y canal de TV para ver en directo gratis y en vivo online el partido del US Open 2026

    Noticias virales

    • Miguel Induráin, ex-ciclista navarro (62 años): «Nunca gané la Vuelta porque en mi época se disputaba en abril, lluvia, frío, y a mí ese clima no me iba»
    • La psicología sugiere que las personas que miran fijamente a los ojos mientras hablan no lo hacen para intimidar, más bien buscan reforzar la confianza
    • Los bomberos coinciden e insisten a la población: «Por la noche lo recomendable es no cerrar la puerta con la llave puesta»
    • La reflexión de Joan Manuel Serrat, cantante (82 años), sobre la crianza: «Los hijos aprenden poco de las palabras; sólo sirven tus actos y la coherencia de estos con las palabras»
    • Qué significa el proverbio alemán: «Una valla dura 3 años, un perro dura 3 vallas, un caballo dura 3 perros y un hombre dura 3 caballos»
    • Alejandro Magno, rey de Macedonia: «Cualquier posesión que obtengamos por medio de la espada no puede ser segura ni duradera; el amor que se gana con bondad es seguro y perdurable»
    • John Nash, matemático premio Nobel de Economía en 1994: «Lo único más grande que el poder de la mente es el coraje del corazón”
    • Los bomberos coinciden al 100% aunque mucha gente no hace caso: «Es recomendable siempre no dejar puesta la lavadora, la secadora o el lavavajillas por la noche»
    • Agatha Christie, escritora británica, sobre el envejecimiento: «Uno no reconoce los momentos realmente importantes en su vida hasta que es demasiado tarde»
    • Los expertos en climatización coinciden: el agua que sale del aire acondicionado no hay que tirarla porque es un recurso gratuito que puedes reutilizar
    Gobierno de España

    Esta empresa se ha acogido a las subvenciones del Gobierno de España cofinanciadas con el Fondo Europeo de Desarrollo Regional para las regiones ultraperiféricas para el transporte de mercancías en Canarias.”Una manera de hacer Europa”

    Unión Europea. Fondo europeo de desarollo regional.
    • DOS MIL PALABRAS S.L. 2026.
    • Contacto
    • Aviso Legal
    • Política de Privacidad
    • Política de Cookies
    • Noticias
    • RSS
    • Quiénes somos
    • Auditado por ComScore