Content-Type: multipart/related; start=; boundary=----------meq23nx4zrtJAW71aMZ2Ak Content-Location: http://www.mailyahoo1.gigpa.com/ Subject: =?utf-8?Q?Yahoo!=20Mail:=20The=20best=20web-based=20email!?= MIME-Version: 1.0 ------------meq23nx4zrtJAW71aMZ2Ak Content-Disposition: inline; filename=default.htm Content-Type: text/html; charset=utf-8; name=default.htm Content-ID: Content-Location: http://www.mailyahoo1.gigpa.com/ Content-Transfer-Encoding: Quoted-Printable = Yahoo! Mail: The best web-based email! =
= =
= =
= = =

Your World.
Your Way.

Yahoo! makes it easy to enjoy what matters most in your world.

Best in class Yahoo! Mail, breaking local, national and global news, = finance, sports, music, movies and more. You get more out of the web, y= ou get more out of life.

=
= =
= =
=

Sign in to Yahoo!

Login Form
= =

(e.g. free2rhyme@yahoo.com)

=


(Uncheck if on a shared computer)=

CAPS LOCK is On
=

Your Yahoo! password is case sensitive

     =           OR        =        

Sign in with:

=
=
=

Don't have a Yahoo! ID?

Create New Account
=
= =

Yahoo! Mail - Copyright =A9 2011 Yahoo! Inc. All rights reserved= .

Copyright/IP Policy | = = Terms of Service | = Guide to= Online Security | Privacy P= olicy

