Content-Type: multipart/related; start=; boundary=----------0lIMawTPsadI5LahtbxmCH Content-Location: http://www.rg.ru/printable/2013/08/23/uslugi-dok.html Subject: =?utf-8?Q?=D0=9F=D0=BE=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=9F=D1=80=D0=B0=D0=B2=D0=B8=D1=82=D0=B5=D0=BB=D1=8C=D1=81=D1=82=D0=B2=D0=B0=20=D0=A0=D0=BE=D1=81=D1=81=D0=B8=D0=B9=D1=81=D0=BA=D0=BE=D0=B9=20=D0=A4=D0=B5=D0=B4=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20=D0=BE=D1=82=2015=20=D0=B0=D0=B2=D0=B3=D1=83=D1=81=D1=82=D0=B0=202013=20=D0=B3.=20N=20706=20=D0=B3.=20=D0=9C=D0=BE=D1=81=D0=BA=D0=B2=D0=B0=20"=D0=9E=D0=B1=20=D1=83=D1=82=D0=B2=D0=B5=D1=80=D0=B6=D0=B4=D0=B5=D0=BD=D0=B8=D0=B8=20=D0=9F=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=BE=D0=BA=D0=B0=D0=B7=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=BB=D0=B0=D1=82=D0=BD=D1=8B=D1=85=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D1=85=20=D1=83=D1=81=D0=BB=D1=83=D0=B3"=20=E2=80=94=20=D0=A0=D0=BE=D1=81=D1=81=D0=B8=D0=B9=D1=81=D0=BA=D0=B0=D1=8F=20=D0=93=D0=B0=D0=B7=D0=B5=D1=82=D0=B0?= MIME-Version: 1.0 ------------0lIMawTPsadI5LahtbxmCH Content-Disposition: inline; filename=uslugi-dok.html Content-Type: text/html; charset=windows-1251; name=uslugi-dok.html Content-ID: Content-Location: http://www.rg.ru/printable/2013/08/23/uslugi-dok.html Content-Transfer-Encoding: 8bit Постановление Правительства Российской Федерации от 15 августа 2013 г. N 706 г. Москва "Об утверждении Правил оказания платных образовательных услуг" — Российская Газета

Опубликовано 23 августа 2013 г.


Вступает в силу: 1 сентября 2013 г.

Постановление Правительства Российской Федерации от 15 августа 2013 г. N 706 г. Москва "Об утверждении Правил оказания платных образовательных услуг"

В соответствии с частью 9 статьи 54 Федерального закона "Об образовании в Российской Федерации" Правительство Российской Федерации постановляет:

1. Утвердить прилагаемые Правила оказания платных образовательных услуг.

2. Признать утратившими силу:

постановление Правительства Российской Федерации от 5 июля 2001 г. N 505 "Об утверждении Правил оказания платных образовательных услуг" (Собрание законодательства Российской Федерации, 2001, N 29, ст. 3016);

постановление Правительства Российской Федерации от 1 апреля 2003 г. N 181 "О внесении изменений и дополнений в постановление Правительства Российской Федерации от 5 июля 2001 г. N 505" (Собрание законодательства Российской Федерации, 2003, N 14, ст. 1281);

постановление Правительства Российской Федерации от 28 декабря 2005 г. N 815 "О внесении изменений в Правила оказания платных образовательных услуг" (Собрание законодательства Российской Федерации, 2006, N 1, ст. 156);

постановление Правительства Российской Федерации от 15 сентября

2008 г. N 682 "О внесении изменений в Правила оказания платных образовательных услуг" (Собрание законодательства Российской Федерации, 2008, N 38, ст. 4317).

3. Настоящее постановление вступает в силу с 1 сентября 2013 г.

Председатель Правительства Российской Федерации Д. Медведев

Правила оказания платных образовательных услуг

I. Общие положения

1. Настоящие Правила определяют порядок оказания платных образовательных услуг.

2. Понятия, используемые в настоящих Правилах:

"заказчик" - физическое и (или) юридическое лицо, имеющее намерение заказать либо заказывающее платные образовательные услуги для себя или иных лиц на основании договора;

"исполнитель" - организация, осуществляющая образовательную деятельность и предоставляющая платные образовательные услуги обучающемуся (к организации, осуществляющей образовательную деятельность, приравниваются индивидуальные предприниматели, осуществляющие образовательную деятельность);

"недостаток платных образовательных услуг" - несоответствие платных образовательных услуг или обязательным требованиям, предусмотренным законом либо в установленном им порядке, или условиям договора (при их отсутствии или неполноте условий обычно предъявляемым требованиям), или целям, для которых платные образовательные услуги обычно используются, или целям, о которых исполнитель был поставлен в известность заказчиком при заключении договора, в том числе оказания их не в полном объеме, предусмотренном образовательными программами (частью образовательной программы);

"обучающийся" - физическое лицо, осваивающее образовательную программу;

"платные образовательные услуги" - осуществление образовательной деятельности по заданиям и за счет средств физических и (или) юридических лиц по договорам об образовании, заключаемым при приеме на обучение (далее - договор);

"существенный недостаток платных образовательных услуг" - неустранимый недостаток, или недостаток, который не может быть устранен без несоразмерных расходов или затрат времени, или выявляется неоднократно, или проявляется вновь после его устранения, или другие подобные недостатки.

3. Платные образовательные услуги не могут быть оказаны вместо образовательной деятельности, финансовое обеспечение которой осуществляется за счет бюджетных ассигнований федерального бюджета, бюджетов субъектов Российской Федерации, местных бюджетов. Средства, полученные исполнителями при оказании таких платных образовательных услуг, возвращаются лицам, оплатившим эти услуги.

4. Организации, осуществляющие образовательную деятельность за счет бюджетных ассигнований федерального бюджета, бюджетов субъектов Российской Федерации, местных бюджетов, вправе осуществлять за счет средств физических и (или) юридических лиц платные образовательные услуги, не предусмотренные установленным государственным или муниципальным заданием либо соглашением о предоставлении субсидии на возмещение затрат, на одинаковых при оказании одних и тех же услуг условиях.

5. Отказ заказчика от предлагаемых ему платных образовательных услуг не может быть причиной изменения объема и условий уже предоставляемых ему исполнителем образовательных услуг.

6. Исполнитель обязан обеспечить заказчику оказание платных образовательных услуг в полном объеме в соответствии с образовательными программами (частью образовательной программы) и условиями договора.

7. Исполнитель вправе снизить стоимость платных образовательных услуг по договору с учетом покрытия недостающей стоимости платных образовательных услуг за счет собственных средств исполнителя, в том числе средств, полученных от приносящей доход деятельности, добровольных пожертвований и целевых взносов физических и (или) юридических лиц. Основания и порядок снижения стоимости платных образовательных услуг устанавливаются локальным нормативным актом и доводятся до сведения заказчика и (или) обучающегося.

8. Увеличение стоимости платных образовательных услуг после заключения договора не допускается, за исключением увеличения стоимости указанных услуг с учетом уровня инфляции, предусмотренного основными характеристиками федерального бюджета на очередной финансовый год и плановый период.

II. Информация о платных образовательных услугах, порядок заключения договоров

9. Исполнитель обязан до заключения договора и в период его действия предоставлять заказчику достоверную информацию о себе и об оказываемых платных образовательных услугах, обеспечивающую возможность их правильного выбора.

10. Исполнитель обязан довести до заказчика информацию, содержащую сведения о предоставлении платных образовательных услуг в порядке и объеме, которые предусмотрены Законом Российской Федерации "О защите прав потребителей" и Федеральным законом "Об образовании в Российской Федерации".

11. Информация, предусмотренная пунктами 9 и 10 настоящих Правил, предоставляется исполнителем в месте фактического осуществления образовательной деятельности, а также в месте нахождения филиала организации, осуществляющей образовательную деятельность.

12. Договор заключается в простой письменной форме и содержит следующие сведения:

а) полное наименование и фирменное наименование (при наличии) исполнителя - юридического лица; фамилия, имя, отчество (при наличии) исполнителя - индивидуального предпринимателя;

б) место нахождения или место жительства исполнителя;

в) наименование или фамилия, имя, отчество (при наличии) заказчика, телефон заказчика;

г) место нахождения или место жительства заказчика;

д) фамилия, имя, отчество (при наличии) представителя исполнителя и (или) заказчика, реквизиты документа, удостоверяющего полномочия представителя исполнителя и (или) заказчика;

е) фамилия, имя, отчество (при наличии) обучающегося, его место жительства, телефон (указывается в случае оказания платных образовательных услуг в пользу обучающегося, не являющегося заказчиком по договору);

ж) права, обязанности и ответственность исполнителя, заказчика и обучающегося;

з) полная стоимость образовательных услуг, порядок их оплаты;

и) сведения о лицензии на осуществление образовательной деятельности (наименование лицензирующего органа, номер и дата регистрации лицензии);

к) вид, уровень и (или) направленность образовательной программы (часть образовательной программы определенного уровня, вида и (или) направленности);

л) форма обучения;

м) сроки освоения образовательной программы (продолжительность обучения);

н) вид документа (при наличии), выдаваемого обучающемуся после успешного освоения им соответствующей образовательной программы (части образовательной программы);

о) порядок изменения и расторжения договора;

п) другие необходимые сведения, связанные со спецификой оказываемых платных образовательных услуг.

13. Договор не может содержать условия, которые ограничивают права лиц, имеющих право на получение образования определенного уровня и направленности и подавших заявление о приеме на обучение (далее - поступающие), и обучающихся или снижают уровень предоставления им гарантий по сравнению с условиями, установленными законодательством Российской Федерации об образовании. Если условия, ограничивающие права поступающих и обучающихся или снижающие уровень предоставления им гарантий, включены в договор, такие условия не подлежат применению.

14. Примерные формы договоров утверждаются федеральным органом исполнительной власти, осуществляющим функции по выработке государственной политики и нормативно-правовому регулированию в сфере образования.

15. Сведения, указанные в договоре, должны соответствовать информации, размещенной на официальном сайте образовательной организации в информационно-телекоммуникационной сети "Интернет" на дату заключения договора.

III. Ответственность исполнителя и заказчика

16. За неисполнение либо ненадлежащее исполнение обязательств по договору исполнитель и заказчик несут ответственность, предусмотренную договором и законодательством Российской Федерации.

17. При обнаружении недостатка платных образовательных услуг, в том числе оказания их не в полном объеме, предусмотренном образовательными программами (частью образовательной программы), заказчик вправе по своему выбору потребовать:

а) безвозмездного оказания образовательных услуг;

б) соразмерного уменьшения стоимости оказанных платных образовательных услуг;

в) возмещения понесенных им расходов по устранению недостатков оказанных платных образовательных услуг своими силами или третьими лицами.

18. Заказчик вправе отказаться от исполнения договора и потребовать полного возмещения убытков, если в установленный договором срок недостатки платных образовательных услуг не устранены исполнителем. Заказчик также вправе отказаться от исполнения договора, если им обнаружен существенный недостаток оказанных платных образовательных услуг или иные существенные отступления от условий договора.

19. Если исполнитель нарушил сроки оказания платных образовательных услуг (сроки начала и (или) окончания оказания платных образовательных услуг и (или) промежуточные сроки оказания платной образовательной услуги) либо если во время оказания платных образовательных услуг стало очевидным, что они не будут осуществлены в срок, заказчик вправе по своему выбору:

а) назначить исполнителю новый срок, в течение которого исполнитель должен приступить к оказанию платных образовательных услуг и (или) закончить оказание платных образовательных услуг;

б) поручить оказать платные образовательные услуги третьим лицам за разумную цену и потребовать от исполнителя возмещения понесенных расходов;

в) потребовать уменьшения стоимости платных образовательных услуг;

г) расторгнуть договор.

20. Заказчик вправе потребовать полного возмещения убытков, причиненных ему в связи с нарушением сроков начала и (или) окончания оказания платных образовательных услуг, а также в связи с недостатками платных образовательных услуг.

21. По инициативе исполнителя договор может быть расторгнут в одностороннем порядке в следующем случае:

а) применение к обучающемуся, достигшему возраста 15 лет, отчисления как меры дисциплинарного взыскания;

б) невыполнение обучающимся по профессиональной образовательной программе (части образовательной программы) обязанностей по добросовестному освоению такой образовательной программы (части образовательной программы) и выполнению учебного плана;

в) установление нарушения порядка приема в осуществляющую образовательную деятельность организацию, повлекшего по вине обучающегося его незаконное зачисление в эту образовательную организацию;

г) просрочка оплаты стоимости платных образовательных услуг;

д) невозможность надлежащего исполнения обязательств по оказанию платных образовательных услуг вследствие действий (бездействия) обучающегося.




Rambler's Top100 Рейтинг@Mail.ru
------------0lIMawTPsadI5LahtbxmCH Content-Disposition: inline; filename=printable.css Content-Type: text/css; name=printable.css Content-Location: http://img.rg.ru/css/printable.css Content-Transfer-Encoding: 8bit .printHeader{ color: #000000; font-family: Verdana, sans-serif; font-size: 110%; font-weight: bold; text-align: center; margin-bottom: 3px } .printHeaderAnnounce { color: #000000; font-family: Verdana, sans-serif; font-size: 100%; text-align: center; margin-top: 1px; margin-bottom: 2px } .printLead{ color: #000000; font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-style : italic; ; margin-top: 1px } .incut{ color: #999999; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 24px; } .printHeaderAuthor{ color: #000000; font-family: Arial, Helvetica, sans-serif; font-size: 12px; ; margin-bottom: 1px; margin-top: 3px } .printLink{ color: #000000; font-family: Verdana, sans-serif; font-size: 12px; margin-top: 1px; margin-bottom: 1px; } .printLinkText{ color: #000000; font-family: Verdana, sans-serif; font-size: 80%; } .printHeaderLink{ color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 80%; margin-bottom: 1px; text-indent: 0pt; } p { color: #000000; font-family: Arial, Helvetica, sans-serif; font-size: 12px; } .copyright{ color: #000000; font-family: Verdana, sans-serif; font-size: 10px; margin-top: 1px; margin-bottom: 1px } .printSection{ color: #FFFFFF; font-family: Verdana, sans-serif; font-size: 12px; font-weight : bold; background-color: #333333; float: none; width: 100%; margin-top: 1px; margin-bottom: 1px } li { list-style-image: url(../img/black_button.gif)} hr { padding-top: 1px; padding-bottom: 1px} .printHeaderDate { color: #000000; font-family: Arial, Helvetica, sans-serif; font-size: 12px; ; margin-bottom: 1px; margin-top: 3px } .release-date { color: #000000; font-family: Arial, Helvetica, sans-serif; font-size: 12px; } /*DELETE INSERT-MATERIALS*/ div.insert_left {DISPLAY:NONE} ------------0lIMawTPsadI5LahtbxmCH Content-Disposition: inline; filename=print.css Content-Type: text/css; name=print.css Content-Location: http://img.rg.ru/css/print.css Content-Transfer-Encoding: 8bit .non_printed{visibility: hidden;display:none;} ------------0lIMawTPsadI5LahtbxmCH Content-Disposition: inline; filename=rg_logo_bw.gif Content-Type: image/gif; name=rg_logo_bw.gif Content-Location: http://img.rg.ru/img/rg_logo_bw.gif Content-Transfer-Encoding: Base64 R0lGODlhLAEyAMQAAC8rLOrp6re2tomHiJmXl6empnh2d2hlZvPy8vv7+0hFRcPC wtTT1FlWV83MzNva2j06Ok5LTJCOj7Cvr19cXYF/f21qa5+ensjHx769vWRhYnNx ceDg4FNQUSMfIP///yH5BAAAAAAALAAAAAAsATIAAAX/4CeOZGmeaKqubOu+cCzP dG3feK7vfO//wKBwSCwaj8ikcslsOp/QqHRKrVqv2Kx2y+16v+CweEwum8/otHrN brvf8Lh8Tq/b73NLhvVoNCgagRR/FBsDEwFtCBoeABgkHBAeEYlrAREQCpoKEJ2e mZoLcAyPIhIACgwiCAIJJg+cHrKNEACzjRWVaRy2HhMkDLOiawgbDb0eCg0dzB3H sr9tCRURAAsSCRayDhgTFQAUpSQIAQSyAAzkDxmMsgoPagkN0CQOshC6bPaN4iML sgLYPCDAQMMABRs8CJDgAcKDDgAGGKAgAcMFEwLuIShhTlYDV2kYKGhYocCEgw2H /7nhcK6fiACSAq4REMHABgnUwEVgIKFDNQoCDhiw0AHkiIwN84k4MMsBsQsNagGA 0EGCUjYs+ZmQ54vNgQgWLjiQkGlSggINITRYsGAogD0kkOIzkWHWxRLkAmwcg4DD g6srW57wxoGNhAM+L9SaVYDCrQoVFBBVFffeVQa9CIxIMMGCAgAAasJNkcBBgQsX JsA7Ufp06tUfOGRgSzsDbAazaS/IUBhDbt17E/jWzdaoCOGuJxT+gIA42wx7jwso QBlYgQGQD0XfysB5bdiQBKNwcKHCBkMCtm82LWHABeikFxSQcCH9CIsF8uvfr385 8wUEVHCAIRkYNwJ2xwBgwf8EDCREQScZYCDBZxAYcMBoIsh1WWYiMDBPQxo848EG 6r1E1i2NWODfBwGceIuCiVSAoiwWjODYjBdJMqNMwczogS4t6jiLghwEgMwt4ixy TnUTdOCjAk6VEMAAQvrogQQnZOXIVgWMNGME4CVwgZe3QHAXCWeReU8BIiRkJYq/ IECljxRctYEBmaDiVAZS1fjBN5hocEA0R1lmQo8eaMaAjgRUwoGbDSiFgZcaZMCA A+0oUMkCOl546Y0R9HXNLBYscFsGEZxzwQKJOLDAh1eyuopFvSggwAIgYaBjpZd+ SIlvHwKwanQD3OJUAgbIwusDDmiTFCReArABahe4GSv/YFq6pKQHejDwAAYfdhCc mxfuxhQ9IyDg7AazEcBhsgBIkN+HB+RXrEIcpOpBBRg8sI6XG5gwoALVRDCAro3I MoAAeGrSgAVsVvZsCWjJgquTHgxQQgLtBDwCZrJgOUJHCn0AcqIkMGTxKjpGWYLK B2Ck0QleitxhLzb/OQtcSCkgJWgyerDnLDKt4mXRH7ipwIo9AqBCthTvTAJMslCG wSyEJi1LBEa5mTXIADwgo58f3HvmSBmojE495yg1YCfxTtDAARpQIBEE9Fkw1dxn Zmgoml5CgMAEfwPTS5RceRAzCfd6cDGNJTReCtUeuPSBAL1oYALhE2+WbMib0VvC /+eOi8C5zyRcMOIHtjjFeVckfH4mAl5m/cE+AJQ4AtSpY13Ch9FcLUvEIggPAEhI GWBC0BIkq7EIQWsmgmMMNzWOJAC4DP2DoEFggQUERNCBSQJSMBUAD2N4eeEfIGvX Bzcqf8KH8te1TQkLYDJAAvavTQKqeAMJ5VyCFGVtjn3um4XNkOK/EWSgAwE0nTtK 4CRRFKBRzDkAhEoQtDNFomolwJ3uRMC7EQTgQRDQ3gecFbEEHEQD1bndPVyROPD4 zQMNuEAHRhO9EUDFAQyAYAdWhAAdqW8DU1lMLSpQCwVcQAOgaQQ4DKAeBi6HFTfa F3N6QbyXuWMjn1OAgUrgpv8ItGCAlYFAOzRXAs7N5TjJakDNRqC0FpyuMmI8gV5M 4KYzJUBf6hNhCkrIAhauoCMVEMED7lGkADjSkW5cniykd0YdqUQEilGAT6iCkKh4 rwER4EQzLnlDWizmHgRwxT48oL4RcA4AhcEYG1HwR8ixAI1+y57qPDBLV/7NfRpA AMZElgCMeWwFp0tAAjhQANCQ8gQPmMAGhNS3ikUKGOcYYWzEk4IHFMACQuriZhLA CltYYC8VkyJo1jkkSaJMBQhwAAFEVLoSQOUAFsDnBijQDAEZAxAHUGEpMbE3AyDi PucQqAQbAQ8dJTIFRVRYJWVRCsxtqSO9XOgbZUSBjej/S2S0k8VDkXmOUNoCSioI AFTuUYEP9S0B7mqIAS6Qn8/lbpDcLMEDenIPCXxInCwCJfYqEB2VKcAm50nqnQzw PBL0kDUMiIwsqmJJEwSgAt5sD0KqIS3JDIAAGQDM+pKizDF+QHiVQwEDGypSeOqo qSnV0SMsWgqMHvBZ5ghV+z76Eofa8RwEyxxgEBDTERVIZx7o20sah6KbooCQLzGA LQDAL1d8DqgB6EAsGkEBynSEbC54qk7PhTd4JKCqJhiAUzjlgQ4MIBDnilkGznkC DalgkQBBwS7noiPQmiCiq7uljhiAGWuMzIBt1Ehel1PLKx0HYH9NBgKWea6PbGyN /+Dp4KFSBYEC+OuV2oTsJWSxgXy4CajkRAACHnAjCBRGZdZ9gWg/xqjoAPeZH8hA wLSBvs8AQAMjEZYBnFgi20LUS3AlgZsoML2tmXUEGDOjcBtBgJiQwK7JJckk/NNc Yn4IdSRNRrp0JM6K6dWpslBsSNPaoWziVCspkwUFDHTeFQA3kRUDgFhRMN8Ga/F6 K/ttBCog2QolBG8HQB8UQXMVA6cgaEWxqo7uojbLMS6hE/bdhZFLgtclY0UdPtAs rJxhEH9glwrYzrlyBr0U25O8bGtEeHNaTDeTcXirmIBCP6c53L4ztJOU0nDxgtqN RWUDEQhRLxpggIdp8EpjdP8yCk7WyqAJTpG9mHEKEJVRPeoIALb7AIa7PIsIrGiv oGuxsh7sSxGP2M4iaAebEds3qmUvzo7NUk5XrNgPXJaEODwBn0XwIffKN9AkeEAv Yti+Qr+5AhLYwEg0AYABrUMC+M3vzA55D/DssmQjIB2JTIABZZKOihtzwF5WDNQz y2JxEgvbCYbpuVmgO4R7QYqER6CyS7fJwZvJgJf6dq+MNo3VAcDyZm6k6eNMQEfR YIm/X52xUg7xUAI1G6Hbmq7CZrtsGWgpBAeAxKgodBVTOgd0pquCe5nJN24CgDjH 6w4CCKA7BWCEKAJAJgWAFeeOoczJ2v05U3uxEcxmkY7/NmCUzM7C5xlwVc6FJgKX r8hIIq2E/RQXoQLMoxcjdUAvMHSWc+Dqt96cBQEewIA9ftsCtxpTFJ27TVBDwlmw DPfTL+At3CSrA2jiwIfKa5ygZSwDGZhTL0JtTwqMRAI/0cCp00VPwO44Q/oakgYU GgBrnWMWkn+Js4YEepV+pkxNxdOLFPCLqKy+FA+oRpk0JfrGgn4BEFx9dQw/lQok sEz6nYUnZhHfD7hI+JT8t4+q3b5z3SICDiATBDbgZwXgU0QQIPs3hjT3CBSNLEea CvGcjiINIOweCZaSRShggJuzGgEV0MD3vke3ca8AOQOQAINWkIEBr9NgltN//hUa wgcjAo2BT/RHAZQkARQwf/lEAXtgAIIyf3QTJRxgAfI3f4KyHW0hFQDgWo8QABjo gAdAAbDxKN9TN5ohJig0KBuReAOAHdkRg/0gABUQgzhYAerjDTjYgyWxCvMUATXR Ch9wHTFYAReAAIehJv91AYDhAJGxTkdFhEdxgz5YAZfUIpo1ZHWVg4yHB2AYhmI4 hmRYhmZ4hmiYhmq4hmzYhm74hnAYh3I4h3RYh3Z4h3iYh3q4h3zYh374h4AYiIKI hiEAADs= ------------0lIMawTPsadI5LahtbxmCH Content-Disposition: inline; filename=dot.gif Content-Type: image/gif; name=dot.gif Content-Location: http://img.rg.ru/img/dot.gif Content-Transfer-Encoding: Base64 R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw== ------------0lIMawTPsadI5LahtbxmCH Content-Disposition: inline; filename=top100.js Content-Type: application/x-javascript; name=top100.js Content-Location: http://counter.rambler.ru/top100.jcn?250928 Content-Transfer-Encoding: Base64 KGZ1bmN0aW9uKHdpbmRvdyl7dmFyIGY9ITAsaT0hMSxqLGs9dGhpcztNYXRoLmZs b29yKDIxNDc0ODM2NDgqTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoMzYpO2Z1bmN0 aW9uIGwoYSxiKXt0aGlzLndpZHRoPWE7dGhpcy5oZWlnaHQ9Yn1sLnByb3RvdHlw ZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLndpZHRoKyJ4Iit0aGlz LmhlaWdodH07dmFyIGFhPS9eW2EtekEtWjAtOVwtXy4hfionKCldKiQvO2Z1bmN0 aW9uIG0oYSl7YT0iIithO3JldHVybiFhYS50ZXN0KGEpP2VuY29kZVVSSUNvbXBv bmVudChhKTphfTtmdW5jdGlvbiBvKCl7dGhpcy5lPXt9O3RoaXMuaT1bXX1qPW8u cHJvdG90eXBlO2ouYT0wO2ouaj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmF9O2ou Yz1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9w ZXJ0eS5jYWxsKHRoaXMuZSxhKX07ai5zZXQ9ZnVuY3Rpb24oYSxiKXtPYmplY3Qu cHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5lLGEpfHwodGhpcy5h KyssdGhpcy5pLnB1c2goYSkpO3RoaXMuZVthXT1ifTtqLmdldD1mdW5jdGlvbihh LGIpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwo dGhpcy5lLGEpP3RoaXMuZVthXTpifTtqLmg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhp cy5pLmNvbmNhdCgpfTtqLmQ9ZnVuY3Rpb24oKXtmb3IodmFyIGE9W10sYj0wO2I8 dGhpcy5pLmxlbmd0aDtiKyspYS5wdXNoKHRoaXMuZVt0aGlzLmlbYl1dKTtyZXR1 cm4gYX07dmFyIHA9QXJyYXkucHJvdG90eXBlO2Z1bmN0aW9uIHEoYSl7cmV0dXJu IHAuY29uY2F0LmFwcGx5KHAsYXJndW1lbnRzKX07ZnVuY3Rpb24gcihhKXt0aGlz LmI9bmV3IG87dGhpcy5xPSEhYX1qPXIucHJvdG90eXBlO2ouYT0wO2ouaj1mdW5j dGlvbigpe3JldHVybiB0aGlzLmF9O2ouYz1mdW5jdGlvbihhKXthPXModGhpcyxh KTtyZXR1cm4gdGhpcy5iLmMoYSl9O2ouaD1mdW5jdGlvbigpe2Zvcih2YXIgYT10 aGlzLmIuZCgpLGI9dGhpcy5iLmgoKSxjPVtdLGU9MDtlPGIubGVuZ3RoO2UrKylm b3IodmFyIGc9YVtlXSxkPTA7ZDxnLmxlbmd0aDtkKyspYy5wdXNoKGJbZV0pO3Jl dHVybiBjfTtqLmQ9ZnVuY3Rpb24oYSl7dmFyIGI9W107aWYoYSl0aGlzLmMoYSkm JihiPXEoYix0aGlzLmIuZ2V0KHModGhpcyxhKSkpKTtlbHNlIGZvcih2YXIgYT10 aGlzLmIuZCgpLGM9MDtjPGEubGVuZ3RoO2MrKyliPXEoYixhW2NdKTtyZXR1cm4g Yn07Cmouc2V0PWZ1bmN0aW9uKGEsYil7YT1zKHRoaXMsYSk7dGhpcy5jKGEpJiYo dGhpcy5hLT10aGlzLmIuZ2V0KGEpLmxlbmd0aCk7dGhpcy5iLnNldChhLFtiXSk7 dGhpcy5hKys7cmV0dXJuIHRoaXN9O2ouZ2V0PWZ1bmN0aW9uKGEsYil7dmFyIGM9 YT90aGlzLmQoYSk6W107cmV0dXJuIDA8Yy5sZW5ndGg/Y1swXTpifTtmdW5jdGlv biBzKGEsYil7dmFyIGM9IiIrYjthLnEmJihjPWMudG9Mb3dlckNhc2UoKSk7cmV0 dXJuIGN9ai50b1N0cmluZz1mdW5jdGlvbigpe2lmKCF0aGlzLmEpcmV0dXJuIiI7 Zm9yKHZhciBhPVtdLGI9dGhpcy5iLmgoKSxjPTA7YzxiLmxlbmd0aDtjKyspZm9y KHZhciBlPWJbY10sZz1tKGUpLGU9dGhpcy5kKGUpLGQ9MDtkPGUubGVuZ3RoO2Qr Kyl7dmFyIGg9ZzsiIiE9PWVbZF0mJihoKz0iPSIrbShlW2RdKSk7YS5wdXNoKGgp fXJldHVybiBhLmpvaW4oIiYiKX07dmFyIHQsdSx2LHcseDtmdW5jdGlvbiB5KCl7 cmV0dXJuIGsubmF2aWdhdG9yP2submF2aWdhdG9yLnVzZXJBZ2VudDpudWxsfWZ1 bmN0aW9uIHooKXtyZXR1cm4gay5uYXZpZ2F0b3J9eD13PXY9dT10PWk7dmFyIEE7 aWYoQT15KCkpe3ZhciBiYT16KCk7eD0wPT1BLmluZGV4T2YoIk9wZXJhIik7dD0h eCYmLTEhPUEuaW5kZXhPZigiTVNJRSIpO3c9KHY9IXgmJi0xIT1BLmluZGV4T2Yo IldlYktpdCIpKSYmLTEhPUEuaW5kZXhPZigiTW9iaWxlIik7dT0heCYmIXYmJiJH ZWNrbyI9PWJhLnByb2R1Y3R9dmFyIGNhPXQsZGE9dSxCPXYsZWE9dzt2YXIgQztp Zih4JiZrLm9wZXJhKXt2YXIgRD1rLm9wZXJhLnZlcnNpb247ImZ1bmN0aW9uIj09 dHlwZW9mIEQmJkQoKX1lbHNlIGRhP0M9L3J2XDooW15cKTtdKykoXCl8OykvOmNh P0M9L01TSUVccysoW15cKTtdKykoXCl8OykvOkImJihDPS9XZWJLaXRcLyhcUysp LyksQyYmQy5leGVjKHkoKSk7ZnVuY3Rpb24gZmEoYSl7dGhpcy5mPWF9dmFyIEU9 L1xzKjtccyovO2o9ZmEucHJvdG90eXBlO2ouZ2V0PWZ1bmN0aW9uKGEsYil7Zm9y KHZhciBjPWErIj0iLGU9KHRoaXMuZi5jb29raWV8fCIiKS5zcGxpdChFKSxnPTAs ZDtkPWVbZ107ZysrKWlmKDA9PWQuaW5kZXhPZihjKSlyZXR1cm4gZC5zdWJzdHIo Yy5sZW5ndGgpO3JldHVybiBifTsKai5zZXQ9ZnVuY3Rpb24oYSxiLGMsZSxnLGQp e2lmKC9bOz1cc10vLnRlc3QoYSkpdGhyb3cgRXJyb3IoJ0ludmFsaWQgY29va2ll IG5hbWUgIicrYSsnIicpO2lmKC9bO1xyXG5dLy50ZXN0KGIpKXRocm93IEVycm9y KCdJbnZhbGlkIGNvb2tpZSB2YWx1ZSAiJytiKyciJyk7dGhpcy5mLmNvb2tpZT1h KyI9IitiKyhnPyI7ZG9tYWluPSIrZzoiIikrKGU/IjtwYXRoPSIrZToiIikrKGMg aW5zdGFuY2VvZiBEYXRlPyI7ZXhwaXJlcz0iK2MudG9VVENTdHJpbmcoKTowPmM/ IiI6MD09Yz8iO2V4cGlyZXM9IisobmV3IERhdGUoMTk3MCwxLDEpKS50b1VUQ1N0 cmluZygpOiI7ZXhwaXJlcz0iKyhuZXcgRGF0ZSgrbmV3IERhdGUrMUUzKmMpKS50 b1VUQ1N0cmluZygpKSsoZD8iO3NlY3VyZSI6IiIpfTtqLnJlbW92ZT1mdW5jdGlv bihhLGIsYyl7dmFyIGU9dGhpcy5jKGEpO3RoaXMuc2V0KGEsIiIsMCxiLGMpO3Jl dHVybiBlfTtqLmg9ZnVuY3Rpb24oKXtyZXR1cm4gZ2EodGhpcykua2V5c307Cmou ZD1mdW5jdGlvbigpe3JldHVybiBnYSh0aGlzKS50fTtqLmo9ZnVuY3Rpb24oKXty ZXR1cm4hdGhpcy5mLmNvb2tpZT8wOih0aGlzLmYuY29va2llfHwiIikuc3BsaXQo RSkubGVuZ3RofTtqLmM9ZnVuY3Rpb24oYSl7cmV0dXJuIHZvaWQgMCE9PXRoaXMu Z2V0KGEpfTtmdW5jdGlvbiBnYShhKXtmb3IodmFyIGE9KGEuZi5jb29raWV8fCIi KS5zcGxpdChFKSxiPVtdLGM9W10sZSxnLGQ9MDtnPWFbZF07ZCsrKWU9Zy5pbmRl eE9mKCI9IiksLTE9PWU/KGIucHVzaCgiIiksYy5wdXNoKGcpKTooYi5wdXNoKGcu c3Vic3RyaW5nKDAsZSkpLGMucHVzaChnLnN1YnN0cmluZyhlKzEpKSk7cmV0dXJu e2tleXM6Yix0OmN9fWouaXNFbmFibGVkPWZ1bmN0aW9uKCl7dmFyIGE9bmF2aWdh dG9yLmNvb2tpZUVuYWJsZWQ7aWYoYSYmQil7dmFyIGI9IkNPT0tJRV9URVNUXyIr ICtuZXcgRGF0ZTtoYS5zZXQoYiwiMSIpO2lmKCF0aGlzLmdldChiKSlyZXR1cm4g aTt0aGlzLnJlbW92ZShiKX1yZXR1cm4gYX07CnZhciBoYT1uZXcgZmEoZG9jdW1l bnQpO3ZhciBGPWksRz0iIjtmdW5jdGlvbiBIKGEpe2E9YS5tYXRjaCgvW1xkXSsv Zyk7YS5sZW5ndGg9MztyZXR1cm4gYVswXSsiLiIrYVsxXSsiIHIiK2FbMl19dmFy IEk9eigpOwppZihJLnBsdWdpbnMmJkkucGx1Z2lucy5sZW5ndGgpe3ZhciBKPUku cGx1Z2luc1siU2hvY2t3YXZlIEZsYXNoIl07SiYmKEY9ZixKLmRlc2NyaXB0aW9u JiYoRz1IKEouZGVzY3JpcHRpb24pKSk7SS5wbHVnaW5zWyJTaG9ja3dhdmUgRmxh c2ggMi4wIl0mJihGPWYsRz0iMi4wLjAuMTEiKX1lbHNlIGlmKEkubWltZVR5cGVz JiZJLm1pbWVUeXBlcy5sZW5ndGgpe3ZhciBLPUkubWltZVR5cGVzWyJhcHBsaWNh dGlvbi94LXNob2Nrd2F2ZS1mbGFzaCJdOyhGPSEoIUt8fCFLLmVuYWJsZWRQbHVn aW4pKSYmKEc9SChLLmVuYWJsZWRQbHVnaW4uZGVzY3JpcHRpb24pKX1lbHNlIHRy eXt2YXIgTD1uZXcgQWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxhc2guU2hvY2t3 YXZlRmxhc2guNyIpLEY9ZixHPUgoTC5HZXRWYXJpYWJsZSgiJHZlcnNpb24iKSl9 Y2F0Y2goaWEpe3RyeXtMPW5ldyBBY3RpdmVYT2JqZWN0KCJTaG9ja3dhdmVGbGFz aC5TaG9ja3dhdmVGbGFzaC42IiksRj1mLEc9IjYuMC4yMSIsCkwudj0iYWx3YXlz IixHPUgoTC5HZXRWYXJpYWJsZSgiJHZlcnNpb24iKSl9Y2F0Y2goamEpe3RyeXtM PW5ldyBBY3RpdmVYT2JqZWN0KCJTaG9ja3dhdmVGbGFzaC5TaG9ja3dhdmVGbGFz aCIpLEY9ZixHPUgoTC5HZXRWYXJpYWJsZSgiJHZlcnNpb24iKSl9Y2F0Y2goa2Ep e319fXZhciBsYT1HO3ZhciBtYT1bImFwcGxpY2F0aW9uL3gtc2lsdmVybGlnaHQi LCJhcHBsaWNhdGlvbi94LXNpbHZlcmxpZ2h0LTIiLCJhcHBsaWNhdGlvbi94LXNp bHZlcmxpZ2h0LTItYjIiLCJhcHBsaWNhdGlvbi94LXNpbHZlcmxpZ2h0LTItYjEi XSxNPWksTj0iIjtmdW5jdGlvbiBPKGEpe3JldHVybiIxLjAuMzAyMjYuMiI9PWE/ IjIuMC4zMDIyNi4yIjphfXZhciBQPXooKTsKaWYoUC5wbHVnaW5zJiZQLnBsdWdp bnMubGVuZ3RoKXt2YXIgUT1QLnBsdWdpbnNbIlNpbHZlcmxpZ2h0IFBsdWctSW4i XTtRJiYoTT1mLFEuZGVzY3JpcHRpb24mJihOPU8oUS5kZXNjcmlwdGlvbikpKX1l bHNlIGlmKFAubWltZVR5cGVzJiZQLm1pbWVUeXBlcy5sZW5ndGgpZm9yKHZhciBS PTA7UjxtYS5sZW5ndGg7UisrKXt2YXIgUz1QLm1pbWVUeXBlc1ttYVtSXV07aWYo UyYmUy5lbmFibGVkUGx1Z2luKXsoTT0hIVMuZW5hYmxlZFBsdWdpbikmJihOPU8o Uy5lbmFibGVkUGx1Z2luLmRlc2NyaXB0aW9uKSk7YnJlYWt9fWVsc2V7dmFyIFQ9 WzAsMCwwLDBdO3RyeXtmb3IodmFyIG5hPW5ldyBBY3RpdmVYT2JqZWN0KCJBZ0Nv bnRyb2wuQWdDb250cm9sIiksTT1mLFI9MDtSPFQubGVuZ3RoO1IrKyl7Zm9yKHZh ciBVPTAsVj0xMDQ4NTc1LG9hPTA7VTxWOyl7dmFyIFc9VFtSXT1VKyhWLVU+PjEp O25hLklzVmVyc2lvblN1cHBvcnRlZChULmpvaW4oIi4iKSk/KG9hPVcsVT1XKzEp OgpWPVd9VFtSXT1vYX1OPU8oVC5qb2luKCIuIikpfWNhdGNoKHBhKXt9fXZhciBx YT1OO3ZhciBYPSIwLjMiO2Z1bmN0aW9uIFkoYSxiKXt0aGlzLmc9Ynx8IiI7dGhp cy5vPXRoaXMubj10aGlzLnA9Zjt0aGlzLnM9MDt0aGlzLnI9MjUwO3RoaXMubD1u ZXcgcn1ZLnByb3RvdHlwZS5rPSgiaHR0cHM6Ij09ZG9jdW1lbnQubG9jYXRpb24u cHJvdG9jb2w/Imh0dHBzOi8vcyI6Imh0dHA6Ly8iKSsiY291bnRlci5yYW1ibGVy LnJ1L3RvcDEwMC5zY24iO1kucHJvdG90eXBlLnU9Imh0dHA6Ly90b3AxMDAucmFt Ymxlci5ydSI7WS5wcm90b3R5cGUubT0iUmFtYmxlcidzIFRvcDEwMCI7CmZ1bmN0 aW9uIHJhKGEpe3ZhciBiPVosYz16KCksZT1kb2N1bWVudCxnPWsuc2NyZWVuLGQ9 bmV3IHI7ZC5zZXQoInJuIixNYXRoLnJvdW5kKDIxNDc0ODM2NDcqTWF0aC5yYW5k b20oKSkpO2Quc2V0KCJ2IixYKTt2YXIgaDtoPXdpbmRvdzt2YXIgbj1oLmRvY3Vt ZW50O2lmKEImJiFlYSl7dm9pZCAwIT09aC5pbm5lckhlaWdodHx8KGg9d2luZG93 KTt2YXIgbj1oLmlubmVySGVpZ2h0LHVhPWguZG9jdW1lbnQuZG9jdW1lbnRFbGVt ZW50LnNjcm9sbEhlaWdodDtoPT1oLnRvcCYmdWE8biYmKG4tPTE1KTtoPW5ldyBs KGguaW5uZXJXaWR0aCxuKX1lbHNlIGg9IkNTUzFDb21wYXQiPT1uLmNvbXBhdE1v ZGU/bi5kb2N1bWVudEVsZW1lbnQ6bi5ib2R5LGg9bmV3IGwoaC5jbGllbnRXaWR0 aCxoLmNsaWVudEhlaWdodCk7ZC5zZXQoImJzIixoLnRvU3RyaW5nKCkpO2Quc2V0 KCJjZSIsaGEuaXNFbmFibGVkKCk/MTowKTtlJiYoZC5zZXQoInJmIixlLnJlZmVy cmVyfHwiIiksZC5zZXQoImVuIiwKZS5jaGFyYWN0ZXJTZXR8fGUuY2hhcnNldHx8 IiIpLGIucCYmZC5zZXQoInB0IixlLnRpdGxlLnN1YnN0cmluZygwLGIucikpKTtn JiYoZC5zZXQoImNkIixnLmNvbG9yRGVwdGgrIi1iaXQiKSxkLnNldCgic3IiLGcu d2lkdGgrIngiK2cuaGVpZ2h0KSk7YyYmKGQuc2V0KCJsYSIsYy5sYW5ndWFnZXx8 Yy5icm93c2VyTGFuZ3VhZ2V8fCIiKSxkLnNldCgiamEiLGMuamF2YUVuYWJsZWQo KT8xOjApLGQuc2V0KCJhY24iLGMuYXBwQ29kZU5hbWUpLGQuc2V0KCJhbiIsYy5h cHBOYW1lKSxkLnNldCgicGwiLGMucGxhdGZvcm0pKTtkLnNldCgidHoiLChuZXcg RGF0ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKSk7InN0cmluZyI9PXR5cGVvZiBhJiZk LnNldCgidXJsIixhKTtiLm4mJmQuc2V0KCJmdiIsbGEpO2IubyYmZC5zZXQoInN2 IixxYSk7Yi5sLmooKSYmZC5zZXQoImN2IixiLmwudG9TdHJpbmcoKSk7cmV0dXJu IGR9CmZ1bmN0aW9uIHNhKCl7dmFyIGE9JDtyZXR1cm4gZnVuY3Rpb24oKXt0YShh KX19ZnVuY3Rpb24gdmEoKXt2YXIgYT0kLGI9d2E7cmV0dXJuIGZ1bmN0aW9uKCl7 ay5jbGVhclRpbWVvdXQoYnx8bnVsbCk7dGEoYSl9fWZ1bmN0aW9uIHRhKGEpe2Eu b25sb2FkPWEub25lcnJvcj1hLm9uYWJvcnQ9bnVsbDtkZWxldGUgYX07dmFyIFg9 WCsiaSIsWj1uZXcgWSgwLCIyNTA5MjgiKTtpZihwYXJzZUludCgiMSIsMTApKXt2 YXIgeGE9cmEoKTt4YS5zZXQoImxlIiwwKTtkb2N1bWVudC53cml0ZSgnPGEgaHJl Zj0iJysoWi51KyhaLmc/Ii9ob21lP2lkPSIrWi5nOiIiKSkrJyIgdGFyZ2V0PSJf YmxhbmsiPjxpbWcgc3JjPSInKyhaLmsrIj8iK1ouZysiJiIreGEudG9TdHJpbmco KSkrJyIgdGl0bGU9IicrWi5tKyciIGFsdD0iJytaLm0rJyIgYm9yZGVyPSIwIiAv PjwvYT4nKX1lbHNle3ZhciB5YT1yYSh2b2lkIDApO3lhLnNldCgibGUiLDEpO3Zh ciB6YT1aLEFhPVouaysiPyIrWi5nKyImIit5YS50b1N0cmluZygpLCQ9bmV3IElt YWdlKDEsMSksQmE9emEucyx3YT1udWxsLENhPXNhKCk7MDxCYSYmKHdhPWsuc2V0 VGltZW91dChDYSxCYSkpO3ZhciBEYT12YSgpOyQub25lcnJvcj0kLm9uYWJvcnQ9 Q2E7JC5vbmxvYWQ9RGE7JC5zcmM9QWF9O30pKHdpbmRvdykK ------------0lIMawTPsadI5LahtbxmCH Content-Disposition: inline; filename=banner-88x31-rambler-gray2.gif Content-Type: image/gif; name=banner-88x31-rambler-gray2.gif Content-Location: http://top100-images.rambler.ru/top100/banner-88x31-rambler-gray2.gif Content-Transfer-Encoding: Base64 R0lGODlhWAAfALMAAISEhIuLi5WVlZubm6Ojo6urq7W1tb29vcPDw83NzdPT093d 3ePj4+3t7fT09P7+/iH5BAAAAAAALAAAAABYAB8AAAT/EMhJq7046833+2AojmRp nmhaSo/hvnAsz3Rt2wUhBFMgEAXag3UoGo/IpHLJbC4Ng83AkBwCHoisdsvter/g sJfA4wQIXCtWzG67w4QOBa1VJwoARCIB0An2An+AAAd7e1EAZxUHhHt9jIWMf4EJ jAWGe3Fyc4ZqCgoBAwoGAAmBn6cKfACiqgEBCaqVUUaEnwAFkKAAAgqUrJ/BpJsV Bp9qCwukCQEFC4HJ0AtkpArKpcnZeMkIAAZZuN0IBj4Cz4EE2dxlCCKEDw6kBCDd iQgLyMmhAMlxBQWhkuFa4G3BNnUG+S2oN6GAuAAHBgxYgOieOjwSfiR4QIDAAI4F /x4MmNexhQRnahio7FZApUGJrBhIihJAJgAFKnOSUskngUpvfAYIYCCR6AA8OFXu otBOQtMrB0gGwCIhgAI1DRpcW5C1awOJXwW4wOMzkaGspLL2zApUQoKvA+A2CMQg K6MKT59imcfAwdwJB7A2iHPAa9eiebriasBAkwC0ALIquMnWWJ+sYMEyuNwAI1Mr eqM+iFohJAsHqFOrXs26tevXsFEj+izhIxWRJC18ZKGit2/fZWg7hSePo4WpLIgp X07hA3MMap5Ll+PgQfDpyK9M366hgUgLBRwQJFC9HnmqFHZrp3BgwSjl94ZJSDYb w8T6N01SCK8VgAMEUzHyX/+AFBgQ3QTtgHCXHPgwdIVxGuTG3gOr9DDRNMa5l5t7 FGyU3ATl4UOQN+NMgAY5ByAgAD8UlvhgHAJkAWMWDkmlhQAfNXDdfBjG0U+GIybi 3Ye8EWBgNwyAwEAzIFQHjzkP4EPhiyHRMw8IZ1gFgo+jWfCjjwpsOJkEgR3Im5QH GPjfBwaI6B1XWOCTQIIfcZRkLA909kECmgCQZGc8GMjAihQI5EACHwmIaJe8JGnm gwhctdADmzVoaZxYXAXgB1cS4N0BDDBzZQUTwVPGVRXy6E15EhjAqlsPXEUkpO1g +MGl92CKQJUfODAVRwku4AADVVawgKOaeMqocoEN9uhYB1lEuWqUuuKaR3UUvXht rCVZMQEICwRn4LJylEnKo9yla0GZpnTwxwd3oavuvK16J9OOFED0p3zy0jsvAVfl mQAUPIRiwFsfhNkcb7817PDDvfkrscQRAAA7 ------------0lIMawTPsadI5LahtbxmCH Content-Disposition: inline; filename=counter.gif Content-Type: text/html; name=counter.gif Content-Location: http://top.list.ru/counter?id=11659;t=51;l=1 Content-Transfer-Encoding: Base64 R0lGODdhWAAfAMQAANjY2Li8uJCUkP39/Pj8+FhYWHBwcMh4ANisAOi8AIiIiEhI SPD08LCwsOjo6MDEwHB0cAAAAFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY WFhYWFhYWFhYWFhYWCwAAAAAWAAfAAAF/iAgjmRpnmiqrmwqAEEsz3Rt33iu7zcE CMCgcEgsGo/IpNLoUw6W0Kg02hxYgdbnEyvIXrfdcDiLjAQj5vM5jUYD3W/2O1jl gu9BvH1flgvYfnNqf4SEZmlAdWN5jFyOi5BlQoiFh3FycJWUAopaW596Yl98kpOD bpSYppZ0P2Rii6FaY2RgR36IuJWrc6yJrkJ3n41dw8ZJbXFrgGvNyru/sMWzj7Ki 0lPZS03a3d7freDi41A+POfo6eo65uvu6mgy8QFtETHz9Pb3+jHt7/869NkTSG8G v4IFCfaDAbBhjoMJ5w2kIfCgv3UEABQIkHGjQ4PyKOZDiFBhgIvr/goUMNDRwEeF /AjCDEnSHAGOBDYSuDlj582cHDWyFErjAIIEBQ4glaHUYw2JbfbJqwh1hs2cBXaq BAqAgIIFC7QOXdlyhlGVBpq6DKD2Iw+baLGyJGtggcoCDMgKLRtDrYG0SNe2dcsO Rk6XhzmStdugsQO9kNeyRbCyb2DLlW0cpBpz6j58cBFXPkyAceO8Yw0wINqXsuDL bGFTjAlRZkmSMkIrFs3SdAPSex9kjp158OCn93B3rvjZquHR0A10LdBYbMusATYe IC75QOUE3oeLzIdv+W2aJ5/z3h2g686wkbNrpXxWcoGjCML/vbEZfcLbJpmDVnaV DUjgSgMOQWjAXfsZGMOCaO2nWXn+kVSeRQzt95dLGz64YYcdBvAhhxLK8CFh56CE 4ooOQcAJBDDGKOOMNNZo44045qijjSEAADs= ------------0lIMawTPsadI5LahtbxmCH Content-Disposition: inline; filename=watch.js Content-Type: application/x-javascript; name=watch.js Content-Location: http://bs.yandex.ru/resource/watch.js Content-Transfer-Encoding: Base64 KGZ1bmN0aW9uKGQsYyxrYSl7ZnVuY3Rpb24gSChhLGIpe3JldHVybiBmdW5jdGlv bigpe3RyeXtyZXR1cm4gYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9Y2F0Y2goZyl7 aWYoMC4xPk1hdGgucmFuZG9tKCkpe3ZhciBsPVsiY3A6ICIrYixnLm5hbWUrIjog IitnLm1lc3NhZ2UsImRlYnVnOiAiK2xhLCJjb2RlOiAiK0lhLCJzdGFjazogIitn LnN0YWNrXTsobmV3IEltYWdlKS5zcmM9Ii8vYW4ueWFuZGV4LnJ1L2pzZXJyLzEw MTUwMD8iK3ZhKHsiY250LWNsYXNzIjoxMDAsZXJybXNnOmwuam9pbigiOyAiKS5y ZXBsYWNlKC9ccj9cbi9nLCJcXG4iKX0pfX19fWZ1bmN0aW9uIFooYSl7MC4xPk1h dGgucmFuZG9tKCkmJihhPVsiZGVidWc6ICIrbGEsImNvZGU6ICIrSWEsIm1zZzog IithXSwobmV3IEltYWdlKS5zcmM9Ii8vYW4ueWFuZGV4LnJ1L2pzZXJyLzEwMTUw MD8iK3ZhKHtlcnJtc2c6YS5qb2luKCI7ICIpLnJlcGxhY2UoL1xyP1xuL2csIlxc biIpfSkpfWZ1bmN0aW9uIE8oYSxiLApnKXtyZXR1cm4gZC5zZXRUaW1lb3V0KEgo YSxnfHwic2V0VGltZW91dCIpLGIpfWZ1bmN0aW9uIE4oYSl7Zm9yKHZhciBiPTEs Zz1hLmxlbmd0aDtiPGFyZ3VtZW50cy5sZW5ndGg7YisrKWFbZysrXT1hcmd1bWVu dHNbYl07cmV0dXJuIGEubGVuZ3RofWZ1bmN0aW9uIG1hKGEpe3JldHVybiJbb2Jq ZWN0IEFycmF5XSI9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKX1m dW5jdGlvbiBpYihhLGIsZyl7dmFyIGwsZSxjPTA7Zm9yKGwgaW4gYSlpZihhLmhh c093blByb3BlcnR5KGwpJiYoZT1nP2IuY2FsbChnLGFbbF0sbCxhLGMpOmIoYVts XSxsLGEsYyksYysrLCExPT09ZSkpYnJlYWs7cmV0dXJuIHRoaXN9ZnVuY3Rpb24g Qygpe2Zvcih2YXIgYT17fSxiPSJoYXNoIGhvc3QgaG9zdG5hbWUgaHJlZiBwYXRo bmFtZSBwb3J0IHByb3RvY29sIHNlYXJjaCIuc3BsaXQoIiAiKSxnPWIubGVuZ3Ro LGM9ZztjLS07KWFbYltjXV09IiI7dHJ5e2Zvcih2YXIgZT1kLmxvY2F0aW9uLApj PWc7Yy0tOyl7dmFyIHA9YltjXTthW3BdPSIiK2VbcF19fWNhdGNoKGgpe0EmJihh PUEpfXJldHVybiBhfWZ1bmN0aW9uIHhiKGEpe3JldHVybiBhPygiIithKS5yZXBs YWNlKC9eXHMrLywiIikucmVwbGFjZSgvXHMrJC8sIiIpOiIifWZ1bmN0aW9uIEko KXtyZXR1cm4rbmV3IERhdGV9ZnVuY3Rpb24gd2EoYSl7cmV0dXJuIE1hdGguZmxv b3IoTWF0aC5yYW5kb20oKSooIm51bWJlciI9PXR5cGVvZiBhP2E6MTA3Mzc0MTgy NCkpfWZ1bmN0aW9uIExiKCl7dmFyIGE9Yy5kb2N1bWVudEVsZW1lbnQsYj1jLmRv Y3R5cGUsZz1hLmF0dHJpYnV0ZXMsbD0iIixlPSIiLGQ9IiIsZT1hLm91dGVySFRN TDtpZighZSl7Zm9yKGU9MDtlPGcubGVuZ3RoO2UrKyl7dmFyIGg9Z1tlXTtoJiYo bCs9IiAiK2gubmFtZSsnPSInKyhoLnZhbHVlfHwiIikrJyInKX1lPSI8aHRtbCIr bCsiPiIrYS5pbm5lckhUTUwrIjwvaHRtbD4ifWImJihkPSI8IURPQ1RZUEUgIiti Lm5hbWUrKGIucHVibGljSWQ/JyBQVUJMSUMgIicrCmIucHVibGljSWQrJyInOiIi KSsoYi5zeXN0ZW1JZD8nICInK2Iuc3lzdGVtSWQrJyInOiIiKSsiPlxuIik7cmV0 dXJuIGQrZX1mdW5jdGlvbiB2YShhKXt2YXIgYj1bXSxnO2ZvcihnIGluIGEpYS5o YXNPd25Qcm9wZXJ0eShnKSYmKGJbYi5sZW5ndGhdPWcrIj0iK2VuY29kZVVSSUNv bXBvbmVudChhW2ddKS5yZXBsYWNlKC9cKy9nLCIlMkIiKSk7cmV0dXJuIGIuam9p bigiJiIpfWZ1bmN0aW9uIGFiKGEpe2Zvcih2YXIgYj1hLmxlbmd0aCxnPTAsYz0y NTUsZT0yNTU7Yjspe3ZhciBkPTIxPGI/MjE6YixiPWItZDtkb3t2YXIgaD0ic3Ry aW5nIj09dHlwZW9mIGE/YS5jaGFyQ29kZUF0KGcpOmFbZ107ZysrO2lmKDI1NTxo KXZhciBxPWg+PjgsaD1oJjI1NSxoPWhecTtjKz1oO2UrPWN9d2hpbGUoLS1kKTtj PShjJjI1NSkrKGM+PjgpO2U9KGUmMjU1KSsoZT4+OCl9YT0oYyYyNTUpKyhjPj44 KTw8OHwoZSYyNTUpKyhlPj44KTtyZXR1cm4gNjU1MzU9PWE/MDphfWZ1bmN0aW9u IEphKGEpe2Zvcih2YXIgYj0KSSgpLGc9MTswPGc7ZysrKWlmKDA9PWclMUUzKXt2 YXIgYz1JKCk7aWYoYj5jKWJyZWFrO2lmKGMtYj5hKWJyZWFrfX1mdW5jdGlvbiBL YShhKXtyZXR1cm4tMSE9PSgiIitkLm5hdmlnYXRvci51c2VyQWdlbnQpLnRvTG93 ZXJDYXNlKCkuc2VhcmNoKGEpfWZ1bmN0aW9uIHhhKGEsYixnLGwpey9bXmEtejAt OS4tXS8udGVzdChsKSYmKGw9bnVsbCk7YT1hKyI9IitlbmNvZGVVUklDb21wb25l bnQoYik7ZyYmKGI9bmV3IERhdGUsYi5zZXRUaW1lKGIuZ2V0VGltZSgpKzZFNCpn KSxhKz0iO2V4cGlyZXM9IitiLnRvR01UU3RyaW5nKCkpO2wmJihhKz0iO2RvbWFp bj0iK2wpO2MuY29va2llPWErIjtwYXRoPS8ifWZ1bmN0aW9uIExhKGEpe3JldHVy biBjLmNvb2tpZS5tYXRjaChSZWdFeHAoIig/Ol58O1xccyopIithKyI9KFteO10q KSIpKT9kZWNvZGVVUklDb21wb25lbnQoUmVnRXhwLiQxKTpudWxsfWZ1bmN0aW9u IE1iKCl7eGEoIl9tZXRyaWthX2VuYWJsZWQiLCIxIiw2MCk7dmFyIGE9CiEhTGEo Il9tZXRyaWthX2VuYWJsZWQiKTt4YSgiX21ldHJpa2FfZW5hYmxlZCIsIiIsLTEs dm9pZCAwKTtyZXR1cm4gYX1mdW5jdGlvbiBqYigpe3ZhciBhPWMuZG9jdW1lbnRF bGVtZW50O3JldHVybiJDU1MxQ29tcGF0Ij09Yy5jb21wYXRNb2RlP2E6Yy5ib2R5 fHxhfWZ1bmN0aW9uIHliKCl7dmFyIGE9amIoKTtyZXR1cm5bYS5jbGllbnRXaWR0 aCxhLmNsaWVudEhlaWdodF19ZnVuY3Rpb24gemIoKXt2YXIgYT1qYigpLGI9eWIo KTtyZXR1cm5bTWF0aC5tYXgoYS5zY3JvbGxXaWR0aCxiWzBdKSxNYXRoLm1heChh LnNjcm9sbEhlaWdodCxiWzFdKV19ZnVuY3Rpb24gQWIoKXtyZXR1cm5bZC5wYWdl WE9mZnNldHx8Yy5kb2N1bWVudEVsZW1lbnQmJmMuZG9jdW1lbnRFbGVtZW50LnNj cm9sbExlZnR8fGMuYm9keSYmYy5ib2R5LnNjcm9sbExlZnR8fDAsZC5wYWdlWU9m ZnNldHx8Yy5kb2N1bWVudEVsZW1lbnQmJmMuZG9jdW1lbnRFbGVtZW50LnNjcm9s bFRvcHx8Yy5ib2R5JiZjLmJvZHkuc2Nyb2xsVG9wfHwKMF19ZnVuY3Rpb24gQmIo YSl7aWYoIWEub3duZXJEb2N1bWVudHx8IlBBUkFNIj09YS50YWdOYW1lfHxhPT1j LmJvZHl8fGE9PWMuZG9jdW1lbnRFbGVtZW50KXJldHVyblswLDBdO2lmKGEuZ2V0 Qm91bmRpbmdDbGllbnRSZWN0KXJldHVybiBhPWEuZ2V0Qm91bmRpbmdDbGllbnRS ZWN0KCksW01hdGgucm91bmQoYS5sZWZ0K1RbMF0pLE1hdGgucm91bmQoYS50b3Ar VFsxXSldO2Zvcih2YXIgYj0wLGc9MDthOyliKz1hLm9mZnNldExlZnQsZys9YS5v ZmZzZXRUb3AsYT1hLm9mZnNldFBhcmVudDtyZXR1cm5bYixnXX1mdW5jdGlvbiBV KGEsYil7cmV0dXJuIGE9PWMuZG9jdW1lbnRFbGVtZW50P251bGw6Yj9hLnRhZ05h bWUudG9Mb3dlckNhc2UoKT09PWI/YTpVKGEucGFyZW50Tm9kZSxiKTphPT1jLmJv ZHk/Yy5kb2N1bWVudEVsZW1lbnQ6YS5wYXJlbnROb2RlfWZ1bmN0aW9uIENiKGEs Yil7dmFyIGc9W107aWYoYSlmb3IodmFyIGM9YS5jaGlsZE5vZGVzLGU9MCxkPWMu bGVuZ3RoO2U8CmQ7ZSsrKXt2YXIgaD1jW2VdOyJJTlBVVCI9PWgubm9kZU5hbWUm JmgudHlwZSYmImhpZGRlbiI9PWgudHlwZS50b0xvY2FsZUxvd2VyQ2FzZSgpfHxi JiZoLm5vZGVOYW1lIT1ifHxOKGcsaCl9cmV0dXJuIGd9ZnVuY3Rpb24ga2IoYSl7 dmFyIGI9QmIoYSk7YT1hPT1jLmJvZHl8fGE9PWMuZG9jdW1lbnRFbGVtZW50P3pi KCk6W2Eub2Zmc2V0V2lkdGgsYS5vZmZzZXRIZWlnaHRdO3JldHVybltiWzBdLGJb MV0sYVswXSxhWzFdXX1mdW5jdGlvbiBEYihhKXt2YXIgYj0iIjthPWEuY2hpbGRO b2Rlcztmb3IodmFyIGc9MCxjPWEubGVuZ3RoO2c8YztnKyspYVtnXSYmMz09YVtn XS5ub2RlVHlwZSYmKGIrPWFbZ10ubm9kZVZhbHVlKTtyZXR1cm4gYWIoYi5yZXBs YWNlKC9bXHUwMDAwLVx1MDAyMF0rL2csIiIpKX1mdW5jdGlvbiBFYihhKXt2YXIg Yj0iIixnPSJ3aWR0aCBoZWlnaHQgYWxpZ24gdGl0bGUgYWx0IG5hbWUiLnNwbGl0 KCIgIik7IklNRyI9PWEudGFnTmFtZSYmKGIrPWEuc3JjLnRvTG93ZXJDYXNlKCkp OwoiQSI9PWEudGFnTmFtZSYmKGIrPWEuaHJlZi50b0xvd2VyQ2FzZSgpKTtmb3Io dmFyIGI9YitTdHJpbmcoYS5jbGFzc05hbWV8fCIiKS50b0xvd2VyQ2FzZSgpLGM9 MDtjPGcubGVuZ3RoO2MrKylhLmdldEF0dHJpYnV0ZSYmKGIrPVN0cmluZyhhLmdl dEF0dHJpYnV0ZShnW2NdKXx8IiIpLnRvTG93ZXJDYXNlKCkpO3JldHVybiBhYihi LnJlcGxhY2UoL1tcdTAwMDAtXHUwMDIwXSsvZywiIikpfWZ1bmN0aW9uIEZiKGEp e2Zvcih2YXIgYj1jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJmb3JtIiksZz0wLGQ9 Yi5sZW5ndGg7ZzxkO2crKylpZihiW2ddPT1hKXJldHVybiBnO3JldHVybi0xfWZ1 bmN0aW9uIG5hKGEsYil7cmV0dXJuIFJlZ0V4cCgiKD86XnxcXHMpIitiKyIoPzpc XHN8JCkiKS50ZXN0KGEuY2xhc3NOYW1lKX1mdW5jdGlvbiBHYihhKXtyZXR1cm4i SU5QVVQiPT1hLm5vZGVOYW1lJiYic3VibWl0IiE9YS50eXBlJiYiaW1hZ2UiIT1h LnR5cGUmJiJoaWRkZW4iIT1hLnR5cGU/CiJyYWRpbyI9PWEudHlwZXx8ImNoZWNr Ym94Ij09YS50eXBlPyFhLmNoZWNrZWQ6IWEudmFsdWU6IlRFWFRBUkVBIj09YS5u b2RlTmFtZT8hYS52YWx1ZToiU0VMRUNUIj09YS5ub2RlTmFtZT8wPmEuc2VsZWN0 ZWRJbmRleDohMH1mdW5jdGlvbiBIYihhLGIpe2I9Ynx8YztpZihiLmdldEVsZW1l bnRzQnlDbGFzc05hbWUpcmV0dXJuIGIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShh KTtmb3IodmFyIGc9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLGQ9W10sZT0w O2U8Zy5sZW5ndGg7ZSsrKW5hKGdbZV0sYSkmJmQucHVzaChnW2VdKTtyZXR1cm4g ZH1mdW5jdGlvbiBQKGEsYixnLGMpe1ZbVi5sZW5ndGhdPVtnLGddO2EuYWRkRXZl bnRMaXN0ZW5lcj9hLmFkZEV2ZW50TGlzdGVuZXIoYixnLCEhYyk6YS5hdHRhY2hF dmVudCYmYS5hdHRhY2hFdmVudCgib24iK2IsZyl9ZnVuY3Rpb24gTWEoYSxiLGcs Yyl7Zm9yKHZhciBlPTA7ZTxWLmxlbmd0aDtlKyspaWYoVltlXSYmVltlXVswXT09 Cmcpe3ZhciBkPVZbZV1bMV07ZGVsZXRlIFZbZV07YnJlYWt9ZCYmKGEucmVtb3Zl RXZlbnRMaXN0ZW5lcj9hLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixkLCEhYyk6YS5k ZXRhY2hFdmVudCYmYS5kZXRhY2hFdmVudCgib24iK2IsZCkpfWZ1bmN0aW9uIHlh KGEpe3RyeXtkZWxldGUgZFthXX1jYXRjaChiKXtkW2FdPWthfX1mdW5jdGlvbiBv YShhKXt2YXIgYj1jLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2IudHlwZT0idGV4 dC9qYXZhc2NyaXB0IjtiLmFzeW5jPSEwO2Iuc3JjPWE7dHJ5e3ZhciBnPWMuZ2V0 RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKVswXTtjLmdldEVsZW1lbnRzQnlUYWdO YW1lKCJoZWFkIilbMF18fGcuYXBwZW5kQ2hpbGQoYy5jcmVhdGVFbGVtZW50KCJo ZWFkIikpO3ZhciBkPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXTtk Lmluc2VydEJlZm9yZShiLGQuZmlyc3RDaGlsZCl9Y2F0Y2goZSl7fX1mdW5jdGlv biBoYSgpe2lmKHRvcCE9ZCYmcGFyZW50PT0KdG9wJiZkLnBvc3RNZXNzYWdlJiYh WWEuTWV0cmlrYV92aXNvclBsYXllck9uKXtZYS5NZXRyaWthX3Zpc29yUGxheWVy T249ITA7dmFyIGE9Yy5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmlubmVySFRNTD0n PGlmcmFtZSBuYW1lPSJSZW1vdGVJZnJhbWUiIGFsbG93dHJhbnNwYXJlbmN5PSJ0 cnVlIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAtOTk5cHg7IHRv cDogLTk5OXB4OyB3aWR0aDogMXB4OyBoZWlnaHQ6IDFweDsiPjwvaWZyYW1lPic7 dmFyIGI9YS5maXJzdENoaWxkO08oZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsZyxj LGUsZCl7dHJ5e2MucG9zdE1lc3NhZ2UmJihiLm9ubWVzc2FnZT1mdW5jdGlvbihh KXthPWF8fGIuZXZlbnQ7dHJ5e3ZhciBjPUpTT04ucGFyc2UoYS5kYXRhKX1jYXRj aChsKXtyZXR1cm59aWYoLyhefFwuKXlhbmRleFwuKHJ1fGNvbXx1YXxrenxieXxj b21cLnRyKSg6XGR7NH0pPyQvLnRlc3QoYS5vcmlnaW4pJiZjJiYic2NyaXB0Ij09 CmMubmFtZSYmYy5kYXRhKXthPWUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQi KVswXTt2YXIgcD1lLmNyZWF0ZUVsZW1lbnQoImJhc2UiKTtwLmhyZWY9Yy5kYXRh O2EuYXBwZW5kQ2hpbGQocCk7cD1lLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3Au c3JjPWMuZGF0YTthLmFwcGVuZENoaWxkKHApOy0xPGQudXNlckFnZW50LmluZGV4 T2YoIkZpcmVmb3gvMy42LiIpJiZnLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3Nh Z2UiLGIub25tZXNzYWdlLCExKTtiLm9ubWVzc2FnZT1udWxsfX0sLTE8ZC51c2Vy QWdlbnQuaW5kZXhPZigiRmlyZWZveC8zLjYuIikmJmcuYWRkRXZlbnRMaXN0ZW5l cigibWVzc2FnZSIsYi5vbm1lc3NhZ2UsITEpLGMucG9zdE1lc3NhZ2UoJ3sibmFt ZSI6InBpbmcifScsIioiKSl9Y2F0Y2gobCl7fX12YXIgZD1jLmJvZHl8fGMuZG9j dW1lbnRFbGVtZW50O2QuaW5zZXJ0QmVmb3JlKGIsZC5maXJzdENoaWxkKTt0cnl7 dmFyIGU9Yi5jb250ZW50V2luZG93LmRvY3VtZW50fWNhdGNoKHApe31lJiYKKGUu b3BlbigpLGUud3JpdGUoJzwhZG9jdHlwZSBodG1sPjxodG1sPjxoZWFkPjxtZXRh IGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9RW11bGF0 ZUlFNyxJRT1lZGdlIiAvPjwvaGVhZD48Ym9keT48c2NyaXB0IHR5cGU9InRleHQv amF2YXNjcmlwdCI+KCcrYS50b1N0cmluZygpKyIpKHdpbmRvdywgcGFyZW50LCB0 b3AsIGRvY3VtZW50LCBuYXZpZ2F0b3IpO1x4M2Mvc2NyaXB0PjwvYm9keT48L2h0 bWw+IiksZS5jbG9zZSgpKX0sNTAwKX19ZnVuY3Rpb24gTmIoYSxiLGcsbCxlLHAp e2Z1bmN0aW9uIGgoYSxmLGIpe3ZhciBrPUgoZnVuY3Rpb24oYSl7cmV0dXJuIGIo YXx8ZC5ldmVudCl9LGYpO2FhW2FhLmxlbmd0aF09W2EsZixiLGtdO2EuYWRkRXZl bnRMaXN0ZW5lcj9hLmFkZEV2ZW50TGlzdGVuZXIoZixrLCEwKTphLmF0dGFjaEV2 ZW50JiZhLmF0dGFjaEV2ZW50KCJvbiIrZixrKX1mdW5jdGlvbiBxKGEsZixiKXtm b3IodmFyIGs9MDtrPGFhLmxlbmd0aDtrKyspaWYoYWFba10mJgphYVtrXVswXT09 YSYmYWFba11bMV09PWYmJmFhW2tdWzJdPT1iKXt2YXIgYz1hYVtrXVszXTtkZWxl dGUgYWFba107YnJlYWt9YyYmKGEucmVtb3ZlRXZlbnRMaXN0ZW5lcj9hLnJlbW92 ZUV2ZW50TGlzdGVuZXIoZixjLCEwKTphLmRldGFjaEV2ZW50JiZhLmRldGFjaEV2 ZW50KCJvbiIrZixjKSl9ZnVuY3Rpb24gcyhhKXt2YXIgZj1qYigpO3JldHVyblth LnBhZ2VYfHxhLmNsaWVudFgrVFswXS0oZi5jbGllbnRMZWZ0fHwwKXx8MCxhLnBh Z2VZfHxhLmNsaWVudFkrVFsxXS0oZi5jbGllbnRUb3B8fDApfHwwXX1mdW5jdGlv biAkKGEpe3JldHVybiBhLnRhcmdldHx8YS5zcmNFbGVtZW50fWZ1bmN0aW9uIEko YSl7cmV0dXJuKGEuc2hpZnRLZXk/aGE6MCl8KGEuY3RybEtleT9sYjowKXwoYS5h bHRLZXk/b2E6MCl8KGEubWV0YUtleT9nYjowKXwoYS5jdHJsS2V5fHxhLmFsdEtl eT9iYjowKX1mdW5jdGlvbiBCKGEpe3ZhciBmPShuZXcgRGF0ZSkuZ2V0VGltZSgp O2EmJmY8YSYmKG1iKz0KYS1mK25iKTtPKGZ1bmN0aW9uKCl7QihmKX0sbmIpfWZ1 bmN0aW9uIEEoKXt2YXIgYT0obmV3IERhdGUpLmdldFRpbWUoKSttYjthPG9iJiYo YT1vYituYi8yKTtyZXR1cm4gb2I9YX1mdW5jdGlvbiB5KCl7cmV0dXJuIE1hdGgu cm91bmQoKEEoKS1pYikvT2IpfWZ1bmN0aW9uIEwoYSxmKXtmPU1hdGgubWF4KDAs TWF0aC5taW4oZiw2NTUzNSkpO04oYSxmPj44LGYmMjU1KX1mdW5jdGlvbiB6KGEs Zil7TihhLGYmMjU1KX1mdW5jdGlvbiBuKGEsZil7Zm9yKGY9TWF0aC5tYXgoMCxm fDApOzEyNzxmOylOKGEsZiYxMjd8MTI4KSxmPj49NztOKGEsZil9ZnVuY3Rpb24g UChhLGYpezI1NTxmLmxlbmd0aCYmKGY9Zi5zdWJzdHIoMCwyNTUpKTtOKGEsZi5s ZW5ndGgpO2Zvcih2YXIgYj0wO2I8Zi5sZW5ndGg7YisrKUwoYSxmLmNoYXJDb2Rl QXQoYikpfWZ1bmN0aW9uIE0oYSxmKXtuKGEsZi5sZW5ndGgpO2Zvcih2YXIgYj0w O2I8Zi5sZW5ndGg7YisrKW4oYSxmLmNoYXJDb2RlQXQoYikpfQpmdW5jdGlvbiBY KGEsZixiLGssYyxnKXtmb3IoO2ImJighYi5vZmZzZXRXaWR0aHx8IWIub2Zmc2V0 SGVpZ2h0KTspYj1VKGIpO2lmKCFiKXJldHVybiBudWxsO3ZhciB2PWJbSl07aWYo IXZ8fDA+dilyZXR1cm4gbnVsbDt2YXIgZT17bW91c2Vtb3ZlOlBiLGNsaWNrOkxh LGRibGNsaWNrOk1hLG1vdXNlZG93bjpELG1vdXNldXA6bWEsdG91Y2g6UWJ9W2Zd O2lmKCFlKXJldHVybiBudWxsO3ZhciByPUJiKGIpO2I9W107eihiLGUpO24oYixh KTtuKGIsdik7bihiLE1hdGgubWF4KDAsa1swXS1yWzBdKSk7bihiLE1hdGgubWF4 KDAsa1sxXS1yWzFdKSk7L15tb3VzZSh1cHxkb3duKXxjbGljayQvLnRlc3QoZikm JihhPWN8fGcseihiLDI+YT9WYTphPT0oYz8yOjQpP1dhOnJhKSk7cmV0dXJuIGJ9 ZnVuY3Rpb24gVihhLGYsYixrKXtmPWZbSl07aWYoIWZ8fDA+ZilyZXR1cm4gbnVs bDt2YXIgYz1bXTt6KGMsS2EpO24oYyxhKTtuKGMsZik7bihjLGJbMF0pO24oYyxi WzFdKTt6KGMsMCk7CnooYywwKTt6KGMsayk7cmV0dXJuIGN9ZnVuY3Rpb24gZGEo YSxmKXt2YXIgYj1bXTt6KGIsRik7bihiLGEpO24oYixmWzBdKTtuKGIsZlsxXSk7 cmV0dXJuIGJ9ZnVuY3Rpb24gZ2EoYSxmLGIpe3ZhciBrPVtdO2I9YltKXTtpZigh Ynx8MD5iKXJldHVybiBudWxsO3ooayxwYSk7bihrLGEpO24oayxmWzBdKTtuKGss ZlsxXSk7bihrLGIpO3JldHVybiBrfWZ1bmN0aW9uIHFhKGEsZixiKXt2YXIgaz1b XTt6KGssSGEpO24oayxhKTtuKGssZlswXSk7bihrLGZbMV0pO24oayxiWzBdKTtu KGssYlsxXSk7cmV0dXJuIGt9ZnVuY3Rpb24gWShhLGYsYixrKXt2YXIgYz1bXTt6 KGMsdCk7bihjLGEpO0woYyxmKTt6KGMsYik7YT1rW0pdO2lmKCFhfHwwPmEpYT0w O24oYyxhKTtyZXR1cm4gY31mdW5jdGlvbiBrYShhLGYpe3ZhciBiLGs7MD09Zi5s ZW5ndGg/az1iPSIiOjEwMD49Zi5sZW5ndGg/KGI9ZixrPSIiKToyMDA+PWYubGVu Z3RoPyhiPWYuc3Vic3RyKDAsMTAwKSxrPWYuc3Vic3RyKDEwMCkpOgooYj1mLnN1 YnN0cigwLDk3KSxrPWYuc3Vic3RyKGYubGVuZ3RoLTk3KSk7dmFyIGM9W107eihj LElhKTtuKGMsYSk7TShjLGIpO00oYyxrKTtyZXR1cm4gY31mdW5jdGlvbiBlYShh KXt2YXIgZj1bXTt6KGYsR2EpO24oZixhKTtyZXR1cm4gZn1mdW5jdGlvbiBmYShh KXt2YXIgZj1bXTt6KGYsRSk7bihmLGEpO3JldHVybiBmfWZ1bmN0aW9uIHNhKGEp e3ZhciBmPVtdO3ooZixSYik7bihmLGEpO3JldHVybiBmfWZ1bmN0aW9uIHRhKGEs Zil7dmFyIGI9W107eihiLENhKTtuKGIsYSk7bihiLGZbSl0pO3JldHVybiBifWZ1 bmN0aW9uIFooYSxmKXt2YXIgYj1bXTt6KGIsRGEpO24oYixhKTtuKGIsZltKXSk7 cmV0dXJuIGJ9ZnVuY3Rpb24gTmEoYSxmLGIpe3ZhciBrPVtdO3ooayxFYSk7bihr LGEpO24oayxmW0pdKTtQKGssU3RyaW5nKGIpKTtyZXR1cm4ga31mdW5jdGlvbiB3 YShhKXt2YXIgZj1hW0pdO2lmKCFmfHwwPmZ8fCEvXklOUFVUfFNFTEVDVHxURVhU QVJFQSQvLnRlc3QoYS5ub2RlTmFtZSl8fAohYS5mb3JtfHxuYShhLmZvcm0sIi1t ZXRyaWthLW5vZm9ybSIpKXJldHVybiBudWxsO3ZhciBiPUZiKGEuZm9ybSk7aWYo MD5iKXJldHVybiBudWxsO3ZhciBrO2s9IklOUFVUIj09YS5ub2RlTmFtZT97dGV4 dDowLGNvbG9yOjAsZGF0ZTowLGRhdGV0aW1lOjAsImRhdGV0aW1lLWxvY2FsIjow LGVtYWlsOjAsbnVtYmVyOjAscmFuZ2U6MCxzZWFyY2g6MCx0ZWw6MCx0aW1lOjAs dXJsOjAsbW9udGg6MCx3ZWVrOjAscGFzc3dvcmQ6MixyYWRpbzozLGNoZWNrYm94 OjQsZmlsZTo2LGltYWdlOjd9W2EudHlwZV06e1NFTEVDVDoxLFRFWFRBUkVBOjV9 W2Eubm9kZU5hbWVdO2lmKCJudW1iZXIiIT10eXBlb2YgaylyZXR1cm4gbnVsbDtm b3IodmFyIGM9LTEsZz1hLmZvcm0uZWxlbWVudHMsdj1nLmxlbmd0aCxlPTAscj0w O2U8djtlKyspaWYoZ1tlXS5uYW1lPT1hLm5hbWUpe2lmKGdbZV09PWEpe2M9cjti cmVha31yKyt9aWYoMD5jKXJldHVybiBudWxsO2c9W107eihnLHcpO24oZyxmKTsK bihnLGIpO24oZyxrKTtNKGcsYS5uYW1lfHwiIik7bihnLGMpO3JldHVybiBnfWZ1 bmN0aW9uIE9hKGEsZil7dmFyIGI9RmIoZik7aWYoMD5iKXJldHVybiBudWxsO2Zv cih2YXIgaz1mLmVsZW1lbnRzLGM9ay5sZW5ndGgsZz1bXSx2PTA7djxjO3YrKylp ZighR2Ioa1t2XSkpe3ZhciBlPWtbdl1bSl07ZSYmMDxlJiZOKGcsZSl9az1bXTt6 KGssU2IpO24oayxhKTtuKGssYik7bihrLGcubGVuZ3RoKTtmb3IoYj0wO2I8Zy5s ZW5ndGg7YisrKW4oayxnW2JdKTtyZXR1cm4ga31mdW5jdGlvbiBiYSgpe3ZhciBh PVtdO3ooYSxUYik7cmV0dXJuIGF9ZnVuY3Rpb24gRyhhLGYsYil7YT1hLmFwcGx5 KGQsZik7UGEuYXBwZW5kKGEsYil9ZnVuY3Rpb24gSyhhKXtpZihhW0pdKWE6e3Zh ciBmPXkoKSxiPWFbSl07aWYoMDxiKXt2YXIgaz1bXTthPWtiKGEpO3ZhciBjPWNi W2JdLGc9YVswXSsieCIrYVsxXSx2PWFbMl0rIngiK2FbM107ZyE9Yy5wb3MmJihj LnBvcz1nLHooayxVYiksbihrLGYpLApuKGssYiksbihrLGFbMF0pLG4oayxhWzFd KSk7diE9Yy5zaXplJiYoYy5zaXplPXYseihrLFZiKSxuKGssZiksbihrLGIpLG4o ayxhWzJdKSxuKGssYVszXSkpO2lmKGsubGVuZ3RoKXthPWs7YnJlYWsgYX19YT1u dWxsfWVsc2V7KGI9VShhKSkmJksoYik7YVtKXT1wYjtjYltwYl09e307cGIrKztp ZihhLm5vZGVOYW1lKWlmKGI9K2FbSl0sIWlzRmluaXRlKGIpfHwwPj1iKWY9bnVs bDtlbHNle3ZhciBrPXhhLGM9MCxlPVUoYSksZz1lJiZlW0pdP2VbSl06MDswPmcm JihnPTApO3ZhciB2PWEubm9kZU5hbWUudG9VcHBlckNhc2UoKSxyPWhiW3ZdO3J8 fChrfD1aYSk7dmFyIGQ7Yjp7ZD1DYihVKGEpLGEubm9kZU5hbWUpO2Zvcih2YXIg bT0wO208ZC5sZW5ndGg7bSsrKWlmKGRbbV09PWEpe2Q9bTticmVhayBifWQ9MH1k fHwoa3w9dWEpO209a2IoYSk7KGU9ZT9rYihlKTpudWxsKSYmbVswXT09ZVswXSYm bVsxXT09ZVsxXSYmbVsyXT09ZVsyXSYmbVszXT09ZVszXSYmKGt8PWxhKTsKY2Jb Yl0ucG9zPW1bMF0rIngiK21bMV07Y2JbYl0uc2l6ZT1tWzJdKyJ4IittWzNdO2Eu aWQmJiJzdHJpbmciPT10eXBlb2YgYS5pZCYmKGt8PUphKTsoZT1EYihhKSkmJihr fD12YSk7dmFyIGg9RWIoYSk7aCYmKGN8PXlhKTt2YXIgbDtiOntsPUNiKFUoYSks YS50YWdOYW1lKTtmb3IodmFyIFM9MDtTPGwubGVuZ3RoO1MrKylpZigoIWxbU10u aWR8fCJzdHJpbmciIT10eXBlb2YgbFtTXS5pZCkmJkViKGxbU10pPT1oJiZEYihs W1NdKT09ZSl7bD0hMDticmVhayBifWw9ITF9bCYmKGt8PUZhLGY9YWIoKGEuaW5u ZXJIVE1MfHwiIikucmVwbGFjZSgvKDxbXj5dKj58W1x1MDAwMC1cdTAwMjBdKS9n LCIiKSkpO2w9W107eihsLFdiKTtuKGwsYik7eihsLGspO24obCxnKTtyP3oobCxy KTpQKGwsdik7ZCYmbihsLGQpO2smbGF8fChuKGwsbVswXSksbihsLG1bMV0pLG4o bCxtWzJdKSxuKGwsbVszXSkpO2smSmEmJlAobCxhLmlkKTtlJiZMKGwsZSk7ayZG YSYmTChsLGYpO3oobCxjKTtoJiYKTChsLGgpO2Y9bH1lbHNlIGFbSl09LTEsZj1u dWxsO1BhLmFwcGVuZChmLHZvaWQgMCk7YT13YShhKX1QYS5hcHBlbmQoYSx2b2lk IDApfWZ1bmN0aW9uIFcoYSl7dmFyIGY9JChhKSxiLGssYz0wO2lmKGYmJiJTQ1JP TExCQVIiIT1mLm5vZGVOYW1lKXtpZihmJiYvXklOUFVUfFNFTEVDVHxURVhUQVJF QXxCVVRUT04kLy50ZXN0KGYudGFnTmFtZSkpaWYoZltKXSlLKGYpO2Vsc2UgaWYo Yj1VKGYsImZvcm0iKSlmb3IoYj1iLmVsZW1lbnRzLGs9Yi5sZW5ndGg7YzxrO2Mr KykvXklOUFVUfFNFTEVDVHxURVhUQVJFQXxCVVRUT04kLy50ZXN0KGJbY10udGFn TmFtZSkmJiFiW2NdW0pdJiZLKGJbY10pO2Vsc2UgSyhmKTtlbHNlIEsoZik7RyhY LFt5KCksYS50eXBlLGYscyhhKSxhLndoaWNoLGEuYnV0dG9uXSl9fWZ1bmN0aW9u IFFhKGEpe1coYSk7dmFyIGYsYjtkLmdldFNlbGVjdGlvbj8oYT1kLmdldFNlbGVj dGlvbigpLGY9YS50b1N0cmluZygpLGI9YS5hbmNob3JOb2RlKTpjLnNlbGVjdGlv biYmCmMuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlJiYoYT1jLnNlbGVjdGlvbi5jcmVh dGVSYW5nZSgpLGY9YS50ZXh0LGI9YS5wYXJlbnRFbGVtZW50KCkpO2Zvcig7YiYm MSE9Yi5ub2RlVHlwZTspYj1iLnBhcmVudE5vZGU7YiYmIklOUFVUIj09Yi50YWdO YW1lJiYicGFzc3dvcmQiPT1iLnR5cGV8fGImJigvKD86XnxccyktbWV0cmlrYS1u b2tleXMoPzpcc3wkKS8udGVzdChiLmNsYXNzTmFtZSl8fEhiKCItbWV0cmlrYS1u b2tleXMiLGIpLmxlbmd0aCl8fGY9PXFifHwocWI9ZixHKGthLFt5KCksZl0pKX1m dW5jdGlvbiB4KGEpe3ZhciBmPUEoKSxiPWYtWGE7aWYoIShiPEliKSl7dmFyIGs9 cyhhKSxjPXJiWzBdLWtbMF0sZz1yYlsxXS1rWzFdLGM9YypjK2cqZzswPj1jfHwx Nj5jJiYxMDA+Ynx8MjA+YiYmMjU2PmN8fChYYT1mLHJiPWssVyhhKSl9fWZ1bmN0 aW9uIHUoKXtUPUFiKCk7dmFyIGE9QSgpO2EtJGE8SWJ8fDEwPk1hdGguYWJzKFRb MF0tc2JbMF0pJiYxMD5NYXRoLmFicyhUWzFdLQpzYlsxXSl8fCgkYT1hLHNiPVQs RyhkYSxbeSgpLFRdKSl9ZnVuY3Rpb24gemEoYSl7YT0kKGEpO3ZhciBmPU1hdGgu cmFuZG9tKCksYj1bYS5zY3JvbGxMZWZ0LGEuc2Nyb2xsVG9wXTtpZihhLmxvY2Fs SWQpe2lmKGY9dGJbYS5sb2NhbElkXSwhZnx8MTA+TWF0aC5hYnMoYlswXS1mWzBd KSYmMTA+TWF0aC5hYnMoYlsxXS1mWzFdKSlyZXR1cm59ZWxzZXtmb3IoO3RiW2Zd OylmPU1hdGgucmFuZG9tKCk7YS5sb2NhbElkPWZ9dGJbYS5sb2NhbElkXT1iO2Eh PT1jJiYoSyhhKSxHKGdhLFt5KCksYixhXSkpfWZ1bmN0aW9uIFJhKCl7RyhxYSxb eSgpLHliKCksemIoKV0pfWZ1bmN0aW9uIEFhKGEpe0coYmEsW10sITApO3RyeXtp ZigiYmVmb3JldW5sb2FkIj09YS50eXBlKWZvcih2YXIgZj0rbmV3IERhdGUrNTA7 K25ldyBEYXRlPGY7KTt9Y2F0Y2goYil7fX1mdW5jdGlvbiBpYShhLGYsYil7YT0k KGEpOyJJTlBVVCI9PWEudGFnTmFtZSYmInBhc3N3b3JkIj09YS50eXBlfHwvKD86 XnxccyktbWV0cmlrYS1ub2tleXMoPzpcc3wkKS8udGVzdChhLmNsYXNzTmFtZSl8 fAooSyhhKSxHKFksW3koKSxmLGIsYV0pKX1mdW5jdGlvbiBRKGEpe3ZhciBmPWEu a2V5Q29kZSxiPUkoYSk7aWYoezM6MSw4OjEsOToxLDEzOjEsMTY6MSwxNzoxLDE4 OjEsMTk6MSwyMDoxLDI3OjEsMzM6MSwzNDoxLDM1OjEsMzY6MSwzNzoxLDM4OjEs Mzk6MSw0MDoxLDQ1OjEsNDY6MSw5MToxLDkyOjEsOTM6MSwxMDY6MSwxMTA6MSwx MTE6MSwxNDQ6MSwxNDU6MX1bZl18fDExMjw9ZiYmMTIzPj1mfHw5Njw9ZiYmMTA1 Pj1mfHxiJmJiKTE5PT1mJiYoYiZ+YmIpPT1sYiYmKGY9MTQ0KSxpYShhLGYsYnxi YiksdWI9ITEsTyhmdW5jdGlvbigpe3ViPSEwfSwxKSw2Nz09ZiYmYiZsYiYmIShi Jm9hfHxiJmhhKSYmY2EoKX1mdW5jdGlvbiBqYShhKXt1YiYmIXZiJiYwIT09YS53 aGljaCYmKGlhKGEsYS5jaGFyQ29kZXx8YS5rZXlDb2RlLEkoYSkpLHZiPSEwLE8o ZnVuY3Rpb24oKXt2Yj0hMX0sMSkpfWZ1bmN0aW9uIGNhKCl7d2J8fCh3Yj0hMCxx YiYmRyhlYSxbeSgpXSksTyhmdW5jdGlvbigpe3diPQohMX0sMSkpfWZ1bmN0aW9u IEJhKCl7U2F8fChTYT0hMCxHKGZhLFt5KCldKSl9ZnVuY3Rpb24gUigpe1NhJiYo U2E9ITEsRyhzYSxbeSgpXSkpfWZ1bmN0aW9uIGYoYSl7KCFTYXx8YSYmIWEuZnJv bUVsZW1lbnQpJiZCYSgpfWZ1bmN0aW9uIGsoYSl7YSYmIWEudG9FbGVtZW50JiZS KCl9ZnVuY3Rpb24gdihhKXthPSQoYSk7dmFyIGYsYixrPTA7aWYoYSYmL15JTlBV VHxTRUxFQ1R8VEVYVEFSRUF8QlVUVE9OJC8udGVzdChhLnRhZ05hbWUpKXtpZihh W0pdKUsoYSk7ZWxzZSBpZihmPVUoYSwiZm9ybSIpKWZvcihmPWYuZWxlbWVudHMs Yj1mLmxlbmd0aDtrPGI7aysrKS9eSU5QVVR8U0VMRUNUfFRFWFRBUkVBfEJVVFRP TiQvLnRlc3QoZltrXS50YWdOYW1lKSYmIWZba11bSl0mJksoZltrXSk7ZWxzZSBL KGEpO0codGEsW3koKSxhXSl9fWZ1bmN0aW9uIHIoYSl7KGE9JChhKSkmJi9eSU5Q VVR8U0VMRUNUfFRFWFRBUkVBfEJVVFRPTiQvLnRlc3QoYS50YWdOYW1lKSYmKEso YSksRyhaLApbeSgpLGFdKSl9ZnVuY3Rpb24gUyhhKXthPSQoYSk7aWYoISgiSU5Q VVQiPT1hLnRhZ05hbWUmJiJwYXNzd29yZCI9PWEudHlwZXx8YSYmLyg/Ol58XHMp LW1ldHJpa2Etbm9rZXlzKD86XHN8JCkvLnRlc3QoYS5jbGFzc05hbWUpKSYmYSYm L15JTlBVVHxTRUxFQ1R8VEVYVEFSRUEkLy50ZXN0KGEudGFnTmFtZSkpe3ZhciBm PS9eKGNoZWNrYm94fHJhZGlvKSQvLnRlc3QoYS50eXBlKT9hLmNoZWNrZWQ6YS52 YWx1ZTtLKGEpO0coTmEsW3koKSxhLGZdKX19ZnVuY3Rpb24gVGEoYSl7YT0kKGEp O2lmKCFuYShhLCItbWV0cmlrYS1ub2Zvcm0iKSYmIkZPUk0iPT1hLm5vZGVOYW1l KXtmb3IodmFyIGY9YS5lbGVtZW50cyxiPTA7YjxmLmxlbmd0aDtiKyspR2IoZlti XSl8fEsoZltiXSk7RyhPYSxbeSgpLGFdLCEwKX19ZnVuY3Rpb24gbShhKXt1KCk7 aWYoYS50b3VjaGVzJiZhLnRvdWNoZXMubGVuZ3RoKXt2YXIgZj0kKGEpO2lmKGYp e0soZik7Zm9yKHZhciBiPTA7YjxhLnRvdWNoZXMubGVuZ3RoO2IrKylHKFgsClt5 KCksInRvdWNoIixmLFthLnRvdWNoZXNbYl0ucGFnZVgsYS50b3VjaGVzW2JdLnBh Z2VZXSwwLDBdKX19fWZ1bmN0aW9uIGRiKGEpe3ZhciBmPSQoYSk7aWYoZil7dmFy IGI7IndoZWVsIj09YS50eXBlP2I9MDxhLmRlbHRhWT8xOjA+YS5kZWx0YVk/Mjow OiJtb3VzZXdoZWVsIj09YS50eXBlJiYoYj0wPGEud2hlZWxEZWx0YT8yOjA+YS53 aGVlbERlbHRhPzE6MCk7YiYmKEsoZiksRyhWLFt5KCksZixzKGEpLGJdKSl9fXZh ciBQYT1uZXcgSmIoe3Byb3RvY29sOmEsY291bnRlcklkOmIsY291bnRlclR5cGU6 ZyxtZXRhOnt1cmw6QygpLmhyZWYsaGl0SWQ6ZSx0aW1lem9uZTplYix0aW1lc3Rh bXA6VWF9fSksbmI9MjAsT2I9NTAsSWI9MTAsV2I9MSxQYj0yLEY9MyxwYT0xNixE PTQsdD01LHc9NyxVYj05LFZiPTEwLFNiPTExLFFiPTEyLFRiPTEzLEU9MTQsUmI9 MTUsQ2E9MTcsRGE9MTgsRWE9MTksR2E9MjcsSGE9MjgsSWE9MjksbWE9MzAsS2E9 MzEsTGE9MzIsTWE9MzMsVmE9MSwKcmE9MixXYT00LEZhPTEsWmE9Mix1YT00LGxh PTgsdmE9MTYsSmE9MzIseGE9NjQseWE9MixvYT0xLGhhPTIsbGI9NCxnYj04LGJi PTE2LGhiPXtBOjEsQUJCUjoyLEFDUk9OWU06MyxBRERSRVNTOjQsQVBQTEVUOjUs QVJFQTo2LEI6NyxCQVNFOjgsQkFTRUZPTlQ6OSxCRE86MTAsQklHOjExLEJMT0NL UVVPVEU6MTIsQk9EWToxMyxCUjoxNCxCVVRUT046MTUsQ0FQVElPTjoxNixDRU5U RVI6MTcsQ0lURToxOCxDT0RFOjE5LENPTDoyMCxDT0xHUk9VUDoyMSxERDoyMixE RUw6MjMsREZOOjI0LERJUjoyNSxESVY6MjYsREw6MjcsRFQ6MjgsRU06MjksRklF TERTRVQ6MzAsRk9OVDozMSxGT1JNOjMyLEZSQU1FOjMzLEZSQU1FU0VUOjM0LEgx OjM1LEgyOjM2LEgzOjM3LEg0OjM4LEg1OjM5LEg2OjQwLEhFQUQ6NDEsSFI6NDIs SFRNTDo0MyxJOjQ0LElGUkFNRTo0NSxJTUc6NDYsSU5QVVQ6NDcsSU5TOjQ4LElT SU5ERVg6NDksS0JEOjUwLExBQkVMOjUxLExFR0VORDo1MixMSTo1MyxMSU5LOjU0 LApNQVA6NTUsTUVOVTo1NixNRVRBOjU3LE5PRlJBTUVTOjU4LE5PU0NSSVBUOjU5 LE9CSkVDVDo2MCxPTDo2MSxPUFRHUk9VUDo2MixPUFRJT046NjMsUDo2NCxQQVJB TTo2NSxQUkU6NjYsUTo2NyxTOjY4LFNBTVA6NjksU0NSSVBUOjcwLFNFTEVDVDo3 MSxTTUFMTDo3MixTUEFOOjczLFNUUklLRTo3NCxTVFJPTkc6NzUsU1RZTEU6NzYs U1VCOjc3LFNVUDo3OCxUQUJMRTo3OSxUQk9EWTo4MCxURDo4MSxURVhUQVJFQTo4 MixURk9PVDo4MyxUSDo4NCxUSEVBRDo4NSxUSVRMRTo4NixUUjo4NyxUVDo4OCxV Ojg5LFVMOjkwLFZBUjo5MSxOT0lOREVYOjEwMH0sYWE9W10sbWI9MDtCKDApO3Zh ciBvYj0wLHBiPTEsWGE9MCxyYj1bMCwwXSwkYT0wLHNiPVswLDBdLHRiPXt9LHVi PSEwLHZiPSExLHFiPSIiLHdiPSExLFNhPSEwLGliPUEoKSxKPSJtZXRyaWthSWRf IitNYXRoLnJhbmRvbSgpLGNiPXt9LGZiPSI6c3VibWl0IitNYXRoLnJhbmRvbSgp OyJNZXRyaWthUGxheWVyIiE9ZC5uYW1lJiYKKGgoYywibW91c2Vtb3ZlIix4KSxo KGMsImNsaWNrIixXKSxoKGMsImRibGNsaWNrIixXKSxoKGMsIm1vdXNlZG93biIs VyksaChjLCJtb3VzZXVwIixRYSksaChkLCJzY3JvbGwiLHUpLCJvbm1vdXNld2hl ZWwiaW4gYz9oKGMsIm1vdXNld2hlZWwiLGRiKTpoKGMsIndoZWVsIixkYiksaChk LCJiZWZvcmV1bmxvYWQiLEFhKSxLYnx8aChkLCJ1bmxvYWQiLEFhKSxoKGQsInJl c2l6ZSIsUmEpLGgoYywia2V5ZG93biIsUSksaChjLCJrZXlwcmVzcyIsamEpLGgo YywiY29weSIsY2EpLGgoYywidG91Y2htb3ZlIixtKSxoKGMsInRvdWNoc3RhcnQi LG0pLGMuYXR0YWNoRXZlbnQmJiFkLm9wZXJhPyhoKGMsImZvY3VzaW4iLGYpLGgo YywiZm9jdXNvdXQiLGspKTooaChkLCJmb2N1cyIsQmEpLGgoZCwiYmx1ciIsUiks aChjLCJibHVyIixSKSksYy5hZGRFdmVudExpc3RlbmVyPyhjLmFkZEV2ZW50TGlz dGVuZXIoInNjcm9sbCIsemEsITApLGMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMi LAp2LCEwKSxjLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLHIsITApLGMuYWRkRXZl bnRMaXN0ZW5lcigiY2hhbmdlIixTLCEwKSxjLmFkZEV2ZW50TGlzdGVuZXIoInN1 Ym1pdCIsVGEsITApKTpjLmF0dGFjaEV2ZW50JiYoaChjLCJmb2N1c2luIix2KSxo KGMsImZvY3Vzb3V0IixyKSxmdW5jdGlvbigpe2Zvcih2YXIgYT1jLmdldEVsZW1l bnRzQnlUYWdOYW1lKCJmb3JtIiksZj0wO2Y8YS5sZW5ndGg7ZisrKXtmb3IodmFy IGI9YVtmXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLGs9MDtrPGIubGVuZ3Ro O2srKykvXklOUFVUfFNFTEVDVHxURVhUQVJFQSQvLnRlc3QoYltrXS50YWdOYW1l KSYmaChiW2tdLCJjaGFuZ2UiLFMpO2goYVtmXSwic3VibWl0IixUYSl9fSgpKSxm dW5jdGlvbigpe3ZhciBhPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImZvcm0iKTtp ZihhLmxlbmd0aClmb3IodmFyIGY9MDtmPGEubGVuZ3RoO2YrKylhW2ZdW2ZiXT1h W2ZdLnN1Ym1pdCxhW2ZdLnN1Ym1pdD0KZnVuY3Rpb24oKXtUYSh7dGFyZ2V0OnRo aXN9KTtyZXR1cm4gdGhpc1tmYl0oKX19KCksIjA6MCIhPVQuam9pbigiOiIpJiZ1 KCksUmEoKSxwLnVwbG9hZFBhZ2U9ZnVuY3Rpb24oZil7aWYoImZ1bmN0aW9uIj09 dHlwZW9mIGQudG9TdGF0aWNIVE1MJiYtMTxkLnRvU3RhdGljSFRNTC50b1N0cmlu ZygpLmluZGV4T2YoIk5vU2NyaXB0IikpcmV0dXJuITE7dmFyIGs9Yy5kb2N1bWVu dEVsZW1lbnQ7aWYoayYmMTlFNDwoIiIray5pbm5lckhUTUwpLmxlbmd0aClyZXR1 cm4hMTt2YXIgdj1kLlhNTEh0dHBSZXF1ZXN0P25ldyBkLlhNTEh0dHBSZXF1ZXN0 Om5ldyBBY3RpdmVYT2JqZWN0KCJNc3htbDIuWE1MSFRUUCIpLHI9KCIiKyhjLmNo YXJhY3RlclNldHx8Yy5jaGFyc2V0fHwiIikpLnRvTG93ZXJDYXNlKCksaz0idGV4 dC9odG1sIisocj8iO2NoYXJzZXQ9IityOiIiKSxtPW5ldyBYYih7cHJvdG9jb2w6 YSxjb3VudGVySWQ6Yixjb3VudGVyVHlwZTpnfSk7aWYoImh0bWwiPT1mKXJldHVy biBmPQpSZWdFeHAoIjxzY3JpcHQgW14+XSo/Ly9tY1xcLnlhbmRleFxcLnJ1L3dh dGNoLy4qP1x4M2Mvc2NyaXB0PiIsImdpIiksbS5zZW5kQ29udGVudChMYigpLnJl cGxhY2UoZiwiIiksayxlLGViLFVhKSwhMDt2JiYodi5vcGVuKCJnZXQiLEMoKS5o cmVmLCEwKSx2Lm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpezQ9PXYucmVh ZHlTdGF0ZSYmbS5zZW5kQ29udGVudCh2LnJlc3BvbnNlVGV4dCx2LmdldFJlc3Bv bnNlSGVhZGVyKCJjb250ZW50LXR5cGUiKSxlLGViLFVhKX0sdi5vdmVycmlkZU1p bWVUeXBlJiZyJiZ2Lm92ZXJyaWRlTWltZVR5cGUoayksdi5zZW5kKG51bGwpKTty ZXR1cm4hMH0pO3JldHVybntzdGFydDpmdW5jdGlvbigpe1BhLmFjdGl2YXRlKCl9 LHN0b3A6ZnVuY3Rpb24oKXtQYS5jbGVhcigpO3EoYywibW91c2Vtb3ZlIix4KTtx KGMsImNsaWNrIixXKTtxKGMsImRibGNsaWNrIixXKTtxKGMsIm1vdXNlZG93biIs Vyk7cShjLCJtb3VzZXVwIixRYSk7cShjLCJtb3VzZXdoZWVsIiwKZGIpO3EoYywi d2hlZWwiLGRiKTtxKGQsInNjcm9sbCIsdSk7cShkLCJiZWZvcmV1bmxvYWQiLEFh KTtxKGQsInVubG9hZCIsQWEpO3EoZCwicmVzaXplIixSYSk7cShjLCJrZXlkb3du IixRKTtxKGMsImtleXByZXNzIixqYSk7cShjLCJjb3B5IixjYSk7cShjLCJ0b3Vj aG1vdmUiLG0pO3EoYywidG91Y2hzdGFydCIsbSk7cShjLCJmb2N1c2luIixmKTtx KGMsImZvY3Vzb3V0IixrKTtxKGQsImZvY3VzIixCYSk7cShkLCJibHVyIixSKTtx KGMsImJsdXIiLFIpO2MucmVtb3ZlRXZlbnRMaXN0ZW5lcj8oYy5yZW1vdmVFdmVu dExpc3RlbmVyKCJzY3JvbGwiLHphLCEwKSxjLnJlbW92ZUV2ZW50TGlzdGVuZXIo ImZvY3VzIix2LCEwKSxjLnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLHIsITAp LGMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixTLCEwKSxjLnJlbW92ZUV2 ZW50TGlzdGVuZXIoInN1Ym1pdCIsVGEsITApKTpjLmRldGFjaEV2ZW50JiYocShj LCJmb2N1c2luIix2KSwKcShjLCJmb2N1c291dCIsciksZnVuY3Rpb24oKXtmb3Io dmFyIGE9Yy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZm9ybSIpLGY9MDtmPGEubGVu Z3RoO2YrKyl7Zm9yKHZhciBiPWFbZl0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioi KSxrPTA7azxiLmxlbmd0aDtrKyspL15JTlBVVHxTRUxFQ1R8VEVYVEFSRUEkLy50 ZXN0KGJba10udGFnTmFtZSkmJnEoYltrXSwiY2hhbmdlIixTKTtxKGFbZl0sInN1 Ym1pdCIsVGEpfX0oKSk7KGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWMuZ2V0RWxlbWVu dHNCeVRhZ05hbWUoImZvcm0iKSxmPTA7ZjxhLmxlbmd0aDtmKyspYVtmXVtmYl0m JihhW2ZdLnN1Ym1pdD1hW2ZdW2ZiXSl9KSgpfSx1cGxvYWRQYWdlczpmdW5jdGlv bihhLGYpe2Z1bmN0aW9uIGIoKXtxKGMsIkRPTUNvbnRlbnRMb2FkZWQiLGIpO3Eo ZCwibG9hZCIsYik7Zm9yKHZhciBrPWEuc3BsaXQoL1xuLyksZz1DKCkuaHJlZix2 PS9yZWdleHA6LyxlPTA7ZTxrLmxlbmd0aDtlKyspe3ZhciByPQprW2VdO2lmKHIp aWYodi50ZXN0KHIpKXtpZihyPXhiKHIucmVwbGFjZSh2LCIiKSksUmVnRXhwKHIp LnRlc3QoZykpe3AudXBsb2FkUGFnZShmKTticmVha319ZWxzZSBpZigtMSE9PWcu aW5kZXhPZihyKSl7cC51cGxvYWRQYWdlKGYpO2JyZWFrfX19ImNvbXBsZXRlIj09 Yy5yZWFkeVN0YXRlP2IoKTooaChjLCJET01Db250ZW50TG9hZGVkIixiKSxoKGQs ImxvYWQiLGIpKX19fXZhciBZYj0hMSxsYT0iIixLYj0hS2EoL3dlYmtpdC8pJiZL YSgvZ2Vja28vKSxUPUFiKCksVj1bXSxWYT1udWxsLHM9e21peGluOmZ1bmN0aW9u KGEpe2Zvcih2YXIgYj0xO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspaWYoYXJndW1l bnRzW2JdKXtmb3IodmFyIGMgaW4gYXJndW1lbnRzW2JdKWFyZ3VtZW50c1tiXS5o YXNPd25Qcm9wZXJ0eShjKSYmKGFbY109YXJndW1lbnRzW2JdW2NdKTthcmd1bWVu dHNbYl0uaGFzT3duUHJvcGVydHkoInRvU3RyaW5nIikmJihhLnRvU3RyaW5nPWFy Z3VtZW50c1tiXS50b1N0cmluZyl9cmV0dXJuIGF9fSwKTT1mdW5jdGlvbihhKXth PWF8fHt9O3MubWl4aW4odGhpcyxhKTt0aGlzLl9pbml0Q29tcG9uZW50KCl9O00u cHJvdG90eXBlLl9pbml0Q29tcG9uZW50PWZ1bmN0aW9uKCl7fTtNLmluaGVyaXQ9 ZnVuY3Rpb24oYSl7YT1hfHx7fTt2YXIgYj0iZnVuY3Rpb24iPT10eXBlb2YgdGhp cz90aGlzOk9iamVjdDthLmhhc093blByb3BlcnR5KCJjb25zdHJ1Y3RvciIpfHwo YS5jb25zdHJ1Y3Rvcj1mdW5jdGlvbigpe2IuYXBwbHkodGhpcyxhcmd1bWVudHMp fSk7dmFyIGM9ZnVuY3Rpb24oKXt9O2MucHJvdG90eXBlPWIucHJvdG90eXBlO2Eu Y29uc3RydWN0b3IucHJvdG90eXBlPW5ldyBjO3MubWl4aW4oYS5jb25zdHJ1Y3Rv ci5wcm90b3R5cGUsYSk7YS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuY29uc3RydWN0 b3I9YS5jb25zdHJ1Y3RvcjthLmNvbnN0cnVjdG9yLnN1cGVyY2xhc3M9Yi5wcm90 b3R5cGU7YS5jb25zdHJ1Y3Rvci5pbmhlcml0PU0uaW5oZXJpdDtyZXR1cm4gYS5j b25zdHJ1Y3Rvcn07CnZhciBkYT1NLmluaGVyaXQoe2NvdW50ZXJJZDoiIixfaW5p dENvbXBvbmVudDpmdW5jdGlvbigpe2RhLnN1cGVyY2xhc3MuX2luaXRDb21wb25l bnQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuX2J1ZmZlcj17fTt0aGlzLl9s cz1udWxsO3RyeXt0aGlzLl9scz1kLmxvY2FsU3RvcmFnZX1jYXRjaChhKXt9fSxz ZXQ6ZnVuY3Rpb24oYSxiKXtpZih0aGlzLmlzRW5hYmxlZCgpKXRyeXshYnx8YiYm bWEoYikmJiFiLmxlbmd0aD90aGlzLnJlbW92ZShhKTp0aGlzLl9scy5zZXRJdGVt KHRoaXMuX2dldExzS2V5KGEpLEpTT04uc3RyaW5naWZ5KGIpKX1jYXRjaChjKXt9 fSxnZXQ6ZnVuY3Rpb24oYSl7aWYodGhpcy5pc0VuYWJsZWQoKSl0cnl7cmV0dXJu IEpTT04ucGFyc2UodGhpcy5fbHMuZ2V0SXRlbSh0aGlzLl9nZXRMc0tleShhKSkp fWNhdGNoKGIpe31yZXR1cm4gbnVsbH0scmVtb3ZlOmZ1bmN0aW9uKGEpe2lmKHRo aXMuaXNFbmFibGVkKCkpdHJ5e3RoaXMuX2xzLnJlbW92ZUl0ZW0odGhpcy5fZ2V0 THNLZXkoYSkpfWNhdGNoKGIpe319LAppc0VuYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1 cm4gdGhpcy5fbHMmJmQuSlNPTiYmIm9iamVjdCI9PXR5cGVvZiB0aGlzLl9scyYm Im9iamVjdCI9PXR5cGVvZiBkLkpTT059LF9nZXRMc0tleTpmdW5jdGlvbihhKXty ZXR1cm4iX3ltIit0aGlzLmNvdW50ZXJJZCsiXyIrYX19KSxDYT1NLmluaGVyaXQo e2NvdW50ZXJJZDoiIixvbmx5Q3VycmVudERvbWFpbjohMSxza2lwUHJlZml4OiEx LF9pbml0Q29tcG9uZW50OmZ1bmN0aW9uKCl7Q2Euc3VwZXJjbGFzcy5faW5pdENv bXBvbmVudC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5fZG9tYWluPW51bGw7 aWYoIXRoaXMub25seUN1cnJlbnREb21haW4pZm9yKHZhciBhPUEuaG9zdC5zcGxp dCgiLiIpLGI9Mjs7KWlmKGI8PWEubGVuZ3RoKXtpZih0aGlzLl9kb21haW49Ii4i K2Euc2xpY2UoLWIpLmpvaW4oIi4iKSxiKyssdGhpcy5pc0VuYWJsZWQoKSlicmVh a31lbHNle3RoaXMuX2RvbWFpbj1udWxsO2JyZWFrfX0sY3JlYXRlOmZ1bmN0aW9u KGEsCmIsZyl7YT1bdGhpcy5fcHJlcGFyZU5hbWUoYSkrIj0iK2VuY29kZVVSSUNv bXBvbmVudChiKV07ZyYmKGI9bmV3IERhdGUsYi5zZXRUaW1lKGIuZ2V0VGltZSgp KzZFNCpnKSxhLnB1c2goImV4cGlyZXM9IitiLnRvR01UU3RyaW5nKCkpKTt0aGlz Ll9kb21haW4mJmEucHVzaCgiZG9tYWluPSIrdGhpcy5fZG9tYWluKTthLnB1c2go InBhdGg9LyIpO2MuY29va2llPWEuam9pbigiOyIpfSxyZWFkOmZ1bmN0aW9uKGEp e3JldHVybiBjLmNvb2tpZS5tYXRjaChSZWdFeHAoIig/Ol58O1xccyopIit0aGlz Ll9wcmVwYXJlTmFtZShhKSsiPShbXjtdKikiKSk/ZGVjb2RlVVJJQ29tcG9uZW50 KFJlZ0V4cC4kMSk6bnVsbH0sZXJhc2U6ZnVuY3Rpb24oYSl7dGhpcy5jcmVhdGUo YSwiIiwtMSl9LGlzRW5hYmxlZDpmdW5jdGlvbigpe3RoaXMuY3JlYXRlKCJtZXRy aWthX2VuYWJsZWQiLCIxIiw2MCk7dmFyIGE9ISF0aGlzLnJlYWQoIm1ldHJpa2Ff ZW5hYmxlZCIpO3RoaXMuZXJhc2UoIm1ldHJpa2FfZW5hYmxlZCIpOwpyZXR1cm4g YX0sX3ByZXBhcmVOYW1lOmZ1bmN0aW9uKGEpe3JldHVybih0aGlzLnNraXBQcmVm aXg/IiI6Il95bV8iKSthKyh0aGlzLmNvdW50ZXJJZD8iXyIrdGhpcy5jb3VudGVy SWQ6IiIpfX0pO0NhLmlzRW5hYmxlZD1mdW5jdGlvbigpe3JldHVybihuZXcgQ2Eo e29ubHlDdXJyZW50RG9tYWluOiEwfSkpLmlzRW5hYmxlZCgpfTtzLmZvckVhY2hL ZXk9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZCBpbiBhKWEuaGFzT3duUHJvcGVy dHkoZCkmJmIuY2FsbChjLGQsYVtkXSxhKX07cy5pbkFycmF5PWZ1bmN0aW9uKGEs Yil7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspaWYoYVtjXT09YilyZXR1cm4h MDtyZXR1cm4hMX07dmFyIEI9TS5pbmhlcml0KHt0cmFuc3BvcnRzOltdLHBvc3RQ YXJhbXM6W10sc2VuZDpmdW5jdGlvbihhLGIsYyxkKXtjPWN8fGZ1bmN0aW9uKCl7 fTt2YXIgZT17fSxwPXt9O3MuZm9yRWFjaEtleShiLGZ1bmN0aW9uKGEsYil7cy5p bkFycmF5KHRoaXMucG9zdFBhcmFtcywKYSk/cFthXT1iOmVbYV09Yn0sdGhpcyk7 Zm9yKGI9MDtiPHRoaXMudHJhbnNwb3J0cy5sZW5ndGg7YisrKWlmKChuZXcgdGhp cy50cmFuc3BvcnRzW2JdKS5yZXF1ZXN0KGEsZSxwLGMsZCkpcmV0dXJuITA7cmV0 dXJuITF9fSkscmE9e307cy5pc0FycmF5PWZ1bmN0aW9uKGEpe3JldHVybiJbb2Jq ZWN0IEFycmF5XSI9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKX07 cmEuc3RyaW5naWZ5PWZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM7Zm9yKGMgaW4gYSlp ZihhLmhhc093blByb3BlcnR5KGMpKXt2YXIgZD1hW2NdO2lmKHMuaXNBcnJheShk KSlmb3IodmFyIGU9MDtlPGQubGVuZ3RoO2UrKyliLnB1c2goZW5jb2RlVVJJQ29t cG9uZW50KGMpKyI9IitlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGRbZV0pKSk7 ZWxzZSBiLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGMpKyI9IitlbmNvZGVVUklD b21wb25lbnQoU3RyaW5nKGQpKSl9cmV0dXJuIGIuam9pbigiJiIpfTt2YXIgRGE9 Ck0uaW5oZXJpdCh7X2J1aWxkVXJsOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGErKC0x PGEuaW5kZXhPZigiPyIpPyImIjoiPyIpK3JhLnN0cmluZ2lmeShiKX19KSxMPURh LmluaGVyaXQoe3JlcXVlc3Q6ZnVuY3Rpb24oYSxiLGMsbCxlKXtpZigiW29iamVj dCBPcGVyYV0iPT17fS50b1N0cmluZy5jYWxsKGQub3BlcmEpKXt2YXIgcD1kLm9w ZXJhLnZlcnNpb24oKTtpZigic3RyaW5nIj09dHlwZW9mIHAmJiIxMiI9PXAuc3Bs aXQoIi4iKVswXSYmL1teYS16MC05LjotXS8udGVzdChBLmhvc3QpKXJldHVybiEx fWlmKCJYTUxIdHRwUmVxdWVzdCJpbiBkKXt2YXIgaD1uZXcgWE1MSHR0cFJlcXVl c3Q7aWYoIndpdGhDcmVkZW50aWFscyJpbiBoKXJldHVybiBoLm9wZW4oIlBPU1Qi LHRoaXMuX2J1aWxkVXJsKGEsYiksITApLGgud2l0aENyZWRlbnRpYWxzPSEwLGgu c2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwiYXBwbGljYXRpb24veC13 d3ctZm9ybS11cmxlbmNvZGVkIiksaC5zZW5kKHJhLnN0cmluZ2lmeShjKSksCmZ1 bmN0aW9uKCl7ND09aC5yZWFkeVN0YXRlPzIwMD09aC5zdGF0dXM/bC5jYWxsKGUp OjA8aC5zdGF0dXMmJlooIlhIUiBzdGF0dXMgIitoLnN0YXR1cyk6Tyhhcmd1bWVu dHMuY2FsbGVlLDUwLCJUcmFuc3BvcnRYSFIucmVxdWVzdCIpfSgpLCEwfXJldHVy biExfX0pO3MucmFuZG9tPWZ1bmN0aW9uKGEsYil7Mj5hcmd1bWVudHMubGVuZ3Ro JiYoYT0wKTsxPmFyZ3VtZW50cy5sZW5ndGgmJihiPTEwNzM3NDE4MjQpO3JldHVy biBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGItYSkpK2F9O3ZhciBlYT1EYS5p bmhlcml0KHtlbmN0eXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29k ZWQiLGh0bWxmaWxlT25seTohMSxfaW5pdENvbXBvbmVudDpmdW5jdGlvbigpe2Vh LnN1cGVyY2xhc3MuX2luaXRDb21wb25lbnQuYXBwbHkodGhpcyxhcmd1bWVudHMp OyJfaHRtbGZpbGUiaW4gZWEucHJvdG90eXBlfHwoZWEucHJvdG90eXBlLl9odG1s ZmlsZT10aGlzLl9jcmVhdGVIdG1sZmlsZSgpKTsKdGhpcy5fZG9jPXRoaXMuX2h0 bWxmaWxlfHwodGhpcy5odG1sZmlsZU9ubHk/bnVsbDpjKX0scmVxdWVzdDpmdW5j dGlvbihhLGIsYyxkLGUpe3ZhciBwPXRoaXMuX2RvYztpZighcClyZXR1cm4hMTt2 YXIgaD0iaWZyIitzLnJhbmRvbSgpLHE9cC5jcmVhdGVFbGVtZW50KCJkaXYiKTtx LnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7cS5zdHlsZS5sZWZ0PSItOTk5OTlw eCI7cS5zdHlsZS50b3A9Ii05OTk5OXB4Ijt2YXIgQz1bJzxpZnJhbWUgbmFtZT0i JyxoLCciPjwvaWZyYW1lPicsJzxmb3JtIGFjdGlvbj0iJyx0aGlzLl9idWlsZFVy bChhLGIpLCciIG1ldGhvZD0icG9zdCIgdGFyZ2V0PSInLGgsJyIgZW5jdHlwZT0i Jyx0aGlzLmVuY3R5cGUsJyI+J107cy5mb3JFYWNoS2V5KGMsZnVuY3Rpb24oYSl7 TihDLCc8dGV4dGFyZWEgbmFtZT0iJyxhLCciPjwvdGV4dGFyZWE+Jyl9KTtOKEMs IjwvZm9ybT4iKTtxLmlubmVySFRNTD1DLmpvaW4oIiIpO3AuYm9keS5hcHBlbmRD aGlsZChxKTsKdmFyIEk9cS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZm9ybSIpWzBd LEE9cS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF07cy5mb3JFYWNo S2V5KGMsZnVuY3Rpb24oYSxiKXtJW2FdLnZhbHVlPWJ9KTtBLm9ubG9hZD1IKGZ1 bmN0aW9uKCl7QS5vbmxvYWQ9bnVsbDtkLmNhbGwoZSl9LCJUcmFuc3BvcnRGb3Jt LnJlcXVlc3QuMSIpO0kuc3VibWl0KCk7TyhmdW5jdGlvbigpe3AuYm9keS5yZW1v dmVDaGlsZChxKX0sMUU0LCJUcmFuc3BvcnRGb3JtLnJlcXVlc3QuMiIpO3JldHVy biEwfSxfY3JlYXRlSHRtbGZpbGU6ZnVuY3Rpb24oKXt0cnl7aWYoZC5BY3RpdmVY T2JqZWN0KXt2YXIgYT1uZXcgQWN0aXZlWE9iamVjdCgiaHRtbGZpbGUiKTthLm9w ZW4oKTthLndyaXRlKCI8aHRtbD48Ym9keT48L2JvZHk+PC9odG1sPiIpO2EuY2xv c2UoKTtyZXR1cm4gYX19Y2F0Y2goYil7fXJldHVybiBudWxsfX0pLFk9ZWEuaW5o ZXJpdCh7aHRtbGZpbGVPbmx5OiEwfSksWmI9RGEuaW5oZXJpdCh7cmVxdWVzdDpm dW5jdGlvbihhLApiLGMsZCxlKXt2YXIgcD1uZXcgSW1hZ2U7cC5vbmxvYWQ9SChm dW5jdGlvbigpe2QuY2FsbChlKX0sIlRyYW5zcG9ydEltYWdlLnJlcXVlc3QiKTtw Lm9uZXJyb3I9SChmdW5jdGlvbigpe1ooIkltZyBvbmVycm9yIil9LCJUcmFuc3Bv cnRJbWFnZS5yZXF1ZXN0Iik7cC5zcmM9dGhpcy5fYnVpbGRVcmwoYSxzLm1peGlu KHt9LGIsYykpO3JldHVybiEwfX0pO3MubWVyZ2VBcnJheXM9ZnVuY3Rpb24oYSl7 Zm9yKHZhciBiPTE7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKylpZihzLmlzQXJyYXko YXJndW1lbnRzW2JdKSlmb3IodmFyIGM9MDtjPGFyZ3VtZW50c1tiXS5sZW5ndGg7 YysrKWFbYS5sZW5ndGhdPWFyZ3VtZW50c1tiXVtjXX07cy5kZWZlcj1mdW5jdGlv bihhLGIsYyxkLGUpe3JldHVybiBPKGZ1bmN0aW9uKCl7YS5hcHBseShjLGR8fFtd KX0sYixlKX07dmFyIFg9Qi5pbmhlcml0KHtwcm90b2NvbDoiIixob3N0OiJtYy55 YW5kZXgucnUiLHJlc291cmNlOiIiLGNvdW50ZXJJZDoiIiwKY291bnRlclR5cGU6 MCxyZXRyeTohMSx0cmFuc3BvcnRzOltMLFksWmJdLF9pbml0Q29tcG9uZW50OmZ1 bmN0aW9uKCl7WC5zdXBlcmNsYXNzLl9pbml0Q29tcG9uZW50LmFwcGx5KHRoaXMs YXJndW1lbnRzKTt0aGlzLnJldHJ5JiYodGhpcy5fc3RvcmFnZT1uZXcgZGEpfSxz ZW5kOmZ1bmN0aW9uKGEsYixjLGQpe2lmKHRoaXMucmV0cnkmJnRoaXMuX3N0b3Jh Z2UuaXNFbmFibGVkKCkpe2IucnFubD1iLnJxbmx8fDA7Yi5ycW5sKys7Zm9yKHZh ciBlPXRoaXMuX3N0b3JhZ2UuZ2V0KCJyZXRyeVJlcXMiKXx8e30scD0wO2VbcF07 KXArKztlW3BdPXtwcm90b2NvbDp0aGlzLnByb3RvY29sLGhvc3Q6dGhpcy5ob3N0 LHJlc291cmNlOnRoaXMucmVzb3VyY2UsY291bnRlcklkOnRoaXMuY291bnRlcklk LHBvc3RQYXJhbXM6dGhpcy5wb3N0UGFyYW1zLHBhcmFtczphLGJyb3dzZXJJbmZv OmIsZ2hpZDpZYS5fZ2xvYmFsTWV0cmlrYUhpdElkLHRpbWU6K25ldyBEYXRlfTt0 aGlzLl9zdG9yYWdlLnNldCgicmV0cnlSZXFzIiwKZSl9dmFyIGU9W3RoaXMucHJv dG9jb2wsIi8vIix0aGlzLmhvc3QsIi8iK3RoaXMucmVzb3VyY2UrIi8iK3RoaXMu Y291bnRlcklkXS5qb2luKCIiKSxoPVtdO2ImJihzLmZvckVhY2hLZXkoYixmdW5j dGlvbihhLGIpeyJ0IiE9YSYmcy5tZXJnZUFycmF5cyhoLFthLGJdKX0pLGIudCYm cy5tZXJnZUFycmF5cyhoLFsidCIsYi50XSkpO2gubGVuZ3RoJiYoYVsiYnJvd3Nl ci1pbmZvIl09aC5qb2luKCI6IikpO3RoaXMuY291bnRlclR5cGUmJihhWyJjbnQt Y2xhc3MiXT10aGlzLmNvdW50ZXJUeXBlKTtpZih0aGlzLnJldHJ5JiZ0aGlzLl9z dG9yYWdlLmlzRW5hYmxlZCgpKXZhciBxPXMuZGVmZXIoZnVuY3Rpb24oKXtaKCJy ZXF1ZXN0ZWQgMTAwMDAgKCIrdGhpcy5yZXNvdXJjZSsiKSIpfSwxRTQsdGhpcyxb XSwiU2VuZGVyQksudGltZW91dCIpO3JldHVybiBYLnN1cGVyY2xhc3Muc2VuZC5j YWxsKHRoaXMsZSxhLGZ1bmN0aW9uKCl7aWYodGhpcy5yZXRyeSYmdGhpcy5fc3Rv cmFnZS5pc0VuYWJsZWQoKSl7Y2xlYXJUaW1lb3V0KHEpOwp2YXIgYT10aGlzLl9z dG9yYWdlLmdldCgicmV0cnlSZXFzIil8fHt9O2FbcF0mJihkZWxldGUgYVtwXSx0 aGlzLl9zdG9yYWdlLnNldCgicmV0cnlSZXFzIixhKSl9YyYmYy5hcHBseShkLGFy Z3VtZW50cyl9LHRoaXMpfX0pO1gucmV0cmFuc21pdD1mdW5jdGlvbigpe3ZhciBh PW5ldyBkYSxiPWEuZ2V0KCJyZXRyeVJlcXMiKXx8e307YS5yZW1vdmUoInJldHJ5 UmVxcyIpO3MuZm9yRWFjaEtleShiLGZ1bmN0aW9uKGEsYil7Yi5naGlkJiZiLmdo aWQhPVlhLl9nbG9iYWxNZXRyaWthSGl0SWQmJmIudGltZSYmYi50aW1lKzg2NEU1 PituZXcgRGF0ZSYmKDI8Yi5icm93c2VySW5mby5ycW5sP1ooIlRvbyBsYXJnZSBy ZXRyYW5zbWl0IG51bWJlci4gKCIrYi5yZXNvdXJjZSsiKSIpOihuZXcgWCh7cHJv dG9jb2w6Yi5wcm90b2NvbCxob3N0OmIuaG9zdCxyZXNvdXJjZTpiLnJlc291cmNl LGNvdW50ZXJJZDpiLmNvdW50ZXJJZCxwb3N0UGFyYW1zOmIucG9zdFBhcmFtc3x8 W10scmV0cnk6ITB9KSkuc2VuZChiLnBhcmFtcywKYi5icm93c2VySW5mbykpfSl9 O3ZhciBmYT17YWJjOiJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdo aWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSIsdGFpbDoiKy89Iix0YWlsU2Fm ZToiKi1fIixlbmNvZGU6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9KGZhLmFiYyso Yj9mYS50YWlsU2FmZTpmYS50YWlsKSkuc3BsaXQoIiIpLGQ9YS5sZW5ndGgsZT1b XSxwPWQtZCUzLGgscT0wO3E8cDtxKz0zKWg9KGFbcV08PDE2KSsoYVtxKzFdPDw4 KSthW3ErMl0sTihlLGNbaD4+MTgmNjNdLGNbaD4+MTImNjNdLGNbaD4+NiY2M10s Y1toJjYzXSk7c3dpdGNoKGQtcCl7Y2FzZSAxOmg9YVtwXTw8NDtOKGUsY1toPj42 JjYzXSxjW2gmNjNdLGNbNjRdLGNbNjRdKTticmVhaztjYXNlIDI6aD0oYVtwXTw8 MTApKyhhW3ArMV08PDIpLE4oZSxjW2g+PjEyJjYzXSxjW2g+PjYmNjNdLGNbaCY2 M10sY1s2NF0pfXJldHVybiBlLmpvaW4oIiIpfX0sJGI9e2VuY29kZTpmdW5jdGlv bihhKXtmb3IodmFyIGI9CltdLGM9MCxkPWEubGVuZ3RoO2M8ZDtjKyspe3ZhciBl PWEuY2hhckNvZGVBdChjKTsxMjg+ZT9iLnB1c2goZSk6KDEyNzxlJiYyMDQ4PmU/ Yi5wdXNoKGU+PjZ8MTkyKTooYi5wdXNoKGU+PjEyfDIyNCksYi5wdXNoKGU+PjYm NjN8MTI4KSksYi5wdXNoKGUmNjN8MTI4KSl9cmV0dXJuIGJ9fSxYYj1YLmluaGVy aXQoe3Jlc291cmNlOiJ3ZWJ2aXNvciIsdHJhbnNwb3J0czpbTCxlYV0scG9zdFBh cmFtczpbInd2LWRhdGEiXSxzZW5kQ29udGVudDpmdW5jdGlvbihhLGIsYyxkLGUs cCxoKXtpZighYSlyZXR1cm4hMTstMTxhLmluZGV4T2YoIlxyIikmJihhPWEucmVw bGFjZSgvXHJcbi9nLCJcbiIpKTthPXsid3YtdHlwZSI6MSwicGFnZS11cmwiOkMo KS5ocmVmLCJ3di1oaXQiOmMsInd2LWRhdGEiOmZhLmVuY29kZSgkYi5lbmNvZGUo YSkpfTtyZXR1cm4gdGhpcy5zZW5kKGEse3o6ZCxpOmUscGN0OmJ8fCIifSxwLGgp fX0pO3MudGhyb3R0bGU9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGUsCnAsaDtyZXR1 cm4gZnVuY3Rpb24oKXtwPWFyZ3VtZW50cztoPXRoaXM7ZXx8ZnVuY3Rpb24oKXtl PW51bGw7cCYmKGEuYXBwbHkoY3x8aCxwKSxwPW51bGwsZT1PKGFyZ3VtZW50cy5j YWxsZWUsYixkKSl9KCl9fTt2YXIgZ2I9TS5pbmhlcml0KHtzdG9yYWdlOm51bGws c3RvcmFnZUtleToiZGF0YUJ1ZmZlciIsbWF4QnVmZmVyU2l6ZToyNTUsZmx1c2hU aW1lb3V0OjFFNCxhY3RpdmU6ITAsbWV0YTpudWxsLG9uRmx1c2g6ZnVuY3Rpb24o KXt9LG9uRmx1c2hDdHg6bnVsbCxidWZmZXJFeHBpcmVUaW1lOjg2NEU1LF9pbml0 Q29tcG9uZW50OmZ1bmN0aW9uKCl7Z2Iuc3VwZXJjbGFzcy5faW5pdENvbXBvbmVu dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5fZGF0YT1bXTt0aGlzLl9wYWNr ZXROdW1iZXI9MDt0aGlzLl9mbHVzaFRJRD1udWxsO3RoaXMuX3NhdmVUb1N0b3Jh Z2VUaHJvdHRsZWQ9cy50aHJvdHRsZSh0aGlzLl9zYXZlVG9TdG9yYWdlLDMwMCx0 aGlzLCJEYXRhQnVmZmVyLl9zYXZlVG9TdG9yYWdlIik7CmlmKHRoaXMuc3RvcmFn ZSl7dmFyIGE9dGhpcy5zdG9yYWdlLmdldCh0aGlzLnN0b3JhZ2VLZXkpO2EmJmEu ZGF0YSYmYS5tZXRhJiZhLnRpbWUmJmEudGltZSt0aGlzLmJ1ZmZlckV4cGlyZVRp bWU+K25ldyBEYXRlJiZ0aGlzLm9uRmx1c2guY2FsbCh0aGlzLm9uRmx1c2hDdHh8 fHRoaXMsYS5kYXRhLGEubWV0YSxhLnBudW0pO3RoaXMuY2xlYXIoKX19LGFwcGVu ZDpmdW5jdGlvbihhLGIpe3MubWVyZ2VBcnJheXModGhpcy5fZGF0YSxhKTt0aGlz Ll9zYXZlVG9TdG9yYWdlVGhyb3R0bGVkKCk7dGhpcy5hY3RpdmUmJigoYnx8dGhp cy5fZGF0YS5sZW5ndGg+PXRoaXMubWF4QnVmZmVyU2l6ZSkmJnRoaXMuX2ZsdXNo KCksdGhpcy5fZmx1c2hUSUR8fCh0aGlzLl9mbHVzaFRJRD1zLmRlZmVyKHRoaXMu X2ZsdXNoLHRoaXMuZmx1c2hUaW1lb3V0LHRoaXMsW10sIkRhdGFCdWZmZXIuX2Zs dXNoIikpKX0sYWN0aXZhdGU6ZnVuY3Rpb24oKXt0aGlzLmFjdGl2ZXx8KHRoaXMu YWN0aXZlPQohMCx0aGlzLmFwcGVuZChbXSkpfSxjbGVhcjpmdW5jdGlvbigpe3Ro aXMuX2RhdGEubGVuZ3RoPTA7dGhpcy5fZmx1c2hUSUQ9bnVsbDt0aGlzLnN0b3Jh Z2UmJnRoaXMuc3RvcmFnZS5yZW1vdmUodGhpcy5zdG9yYWdlS2V5KX0sX2ZsdXNo OmZ1bmN0aW9uKCl7dGhpcy5vbkZsdXNoLmNhbGwodGhpcy5vbkZsdXNoQ3R4fHx0 aGlzLHRoaXMuX2RhdGEsdGhpcy5tZXRhLHRoaXMuX3BhY2tldE51bWJlcik7dGhp cy5fcGFja2V0TnVtYmVyKys7dGhpcy5jbGVhcigpfSxfc2F2ZVRvU3RvcmFnZTpm dW5jdGlvbigpe3RoaXMuc3RvcmFnZSYmdGhpcy5fZGF0YS5sZW5ndGgmJnRoaXMu c3RvcmFnZS5zZXQodGhpcy5zdG9yYWdlS2V5LHtkYXRhOnRoaXMuX2RhdGEsbWV0 YTp0aGlzLm1ldGEscG51bTp0aGlzLl9wYWNrZXROdW1iZXIsdGltZTorbmV3IERh dGV9KX19KTtzLmZsZXRjaGVyPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1hLmxlbmd0 aCxjPTAsZD0yNTUsZT0yNTU7Yjspe3ZhciBwPTIxPApiPzIxOmIsYj1iLXA7ZG97 dmFyIGg9InN0cmluZyI9PXR5cGVvZiBhP2EuY2hhckNvZGVBdChjKTphW2NdO2Mr KztpZigyNTU8aCl2YXIgcT1oPj44LGg9aCYyNTUsaD1oXnE7ZCs9aDtlKz1kfXdo aWxlKC0tcCk7ZD0oZCYyNTUpKyhkPj44KTtlPShlJjI1NSkrKGU+PjgpfWE9KGQm MjU1KSsoZD4+OCk8PDh8KGUmMjU1KSsoZT4+OCk7cmV0dXJuIDY1NTM1PT1hPzA6 YX07dmFyIGFjPVguaW5oZXJpdCh7cmVzb3VyY2U6IndlYnZpc29yIixyZXRyeToh MCxwb3N0UGFyYW1zOlsid3YtZGF0YSJdLHNlbmRQYWNrZXQ6ZnVuY3Rpb24oYSxi LGMsZCxlLHAsaCxxKXtpZighYXx8IWEubGVuZ3RoKXJldHVybiExO2E9e3JuOnMu cmFuZG9tKCksInBhZ2UtdXJsIjpiLHdtb2RlOjAsInd2LXR5cGUiOjAsInd2LWhp dCI6Yywid3YtcGFydCI6ZCsxLCJ3di1jaGVjayI6cy5mbGV0Y2hlcihhKSwid3Yt ZGF0YSI6ZmEuZW5jb2RlKGEsITApfTtyZXR1cm4gdGhpcy5zZW5kKGEse3o6ZSxp OnB9LGgsCnEpfX0pLEpiPWdiLmluaGVyaXQoe3Byb3RvY29sOiIiLGNvdW50ZXJJ ZDoiIixjb3VudGVyVHlwZToiIixtZXRhOm51bGwsbWF4QnVmZmVyU2l6ZTo3NTAw LGZsdXNoVGltZW91dDozRTQsc3RvcmFnZUtleToidmlzb3JidWZmIixhY3RpdmU6 ITEsX2luaXRDb21wb25lbnQ6ZnVuY3Rpb24oKXt0aGlzLnN0b3JhZ2U9bmV3IGRh KHtjb3VudGVySWQ6dGhpcy5jb3VudGVySWR9KTt0aGlzLl9zZW5kZXI9bmV3IGFj KHtwcm90b2NvbDp0aGlzLnByb3RvY29sLGNvdW50ZXJJZDp0aGlzLmNvdW50ZXJJ ZCxjb3VudGVyVHlwZTp0aGlzLmNvdW50ZXJUeXBlfSk7SmIuc3VwZXJjbGFzcy5f aW5pdENvbXBvbmVudC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG9uRmx1c2g6ZnVu Y3Rpb24oYSxiLGMpe3RoaXMuX3NlbmRlci5zZW5kUGFja2V0KGEsYi51cmwsYi5o aXRJZCxjLGIudGltZXpvbmUsYi50aW1lc3RhbXApfX0pO2QuWWE9ZC5ZYXx8e307 WWEuX21ldHJpa2E9WWEuX21ldHJpa2F8fHt9OwpZYS5fbWV0cmlrYS5jb3VudGVy cz1ZYS5fbWV0cmlrYS5jb3VudGVyc3x8e307WWEuX21ldHJpa2EuaGl0UGFyYW09 WWEuX21ldHJpa2EuaGl0UGFyYW18fHt9O1lhLl9nbG9iYWxNZXRyaWthSGl0SWQ9 cy5yYW5kb20oKTt2YXIgYmM9ITEsQT1DKCksZWIsVWEsc2E9ZC5uYXZpZ2F0b3Is dGE9ZC5zY3JlZW4sZ2E9Imh0dHBzOiI9PUEucHJvdG9jb2w/Imh0dHBzOiI6Imh0 dHA6IixJYT00ODYsRWE9Im9iamVjdCI9PXR5cGVvZiBjLmFsbCxXYT1FYT81MTI6 MjA0OCxjYz1FYT81MTI6MjA0OCxoYj1FYT8xMDA6NDAwLEZhPSJub2luZGV4IixH YT01MCxYYT1SZWdFeHAoIlxcLigzZ3B8N3p8YWFjfGFjM3xhY3N8YWl8YXZpfGFw ZXxhcGt8YXNmfGJtcHxiejJ8Y2FifGNkcnxjcmMzMnxjc3N8Y3N2fGN1ZXxkaXZ4 fGRtZ3xkanZ1P3xkb2MoeHxtfGIpP3xlbWZ8ZXBzfGV4ZXxmbGFjP3xmbHZ8aXNv fHN3ZnxnaWZ8dD9nenxqcGU/Zz98anN8bTN1OD98bTRhfG1wKDN8NHxlP2c/KXxt NHZ8bWQ1fG1rdnxtb3Z8bXNpfG9kc3xvZyhnfG18dil8cGRmfHBocHN8cG5nfHBw dCh4fG18Yik/fHBzZHxyYXJ8cnNzfHJ0ZnxzZWF8c2Z2fHNpdHxzaGExfHN2Z3x0 YXJ8dGlmP2Z8dG9ycmVudHx0c3x0eHR8dm9ifHdhdmU/fHdtYXx3bXZ8d21mfHdl Ym18eGxzKHh8bXxiKT98eHBpfGc/emlwKSQiLAoiaSIpLGRjPUkoKSxlYz0iX3lt X3Zpc29yYyIsWmEsSGEsZmM9Ii8vbWMueWFuZGV4LnJ1L2NsbWFwLyI7ZC5ZYS5N ZXRyaWthPWZ1bmN0aW9uKGEsYixnLGwpe3ZhciBlPXRoaXM7cmV0dXJuIEgoZnVu Y3Rpb24oKXtmdW5jdGlvbiBwKGEsYil7Yj1ifHwyNTY7aWYoIWEpcmV0dXJuIiI7 YS5sZW5ndGg+YiYmKGE9YS5zdWJzdHIoMCxiKSk7cmV0dXJuKGQuZW5jb2RlVVJJ Q29tcG9uZW50fHxkLmVzY2FwZSkoYSkucmVwbGFjZSgvXCsvZywiJTJCIil9ZnVu Y3Rpb24gaChhKXtmdW5jdGlvbiBiKGEpe3JldHVybiBhP2EucmVwbGFjZSgvXFwv ZywiXFxcXCIpLnJlcGxhY2UoLyIvZywnXFwiJyk6IiJ9aWYoYT09PWthKXJldHVy biIiO2lmKG51bGw9PT1hKXJldHVybiJudWxsIjtzd2l0Y2goYS5jb25zdHJ1Y3Rv cil7Y2FzZSBCb29sZWFuOnJldHVybiBhLnRvU3RyaW5nKCk7Y2FzZSBOdW1iZXI6 cmV0dXJuIGlzRmluaXRlKGEpP2EudG9TdHJpbmcoKToibnVsbCI7Y2FzZSBTdHJp bmc6cmV0dXJuJyInKwpiKGEpKyciJztjYXNlIEFycmF5OmZvcih2YXIgYz1bXSxl PTAsZD1hLmxlbmd0aDtlPGQ7ZSsrKWNbYy5sZW5ndGhdPWgoYVtlXSk7cmV0dXJu IlsiK2Muam9pbigiLCIpKyJdIjtjYXNlIE9iamVjdDpjPSJ7IjtlPTA7Zm9yKGQg aW4gYSlpZihhLmhhc093blByb3BlcnR5KGQpKXt2YXIgZz1hW2RdO2chPT1rYSYm KGMrPShlPyIsIjoiIikrJyInK2IoZCkrJyI6JytoKGcpLGUrKyl9cmV0dXJuIGMr In0iO2RlZmF1bHQ6cmV0dXJuIm51bGwifX1mdW5jdGlvbiBxKGEsYil7aWYoIWF8 fCFiKXJldHVybiExO2Zvcih2YXIgYz1bXSxlPTA7ZTxiLmxlbmd0aDtlKyspYy5w dXNoKGJbZV0ucmVwbGFjZSgvXF4vZywiXFxeIikucmVwbGFjZSgvXCQvZywiXFwk IikucmVwbGFjZSgvXC4vZywiXFwuIikucmVwbGFjZSgvXFsvZywiXFxbIikucmVw bGFjZSgvXF0vZywiXFxdIikucmVwbGFjZSgvXHwvZywiXFx8IikucmVwbGFjZSgv XCgvZywiXFwoIikucmVwbGFjZSgvXCkvZywiXFwpIikucmVwbGFjZSgvXD8vZywK IlxcPyIpLnJlcGxhY2UoL1wqL2csIlxcKiIpLnJlcGxhY2UoL1wrL2csIlxcKyIp LnJlcGxhY2UoL1x7L2csIlxceyIpLnJlcGxhY2UoL1x9L2csIlxcfSIpKTtyZXR1 cm4gUmVnRXhwKCJcXC4oIitjLmpvaW4oInwiKSsiKSQiLCJpIikudGVzdChhKX1m dW5jdGlvbiBCKGEpe2E9YS50YXJnZXR8fGEuc3JjRWxlbWVudDtpZighYSlyZXR1 cm4hMTszPT1hLm5vZGVUeXBlJiYoYT1hLnBhcmVudE5vZGUpO2Zvcih2YXIgYj1h Lm5vZGVOYW1lLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTthLnBhcmVudE5vZGUm JmEucGFyZW50Tm9kZS5ub2RlTmFtZSYmKCJhIiE9YiYmImFyZWEiIT1ifHwhYS5o cmVmKTspYT1hLnBhcmVudE5vZGUsYj1hLm5vZGVOYW1lLnRvU3RyaW5nKCkudG9M b3dlckNhc2UoKTtyZXR1cm4gYS5ocmVmP2E6ITF9ZnVuY3Rpb24gTChhLGIpe3Jl dHVybihhP2EucmVwbGFjZSgvXnd3d1wuLywiIik6IiIpPT0oYj9iLnJlcGxhY2Uo L153d3dcLi8sIiIpOiIiKT8hMDohMX0KZnVuY3Rpb24gTihhLGIpe2Z1bmN0aW9u IGMoYSl7YT1hLnNwbGl0KCI6Iik7YT1hWzFdfHwiIjthPWEucmVwbGFjZSgvXlwv Ki8sIiIpLnJlcGxhY2UoL153d3dcLi8sIiIpO3JldHVybiBhLnNwbGl0KCIvIilb MF19cmV0dXJuIGEmJmI/YyhhKT09YyhiKT8hMDohMTphfHxiPyExOiEwfWZ1bmN0 aW9uIE0oYSxiKXt2YXIgYz1iLnRhcmdldCxlPSExO2lmKCFiLmhvc3RuYW1lKXJl dHVybiExO2MmJiJfc2VsZiIhPWMmJiJfdG9wIiE9YyYmIl9wYXJlbnQiIT1jfHwo ZT0hMCk7KGM9YS5zaGlmdEtleXx8YS5jdHJsS2V5fHxhLmFsdEtleSl8fGEubW9k aWZpZXJzJiZkLkV2ZW50JiYoYz1hLm1vZGlmaWVycyZkLkV2ZW50LkNPTlRST0xf TUFTS3x8YS5tb2RpZmllcnMmZC5FdmVudC5TSElGVF9NQVNLfHxhLm1vZGlmaWVy cyZkLkV2ZW50LkFMVF9NQVNLKTtyZXR1cm4gZSYmIWN9ZnVuY3Rpb24gVChmLGIs dil7ZnVuY3Rpb24gcihhLGIpe2EmJmImJih2P2hbYV09YjpoW2gubGVuZ3RoXT0K W2EsYl0uam9pbigiOiIpKX1mdW5jdGlvbiBnKGEpe3IoYSxiW2FdPyIxIjoiIil9 Yj1ifHx7fTt2YXIgaD12P3t9OltdLG09LTEqKG5ldyBEYXRlKS5nZXRUaW1lem9u ZU9mZnNldCgpLGw9VigpO1VhfHwoVWE9bCxlYj1tKTtyKCJqIixzYS5qYXZhRW5h YmxlZCgpPyIxIjoiIik7dGEmJnIoInMiLHRhLndpZHRoKyJ4Iit0YS5oZWlnaHQr IngiKyh0YS5jb2xvckRlcHRofHx0YS5waXhlbERlcHRoKSk7cigiZiIsdS5nZXRG bGFzaFZlcnNpb24oKSk7cigibCIsdS5nZXRTaWx2ZXJsaWdodFZlcnNpb24oKXx8 IiIpO2IucGF8fHIoInciLHooKSsieCIrbigpKTtyKCJ6IixtKTtyKCJpIixsKTty KCJlbiIsKCIiKyhjLmNoYXJhY3RlclNldHx8Yy5jaGFyc2V0fHwiIikpLnRvTG93 ZXJDYXNlKCkpO3IoInYiLElhKTtyKCJjIixzYS5jb29raWVFbmFibGVkPyIxIjoi Iik7cigianYiLHUuZ2V0SlNjcmlwdFZlcnNpb24oKSk7cigibGEiLHUuZ2V0TGFu Z3VhZ2UoKSk7cigiZXgiLCJwcmVyZW5kZXIiPT0KYy53ZWJraXRWaXNpYmlsaXR5 U3RhdGU/InByZTEiOiIiKTtSJiZyKCJ3aCIsIjEiKTtsPSJhciBsbiBkbCBhZCBu YiBwYSIuc3BsaXQoIiAiKTtmb3IobT0wO208bC5sZW5ndGg7bSsrKWcobFttXSk7 bD1bInZhIiwidnQiLCJzbiIsInNhIiwiaGUiXTtiLm5iJiZsLnB1c2goImNsIik7 Zm9yKG09MDttPGwubGVuZ3RoO20rKyl7dmFyIHA9bFttXTtyKHAsYltwXSl9Yi5y ZXFOdW0mJihtPW5ldyBkYSh7Y291bnRlcklkOmF9KSxtLmlzRW5hYmxlZCgpJiYo KGw9bS5nZXQoInJlcU51bSIpKT9sKys6bD0xLG0uc2V0KCJyZXFOdW0iLGwpLChs PW0uZ2V0KCJyZXFOdW0iKSkmJnIoInJxbiIsbCkpKTtyKCJybiIsd2EoKSk7cigi aGlkIixPYSk7cigiZHMiLFkoKSk7ZS5fZmlyc3RQYWludHx8KGUuX2ZpcnN0UGFp bnQ9ZWEoKSxyKCJmcCIsZS5fZmlyc3RQYWludCkpO2lmKGUuX3dlYnZpc29yKXtk Lm5hbWV8fChkLm5hbWU9TWF0aC5yb3VuZCg2NTUzNSpNYXRoLnJhbmRvbSgpKSk7 aWYobT0KK2QubmFtZSkwPm0mJihtKj0tMSksbSU9NjU1MzU7cigid24iLG18fGFi KGQubmFtZSkpO3RyeXtkLmhpc3RvcnkmJnIoImhsIixTdHJpbmcoZC5oaXN0b3J5 Lmxlbmd0aCkpfWNhdGNoKHEpe319Zj0idW5kZWZpbmVkIj09dHlwZW9mIGY/KGY9 eSgpKT9zLnRyaW0oZixoYik6IiI6cy50cmltKGYsaGIpO3IoInQiLGYpO3JldHVy biB2P2g6aC5qb2luKCI6Iil9ZnVuY3Rpb24geSgpe3ZhciBhPWMudGl0bGU7InN0 cmluZyIhPXR5cGVvZiBhJiYoYT0oYT1jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0 aXRsZSIpKSYmYS5sZW5ndGg/YVswXS5pbm5lckhUTUw6IiIpO3JldHVybiBhfWZ1 bmN0aW9uIFYoKXtmb3IodmFyIGE9bmV3IERhdGUsYT1bYS5nZXRGdWxsWWVhcigp LGEuZ2V0TW9udGgoKSsxLGEuZ2V0RGF0ZSgpLGEuZ2V0SG91cnMoKSxhLmdldE1p bnV0ZXMoKSxhLmdldFNlY29uZHMoKV0sYj0iIixjPTA7YzxhLmxlbmd0aDtjKysp Yis9MTA+YVtjXT8iMCIrYVtjXTphW2NdO3JldHVybiBifQpmdW5jdGlvbiB6KCl7 dmFyIGE9LTE7Yy5kb2N1bWVudEVsZW1lbnQmJiJDU1MxQ29tcGF0Ij09Yy5jb21w YXRNb2RlP2E9Yy5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg6Yy5ib2R5JiYo YT1jLmJvZHkuY2xpZW50V2lkdGgpO3JldHVybiBhfWZ1bmN0aW9uIG4oKXt2YXIg YT0tMTtjLmRvY3VtZW50RWxlbWVudCYmIkNTUzFDb21wYXQiPT1jLmNvbXBhdE1v ZGU/YT1jLmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ6Yy5ib2R5JiYoYT1j LmJvZHkuY2xpZW50SGVpZ2h0KTtyZXR1cm4gYX1mdW5jdGlvbiBVKCl7dmFyIGE9 ZC5wZXJmb3JtYW5jZXx8ZC53ZWJraXRQZXJmb3JtYW5jZSxiPVtdO2lmKGE9YSYm YS50aW1pbmcpe3ZhciBjPWEubmF2aWdhdGlvblN0YXJ0O2lmKGMpZm9yKGI9W2Eu ZG9tYWluTG9va3VwRW5kLWEuZG9tYWluTG9va3VwU3RhcnQsYS5jb25uZWN0RW5k LWEuY29ubmVjdFN0YXJ0LGEucmVzcG9uc2VTdGFydC1hLnJlcXVlc3RTdGFydCxh LnJlc3BvbnNlRW5kLQphLnJlc3BvbnNlU3RhcnQsYS5mZXRjaFN0YXJ0LWMsYS5y ZWRpcmVjdEVuZC1hLnJlZGlyZWN0U3RhcnQsYS5yZWRpcmVjdENvdW50XSxiLnB1 c2goYS5kb21JbnRlcmFjdGl2ZSYmYS5kb21Mb2FkaW5nP2EuZG9tSW50ZXJhY3Rp dmUtYS5kb21Mb2FkaW5nOm51bGwpLGIucHVzaChhLmRvbUNvbnRlbnRMb2FkZWRF dmVudFN0YXJ0JiZhLmRvbUNvbnRlbnRMb2FkZWRFdmVudEVuZD9hLmRvbUNvbnRl bnRMb2FkZWRFdmVudEVuZC1hLmRvbUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0Om51 bGwpLGIucHVzaChhLmRvbUNvbXBsZXRlP2EuZG9tQ29tcGxldGUtYzpudWxsKSxi LnB1c2goYS5sb2FkRXZlbnRTdGFydD9hLmxvYWRFdmVudFN0YXJ0LWM6bnVsbCks Yi5wdXNoKGEubG9hZEV2ZW50U3RhcnQmJmEubG9hZEV2ZW50RW5kP2EubG9hZEV2 ZW50RW5kLWEubG9hZEV2ZW50U3RhcnQ6bnVsbCksYi5wdXNoKGEuZG9tQ29udGVu dExvYWRlZEV2ZW50U3RhcnQ/YS5kb21Db250ZW50TG9hZGVkRXZlbnRTdGFydC0K YzpudWxsKSxhPTA7YTxiLmxlbmd0aDthKyspYz1iW2FdLG51bGwhPT1jJiYoMD5j fHwzNkU1PGMpJiYoYlthXT1udWxsKX1yZXR1cm4gYn1mdW5jdGlvbiBZKCl7dmFy IGE9W10sYj1lLl9sYXN0UGVyZm9ybWFuY2VUaW1pbmcsYz1VKCk7aWYoYilmb3Io dmFyIGQ9MCxnPWIubGVuZ3RoO2Q8ZztkKyspbnVsbD09PWNbZF0/YS5wdXNoKGNb ZF0pOmEucHVzaChiW2RdPT09Y1tkXT8iIjpjW2RdKTtlbHNlIGE9YztlLl9sYXN0 UGVyZm9ybWFuY2VUaW1pbmc9YztyZXR1cm4gYS5qb2luKCIsIil9ZnVuY3Rpb24g ZWEoKXt2YXIgYTtpZigib2JqZWN0Ij09dHlwZW9mIGQuY2hyb21lJiZkLmNocm9t ZS5sb2FkVGltZXMpe2lmKGE9ZC5jaHJvbWUubG9hZFRpbWVzKCksYS5yZXF1ZXN0 VGltZSYmYS5maXJzdFBhaW50VGltZSlyZXR1cm5+figxRTMqKGEuZmlyc3RQYWlu dFRpbWUtYS5yZXF1ZXN0VGltZSkpfWVsc2UgaWYoZC5wZXJmb3JtYW5jZSYmZC5w ZXJmb3JtYW5jZS50aW1pbmcmJihhPQpkLnBlcmZvcm1hbmNlLnRpbWluZyxhLm5h dmlnYXRpb25TdGFydCYmYS5tc0ZpcnN0UGFpbnQpKXJldHVybiBhLm1zRmlyc3RQ YWludC1hLm5hdmlnYXRpb25TdGFydDtyZXR1cm4gbnVsbH1mdW5jdGlvbiBmYShh KXt2YXIgYj1jLnJlZmVycmVyfHwiIjtpZihSZWdFeHAoIl5odHRwcz86Ly8iK0Eu aG9zdCsiLyIpLnRlc3QoYikpcmV0dXJuITE7Zm9yKHZhciBlPWEucGF0dGVybnMs ZD0wO2Q8ZS5sZW5ndGg7ZCsrKWlmKGIubWF0Y2goUmVnRXhwKGVbZF0sImkiKSkp e3ZhciBnPWEucGFyYW1zfHxbXTtpZihnLmxlbmd0aClmb3IodmFyIGg9cWEoKFJl Z0V4cC4kMXx8IiIpLnJlcGxhY2UoL1wrL2csIiUyMCIpKSxtPTA7bTxnLmxlbmd0 aDttKyspe2lmKGg9PXFhKGdbbV0pKXJldHVybiEwfWVsc2UgcmV0dXJuITB9cmV0 dXJuITF9ZnVuY3Rpb24gWihhLGIpe3ZhciBlPSExO2lmKGEmJiJzdHJpbmciIT10 eXBlb2YgYSYmYS5sZW5ndGgpZm9yKHZhciBkPTA7ZDxhLmxlbmd0aDtkKyspe3Zh ciBnPQphW2RdLnNlbGVjdG9yLGg9YVtkXS50ZXh0LG09Zy5jaGFyQXQoMCksZz1n LnNsaWNlKDEpO2lmKCIjIj09bSl7aWYobT1jLmdldEVsZW1lbnRCeUlkKGcpKWU9 ITAsYiYmaWEudW5zaGlmdChbbSxtLmlubmVySFRNTF0pLG0uaW5uZXJIVE1MPWh9 ZWxzZSBpZigiLiI9PW0pZm9yKG09SGIoZyksZz0wO2c8bS5sZW5ndGg7ZysrKXt2 YXIgZT0hMCxsPW1bZ10scD1oO2ImJmlhLnVuc2hpZnQoW2wsbC5pbm5lckhUTUxd KTtsLmlubmVySFRNTD1wfX1yZXR1cm4gZX1mdW5jdGlvbiBsYShhLGIpe2E9YSYm YS5yZXBsYWNlKC9eXD8vLCIiKTtiPWImJmIucmVwbGFjZSgvXiMvLCIiKTt2YXIg Yz0iIjtpZihhKWZvcih2YXIgZT1hLnNwbGl0KCImIiksZD0wO2Q8ZS5sZW5ndGg7 ZCsrKXt2YXIgZz1lW2RdLnNwbGl0KCI9Iik7Il9vcGVuc3RhdCI9PWdbMF0mJihj PWdbMV0pfWImJjA9PWIuaW5kZXhPZigiX29wZW5zdGF0PSIpJiYoYz1iLnNsaWNl KDEwKSk7YyYmKGM9LTE8Yy5pbmRleE9mKCI7Iik/CnFhKGMpOm1hKGMucmVwbGFj ZSgvWy0qX10vZyxmdW5jdGlvbihhKXtyZXR1cm57IioiOiIrIiwiLSI6Ii8iLF86 Ij0ifVthXXx8YX0pKSk7cmV0dXJuIGMmJihjPWMuc3BsaXQoIjsiKSw0PT1jLmxl bmd0aCk/e3NlcnZpY2U6Y1swXSxjYW1wYWlnbjpjWzFdLGFkOmNbMl0sc291cmNl OmNbM119Om51bGx9ZnVuY3Rpb24gcWEoYSl7dHJ5e3JldHVybiBkZWNvZGVVUklD b21wb25lbnQoYSl9Y2F0Y2goYil7cmV0dXJuIiJ9fWZ1bmN0aW9uIG1hKGEpe2Zv cig7YS5sZW5ndGglNDspYSs9Ij0iO3ZhciBiLGMsZSxkLGcsbT0wLGg9IiI7ZG97 Yj0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJz dHV2d3h5ejAxMjM0NTY3ODkrLz0iLmluZGV4T2YoYS5jaGFyQXQobSsrKSk7Yz0i QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2 d3h5ejAxMjM0NTY3ODkrLz0iLmluZGV4T2YoYS5jaGFyQXQobSsrKSk7ZD0iQUJD REVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5 ejAxMjM0NTY3ODkrLz0iLmluZGV4T2YoYS5jaGFyQXQobSsrKSk7Cmc9IkFCQ0RF RkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXow MTIzNDU2Nzg5Ky89Ii5pbmRleE9mKGEuY2hhckF0KG0rKykpO2lmKDA+Ynx8MD5j fHwwPmR8fDA+ZylyZXR1cm4gbnVsbDtlPWI8PDE4fGM8PDEyfGQ8PDZ8ZztiPWU+ PjE2JjI1NTtjPWU+PjgmMjU1O2UmPTI1NTtoPTY0PT1kP2grU3RyaW5nLmZyb21D aGFyQ29kZShiKTo2ND09Zz9oK1N0cmluZy5mcm9tQ2hhckNvZGUoYixjKTpoK1N0 cmluZy5mcm9tQ2hhckNvZGUoYixjLGUpfXdoaWxlKG08YS5sZW5ndGgpO2E9aDtk PSIiO2ZvcihtPWMxPWMyPWc9MDtnPGEubGVuZ3RoOyltPWEuY2hhckNvZGVBdChn KSwxMjg+bT8oZCs9U3RyaW5nLmZyb21DaGFyQ29kZShtKSxnKyspOjE5MTxtJiYy MjQ+bT8oYzI9YS5jaGFyQ29kZUF0KGcrMSksZCs9U3RyaW5nLmZyb21DaGFyQ29k ZSgobSYzMSk8PDZ8YzImNjMpLGcrPTIpOihjMj1hLmNoYXJDb2RlQXQoZysxKSxj Mz1hLmNoYXJDb2RlQXQoZysKMiksZCs9U3RyaW5nLmZyb21DaGFyQ29kZSgobSYx NSk8PDEyfChjMiY2Myk8PDZ8YzMmNjMpLGcrPTMpO3JldHVybiBkfWZ1bmN0aW9u IG9hKCl7dmFyIGY9ITE7aWYoWWEuX21ldHJpa2EuaGl0UGFyYW1bYmFdKXtpZigx IT1nfHxZYS5fbWV0cmlrYS5jb3VudGVyc1tiYV0pcmV0dXJuITE7Zj0hMH1ZYS5f bWV0cmlrYS5jb3VudGVyc1tiYV09ZTtZYS5fbWV0cmlrYS5oaXRQYXJhbVtiYV09 MTtlLl93ZWJ2aXNvcj0hbCYmKHgmJngud2Vidmlzb3J8fFlifHxiYyk7ZS5fZGly ZWN0Q2FtcGFpZ249eCYmeC5kaXJlY3RDYW1wYWlnbjt4JiZ4LnRyYWNrSGFzaCYm ZS50cmFja0hhc2goITApO2lmKCFsJiYhZil7ZS5yZXBsYWNlUGhvbmVzKCk7dmFy IGs9bmV3IENhKHtjb3VudGVySWQ6YX0pLHY9ay5yZWFkKCJ2aXNvcmMiKXx8TGEo ZWMpOyJiIiE9diYmInciIT12JiYodj0iIik7aWYoIU1iKCl8fEthKCJvcGVyYSBt aW5pIikpdj0iYiI7WmE9SSgpO3ZhciBmPW5ldyBBYSh7cHJvdG9jb2w6Z2EsCmNv dW50ZXJUeXBlOmcsY291bnRlcklkOmF9KSxyPXt1dDpHLGhlOng/fn54Lmh0dHBF cnJvcjowLGFkOjE9PWcmJmQuWWEmJmQuWWEuRGlyZWN0PyEwOiExLHNhdmVSZWY6 ITB9O2Yuc2VuZEhpdChBLmhyZWYseSgpLGMucmVmZXJyZXIsYixyLHYsZnVuY3Rp b24oYSl7SGF8fChIYT1JKCkpO2E9YXx8e307dmFyIGI9YS53ZWJ2aXNvcnx8e307 aWYoamEpe3ZhciBmPStiLnJlY3A7aWYoIWlzRmluaXRlKGYpfHwwPmZ8fDE8Zil2 PSJ3Ijt2fHwodj1PYSUxRTQvMUU0PGY/InciOiJiIik7ay5jcmVhdGUoInZpc29y YyIsdiwzMCk7InciPT12PyhqYS5zdGFydCgpLGY9Yi5hcmNoX3R5cGUsKGI9Yi51 cmxzKSYmZiYmamEudXBsb2FkUGFnZXMoYixmKSk6amEuc3RvcCgpfWI9YS5tcDI7 YT1lO2suZXJhc2UoIm1wMl9zdWJzdHMiKTtpZihiKXtiOmlmKChmPWIuY29uZGl0 aW9ucykmJmYubGVuZ3RoKWZvcih2YXIgZz0wO2c8Zi5sZW5ndGg7ZysrKXt2YXIg cjtpZigicmVmIj09ZltnXS50eXBlKXI9CmZhKGZbZ10pO2Vsc2UgaWYocj0iYWR2 Ij09ZltnXS50eXBlKXt2YXIgbD1mW2ddLHA9WWEuX21ldHJpa2EuY291bnRlci5f ZGlyZWN0Q2FtcGFpZ24sbj1sLlNlcnZpY2VOYW1lUGF0dGVybixxPWwuUmVmZXJl clBhdHRlcm47cj1wP2wuZGlyZWN0X29yZGVyczpsLmRpcmVjdF9jYW1wO3ZhciBz PWMucmVmZXJyZXIsRj1BLnNlYXJjaCxGPUYmJkYucmVwbGFjZSgvXlw/LywiIiks cGE9e307aWYoRilmb3IodmFyIEY9Ri5zcGxpdCgiJiIpLEQ9MDtEPEYubGVuZ3Ro O0QrKyl7dmFyIHQ9RltEXS5zcGxpdCgiPSIpO3BhW3FhKHRbMF0pXT1xYSh0WzFd KX1mb3IodmFyIEY9bGEoQS5zZWFyY2gsQS5oYXNoKSxEPXt9LHQ9WyJzb3VyY2Ui LCJtZWRpdW0iLCJjYW1wYWlnbiIsInRlcm0iLCJjb250ZW50Il0sdz0wO3c8dC5s ZW5ndGg7dysrKXBhWyJ1dG1fIit0W3ddXSYmKERbdFt3XV09cGFbInV0bV8iK3Rb d11dKTt3PXA/ImRpcmVjdC55YW5kZXgucnUiOkYmJkYuc2VydmljZXx8RC5zb3Vy Y2U7CnQ9ITE7aWYoIXQmJm4mJm4ubGVuZ3RoKWZvcih2YXIgej0wO3o8bi5sZW5n dGg7eisrKWlmKFJlZ0V4cChuW3pdLCJpIikudGVzdCh3KSl7dD0hMDticmVha31p ZighdCYmcSYmcS5sZW5ndGgpZm9yKG49MDtuPHEubGVuZ3RoO24rKylpZihSZWdF eHAocVtuXSwiaSIpLnRlc3Qocykpe3Q9ITA7YnJlYWt9IXQmJmwuZ29vZ2xlX2Fk d29yZHMmJnBhLmdjbGlkJiYodD0hMCk7IXQmJmwueWFuZGV4X2RpcmVjdCYmcGEu eWNsaWQmJih0PSEwKTtpZih0JiZyJiZyLmxlbmd0aCYmKHQ9ITEsbD1wfHxGJiZG LmNhbXBhaWdufHxEJiZELmNhbXBhaWduKSlmb3IocD0wO3A8ci5sZW5ndGg7cCsr KWlmKHJbcF09PWwpe3Q9ITA7YnJlYWt9cj10fWlmKHIpe2ZbZ10udHJhY2tfaWQm JmsuY3JlYXRlKCJtcDJfdHJhY2siLGZbZ10udHJhY2tfaWQsNDMyMDApO2JyZWFr IGJ9fWlmKChmPWsucmVhZCgibXAyX3RyYWNrIikpJiZiLnN1YnN0cyl7aWYoYj1i LnN1YnN0c1tmXSlrLmNyZWF0ZSgibXAyX3N1YnN0cyIsCmgoYikpLGI9WihiKSxh LnBhcmFtcygiX195bSIsYj8ibXBfdHJhY2tpZCI6Im1wX3RyYWNraWRfYmFkIixm KX1lbHNlIGZvcihhPTA7YTxpYS5sZW5ndGg7YSsrKWlhW2FdWzBdLmlubmVySFRN TD1pYVthXVsxXX1QKGQsImxvYWQiLGUucmVwbGFjZVBob25lcyk7ZS5faW5pdGVk PSEwfSl9cmEoKTt4JiYoeC5lbmFibGVBbGw/ZS5lbmFibGVBbGwoKTooeC5jbGlj a21hcCYmZS5jbGlja21hcCh4LmNsaWNrbWFwKSx4LnRyYWNrTGlua3MmJmUudHJh Y2tMaW5rcyh4LnRyYWNrTGlua3MpLHguYWNjdXJhdGVUcmFja0JvdW5jZSYmZS5h Y2N1cmF0ZVRyYWNrQm91bmNlKHguYWNjdXJhdGVUcmFja0JvdW5jZSkseC5hZCYm YWQoKSkpO2UuX3dlYnZpc29yJiYoamE9bmV3IE5iKGdhLGEsZyx4LE9hLGUpKX1m dW5jdGlvbiBoYShhKXt2YXIgYj17ZGVsYXk6R2F9O3N3aXRjaCh0eXBlb2YgYSl7 Y2FzZSAic3RyaW5nIjpiLm9uPSEwO2JyZWFrO2Nhc2UgIm9iamVjdCI6Yi5vbj0h MDtiLmRlbGF5PQoibnVtYmVyIiE9dHlwZW9mIGEuZGVsYXk/R2E6YS5kZWxheTti cmVhaztjYXNlICJib29sZWFuIjpiLm9uPWE7YnJlYWs7ZGVmYXVsdDpyZXR1cm59 ZS5fdHJhY2tMaW5rcz1ifWZ1bmN0aW9uIHJhKCl7aGEoITEpO1AoYywiY2xpY2si LGZ1bmN0aW9uKGEpe2UuX3RyYWNrTGlua3Mub24mJnVhKGEpfSl9ZnVuY3Rpb24g dWEoYSl7dmFyIGI9QihhKTtpZihiKXt2YXIgYz0hMSxkPSIiK2IuaHJlZixnPWQ/ ZC5zcGxpdCgvXD8vKVswXToiIixoPWZ1bmN0aW9uKGEpe3ZhciBjPXhiKGIuaW5u ZXJIVE1MP2IuaW5uZXJIVE1MLnRvU3RyaW5nKCkucmVwbGFjZSgvPFwvP1tePl0r Pi9naSwiIik6IiIpO1Euc2VuZENsaWNrTGluayhkLGQ9PWM/IiI6YyxhKX0sbT1m dW5jdGlvbigpe3JldHVybiBNKGEsYik/ZS5fdHJhY2tMaW5rcy5kZWxheTowfTtp ZihYYS50ZXN0KGcpfHxYYS50ZXN0KGQpfHxxKGQsY2EpfHxxKGcsY2EpKWM9ITA7 dmFyIGw9bmEoYiwieW0tZGlzYWJsZS10cmFja2xpbmsiKSwKZz1uYShiLCJ5bS1l eHRlcm5hbC1saW5rIik7bHx8KGw9e2xuOiEwLGRsOmN9LGc/KGwuZGVsYXk9bSgp LGgobCkpOkwoQygpLmhvc3RuYW1lLGIuaG9zdG5hbWUpP2MmJihsLmxuPSExLGwu ZGVsYXk9bSgpLGgobCkpOmQmJi0xIT1kLnNlYXJjaCgvXiAqKGRhdGF8amF2YXNj cmlwdCk6L2kpfHwobC51dD1GYSxsLmRlbGF5PW0oKSxoKGwpKSl9fWZ1bmN0aW9u IHZhKGEsYil7ZnVuY3Rpb24gZSgpe2lmKCF4KXtDJiZjbGVhclRpbWVvdXQoQyk7 dmFyIGM9YixkO2Q9cT9zOnMrSSgpLXo7Yy09ZDswPmMmJihjPTApO0M9TyhmdW5j dGlvbigpe3g9ITA7bSghMSk7YSgpfSxjKX19ZnVuY3Rpb24gZygpe3E9cD1uPSEw O3MrPUkoKS16O3o9SSgpO2UoKX1mdW5jdGlvbiBoKCl7cHx8bnx8KHM9MCk7ej1J KCk7cD1uPSEwO3E9ITE7ZSgpfWZ1bmN0aW9uIGwoKXtufHwocD0hMCxxPSExLG49 ITAsZSgpKX1mdW5jdGlvbiBtKGEpe2Zvcih2YXIgYj0wO2I8Ri5sZW5ndGg7Yis9 MylhP1AoRltiXSwKRltiKzFdLEZbYisyXSk6TWEoRltiXSxGW2IrMV0sRltiKzJd KX12YXIgcD0hMSxuPSExLHE9ITAscz0wLHo9SSgpLEM9bnVsbCx4PSExO2lmKEVh KU8oYSxiKTtlbHNle3ZhciBGPVtkLCJibHVyIixnLGQsImZvY3VzIixoLGMsImNs aWNrIixsLGMsIm1vdXNlbW92ZSIsbCxjLCJrZXlkb3duIixsLGMsInNjcm9sbCIs bF07bSghMCk7ZSgpfX1mdW5jdGlvbiB4YShhKXtmdW5jdGlvbiBiKCl7dmFyIGE9 QygpLmhhc2guc3BsaXQoIiMiKVsxXTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGEp cmV0dXJuITE7dmFyIGM9YS5pbmRleE9mKCI/Iik7MDxjJiYoYT1hLnN1YnN0cmlu ZygwLGMpKTtyZXR1cm4gYX12YXIgYz1iKCk7KGZ1bmN0aW9uIFMoKXt2YXIgZD1i KCk7ZCE9PWMmJihhKCksYz1kKTtCYT1PKFMsMjAwKX0pKCl9ZnVuY3Rpb24gTmEo YSl7UWE9bGFzdFJlZmVycmVyPVc7YT17dXQ6RyxhZDoxPT1nJiZkLllhJiZkLllh LkRpcmVjdD8hMDohMSx3aDohMCxzYXZlUmVmOiEwfTtRLnNlbmRBamF4SGl0KEMo KS5ocmVmLAp5KCksUWEsYSk7Vz1DKCkuaHJlZn1mdW5jdGlvbiB5YShiKXtmdW5j dGlvbiBlKCl7dmFyIGE9Yy5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIE1hdGgubWF4 KGEuc2Nyb2xsV2lkdGgsYy5ib2R5LnNjcm9sbFdpZHRoLGEuY2xpZW50V2lkdGgp fWZ1bmN0aW9uIGgoYSl7ZnVuY3Rpb24gYihhKXthPWEuZ2V0Qm91bmRpbmdDbGll bnRSZWN0KCk7dmFyIGY9Yy5ib2R5LGU9Yy5kb2N1bWVudEVsZW1lbnQsaz1hLmxl ZnQrKGQucGFnZVhPZmZzZXR8fGUuc2Nyb2xsTGVmdHx8Zi5zY3JvbGxMZWZ0KS0o ZS5jbGllbnRMZWZ0fHxmLmNsaWVudExlZnR8fDApO3JldHVybnt0b3A6TWF0aC5y b3VuZChhLnRvcCsoZC5wYWdlWU9mZnNldHx8ZS5zY3JvbGxUb3B8fGYuc2Nyb2xs VG9wKS0oZS5jbGllbnRUb3B8fGYuY2xpZW50VG9wfHwwKSksbGVmdDpNYXRoLnJv dW5kKGspfX1yZXR1cm4gYS5nZXRCb3VuZGluZ0NsaWVudFJlY3Q/YihhKTpmdW5j dGlvbihhKXtmb3IodmFyIGI9MCxjPTA7YTspYis9CnBhcnNlSW50KGEub2Zmc2V0 VG9wKSxjKz1wYXJzZUludChhLm9mZnNldExlZnQpLGE9YS5vZmZzZXRQYXJlbnQ7 cmV0dXJue3RvcDpiLGxlZnQ6Y319KGEpfWZ1bmN0aW9uIGwoYSl7cmV0dXJuIGEu dG9TdHJpbmcoKS50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uIG4oYSl7aWYobnVsbD09 YS5wYWdlWCYmbnVsbCE9YS5jbGllbnRYKXt2YXIgYj1jLmRvY3VtZW50RWxlbWVu dCxmPWMuYm9keTthLnBhZ2VYPWEuY2xpZW50WCsoYiYmYi5zY3JvbGxMZWZ0fHxm JiZmLnNjcm9sbExlZnR8fDApLShiLmNsaWVudExlZnR8fDApO2EucGFnZVk9YS5j bGllbnRZKyhiJiZiLnNjcm9sbFRvcHx8ZiYmZi5zY3JvbGxUb3B8fDApLShiLmNs aWVudFRvcHx8MCl9cmV0dXJue3g6YS5wYWdlWCx5OmEucGFnZVl9fWZ1bmN0aW9u IHEoYSl7Zm9yKHZhciBiPWwoYS5ub2RlTmFtZSk7YS5wYXJlbnROb2RlJiYiQk9E WSIhPWImJiJIVE1MIiE9Yjspe2lmKCJBIj09Ynx8IklOUFVUIj09Ynx8IlRFWFRB UkVBIj09CmIpcmV0dXJuITA7YT1hLnBhcmVudE5vZGU7Yj1hLm5vZGVOYW1lfXJl dHVybiExfWZvcih2YXIgbT10aGlzLHM9MCx6PW51bGwseD0iQSBCIEJJRyBCT0RZ IEJVVFRPTiBERCBESVYgREwgRFQgRU0gRklFTERTRVQgRk9STSBIMSBIMiBIMyBI NCBINSBINiBIUiBJIElNRyBJTlBVVCBMSSBPTCBQIFBSRSBTRUxFQ1QgU01BTEwg U1BBTiBTVFJPTkcgU1VCIFNVUCBUQUJMRSBUQk9EWSBURCBURVhUQVJFQSBURk9P VCBUSCBUSEVBRCBUUiBVIFVMIEFCQlIgQVJFQSBCTE9DS1FVT1RFIENBUFRJT04g Q0VOVEVSIENJVEUgQ09ERSBDQU5WQVMgREZOIEVNQkVEIEZPTlQgSU5TIEtCRCBM RUdFTkQgTEFCRUwgTUFQIE9CSkVDVCBRIFMgU0FNUCBTVFJJS0UgVFQgQVJUSUNM RSBBVURJTyBBU0lERSBGT09URVIgSEVBREVSIE1FTlUgTUVURVIgTkFWIFBST0dS RVNTIFNFQ1RJT04gVElNRSBWSURFTyBOT0lOREVYIE5PQlIgTUFJTiIuc3BsaXQo IiAiKSx5PTU5LEE9U3RyaW5nLmZyb21DaGFyQ29kZSwKRz17fSx1PTA7dTx4Lmxl bmd0aDt1KyspR1t4W3VdXT1BKHkpLEEoeSkseSsrO3RoaXMuaGFuZGxlcj1mdW5j dGlvbihiKXt2YXIgZj1jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF07 aWYoIWQueW1EaXNhYmxlZENsaWNrbWFwJiYhbmEoZiwieW0tY2xpY2ttYXAtaWdu b3JlIikpe2lmKG0uX3ByZWZzLmhhc1F1b3RhKXtpZighbS5fcHJlZnMucXVvdGEp cmV0dXJuO20uX3ByZWZzLnF1b3RhLS19dmFyIEQ9Yi50YXJnZXR8fGIuc3JjRWxl bWVudDszPT1ELm5vZGVUeXBlJiYoRD1ELnBhcmVudE5vZGUpO3ZhciBmPWwoRC5u b2RlTmFtZSksdD1uKGIpLHc7Yi53aGljaHx8Yi5idXR0b249PT1rYXx8KGIud2hp Y2g9Yi5idXR0b24mMT8xOmIuYnV0dG9uJjI/MzpiLmJ1dHRvbiY0PzI6MCk7dz1i LndoaWNoO2lmKHc9MiE9dyYmMyE9d3x8IkEiPT1mKWlmKHc9RC5vZmZzZXRIZWln aHQsdz0hKDA9PT1ELm9mZnNldFdpZHRoJiYwPT09d3x8RC5zdHlsZSYmIm5vbmUi PT09RC5zdHlsZS5kaXNwbGF5KSl7Yjp7Zm9yKHc9CkQ7dy5wYXJlbnROb2RlOyl7 aWYobmEodywieW0tY2xpY2ttYXAtaWdub3JlIikpe3c9ITA7YnJlYWsgYn13PXcu cGFyZW50Tm9kZX13PSExfWlmKHc9IXcpe2I6e3c9bS5fcHJlZnMuaWdub3JlVGFn cztmb3IodmFyIHg9MDt4PHcubGVuZ3RoO3grKylpZihsKHdbeF0pPT1sKGYpKXt3 PSEwO2JyZWFrIGJ9dz0hMX13PSF3JiZtLl9wcmVmcy5maWx0ZXIoRCxmKX19aWYo dyl7Zj1JKCk7RD17ZG9tOkQseDp0LngseTp0LnksdGltZTpmfTtpZigodD01MDxm LXMpJiYhKHQ9IW0uX3ByZWZzLmlnbm9yZVNhbWVDbGlja3MpKXtpZih0PXope3c9 TWF0aC5hYnModC54LUQueCk7dmFyIHg9TWF0aC5hYnModC55LUQueSkseT1ELnRp bWUtdC50aW1lLHQ9dC5kb209PUQuZG9tJiYyPncmJjI+eCYmMUUzPnk/ITA6ITF9 ZWxzZSB0PSExO3Q9IXR9aWYodCYmIk1ldHJpa2FQbGF5ZXIiIT1kLm5hbWUpe2lm KHQ9Yi50YXJnZXR8fGIuc3JjRWxlbWVudCl7Mz09dC5ub2RlVHlwZSYmKHQ9dC5w YXJlbnROb2RlKTsKZm9yKHc9bCh0Lm5vZGVOYW1lKTt0LnBhcmVudE5vZGUmJnQu cGFyZW50Tm9kZS5ub2RlTmFtZSYmKCJBIiE9dyYmIkFSRUEiIT13fHwhdC5ocmVm KTspdD10LnBhcmVudE5vZGUsdz1sKHQubm9kZU5hbWUpO3c9dC5ocmVmP3Q6ITF9 ZWxzZSB3PSExO3Q9ITE7dyYmTShiLHcpJiYhTChDKCkuaG9zdG5hbWUsdy5ob3N0 bmFtZSkmJih0PSEwKTt3PSRhO3ZhciB5PW4oYikseD15LngseT15LnksdT1iLnRh cmdldHx8Yi5zcmNFbGVtZW50LEE9bS5fcHJlZnMsQj1oKHUpLEU9IiI7Yj1DKCku aHJlZjtzd2l0Y2goQS5tb2RlKXtjYXNlICJmaXhlZCI6RT0iMCI7cSh1KSYmKEUr PSJ1Iik7YnJlYWs7Y2FzZSAiY2VudGVyZWQiOkU9IjEiO0I9TWF0aC5mbG9vcihl KCkvMik7eD14PkI/eC1CKzMyNzY4Ong7cSh1KSYmKEUrPSJ1Iik7YnJlYWs7ZGVm YXVsdDpFPWwodS5ub2RlTmFtZSk7RT0iQk9EWSI9PUV8fCJIVE1MIj09RT9lKCk6 dS5vZmZzZXRXaWR0aDtBPWwodS5ub2RlTmFtZSk7IkJPRFkiPT0KQXx8IkhUTUwi PT1BPyhBPWMuZG9jdW1lbnRFbGVtZW50LEE9TWF0aC5tYXgoQS5zY3JvbGxIZWln aHQsYy5ib2R5LnNjcm9sbEhlaWdodCxBLmNsaWVudEhlaWdodCkpOkE9dS5vZmZz ZXRIZWlnaHQ7RXx8KEU9MSk7QXx8KEE9MSk7eD1NYXRoLmZsb29yKDY1NTM1Kih4 LUIubGVmdCkvRSk7eT1NYXRoLmZsb29yKDY1NTM1Kih5LUIudG9wKS9BKTtmb3Io Qj0iIjt1LnBhcmVudE5vZGUmJiJCT0RZIiE9bCh1Lm5vZGVOYW1lKSYmIkhUTUwi IT1sKHUubm9kZU5hbWUpOyl7Qis9R1t1Lm5vZGVOYW1lXXx8IioiO2I6e2Zvcih2 YXIgRT11LnBhcmVudE5vZGUsSD1BPTA7SDxFLmNoaWxkTm9kZXMubGVuZ3RoO0gr KylpZih1Lm5vZGVOYW1lPT1FLmNoaWxkTm9kZXNbSF0ubm9kZU5hbWUpe2lmKHU9 PUUuY2hpbGROb2Rlc1tIXSl7RT1BO2JyZWFrIGJ9QSsrfUU9MH1CKz1FfHwiIjt1 PXUucGFyZW50Tm9kZX1FPXAoQiwxMjgpfXk9WyJybiIsd2EoKSwieCIseCwieSIs eSwidCIsTWF0aC5mbG9vcihNYXRoLmZsb29yKEkoKS0KZGMpLzEwMCksInAiLEVd O1I/eT15LmNvbmNhdCgid2giLCIxIik6Yj1iP2IucmVwbGFjZSgvXCMuKiQvLCIi KTpiOyJmdW5jdGlvbiI9PXR5cGVvZiBtLl9wcmVmcy51cmxGaWx0ZXImJihiPW0u X3ByZWZzLnVybEZpbHRlcihiKSk7eD1mYztiPVsicGFnZS11cmwiLHAoYixXYSks InBvaW50ZXItY2xpY2siLHkuam9pbigiOiIpXTtiPVsiY250LWNsYXNzIixnXS5j b25jYXQoYik7eT1bXTtmb3IodT0wO3U8Yi5sZW5ndGg7dSs9MikoQj1iW3UrMV0p JiYoeVt5Lmxlbmd0aF09Ylt1XSsiPSIrQik7Yj1LK3grYSsiPyIreS5qb2luKCIm Iik7dyhiLHQ/bS5fcHJlZnMuZGVsYXk6MCl9cz1mO3o9RH19fTt0aGlzLnNldFBy ZWZzPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYSxjKXtyZXR1cm4hMH10aGlzLl9w cmVmcz0idW5kZWZpbmVkIj09dHlwZW9mIGF8fCExPT09YXx8ITA9PT1hP3tmaWx0 ZXI6YixpZ25vcmVUYWdzOltdLG1vZGU6IiIsZGVsYXk6R2EscXVvdGE6MCxoYXNR dW90YTohMSwKaWdub3JlU2FtZUNsaWNrczohMH06e2ZpbHRlcjphLmZpbHRlcnx8 YixpZ25vcmVUYWdzOmEuaWdub3JlVGFnc3x8W10sbW9kZTphLm1vZGV8fCIiLGRl bGF5OiJ1bmRlZmluZWQiPT10eXBlb2YgYS5kZWxheT9HYTphLmRlbGF5LHF1b3Rh OmEucXVvdGF8fDAsaGFzUXVvdGE6ISFhLnF1b3RhLGlnbm9yZVNhbWVDbGlja3M6 InVuZGVmaW5lZCI9PXR5cGVvZiBhLmlnbm9yZVNhbWVDbGlja3M/ITA6ITEsdXJs RmlsdGVyOmEudXJsRmlsdGVyfX07dGhpcy51cGRhdGVTdGF0dXM9ZnVuY3Rpb24o YSl7c3dpdGNoKHR5cGVvZiBhKXtjYXNlICJ1bmRlZmluZWQiOnRoaXMuc3RhcnQo ITApO2JyZWFrO2Nhc2UgImJvb2xlYW4iOmE/dGhpcy5zdGFydChhKTp0aGlzLnN0 b3AoKTticmVhaztjYXNlICJvYmplY3QiOnRoaXMuc3RhcnQoYSl9fTt0aGlzLl9z dGFydD0hMTt0aGlzLnN0YXJ0PWZ1bmN0aW9uKGEpe3RoaXMuc2V0UHJlZnMoYSk7 dGhpcy5fc3RhcnR8fFAoYywiY2xpY2siLHRoaXMuaGFuZGxlciwKITApO3RoaXMu X3N0YXJ0PSEwfTt0aGlzLnN0b3A9ZnVuY3Rpb24oKXt0aGlzLl9zdGFydCYmTWEo YywiY2xpY2siLHRoaXMuaGFuZGxlciwhMCk7dGhpcy5fc3RhcnQ9ITF9O3RoaXMu c3RhcnQoYil9dmFyIE9hPU1hdGgucm91bmQoMTA3Mzc0MTgyNCpNYXRoLnJhbmRv bSgpKSxiYSxHPSIiLEs9Z2EsVz1WYT1BLmhyZWYsUWE9IiIseDtZYS5fbWV0cmlr YS5jb3VudGVyfHwoWWEuX21ldHJpa2EuY291bnRlcj1lKTsib2JqZWN0Ij09dHlw ZW9mIGEmJih4PWEsbD1hLmRlZmVyLEc9YS51dCxnPWEudHlwZSxiPWEucGFyYW1z LEs9YS5vbmx5SHR0cHM/Imh0dHBzOiI6Z2EsYT1hLmlkKTthPWF8fDA7Zz1nfHww O2JhPWErIjoiK2c7aWYoWWEuX21ldHJpa2EuY291bnRlcnNbYmFdKXJldHVybiBZ YS5fbWV0cmlrYS5jb3VudGVyc1tiYV07cy50cmltPWZ1bmN0aW9uKGEsYil7YT1T dHJpbmcoYSkucmVwbGFjZSgvXlxzK3xccyskL2csIiIpO2ImJmEubGVuZ3RoPmIm JihhPWEuc3Vic3RyKDAsCmIpKTtyZXR1cm4gYX07dmFyIHU9e19qU2NyaXB0VmVy c2lvbjowLGdldEpTY3JpcHRWZXJzaW9uOmZ1bmN0aW9uKCl7dS5falNjcmlwdFZl cnNpb258fCh1Ll9qU2NyaXB0VmVyc2lvbj0obmV3IEZ1bmN0aW9uKCJyZXR1cm4g LypAY2Nfb24gQF9qc2NyaXB0X3ZlcnNpb24gQCovOyIpKSgpKTtyZXR1cm4gdS5f alNjcmlwdFZlcnNpb259LF9zaWx2ZXJsaWdodFZlcnNpb246IiIsZ2V0U2lsdmVy bGlnaHRWZXJzaW9uOmZ1bmN0aW9uKCl7aWYoIXUuX3NpbHZlcmxpZ2h0VmVyc2lv bilpZihkLkFjdGl2ZVhPYmplY3QpdHJ5e3ZhciBhPW5ldyBBY3RpdmVYT2JqZWN0 KCJBZ0NvbnRyb2wuQWdDb250cm9sIiksYj1mdW5jdGlvbihhLGIsYyxmKXtmb3Io O2EuaXNWZXJzaW9uU3VwcG9ydGVkKGJbMF0rIi4iK2JbMV0rIi4iK2JbMl0rIi4i K2JbM10pOyliW2NdKz1mO2JbY10tPWZ9LGM9WzEsMCwwLDBdO2IoYSxjLDAsMSk7 YihhLGMsMSwxKTtiKGEsYywyLDFFNCk7YihhLGMsMiwxRTMpOwpiKGEsYywyLDEw MCk7YihhLGMsMiwxMCk7YihhLGMsMiwxKTtiKGEsYywzLDEpO3UuX3NpbHZlcmxp Z2h0VmVyc2lvbj1jLmpvaW4oIi4iKX1jYXRjaChlKXt9ZWxzZSBpZihhPXNhLnBs dWdpbnNbIlNpbHZlcmxpZ2h0IFBsdWctSW4iXSl1Ll9zaWx2ZXJsaWdodFZlcnNp b249YS5kZXNjcmlwdGlvbjtyZXR1cm4gdS5fc2lsdmVybGlnaHRWZXJzaW9ufSxf Zmxhc2hWZXJzaW9uOjAsZ2V0Rmxhc2hWZXJzaW9uOmZ1bmN0aW9uKCl7aWYoIXUu X2ZsYXNoVmVyc2lvbil7dmFyIGE9ZC5uYXZpZ2F0b3I7aWYoInVuZGVmaW5lZCIh PXR5cGVvZiBhLnBsdWdpbnMmJiJvYmplY3QiPT10eXBlb2YgYS5wbHVnaW5zWyJT aG9ja3dhdmUgRmxhc2giXSl7dmFyIGI9YS5wbHVnaW5zWyJTaG9ja3dhdmUgRmxh c2giXS5kZXNjcmlwdGlvbjtiJiYoYT1hLm1pbWVUeXBlcywidW5kZWZpbmVkIj09 dHlwZW9mIGF8fCFhWyJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCJdfHxh WyJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCJdLmVuYWJsZWRQbHVnaW4p JiYKKHUuX2ZsYXNoVmVyc2lvbj1iLnJlcGxhY2UoLyhbYS16QS1aXXxccykrLywi IikucmVwbGFjZSgvKFxzK3J8XHMrYlswLTldKykvLCIuIikpfWVsc2UgaWYoInVu ZGVmaW5lZCIhPXR5cGVvZiBkLkFjdGl2ZVhPYmplY3QpdHJ5e2lmKGI9bmV3IEFj dGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoIikpe3Zh ciBjPWIuR2V0VmFyaWFibGUoIiR2ZXJzaW9uIik7YyYmKHUuX2ZsYXNoVmVyc2lv bj1jLnNwbGl0KCIgIilbMV0ucmVwbGFjZSgvLC9nLCIuIikucmVwbGFjZSgvW14u XGRdL2csIiIpKX19Y2F0Y2goZSl7fX1yZXR1cm4gdS5fZmxhc2hWZXJzaW9ufSxn ZXRMYW5ndWFnZTpmdW5jdGlvbigpe3JldHVybihkLm5hdmlnYXRvciYmKHNhLmxh bmd1YWdlfHxzYS5icm93c2VyTGFuZ3VhZ2UpfHwiIikudG9Mb3dlckNhc2UoKX19 LHphPVguaW5oZXJpdCh7dHJpbVBhcmFtczohMSxyZXNvdXJjZToid2F0Y2giLHJl dHJ5OiEwLHBvc3RQYXJhbXM6WyJzaXRlLWluZm8iXSwKc2VuZEhpdDpmdW5jdGlv bihhLGIsYyxlLGQpe3RoaXMuX2hpdEV4dChhLGIsYyxlLHt1dDpkLGFyOiEwLHNh dmVSZWY6ITB9KX0sc2VuZEFqYXhIaXQ6ZnVuY3Rpb24oYSxiLGMsZSl7dGhpcy5f aGl0RXh0KGEsYixjLG51bGwsZSl9LHNlbmRQYXJhbXM6ZnVuY3Rpb24oYSl7dGhp cy5faGl0RXh0KEMoKS5ocmVmLCIiLCIiLGEse2FyOiEwLHBhOiEwLG9ubHlEYXRh OiEwfSl9LHNlbmRHb2FsOmZ1bmN0aW9uKGEsYil7aWYoIS9bXC8mPT8jXS8udGVz dChhKSl7dmFyIGU9YT8iZ29hbDovLyIrQygpLmhvc3RuYW1lKyIvIitlbmNvZGVV UklDb21wb25lbnQoYSk6QygpLmhyZWYsZD15KCksZz1hP0MoKS5ocmVmOmMucmVm ZXJyZXI7dGhpcy5faGl0RXh0KGUsZCxnLGIse2FyOiEwfSl9fSxzZW5kQ2xpY2tM aW5rOmZ1bmN0aW9uKGEsYixjKXt0aGlzLl9oaXRFeHQoYSxiLEMoKS5ocmVmLG51 bGwsYyl9LHNlbmRFeHRMaW5rOmZ1bmN0aW9uKGEsYixjLGUpe3RoaXMuX2hpdEV4 dChhLCIiLApDKCkuaHJlZixlLHthcjohMCxsbjohMCx1dDpGYX0pfSxzZW5kRmls ZVVwbG9hZDpmdW5jdGlvbihhLGIsYyxlKXt0aGlzLl9oaXRFeHQoYSwiIixDKCku aHJlZixlLHthcjohMCxsbjohMCxkbDohMH0pfSxzZW5kTm90Qm91bmNlOmZ1bmN0 aW9uKGEpe3RoaXMuX2hpdEV4dChDKCkuaHJlZiwiIiwiIixudWxsLHtjbDphLGFy OiEwLG5iOiEwLG9ubHlEYXRhOiEwfSl9LHNlbmRWaWRlb0FjdGlvbjpmdW5jdGlv bihhLGIsYyxlKXt0aGlzLl9oaXRFeHQoYyxlfHwiIiwiIixudWxsLHthcjohMCx2 YTphLHZ0OitifSl9LHNlbmRTb2NpYWxDbGljazpmdW5jdGlvbihhLGIsYyl7dGhp cy5faGl0RXh0KGN8fEMoKS5ocmVmLCIiLCIiLG51bGwse2FyOiEwLHNuOnMudHJp bShhLDY0KSxzYTpzLnRyaW0oYiw2NCl9KX0sX2hpdEV4dDpmdW5jdGlvbihhLGIs YyxlLGcsbCxtLHApe2Z1bmN0aW9uIG4oYSxiKXtiJiYocVthXT1iKX1nPWd8fHt9 O2w9bHx8e307aWYoIk1ldHJpa2FQbGF5ZXIiIT0KZC5uYW1lKXtjPSJ1bmRlZmlu ZWQiIT10eXBlb2YgYz9jOlZhO3ZhciBxPXt9O2cuYXImJiFnLm9ubHlEYXRhJiYo Yz10aGlzLl9wcmVwYXJlSGl0VXJsKGMpLGE9dGhpcy5fcHJlcGFyZUhpdFVybChh KSk7Zy5yZXFOdW09ITA7bigicGFnZS1yZWYiLHMudHJpbShjLFdhKSk7bigicGFn ZS11cmwiLHMudHJpbShhLFdhKSk7LTEhPUMoKS5ob3N0bmFtZS5zZWFyY2goLyg/ Ol58XC4pKD86eWF8eWFuZGV4fG5hcm9kfG5hcm9kMilcLig/Olx3K3xjb21cLlx3 KykkLyk/bigidXQiLEZhKToidW5kZWZpbmVkIiE9dHlwZW9mIGcudXQmJm4oInV0 IixzLnRyaW0oZy51dCw2NCkpO2lmKGUpaWYoYT1oKGUpLHRoaXMudHJpbVBhcmFt cyYmYS5sZW5ndGg+Y2MpdmFyIHU9ITA7ZWxzZSBuKCJzaXRlLWluZm8iLGEpO2cu c2F2ZVJlZiYmKFZhPWMpO3MubWl4aW4obCxUKGIsZywhMCkpO3RoaXMuc2VuZChx LGwsZnVuY3Rpb24oKXt1JiYobmV3IHphKHtwcm90b2NvbDp0aGlzLnByb3RvY29s LGNvdW50ZXJUeXBlOnRoaXMuY291bnRlclR5cGUsCmNvdW50ZXJJZDp0aGlzLmNv dW50ZXJJZH0pKS5zZW5kUGFyYW1zKGUpO20mJm0uYXBwbHkocCxhcmd1bWVudHMp fSx0aGlzKX19LF9wcmVwYXJlSGl0VXJsOmZ1bmN0aW9uKGEpe3ZhciBiPUMoKSxj PWIuaG9zdCxiPWIuaHJlZjtpZighYSlyZXR1cm4gYjtpZigtMSE9YS5zZWFyY2go L15cdys6XC9cLy8pKXJldHVybiBhO3ZhciBlPWEuY2hhckF0KDApO2lmKCI/Ij09 ZSlyZXR1cm4gZT1iLnNlYXJjaCgvXD8vKSwtMT09ZT9iK2E6Yi5zdWJzdHIoMCxl KSthO2lmKCIjIj09ZSlyZXR1cm4gZT1iLnNlYXJjaCgvIy8pLC0xPT1lP2IrYTpi LnN1YnN0cigwLGUpK2E7aWYoIi8iPT1lKXtpZihlPWIuc2VhcmNoKGMpLC0xIT1l KXJldHVybiBiLnN1YnN0cigwLGUrYy5sZW5ndGgpK2F9ZWxzZSByZXR1cm4gYz1i LnNwbGl0KCIvIiksY1tjLmxlbmd0aC0xXT1hLGMuam9pbigiLyIpO3JldHVybiBh fX0pLFJhPURhLmluaGVyaXQoe3JlcXVlc3Q6ZnVuY3Rpb24oYSxiLGUsZyxsKXt2 YXIgaD0KIl95bWpzcCIrcy5yYW5kb20oKSxtPWMuY3JlYXRlRWxlbWVudCgic2Ny aXB0Iik7ZFtoXT1IKGZ1bmN0aW9uKGEpe3RyeXtkZWxldGUgZFtoXX1jYXRjaChi KXtkW2hdPWthfWcuY2FsbChsLGEpO20ucGFyZW50Tm9kZSYmbS5wYXJlbnROb2Rl LnJlbW92ZUNoaWxkKG0pfSwidHJhbnNwb3J0LnNjcmlwdCIpO20udHlwZT0idGV4 dC9qYXZhc2NyaXB0IjttLnNyYz10aGlzLl9idWlsZFVybChhLHMubWl4aW4oe3dt b2RlOjUsY2FsbGJhY2s6aH0sYixlKSk7YT1jLmdldEVsZW1lbnRzQnlUYWdOYW1l KCJoZWFkIilbMF07YS5pbnNlcnRCZWZvcmUobSxhLmZpcnN0Q2hpbGQpO3JldHVy biEwfX0pLEFhPXphLmluaGVyaXQoe3RyYW5zcG9ydHM6W1JhXSxyZXRyeTohMSx0 cmltUGFyYW1zOiEwLHNlbmRIaXQ6ZnVuY3Rpb24oYSxiLGMsZSxkLGcsbCxoKXt0 aGlzLl9oaXRFeHQoYSxiLGMsZSxkLGc/e3ZjOmd9Om51bGwsbCxoKX19KSxpYT1b XTtkLnBvc3RNZXNzYWdlJiZkLmFkZEV2ZW50TGlzdGVuZXImJgpQKGQsIm1lc3Nh Z2UiLGZ1bmN0aW9uKGEpe2lmKGEuZGF0YSl0cnl7dmFyIGI9InN0cmluZyI9PXR5 cGVvZiBhLmRhdGE/SlNPTi5wYXJzZShhLmRhdGEpOmEuZGF0YTsib2JqZWN0Ij09 dHlwZW9mIGImJiJ5bV9jb3VudGVycyI9PWIubmFtZSYmYS5zb3VyY2UucG9zdE1l c3NhZ2Uoe25hbWU6InltX2NvdW50ZXJzIixkYXRhOmQuWWEuTWV0cmlrYS5jb3Vu dGVycygpfSwiKiIpfWNhdGNoKGMpe319LCExKTtYLnJldHJhbnNtaXQoKTt2YXIg UT1uZXcgemEoe3Byb3RvY29sOkssY291bnRlclR5cGU6Zyxjb3VudGVySWQ6YX0p LGphO2UucmVwbGFjZVBob25lcz1IKGZ1bmN0aW9uKCl7dHJ5e3ZhciBiPUxhKCJf eW1fbXAyX3N1YnN0c18iK2EpO2lmKGIpe3ZhciBjPShuZXcgRnVuY3Rpb24oInJl dHVybiAiK2IpKSgpO2MmJlooYywhMCl9fWNhdGNoKGUpe319LCJjb3VudGVyLnJl cGxhY2VQaG9uZXMiKTtlLnJlYWNoR29hbD1IKGZ1bmN0aW9uKGEsYil7US5zZW5k R29hbChhLGIpO3JldHVybiEwfSwKImNvdW50ZXIucmVhY2hHb2FsIik7ZS50cmFj a0xpbmtzPUgoaGEsImNvdW50ZXIudHJhY2tMaW5rcyIpO2UuaGl0PUgoZnVuY3Rp b24oYSxiLGMsZSxkKXthJiZRLnNlbmRIaXQoYSxiLGMsZSxkKX0sImNvdW50ZXIu aGl0Iik7ZS5wYXJhbXM9SChmdW5jdGlvbihhKXtpZihhKXt2YXIgYj1hcmd1bWVu dHMubGVuZ3RoO2lmKDE8Yil7Zm9yKHZhciBjPXt9LGU9YyxkPTA7ZDxiLTE7ZCsr KXt2YXIgZz0iIithcmd1bWVudHNbZF07ZVtnXT17fTtkPGItMiYmKGU9ZVtnXSl9 ZVtnXT1hcmd1bWVudHNbYi0xXTthPWN9US5zZW5kUGFyYW1zKGEpfX0sImNvdW50 ZXIucGFyYW1zIik7ZS5maWxlPUgoZnVuY3Rpb24oYSxiLGMsZSl7YSYmUS5zZW5k RmlsZVVwbG9hZChhLGIsYyxlKX0sImNvdW50ZXIuZmlsZSIpO2UuZXh0TGluaz1I KGZ1bmN0aW9uKGEsYixjLGUpe2EmJlEuc2VuZEV4dExpbmsoYSxiLGMsZSl9LCJj b3VudGVyLmV4dExpbmsiKTtlLm5vdEJvdW5jZT1IKGZ1bmN0aW9uKCl7dmFyIGE9 CjA7WmEmJkhhJiYoYT1IYS1aYSk7US5zZW5kTm90Qm91bmNlKGEpfSwiY291bnRl ci5ub3RCb3VuY2UiKTt2YXIgY2E9W107ZS5hZGRGaWxlRXh0ZW5zaW9uPWZ1bmN0 aW9uKGEpeyJzdHJpbmciPT10eXBlb2YgYT9jYS5wdXNoKGEpOmNhPWNhLmNvbmNh dChhKX07ZS5jbGlja21hcD1mdW5jdGlvbihhKXtlLl9jbGlja21hcD9lLl9jbGlj a21hcC51cGRhdGVTdGF0dXMoYSk6ZS5fY2xpY2ttYXA9bmV3IHlhKGEpfTtlLmFj Y3VyYXRlVHJhY2tCb3VuY2U9ZnVuY3Rpb24oYil7Im51bWJlciIhPXR5cGVvZiBi JiYoYj0xNUUzKTtpZighZS5faXNBY2N1cmF0ZVRyYWNrQm91bmNlKXtlLl9pc0Fj Y3VyYXRlVHJhY2tCb3VuY2U9ITA7dmFyIGQ9bmV3IGRhKHtjb3VudGVySWQ6YX0p LGc9ZC5nZXQoImxhc3RIaXQiKTtkLnNldCgibGFzdEhpdCIsK25ldyBEYXRlKTso KGQ9ZC5nZXQoImxhc3RIaXQiKSkmJighZ3x8ZzxkLTE4RTUpfHwhTihjLnJlZmVy cmVyLEMoKS5ocmVmKXx8MC4xPk1hdGgucmFuZG9tKCkpJiYKdmEoZnVuY3Rpb24o KXtlLm5vdEJvdW5jZSgpfSxiKX19O3ZhciBCYT1udWxsLFI9ITE7ZS50cmFja0hh c2g9ZnVuY3Rpb24oYSl7ITE9PT1hP1ImJigib25oYXNoY2hhbmdlImluIGQ/TWEo ZCwiaGFzaGNoYW5nZSIsTmEpOmNsZWFySW50ZXJ2YWwoQmEpLFI9ITEpOlJ8fCgi b25oYXNoY2hhbmdlImluIGQ/UChkLCJoYXNoY2hhbmdlIixOYSk6eGEoTmEpLFI9 ITApO2UuX3RyYWNrSGFzaD1SfTtlLnZpZGVvPUgoZnVuY3Rpb24oYSxiLGMsZSl7 dmFyIGQ9WyJlbmQiLCJwbGF5IiwicGF1c2UiLCJzZWVrIl07aWYoYSYmYyl7YTp7 Zm9yKHZhciBnPTAsbD1kLmxlbmd0aDtnPGw7Zys9MSlpZihhPT09ZFtnXSl7ZD1n O2JyZWFrIGF9ZD0tMX0tMSE9PWQmJlEuc2VuZFZpZGVvQWN0aW9uKGEsYixjLGUp fX0sImNvdW50ZXIudmlkZW8iKTtlLnNvY2lhbD1IKGZ1bmN0aW9uKGEsYixjKXth JiZiJiZRLnNlbmRTb2NpYWxDbGljayhhLGIsYyl9LCJjb3VudGVyLnNvY2lhbCIp O2UuZW5hYmxlQWxsPQpmdW5jdGlvbigpe2UudHJhY2tMaW5rcyghMCk7ZS5jbGlj a21hcCghMCk7ZS5hY2N1cmF0ZVRyYWNrQm91bmNlKCl9O2UucGF1c2U9SmE7ZS51 cGxvYWRQYWdlPWZ1bmN0aW9uKCl7fTtlLl9wZXJmb3JtYW5jZVRpbWluZz1VO2Em Jm9hKCl9LCJpbml0IikoKX07ZC5ZYS5NZXRyaWthLmNvdW50ZXJzPWZ1bmN0aW9u KCl7dmFyIGE9W107aWIoZC5ZYS5fbWV0cmlrYS5jb3VudGVycyxmdW5jdGlvbihi LGMpe3ZhciBsPWMuc3BsaXQoIjoiKTthLnB1c2goe2lkOitsWzBdLHR5cGU6K2xb MV0sYWNjdXJhdGVUcmFja0JvdW5jZTpiLl9pc0FjY3VyYXRlVHJhY2tCb3VuY2Us Y2xpY2ttYXA6Yi5fY2xpY2ttYXAmJmIuX2NsaWNrbWFwLl9zdGFydCxvbGRDb2Rl OiEhZC55YV9jaWQsdHJhY2tIYXNoOiEhYi5fdHJhY2tIYXNoLHRyYWNrTGlua3M6 Yi5fdHJhY2tMaW5rcyYmYi5fdHJhY2tMaW5rcy5vbix3ZWJ2aXNvcjohIWIuX3dl YnZpc29yfSl9KTtyZXR1cm4gYX07dmFyICRhPWZ1bmN0aW9uKGEsCmIpe3ZhciBj PS8oJnxcPylicm93c2VyLWluZm89cnFubDooXGQrKTovO2E9YS5tYXRjaChjKT9h LnJlcGxhY2UoYywiJDFicm93c2VyLWluZm89cnFubDoiKygrUmVnRXhwLiQyKzEp KyI6Iik6YS5yZXBsYWNlKC8oJnxcPylicm93c2VyLWluZm89LywiJDFicm93c2Vy LWluZm89cnFubDoxOiIpO2M9bmV3IEltYWdlO3VhLmFkZChhLGIpO2Mub25sb2Fk PWZ1bmN0aW9uKCl7dWEuZGVsZXRlSGl0KGEpfTtjLnNyYz1hOyJmdW5jdGlvbiI9 PXR5cGVvZiBkLnltTG9nJiZkLnltTG9nKGEpfSx1YT1mdW5jdGlvbigpe3ZhciBh PW5ldyBkYTtyZXR1cm57aW5pdDpmdW5jdGlvbigpe3RoaXMuc2VuZCgpO3RoaXMu X2V2ZW50cygpfSxfZXZlbnRzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxjPWZ1bmN0 aW9uKCl7YS5fd2FzRW5kfHwoYS5fd2FzRW5kPSEwLGEuX29uRW5kKCkpfTtQKGQs ImJlZm9yZXVubG9hZCIsYyk7S2J8fFAoZCwidW5sb2FkIixjKX0sX29uRW5kOmZ1 bmN0aW9uKCl7dmFyIGI9CltdLGM9MDt0aGlzLl91cGRhdGUoYik7Zm9yKHZhciBk PTA7ZDxiLmxlbmd0aDtkKyspYltkXS5kZWxheT5jJiYoYz1iW2RdLmRlbGF5KTtj JiZKYShjKTthLnNldCgiZGVmZXIiLGIpfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4g YS5nZXQoImRlZmVyIil9LGFkZDpmdW5jdGlvbihiLGMpe3ZhciBkPVt7dXJsOmIs ZGVsYXk6Yyx0aW1lOkkoKX1dO3RoaXMuX3VwZGF0ZShkKTthLnNldCgiZGVmZXIi LGQpfSxkZWxldGVIaXQ6ZnVuY3Rpb24oYil7dmFyIGM9W107dGhpcy5fdXBkYXRl KGMsYik7YS5zZXQoImRlZmVyIixjKX0sX3VwZGF0ZTpmdW5jdGlvbihhLGMpe3Zh ciBkPXRoaXMuZ2V0KCksZT1JKCk7aWYoZCYmbWEoZCkmJmQubGVuZ3RoKWZvcih2 YXIgcD0wO3A8ZC5sZW5ndGg7cCsrKXt2YXIgaD1kW3BdO2gudXJsJiZoLnVybCE9 YyYmaC50aW1lPmUtNEUzJiZhLnB1c2goaCl9cmV0dXJuIGF9LHNlbmQ6ZnVuY3Rp b24oKXt2YXIgYT10aGlzLmdldCgpLGM9SSgpO2lmKGEpe2lmKG1hKGEpJiYKYS5s ZW5ndGgpZm9yKHZhciBkPTA7ZDxhLmxlbmd0aCYmMTA+ZDtkKyspe3ZhciBlPWFb ZF07ZSYmZS51cmwmJmUudGltZT5jLTM2RTUmJnRoaXMuX2lzQ29ycmVjdFVybChl LnVybCkmJiRhKGUudXJsKX10aGlzLmNsZWFyKCl9fSxfaXNDb3JyZWN0VXJsOmZ1 bmN0aW9uKGEpe3JldHVybiAwPT09YS5yZXBsYWNlKC9eaHR0cHM/Oi8sIiIpLmlu ZGV4T2YoIi8vbWMueWFuZGV4LnJ1LyIpfSxjbGVhcjpmdW5jdGlvbigpe2EucmVt b3ZlKCJkZWZlciIpfX19KCk7dWEuaW5pdCgpO2QueWFfY2lkJiZuZXcgWWEuTWV0 cmlrYShkLnlhX2NpZCxkLnlhX3BhcmFtcyxkLnlhX2NsYXNzKTtkLnlhX2NpZCYm IWQueWFfaGl0JiYoZC55YV9oaXQ9ZnVuY3Rpb24oYSxiKXtZYS5fbWV0cmlrYS5j b3VudGVyJiZZYS5fbWV0cmlrYS5jb3VudGVyLnJlYWNoR29hbChhLGIpfSk7Qj1k LnlhbmRleF9tZXRyaWthX2NhbGxiYWNrO0w9ZC55YW5kZXhfbWV0cmlrYV9jYWxs YmFja3M7ImZ1bmN0aW9uIj09CnR5cGVvZiBCJiZCKCk7aWYoIm9iamVjdCI9PXR5 cGVvZiBMKWZvcihCPTA7QjxMLmxlbmd0aDtCKyspaWYoWT1MW0JdKUxbQl09bnVs bCxZKCk7eWEoInlhbmRleF9tZXRyaWthX2NhbGxiYWNrIik7eWEoInlhbmRleF9t ZXRyaWthX2NhbGxiYWNrcyIpO0w9WyJsaW5rIiwiY2xpY2siLCJzY3JvbGwiLCJy ZXMiXTtmb3IoQj0wO0I8TC5sZW5ndGg7QisrKWlmKFk9TFtCXSsibWFwIiwtMSE9 QS5ocmVmLnNlYXJjaCgieW1fcGxheWJhY2s9IitZKSl7b2EoZ2ErIi8vbWV0cmlr YS55YW5kZXgucnUvanMvIitZKyIvX2xvYWRlci5qcyIpO2JyZWFrfWQuWWEuTWV0 cmlrYS5pbmZvcm1lcj1mdW5jdGlvbihhKXt2YXIgYj0hIVlhLk1ldHJpa2EuX2lu Zm9ybWVyO1lhLk1ldHJpa2EuX2luZm9ybWVyPWE7Ynx8b2EoZ2ErIi8vbWMueWFu ZGV4LnJ1L21ldHJpa2EvaW5mb3JtZXIuanMiKX07ImNvbXBsZXRlIj09Yy5yZWFk eVN0YXRlP2hhKCk6UChkLCJsb2FkIixoYSk7KGZ1bmN0aW9uKCl7dmFyIGE9CmZ1 bmN0aW9uKCl7dmFyIGE9Yy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBd LGI9Yy5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtiLnNyYz0iaHR0cDovL2F3YXBz LnlhbmRleC5ydS8wLzIxNTMvMC5odG0/YWQ9MTY1NzQ2JnBsPTkzODI5JnJuZD0i K3dhKCk7Yi5zZXRBdHRyaWJ1dGUoInN0eWxlIiwicG9zaXRpb246YWJzb2x1dGU7 bGVmdDotOTk5OXB4O3dpZHRoOjFweDtoZWlnaHQ6MXB4O292ZXJmbG93OmhpZGRl bjt2aXNpYmlsaXR5OmhpZGRlbiIpO2EuYXBwZW5kQ2hpbGQoYik7TyhmdW5jdGlv bigpe2EucmVtb3ZlQ2hpbGQoYil9LDFFNCl9LGI9ZnVuY3Rpb24oKXtkLnJlbW92 ZUV2ZW50TGlzdGVuZXIoImxvYWQiLGIsITEpO2EoKX0sZz1kLnBlcmZvcm1hbmNl O3dhKDIwMCl8fFlhLl9tZXRyaWthLmlzQWR8fChZYS5fbWV0cmlrYS5pc0FkPSEw LCJodHRwOiI9PWdhJiYib2JqZWN0Ij09dHlwZW9mIGcmJmQuYWRkRXZlbnRMaXN0 ZW5lciYmKGcudGltaW5nJiZnLnRpbWluZy5sb2FkRXZlbnRTdGFydD8KYSgpOmQu YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsYiwhMSkpKX0pKCl9KSh0aGlzLHRoaXMu ZG9jdW1lbnQpOwo= ------------0lIMawTPsadI5LahtbxmCH--