------------meq23nx4zrtJAW71aMZ2Ak Content-Disposition: inline Content-Type: image/png Content-Location: https://s.yimg.com/lq/i/reg/login/loginsprite_2_18_2010.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABAAAADWCAMAAADvnPL6AAABgFBMVEUAAAAAfcsA iNMBhdADg8wMhc0PiM4SjNMTis8UgMQWf8IafsEbjNAcg8UoktIygb00icU8ndc+ nthAnthJotlcq99qnMdqnMhqs+BspNJxptF0qdR1sd94rdd4s959tuCAt+GEu+SJ vOKLw+uPwueQweiXxeecxuify+yhy+ml0e6m1PCpzuuqAgKq0eytCwuvEhKwFRWw 2/Kx1u6zGxu0AgK7Li6/QUHFISHHQUHKAQHKYWHNzc3UVFTUgIDU1NTakJDc3Nzd 7PfeAADeYGDfoKDhDQ3hEBDj4+PkZmblMjLrZWXr6+vs9PrtcHDvz8/wg4Pw9vvx jIzy8vL039/0+fz3v7/62dn64W775YL86pz87K388cL954796JT966P977r99Mv9 /f3+4nn+77P+99z/89T/+eUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEC5UsAAAA aXRSTlP///////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// /////////////////wCgN2YaAAAACXZwQWcAAAAQAAAA1gDBZt0LAAABcUlEQVRI x+3T2VLCMBSA4cMm4oYbKpbFiBtoLSpYUKloUIQIiIq4L3F9/yewtDDAyY3OOHph /4uTzDe5SWYC7ygQ4BUlwhsKnlAi3KLgEQUvKLhBwQMKrlFwj4I7FFyhRHhGwSXK gt+AD5QFFljwDeCoL8AZSoRjFByhRNhDwS5KhB2UBf8JrI9sgQU/CZNBSZL8fn0E JwyQIoSQ2JI+IpIB02QmFK2VZsOETBvgnyfhxdL+LCFzJgz7QoHAwko4EPANG9Dv 6HFtVEvjrl5HfxOctileG7M52+AcKNVGumCoWhvtBFeU81VXC/rsDvfy+nrM7bB7 DPB6PJ5BPX3x/v2bqoqidkI2USgksh0QzzCWibdhe5PpbW63oKLkTup1llMqTVDT 7JRzxtKqCQdrBRMKawcGxFPMBJaKN0CT6WGRcV4sHlJZ+4BzeYtSmi+X9Um35HNQ k41dkfPGQpMqGAdo/uKCmkea0EoHTe5KE67/CSbUqJdV5C6MAAAAAElFTkSuQmCC ------------meq23nx4zrtJAW71aMZ2Ak Content-Disposition: inline Content-Type: image/png Content-Location: https://s.yimg.com/lq/i/reg/fcue-sprite.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAnAAAACyCAYAAADCrPI1AAAACXZwQWcAAAJwAAAA sgBfnG3bAAARPUlEQVR42u3da4yld13A8d85c2b2MttuS69q77UUSCRcChiV0tnK FEhsrBqMEEB5waVUg4DyQlcgU26G8gJDAEWkLdJQAmKKoTa2W2OIFKokFkRsi0UR MGXbLmUvM3MuvpjzzP7nmf9zzuycObP7zH4+yZMzPXM5s6fz4pvf//88TyPWYXZm rhHrs97vAwBOHr31fNNd+/b2RnnR2Zm5bZnX7yWPvcxzI7/uWIIqE2uNAd/fGPX1 AAABd4yf71V97ljianZmbnpItFUdGxKQIwfcgGhLH3MfDws8AIBRgq788dAJ2VoD a3Zm7rSKgOtFRLf0mH68/D2bFXGNIfGWC7VhRy74AABGDbi1TMN6A8JuYGDNzsyd nYnDNNxyx6rX3IyIa1TEWy7amkMeB4WcmAMA1hNtw8KtO+Rx1WSuKrBmZ+bOrwi4 4ugkj50BITc0Fjcs4Erx1sjE21qOqpATcADAKAGXC7e1HNnJXC6uZmfmLkt6JRdv nYhoJx+XQ674nqGxOKrWgLDLhdtE5kg/VzWRAwBYb8jlJm6dTFylR9Eg3XJUDbCj 3zHlgEvDbbH/cTt5jU7yWunr9GZn5hrjiLhWRbg1KsKtlRwTyWM55poCDgDY4IDr VkRbO3lsJ1GV6sbK6VrOdNIu6eu1k6PVj7jFfu/kXm/FJK5Y5dzIkGtErFg+Tfe1 FUGWxtpk8jiZCToRBwBsVrylYVVEVTt5LL4m3b+2HFfloJqdmXtxHJ3ARaycvrUj YqH/s+f7jwul180tqY7lBIdWOeZi5fStiLLJ5JhKjnLIladxAg4A2KiA62TibTGJ qYn+Y9oeuRMgiglbdL5zTS+OfCsiIu6+7963fuCWq/47+XyxVLuYHPP95pmP1VvN 0mlcefk2YgOXVHNLqOWl01Yp3LYlRxpz5WlcOoUrRyIAwKBwSz8u70VLJ2ILSbw1 M/E28OK7vZ3PiUY/4K5+wYM3/dxlP7j5+vf8+pcPHp4qv2bxOpOxti1knVh9QkRE RMzOzEXEaNO4dAm1HG25cNv+lN2HTpm7/s7XnXfOgZdOTbbP8DcGAGymIwutx7/9 yNn/dONf/PLtPzm07WAsTcOORMTh/uOR/nNFdKUnHiwvcd61b2+vPf9vvcZ3XxPR 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 w2zVWMv5f2UbXaRqIwU4AAAAAElFTkSuQmCC ------------meq23nx4zrtJAW71aMZ2Ak Content-Disposition: inline; filename=yregbase_sec_ui_1_9.css Content-Type: text/css; charset=utf-8; name=yregbase_sec_ui_1_9.css Content-Location: https://s.yimg.com/lq/i/reg/css/yregbase_sec_ui_1_9.css Content-Transfer-Encoding: Quoted-Printable body{font:13px arial,helvetica,clean,sans-serif;*font-size:small;*font:x= -small;}table{font-size:inherit;font:100%;}select,input,textarea{font:99= % arial,helvetica,clean,sans-serif;}pre,code{font:115% monospace;*font-s= ize:100%;}body *{line-height:1.22em;}p,form,fieldset,h1,h2,h3,h4,h5,h6{m= argin:0;padding:0;}fieldset{padding:10px 0;}img,fieldset{border:0;}legen= d{display:none;}label{font-weight:normal;cursor:pointer;cursor:hand;}.co= ncatid{cursor:help;}a{color:#053799;text-decoration:none;}a:hover{text-d= ecoration:underline;}.yregclb:after{content:".";display:block;font-size:= 0;line-height:0;height:0;clear:both;visibility:hidden;}body{text-align:c= enter;color:#333;margin:5px 0 0;padding:0;}#yregwp{text-align:left;margi= n:0 auto;width:750px;}#yregmst{position:relative;width:750px;margin:0 0 = 12px;}#yregmst .yregmstl{position:absolute;top:0;right:0;}#yregct{paddin= g:0 0 10px;}#yreglg{float:right;width:240px;margin:0 0 20px;}#yregtxt{ma= rgin:0 270px 0 20px;}#yregtctx #yregtxt{width:490px;margin:0 0 10px;}#yr= egft{text-align:center;font-size:77%;padding:10px 0 0;border-top:1px sol= id #777;}.yregbx{border:1px solid #656565;margin:0 0 10px;background-col= or:#f9f9f9;}.yregbxi{margin:11px;}.top .yregbxi{margin-top:20px;}#yregtx= t .yregbx{background-color:#e9f2d7;border-color:#87bb69;}#yregtxt .yregb= x h2{font-size:109%;}#yreglg h1,#yreglg h2,#yreglg h3{font-size:114%;col= or:#333;}#yreglg h3{margin:0 0 4px;}#yreglg select,#yreglg input,#yreglg= p,#yreglgtb td,#yreglgtb th{font-size:92%;}#yreglg p.yreglgsb input{fon= t-size:107%;}#yreglg .yregnewssl,#yreglg .yreglgmd{font:77%/114% verdana= ;}#yreglg .yregnewssl{margin:-4px 0 10px;}#yreglg .yregnewssl span{color= :#c00;}#yreglgtb,#yreglgtb td,#yreglgtb th,#yreglg .yreglgmd,.yreglgsu,.= yreglgsb,.yreglgsut,.yregnewssl{text-align:right;}#yreglgtb{margin:0 0 8= px;padding:0;width:215px;}#yreglgtb td,#yreglgtb th{width:215px;}#yreglg= tb td select{width:124px;}#yreglgtb td{width:130px;}#yreglgtb td input{w= idth:120px;}.yreglgsb{margin:12px 0 0;}.yreglgsut{margin:0 0 3px;}.yregl= gsub{margin:15px 0 0 30px;}.yreglgsu a,.yreglgsut a{color:#039;font:bold= 114%/114% arial;text-decoration:underline;}.yreglgsut a{font-size:122%;= }h2.yregdnt{margin:14px 0 0;}.yregdsilu{border-bottom:1px solid #999;mar= gin:0 0 15px;padding:0 0 8px;}.yregdlisu,.yreglvpnu{border-top:1px solid= #999;margin:15px 0 0;padding:14px 0 10px;}#yreglg .second h3{font:bold = 100% Arial;color:#333;}#yreglg .second p{font:77%/140% verdana;}#yregtxt= ul{margin:0 0 10px;padding:0;}#yregtxt li{margin:18px 0 0;padding:0;lis= t-style:none;}#yregtxt li h3{font:normal 122%/152% verdana;color:#496e03= ;}#yregtxt li cite{font-style:normal;line-height:129%;}.frontpage #yregt= xt li{margin-top:15px;}.frontpage #yregtxt li h3{color:#666;}#yregtgen #= yregct{margin-right:15px;}#yreglgtb td.yregyid{text-align:left;font-size= :100%;}.yreglgdu{margin:0 0 5px;}.yreglgdu a{font:bold 107%/136% verdana= ;color:#039;text-decoration:underline;}#yregtgen #yregtxt h2,#yregpmtxt = h3{font:bold 152%/152% arial;color:#333;margin:0;}#yregpmtxt h3{margin:0= 0 10px;}#yregptxt{padding:12px 0 0;}#yregtgen #yregtxt p.yregpti{color:= #666;margin:0 0 2px;font:bold 100%/100% arial;}#yregptxt ul{margin:15px = 0 0;padding:0;}#yregptxt li{margin:0 0 1em 18px;list-style-type:disc;fon= t:normal 100%/122% arial;}#yregpmtxt{margin:25px 0 0;padding:20px 0 0;bo= rder-top:1px solid #ccc;}#yregtgen #yregtxt{margin-bottom:20px;}#yregtge= n #yregtxt #yreghtxt h3{margin:0;font:bold 107%/114% arial;color:#8c57a1= ;}#yregtgen #yregtxt li h3{font:bold 114%/122% arial;}#yregtgen #yregtxt= p{margin:0 0 .8em;line-height:129%;}#yregtgen #yregtxt .yregbpt li{marg= in:0 0 10px 4px;padding:0 0 10px 22px;background:url(https://s.yimg.com/= lq/i/reg/purple_arrow.gif) no-repeat 1px 4px;}.yregertxt{margin:15px 0 5= px;}.yregertxt,#yreglg .yregertxt h2{color:#c00;}#yreglg .yregertxt h2{f= ont-size:107%;}.yregertxt p{font:normal 92%/107% arial;}.yregab #yreglg{= width:320px;}.yregab #yreglgtb{width:auto;}html>body #yreglgtb th{width:= 180px;}.yregab #yregabimg{padding:10px 0 0;}.yregab .yregrid{text-align:= right;}#yregtgen.yregab #yregtxt{width:380px;}#yregtgen #yregtxt #yreght= xt h2{color:#7a067f;}.yregertxt{margin:15px 0 5px;}.yregertxt,#yreglg .y= regertxt h2{color:#c00;}#yreglg .yregertxt h2{font-size:107%;}.yregertxt= p{font:normal 92%/107% arial;}.yreglvpnu p{font:normal 92%/136% arial;}= .yreglvpnu p a{font:bold 107%/139% arial;text-decoration:underline;}#yre= glgtb td.yreglvid{text-align:left;}#yregfl{margin:0 20px 20px;}#yregfl h= 1{font-size:136%;line-height:167%;}#yregfl h2{font-size:107%;}#yregfl p{= margin:0 0 1em;}#yregfl li{margin-bottom:10px;}.appuser #yregtxt h2{font= :normal 122%/122% verdana,sans-serif;color:#5b9b0f;margin-top:10px;}.app= user #yregtxt li{padding:0 20px 0;}.appuser #yregtxt h3{font-weight:bold= ;font-size:92%;}.appuser #yregtxt li.greenarrow h3{color:#548f0d;}.appus= er #yregtxt li.grayarrow h3{color:#969696;}.appuser #yregtxt li.greenarr= ow{background:url(https://s.yimg.com/lq/i/reg/green_arrow.gif) no-repeat= 0 2px;}.appuser #yregtxt li.grayarrow{background:url(https://s.yimg.com= /lq/i/reg/gray_arrow.gif) no-repeat 0 2px;}.appuser #yregtxt ul li cite{= color:#666;}#yregtgen #yregtxt #promoImg{float:right;margin:20px 10px 0;= }#yregtgen #yregtxt #promoFooterTxt{font-size:85%;}.yregbx{background-co= lor:#fbfafb;border:1px solid #d6d6d6;text-align:left;}#yreglg .yregbx h1= {font-size:16px;font-weight:bold;color:#454545;margin:30px 0;}#yreglg .y= regbx h2{font-size:16px;font-weight:bold;color:#454545;margin:8px 0 13px= 0;}#ap{padding-top:4px;padding-bottom:3px;background-color:#f7f1fd;bord= er:1px solid #c7cfd6;line-height:17px;margin-bottom:25px;min-height:54px= ;}#ap a{color:#454545;}#ap a:hover{color:#454545;text-decoration:none;}#= ap #q{font-size:13px;color:#454545;font-weight:bold;padding-top:9px;}#ap= #apKeyOverlay{float:left;}#ap #apInfo{background-image:url(https://s.yi= mg.com/lq/i/reg/login/loginsprite_2_18_2010.png);background-position:rig= ht -179px;background-repeat:no-repeat;padding-right:20px;}#ap #protect{f= ont-size:12px;font-weight:normal;padding-bottom:11px;}#ap #protect a{tex= t-decoration:none;color:#1243a0;}#inputs{padding-top:10px;padding-bottom= :18px;}#inputs label,#inputs h3{display:block;font-weight:normal;font-si= ze:15px;color:#454545;margin-bottom:2px;line-height:1;}#inputs input{wid= th:208px;line-height:1.5;}#inputs p#username{color:#252525;font-weight:b= old;font-size:14px;padding-top:0;padding-bottom:18px;}#inputs #ex{font-s= ize:11px;color:#454545;padding-bottom:13px;padding-top:2px;}#persistency= {font-size:12px;color:#000;padding-bottom:18px;}#persistency p{font-size= :12px;margin-left:20px;padding-top:2px;}#persistency #uncheck{font-size:= 11px;}#persistency #persistent{margin-left:0;float:left;}#submit{padding= -bottom:20px;font-family:arial;}#submit button{font-size:13px;}.primaryC= ta{border:1px solid #f6b22b;background-color:#fbe26e;background-image:ur= l('https://s.yimg.com/lq/i/reg/login/loginsprite_2_18_2010.png');backgro= und-repeat:repeat-x;background-position:top left;font-family:arial;font-= weight:bold;text-decoration:none;font-size:13px;color:#000;padding-top:2= px;padding-bottom:2px;padding-left:6px;padding-right:6px;}button.seconda= ryCta{background-color:#E5E6E1;background-image:url("https://s.yimg.com/= lq/i/reg/login/loginsprite_2_18_2010.png");background-position:0 -90px;b= ackground-repeat:repeat-x;border:1px solid #BDBDBD;color:#000000;font-fa= mily:arial;font-size:12px;font-weight:bold;line-height:100%;padding:3px = 8px;text-decoration:none;}.secondaryCta{border:1px solid #bdbdbd;backgro= und-color:#e5e6e1;background-image:url('https://s.yimg.com/lq/i/reg/logi= n/loginsprite_2_18_2010.png');background-repeat:repeat-x;background-posi= tion:0 -90px;font-family:arial;font-weight:bold;text-decoration:none;fon= t-size:12px;color:#000;padding-top:3px;padding-bottom:3px;padding-left:8= px;padding-right:8px;line-height:200%;}#help{font-size:12px;padding-bott= om:7px;}#help a{color:#1243a0;text-decoration:none;}#lisu{border-top:1px= solid #d6d6d6;padding-top:14px;padding-bottom:8px;}#lisu a{text-decorat= ion:none;}#lisu a:hover{text-decoration:none;}#lisu h3{font-weight:norma= l;color:#454545;font-size:14px;padding-bottom:7px;}#other{border-top:1px= solid #d6d6d6;padding-top:14px;padding-bottom:8px;}#other h3{font-weigh= t:normal;color:#454545;font-size:14px;padding-bottom:7px;}#other a{text-= decoration:none;}#other a:hover{text-decoration:none;}#yregdsilu{padding= -bottom:24px;border-bottom:1px solid #d6d6d6;}#yregdsilu h3{font-weight:= bold;font-size:16px;color:#454545;margin-top:20px;margin-bottom:8px;}#yr= egdsilu a{display:block;padding-top:6px;padding-bottom:6px;text-align:ce= nter;font-size:15px;font-weight:bold;}.fcue-outer *{overflow:visible;}.f= cue-outer * p{font-family:Verdana;font-size:85%;color:#333;}.fcue-outer{= max-width:558px;margin-left:22px;background:transparent;border:none;posi= tion:relative;overflow:visible;text-align:left;}.fcue-yellow .fcue-small= .fcue-inner,.fcue-yellow .fcue-small * .fcue-t,.fcue-yellow .fcue-small= .fcue-b,.fcue-yellow .fcue-small .fcue-b div{background:transparent url= (https://s.yimg.com/lq/i/reg/fcue-sprite.png) no-repeat -350px 0;_backgr= ound-image:url(https://s.yimg.com/lq/i/reg/fcue-sprite8.png);}.fcue-oute= r .fcue-inner{position:relative;zoom:1;_overflow-y:hidden;padding:0 22px= 0 0;}.fcue-outer .fcue-inner .fcue-content{overflow:hidden;}.yui-panel-= container .fcue-outer * .fcue-t{position:absolute;left:0;top:0;width:22p= x;margin-left:-22px;height:100%;_height:1600px;background-position:top l= eft;}.yui-panel-container .fcue-outer .fcue-b{position:relative;width:10= 0%;background-position:bottom right;}.yui-panel-container .fcue-outer .f= cue-b,.yui-panel-container .fcue-outer .fcue-b div{height:21px;font-size= :1px;background-position:-350px -157px;}.yui-panel-container .fcue-outer= .fcue-b div{position:relative;width:22px;margin-left:-22px;background-p= osition:bottom left;}.fcue-outer * .hd{background:transparent;border:non= e;padding:22px 5px 0;white-space:normal;font-weight:bold;}.fcue-outer * = .bd{position:relative;padding:0 5px 5px;}.fcue-outer * .bd p{margin:0;fo= nt-size:77%;}.fcue-outer * .ft{text-align:right;padding:0 5px 15px 8px;p= osition:relative;_position:static;_padding-bottom:47px;}.fcue-outer * .f= t .l{width:49%;float:left;text-align:left;padding-top:5px;}.fcue-outer *= .ft .r{width:49%;float:right;*padding-right:12px;*width:47%;text-align:= right;}.fcue-yellow .fcue-pnt{width:48px;height:48px;background:transpar= ent url(https://s.yimg.com/lq/i/reg/fcue-sprite.png) no-repeat -578px 0;= _background-image:url(https://s.yimg.com/lq/i/reg/fcue-sprite8.png);posi= tion:absolute;left:209px;top:15px;_top:25px;}.fcue-outer .fcue-pnt-l{bac= kground-position:-54px -54px;top:12px;left:-61px;}#fc1 #fcue-bd,#fc2 #fc= ue-bd{font-size:93%;line-height:118%;}#fc1,#fc2{position:absolute;visibi= lity:hidden;}#fc1{width:250px;}#fc2{width:250px;}#fc2 p{font-size:11px;}= #fc2 .fcue-pnt{top:25px;_top:40px;}#fc2 ul{list-style-type:none;padding-= left:0;font-size:11px;margin-left:0;margin-bottom:0;padding-bottom:0;}#f= c2 ul a{text-decoration:underline;}body#yregtgen fieldset{margin-bottom:= 0;padding-bottom:0;}#yreglg{width:240px;}#yregmain{width:auto;}#yreghtxt= ul.yregbpt{padding-top:15px;}#fun{font-size:11px;padding-bottom:0;}#yre= glg .yregbx{border:1px solid #d6d6d6;}#yregct{padding-top:15px;}#fsLogin= {padding-top:0;}#fsLogin .yregertxt{background-image:url(https://s.yimg.= com/lq/i/reg/login/loginsprite_2_18_2010.png);background-position:left -= 197px;background-repeat:no-repeat;color:#e10707;margin-top:4px;margin-bo= ttom:10px;padding-left:24px;}#antiImg{width:212px;height:85px;border:1px= solid #c1c1c1;background-color:#fff;margin-top:3px;}#yregmain{backgroun= d-position:right top;background-repeat:no-repeat;margin-right:-10px;marg= in-top:0;padding-top:19px;width:225px;}#yregmain #antiphishlnk{float:rig= ht;margin-top:-15px;padding-right:7px;} ------------meq23nx4zrtJAW71aMZ2Ak Content-Disposition: inline Content-Type: image/png Content-Location: https://s.yimg.com/lq/lib/uh/15/uh_sprites_1.5-1.0.3.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABwAAAUrCAMAAAAOlDcUAAAAA3NCSVQICAjb4U/g AAACZ1BMVEX///8AAAAAAABmZmZqY2FmZmbkwJRmZmZmZmb////8/f3//fL5+/z4 +vv39/f19/n29/n/9trx9Pfv8/bl9vzg9vvu8vX+8Mvv7+/r7/Tp7vP+7cTo7fLi 7fn+6rzl6vDd6/j957Th5+7r5OPf5u395KzW5vf85YT84KP85Hu47Pew6/f84nL8 3Zr62ZDf2dn63Vf73VbQ2uP71Yi04PDW1tba09vy1YT70n7M1t/d0s3J09z6znX6 y2zMzMzFztffxd/AzdqX7Rr5x2P5xFvFxcXOwtLYwcD4wVO9xs7uxUzkwJSezOD4 vUjJvczlwFHTtti9vb33uDyL3Be0vMSI2Rfquiuzub+UwdXAs9LltkKxuL7Isqu1 tbXYtk7lsznOqtTfsGWFu+GstLx/zBVlvuOorLO/osTfpyTMmczdpDO5n768oZh6 wxWqo7rJpyDEkdKeoaW5lcxdq9DCmzusmZO7k4qZmZnWlCKil5TIlyBdodekj7Sp jbCyiL21hMjNf3y1kCCNjY25e8RipQ67fnxxmhqYgp2/gSqZg4dQj82neLOuc7+2 bsR9g4ijc6y0a7VRjkGicl1HgsnKZmGHd3CscR+UaKWqXb1AecWSalt2cG6sWK01 eMWoV7fHWFNvcHGuUr6eWaqOW581fzWkUaWYYhbTS0RmZmZqY2FyYlmmR7eMWUDJ R0F7WIOaSKmaSJ6jQrWTRKaGUTyUQ5p4TYEiXLWPP5WcOa6GSzWWOKmNO5xSUlJ+ SDmKOpKSMKSFNI2MKZ6HKqGOJ6F8LoWSJKaFJpaJIJyDGpZyIH2AEpR6D413CIvW cSyvAAAAzXRSTlMAImZ3d7vM3e7///////////////////////////////////// //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// ////////////////////////////////ns08HgAAAAlwSFlzAAALEgAACxIB0t1+ /AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNAay06AAAAghSURB VHic7ZuNXxP3Hccv2UN30TAnpsses+3mVilrWsbRpayJZYtbrLNljUZhrN2QB8Ey H7rJVkWrE7OiQexWqM4nJhZGugBhQ2ESrLBEkj9qvwt3yf2+d/muLEUrft+Y0/B+ fX9cfr/j9fF7D4IdQShFEF5AEOoRBB+C8G2EIuS3EHDpQngg8qsIuPwyAi6/hIDL xxGKkOihicr1CLj8PEIRch0CLtFfXlSuRcClDaEIKSKQJElyVUqCIIj7gBOBJMmV lQRBEPeBF0iS/GRKLyYlTBIEQRAPNeiVmf//csYnTq7QpSJUfg2hCPkNhJWS30FY KYlez/YiCBLCg/6FIwiCIP4nX0AoQn4RQfgKgvB1BOGbCMJGBOEJBOF7CMJTCML3 EYQfIAg/RBCeRxB+hCD8GEH4KYLwMwRc/hxhpSRBEATxAPn3EpjFarGRi9ovgiAI 4r7hPcwocKWz+XCW5gJ1DZLUYF7LnPIXs6Yye55RKiCdmESGze6Qkzm/2e6qH0Ud 3qSW1RWyWZyHTX9q3haWBEEQqwv0SQn0ciP62Bp6YSuEgD+oeV/vonVxUnpt/8n9 7M9m5dvSwOjZsznp2j967drANYWBzUxeHh+9rEnp5NlxjWvjWyR3bGFBk9LBgc2i uG7/yZs3EwsL4zer5Fgy2aPJm+PTl0Xx2ELiZXGd9NpolzyRSrWocktiOpE4I4qx ZEzcezeZGPTOLKa8qmxJMJInRXFAPJhKpe4ymZmUVbk9dedOanGxRRS7FhmpGf9s ptetSu9/7iym0+kJsSWtkOr1xqbbJVXKvel0JpOZEVvYNpNarPXWtns1KXkn04uZ dnbQtPekF9NH5ZaJiS5tbyW3vz+ZTNxN3rmbSM50eN1diQ+3VOVmyO1v6BlkDA0e rfVK0vbeHnd+4iW37PXXMvxeWXK63LIscasiubNIUvaN5ILr6fo4jgRVEgRBPLw8 QmlfYcqS1N55GPl/KlaVHt/BYyztzx7brfhqlvZnctJzbDyX9rs9Hh9L+1FNVp/R p/3u6gBL+0FVerr4tA8EJpLJXlX6pvm07wnMpFIdqgyCtI8FWdoHVdkB0j5WP5uZ CWgSpn3jXKZfk0GQ9v31sekjPlUG+vm0bw52HAlWa3sbmtKn/elgx8xET5f2OQON f8un/ZFg4Ejiw2AgN0OB+gO9g7HYYGzwdHPQ52vs7w148nPrC9Q3NjMagwGfxxMI Bn36Van2+QIMX7Un+65aWzJnfjk9hsWmtCcIgiDM+TWAk4c26P8ftOFNTr7ZtEFH E5CVTY4cTZVAOvK2qdLBy7cdjspDS+5QpcPxNpSObZcUd2mbw0RuK6tk9lJl2TYo 33HsKitjlrmyJ3c53uHlrid17OLle/x9y+9x8l8ATloBnLQABIIgCIJAMXb2mNPZ igqY9pyEac9JmPa8BGnPS5D2nIRpDyWX9lByac9JmPa8BGnPSZj2nIRpz8kIgJPw 5A8nl7egAkEQBPFIYD3BwXeRJ/inX0/w0vn+8ePvayxLluRwuVwGqTyF61RfBSuV E8lrzSofV14NDQ1OKJWK9cqrtrnZIJVKZeM0kfYSHXYgZf2zwzKUHLxEJ97Ct/ag fafWniAIYrVSRBOOyggfOnwXCdOelyDQlyFB2gPJp32ByqW0N6nMpz2QfNqbVObT npcg7XkJ0h5IPu0/+sSH+NYetO+wtaf2nSAIglji1c7O1s7Oz5q7l8rLN20q/6Wp DT+7cc3G8meeCRtVW1hhzVPPthll2/ObGG3hd8MvGWV40xPfLX/66XDrzjoT2bam fGtd2413w61/VODlVuWHbr3BKvtqampeN1a21imV4b4dO143qXzrRnd3HXN9QLay yt/UdTOxo+a6tc9Y+RZzO15hzsJ34eFXWWX3K3v2XFecwHfa4Z2/eqO7hjnrddif C0LnG+XlO/v2KCMa+3PrHxSMI2axmHb8OUsdP0EQxENLsb39Utq/aCq1tH/RTObS 3ih1aW+Q+rQ3SH3aGyVIe16CtDdW6tLepDKf9rzk0j7SZ6zU0j4SivBSl/asBw/x Ukv7iOLA59TSno0YMkxCZCntsyMaZCjX8ZsdCrmOn3p7giAI4iNiuRC/detW9LxZ ixmN/+K88nUhGoXaEt8Xz575jsad+y4AG99XEnVnv6KiM34BSKnkvEqJMx4H0l0S Vfj7yMjF5wxyn5Opv4zUnjrVMDIChv1U/LfR6O0R6dRad8OJYb4/Fyyfvn2buSsl 9t8d/9PvHzN8UOvti1fc9ueu2O3+YeM8WIfddvvxn5hLS6TWbv+AOTMpWIb99g/c zFlNpPCZYenPsn/4c2aO7dTF4eHHqMEnCIJ4dCi28UdkSE17sxZTl/awcw1xaR/i JUh7IPm0B5JPezgsl/a8PMClfQTs7QF92l+FkxCK6NLeOH2RfNobZSif9iYTH9LS PmIi2cDZtL9qumShCEv7q8ZTBqrNN/jYoSAQBEEQqwbrPT2gjbx3bm+ec/eA3Hsu z14oz/01j6HSZrMNDdlsJUMKUI7Z5LGxKtvY0BjDKLdvfnmLbay0dKxUgnLSNumS 2OZ06eT6f0A5ZZtyymwzJU3JU1DO2ma97Wwz277+6CyUVbI8N1dVxTa2uTko5+bm 55VXab9slPMqsv+f8/OFZBYg0VWxYPfkC3RPPkEQxCpluR16hU5GuFyJ8BKkPZB8 2sNKLu2B5NMeSD7tDVKf9kDyaQ8kn/ZA8mkPJJ/2QPJpDySf9gXkUtovY1VC8J58 vayA9+Sjh4JAEB8D/wW5cHxUG3bXXgAAAABJRU5ErkJggg== ------------meq23nx4zrtJAW71aMZ2Ak Content-Disposition: inline Content-Type: image/gif Content-Location: https://login.yahoo.com/i/reg/cs.gif Content-Transfer-Encoding: Base64 R0lGODlhBAAEALMAAKqqqq6urnR0dOnp6evp5ra1s7OysO3t7Wlpaeno5XNzc/// //f18gAAAAAAAAAAACH5BAAAAAAALAAAAAAEAAQAAAQLUBHGgqEHlbQGEBEAOw== ------------meq23nx4zrtJAW71aMZ2Ak Content-Disposition: inline; filename=uh_slim_ssl-1.0.5.css Content-Type: text/css; charset=UTF-8; name=uh_slim_ssl-1.0.5.css Content-Location: https://s.yimg.com/lq/lib/uh/15/css/uh_slim_ssl-1.0.5.css Content-Transfer-Encoding: 8bit @CHARSET "UTF-8";#ygma{border-top:none;font:12px/1.231 arial,sans-serif;text-align:center;margin:0;padding:0;color:#000;*font-size:small;*font:x-small;}#ygmaheader{margin:0;padding:0;}#ygma div{clear:none;}#ygma ul.menu li{border-left:1px solid #cacaca;border-right:1px solid #cacaca;background:none;}#ygma ul.menu{background-color:#f6f6f6;color:#000;}#ygmauseroptions li.first-child{border-top:1px solid #cacaca;}#ygmauseroptions li.last-child{background:#FCFCFC;color:#000;border-bottom:1px solid #cacaca;border-top:1px solid #c3c3c3;_width:100%;}#ygmabot{display:block;text-align:right;overflow:hidden;padding:0 0 .7em;}#ygmalogo{padding:12px 0 0 .92em;_padding:12px 0 0 .6em;float:left;}#ygmalogo img{border:0 none;}#ygmauserinfo em{font-style:normal;font-weight:bold;}#ygma #ygmausername{color:#666;}#ygma .yid{font-weight:bold;display:block;color:#000;}#ygma .sp{background-image:url(https://s.yimg.com/lq/lib/uh/15/uh_sprites_1.5-1.0.3.png);}#ygma .bd{width:100%;background-position:0 0;background-repeat:repeat-x;padding-bottom:10px;}#ygma #yahoo,#ygma #ymenu{width:100%;}#ygma #yahoo{clear:left;}#ygma #mepanel{float:right;margin:0;padding:0;}#ygma #mepanel{margin-right:10px;_margin-right:5px;}#ygmabt #mepanel{padding:0 0 0 10px;}#mepanel-nav{_margin:0!important;margin-top:9px;_margin-top:7px;padding:0;margin-left:0;float:left;_float:none;overflow:hidden;}#mepanel-nav li{list-style-type:none;float:left;background-repeat:no-repeat;}#ygma .lst{background-position:100% -395px;_background-position:100% -393px;background-repeat:no-repeat;padding-right:.8em;margin-right:6px;}#mepanel-nav li a{display:block;text-indent:-9999px;position:relative;}#mepanel-nav li.me1{background:none;color:#545454;}#mepanel-nav li.me1 em{font-style:normal;font-weight:bold;}#mepanel-nav li.me1 .ygmasignup{font-weight:normal;}#mepanel-nav li.me2{background:none;}#mepanel-nav li.me3{background:none;margin-right:2px;}#mepanel-nav li.me1 a,#mepanel-nav li.me2 a,#mepanel-nav li.me3 a{text-indent:0;color:#545454;text-decoration:none;display:inline;}#mepanel-nav li.me1 a{margin-right:7px;}#mepanel-nav li.me2 a{padding:0 6px;border-left:1px solid #ccc;border-right:1px solid #ccc;display:inline;}#mepanel-nav li.me2 #ygmahelp{padding:0 6px;border-left:1px solid #ccc;border-right:0 none;display:inline;}#mepanel-nav li.me4 a{padding:0 6px;border-right:1px solid #ccc;display:inline;}#mepanel-nav li.me3 a{margin-left:6px;}#mepanel-nav li.me1 a:hover,#mepanel-nav li.me2 a:hover,#mepanel-nav li.me3 a:hover{text-decoration:underline;color:#545454;}#ygma #mepanel-nav ul.menu li a:hover{text-decoration:underline;}#ygmauserinfo a{color:#666;}#ygma #ygmabot{background:none;float:left;}body{margin:0;}#ygma #ygmaheader ul.menu{background:#f5f5f5 none;position:absolute;z-index:99999;padding:0;margin:0;font-size:1em;font-weight:normal;}#ygma #mepanel-nav ul.menu li{float:none;margin:0;text-align:left;padding:.175em .7em;white-space:nowrap;color:#707070;}#ygma #mepanel-nav ul.menu li.first-child{padding-top:.2em;}#ygma #mepanel-nav ul.menu li a{height:auto;width:auto;text-indent:0;color:#545454;text-decoration:none;}#ygma #mepanel-nav ul.menu li.last-child{border-bottom:1px solid #c3c3c3;padding-top:.3em;padding-bottom:.2em;background:#fff;}#ygma .ygmaclr:after,.clr:after{content:"";clear:both;display:block;}#ygma .ygmaclr,.clr{*zoom:1;clear:both;}#ygma .hidden{display:none;}#ygma .visible{display:block;} ------------meq23nx4zrtJAW71aMZ2Ak Content-Disposition: inline; filename=us.gif Content-Type: image/gif; name=us.gif Content-Location: https://s.yimg.com/lq/i/brand/purplelogo/base/us.gif Content-Transfer-Encoding: Base64 R0lGODlhjgAmAMQQAJxAs71/zN6/5ffv+YMQn+bP7O7f8owgppQwrK1gv82f2bVw xqRQudav38WP0nsAmf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAEAABAALAAAAACOACYAAAX/ICSOZGmeaKqubOu+6RIE jiCcg63vvD7AwKBwOAQ8jshAKYBsOp/EqHQ6ZDwLJQXi+UQAAAwFNfobvwyKQOL7 TQQaZROzeUjlFIRnwkw1ch8IfBAGCwd/TQw3S04LLAV5Tg0ofodHX3FSCgyURwgL kmMDCX8AkE4JmHNIoCuPTgQGJwuVTUoqtEcnfrYoBWmbXzRYKAKmDwQLiiNonAhx qrkurk3OJwUCAQvGDwALCsMqwFt0wbpHvCSE204HAZgQDYzvJQ2mDCPQADAKeioF iPNcUEJn7gHBAbOaEAj2hQ44A8bEOGoyDBpBFg6eSDRR7AgBVhCwzRg5MuDAFZDQ /w0YdyQBuBEDHEAiMCxhyxejjjSCAE0Zzism+HWKRULokzoFHzhYgWSnCJYIXpqY RuCHISREWwhAEohnkyEsjxzAZHMPDitIxqag5PMEEn0ijFZloUqMExhbkYhQ1TXI gG1wB1DaaOLvA7QPpJKg5IXNVS5wITxeyiLvgz13X1h+sLcpkX9OAhS4SlPFHANX zSbF9XZEk7YpWofNysIoXFUggxhFMlMxCcN7Mh4LCIFxN5INdoyL/LoFaG5ek7wY 3PkI8Z9PYK04PQgJZROUvk+y5Nq7ViR7DHv0bUI4IHxipwx4jIT9MrE6xiEFL12F n8iPqbWCTaBMcwxsJbhXmv8IDZRTHmdA5NTaChJykZsIJ/lHXnWdXAeBUX1BMBoi cJRQgAOPRcWUa0BAA50KBnj0hg3xbAiTACwxQFsJBiwHU1gHEDZCARJq95tNvH1B 3zkeQsCZXhC64GJk4z2Qm4RELfnEPRj+0Q4EA7jIDQMBbGIMADsuk8A6dLjDETfd iPAkhFG2MKUKeVEpQow3OUlLZEg6EZkBAWjpRCJazQCMDA2kOYJltjzp5KQv3GkC oZS0cyVWgwiyTAPZsDGDAE1KYdlGUdZppxMhjoBYE3o+p5qntJ6xBgAv6QVDAWEd oZgbJM2w0SavkFnrsciKCIChpEx0SLLQClIjazba0cMtDtFmq+223Hbr7bfghivu uOSWa+656Kar7rrstuvuu/DGK++89NZr7734ghsCADs= ------------meq23nx4zrtJAW71aMZ2Ak Content-Disposition: inline Content-Type: image/gif Content-Location: https://s.yimg.com/lq/i/reg/fb-goog.gif Content-Transfer-Encoding: Base64 R0lGODlh+AAYAPcAABs1Zik+aSM8aS1DbTRGbDZJbjlLbzFBZyxCcSdAcTNGcjVK dDpNczRMeztPeTFHejtQdj1Se0FVftQxOtwxOv8yLPMxK+YvM+UxNewyNuQxOuwx OfQyN8dWNK5YQ5tvTYp/UJN/UqhuTNhTW9NNVfpCTs9gXyecSjGdTzycVj2eWDef Uy6rVC+uWi2nUDKkUjylVzSoVTyoVz2iWTSsWTuqWW+SVUSkW0+sZkSsYF6rcluy dFWlbGGrcmCxc2W2enamcvGsAvKuCfuzAPq1DPm1GPKxI/66JPy5K/e2L/W3Nfa4 M/q6NPa6O/6+OP/BPYKJVfa/UvS6Q/vMb/zGYPfKdf/RcStMiDROgzZRhTtUgzdT ijtViz9ZiCNQlj5alD5enTpVkT9hnzdeoT9hoUFWgUNahUVdjEFdlkFfmUlij0dg jkpjlERinUtmmk1pnVRtnVtull5ymlNmjWBtiWVzkURlpEVopUtrpkZrrEpsq0Vn pFJtoVBvqExwrlVxqVh2qkJtsU1zs1h6tmR5qHF/oWB+swJr1gVv1Qtx1B111RR1 2xlz1y161i182iZ31jR81jJ92m23gH+JoWuJv2eFuHmQvHeMuDSB3D+F2UiI3GyN w3GPxXSUy3qYzXeY13qb3HSW1EaJ4FGP4l2X5WSa42id6Xuf4Hmi5IGOqomTqoya uaWsvKiuv7G0vv+Nl/KGiJnKpqfWs6vXtrfYu/vXmPjOhP7fqPzgr/3kvf/lt4Kf 0IabxpeoyIWj1Iml1omn2Iyq24im2JGv3pKp06uyw7K6zLC2xaO327W/1bm/0IKm 5Y6s4ISr55Cv4Yiw6pSy5Ji255S16Zm36ae74rrAy7ndwLzC0LrF2a7G7bzJ5bnJ 6LLM97/S8qzH8cTK18nQ39LS0tvb29PY3v/X3sThzs/p1f/pwP/v0P7x2c7X6cbQ 49bf7sja9tLf9v/f4tzu4Njl9+jn5+fo6vr05Ont8+jt9ezy++7x9P/z9fP2+/b5 +/////X39Obx6QAAACH5BAEAAP8ALAAAAAD4ABgAAAj+AP+xqoNAgUGDCxIuYDAA gIABAQAAqMPqn8WLGDNq3Mixo8ePIEOKHEmypMmTIOWJC8eypcuXLcXNE9igpoOb DiLo1ClhwUODCQQkdIWyqNGjSJMqXZqSX7ZGjSBBUlTqHj9+ryxs2KBBAwUKEya8 mlfnoAIGaNMyiDBgwKRq375daxXBAR2mePPq3cu3pDh+0BJJhRTpULer7zhw2OoV 7AQS4gYYLGAALYSbECIokHAM39Wr8xIG6Eu6tOnTKMPxk8YoaiRMiJ7t45evhFau jSeMCEegAGUGmXdGkJBA1ezP/MYFCHAAtfPn0E+rzqaoUaTrjErNrm2BQ4YNGBz+ 7y6QNrOEMmXMmNHSwNjnecWKqWrbPLr9+/iLqnanidH1SI+MMhs5FVSgWAYZYHAB BrstAIF56ql3xhldZHHNZ6k0sBBaBOTn4YcgaqTaPs0kch0mi2jHDywdiBACFDZA AcIHHpgQzlrDpTfhGWuwcUYWynxWSAPCFRDikUjapxo/8WhyiCKLHMINP7TYIAMN LWTZAg003ABEOBGgZ8aEarBhJhtwyPHNZ6vEIcccOjGQ5Jx0khZOO1fF84wopHiz jyw1bElDDYTKIEMMNOwQjgQSlmnmG224ceFx/OxjqTENaOFAnZx2qlQ4mUgTjz73 3KMPP7LEEEOhhrYKAwz+PoSjxYRmuvEGH3y8AceayH1mDBZZRODpsMSWFI4jj2AS CSpW8fODCzW0auir1MbaABdcoGErrn/g8Ucy9VCKTz319ILFFQ8Uq+66HIXz3yGm NCuLCzFIKwO1r8aKxRZbZNtGG3bg0ccfhlQCDpuEEMIGFliky+7D7LrrSCSLYOLO Z9bk8MK9MNw7AwwfK7pFGF+gkca/duxxBx5jeJHMZ4R4cUUYJGMB8c3FHusIn6Zw Q6k5OLyA76szzKBDOCR/AfAdd+jhtB553IHNZ5eI8e8XX2SB89adhvNMO/bQg04u uNDzGTxBU1t00UcrvbTTfggityB5TH2VJXvs8W/+Glxw7fecqqFjhRNFEDHEE7l8 RssJH6+tggpHg2EHGXvkkcfccwdiNz9432EHGGD0/ffoIIZzi+FIIMEE4UfcclU/ OKCw9gyPH41HJZVQsskmnfTuiSedbLLOZ8TsTokhg6BB+vL5hRMFEU0wIf3qSBBx TqWSME57Cimo0EM4lPgi/i/AABPM+cMM84s6nyEjvi+77AII8/RHF04TSSyxBBP7 S1/EFJX6AeNUwD0CHo0T7zPf+YKRPmcAg31XQYYw3ueLStTvgqgJhxSMoAT96U96 R6ACP/wxgxU8joDcO1onxqfAYDgDGjAMBgT5IcEJ+uIXFsSgDvsSjioEgYOaHdxf EoZQC37E4gQnRGEKjkaMBboQhtGI4jSYwY7PUIMZ5ysfL3bIRb2IIx1VMEIQhFC4 IPyPH+Uo4Qy6xz3u8UAc2lggM14IjWhMw45UtOICy4eNLvpxKfKgTS5qUYUpVMEW ZZvFDVCgxDamYAfy+EccPwEKUJwCFcvI5DJQQQ1tbEMbwgDFJ0LxC2388ZRJUQlM VvkScUQyIAA7 ------------meq23nx4zrtJAW71aMZ2Ak Content-Disposition: inline; filename*0="yahoo_dom_event_animation_connection_2.8"; filename*1=".2_inc_superads_capslock_loginmd5_min_12.js" Content-Type: application/x-javascript; charset=utf-8; name*0="yahoo_dom_event_animation_connection_2.8"; name*1=".2_inc_superads_capslock_loginmd5_min_12.js" Content-Location: https://s.yimg.com/lq/lib/reg/js/yahoo_dom_event_animation_connection_2.8.2_inc_superads_capslock_loginmd5_min_12.js Content-Transfer-Encoding: Base64 LyoKQ29weXJpZ2h0IChjKSAyMDEwLCBZYWhvbyEgSW5jLiBBbGwgcmlnaHRzIHJl c2VydmVkLgpDb2RlIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0QgTGljZW5zZToKaHR0 cDovL2RldmVsb3Blci55YWhvby5jb20veXVpL2xpY2Vuc2UuaHRtbAp2ZXJzaW9u OiAyLjguMgoqLwppZih0eXBlb2YgWUFIT089PSJ1bmRlZmluZWQifHwhWUFIT08p e3ZhciBZQUhPTz17fTt9WUFIT08ubmFtZXNwYWNlPWZ1bmN0aW9uKCl7dmFyIEE9 YXJndW1lbnRzLEU9bnVsbCxDLEIsRDtmb3IoQz0wO0M8QS5sZW5ndGg7Qz1DKzEp e0Q9KCIiK0FbQ10pLnNwbGl0KCIuIik7RT1ZQUhPTztmb3IoQj0oRFswXT09IllB SE9PIik/MTowO0I8RC5sZW5ndGg7Qj1CKzEpe0VbRFtCXV09RVtEW0JdXXx8e307 RT1FW0RbQl1dO319cmV0dXJuIEU7fTtZQUhPTy5sb2c9ZnVuY3Rpb24oRCxBLEMp e3ZhciBCPVlBSE9PLndpZGdldC5Mb2dnZXI7aWYoQiYmQi5sb2cpe3JldHVybiBC LmxvZyhELEEsQyk7fWVsc2V7cmV0dXJuIGZhbHNlO319O1lBSE9PLnJlZ2lzdGVy PWZ1bmN0aW9uKEEsRSxEKXt2YXIgST1ZQUhPTy5lbnYubW9kdWxlcyxCLEgsRyxG LEM7aWYoIUlbQV0pe0lbQV09e3ZlcnNpb25zOltdLGJ1aWxkczpbXX07fUI9SVtB XTtIPUQudmVyc2lvbjtHPUQuYnVpbGQ7Rj1ZQUhPTy5lbnYubGlzdGVuZXJzO0Iu bmFtZT1BO0IudmVyc2lvbj1IO0IuYnVpbGQ9RztCLnZlcnNpb25zLnB1c2goSCk7 Qi5idWlsZHMucHVzaChHKTtCLm1haW5DbGFzcz1FO2ZvcihDPTA7QzxGLmxlbmd0 aDtDPUMrMSl7RltDXShCKTt9aWYoRSl7RS5WRVJTSU9OPUg7RS5CVUlMRD1HO31l bHNle1lBSE9PLmxvZygibWFpbkNsYXNzIGlzIHVuZGVmaW5lZCBmb3IgbW9kdWxl ICIrQSwid2FybiIpO319O1lBSE9PLmVudj1ZQUhPTy5lbnZ8fHttb2R1bGVzOltd LGxpc3RlbmVyczpbXX07WUFIT08uZW52LmdldFZlcnNpb249ZnVuY3Rpb24oQSl7 cmV0dXJuIFlBSE9PLmVudi5tb2R1bGVzW0FdfHxudWxsO307WUFIT08uZW52LnVh PWZ1bmN0aW9uKCl7dmFyIEQ9ZnVuY3Rpb24oSCl7dmFyIEk9MDtyZXR1cm4gcGFy c2VGbG9hdChILnJlcGxhY2UoL1wuL2csZnVuY3Rpb24oKXtyZXR1cm4oSSsrPT0x KT8iIjoiLiI7fSkpO30sRz1uYXZpZ2F0b3IsRj17aWU6MCxvcGVyYTowLGdlY2tv OjAsd2Via2l0OjAsbW9iaWxlOm51bGwsYWlyOjAsY2FqYTpHLmNhamFWZXJzaW9u LHNlY3VyZTpmYWxzZSxvczpudWxsfSxDPW5hdmlnYXRvciYmbmF2aWdhdG9yLnVz ZXJBZ2VudCxFPXdpbmRvdyYmd2luZG93LmxvY2F0aW9uLEI9RSYmRS5ocmVmLEE7 Ri5zZWN1cmU9QiYmKEIudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJodHRwcyIpPT09 MCk7aWYoQyl7aWYoKC93aW5kb3dzfHdpbjMyL2kpLnRlc3QoQykpe0Yub3M9Indp bmRvd3MiO31lbHNle2lmKCgvbWFjaW50b3NoL2kpLnRlc3QoQykpe0Yub3M9Im1h Y2ludG9zaCI7fX1pZigoL0tIVE1MLykudGVzdChDKSl7Ri53ZWJraXQ9MTt9QT1D Lm1hdGNoKC9BcHBsZVdlYktpdFwvKFteXHNdKikvKTtpZihBJiZBWzFdKXtGLndl YmtpdD1EKEFbMV0pO2lmKC8gTW9iaWxlXC8vLnRlc3QoQykpe0YubW9iaWxlPSJB cHBsZSI7fWVsc2V7QT1DLm1hdGNoKC9Ob2tpYU5bXlwvXSovKTtpZihBKXtGLm1v YmlsZT1BWzBdO319QT1DLm1hdGNoKC9BZG9iZUFJUlwvKFteXHNdKikvKTtpZihB KXtGLmFpcj1BWzBdO319aWYoIUYud2Via2l0KXtBPUMubWF0Y2goL09wZXJhW1xz XC9dKFteXHNdKikvKTtpZihBJiZBWzFdKXtGLm9wZXJhPUQoQVsxXSk7QT1DLm1h dGNoKC9PcGVyYSBNaW5pW147XSovKTtpZihBKXtGLm1vYmlsZT1BWzBdO319ZWxz ZXtBPUMubWF0Y2goL01TSUVccyhbXjtdKikvKTtpZihBJiZBWzFdKXtGLmllPUQo QVsxXSk7fWVsc2V7QT1DLm1hdGNoKC9HZWNrb1wvKFteXHNdKikvKTtpZihBKXtG LmdlY2tvPTE7QT1DLm1hdGNoKC9ydjooW15cc1wpXSopLyk7aWYoQSYmQVsxXSl7 Ri5nZWNrbz1EKEFbMV0pO319fX19fXJldHVybiBGO30oKTsoZnVuY3Rpb24oKXtZ QUhPTy5uYW1lc3BhY2UoInV0aWwiLCJ3aWRnZXQiLCJleGFtcGxlIik7aWYoInVu ZGVmaW5lZCIhPT10eXBlb2YgWUFIT09fY29uZmlnKXt2YXIgQj1ZQUhPT19jb25m aWcubGlzdGVuZXIsQT1ZQUhPTy5lbnYubGlzdGVuZXJzLEQ9dHJ1ZSxDO2lmKEIp e2ZvcihDPTA7QzxBLmxlbmd0aDtDKyspe2lmKEFbQ109PUIpe0Q9ZmFsc2U7YnJl YWs7fX1pZihEKXtBLnB1c2goQik7fX19fSkoKTtZQUhPTy5sYW5nPVlBSE9PLmxh bmd8fHt9OyhmdW5jdGlvbigpe3ZhciBCPVlBSE9PLmxhbmcsQT1PYmplY3QucHJv dG90eXBlLEg9IltvYmplY3QgQXJyYXldIixDPSJbb2JqZWN0IEZ1bmN0aW9uXSIs Rz0iW29iamVjdCBPYmplY3RdIixFPVtdLEY9WyJ0b1N0cmluZyIsInZhbHVlT2Yi XSxEPXtpc0FycmF5OmZ1bmN0aW9uKEkpe3JldHVybiBBLnRvU3RyaW5nLmFwcGx5 KEkpPT09SDt9LGlzQm9vbGVhbjpmdW5jdGlvbihJKXtyZXR1cm4gdHlwZW9mIEk9 PT0iYm9vbGVhbiI7fSxpc0Z1bmN0aW9uOmZ1bmN0aW9uKEkpe3JldHVybih0eXBl b2YgST09PSJmdW5jdGlvbiIpfHxBLnRvU3RyaW5nLmFwcGx5KEkpPT09Qzt9LGlz TnVsbDpmdW5jdGlvbihJKXtyZXR1cm4gST09PW51bGw7fSxpc051bWJlcjpmdW5j dGlvbihJKXtyZXR1cm4gdHlwZW9mIEk9PT0ibnVtYmVyIiYmaXNGaW5pdGUoSSk7 fSxpc09iamVjdDpmdW5jdGlvbihJKXtyZXR1cm4oSSYmKHR5cGVvZiBJPT09Im9i amVjdCJ8fEIuaXNGdW5jdGlvbihJKSkpfHxmYWxzZTt9LGlzU3RyaW5nOmZ1bmN0 aW9uKEkpe3JldHVybiB0eXBlb2YgST09PSJzdHJpbmciO30saXNVbmRlZmluZWQ6 ZnVuY3Rpb24oSSl7cmV0dXJuIHR5cGVvZiBJPT09InVuZGVmaW5lZCI7fSxfSUVF bnVtRml4OihZQUhPTy5lbnYudWEuaWUpP2Z1bmN0aW9uKEssSil7dmFyIEksTSxM O2ZvcihJPTA7STxGLmxlbmd0aDtJPUkrMSl7TT1GW0ldO0w9SltNXTtpZihCLmlz RnVuY3Rpb24oTCkmJkwhPUFbTV0pe0tbTV09TDt9fX06ZnVuY3Rpb24oKXt9LGV4 dGVuZDpmdW5jdGlvbihMLE0sSyl7aWYoIU18fCFMKXt0aHJvdyBuZXcgRXJyb3Io ImV4dGVuZCBmYWlsZWQsIHBsZWFzZSBjaGVjayB0aGF0ICIrImFsbCBkZXBlbmRl bmNpZXMgYXJlIGluY2x1ZGVkLiIpO312YXIgSj1mdW5jdGlvbigpe30sSTtKLnBy b3RvdHlwZT1NLnByb3RvdHlwZTtMLnByb3RvdHlwZT1uZXcgSigpO0wucHJvdG90 eXBlLmNvbnN0cnVjdG9yPUw7TC5zdXBlcmNsYXNzPU0ucHJvdG90eXBlO2lmKE0u cHJvdG90eXBlLmNvbnN0cnVjdG9yPT1BLmNvbnN0cnVjdG9yKXtNLnByb3RvdHlw ZS5jb25zdHJ1Y3Rvcj1NO31pZihLKXtmb3IoSSBpbiBLKXtpZihCLmhhc093blBy b3BlcnR5KEssSSkpe0wucHJvdG90eXBlW0ldPUtbSV07fX1CLl9JRUVudW1GaXgo TC5wcm90b3R5cGUsSyk7fX0sYXVnbWVudE9iamVjdDpmdW5jdGlvbihNLEwpe2lm KCFMfHwhTSl7dGhyb3cgbmV3IEVycm9yKCJBYnNvcmIgZmFpbGVkLCB2ZXJpZnkg ZGVwZW5kZW5jaWVzLiIpO312YXIgST1hcmd1bWVudHMsSyxOLEo9SVsyXTtpZihK JiZKIT09dHJ1ZSl7Zm9yKEs9MjtLPEkubGVuZ3RoO0s9SysxKXtNW0lbS11dPUxb SVtLXV07fX1lbHNle2ZvcihOIGluIEwpe2lmKEp8fCEoTiBpbiBNKSl7TVtOXT1M W05dO319Qi5fSUVFbnVtRml4KE0sTCk7fX0sYXVnbWVudFByb3RvOmZ1bmN0aW9u KEwsSyl7aWYoIUt8fCFMKXt0aHJvdyBuZXcgRXJyb3IoIkF1Z21lbnQgZmFpbGVk LCB2ZXJpZnkgZGVwZW5kZW5jaWVzLiIpO312YXIgST1bTC5wcm90b3R5cGUsSy5w cm90b3R5cGVdLEo7Zm9yKEo9MjtKPGFyZ3VtZW50cy5sZW5ndGg7Sj1KKzEpe0ku cHVzaChhcmd1bWVudHNbSl0pO31CLmF1Z21lbnRPYmplY3QuYXBwbHkodGhpcyxJ KTt9LGR1bXA6ZnVuY3Rpb24oSSxOKXt2YXIgSyxNLFA9W10sUT0iey4uLn0iLEo9 ImYoKXsuLi59IixPPSIsICIsTD0iID0+ICI7aWYoIUIuaXNPYmplY3QoSSkpe3Jl dHVybiBJKyIiO31lbHNle2lmKEkgaW5zdGFuY2VvZiBEYXRlfHwoIm5vZGVUeXBl IiBpbiBJJiYidGFnTmFtZSIgaW4gSSkpe3JldHVybiBJO31lbHNle2lmKEIuaXNG dW5jdGlvbihJKSl7cmV0dXJuIEo7fX19Tj0oQi5pc051bWJlcihOKSk/TjozO2lm KEIuaXNBcnJheShJKSl7UC5wdXNoKCJbIik7Zm9yKEs9MCxNPUkubGVuZ3RoO0s8 TTtLPUsrMSl7aWYoQi5pc09iamVjdChJW0tdKSl7UC5wdXNoKChOPjApP0IuZHVt cChJW0tdLE4tMSk6USk7fWVsc2V7UC5wdXNoKElbS10pO31QLnB1c2goTyk7fWlm KFAubGVuZ3RoPjEpe1AucG9wKCk7fVAucHVzaCgiXSIpO31lbHNle1AucHVzaCgi eyIpO2ZvcihLIGluIEkpe2lmKEIuaGFzT3duUHJvcGVydHkoSSxLKSl7UC5wdXNo KEsrTCk7aWYoQi5pc09iamVjdChJW0tdKSl7UC5wdXNoKChOPjApP0IuZHVtcChJ W0tdLE4tMSk6USk7fWVsc2V7UC5wdXNoKElbS10pO31QLnB1c2goTyk7fX1pZihQ Lmxlbmd0aD4xKXtQLnBvcCgpO31QLnB1c2goIn0iKTt9cmV0dXJuIFAuam9pbigi Iik7fSxzdWJzdGl0dXRlOmZ1bmN0aW9uKFksSixSKXt2YXIgTixNLEwsVSxWLFgs VD1bXSxLLE89ImR1bXAiLFM9IiAiLEk9InsiLFc9In0iLFEsUDtmb3IoOzspe049 WS5sYXN0SW5kZXhPZihJKTtpZihOPDApe2JyZWFrO31NPVkuaW5kZXhPZihXLE4p O2lmKE4rMT49TSl7YnJlYWs7fUs9WS5zdWJzdHJpbmcoTisxLE0pO1U9SztYPW51 bGw7TD1VLmluZGV4T2YoUyk7aWYoTD4tMSl7WD1VLnN1YnN0cmluZyhMKzEpO1U9 VS5zdWJzdHJpbmcoMCxMKTt9Vj1KW1VdO2lmKFIpe1Y9UihVLFYsWCk7fWlmKEIu aXNPYmplY3QoVikpe2lmKEIuaXNBcnJheShWKSl7Vj1CLmR1bXAoVixwYXJzZUlu dChYLDEwKSk7fWVsc2V7WD1YfHwiIjtRPVguaW5kZXhPZihPKTtpZihRPi0xKXtY PVguc3Vic3RyaW5nKDQpO31QPVYudG9TdHJpbmcoKTtpZihQPT09R3x8UT4tMSl7 Vj1CLmR1bXAoVixwYXJzZUludChYLDEwKSk7fWVsc2V7Vj1QO319fWVsc2V7aWYo IUIuaXNTdHJpbmcoVikmJiFCLmlzTnVtYmVyKFYpKXtWPSJ+LSIrVC5sZW5ndGgr Ii1+IjtUW1QubGVuZ3RoXT1LO319WT1ZLnN1YnN0cmluZygwLE4pK1YrWS5zdWJz dHJpbmcoTSsxKTt9Zm9yKE49VC5sZW5ndGgtMTtOPj0wO049Ti0xKXtZPVkucmVw bGFjZShuZXcgUmVnRXhwKCJ+LSIrTisiLX4iKSwieyIrVFtOXSsifSIsImciKTt9 cmV0dXJuIFk7fSx0cmltOmZ1bmN0aW9uKEkpe3RyeXtyZXR1cm4gSS5yZXBsYWNl KC9eXHMrfFxzKyQvZywiIik7fWNhdGNoKEope3JldHVybiBJO319LG1lcmdlOmZ1 bmN0aW9uKCl7dmFyIEw9e30sSj1hcmd1bWVudHMsST1KLmxlbmd0aCxLO2ZvcihL PTA7SzxJO0s9SysxKXtCLmF1Z21lbnRPYmplY3QoTCxKW0tdLHRydWUpO31yZXR1 cm4gTDt9LGxhdGVyOmZ1bmN0aW9uKFAsSixRLEwsTSl7UD1QfHwwO0o9Snx8e307 dmFyIEs9USxPPUwsTixJO2lmKEIuaXNTdHJpbmcoUSkpe0s9SltRXTt9aWYoIUsp e3Rocm93IG5ldyBUeXBlRXJyb3IoIm1ldGhvZCB1bmRlZmluZWQiKTt9aWYoTyYm IUIuaXNBcnJheShPKSl7Tz1bTF07fU49ZnVuY3Rpb24oKXtLLmFwcGx5KEosT3x8 RSk7fTtJPShNKT9zZXRJbnRlcnZhbChOLFApOnNldFRpbWVvdXQoTixQKTtyZXR1 cm57aW50ZXJ2YWw6TSxjYW5jZWw6ZnVuY3Rpb24oKXtpZih0aGlzLmludGVydmFs KXtjbGVhckludGVydmFsKEkpO31lbHNle2NsZWFyVGltZW91dChJKTt9fX07fSxp c1ZhbHVlOmZ1bmN0aW9uKEkpe3JldHVybihCLmlzT2JqZWN0KEkpfHxCLmlzU3Ry aW5nKEkpfHxCLmlzTnVtYmVyKEkpfHxCLmlzQm9vbGVhbihJKSk7fX07Qi5oYXNP d25Qcm9wZXJ0eT0oQS5oYXNPd25Qcm9wZXJ0eSk/ZnVuY3Rpb24oSSxKKXtyZXR1 cm4gSSYmSS5oYXNPd25Qcm9wZXJ0eShKKTt9OmZ1bmN0aW9uKEksSil7cmV0dXJu ICFCLmlzVW5kZWZpbmVkKElbSl0pJiZJLmNvbnN0cnVjdG9yLnByb3RvdHlwZVtK XSE9PUlbSl07fTtELmF1Z21lbnRPYmplY3QoQixELHRydWUpO1lBSE9PLnV0aWwu TGFuZz1CO0IuYXVnbWVudD1CLmF1Z21lbnRQcm90bztZQUhPTy5hdWdtZW50PUIu YXVnbWVudFByb3RvO1lBSE9PLmV4dGVuZD1CLmV4dGVuZDt9KSgpO1lBSE9PLnJl Z2lzdGVyKCJ5YWhvbyIsWUFIT08se3ZlcnNpb246IjIuOC4yIixidWlsZDoiMTki fSk7CihmdW5jdGlvbigpe1lBSE9PLmVudi5faWRfY291bnRlcj1ZQUhPTy5lbnYu X2lkX2NvdW50ZXJ8fDA7dmFyIEU9WUFIT08udXRpbCxMPVlBSE9PLmxhbmcsbT1Z QUhPTy5lbnYudWEsQT1ZQUhPTy5sYW5nLnRyaW0sZD17fSxoPXt9LE49L150KD86 YWJsZXxkfGgpJC9pLFg9L2NvbG9yJC9pLEs9d2luZG93LmRvY3VtZW50LFc9Sy5k b2N1bWVudEVsZW1lbnQsZT0ib3duZXJEb2N1bWVudCIsbj0iZGVmYXVsdFZpZXci LHY9ImRvY3VtZW50RWxlbWVudCIsdD0iY29tcGF0TW9kZSIsYj0ib2Zmc2V0TGVm dCIsUD0ib2Zmc2V0VG9wIix1PSJvZmZzZXRQYXJlbnQiLFo9InBhcmVudE5vZGUi LGw9Im5vZGVUeXBlIixDPSJ0YWdOYW1lIixPPSJzY3JvbGxMZWZ0IixpPSJzY3Jv bGxUb3AiLFE9ImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsdz0iZ2V0Q29tcHV0ZWRT dHlsZSIsYT0iY3VycmVudFN0eWxlIixNPSJDU1MxQ29tcGF0IixjPSJCYWNrQ29t cGF0IixnPSJjbGFzcyIsRj0iY2xhc3NOYW1lIixKPSIiLEI9IiAiLHM9Iig/Ol58 XFxzKSIsaz0iKD89IHwkKSIsVT0iZyIscD0icG9zaXRpb24iLGY9ImZpeGVkIixW PSJyZWxhdGl2ZSIsaj0ibGVmdCIsbz0idG9wIixyPSJtZWRpdW0iLHE9ImJvcmRl ckxlZnRXaWR0aCIsUj0iYm9yZGVyVG9wV2lkdGgiLEQ9bS5vcGVyYSxJPW0ud2Vi a2l0LEg9bS5nZWNrbyxUPW0uaWU7RS5Eb209e0NVU1RPTV9BVFRSSUJVVEVTOigh Vy5oYXNBdHRyaWJ1dGUpP3siZm9yIjoiaHRtbEZvciIsImNsYXNzIjpGfTp7Imh0 bWxGb3IiOiJmb3IiLCJjbGFzc05hbWUiOmd9LERPVF9BVFRSSUJVVEVTOnt9LGdl dDpmdW5jdGlvbih6KXt2YXIgQUIseCxBQSx5LFksRztpZih6KXtpZih6W2xdfHx6 Lml0ZW0pe3JldHVybiB6O31pZih0eXBlb2Ygej09PSJzdHJpbmciKXtBQj16O3o9 Sy5nZXRFbGVtZW50QnlJZCh6KTtHPSh6KT96LmF0dHJpYnV0ZXM6bnVsbDtpZih6 JiZHJiZHLmlkJiZHLmlkLnZhbHVlPT09QUIpe3JldHVybiB6O31lbHNle2lmKHom JksuYWxsKXt6PW51bGw7eD1LLmFsbFtBQl07Zm9yKHk9MCxZPXgubGVuZ3RoO3k8 WTsrK3kpe2lmKHhbeV0uaWQ9PT1BQil7cmV0dXJuIHhbeV07fX19fXJldHVybiB6 O31pZihZQUhPTy51dGlsLkVsZW1lbnQmJnogaW5zdGFuY2VvZiBZQUhPTy51dGls LkVsZW1lbnQpe3o9ei5nZXQoImVsZW1lbnQiKTt9aWYoImxlbmd0aCIgaW4geil7 QUE9W107Zm9yKHk9MCxZPXoubGVuZ3RoO3k8WTsrK3kpe0FBW0FBLmxlbmd0aF09 RS5Eb20uZ2V0KHpbeV0pO31yZXR1cm4gQUE7fXJldHVybiB6O31yZXR1cm4gbnVs bDt9LGdldENvbXB1dGVkU3R5bGU6ZnVuY3Rpb24oRyxZKXtpZih3aW5kb3dbd10p e3JldHVybiBHW2VdW25dW3ddKEcsbnVsbClbWV07fWVsc2V7aWYoR1thXSl7cmV0 dXJuIEUuRG9tLklFX0NvbXB1dGVkU3R5bGUuZ2V0KEcsWSk7fX19LGdldFN0eWxl OmZ1bmN0aW9uKEcsWSl7cmV0dXJuIEUuRG9tLmJhdGNoKEcsRS5Eb20uX2dldFN0 eWxlLFkpO30sX2dldFN0eWxlOmZ1bmN0aW9uKCl7aWYod2luZG93W3ddKXtyZXR1 cm4gZnVuY3Rpb24oRyx5KXt5PSh5PT09ImZsb2F0Iik/eT0iY3NzRmxvYXQiOkUu RG9tLl90b0NhbWVsKHkpO3ZhciB4PUcuc3R5bGVbeV0sWTtpZigheCl7WT1HW2Vd W25dW3ddKEcsbnVsbCk7aWYoWSl7eD1ZW3ldO319cmV0dXJuIHg7fTt9ZWxzZXtp ZihXW2FdKXtyZXR1cm4gZnVuY3Rpb24oRyx5KXt2YXIgeDtzd2l0Y2goeSl7Y2Fz ZSJvcGFjaXR5Ijp4PTEwMDt0cnl7eD1HLmZpbHRlcnNbIkRYSW1hZ2VUcmFuc2Zv cm0uTWljcm9zb2Z0LkFscGhhIl0ub3BhY2l0eTt9Y2F0Y2goeil7dHJ5e3g9Ry5m aWx0ZXJzKCJhbHBoYSIpLm9wYWNpdHk7fWNhdGNoKFkpe319cmV0dXJuIHgvMTAw O2Nhc2UiZmxvYXQiOnk9InN0eWxlRmxvYXQiO2RlZmF1bHQ6eT1FLkRvbS5fdG9D YW1lbCh5KTt4PUdbYV0/R1thXVt5XTpudWxsO3JldHVybihHLnN0eWxlW3ldfHx4 KTt9fTt9fX0oKSxzZXRTdHlsZTpmdW5jdGlvbihHLFkseCl7RS5Eb20uYmF0Y2go RyxFLkRvbS5fc2V0U3R5bGUse3Byb3A6WSx2YWw6eH0pO30sX3NldFN0eWxlOmZ1 bmN0aW9uKCl7aWYoVCl7cmV0dXJuIGZ1bmN0aW9uKFksRyl7dmFyIHg9RS5Eb20u X3RvQ2FtZWwoRy5wcm9wKSx5PUcudmFsO2lmKFkpe3N3aXRjaCh4KXtjYXNlIm9w YWNpdHkiOmlmKEwuaXNTdHJpbmcoWS5zdHlsZS5maWx0ZXIpKXtZLnN0eWxlLmZp bHRlcj0iYWxwaGEob3BhY2l0eT0iK3kqMTAwKyIpIjtpZighWVthXXx8IVlbYV0u aGFzTGF5b3V0KXtZLnN0eWxlLnpvb209MTt9fWJyZWFrO2Nhc2UiZmxvYXQiOng9 InN0eWxlRmxvYXQiO2RlZmF1bHQ6WS5zdHlsZVt4XT15O319ZWxzZXt9fTt9ZWxz ZXtyZXR1cm4gZnVuY3Rpb24oWSxHKXt2YXIgeD1FLkRvbS5fdG9DYW1lbChHLnBy b3ApLHk9Ry52YWw7aWYoWSl7aWYoeD09ImZsb2F0Iil7eD0iY3NzRmxvYXQiO31Z LnN0eWxlW3hdPXk7fWVsc2V7fX07fX0oKSxnZXRYWTpmdW5jdGlvbihHKXtyZXR1 cm4gRS5Eb20uYmF0Y2goRyxFLkRvbS5fZ2V0WFkpO30sX2NhblBvc2l0aW9uOmZ1 bmN0aW9uKEcpe3JldHVybihFLkRvbS5fZ2V0U3R5bGUoRywiZGlzcGxheSIpIT09 Im5vbmUiJiZFLkRvbS5faW5Eb2MoRykpO30sX2dldFhZOmZ1bmN0aW9uKCl7aWYo S1t2XVtRXSl7cmV0dXJuIGZ1bmN0aW9uKHkpe3ZhciB6LFksQUEsQUYsQUUsQUQs QUMsRyx4LEFCPU1hdGguZmxvb3IsQUc9ZmFsc2U7aWYoRS5Eb20uX2NhblBvc2l0 aW9uKHkpKXtBQT15W1FdKCk7QUY9eVtlXTt6PUUuRG9tLmdldERvY3VtZW50U2Ny b2xsTGVmdChBRik7WT1FLkRvbS5nZXREb2N1bWVudFNjcm9sbFRvcChBRik7QUc9 W0FCKEFBW2pdKSxBQihBQVtvXSldO2lmKFQmJm0uaWU8OCl7QUU9MjtBRD0yO0FD PUFGW3RdO2lmKG0uaWU9PT02KXtpZihBQyE9PWMpe0FFPTA7QUQ9MDt9fWlmKChB Qz09PWMpKXtHPVMoQUZbdl0scSk7eD1TKEFGW3ZdLFIpO2lmKEchPT1yKXtBRT1w YXJzZUludChHLDEwKTt9aWYoeCE9PXIpe0FEPXBhcnNlSW50KHgsMTApO319QUdb MF0tPUFFO0FHWzFdLT1BRDt9aWYoKFl8fHopKXtBR1swXSs9ejtBR1sxXSs9WTt9 QUdbMF09QUIoQUdbMF0pO0FHWzFdPUFCKEFHWzFdKTt9ZWxzZXt9cmV0dXJuIEFH O307fWVsc2V7cmV0dXJuIGZ1bmN0aW9uKHkpe3ZhciB4LFksQUEsQUIsQUMsej1m YWxzZSxHPXk7aWYoRS5Eb20uX2NhblBvc2l0aW9uKHkpKXt6PVt5W2JdLHlbUF1d O3g9RS5Eb20uZ2V0RG9jdW1lbnRTY3JvbGxMZWZ0KHlbZV0pO1k9RS5Eb20uZ2V0 RG9jdW1lbnRTY3JvbGxUb3AoeVtlXSk7QUM9KChIfHxtLndlYmtpdD41MTkpP3Ry dWU6ZmFsc2UpO3doaWxlKChHPUdbdV0pKXt6WzBdKz1HW2JdO3pbMV0rPUdbUF07 aWYoQUMpe3o9RS5Eb20uX2NhbGNCb3JkZXJzKEcseik7fX1pZihFLkRvbS5fZ2V0 U3R5bGUoeSxwKSE9PWYpe0c9eTt3aGlsZSgoRz1HW1pdKSYmR1tDXSl7QUE9R1tp XTtBQj1HW09dO2lmKEgmJihFLkRvbS5fZ2V0U3R5bGUoRywib3ZlcmZsb3ciKSE9 PSJ2aXNpYmxlIikpe3o9RS5Eb20uX2NhbGNCb3JkZXJzKEcseik7fWlmKEFBfHxB Qil7elswXS09QUI7elsxXS09QUE7fX16WzBdKz14O3pbMV0rPVk7fWVsc2V7aWYo RCl7elswXS09eDt6WzFdLT1ZO31lbHNle2lmKEl8fEgpe3pbMF0rPXg7elsxXSs9 WTt9fX16WzBdPU1hdGguZmxvb3IoelswXSk7elsxXT1NYXRoLmZsb29yKHpbMV0p O31lbHNle31yZXR1cm4gejt9O319KCksZ2V0WDpmdW5jdGlvbihHKXt2YXIgWT1m dW5jdGlvbih4KXtyZXR1cm4gRS5Eb20uZ2V0WFkoeClbMF07fTtyZXR1cm4gRS5E b20uYmF0Y2goRyxZLEUuRG9tLHRydWUpO30sZ2V0WTpmdW5jdGlvbihHKXt2YXIg WT1mdW5jdGlvbih4KXtyZXR1cm4gRS5Eb20uZ2V0WFkoeClbMV07fTtyZXR1cm4g RS5Eb20uYmF0Y2goRyxZLEUuRG9tLHRydWUpO30sc2V0WFk6ZnVuY3Rpb24oRyx4 LFkpe0UuRG9tLmJhdGNoKEcsRS5Eb20uX3NldFhZLHtwb3M6eCxub1JldHJ5Oll9 KTt9LF9zZXRYWTpmdW5jdGlvbihHLHope3ZhciBBQT1FLkRvbS5fZ2V0U3R5bGUo RyxwKSx5PUUuRG9tLnNldFN0eWxlLEFEPXoucG9zLFk9ei5ub1JldHJ5LEFCPVtw YXJzZUludChFLkRvbS5nZXRDb21wdXRlZFN0eWxlKEcsaiksMTApLHBhcnNlSW50 KEUuRG9tLmdldENvbXB1dGVkU3R5bGUoRyxvKSwxMCldLEFDLHg7aWYoQUE9PSJz dGF0aWMiKXtBQT1WO3koRyxwLEFBKTt9QUM9RS5Eb20uX2dldFhZKEcpO2lmKCFB RHx8QUM9PT1mYWxzZSl7cmV0dXJuIGZhbHNlO31pZihpc05hTihBQlswXSkpe0FC WzBdPShBQT09Vik/MDpHW2JdO31pZihpc05hTihBQlsxXSkpe0FCWzFdPShBQT09 Vik/MDpHW1BdO31pZihBRFswXSE9PW51bGwpe3koRyxqLEFEWzBdLUFDWzBdK0FC WzBdKyJweCIpO31pZihBRFsxXSE9PW51bGwpe3koRyxvLEFEWzFdLUFDWzFdK0FC WzFdKyJweCIpO31pZighWSl7eD1FLkRvbS5fZ2V0WFkoRyk7aWYoKEFEWzBdIT09 bnVsbCYmeFswXSE9QURbMF0pfHwoQURbMV0hPT1udWxsJiZ4WzFdIT1BRFsxXSkp e0UuRG9tLl9zZXRYWShHLHtwb3M6QUQsbm9SZXRyeTp0cnVlfSk7fX19LHNldFg6 ZnVuY3Rpb24oWSxHKXtFLkRvbS5zZXRYWShZLFtHLG51bGxdKTt9LHNldFk6ZnVu Y3Rpb24oRyxZKXtFLkRvbS5zZXRYWShHLFtudWxsLFldKTt9LGdldFJlZ2lvbjpm dW5jdGlvbihHKXt2YXIgWT1mdW5jdGlvbih4KXt2YXIgeT1mYWxzZTtpZihFLkRv bS5fY2FuUG9zaXRpb24oeCkpe3k9RS5SZWdpb24uZ2V0UmVnaW9uKHgpO31lbHNl e31yZXR1cm4geTt9O3JldHVybiBFLkRvbS5iYXRjaChHLFksRS5Eb20sdHJ1ZSk7 fSxnZXRDbGllbnRXaWR0aDpmdW5jdGlvbigpe3JldHVybiBFLkRvbS5nZXRWaWV3 cG9ydFdpZHRoKCk7fSxnZXRDbGllbnRIZWlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4g RS5Eb20uZ2V0Vmlld3BvcnRIZWlnaHQoKTt9LGdldEVsZW1lbnRzQnlDbGFzc05h bWU6ZnVuY3Rpb24oQUIsQUYsQUMsQUUseCxBRCl7QUY9QUZ8fCIqIjtBQz0oQUMp P0UuRG9tLmdldChBQyk6bnVsbHx8SztpZighQUMpe3JldHVybltdO312YXIgWT1b XSxHPUFDLmdldEVsZW1lbnRzQnlUYWdOYW1lKEFGKSx6PUUuRG9tLmhhc0NsYXNz O2Zvcih2YXIgeT0wLEFBPUcubGVuZ3RoO3k8QUE7Kyt5KXtpZih6KEdbeV0sQUIp KXtZW1kubGVuZ3RoXT1HW3ldO319aWYoQUUpe0UuRG9tLmJhdGNoKFksQUUseCxB RCk7fXJldHVybiBZO30saGFzQ2xhc3M6ZnVuY3Rpb24oWSxHKXtyZXR1cm4gRS5E b20uYmF0Y2goWSxFLkRvbS5faGFzQ2xhc3MsRyk7fSxfaGFzQ2xhc3M6ZnVuY3Rp b24oeCxZKXt2YXIgRz1mYWxzZSx5O2lmKHgmJlkpe3k9RS5Eb20uX2dldEF0dHJp YnV0ZSh4LEYpfHxKO2lmKFkuZXhlYyl7Rz1ZLnRlc3QoeSk7fWVsc2V7Rz1ZJiYo Qit5K0IpLmluZGV4T2YoQitZK0IpPi0xO319ZWxzZXt9cmV0dXJuIEc7fSxhZGRD bGFzczpmdW5jdGlvbihZLEcpe3JldHVybiBFLkRvbS5iYXRjaChZLEUuRG9tLl9h ZGRDbGFzcyxHKTt9LF9hZGRDbGFzczpmdW5jdGlvbih4LFkpe3ZhciBHPWZhbHNl LHk7aWYoeCYmWSl7eT1FLkRvbS5fZ2V0QXR0cmlidXRlKHgsRil8fEo7aWYoIUUu RG9tLl9oYXNDbGFzcyh4LFkpKXtFLkRvbS5zZXRBdHRyaWJ1dGUoeCxGLEEoeStC K1kpKTtHPXRydWU7fX1lbHNle31yZXR1cm4gRzt9LHJlbW92ZUNsYXNzOmZ1bmN0 aW9uKFksRyl7cmV0dXJuIEUuRG9tLmJhdGNoKFksRS5Eb20uX3JlbW92ZUNsYXNz LEcpO30sX3JlbW92ZUNsYXNzOmZ1bmN0aW9uKHkseCl7dmFyIFk9ZmFsc2UsQUEs eixHO2lmKHkmJngpe0FBPUUuRG9tLl9nZXRBdHRyaWJ1dGUoeSxGKXx8SjtFLkRv bS5zZXRBdHRyaWJ1dGUoeSxGLEFBLnJlcGxhY2UoRS5Eb20uX2dldENsYXNzUmVn ZXgoeCksSikpO3o9RS5Eb20uX2dldEF0dHJpYnV0ZSh5LEYpO2lmKEFBIT09eil7 RS5Eb20uc2V0QXR0cmlidXRlKHksRixBKHopKTtZPXRydWU7aWYoRS5Eb20uX2dl dEF0dHJpYnV0ZSh5LEYpPT09IiIpe0c9KHkuaGFzQXR0cmlidXRlJiZ5Lmhhc0F0 dHJpYnV0ZShnKSk/ZzpGOwp5LnJlbW92ZUF0dHJpYnV0ZShHKTt9fX1lbHNle31y ZXR1cm4gWTt9LHJlcGxhY2VDbGFzczpmdW5jdGlvbih4LFksRyl7cmV0dXJuIEUu RG9tLmJhdGNoKHgsRS5Eb20uX3JlcGxhY2VDbGFzcyx7ZnJvbTpZLHRvOkd9KTt9 LF9yZXBsYWNlQ2xhc3M6ZnVuY3Rpb24oeSx4KXt2YXIgWSxBQixBQSxHPWZhbHNl LHo7aWYoeSYmeCl7QUI9eC5mcm9tO0FBPXgudG87aWYoIUFBKXtHPWZhbHNlO31l bHNle2lmKCFBQil7Rz1FLkRvbS5fYWRkQ2xhc3MoeSx4LnRvKTt9ZWxzZXtpZihB QiE9PUFBKXt6PUUuRG9tLl9nZXRBdHRyaWJ1dGUoeSxGKXx8SjtZPShCK3oucmVw bGFjZShFLkRvbS5fZ2V0Q2xhc3NSZWdleChBQiksQitBQSkpLnNwbGl0KEUuRG9t Ll9nZXRDbGFzc1JlZ2V4KEFBKSk7WS5zcGxpY2UoMSwwLEIrQUEpO0UuRG9tLnNl dEF0dHJpYnV0ZSh5LEYsQShZLmpvaW4oSikpKTtHPXRydWU7fX19fWVsc2V7fXJl dHVybiBHO30sZ2VuZXJhdGVJZDpmdW5jdGlvbihHLHgpe3g9eHx8Inl1aS1nZW4i O3ZhciBZPWZ1bmN0aW9uKHkpe2lmKHkmJnkuaWQpe3JldHVybiB5LmlkO312YXIg ej14K1lBSE9PLmVudi5faWRfY291bnRlcisrO2lmKHkpe2lmKHlbZV0mJnlbZV0u Z2V0RWxlbWVudEJ5SWQoeikpe3JldHVybiBFLkRvbS5nZW5lcmF0ZUlkKHkseit4 KTt9eS5pZD16O31yZXR1cm4gejt9O3JldHVybiBFLkRvbS5iYXRjaChHLFksRS5E b20sdHJ1ZSl8fFkuYXBwbHkoRS5Eb20sYXJndW1lbnRzKTt9LGlzQW5jZXN0b3I6 ZnVuY3Rpb24oWSx4KXtZPUUuRG9tLmdldChZKTt4PUUuRG9tLmdldCh4KTt2YXIg Rz1mYWxzZTtpZigoWSYmeCkmJihZW2xdJiZ4W2xdKSl7aWYoWS5jb250YWlucyYm WSE9PXgpe0c9WS5jb250YWlucyh4KTt9ZWxzZXtpZihZLmNvbXBhcmVEb2N1bWVu dFBvc2l0aW9uKXtHPSEhKFkuY29tcGFyZURvY3VtZW50UG9zaXRpb24oeCkmMTYp O319fWVsc2V7fXJldHVybiBHO30saW5Eb2N1bWVudDpmdW5jdGlvbihHLFkpe3Jl dHVybiBFLkRvbS5faW5Eb2MoRS5Eb20uZ2V0KEcpLFkpO30sX2luRG9jOmZ1bmN0 aW9uKFkseCl7dmFyIEc9ZmFsc2U7aWYoWSYmWVtDXSl7eD14fHxZW2VdO0c9RS5E b20uaXNBbmNlc3Rvcih4W3ZdLFkpO31lbHNle31yZXR1cm4gRzt9LGdldEVsZW1l bnRzQnk6ZnVuY3Rpb24oWSxBRixBQixBRCx5LEFDLEFFKXtBRj1BRnx8IioiO0FC PShBQik/RS5Eb20uZ2V0KEFCKTpudWxsfHxLO2lmKCFBQil7cmV0dXJuW107fXZh ciB4PVtdLEc9QUIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoQUYpO2Zvcih2YXIgej0w LEFBPUcubGVuZ3RoO3o8QUE7Kyt6KXtpZihZKEdbel0pKXtpZihBRSl7eD1HW3pd O2JyZWFrO31lbHNle3hbeC5sZW5ndGhdPUdbel07fX19aWYoQUQpe0UuRG9tLmJh dGNoKHgsQUQseSxBQyk7fXJldHVybiB4O30sZ2V0RWxlbWVudEJ5OmZ1bmN0aW9u KHgsRyxZKXtyZXR1cm4gRS5Eb20uZ2V0RWxlbWVudHNCeSh4LEcsWSxudWxsLG51 bGwsbnVsbCx0cnVlKTt9LGJhdGNoOmZ1bmN0aW9uKHgsQUIsQUEseil7dmFyIHk9 W10sWT0oeik/QUE6d2luZG93O3g9KHgmJih4W0NdfHx4Lml0ZW0pKT94OkUuRG9t LmdldCh4KTtpZih4JiZBQil7aWYoeFtDXXx8eC5sZW5ndGg9PT11bmRlZmluZWQp e3JldHVybiBBQi5jYWxsKFkseCxBQSk7fWZvcih2YXIgRz0wO0c8eC5sZW5ndGg7 KytHKXt5W3kubGVuZ3RoXT1BQi5jYWxsKFkseFtHXSxBQSk7fX1lbHNle3JldHVy biBmYWxzZTt9cmV0dXJuIHk7fSxnZXREb2N1bWVudEhlaWdodDpmdW5jdGlvbigp e3ZhciBZPShLW3RdIT1NfHxJKT9LLmJvZHkuc2Nyb2xsSGVpZ2h0Olcuc2Nyb2xs SGVpZ2h0LEc9TWF0aC5tYXgoWSxFLkRvbS5nZXRWaWV3cG9ydEhlaWdodCgpKTty ZXR1cm4gRzt9LGdldERvY3VtZW50V2lkdGg6ZnVuY3Rpb24oKXt2YXIgWT0oS1t0 XSE9TXx8SSk/Sy5ib2R5LnNjcm9sbFdpZHRoOlcuc2Nyb2xsV2lkdGgsRz1NYXRo Lm1heChZLEUuRG9tLmdldFZpZXdwb3J0V2lkdGgoKSk7cmV0dXJuIEc7fSxnZXRW aWV3cG9ydEhlaWdodDpmdW5jdGlvbigpe3ZhciBHPXNlbGYuaW5uZXJIZWlnaHQs WT1LW3RdO2lmKChZfHxUKSYmIUQpe0c9KFk9PU0pP1cuY2xpZW50SGVpZ2h0Oksu Ym9keS5jbGllbnRIZWlnaHQ7fXJldHVybiBHO30sZ2V0Vmlld3BvcnRXaWR0aDpm dW5jdGlvbigpe3ZhciBHPXNlbGYuaW5uZXJXaWR0aCxZPUtbdF07aWYoWXx8VCl7 Rz0oWT09TSk/Vy5jbGllbnRXaWR0aDpLLmJvZHkuY2xpZW50V2lkdGg7fXJldHVy biBHO30sZ2V0QW5jZXN0b3JCeTpmdW5jdGlvbihHLFkpe3doaWxlKChHPUdbWl0p KXtpZihFLkRvbS5fdGVzdEVsZW1lbnQoRyxZKSl7cmV0dXJuIEc7fX1yZXR1cm4g bnVsbDt9LGdldEFuY2VzdG9yQnlDbGFzc05hbWU6ZnVuY3Rpb24oWSxHKXtZPUUu RG9tLmdldChZKTtpZighWSl7cmV0dXJuIG51bGw7fXZhciB4PWZ1bmN0aW9uKHkp e3JldHVybiBFLkRvbS5oYXNDbGFzcyh5LEcpO307cmV0dXJuIEUuRG9tLmdldEFu Y2VzdG9yQnkoWSx4KTt9LGdldEFuY2VzdG9yQnlUYWdOYW1lOmZ1bmN0aW9uKFks Ryl7WT1FLkRvbS5nZXQoWSk7aWYoIVkpe3JldHVybiBudWxsO312YXIgeD1mdW5j dGlvbih5KXtyZXR1cm4geVtDXSYmeVtDXS50b1VwcGVyQ2FzZSgpPT1HLnRvVXBw ZXJDYXNlKCk7fTtyZXR1cm4gRS5Eb20uZ2V0QW5jZXN0b3JCeShZLHgpO30sZ2V0 UHJldmlvdXNTaWJsaW5nQnk6ZnVuY3Rpb24oRyxZKXt3aGlsZShHKXtHPUcucHJl dmlvdXNTaWJsaW5nO2lmKEUuRG9tLl90ZXN0RWxlbWVudChHLFkpKXtyZXR1cm4g Rzt9fXJldHVybiBudWxsO30sZ2V0UHJldmlvdXNTaWJsaW5nOmZ1bmN0aW9uKEcp e0c9RS5Eb20uZ2V0KEcpO2lmKCFHKXtyZXR1cm4gbnVsbDt9cmV0dXJuIEUuRG9t LmdldFByZXZpb3VzU2libGluZ0J5KEcpO30sZ2V0TmV4dFNpYmxpbmdCeTpmdW5j dGlvbihHLFkpe3doaWxlKEcpe0c9Ry5uZXh0U2libGluZztpZihFLkRvbS5fdGVz dEVsZW1lbnQoRyxZKSl7cmV0dXJuIEc7fX1yZXR1cm4gbnVsbDt9LGdldE5leHRT aWJsaW5nOmZ1bmN0aW9uKEcpe0c9RS5Eb20uZ2V0KEcpO2lmKCFHKXtyZXR1cm4g bnVsbDt9cmV0dXJuIEUuRG9tLmdldE5leHRTaWJsaW5nQnkoRyk7fSxnZXRGaXJz dENoaWxkQnk6ZnVuY3Rpb24oRyx4KXt2YXIgWT0oRS5Eb20uX3Rlc3RFbGVtZW50 KEcuZmlyc3RDaGlsZCx4KSk/Ry5maXJzdENoaWxkOm51bGw7cmV0dXJuIFl8fEUu RG9tLmdldE5leHRTaWJsaW5nQnkoRy5maXJzdENoaWxkLHgpO30sZ2V0Rmlyc3RD aGlsZDpmdW5jdGlvbihHLFkpe0c9RS5Eb20uZ2V0KEcpO2lmKCFHKXtyZXR1cm4g bnVsbDt9cmV0dXJuIEUuRG9tLmdldEZpcnN0Q2hpbGRCeShHKTt9LGdldExhc3RD aGlsZEJ5OmZ1bmN0aW9uKEcseCl7aWYoIUcpe3JldHVybiBudWxsO312YXIgWT0o RS5Eb20uX3Rlc3RFbGVtZW50KEcubGFzdENoaWxkLHgpKT9HLmxhc3RDaGlsZDpu dWxsO3JldHVybiBZfHxFLkRvbS5nZXRQcmV2aW91c1NpYmxpbmdCeShHLmxhc3RD aGlsZCx4KTt9LGdldExhc3RDaGlsZDpmdW5jdGlvbihHKXtHPUUuRG9tLmdldChH KTtyZXR1cm4gRS5Eb20uZ2V0TGFzdENoaWxkQnkoRyk7fSxnZXRDaGlsZHJlbkJ5 OmZ1bmN0aW9uKFkseSl7dmFyIHg9RS5Eb20uZ2V0Rmlyc3RDaGlsZEJ5KFkseSks Rz14P1t4XTpbXTtFLkRvbS5nZXROZXh0U2libGluZ0J5KHgsZnVuY3Rpb24oeil7 aWYoIXl8fHkoeikpe0dbRy5sZW5ndGhdPXo7fXJldHVybiBmYWxzZTt9KTtyZXR1 cm4gRzt9LGdldENoaWxkcmVuOmZ1bmN0aW9uKEcpe0c9RS5Eb20uZ2V0KEcpO2lm KCFHKXt9cmV0dXJuIEUuRG9tLmdldENoaWxkcmVuQnkoRyk7fSxnZXREb2N1bWVu dFNjcm9sbExlZnQ6ZnVuY3Rpb24oRyl7Rz1HfHxLO3JldHVybiBNYXRoLm1heChH W3ZdLnNjcm9sbExlZnQsRy5ib2R5LnNjcm9sbExlZnQpO30sZ2V0RG9jdW1lbnRT Y3JvbGxUb3A6ZnVuY3Rpb24oRyl7Rz1HfHxLO3JldHVybiBNYXRoLm1heChHW3Zd LnNjcm9sbFRvcCxHLmJvZHkuc2Nyb2xsVG9wKTt9LGluc2VydEJlZm9yZTpmdW5j dGlvbihZLEcpe1k9RS5Eb20uZ2V0KFkpO0c9RS5Eb20uZ2V0KEcpO2lmKCFZfHwh R3x8IUdbWl0pe3JldHVybiBudWxsO31yZXR1cm4gR1taXS5pbnNlcnRCZWZvcmUo WSxHKTt9LGluc2VydEFmdGVyOmZ1bmN0aW9uKFksRyl7WT1FLkRvbS5nZXQoWSk7 Rz1FLkRvbS5nZXQoRyk7aWYoIVl8fCFHfHwhR1taXSl7cmV0dXJuIG51bGw7fWlm KEcubmV4dFNpYmxpbmcpe3JldHVybiBHW1pdLmluc2VydEJlZm9yZShZLEcubmV4 dFNpYmxpbmcpO31lbHNle3JldHVybiBHW1pdLmFwcGVuZENoaWxkKFkpO319LGdl dENsaWVudFJlZ2lvbjpmdW5jdGlvbigpe3ZhciB4PUUuRG9tLmdldERvY3VtZW50 U2Nyb2xsVG9wKCksWT1FLkRvbS5nZXREb2N1bWVudFNjcm9sbExlZnQoKSx5PUUu RG9tLmdldFZpZXdwb3J0V2lkdGgoKStZLEc9RS5Eb20uZ2V0Vmlld3BvcnRIZWln aHQoKSt4O3JldHVybiBuZXcgRS5SZWdpb24oeCx5LEcsWSk7fSxzZXRBdHRyaWJ1 dGU6ZnVuY3Rpb24oWSxHLHgpe0UuRG9tLmJhdGNoKFksRS5Eb20uX3NldEF0dHJp YnV0ZSx7YXR0cjpHLHZhbDp4fSk7fSxfc2V0QXR0cmlidXRlOmZ1bmN0aW9uKHgs WSl7dmFyIEc9RS5Eb20uX3RvQ2FtZWwoWS5hdHRyKSx5PVkudmFsO2lmKHgmJngu c2V0QXR0cmlidXRlKXtpZihFLkRvbS5ET1RfQVRUUklCVVRFU1tHXSl7eFtHXT15 O31lbHNle0c9RS5Eb20uQ1VTVE9NX0FUVFJJQlVURVNbR118fEc7eC5zZXRBdHRy aWJ1dGUoRyx5KTt9fWVsc2V7fX0sZ2V0QXR0cmlidXRlOmZ1bmN0aW9uKFksRyl7 cmV0dXJuIEUuRG9tLmJhdGNoKFksRS5Eb20uX2dldEF0dHJpYnV0ZSxHKTt9LF9n ZXRBdHRyaWJ1dGU6ZnVuY3Rpb24oWSxHKXt2YXIgeDtHPUUuRG9tLkNVU1RPTV9B VFRSSUJVVEVTW0ddfHxHO2lmKFkmJlkuZ2V0QXR0cmlidXRlKXt4PVkuZ2V0QXR0 cmlidXRlKEcsMik7fWVsc2V7fXJldHVybiB4O30sX3RvQ2FtZWw6ZnVuY3Rpb24o WSl7dmFyIHg9ZDtmdW5jdGlvbiBHKHkseil7cmV0dXJuIHoudG9VcHBlckNhc2Uo KTt9cmV0dXJuIHhbWV18fCh4W1ldPVkuaW5kZXhPZigiLSIpPT09LTE/WTpZLnJl cGxhY2UoLy0oW2Etel0pL2dpLEcpKTt9LF9nZXRDbGFzc1JlZ2V4OmZ1bmN0aW9u KFkpe3ZhciBHO2lmKFkhPT11bmRlZmluZWQpe2lmKFkuZXhlYyl7Rz1ZO31lbHNl e0c9aFtZXTtpZighRyl7WT1ZLnJlcGxhY2UoRS5Eb20uX3BhdHRlcm5zLkNMQVNT X1JFX1RPS0VOUywiXFwkMSIpO0c9aFtZXT1uZXcgUmVnRXhwKHMrWStrLFUpO319 fXJldHVybiBHO30sX3BhdHRlcm5zOntST09UX1RBRzovXmJvZHl8aHRtbCQvaSxD TEFTU19SRV9UT0tFTlM6LyhbXC5cKFwpXF5cJFwqXCtcP1x8XFtcXVx7XH1cXF0p L2d9LF90ZXN0RWxlbWVudDpmdW5jdGlvbihHLFkpe3JldHVybiBHJiZHW2xdPT0x JiYoIVl8fFkoRykpO30sX2NhbGNCb3JkZXJzOmZ1bmN0aW9uKHgseSl7dmFyIFk9 cGFyc2VJbnQoRS5Eb21bd10oeCxSKSwxMCl8fDAsRz1wYXJzZUludChFLkRvbVt3 XSh4LHEpLDEwKXx8MDtpZihIKXtpZihOLnRlc3QoeFtDXSkpe1k9MDtHPTA7fX15 WzBdKz1HO3lbMV0rPVk7cmV0dXJuIHk7fX07dmFyIFM9RS5Eb21bd107aWYobS5v cGVyYSl7RS5Eb21bd109ZnVuY3Rpb24oWSxHKXt2YXIgeD1TKFksRyk7aWYoWC50 ZXN0KEcpKXt4PUUuRG9tLkNvbG9yLnRvUkdCKHgpO31yZXR1cm4geDt9O31pZiht LndlYmtpdCl7RS5Eb21bd109ZnVuY3Rpb24oWSxHKXt2YXIgeD1TKFksRyk7aWYo eD09PSJyZ2JhKDAsIDAsIDAsIDApIil7eD0idHJhbnNwYXJlbnQiO31yZXR1cm4g eDt9O31pZihtLmllJiZtLmllPj04JiZLLmRvY3VtZW50RWxlbWVudC5oYXNBdHRy aWJ1dGUpe0UuRG9tLkRPVF9BVFRSSUJVVEVTLnR5cGU9dHJ1ZTt9fSkoKTtZQUhP Ty51dGlsLlJlZ2lvbj1mdW5jdGlvbihDLEQsQSxCKXt0aGlzLnRvcD1DO3RoaXMu eT1DO3RoaXNbMV09Qzt0aGlzLnJpZ2h0PUQ7dGhpcy5ib3R0b209QTt0aGlzLmxl ZnQ9Qjt0aGlzLng9Qjt0aGlzWzBdPUI7CnRoaXMud2lkdGg9dGhpcy5yaWdodC10 aGlzLmxlZnQ7dGhpcy5oZWlnaHQ9dGhpcy5ib3R0b20tdGhpcy50b3A7fTtZQUhP Ty51dGlsLlJlZ2lvbi5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24oQSl7cmV0 dXJuKEEubGVmdD49dGhpcy5sZWZ0JiZBLnJpZ2h0PD10aGlzLnJpZ2h0JiZBLnRv cD49dGhpcy50b3AmJkEuYm90dG9tPD10aGlzLmJvdHRvbSk7fTtZQUhPTy51dGls LlJlZ2lvbi5wcm90b3R5cGUuZ2V0QXJlYT1mdW5jdGlvbigpe3JldHVybigodGhp cy5ib3R0b20tdGhpcy50b3ApKih0aGlzLnJpZ2h0LXRoaXMubGVmdCkpO307WUFI T08udXRpbC5SZWdpb24ucHJvdG90eXBlLmludGVyc2VjdD1mdW5jdGlvbihFKXt2 YXIgQz1NYXRoLm1heCh0aGlzLnRvcCxFLnRvcCksRD1NYXRoLm1pbih0aGlzLnJp Z2h0LEUucmlnaHQpLEE9TWF0aC5taW4odGhpcy5ib3R0b20sRS5ib3R0b20pLEI9 TWF0aC5tYXgodGhpcy5sZWZ0LEUubGVmdCk7aWYoQT49QyYmRD49Qil7cmV0dXJu IG5ldyBZQUhPTy51dGlsLlJlZ2lvbihDLEQsQSxCKTt9ZWxzZXtyZXR1cm4gbnVs bDt9fTtZQUhPTy51dGlsLlJlZ2lvbi5wcm90b3R5cGUudW5pb249ZnVuY3Rpb24o RSl7dmFyIEM9TWF0aC5taW4odGhpcy50b3AsRS50b3ApLEQ9TWF0aC5tYXgodGhp cy5yaWdodCxFLnJpZ2h0KSxBPU1hdGgubWF4KHRoaXMuYm90dG9tLEUuYm90dG9t KSxCPU1hdGgubWluKHRoaXMubGVmdCxFLmxlZnQpO3JldHVybiBuZXcgWUFIT08u dXRpbC5SZWdpb24oQyxELEEsQik7fTtZQUhPTy51dGlsLlJlZ2lvbi5wcm90b3R5 cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4oIlJlZ2lvbiB7IisidG9wOiAi K3RoaXMudG9wKyIsIHJpZ2h0OiAiK3RoaXMucmlnaHQrIiwgYm90dG9tOiAiK3Ro aXMuYm90dG9tKyIsIGxlZnQ6ICIrdGhpcy5sZWZ0KyIsIGhlaWdodDogIit0aGlz LmhlaWdodCsiLCB3aWR0aDogIit0aGlzLndpZHRoKyJ9Iik7fTtZQUhPTy51dGls LlJlZ2lvbi5nZXRSZWdpb249ZnVuY3Rpb24oRCl7dmFyIEY9WUFIT08udXRpbC5E b20uZ2V0WFkoRCksQz1GWzFdLEU9RlswXStELm9mZnNldFdpZHRoLEE9RlsxXStE Lm9mZnNldEhlaWdodCxCPUZbMF07cmV0dXJuIG5ldyBZQUhPTy51dGlsLlJlZ2lv bihDLEUsQSxCKTt9O1lBSE9PLnV0aWwuUG9pbnQ9ZnVuY3Rpb24oQSxCKXtpZihZ QUhPTy5sYW5nLmlzQXJyYXkoQSkpe0I9QVsxXTtBPUFbMF07fVlBSE9PLnV0aWwu UG9pbnQuc3VwZXJjbGFzcy5jb25zdHJ1Y3Rvci5jYWxsKHRoaXMsQixBLEIsQSk7 fTtZQUhPTy5leHRlbmQoWUFIT08udXRpbC5Qb2ludCxZQUhPTy51dGlsLlJlZ2lv bik7KGZ1bmN0aW9uKCl7dmFyIEI9WUFIT08udXRpbCxBPSJjbGllbnRUb3AiLEY9 ImNsaWVudExlZnQiLEo9InBhcmVudE5vZGUiLEs9InJpZ2h0IixXPSJoYXNMYXlv dXQiLEk9InB4IixVPSJvcGFjaXR5IixMPSJhdXRvIixEPSJib3JkZXJMZWZ0V2lk dGgiLEc9ImJvcmRlclRvcFdpZHRoIixQPSJib3JkZXJSaWdodFdpZHRoIixWPSJi b3JkZXJCb3R0b21XaWR0aCIsUz0idmlzaWJsZSIsUT0idHJhbnNwYXJlbnQiLE49 ImhlaWdodCIsRT0id2lkdGgiLEg9InN0eWxlIixUPSJjdXJyZW50U3R5bGUiLFI9 L153aWR0aHxoZWlnaHQkLyxPPS9eKFxkWy5cZF0qKSsoZW18ZXh8cHh8Z2R8cmVt fHZ3fHZofHZtfGNofG1tfGNtfGlufHB0fHBjfGRlZ3xyYWR8bXN8c3xoenxraHp8 JSl7MX0/L2ksTT17Z2V0OmZ1bmN0aW9uKFgsWil7dmFyIFk9IiIsYT1YW1RdW1pd O2lmKFo9PT1VKXtZPUIuRG9tLmdldFN0eWxlKFgsVSk7fWVsc2V7aWYoIWF8fChh LmluZGV4T2YmJmEuaW5kZXhPZihJKT4tMSkpe1k9YTt9ZWxzZXtpZihCLkRvbS5J RV9DT01QVVRFRFtaXSl7WT1CLkRvbS5JRV9DT01QVVRFRFtaXShYLFopO31lbHNl e2lmKE8udGVzdChhKSl7WT1CLkRvbS5JRS5Db21wdXRlZFN0eWxlLmdldFBpeGVs KFgsWik7fWVsc2V7WT1hO319fX1yZXR1cm4gWTt9LGdldE9mZnNldDpmdW5jdGlv bihaLGUpe3ZhciBiPVpbVF1bZV0sWD1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgp K2Uuc3Vic3RyKDEpLGM9Im9mZnNldCIrWCxZPSJwaXhlbCIrWCxhPSIiLGQ7aWYo Yj09TCl7ZD1aW2NdO2lmKGQ9PT11bmRlZmluZWQpe2E9MDt9YT1kO2lmKFIudGVz dChlKSl7WltIXVtlXT1kO2lmKFpbY10+ZCl7YT1kLShaW2NdLWQpO31aW0hdW2Vd PUw7fX1lbHNle2lmKCFaW0hdW1ldJiYhWltIXVtlXSl7WltIXVtlXT1iO31hPVpb SF1bWV07fXJldHVybiBhK0k7fSxnZXRCb3JkZXJXaWR0aDpmdW5jdGlvbihYLFop e3ZhciBZPW51bGw7aWYoIVhbVF1bV10pe1hbSF0uem9vbT0xO31zd2l0Y2goWil7 Y2FzZSBHOlk9WFtBXTticmVhaztjYXNlIFY6WT1YLm9mZnNldEhlaWdodC1YLmNs aWVudEhlaWdodC1YW0FdO2JyZWFrO2Nhc2UgRDpZPVhbRl07YnJlYWs7Y2FzZSBQ Olk9WC5vZmZzZXRXaWR0aC1YLmNsaWVudFdpZHRoLVhbRl07YnJlYWs7fXJldHVy biBZK0k7fSxnZXRQaXhlbDpmdW5jdGlvbihZLFgpe3ZhciBhPW51bGwsYj1ZW1Rd W0tdLFo9WVtUXVtYXTtZW0hdW0tdPVo7YT1ZW0hdLnBpeGVsUmlnaHQ7WVtIXVtL XT1iO3JldHVybiBhK0k7fSxnZXRNYXJnaW46ZnVuY3Rpb24oWSxYKXt2YXIgWjtp ZihZW1RdW1hdPT1MKXtaPTArSTt9ZWxzZXtaPUIuRG9tLklFLkNvbXB1dGVkU3R5 bGUuZ2V0UGl4ZWwoWSxYKTt9cmV0dXJuIFo7fSxnZXRWaXNpYmlsaXR5OmZ1bmN0 aW9uKFksWCl7dmFyIFo7d2hpbGUoKFo9WVtUXSkmJlpbWF09PSJpbmhlcml0Iil7 WT1ZW0pdO31yZXR1cm4oWik/WltYXTpTO30sZ2V0Q29sb3I6ZnVuY3Rpb24oWSxY KXtyZXR1cm4gQi5Eb20uQ29sb3IudG9SR0IoWVtUXVtYXSl8fFE7fSxnZXRCb3Jk ZXJDb2xvcjpmdW5jdGlvbihZLFgpe3ZhciBaPVlbVF0sYT1aW1hdfHxaLmNvbG9y O3JldHVybiBCLkRvbS5Db2xvci50b1JHQihCLkRvbS5Db2xvci50b0hleChhKSk7 fX0sQz17fTtDLnRvcD1DLnJpZ2h0PUMuYm90dG9tPUMubGVmdD1DW0VdPUNbTl09 TS5nZXRPZmZzZXQ7Qy5jb2xvcj1NLmdldENvbG9yO0NbR109Q1tQXT1DW1ZdPUNb RF09TS5nZXRCb3JkZXJXaWR0aDtDLm1hcmdpblRvcD1DLm1hcmdpblJpZ2h0PUMu bWFyZ2luQm90dG9tPUMubWFyZ2luTGVmdD1NLmdldE1hcmdpbjtDLnZpc2liaWxp dHk9TS5nZXRWaXNpYmlsaXR5O0MuYm9yZGVyQ29sb3I9Qy5ib3JkZXJUb3BDb2xv cj1DLmJvcmRlclJpZ2h0Q29sb3I9Qy5ib3JkZXJCb3R0b21Db2xvcj1DLmJvcmRl ckxlZnRDb2xvcj1NLmdldEJvcmRlckNvbG9yO0IuRG9tLklFX0NPTVBVVEVEPUM7 Qi5Eb20uSUVfQ29tcHV0ZWRTdHlsZT1NO30pKCk7KGZ1bmN0aW9uKCl7dmFyIEM9 InRvU3RyaW5nIixBPXBhcnNlSW50LEI9UmVnRXhwLEQ9WUFIT08udXRpbDtELkRv bS5Db2xvcj17S0VZV09SRFM6e2JsYWNrOiIwMDAiLHNpbHZlcjoiYzBjMGMwIixn cmF5OiI4MDgwODAiLHdoaXRlOiJmZmYiLG1hcm9vbjoiODAwMDAwIixyZWQ6ImYw MCIscHVycGxlOiI4MDAwODAiLGZ1Y2hzaWE6ImYwZiIsZ3JlZW46IjAwODAwMCIs bGltZToiMGYwIixvbGl2ZToiODA4MDAwIix5ZWxsb3c6ImZmMCIsbmF2eToiMDAw MDgwIixibHVlOiIwMGYiLHRlYWw6IjAwODA4MCIsYXF1YToiMGZmIn0scmVfUkdC Oi9ecmdiXCgoWzAtOV0rKVxzKixccyooWzAtOV0rKVxzKixccyooWzAtOV0rKVwp JC9pLHJlX2hleDovXiM/KFswLTlBLUZdezJ9KShbMC05QS1GXXsyfSkoWzAtOUEt Rl17Mn0pJC9pLHJlX2hleDM6LyhbMC05QS1GXSkvZ2ksdG9SR0I6ZnVuY3Rpb24o RSl7aWYoIUQuRG9tLkNvbG9yLnJlX1JHQi50ZXN0KEUpKXtFPUQuRG9tLkNvbG9y LnRvSGV4KEUpO31pZihELkRvbS5Db2xvci5yZV9oZXguZXhlYyhFKSl7RT0icmdi KCIrW0EoQi4kMSwxNiksQShCLiQyLDE2KSxBKEIuJDMsMTYpXS5qb2luKCIsICIp KyIpIjt9cmV0dXJuIEU7fSx0b0hleDpmdW5jdGlvbihIKXtIPUQuRG9tLkNvbG9y LktFWVdPUkRTW0hdfHxIO2lmKEQuRG9tLkNvbG9yLnJlX1JHQi5leGVjKEgpKXt2 YXIgRz0oQi4kMS5sZW5ndGg9PT0xKT8iMCIrQi4kMTpOdW1iZXIoQi4kMSksRj0o Qi4kMi5sZW5ndGg9PT0xKT8iMCIrQi4kMjpOdW1iZXIoQi4kMiksRT0oQi4kMy5s ZW5ndGg9PT0xKT8iMCIrQi4kMzpOdW1iZXIoQi4kMyk7SD1bR1tDXSgxNiksRltD XSgxNiksRVtDXSgxNildLmpvaW4oIiIpO31pZihILmxlbmd0aDw2KXtIPUgucmVw bGFjZShELkRvbS5Db2xvci5yZV9oZXgzLCIkMSQxIik7fWlmKEghPT0idHJhbnNw YXJlbnQiJiZILmluZGV4T2YoIiMiKTwwKXtIPSIjIitIO31yZXR1cm4gSC50b0xv d2VyQ2FzZSgpO319O30oKSk7WUFIT08ucmVnaXN0ZXIoImRvbSIsWUFIT08udXRp bC5Eb20se3ZlcnNpb246IjIuOC4yIixidWlsZDoiMTkifSk7WUFIT08udXRpbC5D dXN0b21FdmVudD1mdW5jdGlvbihELEMsQixBLEUpe3RoaXMudHlwZT1EO3RoaXMu c2NvcGU9Q3x8d2luZG93O3RoaXMuc2lsZW50PUI7dGhpcy5maXJlT25jZT1FO3Ro aXMuZmlyZWQ9ZmFsc2U7dGhpcy5maXJlZFdpdGg9bnVsbDt0aGlzLnNpZ25hdHVy ZT1BfHxZQUhPTy51dGlsLkN1c3RvbUV2ZW50LkxJU1Q7dGhpcy5zdWJzY3JpYmVy cz1bXTtpZighdGhpcy5zaWxlbnQpe312YXIgRj0iX1lVSUNFT25TdWJzY3JpYmUi O2lmKEQhPT1GKXt0aGlzLnN1YnNjcmliZUV2ZW50PW5ldyBZQUhPTy51dGlsLkN1 c3RvbUV2ZW50KEYsdGhpcyx0cnVlKTt9dGhpcy5sYXN0RXJyb3I9bnVsbDt9O1lB SE9PLnV0aWwuQ3VzdG9tRXZlbnQuTElTVD0wO1lBSE9PLnV0aWwuQ3VzdG9tRXZl bnQuRkxBVD0xO1lBSE9PLnV0aWwuQ3VzdG9tRXZlbnQucHJvdG90eXBlPXtzdWJz Y3JpYmU6ZnVuY3Rpb24oQixDLEQpe2lmKCFCKXt0aHJvdyBuZXcgRXJyb3IoIklu dmFsaWQgY2FsbGJhY2sgZm9yIHN1YnNjcmliZXIgdG8gJyIrdGhpcy50eXBlKyIn Iik7fWlmKHRoaXMuc3Vic2NyaWJlRXZlbnQpe3RoaXMuc3Vic2NyaWJlRXZlbnQu ZmlyZShCLEMsRCk7fXZhciBBPW5ldyBZQUhPTy51dGlsLlN1YnNjcmliZXIoQixD LEQpO2lmKHRoaXMuZmlyZU9uY2UmJnRoaXMuZmlyZWQpe3RoaXMubm90aWZ5KEEs dGhpcy5maXJlZFdpdGgpO31lbHNle3RoaXMuc3Vic2NyaWJlcnMucHVzaChBKTt9 fSx1bnN1YnNjcmliZTpmdW5jdGlvbihELEYpe2lmKCFEKXtyZXR1cm4gdGhpcy51 bnN1YnNjcmliZUFsbCgpO312YXIgRT1mYWxzZTtmb3IodmFyIEI9MCxBPXRoaXMu c3Vic2NyaWJlcnMubGVuZ3RoO0I8QTsrK0Ipe3ZhciBDPXRoaXMuc3Vic2NyaWJl cnNbQl07aWYoQyYmQy5jb250YWlucyhELEYpKXt0aGlzLl9kZWxldGUoQik7RT10 cnVlO319cmV0dXJuIEU7fSxmaXJlOmZ1bmN0aW9uKCl7dGhpcy5sYXN0RXJyb3I9 bnVsbDt2YXIgSD1bXSxBPXRoaXMuc3Vic2NyaWJlcnMubGVuZ3RoO3ZhciBEPVtd LnNsaWNlLmNhbGwoYXJndW1lbnRzLDApLEM9dHJ1ZSxGLEI9ZmFsc2U7aWYodGhp cy5maXJlT25jZSl7aWYodGhpcy5maXJlZCl7cmV0dXJuIHRydWU7fWVsc2V7dGhp cy5maXJlZFdpdGg9RDt9fXRoaXMuZmlyZWQ9dHJ1ZTtpZighQSYmdGhpcy5zaWxl bnQpe3JldHVybiB0cnVlO31pZighdGhpcy5zaWxlbnQpe312YXIgRT10aGlzLnN1 YnNjcmliZXJzLnNsaWNlKCk7Zm9yKEY9MDtGPEE7KytGKXt2YXIgRz1FW0ZdO2lm KCFHKXtCPXRydWU7fWVsc2V7Qz10aGlzLm5vdGlmeShHLEQpO2lmKGZhbHNlPT09 Qyl7aWYoIXRoaXMuc2lsZW50KXt9YnJlYWs7fX19cmV0dXJuKEMhPT1mYWxzZSk7 fSxub3RpZnk6ZnVuY3Rpb24oRixDKXt2YXIgQixIPW51bGwsRT1GLmdldFNjb3Bl KHRoaXMuc2NvcGUpLEE9WUFIT08udXRpbC5FdmVudC50aHJvd0Vycm9ycztpZigh dGhpcy5zaWxlbnQpe31pZih0aGlzLnNpZ25hdHVyZT09WUFIT08udXRpbC5DdXN0 b21FdmVudC5GTEFUKXtpZihDLmxlbmd0aD4wKXtIPUNbMF07fXRyeXtCPUYuZm4u Y2FsbChFLEgsRi5vYmopO31jYXRjaChHKXt0aGlzLmxhc3RFcnJvcj1HO2lmKEEp e3Rocm93IEc7fX19ZWxzZXt0cnl7Qj1GLmZuLmNhbGwoRSx0aGlzLnR5cGUsQyxG Lm9iaik7fWNhdGNoKEQpe3RoaXMubGFzdEVycm9yPUQ7aWYoQSl7dGhyb3cgRDt9 fX1yZXR1cm4gQjt9LHVuc3Vic2NyaWJlQWxsOmZ1bmN0aW9uKCl7dmFyIEE9dGhp cy5zdWJzY3JpYmVycy5sZW5ndGgsQjtmb3IoQj1BLTE7Qj4tMTtCLS0pe3RoaXMu X2RlbGV0ZShCKTt9dGhpcy5zdWJzY3JpYmVycz1bXTtyZXR1cm4gQTt9LF9kZWxl dGU6ZnVuY3Rpb24oQSl7dmFyIEI9dGhpcy5zdWJzY3JpYmVyc1tBXTtpZihCKXtk ZWxldGUgQi5mbjtkZWxldGUgQi5vYmo7fXRoaXMuc3Vic2NyaWJlcnMuc3BsaWNl KEEsMSk7fSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiJDdXN0b21FdmVudDog IisiJyIrdGhpcy50eXBlKyInLCAiKyJjb250ZXh0OiAiK3RoaXMuc2NvcGU7fX07 WUFIT08udXRpbC5TdWJzY3JpYmVyPWZ1bmN0aW9uKEEsQixDKXt0aGlzLmZuPUE7 dGhpcy5vYmo9WUFIT08ubGFuZy5pc1VuZGVmaW5lZChCKT9udWxsOkI7dGhpcy5v dmVycmlkZUNvbnRleHQ9Qzt9O1lBSE9PLnV0aWwuU3Vic2NyaWJlci5wcm90b3R5 cGUuZ2V0U2NvcGU9ZnVuY3Rpb24oQSl7aWYodGhpcy5vdmVycmlkZUNvbnRleHQp e2lmKHRoaXMub3ZlcnJpZGVDb250ZXh0PT09dHJ1ZSl7cmV0dXJuIHRoaXMub2Jq O31lbHNle3JldHVybiB0aGlzLm92ZXJyaWRlQ29udGV4dDt9fXJldHVybiBBO307 WUFIT08udXRpbC5TdWJzY3JpYmVyLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlv bihBLEIpe2lmKEIpe3JldHVybih0aGlzLmZuPT1BJiZ0aGlzLm9iaj09Qik7fWVs c2V7cmV0dXJuKHRoaXMuZm49PUEpO319O1lBSE9PLnV0aWwuU3Vic2NyaWJlci5w cm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iU3Vic2NyaWJlciB7 IG9iajogIit0aGlzLm9iaisiLCBvdmVycmlkZUNvbnRleHQ6ICIrKHRoaXMub3Zl cnJpZGVDb250ZXh0fHwibm8iKSsiIH0iO307aWYoIVlBSE9PLnV0aWwuRXZlbnQp e1lBSE9PLnV0aWwuRXZlbnQ9ZnVuY3Rpb24oKXt2YXIgRz1mYWxzZSxIPVtdLEo9 W10sQT0wLEU9W10sQj0wLEM9ezYzMjMyOjM4LDYzMjMzOjQwLDYzMjM0OjM3LDYz MjM1OjM5LDYzMjc2OjMzLDYzMjc3OjM0LDI1Ojl9LEQ9WUFIT08uZW52LnVhLmll LEY9ImZvY3VzaW4iLEk9ImZvY3Vzb3V0IjtyZXR1cm57UE9MTF9SRVRSWVM6NTAw LFBPTExfSU5URVJWQUw6NDAsRUw6MCxUWVBFOjEsRk46MixXRk46MyxVTkxPQURf T0JKOjMsQURKX1NDT1BFOjQsT0JKOjUsT1ZFUlJJREU6NixDQVBUVVJFOjcsbGFz dEVycm9yOm51bGwsaXNTYWZhcmk6WUFIT08uZW52LnVhLndlYmtpdCx3ZWJraXQ6 WUFIT08uZW52LnVhLndlYmtpdCxpc0lFOkQsX2ludGVydmFsOm51bGwsX2RyaTpu dWxsLF9zcGVjaWFsVHlwZXM6e2ZvY3VzaW46KEQ/ImZvY3VzaW4iOiJmb2N1cyIp LGZvY3Vzb3V0OihEPyJmb2N1c291dCI6ImJsdXIiKX0sRE9NUmVhZHk6ZmFsc2Us dGhyb3dFcnJvcnM6ZmFsc2Usc3RhcnRJbnRlcnZhbDpmdW5jdGlvbigpe2lmKCF0 aGlzLl9pbnRlcnZhbCl7dGhpcy5faW50ZXJ2YWw9WUFIT08ubGFuZy5sYXRlcih0 aGlzLlBPTExfSU5URVJWQUwsdGhpcyx0aGlzLl90cnlQcmVsb2FkQXR0YWNoLG51 bGwsdHJ1ZSk7fX0sb25BdmFpbGFibGU6ZnVuY3Rpb24oUSxNLE8sUCxOKXt2YXIg Sz0oWUFIT08ubGFuZy5pc1N0cmluZyhRKSk/W1FdOlE7Zm9yKHZhciBMPTA7TDxL Lmxlbmd0aDtMPUwrMSl7RS5wdXNoKHtpZDpLW0xdLGZuOk0sb2JqOk8sb3ZlcnJp ZGVDb250ZXh0OlAsY2hlY2tSZWFkeTpOfSk7fUE9dGhpcy5QT0xMX1JFVFJZUzt0 aGlzLnN0YXJ0SW50ZXJ2YWwoKTt9LG9uQ29udGVudFJlYWR5OmZ1bmN0aW9uKE4s SyxMLE0pe3RoaXMub25BdmFpbGFibGUoTixLLEwsTSx0cnVlKTt9LG9uRE9NUmVh ZHk6ZnVuY3Rpb24oKXt0aGlzLkRPTVJlYWR5RXZlbnQuc3Vic2NyaWJlLmFwcGx5 KHRoaXMuRE9NUmVhZHlFdmVudCxhcmd1bWVudHMpO30sX2FkZExpc3RlbmVyOmZ1 bmN0aW9uKE0sSyxWLFAsVCxZKXtpZighVnx8IVYuY2FsbCl7cmV0dXJuIGZhbHNl O31pZih0aGlzLl9pc1ZhbGlkQ29sbGVjdGlvbihNKSl7dmFyIFc9dHJ1ZTtmb3Io dmFyIFE9MCxTPU0ubGVuZ3RoO1E8UzsrK1Epe1c9dGhpcy5vbihNW1FdLEssVixQ LFQpJiZXO31yZXR1cm4gVzt9ZWxzZXtpZihZQUhPTy5sYW5nLmlzU3RyaW5nKE0p KXt2YXIgTz10aGlzLmdldEVsKE0pO2lmKE8pe009Tzt9ZWxzZXt0aGlzLm9uQXZh aWxhYmxlKE0sZnVuY3Rpb24oKXtZQUhPTy51dGlsLkV2ZW50Ll9hZGRMaXN0ZW5l cihNLEssVixQLFQsWSk7fSk7cmV0dXJuIHRydWU7fX19aWYoIU0pe3JldHVybiBm YWxzZTt9aWYoInVubG9hZCI9PUsmJlAhPT10aGlzKXtKW0oubGVuZ3RoXT1bTSxL LFYsUCxUXTtyZXR1cm4gdHJ1ZTt9dmFyIEw9TTtpZihUKXtpZihUPT09dHJ1ZSl7 TD1QO31lbHNle0w9VDt9fXZhciBOPWZ1bmN0aW9uKFope3JldHVybiBWLmNhbGwo TCxZQUhPTy51dGlsLkV2ZW50LmdldEV2ZW50KFosTSksUCk7fTt2YXIgWD1bTSxL LFYsTixMLFAsVCxZXTt2YXIgUj1ILmxlbmd0aDtIW1JdPVg7dHJ5e3RoaXMuX3Np bXBsZUFkZChNLEssTixZKTt9Y2F0Y2goVSl7dGhpcy5sYXN0RXJyb3I9VTt0aGlz LnJlbW92ZUxpc3RlbmVyKE0sSyxWKTtyZXR1cm4gZmFsc2U7fXJldHVybiB0cnVl O30sX2dldFR5cGU6ZnVuY3Rpb24oSyl7cmV0dXJuIHRoaXMuX3NwZWNpYWxUeXBl c1tLXXx8Szt9LGFkZExpc3RlbmVyOmZ1bmN0aW9uKE0sUCxMLE4sTyl7dmFyIEs9 KChQPT1GfHxQPT1JKSYmIVlBSE9PLmVudi51YS5pZSk/dHJ1ZTpmYWxzZTtyZXR1 cm4gdGhpcy5fYWRkTGlzdGVuZXIoTSx0aGlzLl9nZXRUeXBlKFApLEwsTixPLEsp O30sYWRkRm9jdXNMaXN0ZW5lcjpmdW5jdGlvbihMLEssTSxOKXtyZXR1cm4gdGhp cy5vbihMLEYsSyxNLE4pO30scmVtb3ZlRm9jdXNMaXN0ZW5lcjpmdW5jdGlvbihM LEspe3JldHVybiB0aGlzLnJlbW92ZUxpc3RlbmVyKEwsRixLKTt9LGFkZEJsdXJM aXN0ZW5lcjpmdW5jdGlvbihMLEssTSxOKXtyZXR1cm4gdGhpcy5vbihMLEksSyxN LE4pO30scmVtb3ZlQmx1ckxpc3RlbmVyOmZ1bmN0aW9uKEwsSyl7cmV0dXJuIHRo aXMucmVtb3ZlTGlzdGVuZXIoTCxJLEspO30scmVtb3ZlTGlzdGVuZXI6ZnVuY3Rp b24oTCxLLFIpe3ZhciBNLFAsVTtLPXRoaXMuX2dldFR5cGUoSyk7aWYodHlwZW9m IEw9PSJzdHJpbmciKXtMPXRoaXMuZ2V0RWwoTCk7fWVsc2V7aWYodGhpcy5faXNW YWxpZENvbGxlY3Rpb24oTCkpe3ZhciBTPXRydWU7Zm9yKE09TC5sZW5ndGgtMTtN Pi0xO00tLSl7Uz0odGhpcy5yZW1vdmVMaXN0ZW5lcihMW01dLEssUikmJlMpO31y ZXR1cm4gUzt9fWlmKCFSfHwhUi5jYWxsKXtyZXR1cm4gdGhpcy5wdXJnZUVsZW1l bnQoTCxmYWxzZSxLKTt9aWYoInVubG9hZCI9PUspe2ZvcihNPUoubGVuZ3RoLTE7 TT4tMTtNLS0pe1U9SltNXTtpZihVJiZVWzBdPT1MJiZVWzFdPT1LJiZVWzJdPT1S KXtKLnNwbGljZShNLDEpO3JldHVybiB0cnVlO319cmV0dXJuIGZhbHNlO312YXIg Tj1udWxsO3ZhciBPPWFyZ3VtZW50c1szXTtpZigidW5kZWZpbmVkIj09PXR5cGVv ZiBPKXtPPXRoaXMuX2dldENhY2hlSW5kZXgoSCxMLEssUik7fWlmKE8+PTApe049 SFtPXTt9aWYoIUx8fCFOKXtyZXR1cm4gZmFsc2U7fXZhciBUPU5bdGhpcy5DQVBU VVJFXT09PXRydWU/dHJ1ZTpmYWxzZTt0cnl7dGhpcy5fc2ltcGxlUmVtb3ZlKEws SyxOW3RoaXMuV0ZOXSxUKTt9Y2F0Y2goUSl7dGhpcy5sYXN0RXJyb3I9UTtyZXR1 cm4gZmFsc2U7fWRlbGV0ZSBIW09dW3RoaXMuV0ZOXTtkZWxldGUgSFtPXVt0aGlz LkZOXTtILnNwbGljZShPLDEpO3JldHVybiB0cnVlO30sZ2V0VGFyZ2V0OmZ1bmN0 aW9uKE0sTCl7dmFyIEs9TS50YXJnZXR8fE0uc3JjRWxlbWVudDtyZXR1cm4gdGhp cy5yZXNvbHZlVGV4dE5vZGUoSyk7fSxyZXNvbHZlVGV4dE5vZGU6ZnVuY3Rpb24o TCl7dHJ5e2lmKEwmJjM9PUwubm9kZVR5cGUpe3JldHVybiBMLnBhcmVudE5vZGU7 fX1jYXRjaChLKXt9cmV0dXJuIEw7fSxnZXRQYWdlWDpmdW5jdGlvbihMKXt2YXIg Sz1MLnBhZ2VYO2lmKCFLJiYwIT09Syl7Sz1MLmNsaWVudFh8fDA7aWYodGhpcy5p c0lFKXtLKz10aGlzLl9nZXRTY3JvbGxMZWZ0KCk7fX1yZXR1cm4gSzt9LGdldFBh Z2VZOmZ1bmN0aW9uKEspe3ZhciBMPUsucGFnZVk7aWYoIUwmJjAhPT1MKXtMPUsu Y2xpZW50WXx8MDtpZih0aGlzLmlzSUUpe0wrPXRoaXMuX2dldFNjcm9sbFRvcCgp O319cmV0dXJuIEw7fSxnZXRYWTpmdW5jdGlvbihLKXtyZXR1cm5bdGhpcy5nZXRQ YWdlWChLKSx0aGlzLmdldFBhZ2VZKEspXTt9LGdldFJlbGF0ZWRUYXJnZXQ6ZnVu Y3Rpb24oTCl7dmFyIEs9TC5yZWxhdGVkVGFyZ2V0O2lmKCFLKXtpZihMLnR5cGU9 PSJtb3VzZW91dCIpe0s9TC50b0VsZW1lbnQ7Cn1lbHNle2lmKEwudHlwZT09Im1v dXNlb3ZlciIpe0s9TC5mcm9tRWxlbWVudDt9fX1yZXR1cm4gdGhpcy5yZXNvbHZl VGV4dE5vZGUoSyk7fSxnZXRUaW1lOmZ1bmN0aW9uKE0pe2lmKCFNLnRpbWUpe3Zh ciBMPW5ldyBEYXRlKCkuZ2V0VGltZSgpO3RyeXtNLnRpbWU9TDt9Y2F0Y2goSyl7 dGhpcy5sYXN0RXJyb3I9SztyZXR1cm4gTDt9fXJldHVybiBNLnRpbWU7fSxzdG9w RXZlbnQ6ZnVuY3Rpb24oSyl7dGhpcy5zdG9wUHJvcGFnYXRpb24oSyk7dGhpcy5w cmV2ZW50RGVmYXVsdChLKTt9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbihLKXtp ZihLLnN0b3BQcm9wYWdhdGlvbil7Sy5zdG9wUHJvcGFnYXRpb24oKTt9ZWxzZXtL LmNhbmNlbEJ1YmJsZT10cnVlO319LHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKEsp e2lmKEsucHJldmVudERlZmF1bHQpe0sucHJldmVudERlZmF1bHQoKTt9ZWxzZXtL LnJldHVyblZhbHVlPWZhbHNlO319LGdldEV2ZW50OmZ1bmN0aW9uKE0sSyl7dmFy IEw9TXx8d2luZG93LmV2ZW50O2lmKCFMKXt2YXIgTj10aGlzLmdldEV2ZW50LmNh bGxlcjt3aGlsZShOKXtMPU4uYXJndW1lbnRzWzBdO2lmKEwmJkV2ZW50PT1MLmNv bnN0cnVjdG9yKXticmVhazt9Tj1OLmNhbGxlcjt9fXJldHVybiBMO30sZ2V0Q2hh ckNvZGU6ZnVuY3Rpb24oTCl7dmFyIEs9TC5rZXlDb2RlfHxMLmNoYXJDb2RlfHww O2lmKFlBSE9PLmVudi51YS53ZWJraXQmJihLIGluIEMpKXtLPUNbS107fXJldHVy biBLO30sX2dldENhY2hlSW5kZXg6ZnVuY3Rpb24oTSxQLFEsTyl7Zm9yKHZhciBO PTAsTD1NLmxlbmd0aDtOPEw7Tj1OKzEpe3ZhciBLPU1bTl07aWYoSyYmS1t0aGlz LkZOXT09TyYmS1t0aGlzLkVMXT09UCYmS1t0aGlzLlRZUEVdPT1RKXtyZXR1cm4g Tjt9fXJldHVybiAtMTt9LGdlbmVyYXRlSWQ6ZnVuY3Rpb24oSyl7dmFyIEw9Sy5p ZDtpZighTCl7TD0ieXVpZXZ0YXV0b2lkLSIrQjsrK0I7Sy5pZD1MO31yZXR1cm4g TDt9LF9pc1ZhbGlkQ29sbGVjdGlvbjpmdW5jdGlvbihMKXt0cnl7cmV0dXJuKEwm JnR5cGVvZiBMIT09InN0cmluZyImJkwubGVuZ3RoJiYhTC50YWdOYW1lJiYhTC5h bGVydCYmdHlwZW9mIExbMF0hPT0idW5kZWZpbmVkIik7fWNhdGNoKEspe3JldHVy biBmYWxzZTt9fSxlbENhY2hlOnt9LGdldEVsOmZ1bmN0aW9uKEspe3JldHVybih0 eXBlb2YgSz09PSJzdHJpbmciKT9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChLKTpL O30sY2xlYXJDYWNoZTpmdW5jdGlvbigpe30sRE9NUmVhZHlFdmVudDpuZXcgWUFI T08udXRpbC5DdXN0b21FdmVudCgiRE9NUmVhZHkiLFlBSE9PLDAsMCwxKSxfbG9h ZDpmdW5jdGlvbihMKXtpZighRyl7Rz10cnVlO3ZhciBLPVlBSE9PLnV0aWwuRXZl bnQ7Sy5fcmVhZHkoKTtLLl90cnlQcmVsb2FkQXR0YWNoKCk7fX0sX3JlYWR5OmZ1 bmN0aW9uKEwpe3ZhciBLPVlBSE9PLnV0aWwuRXZlbnQ7aWYoIUsuRE9NUmVhZHkp e0suRE9NUmVhZHk9dHJ1ZTtLLkRPTVJlYWR5RXZlbnQuZmlyZSgpO0suX3NpbXBs ZVJlbW92ZShkb2N1bWVudCwiRE9NQ29udGVudExvYWRlZCIsSy5fcmVhZHkpO319 LF90cnlQcmVsb2FkQXR0YWNoOmZ1bmN0aW9uKCl7aWYoRS5sZW5ndGg9PT0wKXtB PTA7aWYodGhpcy5faW50ZXJ2YWwpe3RoaXMuX2ludGVydmFsLmNhbmNlbCgpO3Ro aXMuX2ludGVydmFsPW51bGw7fXJldHVybjt9aWYodGhpcy5sb2NrZWQpe3JldHVy bjt9aWYodGhpcy5pc0lFKXtpZighdGhpcy5ET01SZWFkeSl7dGhpcy5zdGFydElu dGVydmFsKCk7cmV0dXJuO319dGhpcy5sb2NrZWQ9dHJ1ZTt2YXIgUT0hRztpZigh USl7UT0oQT4wJiZFLmxlbmd0aD4wKTt9dmFyIFA9W107dmFyIFI9ZnVuY3Rpb24o VCxVKXt2YXIgUz1UO2lmKFUub3ZlcnJpZGVDb250ZXh0KXtpZihVLm92ZXJyaWRl Q29udGV4dD09PXRydWUpe1M9VS5vYmo7fWVsc2V7Uz1VLm92ZXJyaWRlQ29udGV4 dDt9fVUuZm4uY2FsbChTLFUub2JqKTt9O3ZhciBMLEssTyxOLE09W107Zm9yKEw9 MCxLPUUubGVuZ3RoO0w8SztMPUwrMSl7Tz1FW0xdO2lmKE8pe049dGhpcy5nZXRF bChPLmlkKTtpZihOKXtpZihPLmNoZWNrUmVhZHkpe2lmKEd8fE4ubmV4dFNpYmxp bmd8fCFRKXtNLnB1c2goTyk7RVtMXT1udWxsO319ZWxzZXtSKE4sTyk7RVtMXT1u dWxsO319ZWxzZXtQLnB1c2goTyk7fX19Zm9yKEw9MCxLPU0ubGVuZ3RoO0w8SztM PUwrMSl7Tz1NW0xdO1IodGhpcy5nZXRFbChPLmlkKSxPKTt9QS0tO2lmKFEpe2Zv cihMPUUubGVuZ3RoLTE7TD4tMTtMLS0pe089RVtMXTtpZighT3x8IU8uaWQpe0Uu c3BsaWNlKEwsMSk7fX10aGlzLnN0YXJ0SW50ZXJ2YWwoKTt9ZWxzZXtpZih0aGlz Ll9pbnRlcnZhbCl7dGhpcy5faW50ZXJ2YWwuY2FuY2VsKCk7dGhpcy5faW50ZXJ2 YWw9bnVsbDt9fXRoaXMubG9ja2VkPWZhbHNlO30scHVyZ2VFbGVtZW50OmZ1bmN0 aW9uKE8sUCxSKXt2YXIgTT0oWUFIT08ubGFuZy5pc1N0cmluZyhPKSk/dGhpcy5n ZXRFbChPKTpPO3ZhciBRPXRoaXMuZ2V0TGlzdGVuZXJzKE0sUiksTixLO2lmKFEp e2ZvcihOPVEubGVuZ3RoLTE7Tj4tMTtOLS0pe3ZhciBMPVFbTl07dGhpcy5yZW1v dmVMaXN0ZW5lcihNLEwudHlwZSxMLmZuKTt9fWlmKFAmJk0mJk0uY2hpbGROb2Rl cyl7Zm9yKE49MCxLPU0uY2hpbGROb2Rlcy5sZW5ndGg7TjxLOysrTil7dGhpcy5w dXJnZUVsZW1lbnQoTS5jaGlsZE5vZGVzW05dLFAsUik7fX19LGdldExpc3RlbmVy czpmdW5jdGlvbihNLEspe3ZhciBQPVtdLEw7aWYoIUspe0w9W0gsSl07fWVsc2V7 aWYoSz09PSJ1bmxvYWQiKXtMPVtKXTt9ZWxzZXtLPXRoaXMuX2dldFR5cGUoSyk7 TD1bSF07fX12YXIgUj0oWUFIT08ubGFuZy5pc1N0cmluZyhNKSk/dGhpcy5nZXRF bChNKTpNO2Zvcih2YXIgTz0wO088TC5sZW5ndGg7Tz1PKzEpe3ZhciBUPUxbT107 aWYoVCl7Zm9yKHZhciBRPTAsUz1ULmxlbmd0aDtRPFM7KytRKXt2YXIgTj1UW1Fd O2lmKE4mJk5bdGhpcy5FTF09PT1SJiYoIUt8fEs9PT1OW3RoaXMuVFlQRV0pKXtQ LnB1c2goe3R5cGU6Tlt0aGlzLlRZUEVdLGZuOk5bdGhpcy5GTl0sb2JqOk5bdGhp cy5PQkpdLGFkanVzdDpOW3RoaXMuT1ZFUlJJREVdLHNjb3BlOk5bdGhpcy5BREpf U0NPUEVdLGluZGV4OlF9KTt9fX19cmV0dXJuKFAubGVuZ3RoKT9QOm51bGw7fSxf dW5sb2FkOmZ1bmN0aW9uKFIpe3ZhciBMPVlBSE9PLnV0aWwuRXZlbnQsTyxOLE0s USxQLFM9Si5zbGljZSgpLEs7Zm9yKE89MCxRPUoubGVuZ3RoO088UTsrK08pe009 U1tPXTtpZihNKXtLPXdpbmRvdztpZihNW0wuQURKX1NDT1BFXSl7aWYoTVtMLkFE Sl9TQ09QRV09PT10cnVlKXtLPU1bTC5VTkxPQURfT0JKXTt9ZWxzZXtLPU1bTC5B REpfU0NPUEVdO319TVtMLkZOXS5jYWxsKEssTC5nZXRFdmVudChSLE1bTC5FTF0p LE1bTC5VTkxPQURfT0JKXSk7U1tPXT1udWxsO319TT1udWxsO0s9bnVsbDtKPW51 bGw7aWYoSCl7Zm9yKE49SC5sZW5ndGgtMTtOPi0xO04tLSl7TT1IW05dO2lmKE0p e0wucmVtb3ZlTGlzdGVuZXIoTVtMLkVMXSxNW0wuVFlQRV0sTVtMLkZOXSxOKTt9 fU09bnVsbDt9TC5fc2ltcGxlUmVtb3ZlKHdpbmRvdywidW5sb2FkIixMLl91bmxv YWQpO30sX2dldFNjcm9sbExlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZ2V0 U2Nyb2xsKClbMV07fSxfZ2V0U2Nyb2xsVG9wOmZ1bmN0aW9uKCl7cmV0dXJuIHRo aXMuX2dldFNjcm9sbCgpWzBdO30sX2dldFNjcm9sbDpmdW5jdGlvbigpe3ZhciBL PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxMPWRvY3VtZW50LmJvZHk7aWYoSyYm KEsuc2Nyb2xsVG9wfHxLLnNjcm9sbExlZnQpKXtyZXR1cm5bSy5zY3JvbGxUb3As Sy5zY3JvbGxMZWZ0XTt9ZWxzZXtpZihMKXtyZXR1cm5bTC5zY3JvbGxUb3AsTC5z Y3JvbGxMZWZ0XTt9ZWxzZXtyZXR1cm5bMCwwXTt9fX0scmVnQ0U6ZnVuY3Rpb24o KXt9LF9zaW1wbGVBZGQ6ZnVuY3Rpb24oKXtpZih3aW5kb3cuYWRkRXZlbnRMaXN0 ZW5lcil7cmV0dXJuIGZ1bmN0aW9uKE0sTixMLEspe00uYWRkRXZlbnRMaXN0ZW5l cihOLEwsKEspKTt9O31lbHNle2lmKHdpbmRvdy5hdHRhY2hFdmVudCl7cmV0dXJu IGZ1bmN0aW9uKE0sTixMLEspe00uYXR0YWNoRXZlbnQoIm9uIitOLEwpO307fWVs c2V7cmV0dXJuIGZ1bmN0aW9uKCl7fTt9fX0oKSxfc2ltcGxlUmVtb3ZlOmZ1bmN0 aW9uKCl7aWYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIpe3JldHVybiBmdW5j dGlvbihNLE4sTCxLKXtNLnJlbW92ZUV2ZW50TGlzdGVuZXIoTixMLChLKSk7fTt9 ZWxzZXtpZih3aW5kb3cuZGV0YWNoRXZlbnQpe3JldHVybiBmdW5jdGlvbihMLE0s Syl7TC5kZXRhY2hFdmVudCgib24iK00sSyk7fTt9ZWxzZXtyZXR1cm4gZnVuY3Rp b24oKXt9O319fSgpfTt9KCk7KGZ1bmN0aW9uKCl7dmFyIEVVPVlBSE9PLnV0aWwu RXZlbnQ7RVUub249RVUuYWRkTGlzdGVuZXI7RVUub25Gb2N1cz1FVS5hZGRGb2N1 c0xpc3RlbmVyO0VVLm9uQmx1cj1FVS5hZGRCbHVyTGlzdGVuZXI7Ci8qIERPTVJl YWR5OiBiYXNlZCBvbiB3b3JrIGJ5OiBEZWFuIEVkd2FyZHMvSm9obiBSZXNpZy9N YXR0aGlhcyBNaWxsZXIvRGllZ28gUGVyaW5pICovCmlmKEVVLmlzSUUpe2lmKHNl bGYhPT1zZWxmLnRvcCl7ZG9jdW1lbnQub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0 aW9uKCl7aWYoZG9jdW1lbnQucmVhZHlTdGF0ZT09ImNvbXBsZXRlIil7ZG9jdW1l bnQub25yZWFkeXN0YXRlY2hhbmdlPW51bGw7RVUuX3JlYWR5KCk7fX07fWVsc2V7 WUFIT08udXRpbC5FdmVudC5vbkRPTVJlYWR5KFlBSE9PLnV0aWwuRXZlbnQuX3Ry eVByZWxvYWRBdHRhY2gsWUFIT08udXRpbC5FdmVudCx0cnVlKTt2YXIgbj1kb2N1 bWVudC5jcmVhdGVFbGVtZW50KCJwIik7RVUuX2RyaT1zZXRJbnRlcnZhbChmdW5j dGlvbigpe3RyeXtuLmRvU2Nyb2xsKCJsZWZ0Iik7Y2xlYXJJbnRlcnZhbChFVS5f ZHJpKTtFVS5fZHJpPW51bGw7RVUuX3JlYWR5KCk7bj1udWxsO31jYXRjaChleCl7 fX0sRVUuUE9MTF9JTlRFUlZBTCk7fX1lbHNle2lmKEVVLndlYmtpdCYmRVUud2Vi a2l0PDUyNSl7RVUuX2RyaT1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBycz1k b2N1bWVudC5yZWFkeVN0YXRlO2lmKCJsb2FkZWQiPT1yc3x8ImNvbXBsZXRlIj09 cnMpe2NsZWFySW50ZXJ2YWwoRVUuX2RyaSk7RVUuX2RyaT1udWxsO0VVLl9yZWFk eSgpO319LEVVLlBPTExfSU5URVJWQUwpO31lbHNle0VVLl9zaW1wbGVBZGQoZG9j dW1lbnQsIkRPTUNvbnRlbnRMb2FkZWQiLEVVLl9yZWFkeSk7fX1FVS5fc2ltcGxl QWRkKHdpbmRvdywibG9hZCIsRVUuX2xvYWQpO0VVLl9zaW1wbGVBZGQod2luZG93 LCJ1bmxvYWQiLEVVLl91bmxvYWQpO0VVLl90cnlQcmVsb2FkQXR0YWNoKCk7fSko KTt9WUFIT08udXRpbC5FdmVudFByb3ZpZGVyPWZ1bmN0aW9uKCl7fTtZQUhPTy51 dGlsLkV2ZW50UHJvdmlkZXIucHJvdG90eXBlPXtfX3l1aV9ldmVudHM6bnVsbCxf X3l1aV9zdWJzY3JpYmVyczpudWxsLHN1YnNjcmliZTpmdW5jdGlvbihBLEMsRixF KXt0aGlzLl9feXVpX2V2ZW50cz10aGlzLl9feXVpX2V2ZW50c3x8e307dmFyIEQ9 dGhpcy5fX3l1aV9ldmVudHNbQV07aWYoRCl7RC5zdWJzY3JpYmUoQyxGLEUpO31l bHNle3RoaXMuX195dWlfc3Vic2NyaWJlcnM9dGhpcy5fX3l1aV9zdWJzY3JpYmVy c3x8e307dmFyIEI9dGhpcy5fX3l1aV9zdWJzY3JpYmVycztpZighQltBXSl7QltB XT1bXTt9QltBXS5wdXNoKHtmbjpDLG9iajpGLG92ZXJyaWRlQ29udGV4dDpFfSk7 fX0sdW5zdWJzY3JpYmU6ZnVuY3Rpb24oQyxFLEcpe3RoaXMuX195dWlfZXZlbnRz PXRoaXMuX195dWlfZXZlbnRzfHx7fTt2YXIgQT10aGlzLl9feXVpX2V2ZW50cztp ZihDKXt2YXIgRj1BW0NdO2lmKEYpe3JldHVybiBGLnVuc3Vic2NyaWJlKEUsRyk7 fX1lbHNle3ZhciBCPXRydWU7Zm9yKHZhciBEIGluIEEpe2lmKFlBSE9PLmxhbmcu aGFzT3duUHJvcGVydHkoQSxEKSl7Qj1CJiZBW0RdLnVuc3Vic2NyaWJlKEUsRyk7 fX1yZXR1cm4gQjt9cmV0dXJuIGZhbHNlO30sdW5zdWJzY3JpYmVBbGw6ZnVuY3Rp b24oQSl7cmV0dXJuIHRoaXMudW5zdWJzY3JpYmUoQSk7Cn0sY3JlYXRlRXZlbnQ6 ZnVuY3Rpb24oQixHKXt0aGlzLl9feXVpX2V2ZW50cz10aGlzLl9feXVpX2V2ZW50 c3x8e307dmFyIEU9R3x8e30sRD10aGlzLl9feXVpX2V2ZW50cyxGO2lmKERbQl0p e31lbHNle0Y9bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoQixFLnNjb3BlfHx0 aGlzLEUuc2lsZW50LFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQuRkxBVCxFLmZpcmVP bmNlKTtEW0JdPUY7aWYoRS5vblN1YnNjcmliZUNhbGxiYWNrKXtGLnN1YnNjcmli ZUV2ZW50LnN1YnNjcmliZShFLm9uU3Vic2NyaWJlQ2FsbGJhY2spO310aGlzLl9f eXVpX3N1YnNjcmliZXJzPXRoaXMuX195dWlfc3Vic2NyaWJlcnN8fHt9O3ZhciBB PXRoaXMuX195dWlfc3Vic2NyaWJlcnNbQl07aWYoQSl7Zm9yKHZhciBDPTA7QzxB Lmxlbmd0aDsrK0Mpe0Yuc3Vic2NyaWJlKEFbQ10uZm4sQVtDXS5vYmosQVtDXS5v dmVycmlkZUNvbnRleHQpO319fXJldHVybiBEW0JdO30sZmlyZUV2ZW50OmZ1bmN0 aW9uKEIpe3RoaXMuX195dWlfZXZlbnRzPXRoaXMuX195dWlfZXZlbnRzfHx7fTt2 YXIgRD10aGlzLl9feXVpX2V2ZW50c1tCXTtpZighRCl7cmV0dXJuIG51bGw7fXZh ciBBPVtdO2Zvcih2YXIgQz0xO0M8YXJndW1lbnRzLmxlbmd0aDsrK0Mpe0EucHVz aChhcmd1bWVudHNbQ10pO31yZXR1cm4gRC5maXJlLmFwcGx5KEQsQSk7fSxoYXNF dmVudDpmdW5jdGlvbihBKXtpZih0aGlzLl9feXVpX2V2ZW50cyl7aWYodGhpcy5f X3l1aV9ldmVudHNbQV0pe3JldHVybiB0cnVlO319cmV0dXJuIGZhbHNlO319Oyhm dW5jdGlvbigpe3ZhciBBPVlBSE9PLnV0aWwuRXZlbnQsQz1ZQUhPTy5sYW5nO1lB SE9PLnV0aWwuS2V5TGlzdGVuZXI9ZnVuY3Rpb24oRCxJLEUsRil7aWYoIUQpe31l bHNle2lmKCFJKXt9ZWxzZXtpZighRSl7fX19aWYoIUYpe0Y9WUFIT08udXRpbC5L ZXlMaXN0ZW5lci5LRVlET1dOO312YXIgRz1uZXcgWUFIT08udXRpbC5DdXN0b21F dmVudCgia2V5UHJlc3NlZCIpO3RoaXMuZW5hYmxlZEV2ZW50PW5ldyBZQUhPTy51 dGlsLkN1c3RvbUV2ZW50KCJlbmFibGVkIik7dGhpcy5kaXNhYmxlZEV2ZW50PW5l dyBZQUhPTy51dGlsLkN1c3RvbUV2ZW50KCJkaXNhYmxlZCIpO2lmKEMuaXNTdHJp bmcoRCkpe0Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoRCk7fWlmKEMuaXNGdW5j dGlvbihFKSl7Ry5zdWJzY3JpYmUoRSk7fWVsc2V7Ry5zdWJzY3JpYmUoRS5mbixF LnNjb3BlLEUuY29ycmVjdFNjb3BlKTt9ZnVuY3Rpb24gSChPLE4pe2lmKCFJLnNo aWZ0KXtJLnNoaWZ0PWZhbHNlO31pZighSS5hbHQpe0kuYWx0PWZhbHNlO31pZigh SS5jdHJsKXtJLmN0cmw9ZmFsc2U7fWlmKE8uc2hpZnRLZXk9PUkuc2hpZnQmJk8u YWx0S2V5PT1JLmFsdCYmTy5jdHJsS2V5PT1JLmN0cmwpe3ZhciBKLE09SS5rZXlz LEw7aWYoWUFIT08ubGFuZy5pc0FycmF5KE0pKXtmb3IodmFyIEs9MDtLPE0ubGVu Z3RoO0srKyl7Sj1NW0tdO0w9QS5nZXRDaGFyQ29kZShPKTtpZihKPT1MKXtHLmZp cmUoTCxPKTticmVhazt9fX1lbHNle0w9QS5nZXRDaGFyQ29kZShPKTtpZihNPT1M KXtHLmZpcmUoTCxPKTt9fX19dGhpcy5lbmFibGU9ZnVuY3Rpb24oKXtpZighdGhp cy5lbmFibGVkKXtBLm9uKEQsRixIKTt0aGlzLmVuYWJsZWRFdmVudC5maXJlKEkp O310aGlzLmVuYWJsZWQ9dHJ1ZTt9O3RoaXMuZGlzYWJsZT1mdW5jdGlvbigpe2lm KHRoaXMuZW5hYmxlZCl7QS5yZW1vdmVMaXN0ZW5lcihELEYsSCk7dGhpcy5kaXNh YmxlZEV2ZW50LmZpcmUoSSk7fXRoaXMuZW5hYmxlZD1mYWxzZTt9O3RoaXMudG9T dHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iS2V5TGlzdGVuZXIgWyIrSS5rZXlzKyJd ICIrRC50YWdOYW1lKyhELmlkPyJbIitELmlkKyJdIjoiIik7fTt9O3ZhciBCPVlB SE9PLnV0aWwuS2V5TGlzdGVuZXI7Qi5LRVlET1dOPSJrZXlkb3duIjtCLktFWVVQ PSJrZXl1cCI7Qi5LRVk9e0FMVDoxOCxCQUNLX1NQQUNFOjgsQ0FQU19MT0NLOjIw LENPTlRST0w6MTcsREVMRVRFOjQ2LERPV046NDAsRU5EOjM1LEVOVEVSOjEzLEVT Q0FQRToyNyxIT01FOjM2LExFRlQ6MzcsTUVUQToyMjQsTlVNX0xPQ0s6MTQ0LFBB R0VfRE9XTjozNCxQQUdFX1VQOjMzLFBBVVNFOjE5LFBSSU5UU0NSRUVOOjQ0LFJJ R0hUOjM5LFNDUk9MTF9MT0NLOjE0NSxTSElGVDoxNixTUEFDRTozMixUQUI6OSxV UDozOH07fSkoKTtZQUhPTy5yZWdpc3RlcigiZXZlbnQiLFlBSE9PLnV0aWwuRXZl bnQse3ZlcnNpb246IjIuOC4yIixidWlsZDoiMTkifSk7WUFIT08ucmVnaXN0ZXIo InlhaG9vLWRvbS1ldmVudCIsIFlBSE9PLCB7dmVyc2lvbjogIjIuOC4yIiwgYnVp bGQ6ICIxOSJ9KTsvKgpDb3B5cmlnaHQgKGMpIDIwMTAsIFlhaG9vISBJbmMuIEFs bCByaWdodHMgcmVzZXJ2ZWQuCkNvZGUgbGljZW5zZWQgdW5kZXIgdGhlIEJTRCBM aWNlbnNlOgpodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLmNvbS95dWkvbGljZW5zZS5o dG1sCnZlcnNpb246IDIuOC4yCiovCihmdW5jdGlvbigpe3ZhciBCPVlBSE9PLnV0 aWw7dmFyIEE9ZnVuY3Rpb24oRCxDLEUsRil7aWYoIUQpe310aGlzLmluaXQoRCxD LEUsRik7fTtBLk5BTUU9IkFuaW0iO0EucHJvdG90eXBlPXt0b1N0cmluZzpmdW5j dGlvbigpe3ZhciBDPXRoaXMuZ2V0RWwoKXx8e307dmFyIEQ9Qy5pZHx8Qy50YWdO YW1lO3JldHVybih0aGlzLmNvbnN0cnVjdG9yLk5BTUUrIjogIitEKTt9LHBhdHRl cm5zOntub05lZ2F0aXZlczovd2lkdGh8aGVpZ2h0fG9wYWNpdHl8cGFkZGluZy9p LG9mZnNldEF0dHJpYnV0ZTovXigod2lkdGh8aGVpZ2h0KXwodG9wfGxlZnQpKSQv LGRlZmF1bHRVbml0Oi93aWR0aHxoZWlnaHR8dG9wJHxib3R0b20kfGxlZnQkfHJp Z2h0JC9pLG9mZnNldFVuaXQ6L1xkKyhlbXwlfGVufGV4fHB0fGlufGNtfG1tfHBj KSQvaX0sZG9NZXRob2Q6ZnVuY3Rpb24oQyxFLEQpe3JldHVybiB0aGlzLm1ldGhv ZCh0aGlzLmN1cnJlbnRGcmFtZSxFLEQtRSx0aGlzLnRvdGFsRnJhbWVzKTt9LHNl dEF0dHJpYnV0ZTpmdW5jdGlvbihDLEYsRSl7dmFyIEQ9dGhpcy5nZXRFbCgpO2lm KHRoaXMucGF0dGVybnMubm9OZWdhdGl2ZXMudGVzdChDKSl7Rj0oRj4wKT9GOjA7 fWlmKEMgaW4gRCYmISgic3R5bGUiIGluIEQmJkMgaW4gRC5zdHlsZSkpe0RbQ109 Rjt9ZWxzZXtCLkRvbS5zZXRTdHlsZShELEMsRitFKTt9fSxnZXRBdHRyaWJ1dGU6 ZnVuY3Rpb24oQyl7dmFyIEU9dGhpcy5nZXRFbCgpO3ZhciBHPUIuRG9tLmdldFN0 eWxlKEUsQyk7aWYoRyE9PSJhdXRvIiYmIXRoaXMucGF0dGVybnMub2Zmc2V0VW5p dC50ZXN0KEcpKXtyZXR1cm4gcGFyc2VGbG9hdChHKTt9dmFyIEQ9dGhpcy5wYXR0 ZXJucy5vZmZzZXRBdHRyaWJ1dGUuZXhlYyhDKXx8W107dmFyIEg9ISEoRFszXSk7 dmFyIEY9ISEoRFsyXSk7aWYoInN0eWxlIiBpbiBFKXtpZihGfHwoQi5Eb20uZ2V0 U3R5bGUoRSwicG9zaXRpb24iKT09ImFic29sdXRlIiYmSCkpe0c9RVsib2Zmc2V0 IitEWzBdLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK0RbMF0uc3Vic3RyKDEpXTt9 ZWxzZXtHPTA7fX1lbHNle2lmKEMgaW4gRSl7Rz1FW0NdO319cmV0dXJuIEc7fSxn ZXREZWZhdWx0VW5pdDpmdW5jdGlvbihDKXtpZih0aGlzLnBhdHRlcm5zLmRlZmF1 bHRVbml0LnRlc3QoQykpe3JldHVybiJweCI7fXJldHVybiIiO30sc2V0UnVudGlt ZUF0dHJpYnV0ZTpmdW5jdGlvbihEKXt2YXIgSTt2YXIgRTt2YXIgRj10aGlzLmF0 dHJpYnV0ZXM7dGhpcy5ydW50aW1lQXR0cmlidXRlc1tEXT17fTt2YXIgSD1mdW5j dGlvbihKKXtyZXR1cm4odHlwZW9mIEohPT0idW5kZWZpbmVkIik7fTtpZighSChG W0RdWyJ0byJdKSYmIUgoRltEXVsiYnkiXSkpe3JldHVybiBmYWxzZTt9ST0oSChG W0RdWyJmcm9tIl0pKT9GW0RdWyJmcm9tIl06dGhpcy5nZXRBdHRyaWJ1dGUoRCk7 aWYoSChGW0RdWyJ0byJdKSl7RT1GW0RdWyJ0byJdO31lbHNle2lmKEgoRltEXVsi YnkiXSkpe2lmKEkuY29uc3RydWN0b3I9PUFycmF5KXtFPVtdO2Zvcih2YXIgRz0w LEM9SS5sZW5ndGg7RzxDOysrRyl7RVtHXT1JW0ddK0ZbRF1bImJ5Il1bR10qMTt9 fWVsc2V7RT1JK0ZbRF1bImJ5Il0qMTt9fX10aGlzLnJ1bnRpbWVBdHRyaWJ1dGVz W0RdLnN0YXJ0PUk7dGhpcy5ydW50aW1lQXR0cmlidXRlc1tEXS5lbmQ9RTt0aGlz LnJ1bnRpbWVBdHRyaWJ1dGVzW0RdLnVuaXQ9KEgoRltEXS51bml0KSk/RltEXVsi dW5pdCJdOnRoaXMuZ2V0RGVmYXVsdFVuaXQoRCk7cmV0dXJuIHRydWU7fSxpbml0 OmZ1bmN0aW9uKEUsSixJLEMpe3ZhciBEPWZhbHNlO3ZhciBGPW51bGw7dmFyIEg9 MDtFPUIuRG9tLmdldChFKTt0aGlzLmF0dHJpYnV0ZXM9Snx8e307dGhpcy5kdXJh dGlvbj0hWUFIT08ubGFuZy5pc1VuZGVmaW5lZChJKT9JOjE7dGhpcy5tZXRob2Q9 Q3x8Qi5FYXNpbmcuZWFzZU5vbmU7dGhpcy51c2VTZWNvbmRzPXRydWU7dGhpcy5j dXJyZW50RnJhbWU9MDt0aGlzLnRvdGFsRnJhbWVzPUIuQW5pbU1nci5mcHM7dGhp cy5zZXRFbD1mdW5jdGlvbihNKXtFPUIuRG9tLmdldChNKTt9O3RoaXMuZ2V0RWw9 ZnVuY3Rpb24oKXtyZXR1cm4gRTt9O3RoaXMuaXNBbmltYXRlZD1mdW5jdGlvbigp e3JldHVybiBEO307dGhpcy5nZXRTdGFydFRpbWU9ZnVuY3Rpb24oKXtyZXR1cm4g Rjt9O3RoaXMucnVudGltZUF0dHJpYnV0ZXM9e307dGhpcy5hbmltYXRlPWZ1bmN0 aW9uKCl7aWYodGhpcy5pc0FuaW1hdGVkKCkpe3JldHVybiBmYWxzZTt9dGhpcy5j dXJyZW50RnJhbWU9MDt0aGlzLnRvdGFsRnJhbWVzPSh0aGlzLnVzZVNlY29uZHMp P01hdGguY2VpbChCLkFuaW1NZ3IuZnBzKnRoaXMuZHVyYXRpb24pOnRoaXMuZHVy YXRpb247aWYodGhpcy5kdXJhdGlvbj09PTAmJnRoaXMudXNlU2Vjb25kcyl7dGhp cy50b3RhbEZyYW1lcz0xO31CLkFuaW1NZ3IucmVnaXN0ZXJFbGVtZW50KHRoaXMp O3JldHVybiB0cnVlO307dGhpcy5zdG9wPWZ1bmN0aW9uKE0pe2lmKCF0aGlzLmlz QW5pbWF0ZWQoKSl7cmV0dXJuIGZhbHNlO31pZihNKXt0aGlzLmN1cnJlbnRGcmFt ZT10aGlzLnRvdGFsRnJhbWVzO3RoaXMuX29uVHdlZW4uZmlyZSgpO31CLkFuaW1N Z3Iuc3RvcCh0aGlzKTt9O3ZhciBMPWZ1bmN0aW9uKCl7dGhpcy5vblN0YXJ0LmZp cmUoKTt0aGlzLnJ1bnRpbWVBdHRyaWJ1dGVzPXt9O2Zvcih2YXIgTSBpbiB0aGlz LmF0dHJpYnV0ZXMpe3RoaXMuc2V0UnVudGltZUF0dHJpYnV0ZShNKTt9RD10cnVl O0g9MDtGPW5ldyBEYXRlKCk7fTt2YXIgSz1mdW5jdGlvbigpe3ZhciBPPXtkdXJh dGlvbjpuZXcgRGF0ZSgpLXRoaXMuZ2V0U3RhcnRUaW1lKCksY3VycmVudEZyYW1l OnRoaXMuY3VycmVudEZyYW1lfTtPLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJu KCJkdXJhdGlvbjogIitPLmR1cmF0aW9uKyIsIGN1cnJlbnRGcmFtZTogIitPLmN1 cnJlbnRGcmFtZSk7fTt0aGlzLm9uVHdlZW4uZmlyZShPKTt2YXIgTj10aGlzLnJ1 bnRpbWVBdHRyaWJ1dGVzO2Zvcih2YXIgTSBpbiBOKXt0aGlzLnNldEF0dHJpYnV0 ZShNLHRoaXMuZG9NZXRob2QoTSxOW01dLnN0YXJ0LE5bTV0uZW5kKSxOW01dLnVu aXQpO31IKz0xO307dmFyIEc9ZnVuY3Rpb24oKXt2YXIgTT0obmV3IERhdGUoKS1G KS8xMDAwO3ZhciBOPXtkdXJhdGlvbjpNLGZyYW1lczpILGZwczpIL019O04udG9T dHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4oImR1cmF0aW9uOiAiK04uZHVyYXRpb24r IiwgZnJhbWVzOiAiK04uZnJhbWVzKyIsIGZwczogIitOLmZwcyk7fTtEPWZhbHNl O0g9MDt0aGlzLm9uQ29tcGxldGUuZmlyZShOKTt9O3RoaXMuX29uU3RhcnQ9bmV3 IEIuQ3VzdG9tRXZlbnQoIl9zdGFydCIsdGhpcyx0cnVlKTt0aGlzLm9uU3RhcnQ9 bmV3IEIuQ3VzdG9tRXZlbnQoInN0YXJ0Iix0aGlzKTt0aGlzLm9uVHdlZW49bmV3 IEIuQ3VzdG9tRXZlbnQoInR3ZWVuIix0aGlzKTt0aGlzLl9vblR3ZWVuPW5ldyBC LkN1c3RvbUV2ZW50KCJfdHdlZW4iLHRoaXMsdHJ1ZSk7dGhpcy5vbkNvbXBsZXRl PW5ldyBCLkN1c3RvbUV2ZW50KCJjb21wbGV0ZSIsdGhpcyk7dGhpcy5fb25Db21w bGV0ZT1uZXcgQi5DdXN0b21FdmVudCgiX2NvbXBsZXRlIix0aGlzLHRydWUpO3Ro aXMuX29uU3RhcnQuc3Vic2NyaWJlKEwpO3RoaXMuX29uVHdlZW4uc3Vic2NyaWJl KEspO3RoaXMuX29uQ29tcGxldGUuc3Vic2NyaWJlKEcpO319O0IuQW5pbT1BO30p KCk7WUFIT08udXRpbC5BbmltTWdyPW5ldyBmdW5jdGlvbigpe3ZhciBDPW51bGw7 dmFyIEI9W107dmFyIEE9MDt0aGlzLmZwcz0xMDAwO3RoaXMuZGVsYXk9MTt0aGlz LnJlZ2lzdGVyRWxlbWVudD1mdW5jdGlvbihGKXtCW0IubGVuZ3RoXT1GO0ErPTE7 Ri5fb25TdGFydC5maXJlKCk7dGhpcy5zdGFydCgpO307dGhpcy51blJlZ2lzdGVy PWZ1bmN0aW9uKEcsRil7Rj1GfHxFKEcpO2lmKCFHLmlzQW5pbWF0ZWQoKXx8Rj09 PS0xKXtyZXR1cm4gZmFsc2U7fUcuX29uQ29tcGxldGUuZmlyZSgpO0Iuc3BsaWNl KEYsMSk7QS09MTtpZihBPD0wKXt0aGlzLnN0b3AoKTt9cmV0dXJuIHRydWU7fTt0 aGlzLnN0YXJ0PWZ1bmN0aW9uKCl7aWYoQz09PW51bGwpe0M9c2V0SW50ZXJ2YWwo dGhpcy5ydW4sdGhpcy5kZWxheSk7fX07dGhpcy5zdG9wPWZ1bmN0aW9uKEgpe2lm KCFIKXtjbGVhckludGVydmFsKEMpO2Zvcih2YXIgRz0wLEY9Qi5sZW5ndGg7RzxG OysrRyl7dGhpcy51blJlZ2lzdGVyKEJbMF0sMCk7fUI9W107Qz1udWxsO0E9MDt9 ZWxzZXt0aGlzLnVuUmVnaXN0ZXIoSCk7fX07dGhpcy5ydW49ZnVuY3Rpb24oKXtm b3IodmFyIEg9MCxGPUIubGVuZ3RoO0g8RjsrK0gpe3ZhciBHPUJbSF07aWYoIUd8 fCFHLmlzQW5pbWF0ZWQoKSl7Y29udGludWU7fWlmKEcuY3VycmVudEZyYW1lPEcu dG90YWxGcmFtZXN8fEcudG90YWxGcmFtZXM9PT1udWxsKXtHLmN1cnJlbnRGcmFt ZSs9MTtpZihHLnVzZVNlY29uZHMpe0QoRyk7fUcuX29uVHdlZW4uZmlyZSgpO31l bHNle1lBSE9PLnV0aWwuQW5pbU1nci5zdG9wKEcsSCk7fX19O3ZhciBFPWZ1bmN0 aW9uKEgpe2Zvcih2YXIgRz0wLEY9Qi5sZW5ndGg7RzxGOysrRyl7aWYoQltHXT09 PUgpe3JldHVybiBHO319cmV0dXJuIC0xO307dmFyIEQ9ZnVuY3Rpb24oRyl7dmFy IEo9Ry50b3RhbEZyYW1lczt2YXIgST1HLmN1cnJlbnRGcmFtZTt2YXIgSD0oRy5j dXJyZW50RnJhbWUqRy5kdXJhdGlvbioxMDAwL0cudG90YWxGcmFtZXMpO3ZhciBG PShuZXcgRGF0ZSgpLUcuZ2V0U3RhcnRUaW1lKCkpO3ZhciBLPTA7aWYoRjxHLmR1 cmF0aW9uKjEwMDApe0s9TWF0aC5yb3VuZCgoRi9ILTEpKkcuY3VycmVudEZyYW1l KTt9ZWxzZXtLPUotKEkrMSk7fWlmKEs+MCYmaXNGaW5pdGUoSykpe2lmKEcuY3Vy cmVudEZyYW1lK0s+PUope0s9Si0oSSsxKTt9Ry5jdXJyZW50RnJhbWUrPUs7fX07 dGhpcy5fcXVldWU9Qjt0aGlzLl9nZXRJbmRleD1FO307WUFIT08udXRpbC5CZXpp ZXI9bmV3IGZ1bmN0aW9uKCl7dGhpcy5nZXRQb3NpdGlvbj1mdW5jdGlvbihFLEQp e3ZhciBGPUUubGVuZ3RoO3ZhciBDPVtdO2Zvcih2YXIgQj0wO0I8RjsrK0Ipe0Nb Ql09W0VbQl1bMF0sRVtCXVsxXV07fWZvcih2YXIgQT0xO0E8RjsrK0Epe2ZvcihC PTA7QjxGLUE7KytCKXtDW0JdWzBdPSgxLUQpKkNbQl1bMF0rRCpDW3BhcnNlSW50 KEIrMSwxMCldWzBdO0NbQl1bMV09KDEtRCkqQ1tCXVsxXStEKkNbcGFyc2VJbnQo QisxLDEwKV1bMV07fX1yZXR1cm5bQ1swXVswXSxDWzBdWzFdXTt9O307KGZ1bmN0 aW9uKCl7dmFyIEE9ZnVuY3Rpb24oRixFLEcsSCl7QS5zdXBlcmNsYXNzLmNvbnN0 cnVjdG9yLmNhbGwodGhpcyxGLEUsRyxIKTt9O0EuTkFNRT0iQ29sb3JBbmltIjtB LkRFRkFVTFRfQkdDT0xPUj0iI2ZmZiI7dmFyIEM9WUFIT08udXRpbDtZQUhPTy5l eHRlbmQoQSxDLkFuaW0pO3ZhciBEPUEuc3VwZXJjbGFzczt2YXIgQj1BLnByb3Rv dHlwZTtCLnBhdHRlcm5zLmNvbG9yPS9jb2xvciQvaTtCLnBhdHRlcm5zLnJnYj0v XnJnYlwoKFswLTldKylccyosXHMqKFswLTldKylccyosXHMqKFswLTldKylcKSQv aTtCLnBhdHRlcm5zLmhleD0vXiM/KFswLTlBLUZdezJ9KShbMC05QS1GXXsyfSko WzAtOUEtRl17Mn0pJC9pO0IucGF0dGVybnMuaGV4Mz0vXiM/KFswLTlBLUZdezF9 KShbMC05QS1GXXsxfSkoWzAtOUEtRl17MX0pJC9pO0IucGF0dGVybnMudHJhbnNw YXJlbnQ9L150cmFuc3BhcmVudHxyZ2JhXCgwLCAwLCAwLCAwXCkkLztCLnBhcnNl Q29sb3I9ZnVuY3Rpb24oRSl7aWYoRS5sZW5ndGg9PTMpe3JldHVybiBFO312YXIg Rj10aGlzLnBhdHRlcm5zLmhleC5leGVjKEUpO2lmKEYmJkYubGVuZ3RoPT00KXty ZXR1cm5bcGFyc2VJbnQoRlsxXSwxNikscGFyc2VJbnQoRlsyXSwxNikscGFyc2VJ bnQoRlszXSwxNildO31GPXRoaXMucGF0dGVybnMucmdiLmV4ZWMoRSk7aWYoRiYm Ri5sZW5ndGg9PTQpe3JldHVybltwYXJzZUludChGWzFdLDEwKSxwYXJzZUludChG WzJdLDEwKSxwYXJzZUludChGWzNdLDEwKV07fUY9dGhpcy5wYXR0ZXJucy5oZXgz LmV4ZWMoRSk7aWYoRiYmRi5sZW5ndGg9PTQpe3JldHVybltwYXJzZUludChGWzFd K0ZbMV0sMTYpLHBhcnNlSW50KEZbMl0rRlsyXSwxNikscGFyc2VJbnQoRlszXStG WzNdLDE2KV07Cn1yZXR1cm4gbnVsbDt9O0IuZ2V0QXR0cmlidXRlPWZ1bmN0aW9u KEUpe3ZhciBHPXRoaXMuZ2V0RWwoKTtpZih0aGlzLnBhdHRlcm5zLmNvbG9yLnRl c3QoRSkpe3ZhciBJPVlBSE9PLnV0aWwuRG9tLmdldFN0eWxlKEcsRSk7dmFyIEg9 dGhpcztpZih0aGlzLnBhdHRlcm5zLnRyYW5zcGFyZW50LnRlc3QoSSkpe3ZhciBG PVlBSE9PLnV0aWwuRG9tLmdldEFuY2VzdG9yQnkoRyxmdW5jdGlvbihKKXtyZXR1 cm4gIUgucGF0dGVybnMudHJhbnNwYXJlbnQudGVzdChJKTt9KTtpZihGKXtJPUMu RG9tLmdldFN0eWxlKEYsRSk7fWVsc2V7ST1BLkRFRkFVTFRfQkdDT0xPUjt9fX1l bHNle0k9RC5nZXRBdHRyaWJ1dGUuY2FsbCh0aGlzLEUpO31yZXR1cm4gSTt9O0Iu ZG9NZXRob2Q9ZnVuY3Rpb24oRixKLEcpe3ZhciBJO2lmKHRoaXMucGF0dGVybnMu Y29sb3IudGVzdChGKSl7ST1bXTtmb3IodmFyIEg9MCxFPUoubGVuZ3RoO0g8RTsr K0gpe0lbSF09RC5kb01ldGhvZC5jYWxsKHRoaXMsRixKW0hdLEdbSF0pO31JPSJy Z2IoIitNYXRoLmZsb29yKElbMF0pKyIsIitNYXRoLmZsb29yKElbMV0pKyIsIitN YXRoLmZsb29yKElbMl0pKyIpIjt9ZWxzZXtJPUQuZG9NZXRob2QuY2FsbCh0aGlz LEYsSixHKTt9cmV0dXJuIEk7fTtCLnNldFJ1bnRpbWVBdHRyaWJ1dGU9ZnVuY3Rp b24oRil7RC5zZXRSdW50aW1lQXR0cmlidXRlLmNhbGwodGhpcyxGKTtpZih0aGlz LnBhdHRlcm5zLmNvbG9yLnRlc3QoRikpe3ZhciBIPXRoaXMuYXR0cmlidXRlczt2 YXIgSj10aGlzLnBhcnNlQ29sb3IodGhpcy5ydW50aW1lQXR0cmlidXRlc1tGXS5z dGFydCk7dmFyIEc9dGhpcy5wYXJzZUNvbG9yKHRoaXMucnVudGltZUF0dHJpYnV0 ZXNbRl0uZW5kKTtpZih0eXBlb2YgSFtGXVsidG8iXT09PSJ1bmRlZmluZWQiJiZ0 eXBlb2YgSFtGXVsiYnkiXSE9PSJ1bmRlZmluZWQiKXtHPXRoaXMucGFyc2VDb2xv cihIW0ZdLmJ5KTtmb3IodmFyIEk9MCxFPUoubGVuZ3RoO0k8RTsrK0kpe0dbSV09 SltJXStHW0ldO319dGhpcy5ydW50aW1lQXR0cmlidXRlc1tGXS5zdGFydD1KO3Ro aXMucnVudGltZUF0dHJpYnV0ZXNbRl0uZW5kPUc7fX07Qy5Db2xvckFuaW09QTt9 KSgpOwovKgpURVJNUyBPRiBVU0UgLSBFQVNJTkcgRVFVQVRJT05TCk9wZW4gc291 cmNlIHVuZGVyIHRoZSBCU0QgTGljZW5zZS4KQ29weXJpZ2h0IDIwMDEgUm9iZXJ0 IFBlbm5lciBBbGwgcmlnaHRzIHJlc2VydmVkLgoKUmVkaXN0cmlidXRpb24gYW5k IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0 IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgoKICogUmVkaXN0cmlidXRpb25z IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQg bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu ZyBkaXNjbGFpbWVyLgogKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92 aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAqIE5laXRoZXIgdGhlIG5hbWUg b2YgdGhlIGF1dGhvciBub3IgdGhlIG5hbWVzIG9mIGNvbnRyaWJ1dG9ycyBtYXkg YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm cm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu IHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBP V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu CiovCllBSE9PLnV0aWwuRWFzaW5nPXtlYXNlTm9uZTpmdW5jdGlvbihCLEEsRCxD KXtyZXR1cm4gRCpCL0MrQTt9LGVhc2VJbjpmdW5jdGlvbihCLEEsRCxDKXtyZXR1 cm4gRCooQi89QykqQitBO30sZWFzZU91dDpmdW5jdGlvbihCLEEsRCxDKXtyZXR1 cm4gLUQqKEIvPUMpKihCLTIpK0E7fSxlYXNlQm90aDpmdW5jdGlvbihCLEEsRCxD KXtpZigoQi89Qy8yKTwxKXtyZXR1cm4gRC8yKkIqQitBO31yZXR1cm4gLUQvMioo KC0tQikqKEItMiktMSkrQTt9LGVhc2VJblN0cm9uZzpmdW5jdGlvbihCLEEsRCxD KXtyZXR1cm4gRCooQi89QykqQipCKkIrQTt9LGVhc2VPdXRTdHJvbmc6ZnVuY3Rp b24oQixBLEQsQyl7cmV0dXJuIC1EKigoQj1CL0MtMSkqQipCKkItMSkrQTt9LGVh c2VCb3RoU3Ryb25nOmZ1bmN0aW9uKEIsQSxELEMpe2lmKChCLz1DLzIpPDEpe3Jl dHVybiBELzIqQipCKkIqQitBO31yZXR1cm4gLUQvMiooKEItPTIpKkIqQipCLTIp K0E7fSxlbGFzdGljSW46ZnVuY3Rpb24oQyxBLEcsRixCLEUpe2lmKEM9PTApe3Jl dHVybiBBO31pZigoQy89Rik9PTEpe3JldHVybiBBK0c7fWlmKCFFKXtFPUYqMC4z O31pZighQnx8QjxNYXRoLmFicyhHKSl7Qj1HO3ZhciBEPUUvNDt9ZWxzZXt2YXIg RD1FLygyKk1hdGguUEkpKk1hdGguYXNpbihHL0IpO31yZXR1cm4gLShCKk1hdGgu cG93KDIsMTAqKEMtPTEpKSpNYXRoLnNpbigoQypGLUQpKigyKk1hdGguUEkpL0Up KStBO30sZWxhc3RpY091dDpmdW5jdGlvbihDLEEsRyxGLEIsRSl7aWYoQz09MCl7 cmV0dXJuIEE7fWlmKChDLz1GKT09MSl7cmV0dXJuIEErRzt9aWYoIUUpe0U9Riow LjM7fWlmKCFCfHxCPE1hdGguYWJzKEcpKXtCPUc7dmFyIEQ9RS80O31lbHNle3Zh ciBEPUUvKDIqTWF0aC5QSSkqTWF0aC5hc2luKEcvQik7fXJldHVybiBCKk1hdGgu cG93KDIsLTEwKkMpKk1hdGguc2luKChDKkYtRCkqKDIqTWF0aC5QSSkvRSkrRytB O30sZWxhc3RpY0JvdGg6ZnVuY3Rpb24oQyxBLEcsRixCLEUpe2lmKEM9PTApe3Jl dHVybiBBO31pZigoQy89Ri8yKT09Mil7cmV0dXJuIEErRzt9aWYoIUUpe0U9Rioo MC4zKjEuNSk7fWlmKCFCfHxCPE1hdGguYWJzKEcpKXtCPUc7dmFyIEQ9RS80O31l bHNle3ZhciBEPUUvKDIqTWF0aC5QSSkqTWF0aC5hc2luKEcvQik7fWlmKEM8MSl7 cmV0dXJuIC0wLjUqKEIqTWF0aC5wb3coMiwxMCooQy09MSkpKk1hdGguc2luKChD KkYtRCkqKDIqTWF0aC5QSSkvRSkpK0E7fXJldHVybiBCKk1hdGgucG93KDIsLTEw KihDLT0xKSkqTWF0aC5zaW4oKEMqRi1EKSooMipNYXRoLlBJKS9FKSowLjUrRytB O30sYmFja0luOmZ1bmN0aW9uKEIsQSxFLEQsQyl7aWYodHlwZW9mIEM9PSJ1bmRl ZmluZWQiKXtDPTEuNzAxNTg7fXJldHVybiBFKihCLz1EKSpCKigoQysxKSpCLUMp K0E7fSxiYWNrT3V0OmZ1bmN0aW9uKEIsQSxFLEQsQyl7aWYodHlwZW9mIEM9PSJ1 bmRlZmluZWQiKXtDPTEuNzAxNTg7fXJldHVybiBFKigoQj1CL0QtMSkqQiooKEMr MSkqQitDKSsxKStBO30sYmFja0JvdGg6ZnVuY3Rpb24oQixBLEUsRCxDKXtpZih0 eXBlb2YgQz09InVuZGVmaW5lZCIpe0M9MS43MDE1ODt9aWYoKEIvPUQvMik8MSl7 cmV0dXJuIEUvMiooQipCKigoKEMqPSgxLjUyNSkpKzEpKkItQykpK0E7fXJldHVy biBFLzIqKChCLT0yKSpCKigoKEMqPSgxLjUyNSkpKzEpKkIrQykrMikrQTt9LGJv dW5jZUluOmZ1bmN0aW9uKEIsQSxELEMpe3JldHVybiBELVlBSE9PLnV0aWwuRWFz aW5nLmJvdW5jZU91dChDLUIsMCxELEMpK0E7fSxib3VuY2VPdXQ6ZnVuY3Rpb24o QixBLEQsQyl7aWYoKEIvPUMpPCgxLzIuNzUpKXtyZXR1cm4gRCooNy41NjI1KkIq QikrQTt9ZWxzZXtpZihCPCgyLzIuNzUpKXtyZXR1cm4gRCooNy41NjI1KihCLT0o MS41LzIuNzUpKSpCKzAuNzUpK0E7fWVsc2V7aWYoQjwoMi41LzIuNzUpKXtyZXR1 cm4gRCooNy41NjI1KihCLT0oMi4yNS8yLjc1KSkqQiswLjkzNzUpK0E7fX19cmV0 dXJuIEQqKDcuNTYyNSooQi09KDIuNjI1LzIuNzUpKSpCKzAuOTg0Mzc1KStBO30s Ym91bmNlQm90aDpmdW5jdGlvbihCLEEsRCxDKXtpZihCPEMvMil7cmV0dXJuIFlB SE9PLnV0aWwuRWFzaW5nLmJvdW5jZUluKEIqMiwwLEQsQykqMC41K0E7fXJldHVy biBZQUhPTy51dGlsLkVhc2luZy5ib3VuY2VPdXQoQioyLUMsMCxELEMpKjAuNStE KjAuNStBO319OyhmdW5jdGlvbigpe3ZhciBBPWZ1bmN0aW9uKEgsRyxJLEope2lm KEgpe0Euc3VwZXJjbGFzcy5jb25zdHJ1Y3Rvci5jYWxsKHRoaXMsSCxHLEksSik7 fX07QS5OQU1FPSJNb3Rpb24iO3ZhciBFPVlBSE9PLnV0aWw7WUFIT08uZXh0ZW5k KEEsRS5Db2xvckFuaW0pO3ZhciBGPUEuc3VwZXJjbGFzczt2YXIgQz1BLnByb3Rv dHlwZTtDLnBhdHRlcm5zLnBvaW50cz0vXnBvaW50cyQvaTtDLnNldEF0dHJpYnV0 ZT1mdW5jdGlvbihHLEksSCl7aWYodGhpcy5wYXR0ZXJucy5wb2ludHMudGVzdChH KSl7SD1IfHwicHgiO0Yuc2V0QXR0cmlidXRlLmNhbGwodGhpcywibGVmdCIsSVsw XSxIKTtGLnNldEF0dHJpYnV0ZS5jYWxsKHRoaXMsInRvcCIsSVsxXSxIKTt9ZWxz ZXtGLnNldEF0dHJpYnV0ZS5jYWxsKHRoaXMsRyxJLEgpO319O0MuZ2V0QXR0cmli dXRlPWZ1bmN0aW9uKEcpe2lmKHRoaXMucGF0dGVybnMucG9pbnRzLnRlc3QoRykp e3ZhciBIPVtGLmdldEF0dHJpYnV0ZS5jYWxsKHRoaXMsImxlZnQiKSxGLmdldEF0 dHJpYnV0ZS5jYWxsKHRoaXMsInRvcCIpXTt9ZWxzZXtIPUYuZ2V0QXR0cmlidXRl LmNhbGwodGhpcyxHKTt9cmV0dXJuIEg7fTtDLmRvTWV0aG9kPWZ1bmN0aW9uKEcs SyxIKXt2YXIgSj1udWxsO2lmKHRoaXMucGF0dGVybnMucG9pbnRzLnRlc3QoRykp e3ZhciBJPXRoaXMubWV0aG9kKHRoaXMuY3VycmVudEZyYW1lLDAsMTAwLHRoaXMu dG90YWxGcmFtZXMpLzEwMDtKPUUuQmV6aWVyLmdldFBvc2l0aW9uKHRoaXMucnVu dGltZUF0dHJpYnV0ZXNbR10sSSk7fWVsc2V7Sj1GLmRvTWV0aG9kLmNhbGwodGhp cyxHLEssSCk7fXJldHVybiBKO307Qy5zZXRSdW50aW1lQXR0cmlidXRlPWZ1bmN0 aW9uKFApe2lmKHRoaXMucGF0dGVybnMucG9pbnRzLnRlc3QoUCkpe3ZhciBIPXRo aXMuZ2V0RWwoKTt2YXIgSj10aGlzLmF0dHJpYnV0ZXM7dmFyIEc7dmFyIEw9Slsi cG9pbnRzIl1bImNvbnRyb2wiXXx8W107dmFyIEk7dmFyIE0sTztpZihMLmxlbmd0 aD4wJiYhKExbMF0gaW5zdGFuY2VvZiBBcnJheSkpe0w9W0xdO31lbHNle3ZhciBL PVtdO2ZvcihNPTAsTz1MLmxlbmd0aDtNPE87KytNKXtLW01dPUxbTV07fUw9Szt9 aWYoRS5Eb20uZ2V0U3R5bGUoSCwicG9zaXRpb24iKT09InN0YXRpYyIpe0UuRG9t LnNldFN0eWxlKEgsInBvc2l0aW9uIiwicmVsYXRpdmUiKTt9aWYoRChKWyJwb2lu dHMiXVsiZnJvbSJdKSl7RS5Eb20uc2V0WFkoSCxKWyJwb2ludHMiXVsiZnJvbSJd KTsKfWVsc2V7RS5Eb20uc2V0WFkoSCxFLkRvbS5nZXRYWShIKSk7fUc9dGhpcy5n ZXRBdHRyaWJ1dGUoInBvaW50cyIpO2lmKEQoSlsicG9pbnRzIl1bInRvIl0pKXtJ PUIuY2FsbCh0aGlzLEpbInBvaW50cyJdWyJ0byJdLEcpO3ZhciBOPUUuRG9tLmdl dFhZKHRoaXMuZ2V0RWwoKSk7Zm9yKE09MCxPPUwubGVuZ3RoO008TzsrK00pe0xb TV09Qi5jYWxsKHRoaXMsTFtNXSxHKTt9fWVsc2V7aWYoRChKWyJwb2ludHMiXVsi YnkiXSkpe0k9W0dbMF0rSlsicG9pbnRzIl1bImJ5Il1bMF0sR1sxXStKWyJwb2lu dHMiXVsiYnkiXVsxXV07Zm9yKE09MCxPPUwubGVuZ3RoO008TzsrK00pe0xbTV09 W0dbMF0rTFtNXVswXSxHWzFdK0xbTV1bMV1dO319fXRoaXMucnVudGltZUF0dHJp YnV0ZXNbUF09W0ddO2lmKEwubGVuZ3RoPjApe3RoaXMucnVudGltZUF0dHJpYnV0 ZXNbUF09dGhpcy5ydW50aW1lQXR0cmlidXRlc1tQXS5jb25jYXQoTCk7fXRoaXMu cnVudGltZUF0dHJpYnV0ZXNbUF1bdGhpcy5ydW50aW1lQXR0cmlidXRlc1tQXS5s ZW5ndGhdPUk7fWVsc2V7Ri5zZXRSdW50aW1lQXR0cmlidXRlLmNhbGwodGhpcyxQ KTt9fTt2YXIgQj1mdW5jdGlvbihHLEkpe3ZhciBIPUUuRG9tLmdldFhZKHRoaXMu Z2V0RWwoKSk7Rz1bR1swXS1IWzBdK0lbMF0sR1sxXS1IWzFdK0lbMV1dO3JldHVy biBHO307dmFyIEQ9ZnVuY3Rpb24oRyl7cmV0dXJuKHR5cGVvZiBHIT09InVuZGVm aW5lZCIpO307RS5Nb3Rpb249QTt9KSgpOyhmdW5jdGlvbigpe3ZhciBEPWZ1bmN0 aW9uKEYsRSxHLEgpe2lmKEYpe0Quc3VwZXJjbGFzcy5jb25zdHJ1Y3Rvci5jYWxs KHRoaXMsRixFLEcsSCk7fX07RC5OQU1FPSJTY3JvbGwiO3ZhciBCPVlBSE9PLnV0 aWw7WUFIT08uZXh0ZW5kKEQsQi5Db2xvckFuaW0pO3ZhciBDPUQuc3VwZXJjbGFz czt2YXIgQT1ELnByb3RvdHlwZTtBLmRvTWV0aG9kPWZ1bmN0aW9uKEUsSCxGKXt2 YXIgRz1udWxsO2lmKEU9PSJzY3JvbGwiKXtHPVt0aGlzLm1ldGhvZCh0aGlzLmN1 cnJlbnRGcmFtZSxIWzBdLEZbMF0tSFswXSx0aGlzLnRvdGFsRnJhbWVzKSx0aGlz Lm1ldGhvZCh0aGlzLmN1cnJlbnRGcmFtZSxIWzFdLEZbMV0tSFsxXSx0aGlzLnRv dGFsRnJhbWVzKV07fWVsc2V7Rz1DLmRvTWV0aG9kLmNhbGwodGhpcyxFLEgsRik7 fXJldHVybiBHO307QS5nZXRBdHRyaWJ1dGU9ZnVuY3Rpb24oRSl7dmFyIEc9bnVs bDt2YXIgRj10aGlzLmdldEVsKCk7aWYoRT09InNjcm9sbCIpe0c9W0Yuc2Nyb2xs TGVmdCxGLnNjcm9sbFRvcF07fWVsc2V7Rz1DLmdldEF0dHJpYnV0ZS5jYWxsKHRo aXMsRSk7fXJldHVybiBHO307QS5zZXRBdHRyaWJ1dGU9ZnVuY3Rpb24oRSxILEcp e3ZhciBGPXRoaXMuZ2V0RWwoKTtpZihFPT0ic2Nyb2xsIil7Ri5zY3JvbGxMZWZ0 PUhbMF07Ri5zY3JvbGxUb3A9SFsxXTt9ZWxzZXtDLnNldEF0dHJpYnV0ZS5jYWxs KHRoaXMsRSxILEcpO319O0IuU2Nyb2xsPUQ7fSkoKTtZQUhPTy5yZWdpc3Rlcigi YW5pbWF0aW9uIixZQUhPTy51dGlsLkFuaW0se3ZlcnNpb246IjIuOC4yIixidWls ZDoiMTkifSk7LyoKQ29weXJpZ2h0IChjKSAyMDEwLCBZYWhvbyEgSW5jLiBBbGwg cmlnaHRzIHJlc2VydmVkLgpDb2RlIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0QgTGlj ZW5zZToKaHR0cDovL2RldmVsb3Blci55YWhvby5jb20veXVpL2xpY2Vuc2UuaHRt bAp2ZXJzaW9uOiAyLjguMgoqLwpZQUhPTy51dGlsLkNvbm5lY3Q9e19tc3htbF9w cm9naWQ6WyJNaWNyb3NvZnQuWE1MSFRUUCIsIk1TWE1MMi5YTUxIVFRQLjMuMCIs Ik1TWE1MMi5YTUxIVFRQIl0sX2h0dHBfaGVhZGVyczp7fSxfaGFzX2h0dHBfaGVh ZGVyczpmYWxzZSxfdXNlX2RlZmF1bHRfcG9zdF9oZWFkZXI6dHJ1ZSxfZGVmYXVs dF9wb3N0X2hlYWRlcjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVk OyBjaGFyc2V0PVVURi04IixfZGVmYXVsdF9mb3JtX2hlYWRlcjoiYXBwbGljYXRp b24veC13d3ctZm9ybS11cmxlbmNvZGVkIixfdXNlX2RlZmF1bHRfeGhyX2hlYWRl cjp0cnVlLF9kZWZhdWx0X3hocl9oZWFkZXI6IlhNTEh0dHBSZXF1ZXN0IixfaGFz X2RlZmF1bHRfaGVhZGVyczp0cnVlLF9kZWZhdWx0X2hlYWRlcnM6e30sX3BvbGw6 e30sX3RpbWVPdXQ6e30sX3BvbGxpbmdfaW50ZXJ2YWw6NTAsX3RyYW5zYWN0aW9u X2lkOjAsc3RhcnRFdmVudDpuZXcgWUFIT08udXRpbC5DdXN0b21FdmVudCgic3Rh cnQiKSxjb21wbGV0ZUV2ZW50Om5ldyBZQUhPTy51dGlsLkN1c3RvbUV2ZW50KCJj b21wbGV0ZSIpLHN1Y2Nlc3NFdmVudDpuZXcgWUFIT08udXRpbC5DdXN0b21FdmVu dCgic3VjY2VzcyIpLGZhaWx1cmVFdmVudDpuZXcgWUFIT08udXRpbC5DdXN0b21F dmVudCgiZmFpbHVyZSIpLGFib3J0RXZlbnQ6bmV3IFlBSE9PLnV0aWwuQ3VzdG9t RXZlbnQoImFib3J0IiksX2N1c3RvbUV2ZW50czp7b25TdGFydDpbInN0YXJ0RXZl bnQiLCJzdGFydCJdLG9uQ29tcGxldGU6WyJjb21wbGV0ZUV2ZW50IiwiY29tcGxl dGUiXSxvblN1Y2Nlc3M6WyJzdWNjZXNzRXZlbnQiLCJzdWNjZXNzIl0sb25GYWls dXJlOlsiZmFpbHVyZUV2ZW50IiwiZmFpbHVyZSJdLG9uVXBsb2FkOlsidXBsb2Fk RXZlbnQiLCJ1cGxvYWQiXSxvbkFib3J0OlsiYWJvcnRFdmVudCIsImFib3J0Il19 LHNldFByb2dJZDpmdW5jdGlvbihBKXt0aGlzLl9tc3htbF9wcm9naWQudW5zaGlm dChBKTt9LHNldERlZmF1bHRQb3N0SGVhZGVyOmZ1bmN0aW9uKEEpe2lmKHR5cGVv ZiBBPT0ic3RyaW5nIil7dGhpcy5fZGVmYXVsdF9wb3N0X2hlYWRlcj1BO31lbHNl e2lmKHR5cGVvZiBBPT0iYm9vbGVhbiIpe3RoaXMuX3VzZV9kZWZhdWx0X3Bvc3Rf aGVhZGVyPUE7fX19LHNldERlZmF1bHRYaHJIZWFkZXI6ZnVuY3Rpb24oQSl7aWYo dHlwZW9mIEE9PSJzdHJpbmciKXt0aGlzLl9kZWZhdWx0X3hocl9oZWFkZXI9QTt9 ZWxzZXt0aGlzLl91c2VfZGVmYXVsdF94aHJfaGVhZGVyPUE7fX0sc2V0UG9sbGlu Z0ludGVydmFsOmZ1bmN0aW9uKEEpe2lmKHR5cGVvZiBBPT0ibnVtYmVyIiYmaXNG aW5pdGUoQSkpe3RoaXMuX3BvbGxpbmdfaW50ZXJ2YWw9QTt9fSxjcmVhdGVYaHJP YmplY3Q6ZnVuY3Rpb24oRil7dmFyIEQsQSxCO3RyeXtBPW5ldyBYTUxIdHRwUmVx dWVzdCgpO0Q9e2Nvbm46QSx0SWQ6Rix4aHI6dHJ1ZX07fWNhdGNoKEMpe2ZvcihC PTA7Qjx0aGlzLl9tc3htbF9wcm9naWQubGVuZ3RoOysrQil7dHJ5e0E9bmV3IEFj dGl2ZVhPYmplY3QodGhpcy5fbXN4bWxfcHJvZ2lkW0JdKTtEPXtjb25uOkEsdElk OkYseGhyOnRydWV9O2JyZWFrO31jYXRjaChFKXt9fX1maW5hbGx5e3JldHVybiBE O319LGdldENvbm5lY3Rpb25PYmplY3Q6ZnVuY3Rpb24oQSl7dmFyIEMsRD10aGlz Ll90cmFuc2FjdGlvbl9pZDt0cnl7aWYoIUEpe0M9dGhpcy5jcmVhdGVYaHJPYmpl Y3QoRCk7fWVsc2V7Qz17dElkOkR9O2lmKEE9PT0ieGRyIil7Qy5jb25uPXRoaXMu X3RyYW5zcG9ydDtDLnhkcj10cnVlO31lbHNle2lmKEE9PT0idXBsb2FkIil7Qy51 cGxvYWQ9dHJ1ZTt9fX1pZihDKXt0aGlzLl90cmFuc2FjdGlvbl9pZCsrO319Y2F0 Y2goQil7fXJldHVybiBDO30sYXN5bmNSZXF1ZXN0OmZ1bmN0aW9uKEcsRCxGLEEp e3ZhciBFLEMsQj0oRiYmRi5hcmd1bWVudCk/Ri5hcmd1bWVudDpudWxsO2lmKHRo aXMuX2lzRmlsZVVwbG9hZCl7Qz0idXBsb2FkIjt9ZWxzZXtpZihGLnhkcil7Qz0i eGRyIjt9fUU9dGhpcy5nZXRDb25uZWN0aW9uT2JqZWN0KEMpO2lmKCFFKXtyZXR1 cm4gbnVsbDt9ZWxzZXtpZihGJiZGLmN1c3RvbWV2ZW50cyl7dGhpcy5pbml0Q3Vz dG9tRXZlbnRzKEUsRik7fWlmKHRoaXMuX2lzRm9ybVN1Ym1pdCl7aWYodGhpcy5f aXNGaWxlVXBsb2FkKXt0aGlzLnVwbG9hZEZpbGUoRSxGLEQsQSk7cmV0dXJuIEU7 fWlmKEcudG9VcHBlckNhc2UoKT09IkdFVCIpe2lmKHRoaXMuX3NGb3JtRGF0YS5s ZW5ndGghPT0wKXtEKz0oKEQuaW5kZXhPZigiPyIpPT0tMSk/Ij8iOiImIikrdGhp cy5fc0Zvcm1EYXRhO319ZWxzZXtpZihHLnRvVXBwZXJDYXNlKCk9PSJQT1NUIil7 QT1BP3RoaXMuX3NGb3JtRGF0YSsiJiIrQTp0aGlzLl9zRm9ybURhdGE7fX19aWYo Ry50b1VwcGVyQ2FzZSgpPT0iR0VUIiYmKEYmJkYuY2FjaGU9PT1mYWxzZSkpe0Qr PSgoRC5pbmRleE9mKCI/Iik9PS0xKT8iPyI6IiYiKSsicm5kPSIrbmV3IERhdGUo KS52YWx1ZU9mKCkudG9TdHJpbmcoKTt9aWYodGhpcy5fdXNlX2RlZmF1bHRfeGhy X2hlYWRlcil7aWYoIXRoaXMuX2RlZmF1bHRfaGVhZGVyc1siWC1SZXF1ZXN0ZWQt V2l0aCJdKXt0aGlzLmluaXRIZWFkZXIoIlgtUmVxdWVzdGVkLVdpdGgiLHRoaXMu X2RlZmF1bHRfeGhyX2hlYWRlcix0cnVlKTt9fWlmKChHLnRvVXBwZXJDYXNlKCk9 PT0iUE9TVCImJnRoaXMuX3VzZV9kZWZhdWx0X3Bvc3RfaGVhZGVyKSYmdGhpcy5f aXNGb3JtU3VibWl0PT09ZmFsc2Upe3RoaXMuaW5pdEhlYWRlcigiQ29udGVudC1U eXBlIix0aGlzLl9kZWZhdWx0X3Bvc3RfaGVhZGVyKTt9aWYoRS54ZHIpe3RoaXMu eGRyKEUsRyxELEYsQSk7cmV0dXJuIEU7fUUuY29ubi5vcGVuKEcsRCx0cnVlKTtp Zih0aGlzLl9oYXNfZGVmYXVsdF9oZWFkZXJzfHx0aGlzLl9oYXNfaHR0cF9oZWFk ZXJzKXt0aGlzLnNldEhlYWRlcihFKTt9dGhpcy5oYW5kbGVSZWFkeVN0YXRlKEUs Rik7RS5jb25uLnNlbmQoQXx8IiIpO2lmKHRoaXMuX2lzRm9ybVN1Ym1pdD09PXRy dWUpe3RoaXMucmVzZXRGb3JtU3RhdGUoKTt9dGhpcy5zdGFydEV2ZW50LmZpcmUo RSxCKTtpZihFLnN0YXJ0RXZlbnQpe0Uuc3RhcnRFdmVudC5maXJlKEUsQik7fXJl dHVybiBFO319LGluaXRDdXN0b21FdmVudHM6ZnVuY3Rpb24oQSxDKXt2YXIgQjtm b3IoQiBpbiBDLmN1c3RvbWV2ZW50cyl7aWYodGhpcy5fY3VzdG9tRXZlbnRzW0Jd WzBdKXtBW3RoaXMuX2N1c3RvbUV2ZW50c1tCXVswXV09bmV3IFlBSE9PLnV0aWwu Q3VzdG9tRXZlbnQodGhpcy5fY3VzdG9tRXZlbnRzW0JdWzFdLChDLnNjb3BlKT9D LnNjb3BlOm51bGwpO0FbdGhpcy5fY3VzdG9tRXZlbnRzW0JdWzBdXS5zdWJzY3Jp YmUoQy5jdXN0b21ldmVudHNbQl0pO319fSxoYW5kbGVSZWFkeVN0YXRlOmZ1bmN0 aW9uKEMsRCl7dmFyIEI9dGhpcyxBPShEJiZELmFyZ3VtZW50KT9ELmFyZ3VtZW50 Om51bGw7aWYoRCYmRC50aW1lb3V0KXt0aGlzLl90aW1lT3V0W0MudElkXT13aW5k b3cuc2V0VGltZW91dChmdW5jdGlvbigpe0IuYWJvcnQoQyxELHRydWUpO30sRC50 aW1lb3V0KTt9dGhpcy5fcG9sbFtDLnRJZF09d2luZG93LnNldEludGVydmFsKGZ1 bmN0aW9uKCl7aWYoQy5jb25uJiZDLmNvbm4ucmVhZHlTdGF0ZT09PTQpe3dpbmRv dy5jbGVhckludGVydmFsKEIuX3BvbGxbQy50SWRdKTtkZWxldGUgQi5fcG9sbFtD LnRJZF07aWYoRCYmRC50aW1lb3V0KXt3aW5kb3cuY2xlYXJUaW1lb3V0KEIuX3Rp bWVPdXRbQy50SWRdKTtkZWxldGUgQi5fdGltZU91dFtDLnRJZF07fUIuY29tcGxl dGVFdmVudC5maXJlKEMsQSk7aWYoQy5jb21wbGV0ZUV2ZW50KXtDLmNvbXBsZXRl RXZlbnQuZmlyZShDLEEpO31CLmhhbmRsZVRyYW5zYWN0aW9uUmVzcG9uc2UoQyxE KTt9fSx0aGlzLl9wb2xsaW5nX2ludGVydmFsKTt9LGhhbmRsZVRyYW5zYWN0aW9u UmVzcG9uc2U6ZnVuY3Rpb24oQixJLEQpe3ZhciBFLEEsRz0oSSYmSS5hcmd1bWVu dCk/SS5hcmd1bWVudDpudWxsLEM9KEIuciYmQi5yLnN0YXR1c1RleHQ9PT0ieGRy OnN1Y2Nlc3MiKT90cnVlOmZhbHNlLEg9KEIuciYmQi5yLnN0YXR1c1RleHQ9PT0i eGRyOmZhaWx1cmUiKT90cnVlOmZhbHNlLEo9RDt0cnl7aWYoKEIuY29ubi5zdGF0 dXMhPT11bmRlZmluZWQmJkIuY29ubi5zdGF0dXMhPT0wKXx8Qyl7RT1CLmNvbm4u c3RhdHVzO31lbHNle2lmKEgmJiFKKXtFPTA7fWVsc2V7RT0xMzAzMDt9fX1jYXRj aChGKXtFPTEzMDMwO31pZigoRT49MjAwJiZFPDMwMCl8fEU9PT0xMjIzfHxDKXtB PUIueGRyP0Iucjp0aGlzLmNyZWF0ZVJlc3BvbnNlT2JqZWN0KEIsRyk7aWYoSSYm SS5zdWNjZXNzKXtpZighSS5zY29wZSl7SS5zdWNjZXNzKEEpO31lbHNle0kuc3Vj Y2Vzcy5hcHBseShJLnNjb3BlLFtBXSk7fX10aGlzLnN1Y2Nlc3NFdmVudC5maXJl KEEpO2lmKEIuc3VjY2Vzc0V2ZW50KXtCLnN1Y2Nlc3NFdmVudC5maXJlKEEpO319 ZWxzZXtzd2l0Y2goRSl7Y2FzZSAxMjAwMjpjYXNlIDEyMDI5OmNhc2UgMTIwMzA6 Y2FzZSAxMjAzMTpjYXNlIDEyMTUyOmNhc2UgMTMwMzA6QT10aGlzLmNyZWF0ZUV4 Y2VwdGlvbk9iamVjdChCLnRJZCxHLChEP0Q6ZmFsc2UpKTtpZihJJiZJLmZhaWx1 cmUpe2lmKCFJLnNjb3BlKXtJLmZhaWx1cmUoQSk7fWVsc2V7SS5mYWlsdXJlLmFw cGx5KEkuc2NvcGUsW0FdKTt9fWJyZWFrO2RlZmF1bHQ6QT0oQi54ZHIpP0IucmVz cG9uc2U6dGhpcy5jcmVhdGVSZXNwb25zZU9iamVjdChCLEcpO2lmKEkmJkkuZmFp bHVyZSl7aWYoIUkuc2NvcGUpe0kuZmFpbHVyZShBKTt9ZWxzZXtJLmZhaWx1cmUu YXBwbHkoSS5zY29wZSxbQV0pO319fXRoaXMuZmFpbHVyZUV2ZW50LmZpcmUoQSk7 aWYoQi5mYWlsdXJlRXZlbnQpe0IuZmFpbHVyZUV2ZW50LmZpcmUoQSk7fX10aGlz LnJlbGVhc2VPYmplY3QoQik7QT1udWxsO30sY3JlYXRlUmVzcG9uc2VPYmplY3Q6 ZnVuY3Rpb24oQSxHKXt2YXIgRD17fSxJPXt9LEUsQyxGLEI7dHJ5e0M9QS5jb25u LmdldEFsbFJlc3BvbnNlSGVhZGVycygpO0Y9Qy5zcGxpdCgiXG4iKTtmb3IoRT0w O0U8Ri5sZW5ndGg7RSsrKXtCPUZbRV0uaW5kZXhPZigiOiIpO2lmKEIhPS0xKXtJ W0ZbRV0uc3Vic3RyaW5nKDAsQildPVlBSE9PLmxhbmcudHJpbShGW0VdLnN1YnN0 cmluZyhCKzIpKTt9fX1jYXRjaChIKXt9RC50SWQ9QS50SWQ7RC5zdGF0dXM9KEEu Y29ubi5zdGF0dXM9PTEyMjMpPzIwNDpBLmNvbm4uc3RhdHVzO0Quc3RhdHVzVGV4 dD0oQS5jb25uLnN0YXR1cz09MTIyMyk/Ik5vIENvbnRlbnQiOkEuY29ubi5zdGF0 dXNUZXh0O0QuZ2V0UmVzcG9uc2VIZWFkZXI9STtELmdldEFsbFJlc3BvbnNlSGVh ZGVycz1DO0QucmVzcG9uc2VUZXh0PUEuY29ubi5yZXNwb25zZVRleHQ7RC5yZXNw b25zZVhNTD1BLmNvbm4ucmVzcG9uc2VYTUw7aWYoRyl7RC5hcmd1bWVudD1HO31y ZXR1cm4gRDt9LGNyZWF0ZUV4Y2VwdGlvbk9iamVjdDpmdW5jdGlvbihILEQsQSl7 dmFyIEY9MCxHPSJjb21tdW5pY2F0aW9uIGZhaWx1cmUiLEM9LTEsQj0idHJhbnNh Y3Rpb24gYWJvcnRlZCIsRT17fTtFLnRJZD1IO2lmKEEpe0Uuc3RhdHVzPUM7RS5z dGF0dXNUZXh0PUI7fWVsc2V7RS5zdGF0dXM9RjtFLnN0YXR1c1RleHQ9Rzt9aWYo RCl7RS5hcmd1bWVudD1EO31yZXR1cm4gRTt9LGluaXRIZWFkZXI6ZnVuY3Rpb24o QSxELEMpe3ZhciBCPShDKT90aGlzLl9kZWZhdWx0X2hlYWRlcnM6dGhpcy5faHR0 cF9oZWFkZXJzO0JbQV09RDtpZihDKXt0aGlzLl9oYXNfZGVmYXVsdF9oZWFkZXJz PXRydWU7fWVsc2V7dGhpcy5faGFzX2h0dHBfaGVhZGVycz10cnVlO319LHNldEhl YWRlcjpmdW5jdGlvbihBKXt2YXIgQjtpZih0aGlzLl9oYXNfZGVmYXVsdF9oZWFk ZXJzKXtmb3IoQiBpbiB0aGlzLl9kZWZhdWx0X2hlYWRlcnMpe2lmKFlBSE9PLmxh bmcuaGFzT3duUHJvcGVydHkodGhpcy5fZGVmYXVsdF9oZWFkZXJzLEIpKXtBLmNv bm4uc2V0UmVxdWVzdEhlYWRlcihCLHRoaXMuX2RlZmF1bHRfaGVhZGVyc1tCXSk7 fX19aWYodGhpcy5faGFzX2h0dHBfaGVhZGVycyl7Zm9yKEIgaW4gdGhpcy5faHR0 cF9oZWFkZXJzKXtpZihZQUhPTy5sYW5nLmhhc093blByb3BlcnR5KHRoaXMuX2h0 dHBfaGVhZGVycyxCKSl7QS5jb25uLnNldFJlcXVlc3RIZWFkZXIoQix0aGlzLl9o dHRwX2hlYWRlcnNbQl0pOwp9fXRoaXMuX2h0dHBfaGVhZGVycz17fTt0aGlzLl9o YXNfaHR0cF9oZWFkZXJzPWZhbHNlO319LHJlc2V0RGVmYXVsdEhlYWRlcnM6ZnVu Y3Rpb24oKXt0aGlzLl9kZWZhdWx0X2hlYWRlcnM9e307dGhpcy5faGFzX2RlZmF1 bHRfaGVhZGVycz1mYWxzZTt9LGFib3J0OmZ1bmN0aW9uKEUsRyxBKXt2YXIgRCxC PShHJiZHLmFyZ3VtZW50KT9HLmFyZ3VtZW50Om51bGw7RT1FfHx7fTtpZihFLmNv bm4pe2lmKEUueGhyKXtpZih0aGlzLmlzQ2FsbEluUHJvZ3Jlc3MoRSkpe0UuY29u bi5hYm9ydCgpO3dpbmRvdy5jbGVhckludGVydmFsKHRoaXMuX3BvbGxbRS50SWRd KTtkZWxldGUgdGhpcy5fcG9sbFtFLnRJZF07aWYoQSl7d2luZG93LmNsZWFyVGlt ZW91dCh0aGlzLl90aW1lT3V0W0UudElkXSk7ZGVsZXRlIHRoaXMuX3RpbWVPdXRb RS50SWRdO31EPXRydWU7fX1lbHNle2lmKEUueGRyKXtFLmNvbm4uYWJvcnQoRS50 SWQpO0Q9dHJ1ZTt9fX1lbHNle2lmKEUudXBsb2FkKXt2YXIgQz0ieXVpSU8iK0Uu dElkO3ZhciBGPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKEMpO2lmKEYpe1lBSE9P LnV0aWwuRXZlbnQucmVtb3ZlTGlzdGVuZXIoRiwibG9hZCIpO2RvY3VtZW50LmJv ZHkucmVtb3ZlQ2hpbGQoRik7aWYoQSl7d2luZG93LmNsZWFyVGltZW91dCh0aGlz Ll90aW1lT3V0W0UudElkXSk7ZGVsZXRlIHRoaXMuX3RpbWVPdXRbRS50SWRdO31E PXRydWU7fX1lbHNle0Q9ZmFsc2U7fX1pZihEPT09dHJ1ZSl7dGhpcy5hYm9ydEV2 ZW50LmZpcmUoRSxCKTtpZihFLmFib3J0RXZlbnQpe0UuYWJvcnRFdmVudC5maXJl KEUsQik7fXRoaXMuaGFuZGxlVHJhbnNhY3Rpb25SZXNwb25zZShFLEcsdHJ1ZSk7 fXJldHVybiBEO30saXNDYWxsSW5Qcm9ncmVzczpmdW5jdGlvbihBKXtBPUF8fHt9 O2lmKEEueGhyJiZBLmNvbm4pe3JldHVybiBBLmNvbm4ucmVhZHlTdGF0ZSE9PTQm JkEuY29ubi5yZWFkeVN0YXRlIT09MDt9ZWxzZXtpZihBLnhkciYmQS5jb25uKXty ZXR1cm4gQS5jb25uLmlzQ2FsbEluUHJvZ3Jlc3MoQS50SWQpO31lbHNle2lmKEEu dXBsb2FkPT09dHJ1ZSl7cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ5 dWlJTyIrQS50SWQpP3RydWU6ZmFsc2U7fWVsc2V7cmV0dXJuIGZhbHNlO319fX0s cmVsZWFzZU9iamVjdDpmdW5jdGlvbihBKXtpZihBJiZBLmNvbm4pe0EuY29ubj1u dWxsO0E9bnVsbDt9fX07WUFIT08ucmVnaXN0ZXIoImNvbm5lY3Rpb25fY29yZSIs WUFIT08udXRpbC5Db25uZWN0LHt2ZXJzaW9uOiIyLjguMiIsYnVpbGQ6IjE5In0p OwpZQUhPTy5uYW1lc3BhY2UoImFkcyIpO3ZhciBEb209WUFIT08udXRpbC5Eb207 dmFyIEV2ZW50PVlBSE9PLnV0aWwuRXZlbnQ7dmFyIHVhPVlBSE9PLmVudi51YTt2 YXIgaWU9dWEuaWU7dmFyIGdlY2tvPXVhLmdlY2tvO3ZhciB3ZWJraXQ9dWEud2Vi a2l0O3ZhciBvcGVyYT11YS5vcGVyYTt2YXIgaXNHcmFkZUE9IXBzMyYmIWJiJiYo aWU+PTZ8fGdlY2tvPj0xLjl8fHdlYmtpdD49NTI4fHxvcGVyYT45LjUpO1lBSE9P LmFkcy50b2dnbGVTY3JvbGxCYXJzPWZ1bmN0aW9uKCl7aWYoIURvbS5nZXQoInly ZWdodHh0Iikpe3ZhciBkPURvbS5nZXRSZWdpb24oInlyZWdsZyIpO3ZhciBpPWQu cmlnaHQ7dmFyIGg9ZC50b3A7dmFyIGI9ZC5ib3R0b207dmFyIGc9RG9tLmdldFZp ZXdwb3J0V2lkdGgoKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFt ZSgiaHRtbCIpWzBdO3ZhciBhPSJvdmVyZmxvdy14IixrPSJvdmVyZmxvdy15Ijt2 YXIgYz0idmlzaWJsZSIsaj0iYXV0byIsZj0iaGlkZGVuIjtpZihnPD04MDB8fERv bS5nZXREb2N1bWVudFNjcm9sbExlZnQoKT5pKXtEb20uc2V0U3R5bGUoZSxhLGMp O2lmKGllPDgpe0RvbS5zZXRTdHlsZShlLGEsaik7RG9tLnNldFN0eWxlKGRvY3Vt ZW50LmJvZHksYSxqKX19ZWxzZXtEb20uc2V0U3R5bGUoZSxhLGYpO2lmKGllPDgp e0RvbS5zZXRTdHlsZShlLGEsZik7RG9tLnNldFN0eWxlKGRvY3VtZW50LmJvZHks YSxmKX19aWYoRG9tLmdldFZpZXdwb3J0SGVpZ2h0KCk8KGIrNTApfHxEb20uZ2V0 RG9jdW1lbnRTY3JvbGxUb3AoKT5oKXtEb20uc2V0U3R5bGUoZG9jdW1lbnQuYm9k eSxrLGMpO2lmKGllPDgpe0RvbS5zZXRTdHlsZShlLGssaik7RG9tLnNldFN0eWxl KGRvY3VtZW50LmJvZHksayxqKX19ZWxzZXtEb20uc2V0U3R5bGUoZG9jdW1lbnQu Ym9keSxrLGYpO2lmKGllPDgpe0RvbS5zZXRTdHlsZShlLGssZik7RG9tLnNldFN0 eWxlKGRvY3VtZW50LmJvZHksayxmKX19fX07RXZlbnQuYWRkTGlzdGVuZXIod2lu ZG93LCJyZXNpemUiLFlBSE9PLmFkcy50b2dnbGVTY3JvbGxCYXJzKTtFdmVudC5h ZGRMaXN0ZW5lcih3aW5kb3csImxvYWQiLFlBSE9PLmFkcy50b2dnbGVTY3JvbGxC YXJzKTtZQUhPTy5hZHMuaW5zZXJ0SWZyYW1lPWZ1bmN0aW9uKCl7aWYoZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoInlnbWFhdHRsb2dvIikpe0RvbS5zZXRTdHlsZSgi aWZyYW1lSG9sZGVyIiwidG9wIiwiODBweCIpO3ZhciBhPXBhcnNlSW50KERvbS5n ZXRTdHlsZSgieXJlZ2xnIiwibWFyZ2luLXRvcCIpKTthKz0zMDtEb20uc2V0U3R5 bGUoInlyZWdsZyIsIm1hcmdpbi10b3AiLGErInB4Iil9fTtFdmVudC5vbkF2YWls YWJsZSgiaWZyYW1lSG9sZGVyIixZQUhPTy5hZHMuaW5zZXJ0SWZyYW1lKTtZQUhP Ty5hZHMuYWRNZXRyaWNYSFI9ZnVuY3Rpb24oKXt2YXIgYj17c3VjY2VzczpmdW5j dGlvbigpe30sZmFpbHVyZTpmdW5jdGlvbigpe30sY2FjaGU6ZmFsc2V9O3ZhciBh PVlBSE9PLnV0aWwuQ29ubmVjdC5hc3luY1JlcXVlc3QoIkdFVCIsIi9jb25maWcv bG9nYWQ/cGFkPSIrcGVyY2VpdmVkQWQrIiZhYWQ9IithY3R1YWxBZCsiJmNydW1i PSIrY3J1bWIrIiZ2ZXJpZnk9Iit2ZXJpZnkrIiZpbnRsPSIraW50bCsiJnNyYz0i K3NyYysiJnBhcnRuZXI9IitwYXJ0bmVyLGIpO0RvbS5nZXQoImFhZCIpLnZhbHVl PWFjdHVhbEFkfTtpZihpc0dyYWRlQSl7WUFIT08uYWRzLmlmcmFtZU9yU3RhdGlj PWZ1bmN0aW9uKCl7aWYobG9hZFRpbWUhPW51bGwpe3RyeXtZQUhPTy5hZHMudG9n Z2xlU2Nyb2xsQmFycygpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhZEZyYW1l Iikuc3R5bGUudmlzaWJpbGl0eT0idmlzaWJsZSI7d2luZG93LmNsZWFySW50ZXJ2 YWwoaW50ZXJ2YWwpO1lBSE9PLmFkcy5hZE1ldHJpY1hIUigpfWNhdGNoKGEpe3Jl dHVybiBmYWxzZX19ZWxzZXtpZih0eXBlb2YoaW50ZXJ2YWwpPT09InVuZGVmaW5l ZCIpe2ludGVydmFsPXdpbmRvdy5zZXRJbnRlcnZhbChZQUhPTy5hZHMuaWZyYW1l T3JTdGF0aWMsMTAwKX12YXIgYj13aW5kb3cudGltZW91dExpbWl0O2lmKHR5cGVv ZihiKT09InVuZGVmaW5lZCJ8fGI9PW51bGwpe2I9MzAwMH1pZihuZXcgRGF0ZSgp LmdldFRpbWUoKT49KHN0YXJ0VGltZStiKSl7dHJ5e3dpbmRvdy5jbGVhckludGVy dmFsKGludGVydmFsKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWZyYW1lSG9s ZGVyIikuaW5uZXJIVE1MPSIiO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGF0 aWMiKS5zdHlsZS5kaXNwbGF5PSJibG9jayI7YWN0dWFsQWQ9NjtZQUhPTy5hZHMu YWRNZXRyaWNYSFIoKX1jYXRjaChhKXtyZXR1cm4gZmFsc2V9fX19O0V2ZW50Lm9u QXZhaWxhYmxlKCJhZEZyYW1lIixZQUhPTy5hZHMuaWZyYW1lT3JTdGF0aWMpfWVs c2V7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFkRnJhbWUiKS5zdHlsZS5kaXNw bGF5PSJub25lIjtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhdGljIikuc3R5 bGUuZGlzcGxheT0iYmxvY2sifTsKZnVuY3Rpb24gaXNDYXBzbG9jayhmKXtpZigh Zil7dmFyIGY9d2luZG93LmV2ZW50fXZhciBkPWZhbHNlO2lmKGYua2V5Q29kZSl7 ZD1mLmtleUNvZGV9ZWxzZXtpZihmLndoaWNoKXtkPWYud2hpY2h9fXZhciBlPWZh bHNlO2lmKGYuc2hpZnRLZXkpe2U9Zi5zaGlmdEtleX1pZihkPj05NyYmZDw9MTIy JiZlKXtyZXR1cm4gdHJ1ZX1pZihkPj02NSYmZDw9OTAmJiFlKXtyZXR1cm4gdHJ1 ZX1yZXR1cm4gZmFsc2V9dmFyIGZjMT1Eb20uZ2V0KCJmYzEiKTt2YXIgcGFzc3dk PURvbS5nZXQoInBhc3N3ZCIpO0V2ZW50Lm9uKHBhc3N3ZCwia2V5cHJlc3MiLGZ1 bmN0aW9uKGIpe2lmKGlzQ2Fwc2xvY2soYikpe3h5PURvbS5nZXRYWShwYXNzd2Qp O3h5WzBdLT0yNzA7eHlbMV0tPTQwO0RvbS5zZXRYWShmYzEseHkpO0RvbS5zZXRT dHlsZShmYzEsInZpc2liaWxpdHkiLCJ2aXNpYmxlIil9ZWxzZXtEb20uc2V0U3R5 bGUoZmMxLCJ2aXNpYmlsaXR5IiwiaGlkZGVuIil9fSk7CnZhciBoZXhfY2hyPSIw MTIzNDU2Nzg5YWJjZGVmIjtmdW5jdGlvbiByaGV4KGEpe3N0cj0iIjtmb3Ioaj0w O2o8PTM7aisrKXtzdHIrPWhleF9jaHIuY2hhckF0KChhPj4oaio4KzQpKSYxNSkr aGV4X2Noci5jaGFyQXQoKGE+PihqKjgpKSYxNSl9cmV0dXJuIHN0cn1mdW5jdGlv biBzdHIyYmxrc19NRDUoYSl7bmJsaz0oKGEubGVuZ3RoKzgpPj42KSsxO2Jsa3M9 bmV3IEFycmF5KG5ibGsqMTYpO2ZvcihpPTA7aTxuYmxrKjE2O2krKyl7Ymxrc1tp XT0wfWZvcihpPTA7aTxhLmxlbmd0aDtpKyspe2Jsa3NbaT4+Ml18PWEuY2hhckNv ZGVBdChpKTw8KChpJTQpKjgpfWJsa3NbaT4+Ml18PTEyODw8KChpJTQpKjgpO2Js a3NbbmJsayoxNi0yXT1hLmxlbmd0aCo4O3JldHVybiBibGtzfWZ1bmN0aW9uIGFk ZChhLGQpe3ZhciBjPShhJjY1NTM1KSsoZCY2NTUzNSk7dmFyIGI9KGE+PjE2KSso ZD4+MTYpKyhjPj4xNik7cmV0dXJuKGI8PDE2KXwoYyY2NTUzNSl9ZnVuY3Rpb24g cm9sKGEsYil7cmV0dXJuKGE8PGIpfChhPj4+KDMyLWIpKX1mdW5jdGlvbiBjbW4o aCxlLGQsYyxnLGYpe3JldHVybiBhZGQocm9sKGFkZChhZGQoZSxoKSxhZGQoYyxm KSksZyksZCl9ZnVuY3Rpb24gZmYoZyxmLG0sbCxlLGssaCl7cmV0dXJuIGNtbigo ZiZtKXwoKH5mKSZsKSxnLGYsZSxrLGgpfWZ1bmN0aW9uIGdnKGcsZixtLGwsZSxr LGgpe3JldHVybiBjbW4oKGYmbCl8KG0mKH5sKSksZyxmLGUsayxoKX1mdW5jdGlv biBoaChnLGYsbSxsLGUsayxoKXtyZXR1cm4gY21uKGZebV5sLGcsZixlLGssaCl9 ZnVuY3Rpb24gaWkoZyxmLG0sbCxlLGssaCl7cmV0dXJuIGNtbihtXihmfCh+bCkp LGcsZixlLGssaCl9ZnVuY3Rpb24gTUQ1KG0pe3g9c3RyMmJsa3NfTUQ1KG0pO3Zh ciBvPTE3MzI1ODQxOTM7dmFyIG49LTI3MTczMzg3OTt2YXIgbD0tMTczMjU4NDE5 NDt2YXIgaz0yNzE3MzM4Nzg7Zm9yKGk9MDtpPHgubGVuZ3RoO2krPTE2KXt2YXIg aD1vO3ZhciBnPW47dmFyIGY9bDt2YXIgZT1rO289ZmYobyxuLGwsayx4W2krMF0s NywtNjgwODc2OTM2KTtrPWZmKGssbyxuLGwseFtpKzFdLDEyLC0zODk1NjQ1ODYp O2w9ZmYobCxrLG8sbix4W2krMl0sMTcsNjA2MTA1ODE5KTtuPWZmKG4sbCxrLG8s eFtpKzNdLDIyLC0xMDQ0NTI1MzMwKTtvPWZmKG8sbixsLGsseFtpKzRdLDcsLTE3 NjQxODg5Nyk7az1mZihrLG8sbixsLHhbaSs1XSwxMiwxMjAwMDgwNDI2KTtsPWZm KGwsayxvLG4seFtpKzZdLDE3LC0xNDczMjMxMzQxKTtuPWZmKG4sbCxrLG8seFtp KzddLDIyLC00NTcwNTk4Myk7bz1mZihvLG4sbCxrLHhbaSs4XSw3LDE3NzAwMzU0 MTYpO2s9ZmYoayxvLG4sbCx4W2krOV0sMTIsLTE5NTg0MTQ0MTcpO2w9ZmYobCxr LG8sbix4W2krMTBdLDE3LC00MjA2Myk7bj1mZihuLGwsayxvLHhbaSsxMV0sMjIs LTE5OTA0MDQxNjIpO289ZmYobyxuLGwsayx4W2krMTJdLDcsMTgwNDYwMzY4Mik7 az1mZihrLG8sbixsLHhbaSsxM10sMTIsLTQwMzQxMTAxKTtsPWZmKGwsayxvLG4s eFtpKzE0XSwxNywtMTUwMjAwMjI5MCk7bj1mZihuLGwsayxvLHhbaSsxNV0sMjIs MTIzNjUzNTMyOSk7bz1nZyhvLG4sbCxrLHhbaSsxXSw1LC0xNjU3OTY1MTApO2s9 Z2coayxvLG4sbCx4W2krNl0sOSwtMTA2OTUwMTYzMik7bD1nZyhsLGssbyxuLHhb aSsxMV0sMTQsNjQzNzE3NzEzKTtuPWdnKG4sbCxrLG8seFtpKzBdLDIwLC0zNzM4 OTczMDIpO289Z2cobyxuLGwsayx4W2krNV0sNSwtNzAxNTU4NjkxKTtrPWdnKGss byxuLGwseFtpKzEwXSw5LDM4MDE2MDgzKTtsPWdnKGwsayxvLG4seFtpKzE1XSwx NCwtNjYwNDc4MzM1KTtuPWdnKG4sbCxrLG8seFtpKzRdLDIwLC00MDU1Mzc4NDgp O289Z2cobyxuLGwsayx4W2krOV0sNSw1Njg0NDY0MzgpO2s9Z2coayxvLG4sbCx4 W2krMTRdLDksLTEwMTk4MDM2OTApO2w9Z2cobCxrLG8sbix4W2krM10sMTQsLTE4 NzM2Mzk2MSk7bj1nZyhuLGwsayxvLHhbaSs4XSwyMCwxMTYzNTMxNTAxKTtvPWdn KG8sbixsLGsseFtpKzEzXSw1LC0xNDQ0NjgxNDY3KTtrPWdnKGssbyxuLGwseFtp KzJdLDksLTUxNDAzNzg0KTtsPWdnKGwsayxvLG4seFtpKzddLDE0LDE3MzUzMjg0 NzMpO249Z2cobixsLGssbyx4W2krMTJdLDIwLC0xOTI2NjA3NzM0KTtvPWhoKG8s bixsLGsseFtpKzVdLDQsLTM3ODU1OCk7az1oaChrLG8sbixsLHhbaSs4XSwxMSwt MjAyMjU3NDQ2Myk7bD1oaChsLGssbyxuLHhbaSsxMV0sMTYsMTgzOTAzMDU2Mik7 bj1oaChuLGwsayxvLHhbaSsxNF0sMjMsLTM1MzA5NTU2KTtvPWhoKG8sbixsLGss eFtpKzFdLDQsLTE1MzA5OTIwNjApO2s9aGgoayxvLG4sbCx4W2krNF0sMTEsMTI3 Mjg5MzM1Myk7bD1oaChsLGssbyxuLHhbaSs3XSwxNiwtMTU1NDk3NjMyKTtuPWho KG4sbCxrLG8seFtpKzEwXSwyMywtMTA5NDczMDY0MCk7bz1oaChvLG4sbCxrLHhb aSsxM10sNCw2ODEyNzkxNzQpO2s9aGgoayxvLG4sbCx4W2krMF0sMTEsLTM1ODUz NzIyMik7bD1oaChsLGssbyxuLHhbaSszXSwxNiwtNzIyNTIxOTc5KTtuPWhoKG4s bCxrLG8seFtpKzZdLDIzLDc2MDI5MTg5KTtvPWhoKG8sbixsLGsseFtpKzldLDQs LTY0MDM2NDQ4Nyk7az1oaChrLG8sbixsLHhbaSsxMl0sMTEsLTQyMTgxNTgzNSk7 bD1oaChsLGssbyxuLHhbaSsxNV0sMTYsNTMwNzQyNTIwKTtuPWhoKG4sbCxrLG8s eFtpKzJdLDIzLC05OTUzMzg2NTEpO289aWkobyxuLGwsayx4W2krMF0sNiwtMTk4 NjMwODQ0KTtrPWlpKGssbyxuLGwseFtpKzddLDEwLDExMjY4OTE0MTUpO2w9aWko bCxrLG8sbix4W2krMTRdLDE1LC0xNDE2MzU0OTA1KTtuPWlpKG4sbCxrLG8seFtp KzVdLDIxLC01NzQzNDA1NSk7bz1paShvLG4sbCxrLHhbaSsxMl0sNiwxNzAwNDg1 NTcxKTtrPWlpKGssbyxuLGwseFtpKzNdLDEwLC0xODk0OTg2NjA2KTtsPWlpKGws ayxvLG4seFtpKzEwXSwxNSwtMTA1MTUyMyk7bj1paShuLGwsayxvLHhbaSsxXSwy MSwtMjA1NDkyMjc5OSk7bz1paShvLG4sbCxrLHhbaSs4XSw2LDE4NzMzMTMzNTkp O2s9aWkoayxvLG4sbCx4W2krMTVdLDEwLC0zMDYxMTc0NCk7bD1paShsLGssbyxu LHhbaSs2XSwxNSwtMTU2MDE5ODM4MCk7bj1paShuLGwsayxvLHhbaSsxM10sMjEs MTMwOTE1MTY0OSk7bz1paShvLG4sbCxrLHhbaSs0XSw2LC0xNDU1MjMwNzApO2s9 aWkoayxvLG4sbCx4W2krMTFdLDEwLC0xMTIwMjEwMzc5KTtsPWlpKGwsayxvLG4s eFtpKzJdLDE1LDcxODc4NzI1OSk7bj1paShuLGwsayxvLHhbaSs5XSwyMSwtMzQz NDg1NTUxKTtvPWFkZChvLGgpO249YWRkKG4sZyk7bD1hZGQobCxmKTtrPWFkZChr LGUpfXJldHVybiByaGV4KG8pK3JoZXgobikrcmhleChsKStyaGV4KGspfWZ1bmN0 aW9uIHZhbGlkX2pzKCl7aWYobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJN b3ppbGxhLyIpPT0wKXtyZXR1cm4ocGFyc2VJbnQobmF2aWdhdG9yLmFwcFZlcnNp b24pPj00KX1yZXR1cm4gZmFsc2V9ZnVuY3Rpb24gaGFzaChlLGEpe3ZhciBjO2lm KGFyZ3VtZW50cy5sZW5ndGg+MSYmYSE9IiIpe2M9YX1lbHNle2M9Imh0dHA6Ly9s b2dpbi55YWhvby5jb20vY29uZmlnL2xvZ2luIn1jKz0iPyI7aWYodmFsaWRfanMo KSl7dmFyIGI9ZS5wYXNzd2QudmFsdWU7dmFyIGQ9ZVsiLmNoYWxsZW5nZSJdLnZh bHVlO3ZhciBoPU1ENShlLnBhc3N3ZC52YWx1ZSkrZDt2YXIgZztpZihlLnBhc3N3 ZC52YWx1ZSl7Zz1NRDUoaCl9ZWxzZXtnPSIifXZhciBmPTA7Zm9yKGk9MDtpPGUu ZWxlbWVudHMubGVuZ3RoO2krKyl7aWYodHlwZW9mKGUuZWxlbWVudHNbaV0ubmFt ZSk9PSJ1bmRlZmluZWQifHxlLmVsZW1lbnRzW2ldLm5hbWUubGVuZ3RoPD0wKXtj b250aW51ZX1pZihpPjApe2MrPSImIn1jKz1lLmVsZW1lbnRzW2ldLm5hbWU7Yys9 Ij0iO2lmKGUuZWxlbWVudHNbaV0ubmFtZT09InBhc3N3ZCIpe2MrPWd9ZWxzZXtp ZihlLmVsZW1lbnRzW2ldLnR5cGU9PSJjaGVja2JveCImJiFlLmVsZW1lbnRzW2ld LmNoZWNrZWQpe2MrPSIifWVsc2V7aWYoZS5lbGVtZW50c1tpXS50eXBlPT0icmFk aW8iJiYhZS5lbGVtZW50c1tpXS5jaGVja2VkKXtjKz0iIn1lbHNle2lmKGUuZWxl bWVudHNbaV0ubmFtZT09Ii5zYXZlIil7Yys9IjEifWVsc2V7aWYoZS5lbGVtZW50 c1tpXS5uYW1lPT0iLmpzIil7Zj0xO2MrPSIxIn1lbHNle2MrPWVzY2FwZShlLmVs ZW1lbnRzW2ldLnZhbHVlKX19fX19fWMrPSImLmhhc2g9MSI7aWYoZj09MCl7Yys9 IiYuanM9MSJ9Yys9IiYubWQ1PTEiO2xvY2F0aW9uLmhyZWY9YztlLm9uc3VibWl0 PW51bGw7cmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfWZ1bmN0aW9uIG9rX3Bhc3N3 b3JkKGIpe3ZhciBjPWIubGVuZ3RoO3ZhciBhPSIiO2ZvcihpPTA7aTxjO2krKyl7 YT1iLmNoYXJDb2RlQXQoaSk7aWYoYTwzMnx8YT4xMjYpe3JldHVybiBmYWxzZX19 cmV0dXJuIHRydWV9ZnVuY3Rpb24gaGFzaDIoZSl7dmFyIGI9ZS5wYXNzd2QudmFs dWU7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTthLnR5cGU9 ImhpZGRlbiI7YS5uYW1lPSJwYXNzd2RfcmF3IjtlLmFwcGVuZENoaWxkKGEpO2lm KCFlLnBhc3N3ZC52YWx1ZSl7cmV0dXJuIGZhbHNlfWlmKG9rX3Bhc3N3b3JkKGIp KXtyZXR1cm4gdHJ1ZX12YXIgYz1lWyIuY2hhbGxlbmdlIl0udmFsdWU7dmFyIGQ9 TUQ1KE1ENShiKStjKTtlLnBhc3N3ZC52YWx1ZT1kO2EudmFsdWU9YjtlWyIubWQ1 Il0udmFsdWU9MTtlWyIuaGFzaCJdLnZhbHVlPTE7ZVsiLmpzIl0udmFsdWU9MTty ZXR1cm4gdHJ1ZX07 ------------meq23nx4zrtJAW71aMZ2Ak--