Content-Type: multipart/related; start=; boundary=----------Ce2ljQkrvPB47m7td0y2SP Content-Location: http://www.p-interactive.com/site-marburg/index.html Subject: =?utf-8?Q?Marburg?= MIME-Version: 1.0 ------------Ce2ljQkrvPB47m7td0y2SP Content-Disposition: inline; filename=index.html Content-Type: text/html; charset=utf-8; name=index.html Content-Id: Content-Location: http://www.p-interactive.com/site-marburg/index.html Content-Transfer-Encoding: 8bit GIPS DEKOR CENTAR - BIJELJINA In order to use this application, you need to enable JavaScript in your web browser and reload this page. ------------Ce2ljQkrvPB47m7td0y2SP Content-Disposition: inline; filename=general.css Content-Type: text/css; charset=utf-8; name=general.css Content-Location: http://www.p-interactive.com/site-marburg/css/general.css Content-Transfer-Encoding: 8bit /* Copyright (C) 2008. All rights reserved. */ /* general styles */ * { overflow:hidden; margin:0px; padding:0px; list-style:none; border:none; } img { position:absolute; } div { position:absolute; } body { position:absolute; margin:0px; padding:0px; top:0px; left:0px; width:100%; height:100%; overflow:auto; text-align:center; } div.inside-body { position:relative; margin:0px auto; padding:0px; top:0px; /* NOTE: "left:0px;" disables centering */ width:100%; height:100%; text-align:left; overflow:hidden; } /* utility styles */ div.centered { position:relative; text-align:center; } .hidden { visibility:hidden; } ------------Ce2ljQkrvPB47m7td0y2SP Content-Disposition: inline; filename=marburg.css Content-Type: text/css; charset=utf-8; name=marburg.css Content-Location: http://www.p-interactive.com/site-marburg/css/marburg.css Content-Transfer-Encoding: 8bit /* Copyright (C) 2008. All rights reserved. */ body { background-color:#171717; background:url(images/layout/layout-bg.png) left top repeat #0e0801; } div.inside-body { background-color:#171717; /* NOTE: "left:0px;" disables centering */ width:990px; /* height:630px; */ } /* for "startup.html" */ img.startup-launching-page { width:990px; height:630px; top:0px; left:0px; overflow:hidden; border:none; } /* */ img.layout-header { /* width:990px; height:124px; top:0px; left:0px; */ width:306px; top:0px; left:85px; } img.layout-bg { /* width:990px; height:506px; top:124px; left:0px; */ width:990px; height:630px; top:0px; left:0px; overflow:hidden; } img.layout-loading { width:32px; height:32px; /* top:361px; left:479px; */ top:299px; left:592px; } .cursor-paint-none { cursor:url(/site-marburg/images/layout/cursor-not-paintable.cur),help; } .cursor-paint-texture { cursor:url(/site-marburg/images/layout/cursor-paintbrush.cur),pointer; } .cursor-paint-color { cursor:url(/site-marburg/images/layout/cursor-paintbucket.cur),pointer; } div.scenes-panel { /* width:165px; width:175px; top:170px; left:155px; width:173px; height:265px; overflow:auto; height:465px; width:119px; height:420px; top:147px; width:120px; line-height:18px; width:160px; height:420px; */ width:160px; height:440px; top:165px; left:231px; /* background-color:#ff0000; ** FIXME: TODO */ overflow:hidden; line-height:18px; } img.scenes-panel-thumbnail { position:relative; /* margin-right:5px; margin-bottom:5px; */ margin:0 3px 3px 0; padding:0; cursor:pointer; border:1px solid #eeeeee; } div.textures-panel { /* FIXME: TODO: final "top" position (with title): -=5px; */ top:150px; /* FIXME */ left:855px; /* left:865px; top:145px; left:885px; top:150px; left:875px; */ /* width:132px; width:115px; height:445px; FIXME: should be 6*71px + 5*4px width:95px; */ width:105px; height:453px; /* background-color:#ffffff; */ line-height:20px; /* FIXME: TODO */ overflow:hidden; } div.textures-panel-maximized { /* background-color:#eff0f1; padding:10px 10px 10px 10px; */ padding:0; left:228px; /* 990 - width */ width:730px; /* multiple of gridOffsetX + gridOffsetLeft */ /* width:725px; left:150px; left:155px; width:825px; */ } div.textures-panel-maximized-background { top:0px; /* start 1px below "img.layout-header" */ height:630px; /* down to size of page; FIXME: 630px-0px */ left:229px; /* start 2px left of scenes-panel */ width:760px; /* top:125px; height:505px; left:155px; width:825px; */ background-color:#ffffff; visibility:hidden; } img.textures-panel-scroll-backward-button { /* left:935px; top:590px; left:880px; left:865px; */ top:600px; left:915px; cursor:pointer; } img.textures-panel-scroll-forward-button { /* top:590px; left:955px; */ top:600px; left:940px; cursor:pointer; } img.textures-panel-maximize-button { top:600px; left:865px; cursor:pointer; } img.textures-panel-thumbnail { /* position:relative; */ margin-bottom:4px; cursor:pointer; border:1px solid #eeeeee; } img.textures-panel-zoom-icon { top:0px; left:0px; cursor:pointer; visibility:hidden; } div.scene-container { /* FIXME: TODO */ /* border:solid 2px blue; top:130px; left:352px; width:487px; height:327px; left:352px; */ top:28px; left:397px; width:487px; height:450px; overflow:hidden; } img.scene-image { /* FIXME: TODO */ /* border:solid 2px red; */ top:0px; left:0px; } img.secondary-scene-image { /* FIXME: TODO */ /* border:solid 10px green; */ top:0px; left:0px; cursor:wait; } div.scene-fader { /* background-color:#000000; */ visibility:hidden; } img.scene-loading { width:16px; height:16px; left:835px; top:610px; /* left:825px; top:480px; left:805px; top:458px; left:842px; top:442px; width:32px; height:32px; left:581px; top:269px; */ /* width:63px; height:11px; left:360px; top:435px; */ visibility:hidden; } img.scene-zoom-icon { top:0px; left:0px; cursor:pointer; visibility:hidden; } div.details-panel-container { /* background-color:#00ff00; ** FIXME: TODO */ /* width:490px; height:150px; top:472px; left:347px; top:502px; width:105px; left:347px; height:150px; */ width:505px; height:160px; top:472px; left:392px; /* FIXME: ??? */ overflow:auto; visibility:hidden; } div.details-panel-color-1 { border:1px solid #eeeeee; position:absolute; left:5px; top:14px; width:39px; height:18px; cursor:pointer; visibility:hidden; } div.details-panel-color-2 { border:1px solid #eeeeee; position:absolute; /* left:53px; */ left:57px; top:14px; width:39px; height:18px; cursor:pointer; visibility:hidden; } div.details-panel-color-3 { border:1px solid #eeeeee; position:absolute; /* left:101px; */ left:109px; top:14px; width:39px; height:18px; cursor:pointer; visibility:hidden; } div.details-panel-color-4 { border:1px solid #eeeeee; position:absolute; /* left:149px; */ left:161px; top:14px; width:39px; height:18px; cursor:pointer; visibility:hidden; } div.details-panel-color-5 { border:1px solid #eeeeee; position:absolute; /* left:197px; */ left:213px; top:14px; width:39px; height:18px; cursor:pointer; visibility:hidden; } /* FIXME: TODO (REMOVE WHEN DONE) */ .tmp-dptinfo-1 { left:0px; } .tmp-dptinfo-2 { left:100px; } .tmp-dptinfo-3 { left:200px; } .tmp-dptinfo-4 { left:300px; } /*.tmp-dptinfo-5 { left:400px; }*/ img.details-panel-texture-thumbnail { /* FIXME: TODO */ border:1px solid #eeeeee; position:absolute; /* left:0px; */ top:40px; margin: 0 5px 0 5px; visibility:hidden; } p.details-panel-texture-thumbnail-text-prodcat { /* FIXME: TODO */ margin-left:2px; position:absolute; /* left:0px; */ top:118px; width:101px; height:15px; line-height:11px; text-align:center; font-size:11px; font-family:Arial,Helvetica,Verdana,sans-serif; visibility:hidden; } p.details-panel-texture-thumbnail-text-prodname { /* FIXME: TODO */ margin-left:2px; position:absolute; /* left:0px; height:15px; */ top:130px; width:101px; height:30px; line-height:14px; text-align:center; font-size:14px; font-family:Arial,Helvetica,Verdana,sans-serif; /* font-weight:bold; */ visibility:hidden; } div.scene-zoom-container { top:0px; left:0px; width:990px; height:630px; overflow:hidden; visibility:hidden; } div.scene-zoom-background { top:0px; left:0px; width:990px; height:630px; overflow:hidden; background-color:#171717; visibility:hidden; } img.scene-zoom-loading { width:126px; height:22px; left:432px; top:304px; visibility:hidden; } img.scene-zoom-image { /* top:0px; */ bottom:0px; left:0px; cursor:pointer; visibility:hidden; } img.scene-zoom-buttonbar { top:0px; left:0px; width:990px; height:22px; cursor:pointer; } .scene-zoom-close-on-click { cursor:pointer; } div.texture-zoom-container { /* top:0px; left:261px; width:718px; height:630px; left:228px; */ top:0px; left:229px; width:750px; height:630px; overflow:hidden; /* background-color:#ffffff; */ /* left:155px; height:630px; border:1px solid #0c0c0c; */ /* border-left:1px solid #0c0c0c; border-right:1px solid #0c0c0c; border-bottom:1px solid #0c0c0c; */ border:none; visibility:hidden; } div.texture-zoom-background { top:0px; left:0px; /* width:718px; */ width:765px; height:630px; overflow:hidden; background-color:#ffffff; visibility:hidden; } img.texture-zoom-loading { /* width:126px; height:22px; left:296px; top:293px; left:343px; */ width:32px; height:32px; left:366px; top:288px; visibility:hidden; } img.texture-zoom-image { /* margin-top:22px; top:0px; left:0px; */ margin-top:22px; bottom:0px; left:110px; cursor:pointer; visibility:hidden; } div.texture-zoom-overlay-container { margin-top:22px; width:198px; height:250px; /* height:186px; width:194px; height:182px; left:504px; top:406px; left:20px; */ left:130px; bottom:20px; border:1px solid #333333; border-top:9px solid #333333; cursor:pointer; visibility:hidden; } img.texture-zoom-overlay-image { width:194px; height:246px; left:0px; top:0px; border:2px solid white; /* height:182px; border:2px solid white; */ } div.texture-zoom-overlay-cutrect { width:131px; /* = 718/1064 * 194px */ height:111px; /* = 608/1064 * 194px */ /* left:2px; top:2px; border:1px transparent; */ border:1px solid #ee0000; visibility:hidden; } img.texture-zoom-buttonbar { top:0px; right:0px; /* left:0px; width:718px; */ width:750px; height:22px; cursor:pointer; } .scene-texture-close-on-click { cursor:pointer; } .visible-always { visibility:visible; } .visible-during-relayout { visibility:visible; } .visible-after-initial-relayout { visibility:hidden; } .hover-tmp { border:1px solid black !important; } ------------Ce2ljQkrvPB47m7td0y2SP Content-Disposition: inline; filename=default.css Content-Type: text/css; charset=utf-8; name=default.css Content-Location: http://www.p-interactive.com/site-marburg/css/ Content-Transfer-Encoding: 8bit /* Copyright (C) 2008. All rights reserved. */ @import url(general.css); @import url(marburg.css); ------------Ce2ljQkrvPB47m7td0y2SP Content-Disposition: inline; filename=layout-header.png Content-Type: image/png; name=layout-header.png Content-Location: http://www.p-interactive.com/site-marburg/images/layout/layout-header.png Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAPAAA/+4ADkFkb2Jl AGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoKDBAMDAwMDAwQ DA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AA EQgAZAEyAwERAAIRAQMRAf/EALEAAAEFAQEBAQAAAAAAAAAAAAAEBQYHCAMBAgkB AQEBAQAAAAAAAAAAAAAAAAABAgMQAAEDAwMBBQQDBw4JCQkAAAECAwQAEQUSBgch MUEiExRRYTIIcTMVgZFCI5TUFqGxwVJicrKzJDRUdFUXgpLCQ1N1NlY30eGi0pO0 NRg4c4Oj02SEpGVGEQEBAAICAgEDAwUBAQAAAAAAARECITFBElHwYXGBMgORscHh E9Hx/9oADAMBAAIRAxEAPwDOi1rWtS1qKlqJUpRNySepJNB5QFAUBQFAUBQFAUBQ FAUBQFAUBQFAUBQFAUBQFAUBQFAUBQFAUBQFAUBQFAUBQFAUEvg5lmDtuE+wG2iF OxpSfQwpC1PJPmocLz6VOaVIc0hP7g1ludZIl7ghKRdWpTpJJ/kcEJuf/dmnqe3J 0yeZxseHjJDKVtuyYpWT6LHhs2dcaV4Uti9y330wvtDZC3NHbKlu60uf5ssR4SR0 9oLXSmE9o+3t0x1qBSZA1fWlKIjZ+5oZ61PVfcpY3Rgg0Y7vryyVFetKYJXc+9TJ V/0qsiXZ8ncW3EKX5RyWhYsrUYfX7nkkCrhPZ8HdEBP1L05vTfQEpipsD3EpbFZ9 W/8Ao4HdKQsqS5JUVfEXPTq/XaNPUu8+7qjeCkKOh6S2DbxITFSq4+hofr1cVLtP uHN6Slk6pU1Y1FQ1LZ7Ta/8Amjbs7Kl1XXeT5Kd3QtwjBwpuVZeitvqSuMzLcjNu uNuIKkuojIS0/oIH1hTpPtqxN7x5Q6tOYoCgKCR7W473nutl57b2McyDcdQQ8W1N gpJFxcKUk1Mrjyff7g+X/wDdmT/jNf8AXq5MOa+CeW0oK/0akqSnt0FtZ+8lZNTJ hE8zt7O4SQI+Xx8jHvnqG5LamyR7tQF6ZLrYb6qLAjcCcsyo7ciPgHHWHUhbbiXW CClQuD8dTK+rofl85fHbt10fS6wP8umTDlL4F5ZiRXpcjb7rceO2p15wuMkJQhJU o9F9wFMrNc3CM7W2fuLdU5yBgYhmzG2y6plKkIOgEC41lN+p7KZSa8ZStPy+8wK/ /nHx9LjI/wAumTCKbn2huHa+TTjM5EMOctCXQyVoWdKiUgkoKgOqTTK+tSpv5fuX XEJcb2+6pCwFJUHWSCD2H46ZPUwbt453ltFuO5uHHKgJlKUljUttRUUAE9EKUR29 9MnrxkxQoUydJbiw2FyJLp0tstJK1qJ9gFXKSWp4ngbkZDDTs6LFxfnC7TeQmRoq 1fQlxaTU9mvS+HDcXB3JuAg/aEzDrfghOtUmGtElCU2vqPlFRt7+ymUmuekDqspb tbirfm6serIYDGKnRUrLalocaBCk2uClSgrv9lTLc0+54Py98vJF1bfcAHaS6yB/ Dpk9J8wmncF8sQmFPu7blLaSLks6Hjb22bUo0yen3iCutOtOKadQptxBKVoUCFAj oQQeyqzZh80QUDlishGbZfgT/MVjpRStflWK23mwoNvISogKKdZBSSLpJ6g2IlWU qa2pJmtPP4mXGnsx0F18eYmO622CE6ltvlvvUB4SoX76ZX1THanEmY3jg0OpyuPx KsStUVwZJ/y21JdJeb8paA4lRuperr7KmVuvB3V8tc1Jsreu20n2GYof5FXMT1vw 8d+WvItpCv0z20E+1c1SR/FmmUkcf/Lu8kkO762sgju9ef2UCmV9Xrfy+R1dFcg7 X1exM4K/YFMl1dj8vWLQkF3kXbaCf/qkW++VCqy4ngDH3OnkXa5HcTOSP+WplrEO 23NhYnbM+OxC3JiMjLlh5T+chxm80Y+jy0MxGIqypsPSFuqOpwdQmyDe4VLWpPg2 ZfDccZTycmvJwGkIdefkZHGMvRlyERfLU4y9j3z5bMmSHLshmzepKh1BuiLidmXe m1W2tnSt0ZuQsbzm5wok49clp5xmI+wt5HqGkguNOlaT0WQbD4RWozsriqwKAoCg kXHmSnY7fGClQnlMvJnRxqQSm6VOJSpJt3KBsRUsa0vLXXzQZGbB4lmGI8thT8mO y6pBKSW1LupNx3HT1pYa3HLHGE3VuTBTm5+IyUiFKbIKXGnFC9u5QvZQ9xFqesX/ AKXy11xLvTD8y7JmYnd0GPLyUApbnoKLJWhwHy5DdurazpIOg9COlr2oZxzGaOY+ OlbB3tJwzSlu411CZOMfctqUw5cWUR0KkKSpBPfa/fSM2eVtfJrkZpye4sep5aof kMvpYJJSHAsp1AdxIPWi22xHPmzmS0coMtoeWltONj6UBRAF1uXsL0xF9rJwj3Ef Ls3bMqdi83NkPbZykR+PIYJU8WnFtKDbjSSeh1HSq3cfdUs+Gtds3lWjbrjTgcaW pC0G6FpJBBHYQRVwxLi8N5xc5klcGJzK3lKyX6PGQZN/GXREJ8y/7bV1vUvTWszv PywzicVmNwZiPjYDTkzIzXAhpsXUpSlHtJP3yavETN2vNW/uflZ3Ym1muOtkZFbz 8fV9t7gSsqJkL+tahn8FCSLax9z21mR0325ze/rtTWrI5SchCluS5kpwJSVqK1rc WbDqbkkk1riOebtcNg7a2ZgOFuMJu5ZUduTuNqL5kmQ51JkOWS2w2e1KNagDbt7a l4Wc3HhkbcG4szuDLSMtl5S5c6SorcdWSe3sSkfgpHcB0FWapt/Jb9ot35aeV8ng 90xtq5GSp3A5dfkstuKKhHkq+rU3f4UrPhUPoNTGDPt32lHzP8N46HDXvnAsCP8A jEpzcRsAN/jCEokISPhOrov23B9tOj90+6n+FspOgcobcXFeW15k1tlwJUQFIdOh SVDvBBpYum15njF/s0X83cuSxx5j0MuqbS9km0uhJI1AMuKANu3qL02mT+PayWz4 /wAq4+VjkTPR94t7TkynJGHyLbqmWHFFQZebTrCm7/CFBJBFMYLtdpc9w9fN/s3E RTid0xGksTpjq4k/QAPO0p1tuKA/CFiCe8W9lOqd6/hmqtOYoCgUQchOgPiRBkOR nwCnzGlFCtJ7RcW6HvFFlwuHifMyc3yBtJvLstZNnL+oj5SFJZacZe9M255MhTZR p1oCra7X8J63Kqz5bvTVX93HHn+6+I/II3/y605mDcEHhPAuiNPwWHVkFAFrGRsa xJmLv8OmOy0tyx9pFvfU4amTP6GNMQHMLw/E9OfgcyreNx5t06+SESHU9/xJFF/V 9JxWZjJK3+JMI60ggFEKTCW7p7ylD0aOg/RrFE/V5H3pxU3ITB3RtQbUfcIS2czj WWoziu8NyUBxg29pUKGE5g7V2DKjIkwcPin4rw1NvMRoy21j2pUlJBpiHtX3k9rY D7Lmpj4phDq47iEGM0029coIHlr0+FX7U9xphJWMsXPistYdqcxGb+yZjLjnlx24 8wKiKKXo8tLaU63Wxd5pahdY1p1FXhTl1kNu5d2w1bDibMfxDTObxuQXJfzjCkH1 jag6UqcITqdP40aF6iCns7a1GNkFqsCgKAoHjZ3+1uE/r8b+OTUqztrz5rf+Ej39 ei/rqpSMV1UXp8oUx5rkSfFST5UnHOFxPddt1BSf1TU8tTpKfnOjRw3tWTYeoJmN lXS5QAyofeJp5PBr+TX/AGj3F/U2f4008p4PHzCccYrcW/m58nd+HwbvomWjCyDp beslayFgD8E36VLcNzXMQvf/ABlt/aXCkabDyEPOzp2Yb1ZeHpWgNhh0eS24CTa6 bqHtouOLPrtSVacm7sLEEvgCNEL7cYP7e8syHjpabCoxGtZ62SntNZvTpp+6flDN qcBoxPF2R/R7Ktu7uzEXUznYygW9B8XkMOdqUOp8Kljr19lLMrLi4ZHfYeYfcYfQ pt9pRQ62sEKSpJspJB7CDWnOp/wDjo+Q5b2+zISFtoeU9pULgqabUtP6oqVrXz+G jPmzfeb4qCG7hD2Rjodt+1CXFWP+EkUvg06v4YxqsFONmPwsjFmMK0vxnUOtK9ik KCgfvipYutxX6Cb+jx8pxrnW5CQpqRipDhBta4YK0nr7FAGpt01/H+6flh7idQTy Ztg//so4++4BVpp3+l/s1J80e2dwbh2TjYmDx7+Rkt5FDi2Y6CtQR5LidRA7rkVK adWIJwHxFmdoZGVv3ebSsTDxcZ5TMd0FTvVPjdUhGpQSlF+lrmmSTxO6r/nvmJHI OZjsY1C2cBjNYiJc6LdcX0U8pI7LgAJHcPppPldsSYiqq05igKCdYTITYSsbFhNF MBuGuRODaG/5XIW29IShS1oX1UlsNJH7k6fFWLHeXGFlbK33FxbGO3DIhsZTOQmn himmyiLGYEttKl6ClTzhabSp0OjQLOWCRqXdWeq3+6Y8rUl7+3RMw/2VKnRcNkID SJG9txMptHxaX1FSIUZLhc8yYpBSjrfT29VECt5c/SSlOycxs/DsyMjjmoeBwPmF OQyeUd15SdIUCoeapSypK73VocUpzr9WikqbaWnhzm7j5uYiMqTL0udESBBllskg kAWb1m9u0JtT3iX+LbGTNleSt0rdRI2zO29l4T5V6VhZmMvOlPVTTbqfNaLyU9VN 9FfuaZX0mPJMjnHasqE/it/YR3ElxlSnEOoTkMbKTY2SxJaCkOFekgApHi8N9VMp 6VB9ucr8R8bPvyMLj9wpxmXW7aE4tCozDrSwl1tLDriVNuINr3JOkjrVibTCebf+ Yrb24cLmcnicTNV9jqhNlh8tNl1c+R6ZsJUlTgFlEE37qWsyZN+Ogceb1zmXl7h2 B6GUlh6TJmybpW8qItLboAT5R1A28Xf1B76kuW7MM48jbo4uzURkbT2u/gZzboLj ypKnGlM6VakBklQSdZBBSfb7arGUCqoKAoCgeNnf7W4X+vRv45NSrO2vPmt/4SPf 16L+uqlIxXVRpL5O9ryjkc1uZ1spioaTBjOHsUtag45b96Ep+/U8teEU+aXfMXcW /G8XBdD0LANKjqcSbpVJcVqfsR+1slH0g0i3iYSL5Nf9o9xf1Nn+NNGfCP8Azbf8 VG/9Wx/4btFvUVc1ufMDazm1UrCsU9MRPDRTdQkJbLQKVewpV1FLPKzbjDhuHb2W 29lXcTlmfTz2AhTrOpKikOoDiblJIvpUKSs2YbVjkj5cCR2jbKz/APiGpemtf3RV PytcutQ3E7DzT2lh9ZVg319iXFm645J7lnqj33HfV6O594X/ADO8LpcRI37gGQHE AKz0RA+IXt6pIHf/AKT/ABv21OiTP5UPxnudva+/MLnHiRHhyUmTbqfJX4HOn71R pU07bH5228d2cSZRGOtJdbabyUIo8QWGSHCUW7dTWq1KuneGEarBw29ipGXz2Oxc ZJW/NktMNpHtcWE/s1Ks7bX5/wB1xNrcVZCP5oTNybP2bAb/AAlFwaXCPclrUb+2 1K1p3n4ZD4p/4l7Y/wBZRv40Uqa/4v8AZpb5upcuLsXEPRX3GHRlEWW0ooV9Q6e1 NjSxdLZnB4+XfkhO99jqxuWe9Vm8Un02QD3iU+wu4adVf4tSfAr3jr20S/LMXM3G svYe8pEAIUcRLKpGIkHqFMKPwE/t2z4VfcPfSfC788xA6rAoCgleC3duNjb0zEsu xzi4obmKS9GYdcCmndLSW3VJ81FnJCiNKvDqUR2m8salPW0N95Jea+0HWIzLOKSc osNNqu47G+obJUpfV19SEFfxDUSDUsbm1qQZnLLfzDOymn5D2B2y4ufuF6MvRIyW YUsJeWXSOmuW4mO2o30J8fWhNuSKPOzG88qpEKc3hcNiUhqTkmEENR0OqUG4uNjo /GeOyghKT5j3iW4q3w567blzeDc7t3itcr0v2xkmJSiAZ7q4TguR1UphC9I69xk3 +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 ------------Ce2ljQkrvPB47m7td0y2SP Content-Disposition: inline; filename=layout-bg.png Content-Type: image/png; name=layout-bg.png Content-Location: http://www.p-interactive.com/site-marburg/images/layout/layout-bg.png Content-Transfer-Encoding: Base64 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 SQAAAQAQQASQSQQSSSSSSQAAAAAAAAAAAAAAASAAAAAAAAACSSSASSAACQAASSCC SSSSSSSCAAAAAAAAAAAAAAAAQAAAAAAAASSSSQAAACAQAAQCQQSCSSSSSQQAAAAA AAAAAAAAAAAAAAQAAAQCSSSQCAQAAAQASQSAAASSSSSSSAAAAAAAAAAAAAAAAAAA CCSACSSSSQACSAASACCSQCQAQCSSSSSSAAAAAAAAAAAAAAAAAAAACCSSSSSSCQCA QCAACSSQSQSACSSSSSQAAAAAAAAAAAAAAAAAAAASSSSSSCQCQSCQCCSCSSSCCQCS SSSSCAAAAAAAAAAACSAAAAACACSSSSSSSAQQSQCQSSSSSSAACSSQSSQQAAAAAAAA AAAQAAAAACSQSSSSSSSQSCAASCCSSSSSACAASQCQSCQAAAAAAAAACAAAAAACAASS SSSSSQCAACSSSSSSSSSQAAAASSSQSAAAAAAAAAAAAAAAAQACSSSSSSSSQAAQCQCS SSSSSCAAAQASQSAQAAAAAAAAAAAACAACAASSSSSSSSSCACQCQSSSSSSAAAAAASSA SCAAAAAAAQAAAAAAAAQASSSSSQSQAAAQSCQSSSSSQAAAAASCSSCQQAAAAAACQAAA AAACSSCSSSSSSSQACCCASSSSSSSQAAAACSSSASCAAAAAAAAAAAAAACSSCSSSSQCS SQCQCSCCSSSSSSQAAAASSAACQQAAAAACAAAAAAAACSSSSSSSSCCQAQAQSQQSSSSS CAASSSSSACCCAAAAAAAAAAAAAASQSSSSSSSAQAAAQAAAASCSSSSQAQSCSSAAQAQA AAAAAAAAAAAACSSSSSSSSQAASASASCSSQCQCAQASCSCSAACQCAAAAAAAAAAAAASS SSSSSSCAAQSAAQCSQSCQSCSACSSAAQACCQAQAAAAAAAAAASQSSSSSSSSQAACACAQ SSCQCAQSAAAACQACAASSSCAAAAAAAAAAACSSSSSSCSQAAAAAACCSSSACACSQAACQ AAQACSSAQAAAAAAAACAACSSQCASSQCQAAAAASSSSSQQCSSCAAASAAAQSSCCAAAAA AAAASACSSSAAAASAAQCAASSSSSSSSQCCSQAAAQAQCSACQQAAAAAAAAAAASQCQQQA SSAACAACSSSSSSSACQQSAAASAASSSACCAAAAAAQACAASSSQQSQCCQAAQAASQSSSS SSQQSCCAACACQSSQAAQAAAAAAAACCSSASCCSSAQAAQAQCQSSSSSSAAAACAAQQASS SCASCAAAAAAAACSSSSQCCAQQQQAQAASSSSSSSAAAQASSQQASCSSCQCQQAAAAACQC SSSQQACSSSCQAQAAQCSSSSSQSQASSCCQACSSSQACAAAAAAASCSASSSQQCCSQAAQQ QASQSSSSSQCCQASCAQACQAQSAAQAAAAAAAACSSSSAAQQSSQAQQAAQCSSSSSSSSSS AQSAQSCASCAAQSAAAAAQCCSSSSQSCSACCQQSAAAQSSSSSSQACSAAASSQASSAAASA QAAAAACSSSAASAAACCSACCSAAACSSSSSSAAAAAAASAAQSQACCACCAAAAQSSSSCSA SAQCSCQQSAQCQASSSSSQAAAACAASSQCSQASAAQAAAACSSQQSCSSQSCCSCSSCCQCQ CSSSCSAAAAACACQQSSAACCACCAAACSSSSAAASCAQQSACSSSCQCSSSSQQQAAAAAAC QACSCCCSQCQQAAASSSASQASSACCSSSSSSSSQCSCSCQCAAAAAACAAAQCACSSQCCAA ACSSQSQSASSCAQQQQCCSSSQCQSSQCAAAAAAAQAASQACSQCAQQAAASSASASQAQSAA QASSQCSSSQSCSSSQAAAAASCAASSAQSAAACCAAASSSSSCCAASCCASAACQASSSCSSS SSAAACSSSAACSQASSCAAQQAACSSSACSQQCQSQAAAAAQQASQSSSAAAAAASSQQACSS ASQAAACCQAASSSASCCSSCQAQAACCSQQQSCSSQAAAACSSQQAQQCAAQQAAASSAACSS ACQASQSQQCAAAAASCSCSCSSCAQAACASSQCCQQSQCAAACQQAASSQSSQAQQSQQQAAA ASQSSCCQCQQAACCACSSQACQSSCQAAASCAACSSAAQQSACAACAAAASSSSSQSCQQCAC QAQSSSSSSCSQQAAACCQAASSQCSQCSCCCQAACCAASSSSQACQAACSACSSSSSSSSSAA AAAQSAACSSQQQCQAACAACQAQAASSSQAAQACCQAAAQCSSSQCSQQAAASCAAASSSCQA SAQCCQACACASCSSQQAQAACAAASCCSSSCAQAQASSCCQAACCSSSCACQQAQAAAQQQSA SSAQAACAAAACCASCAAASSSCSSSQQAAAQSSQAASQAAQAAQSAQCSSSSAQAAQCQACQC SQSACSCSCSSSQSAAACCSSSACACSCAAASSAQAASQACACQASQACQSCAASSQAASSSQS AAAASSSCAACACCSAASSQQQCQSQCQAQAAQAACCQQAASCASSAAAAAAAACSSSQCCASA AQACSQQCCSCCAAAQAACAAAQQSAQSSQSQSASQAAAAASSSQCSSQAACQQQSSAACSSAA AAAACQAACAQACAAASQSSSQAAAAACSSAASSAAAAQQQSSSQSCQAAACAAASACQACASC AASSCSSSAAAAAASQQQSAACSAAACCSCSSCAQCASAAAAQAAAASSAAACSCSSSAAAAAA ASCCSQACQQACAQSQSSCSSAQSAAAAAAAAAAAAAQASCSSSAAAAAAASSASQAAQSAAQC SSCSSACAQAAAAAAAAAAQAAAAACQSSSQAAAAAAAQQSCCQCCACCQCSCSQQASSCAAAA AAAAACAAAAAACSSSQAAAAAAASAQQASSCASQQQSAQAQACAQQAAAAAAAAAAAAAAAQS SSQAAAAAAACSQSQASQCCASCSSSSCQCCAQAAAAAAAAAAAAAAASCSSQAAAAAAAASAS SSCQAQSCSSSSSQASAAAAAAAAAAAAAAAAAACSSSSAAAAAAAAASCSQAACAQCSSSQSS AAQAAAAAAAAAAACQAAAAASASSAAAAAAAAACSSQACCQCSSSASSQASASAQAAAACSAA AAAAAAASQCSAAAAAAAAAACCCCACAQSSCSSSSCAQAAAAAAACSSAAAAAAAACACSAAA AAAAAAAACSAQAAQQSCQSCSSSQAACQAACSSSSAAAAAAAASCSQAAAAAAAAAAACSAAA SCACAQSQSSSQAAAAAASSQSQAAAAAAASSSSAAAAAAAAAAAAQQAAAACAQACSSSSCCA CAAACSQCCCCAAAASSQSSQAAAAAAAAAAACQCCAACSCSCSSSSSSSAAAAQSQAAAQAAA ACASCSSAAAAAAAAAAAASQAAAASQSSCSQSSSQQAQAACQAAAAAQAQCSSQSSQAAAAAA AAAAAASQAAAAQCSSASQSSQACAASQQAACAACACQSSSCSSAAAAAAAAAAAACSQAAAAC SSSSCCCACASAACAQSQAAACQSSSSSCSQAAAAAAAAAAAASSCACQCSSSQSQAQCACSAS SACQAAAASSSSSSSSSAAAAAAAAAAAACSQAQAASSSSSSSCQASQQCCSASQACQSSSSSS SASSAAAAAAAAAAAASSSQAAQSSSCQSAAQAQAQASSCSCCAASSSSSSQASQAAAAAAAAA AACSSSAASQSQQSSSSCACCAAACSSQSSQASSSSSAAASQAAAAAAAAAAACSQAAAASSCS SSSSCASQCASSSSCQCCSSSQAAACSSQAAAAAAAAAAACSSCACSSQSSSSSSSACCSSCCQ SSCASSSSSAACQSSAAAAAAAAAAAACSSQAQCSCSSSSSCCSCSSQSCCQAAASQAAACAQS SSAAAAAAAAAAAASQSAAACSSSSSSSSCCSSSCSQSACSSQQAAASSSSSQAAAAAAAAAAA CSSCCACQASSSSSSSSCSSSSSAQSQSQAASASSSSSASAAAAAAAAAAACSSAAQCSSSSSS SSASSSSSCCQSSSAAASSSSSSQQAAAAAAAAAAAAASQQQAQSSSSSSSSSSSSSSSSSSSC AQQSSSSSSSAAAAAAAAAAAAAACSQCAAQSSSSSSSSSSSSSSSSSSQAAACSSSSQCAAAA CAAAAAAAAAACSCAAAQSSSSSSSSQQSSQASQSQAACCSSSSAAAACACSAAAAAAAAAACQ AAACAQSSSSSSSQSSSAQSSSSAAASSSQAAAACCCSSAAAAAAAAAASQAAACCCSSSSSSS QSSQCSSSSASSSQQAAAAACQSSSQAAAAAAAAAASCQAAACSSSSSSSQSSQCASSQQASQS AAAAAAASSCSSQAAAAAAAAACSQACAQCSSSSSSSCSSSAASQAAQQSAAAAASQSSQCSSA AAAAAAAAACSQAAAASSSSSSSQCQAASASSAACSASAQCSSSQAACSQAAAAAAAAAACSQA ACACQSCSSSQQASCQQSSCQAAAASSSQACAQASSAAAAAAAAAAACACQAAAQCQCCSSCAC SQQCSAAAAQACSSSAAASQSSQAAAAAAAAAAASQQAAAAASCAASQACACQASSSCQCCQSS SAAQSSAASQAAAAAAAAAAASSQACAAAASSAAACQACSSSASCASSSACQQSSSQACSAAAA AAAAAAACSSSQAAAASQQAAQQAQSQAQASQAQSAAAQSCSSCCQQAAAAAAAAAAACSQQCC AASASSQAASQSSSACACCAASQAASSQSQQCCQAAAAAAAAAAASSSQCQCQQQAQCCSCSQA AAACACQSACSASSSCQCSSAAAAAAAAAAAASQSQQAAQACCSQASCACQACAASAQCSSSQQ CASQSSQAAAAAAAAAAACSSSSSQQAQCAQAACSQQCQCQASAAQAQCCQSSSCSSAAAAAAA AAAAASSSSSQCSAAAAQSCQCQQCSQAASQCCQASCCSSSASQAAAAAAAAAAAASSSSSSAQ QAACSSSSQACQQSQQSSCCQAASASSSCSAAAAAAAAAAAACSSSSAQSAAACSSSSAAQACC CACQASSCAQQCSSQSSAAAAAAAAAAAACSSSSSSQAAACQAAAASSSQSSSCACQQSSAACA CCSQAAAAAAAAAAAASSSSQQCAQCSQAACSSSSASCSAQACQASSSQAAQSSAAAAAAAAAA AACSSSQCQSQSSAAACSSSACSSQAAACCSCSASAACCSQAAAAAAAAAAAACSSSSSCSAAC AASSSSACSSCQAASSSSCSQSAAQSSAAAAAAAAAAAAAASSSSSSACCAASSSACSSSSCAS SSAACCSCQACCSQAAAAAAAAAAAAAASAQSACQCCSSSQACSSSQACSSQAAQQCQCQCQSS AAAAAAAAAAAAAACQASAQQCSSSSQASSSSASSCSQAACSASASASCSAAAAAAAAAAAAAA AQAAACCCQSSSAASSSAASSQQASSQASCASQCQSQAAAAAAAAAAAAAAAAAAACCCQCSAC SSSQCSQACCQSQCSCQSSCSSQAAAAAAAAAAAAAAAAAACSQCSSQACSSQQCSAAASSSSQ SSASSQSCSAAAAAAAAAAAAAAAAAAACCSCASASSQACSQAAAACSSQSAQSSSCQSAAAAA AAAAAAAAAAAAAQSSSQCCASSSASSQAAAAQSSQCSCAACASCQAAAAAAAAAAAAAAAAAS SSQACCCSSSASQAAAAACASAACCASAACSSAAAAAAAAAAAAAAACSSSSSAACCQSQCSQA AASASSAASAQSQCQAQSQAAAAAAAAAAAAAAASSSSSCSCASACCSQAAAAQSSQSQCASAS QSSCSAAAAAAAAAAAAAAACSSSACSSCCAQCSAAAAQSCSSCQQQCSQCQAACAAAAAAAAA AAAAAAACSSAASSSSACASAAAAAACASSACSCCQACSSAQAAAAAAAAAAAAAAAASSQASS QSACQSQAAACQSSQSQACAACAACSSQAAAAAAAAAAAAAAAACSQSSSAQASSCAAACAQAS CCCQSCCQQAAACSAAAAAAAAAAAAAAAAASQCQACAQSSCAASSCCASACCQCQSSSAAAAS AAAAAAAAAAAAAAAAACSCSSACSQCCQACQCSAAAASSSCQACCAAAAAAAAAAAAAAAAAA AAAASSSSASSSCAACSSSACSSASQCQQASAQAAAAAAAAAAAAAAAAAAAAACSSQAQASQQ AASSSSSASSQAQCQCACSQAAAAAAAAAAAAAAAAAAAAASQQAASCSASSSSQACCSCCSQC CASSCCAAAAAAAAAAAAAAAAAAAAACQCASCQQACQSSSAQASSQSCSCSQQAAQAAAAAAA AAAAAAAAAAAAAASASASQAAASCSQQQCAQAQAACQCAASSAAAAAAAAAAAAAAAAAAAAA CQSSCCAAQCSSQSSQQAACQQCAASACSQAAAAAAAAAAAAAAAAAAAAASCSQCCCSSASSC SQCSSCSASQQSCCQCAAAAAAAAAAAAAAAAAAAAACQSSAQCSCCSSSASAASCAQSSQSCA CQQAAAAAAAAAAAAAAAAAAAAASCSSSCACSSSSCCCSCCSQCAASSCQAQAAAAAAAAAAA AAAAAAAAAACQSSQQQSCCSCQASSCQAASQCSSACAQAAAAAAAAAAAAAAAAAAAAAASSS ACCQQQSQSACAQQQCSQCSSQQQQAAAAAAAAAAAAAAAAAAAAAACSSAAASAQCSSCSACC SQCCQCSSCQQAAAAAAAAAAAAAAAAAAAAAAASSQAAQASQAQACQQQCCACCQACQCQAAA AAAAAAAAAAAAAAAAAAAACSSASSACSCAAACACCQAAQSCCAQCAAAAAAAAAAAAAAAAA AAAAAAASSQSCQAQASSSSQSAAQSAQSQQACAAAAAAAAAAAAAAAAAAAAAAAACSSCCQQ CQCQCQQQQAAQCASACACAAAAAAAAAAAAAAAAAAAAAAAAASCCCSQSACAAACSCAAASS AAACQAAAAAAAAAAAAAAAAAAAAAAAAACSSSQCAASQAQASCQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAASCSSSSSCSSSSQSSQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAACSQQSSCSQAAACQCCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASSQSQAQCSC SSQAQSQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSQCAAAAAACSAACQSQAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAASSSAAACCSSCCSQASSQAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAASSSSSSSSQAASSSSSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAASSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9oACAEBAwE/EP8A 85VKlSiVKlSpX/M10DuvYJyp4P8A7Mdl3xKX3MM36eMZncXDJ6n/AJWutSOmpoeY oCjVijwTSoUfCYx6dZq5ZPlLwC/Qa3vKGUujs+H01/yFSvTSbpXxkxNz2nvLg1RU IGKwx7QshS7G2j9oFCtAvOQ9Qld+t3ERITJPc9VSnpUqPSv+Erqek2VpQRGAC2U8 PiW3GYNLed41boAXytHuXG1nRvA2r5wNrTA4VWvl6jWJMo1Ow3OI3yb8h0x+gf3s 6nwB3e7TuxeYAC0B7cKL7ZgLxMUujoPCkeKpBFzqrzOUHXeOo+PVUNKwsu6UHzYA tqttysK5j3611xK6USpUqV0r/gK9aBqGjy4ibWAI0cD5j66KHeVzvKYbtC97jBEd w5S/HCxNWqk8ildVwHlB6SAoGqge+JQfRDUMWmFd+B1F14JWErKON3pr4r+6ketf ATy+JDWFvB+IkGg6fwTViKRvQ8QUbDepAWUe0JQyMhm9KXcl4woaMJlFVDunobeT MVpnbgYddtpoPVLNyz5MZDRhHpt1FKDIeMyhXKqZZS0PGYCcrB7oHtUJzl9wcp+h f3A9RL+C+Bg1MD3nseuxZgTgYSIrSu6v3hCKvW0WahcGtoEUeE0uNLCCjJSZN/eF JhtSvE5uDtEMVU4tYCAyFyhe3mGPQg3XO73WLEa1go1TE7bQt1rrfRWTUH4FvzxD Sa1a5o0BxdSsQtNtgXXmyM3Rsst4l+07sn5GJK/QP7A/o9vhG28W57EVHtGmNxn5 ekJ2qCuANnzhw9mR1duINQWUVsFLS/tKVrjtA+QIw1QWYZcBcyWx4fkDfrRK677Q Q8oj9JYBm0b2Souk8tXWX50TFGx5Cgb72RaKzquTG3Bhb1vWtNIBnC1otm0vwWw/ h3+M/sVfqyW1PsQgGpk1w0UveHSxBuNfqayutdBgV+gJTyQd2Lis2M68SnUQw1i+ 0YaG3V2rysvrrA6YFqtlNalQo0Kyu6jHGcpoZVTo1Lq26rX1HmWzgHQZIFGtQFBq dpjDeMjL91m0BLapNjtGhvWGpZqdodLgX/Bp8d/aq9ePgogLXAcrAIzW1sqWnyjc OUIPBuJsa+xAsfnMxoYKhqSzc6xPrPRhTy0IDRgzSWO43ml4DFnlNJUKjyTwMKUd VNAb/Kfwj1PSASktd4kTo26NmH4mbrBBZwXQkfEWhKOqk7RJeKXXVuAgHWinUbW4 gbhNm8aGdW4VWAckNKPMTro21NOmYguDHpfPxj+0nTaV1rrn4AGUGw5WCXsNJwWr mvlCY0vo6gE24lSKKPYl15JXm11dg5WZkcZ6gda+cMhhoZv2dIaA2TWlNrNGbas6 2z7wqpRZdnvxLMhcoABVdPbo/BrUTPE8jtCCoUFrk7vIyzd10FQew2lm9GlVpbOs DKCEbqcW+IhYHhoDV5mQyhDTGgdGvygHRaVJ2znKv2ZXxH9pIw6V8QgIBs2btB+Y 9TlDmed1i217QwHc2jY4BJ7i+YiriWMOGjwJqStIGnK7sUJYEvSbhIJGmwRfFZJl hHip92GJnBbotBNQi1mNmzrsYZWoWtU0z3HoHwRB4dGo/cJbylyztekYghg4zhl7 EN28RZ8jWWgUQHA06KF9R4Bqx6NLQ5Vde5NT82BkaDfFzUQWvJz6r/XX8Wur0Yei vhBeOdIzZppwtzE0SoUDY0Iq32X9TXKxyBvvFaBCjaMDBT5m46RlablAT2jt9FfU Ly+eYgta2rdHPeLvrg+D/wBQKRo1XK214lnM2XaKkgcxlVdrPz8UQ4ELN3Bf36d1 YnTEYVFngYatkzyDUPMECAo5cOVIChrt1Zsnpf2Db4hM/o+wgfWCvWYVbDipSVqo GtQrWlzV7yV+841oDuKokFlT2Khftc2GiJeSAviZUpRCGezxp0t6gnLorUYwtwl0 HAv2hsCor2B2O8WIqhuJqZ8alTViurr6Eq8HmbyfDdDTPeDZj3lM9/RrKmker+nr 4mOlxj0vqfE+gx2IpAClA9oqqqq6rllwrRorOBrDZ4rb3DARb0HKHANrUoIdLazs YioI8JTCNGgXp7ypgywwBgTM2AW79U4KCngt/MND4gJCJXV6V6KgjSdydyBaMTTP vCksyc9Lmvof0rD9iYlofeiGzElizNAayrQNlKh2XRjKgO6LrsFyhNmJQaWO3Yix BRbF9hxDYMFM8Oc/aHbumwl/EEAUSrrs2I86XL1BTObRxVkrYpg+p3bBLHBotAU4 uoqJcI4KfrFJ1iT8/DqX0Pf4rvtBEs0Y6Qj1f2A9NTPSul/GGm+MymGg7W74jqA6 2Y8O853c8GsNYiCkpO5Ltkce5inhjwE1YAa1nWLnA6G8GRqJ0o5pXyI1tBupgwFu HjaUA0yFBx5lEYhNVNDtCDAAJQOgD2ig1sKEKx3r4Z8jmKqvxtde3So9GP6vHxLl /oCNaFJGtwrb5xIwkWoL5+UAs3fEaD8x3RR5PGfDEBEGQYYsKBQMFmZmMLkNJvV7 dpdghslDRtqMcNh1CjwsxqyInKAWrzDywA28rOYg+ESr6jHv8dUWd+j0Y/oL/Qnr r9DY0/ZzqfaJTO7etLh8kW7kbXSgisQ1AgVnVG35RhiKgDeg8lbwNEznhHkPEqS0 l3Fp3rSIi04objy+IrHiKrfPwa9B6AF4x0ejH9AHx6ldD9LXTXaLPaJj0BLMGw/K KL6qsmVtclkrDoVulOp2gbgD4JZDWEWHTDvDw90x5vSpXMNkCgli9kSo2Q5Dydow CBu2Pafy4iVZV5O58GoqfwK+FYp0ej0Y/sVTt0r9FfVEKyJ7Mr8grsj99SZ6aj4J /cd0FCodv8IFHdDs4K+UENrNUU1pxNOe2RQd60hj+9Kz2v8AEpjAcJYPeaxGwcts XUYW4AVpVX+f01tDrXQiGNHM1yadGP64m/6g6KGsDjWUGGEQndtMw+DpQWC6JHrR QXDg9iQCsMFg5P7hDyEG1Ta/PEbCB52PFBPLdml3tzKyB53A+zAK7GUAUdjvKeKP a38npx6CG16agMp+IMZU6dGP6jbrt+pr0ALWI9pnrucr2DW2JZ8MtdqX9JW1vYFd vYiBQsDY1Z/EuFCrU1O9XEswVtuxoS7aMLH+JcMNZMNhdfJiAoaDjxK9FdK6JYnM Nk6s0Q21z5US0sKmIhxUF6rpQdd9SGqR5a2TtesdU4SV026B0z1Ois9ox/W6S+lf HOuts8RdiETcIPvAGMsVz1x1vbBxTchCyptBTZ41gXkwoc+fboLo0C2tLL8MFowk GG7t7CERBaDhoAnZ4iqdG01rSnudcXK9W19+jUQrnrA2OvuiLRpw4RGnEDazEa65 W94i9teBXMGbxUUd7iGQex20IiR6noehNItSMf1dQP0NegDRCK3X4tgezcNOcRCg 2QvIFZ74lR1MCAKgKrrzU4t2b21zCh3sV9R+sxN1ReMH4jJRY3HYL/EL0gK0Ung1 RJwbSpo8uYKtWx1jrlBigOl9nkdZjv2p/qaRALd3PWhKdIisyM2BIK94liu1LyFC b2WQ7u1/OM382MKzjZxD7A3Nay01v0PHS0prv1Ou0D0ao/prl9HpX6HbodTdiVt3 6PxBqZKKxE3L3IXLUAyU5HOOIlFLFbnPzgjSKIdXNB2iKnO5BeKSnmYDz7Vv1I0X CObW3ljg2qgaBeE7RRrUWyfKy8XNP9+6acA6ZzwRitANILLddYV4MTvWT2fQ04dJ vPR9UJt9oHj3uAoItaZbq3M0maHfmIZT2FbHZURnVJ8uiWJzLCdSPoI6wYWP7dtD ppfN6cfEA0Ygvjagu6rWX2y22cGa99IsSDeqozj2xDhDmUhe8CvQ629tI4AsRo0H 4i0wWm6Oy0m6KwpkflLGLVRkF4dcxsKIU2GAfOku3lLbN0nv6Q1ThUqjsXiLBYQJ i9VEOioeAOQjdXY8bwZp3jwuxp4NjvMS0UfmdaL89NoEroT7QlQUEf0teg/TEI7f pr4ty4CFg+xdwhdKWasznsEJIBNTKTY7QlTFguTNnzjCgbFoWF+cq13hVk7VpAQ9 5jNocsKeoChjU2PNShS851ogFHvGxRwmE78Pp1XklumpXuSu5xd7RyMpdxYW3g0J ZUGWRRDg6YlcjRB8uo9ZhLv0autxep6qcuwGWJyIZTC1DDKvBjzU8uuXBwNzy/Wo oMFobs7Xz7y3Wlrk+ms8aeqpXo0LitPea/pFovw2uO6NAK76pao2PJbo7xoAoAKz kFvoQSU3PN6GMGmjotDj2qJ90YJV27ky/Se6qr9TWLlXTVlGdZWmTlsp5E0gPBCh GynFH7w12h9OryHwdZ/R5+JeVnV6viBcVjdai+WJWtjdqmgfv6FJZxbCP5iFVi4o aL5GYhJgDJpSSqlLkTInb0npsO+PSfoSaoi4atryxCuL+wibRomyzFXj35qIJGyF U7xXK8EZANA7x3JLnZoU477SlY0TxoWgQdDI8qv1ggKqkUp5ISxUVF57o8SxcNfI roSxr04roQiprnq/Fv4W3odE64UrTxtNoErSp4jaRaCi7VXjskXamgDJ4bkIlPOH ZReCpjXaXsNPJQje8vkU7FJ2D8yxlVla9RwNK1l+Kyo82R2BRzm6090oy6g9B6MT HSuhqmhN4dN/0dLTFe9L3ezL618An83l6iYorQ8+IuzKu75tpbriVJraFqN40w3G 0NCAR5hsqbxGAIpyS9VKfURWOlvgZjItUr79FSZeV59faEVJLsvo/pKlRI9TBxqf BEpRFU2O+/aBrlwfXDvKq0Gco+mnvEuVurF8uhCkCy3AcHEeqh1DucPeZDpCplyF 92tIJegOAE7rId1RTNhxexLrq+juux+8KmsKLvgVQxCVXvc3a+aFDSUnqUC3BLMa Of0eehpCMAFrgOYkpgjSOKmWkNlC/nFYoU0UvF3nR7zPs3EUvv3lIYbWbaVfOrKh qGXsDLppKLm8XWBi+jKXu66p4IIVwbeItjGrhCy8jzMNA5xHxWssrU5VdORiFork VUE1FyNRPxDRB078cwnDk9pr1oHL4B0I9ox/Q18DzpAqastQ7u0UWxlcvkd4lAiA tyHfOPrCzsPP5jhAEdEykitNK8A3alSZFhMB0IFDKC2uAvtL8lje1WbbwIN2toF7 5fiN6FppHHYNogO0LHYD8y2ShwcBoe0wr4a+gfRUO59iO29L/RArUp7uISbAsyUc kAho3ZBzjzLpdRV3sy+0q5V66vlTXchIt4QnjJAQmbkHc5zpGGY1Et5qLWoUg0l1 7EypOgbB2IyVatdA48xQwwCclFTHdraIS8zJrcy6g3od5thNmsvshSAysyhwFRq+ yz3X9prhL5G77QVp/wAvV6EsfRv6jqPxdvS+vhtfkMs77teBgnYYN8g+5GrE0Q+7 XzOmT6nX3LIEMxAOuMB7VrAxhaDQ+ozR28j+YJsIfgtr6kQJa1WsDKDPLEq1VdV1 m8Hsn9mO83ar7bfSV00FdpdOxp1qE3/QFYysPtYLAu8qXvLr7o8FqPnvNV5FdaFH zuFFsgm5r83S6yYTRMQfC5zGz7zJJtV1vOexvK29lZB4uKqrlW1dc9HRzFLDdI/E WQFR7ps8QbPSBhvzowsWAsFfg3pK13hzhJ2SXflKtVS7iUN1ANE2gBDdyfV95t0w u7LzLxD0k1ehBmMfh2eth6klGajzhB5f0d46SMgHA0fdMTUSBBbXR0x0sBViewr8 yqV2Ks1EjUACAwW08GVMA4DVm68doWnwQ+MvxO8uX17vp+U64jn07foMhKZQL06I 6DIN6U4bgdCTfc2+UrRzA9jdzI/oAWPz6jbu1+JEFZeEdvKeNw57kqawRRxAxlzK gc2ngZSCmQDRcq+c0FIrdbYPntNjQyLk/hEMtBQYJz5hGtQ8ws8pS2zpPKp8RC96 j0wGZfO00erfoRhDRbvNo/GOt/AbK2I3gveB84F+R+INOzQPvKZG9b5hwaS9HRbJ d617JyIOpgfZlGUBFbBNK4ZQCVpW7VKoUrBQH5h0y4Mhvetrl/N7n7WJqhRq0pHg 2fQZTcH2HXa9GP0JBnlIttk97yQxMY3UAu6PEEwDRur9gEpNtiwSlfSHstE6Cgun vKnKwtvyn+d7wSyrkfxxLjBUdH7DHC3h0eSWNo91dTF8AHuczAVflA3p5gMS1541 /PPRoDT8a+ZoANlMlV9Ile1q9S0e/p2hz0vPQgmhrG1+SMY/Bx0JXSul/AI+Fq24 0rvL8ucB+xjE16jV+XVg3N/lC36st1soljVKThjGd3BK/CBpV2wiX50RaFr2q17l 6e01bU5YofV9pZozuv4Yq05FKgovCWLbfm6PkYgwJSdzE36UUcB7PXe610PjiyTt xKnffaaIDyv3mHX9P6mpN719ottuX02ReQl4WC+GWJYRLllAu8TTEUKNa0Kl2cNp h7z2gFY+UKs+zHoIK1RV9G3XfppmkDrmAGhXRjH4Neiuu3TUJ3qj5sqc5iIB1xRZ gLpT5PrUwnlD86dbANw8OJv0S0NU+QI/SU3ij4yfiMUQFuoDSXtZdkifNwQ00Fd2 x+pGVvCADgbsBFYNRZ7B1hr0XZ2H9p2ZPcOJTH/J6jJ2Pr1stx0x+iutx8e5fUjQ W6SzGB0/HXHppZekYdm3oej8A6HquVAy4j25n9Ob2I/Sy4MV9qJq933QPC7+k06d aSyleSosorWCxXIbME12mssmd4YHdgS6WRwplod34gA7qRTdf7GDB5MvD0Qpqznh vL5zMnNE7g/iYlgfdI0+UFixAAFF6YqBxp38q1wwAGtHB4UiPFxcqqLwX3gugqlH CmfqQg3A2paqPnFVVyuV89Q7AZ3rPUWVjsWOipKR1HoCx+XBDdY7LNpmaoV8QYX9 HvuY7bC+hN8zXxHEOrMxst4UD1ej8A6VH0ALPee5mxg0dCZiHYazjFr5RLzS24aU lnkq8ldxgkm2uODTKx9c1YOyaMRmrRZY3yMsuRT1cjfzqFAi2JgbH2lWrIBepCjc fWQ+QibIreBqzI8Gxus2DxHgVatooB7axOXw8Vj6RmJdiVt2+TLd8sAmo/mfhLLu s+08rYvDYXCJ9PRxtsXF6SrLxF+JoKTwX2Jw94T+4xtVyV1WMqNZSAzYs95Up17v uIfofJlPp1QKS5VwcfBHofq+K9agWXMZpgl31NZvN+p0rJHWjoGZiTq9H4B6kGuy mC2vocHXY93zZCbKAeX2VNdruB6U80KT5Zm0ygK4CnnDHbdTkA2OxC8h3RPrLEUK d1NZjUaq7ry8MEoogGqBediG0lRdddE6sAjQLphPEbNUrfOcbK2OQWI7KcPV5TKl a74+kaXLSHgc7ZrtGUIDvb4Bm6uuZL/hv0QLRZ8bwtG7GxWhZdFdabDx1NlBN79L jzjbV1R8dPknf0D+56D0HQUfjVNWbjMGCN3M9eIazebzeEMTeDEzPzGa/boR6PwD 04iF1eDdgVTnApVq2wJWBl1HzOtd2qOcUPlNt3fOJX7jyjhrusIKCAGES90yBaIB W6YYu9YFUK0bl4XEBjsg5js3UeNkda2fYxWy92H+JRhfpeEVxihdtISaT5YL9WGg UdWCqgx95XXbjvKroUbpKBQfMGxewbwtDSVY0GHzml9SnTm9yMEsKOyR++4fgnXr Qfw9ouGk9p5OuHDvMHs+quhqTT+Jprid+Z24l9MddWcztKm8Jv0qFR1jKhwvt1Yx +KD1le4NfaN2zwbHgMQbac8K8xTBmdADVDZ6dzYvnA1HH39n3ENYyns2tJEIDABf AqWh3LXQ0SXC0dPAHGIrDKWObrL7ypC6rXd2H5iW2F9lBwCmClnbmy62jwA51EPq oh9hUoXSfYg0jg4o7w4DgzZXY0uNB1tZpvGERpTekqHdzXBO4Bn3l0NrRQ1mgdZs 8Kw4NCFAQUwhx27m0ZI40NirGKbwDeJ3Qmz5fAYdejmgr+aGlce3W++58DIQ0Pha ZcTmE156Z6sqViHQjcred53h3msxcvMr/ICtQqOr0fWekhbKmyqzqu7GzJ2x/ZD6 CbpoUFL3YSNVf9yoYdvFqMsKI8baK3yGsaJa5HL2gavIakgjRtVR1bYZdDc811yy ACK8tq1zUpInIacO1tK0gFkIBRXaUS0FLnGiPGsMvRkEdVY1KtvJWSBrcbg2+7EK LsHYX81NyKoLweezHWqE3ByEJyU7QNoIbVGLAtKU85ZqzY3X+9iNWPKsVXLbu+hF ZDe/wOdf7B1SxOSJSnHXHoNn4PeaVlmuMfXt13n46LhhLJfmI2YjtFbyoppiFnr6 D8E9ND7b+cs8uBqo2tKxFXFrLwrpCiEwHjUmtkX5cvuljxLo0DCvPEVQaqvfDCpt w3CmX2ILwCN2ot93HoFPTkTENFYN+4VtkgbMCldwumYr1BXsbI1jFdErwcZlCrXK P0JRyl6gjfdjeY8bBtgsfSNKgNukayWww14Ul664gGdlhtelxkrVl+pFZMBgyx0z KfT3KZ8OGGXuvwc9CUesFn4HfXqR8A9BmE36aTZ6/WUcEzH0Mfgbek37j9GNyBbu i5zpLyJkmgwJcuv1Z3aq/eoV5TEc6fSNaaFr0G6wcYADvRu+ZYvJTVYFJGiKRQNc H/kKDYcJar4ixawF6tRhmUrazOfaB93AMOwZirOzI1ODa+JUHKqOGsS9leHdbY+1 xXqRI8o/vpodlp9ypZ3gVHV6ONxiPmwWq0+vS+mep0PQBoyjeD1zAca8dT7yzmtr zDCH5j1j1VAtwRHGBzLX17+l4DSE/hEU3iHQm00/hMej8O2LWvsZnN67zLVd3K/o xujZRalbjgiC3UE4VLSu4xCPjpjH9NJmyjCAD3Eipfq30/xnlxXH0UQJRVR1kuqh 2e3t7msFfEhbl0W7RrGk6osa0hdR07jPF6RLp1GkP7YWVdBF57KJUw0AWlLaNsdA GoWeSVE3xO/4Gb+i+p8FrCfenQgteY+ZfQml46PpGV9INuuxFc47egFgmhO3O1E6 nXf0JpjMrbpqRrVptL+C9X4dv7D7PzLkNFjywaW8LRqxqqoKevVi/wB4y8O0wvzz xGtlvQVJu9yMAEliAw70zdC7Ov2LmpmIWF2ajELRA4IzEDaKbOYe85irWlDC4CU6 a2ruQExmmQ92oIHBoH0ViJPLYz5OWEApp3Vd13eqIS0ZC8X1eh8WqjoztKn0H7HT aaXiEz6CGrc+gjW8RWs3hNOMQTVA9DpbzHvHXE34QyTToHG81XV6oJTki65docU9 pxCg+E9GPwxRE1MntFupQ7BgaAqwBrCgAAEIGKQ7dNF8gv1mTZG3+BpCkMoDTUpP nnoFriO+7yMEQWKPuSosCOQEvwyhRwTF9gglNgdiz5JrL+QGwExZnZSIWlcrf39D yh6D4uCRWHt0cFyteDronaHpCUJ1M0axbbcvTSCZhyzxg9GPQgmS4nJieczWr0qX 8d6MfSeolUd4wq8LjETEBZppfMKNTIYRxiLll9D6ASpKrZY7wO+5FtBpSWrFfboF vQC+N5usVhjDkT2ivDcQdj3EpsCDeS8/2TsdR7pR95XvXR6Zn4lzZjqwPjPDpZnZ Pyum8drtD00B1LvbRFbvAWM50QAKCvgPquX6b6Pr26PV9J6iUSftPPtAbioOgche su2G4BPYlgiuFKx2bQLaMrtuw37ABzydt5S1jqRXNfkZZhvyVfaD1hVxPseInBTQ mzrBklhVpreXSJViiq2TgNalXUnGFeEzF5JRqQ5Gz0EDqOv6PeCHeNT43+ksZoPs YdVbe/Q9FaWr0UC3SNd8oCtGsIXq636jrvHrt6N/0D6T1kVKAgt30RQa6lm1NcGk cxdwKfRM7JYso8bESDrpt9y+UWgOBoLkTftnXD2lpguEXNR8xaimBGai5pv6RHCT IAPBgv5xwFPD6z/IFSrbI27WcxLrMBtQaeIr0EH2yr26Vcm7Fv8ASO5URrMHd1er pvaMPRUEAADbpiq+YFUawjbl+EdHpcx0161NJfW+uPS9X1HwDSUljKS0Hn6hauAX 3r+JxFr3ddeCDzVaBDOFxyn0VE6G9q+zxDgOWwO4T6gGPi6GIiiUNnWyDI6J7xn6 z3+r5qlw8RVV56EuX6xOAuFZFK6eaggaIsczOYyUjZKfVvFqNBlcBrDOAqO3PWoc vVQtq6dFYu0VwasE26vVrK9Fy/VfSumvWuty5cuXLj1fUfBHKDRJeqi7/wA6Z2LD h8MSwZ5cI5ezEnhwfNPxGuVW7vRf1uPTUqIqprbSAglAbL0WnaAJDkDUu6iVYxlU QW0a7xkM58poi+0UHhXxB19swlCjQ9mCOvLrUrrn0GALvHm5hIjw3q90CW78DFL+ VRBIgDHF0qZyS1nI5Vbsx0QWQMHtEVOp1OikFKJTcdpz1veD061odaQ5ayk+R6T1 vov0HWum/wAN6P6Gv5v5/rBeOKyiz2AWFnDXIzXqlSq2J7wIb4BRRnXvCjMmQZtY SItuU7Gx8pkruFbUo/MiuqRbbYXiiWsKTutWsOdJp/CYAjAFnCPO5UTYbrRbO1Z1 iZGqu4jYgMacDCmi8c9NYoBXaqw4j6NDoSxflHX0KRAoNuuQuhK+Xp06EOrNpXQ6 VA669L6b/Ef0hzvLJuNtAfeNWrGpdeWIWK5W369OBWLAdu18zIp0ApaABThEioIA 7SjQDpmayPryn7lwZCtY+1ek9OovaOvwgnA5h4u0AXSyiCi5A7kMrxoRqJFt16He 9YcWXSu3nEHtF4G5uOYRK22cO3t6NTx1vQaE36otGsLvdVoWVO7l6Pp0mkJfwLh1 Otx+Gv6GpXTMFIsxfsd4zRqDKJnyTufeWc9Bl7kjiyhdqVC/hTZ95qe1XmeH5JAt dC3f+pqRan2+AMxqgrQ/uBE2ivI1fG0PEJ3dmJodOBHsv6hhagFDZfohGm1DfBiL HYEHOqvO8VCbT08NQ4vUFlfy69LhYrVd+oZola9T6H4e3qOtTEIy+l+i5fS5fRfh nwWqzMUZZ2KKby5bzAt2O2UumS9cbzSCBpQV7suhR2IHf+4hfhnNW185mu6WgXs5 rZj1ipTtbSZM1COvQ9NSRZdBR4a+UHoDdAXXYQdIpoWD2GbJg3FXX05cQADQhgy0 x2hpzJY3bs9r0jawBjXXb7sbAbeHWGkcwUsovnOglxO6Ot2Hv0en4D42/Tbrp6SV KhH0vwF+GfAJz8onrR6jqxkl61GNVGg3cdpgBb7o7YiGkjarl1HiXCQ6X6TrmUaF fetzvL2M4dXm8PtGLLz9Ag2T5BUPYw2i1QbqjKRiKgLBWPrC+nklwvvXEbKtFg10 NPMGGJpCprmA3e00Y6grFVt1ety2nqPVXV616q9B+pPWYhFbnrTMymV6dIMhdwNX 7xVagFYgODo7fXf0bn0LN4fs4lAHXB9A7ktDM5ClPeUK3fTQ7vEGjslVrYH5mEht rt1WBx497WV1wDQm/R+0awAwaHqOj1JcfVt0I9L9LMfCfinWuo3bxFb1boXWs95B 7Qi4JSx013iZ5Yo4KZ7QsyORMicjuS8gaFtbHeBNfQ0LKuO28+vU9C8yPkblWNS0 8hLUXNWd7Kz3IKU2+w1WZvuPmdDV5xdS9d2Lb0SiBQe/x69b6K9b634x1vpdGdJ4 I0m/RM3SIZrkeWPTMNAwNO2x85g2MvxezLGtOO4y6xFsSF0abcFu7CMZidbSdajr 69TqdDT+513QsALpYiJWspW+bKgLAUa4jl7vSjZozXfI64U0OiLRA7z+nv0L1fhv 6PGmr1XtQAANPSMyQq0NR5ikoiIWYORr6QIYrcizwFsYAcrOU56MhgxSnXpqrkfg LKdSV0FNMeMfad/r10TvZ8xiUpxj5Ty7pO/StbXb9e9X1v6S87dAtqDUdMioUX9d ZnFMuHRdhKgiWZJg9GNfnO8kSNmsOzT1qh3j0Oj6Rfn/AAzLyP3nhSXNa0P2Bj8C /wBBXTboqT2jrfS+3HRgCF0z5I5a+hjLSMUNWC79WkpzFy0RbtHXtERp1PU6R4is MBUDK6BNx/JfyF1LhQTW9vzU9AZSGW9beZQMj3L+oQARloEV7kx/8cJYu+0csMtE xvOv6l+A+t/Sqn1NW5ly4q8HpMNwIXfaIWsuGadIIlnTtK8GN45tq4Pj1GJi+iFh oLvl44YUrEMDNmc7+8FGy7MiXcTB2NAMOBzzLbL3XAHLKFvN38vxGKXgC5ooxoyx s9+8E8uF1TUe0yg26e2/sD0fW/p4hodHTdo+m5bQbGnRFRDLdZ9uv2mVOBiU16uy Ews1U7BUIJR1GGlVk7TkI8wgpE0GEeKbQrGlxaq3QInhGxSfN1YEjQ6hR9p9sK3t cSy4KeHZLG9PMv6OpX6R/TH6+rsdBYduumxCIUnTaVcG51fUcjpgb7Agpjrv6zBK sF+WpRw4HYwICQLQEprR2IKRsACw+FYjGNZURw6OWiDjGwHzLEKBNbY4EPOsCWIr eRx9ol/C7r8dAomNvi36ri/Det+lf04odbqfzHSvrHQ22leQmRedCu494iNOEwjt ATkldCyberTlumgcxTCxdzdhS3PrRCOTSXHMKab6w3cIRMaA+uYX5Z3ARIgHcyKG GvfSZfCEYMDGHFUeUK/uGEsVlv8A5mKc9Miu3wb5wTu0eBP54hyIvtBHTP6F/W30 7cyhHXDJZo9AadeYjjvpBrJqNjKQI8b5O8eVANjNT0GF9FRx0a3gRZ5Xq/66Xgbf A3rG8qrqONoZgX6RcKGEegAsewDvM4DHjVVdFgduhryh68AZZrnS+tsTRCw1cwzp +huP6sem3949Aqn+d5t1uWaS9MwyOTzvNWHEqDqhl7jT5ynd4zu+8YFMTRe7vC6B jvNqdIg3kRH1FwLJdvJq5r76RBj3dX2NYkBTV6n24LagoHr/ACjFZjrXpVrUggs0 /SP6pAI6MeqVMjEMM0Jmem72xHb7HTOahBDa4tOHtP5HLVieXKYJZ4D6SkBvrL6Z 3d6XCbNYg06nqGVyc8i8paAu/wDXo+1BZPXTybxZmZ6V7yniU8Sutxn2YIlmj+jf 1YHvEVMegpo1DnjyzPRlRDqPf0dwY1jr0FghoHoxU9/UkZDABl9dztBk+q2flFVt 361cVy4ILaVwIvsidMM17SPXce3wdemnV9L+pOpOdYxyROmeqeEJo19GKNWL79VS PEdl9CWI7xhHrradHoR0gyMOT6rwND0BXyPUTDmb/wAnUUblS/P4JHq+l/UnpX2i 9noi3Z3ZhWh6U+lXlpNdNPRtff1EFG+IFvHRgsPEwHp/EuT36bzwBPtt6UjSPpyP oXNfSvV9L+wXL6aekFrf03HMOTeaI+3VBEdHWMmtPRXWvgetiIaLt6cGjr0J519Q tETPoZQXpcOhLi+p9L+uuX1eldN4gW6R7vl6iCNGB1gNyDdpS1GVbpKldbipuUD0 dK5mgHVhPoI9DkhgDooZWp3Joz1s5N43Hrqmg8SsTbpXwX0P7EelYHPrPSPtNAZq fkizL8+tdN91YegWjtHv0VCGhO7tGTjaXBTSUqdepizWKHPXeLH9rPhnTypGzHqr 1V0U/qUF6vQoDLsvn4Bpkp6WFnO0+i9FR6qGrUAtC9d5peh0+FX60+BtCPoNB6dY Ji9objO5O5KbMBoxLJ0unEcLNGvf0Ync+BhculQamHYhpxo9TWZCAkKWsvv13mj6 l/ZT17dD0WHCK1efQCtGswXAGhL9fap4yCjjWAwmj9+tVeY9X0AxvEprj1i0gUVL dW3TVmA8fFub9Nv2LaX026i0dUhAq3t8P69oOWDARXv943v0VI8RUPTToTXppPzn rubaEuCw9JsfCz0uPQ9T+wEv0UcEOhDh8CvST9EQ4dKliIR6jLh03YUa9QiZOCAB RpDpcEOtluPhX+1kqHUWjtGEICU+NltyUmOlUsxF9B1dQXFu0D3g9CZ6Y3VgOpCU dmOvX3H4Fy+l4/ZD13K66x0466N0g2j7euvRfXKGj0wDBsPWupGX0vogAq0DLEF0 PufkSrimA1eW4q66usZaTiV0oCdvTv0v49/qT116QMkZIZi1qo/xhem+0yY6K/Do S/WQidVoOrf2iCjyGV5YNi3sFcrMVZkXL4vWvUDWNSm1c+rePU+G/qz1Ev8AUZ3Z 6PU9T1RALWANVnhq8/2sQ1jtuUQL+nTaPJ6a8Wi8vBGwsVjQRCGDyrt2/SL+xn6K vT5k6Kj8CrY9uWsNuA98y6nSF8uYq3KBwGA66XpEtz9oqb5X5T+EDLQ50ThlNqav 5GPjXL6P649FdT9NZNbjIRUH1EqBeXR/J0hgtlXyuT7RABkRruTMm4Kml5R4qDa1 mCmn49GpaQAtBQrxPedI3D4Ip39o6ts15B3+PfwmH6W/Wfp8xBhIsJt6CayCofz7 R8VH77LIQQORseEg4xbOhnm2o8R1DWwbLHGj1q4hsN63e71C2iCG6ZfbKKj1SvfM x4avlv2J1V6/IdT2+Dcv4L6bi/qSY6bQ6bfpbnk6aPqS806eudU8TI3ctE2DGywX Vg2l40Ymsh5D6XERVdrW/VVl7QWPbfnD3asLaZDgf3GRKUtcduprbqHdhnAy+Rye o9OJj0PpuPoP0p8Q+KelBkeHq0nm/cG60geRLCPK2muLkCPzLIiIGo2NOTaJ00uo 7F49IWHlNn0qUa7Aqr+G8Ogqwb+WXqvNluNjs9L5b3P08/Eer+wn6jMPPq+3YPi4 /GtAsTDJKJyJ+wcyjKi1irR1h5X8hoPzEK6X0VU0h7naIaBSxRnTSVL8QV+dCZZl 2N+oMRWieMOj8del/AP0p69uu/W/0Fnj6sFjs+QS7y5vN+YtZZTihjkHCRgGBtGp xFad1t63tp379huwwem1vd7sWSIu6NMOVqcynJR+tss14CfQITXDXXR878Q0CmgZ Ytodw/8AI+cTl51A6hdhXfDpCtshWHK+lSpXq3j1Oj8M/TD8I/RJYkNLz6aX8s6L dPfpmXAvSCZ1cSkUtKL2DiEi3zbjdhmzk2PEXtLgL+0wfy+UCAT0vKaeC6auDCam g4KfSBWFyqptKgAdOjsOtdCXHoyvRfWyXNfUw/YXptD9GAab56HTeX2apfKbzW6M RcQhXcTaPqhtk7E+xDQFnIYGqnYcx2NFocDQgs8eC1TWuA3YvwnCe+7LMQ9qzDnP bia0vkyfJjXgd1HyKI3bnZZZwtgChf5ZgM1Tfp6l9F9b6npJf7NfU6XL+NfU8w07 hp0O095cBUCAe8vp3u0Pu+hAJNZL4GVj4WDhA0IHLFLC1R37eJXgHx+UMMIR2w/C YjkKvnRV389ibInFX6tzRF7RPOhjhaAs9B2lhGibclVPlUVFqkfbHpfTUejL9e/7 A+l+Fv8ACuV0RcGR/wAbxibsHBsQF76Rbhlo1hG3X0ePfNtzUHy2/aEpLKodF/wx VVLVtO7zKAjZVrTsMzTbAsb4vEK3AjWhb25mgeaD9xJZUGz95VHY9kkUVYt9CoCB it7HA6jLj6bj8I6X6D9OfBrodL6X6q25HfQ+bFe5IcZ0huH2TGrA90StfCBkxFs7 qx8zE79NoyXebnhNlN1qvLLNX5y52NOlBb29Nkv94YNdbG/dTEtmvYBCA0oJouh7 VcRNZlWs1FNc01MDUCjVAR1R13H8x3q0HyBb4srPYT2YEo0KniHdeqcFsIDzqOyc kr1WdXpXwCV0x1P1B8TSHpcYkt4uxLS1u21o0EytSkGMitOSVPgwFjoksToOBvAD vv1rB6bsnyY+6hK+kuC/YXsn0EtiW3B4Jcqpz0sW6Hpam6Ba6A1WEAPcC/UWEyJ0 7Ol98wNzxl7jTZ2mBco+QP7gMAshpuUb1HfJ74+WkVihuCi8tRC+3W1AaLuMTd/K 4RmjX2uXyUSmy2C+INRAxqyI7eGNW9wzxtQ7nEa6R7H2YtTd2L+0zTU1UCKXvEYW drdZauBFL0i6viURWAAWaHjmWtr2ER93jZfMitluMw9hlI5mhkfeV6r610f2hhK6 AqBlcAaviHBjl24vh7y5wR09LXsl5aynmWjFStU8zU+0zTRf5DzL9zoPK1jJN3q+ e/wLq8QW0QAD04pj+mfzKM0rAO739tYClc5ulwe7BC5oA0OA7QPjN5ehrsVAjaMt XmlKffrTMgq29m45Z7ui6xTqwAdU58zH20LlfubxWxtrL5X9o7ngL2Or54mZ4XkF 1exEUGdAtDb30mVqsorQa68EuAYdcJ/bvKvrQTZBgfPMFWNKgbtAv5nXwaDmF7cg +fo7kWVRW5jm+2Njn5dGX0DqdL9J+oPWek6GWjK4PMxoAN8hfzHWFtdtb5gqoq26 7pcdvdX9ikPrMryzA74PtEUbK3cw/M0x7MYvcHkv8PSm63B5SlExFtWV5e3S5t0q zqge7UrjSxTjA+hHQeFO6r7EwO6l7Gj7sTQwu+TQ+VzKkgJ2uJqot/r264cR2GQC 5UwlxaoPYX9yeK+cFPtMzsC+yCK0Jn3ItgIryoLTw27Cx9o8vlo9ysAudL18F/Eo BKkLe1yy6mhp4wB18xW2ZA7lj9otNQynBQ+8RAKK6aaV+eh8U/UHwNvQdCU5oP8A X2REpayryx6rdUuHsHmJqh2zMNQ9pd18iY/zjh94Pl/o3FtXnM97/ZXVQWzdaOls Eb2cQCK+TAoA0I+gWf8AK46vvcGq9fzwX3n1h/MDSyqndU+0TNLCe0AF1G34e5Ll ypN8uwcrFlbATnl92YndPYU+tzwTX3P7S3hC+DLNr5lq3r+PC33ihO9EF9l33BEX MBb+CfeeA3uIxkhbW1uaibZ60bAMrocrNYai/WsL99YbXWz8Kj7XE4pBBsoYIqyo Hnb3dT1HpP2UDMAtaAiFPSUXwUkAo1bdV5GwQsqNq5YaKQ4m8nbodoiO0tfWVHYO 3/AyualFOWPtMX2lAuMG4H9zuwWmYzb1sldEMaIjR9p7T6TdrYKRYA8NxSwAVaaF 5jrabn2yPvByfB31HuRsCVR8Qb03yeo7vIYWwtdREPkx6m8gZW1K44myjnEA7csQ PwewaYNZh/x1/pHeoNNgAwR1GKFOBp80/nia+lopuqB74hJaL52ML2C7WPoY7RQ+ J1XziAKMO4YDINB2sdx35IIwZxgg/hhtGAp1BjDhj8DoNXtbVisNj5oaYINw40Da d60czIWlv9B9J578SK9gleAXDs1fWXB4L7tOh6j9cfDIOyEz2Bodrh9GOoklUMqw aqxWK0yjhW170QoKvRAVzmWFjiZ7mdWNlUynd6X6LlxfRcETvxXeXnqIulB1OYqm aGR7kbqI+hw3I7oNahmmTzZGhLuzeQz7jSWZIYsUSKXS8rr5wtG0Khom5i0dWroP msMhj0yF79/BK84q8G7wESZFlcjX+ktZU/PWqeCYtwnaq+VmPlVbOiOp8oQbDW47 9yUg01aghoHtzLnAXdn5v6QBhhdoLj56RGq3Um4krLmtLXV+YG3itG45B4tBBE3Q DD3YIpe4XOdUdVVkTNX92DeKXYDSaKjdb8zrfquX+z19uB8byzK73eTBUt1dxh+o ygo74b2++3tMM4K9oGssoVbDgMB7EVW3X1PxN5fSx94TAtij8y7gXEbNuxMJtFzL XkrRiMqLFX52zDPwOAvjBACWtq3KveAaFVzTFv3GG2HI+9CCu0aLujl+IxUf/Icm XyihwRx/cdqkse8Jh7nqt0ItcBU+Ud5uw4HykzEILuBVDTcEPZ/bn2MGgyFKwDwm r2Q1DxeIHDmtW26viC+iwhdHrjmJl7YFfdbYaUO2CCSw53e/+Mx2NC+9p/URFqKP t0YfCP1J8Lz75+AiiwTVKL7+/E1Y61wv2gZdPAfLUwWWXtakbvbgjc2KDD8/gV8G +j1uUBtL2V2c5fhrAgKM65eOTtKV7AsX7qmXsA8gfTWALKFaVm4NpnaLvE/8IuyR aUmjO5zN23P2xl+cZF8AYBwHS4KVDRNYqtDe4X5WJkAooANF1YxCrmqulf6Qksa9 EDFnDKvH8L2kfxNYBvYXytFIp4AfY7RMTstcDP1QyrFDHA1arvOJ8q/y0j5VNVcw SEaTI+ISw0IfZ1PUeg/YxWYlQXVLz2iOOWjleGBlCDgUlYAp2VgTGBfG81+0YOxa 934Fx6X8UQGkvuTZI86P16+IhMJqJTcEQZPBlhqXcBz88IJxdWhGwO0oFs6vLu93 16hSEg6Dku3+MvMG4uub9mKUpW9WeyYj9k4BYNtB0Gw95xxCwqjJ9X2iXaGUQDFm D2lOieQ/RIO1Dd0+X9ogEdoOz3NSMJhkLUpx9+lwl9Lm/wCwHwSneN99IMlS1Ra9 mZrXebH0GOQIOtCffWVU3dety5cuXL61KldH4Fy+lst1cy72lYlxh1t6q2saCFgq jYXubiaS+t+h7ek3Xfe8O8NDrqMo5W8M9kFD5Q2juFYJuGglABeP4KuZ2+RCsQDp Qvk5gDO8G/k1F9XTSJTTyMsS3qXO/wAAh+uPgkIFQ2X8bzXIuKnsJisc8fzHNGYv SxLHXo/Dv4Fy+ty5fW5W0sSz4ODx9Rv/AB7TcM4QPov6xQ4zdEfZDpK+7vdXLTMA AKKHKxyyz7Tx/eZW9VvqsaLe4VX2jI1gE0j9UZeq6hgAaAIdD0kP199GHoJkvC3z vooFuKi9rjq9bh8W5cv0X6rSn03H0PRvI2d1aRwFXsYsPGktM0eB/DSLNXtKO/8A SFl/VQ16jI1nZcfWAkBlpoLYh0PUeg/WEuadbhDL5XwOlzTQj1slxeh6b9d+i/gM qeHrcv030J8nF9Zjsyzy37KmGcHc0B8Q6WzK0wf27Es6d+T6QYM91kQ7JCMegPsd T1GnoP1l9XrcwrW8d84Svyiy5f6R+A9SVLL+DZEGGSK1osNe8dnoDvXQt9Se0I9j EpsRHveV9tIAigaoD5usx8Shgas1pM7SKvnpfS+p6j9evopbRZ8bynN1+Dkj6cfo LjL9L6L9ffS+po95RtEartFKIC/mg/PEbXaoroar9SJXatezz9ZYDNFvdxrMYx7A N/Lqw3eFzXdNXzx1r0nqP1y+pzg78gx6gsvclF9gbsGTvpHZqIncxA7RE19Wketx +KdAt6r9QDIlB3Yrbvy9X3cxhutW75p7GYqxjM/o9zmEYAxWi857BE6AY3VzpXK6 QwdLaON/pFbc9s1fd6HU+AfspwPUB4sB8yymQKC37xVOH3oND8xI+zZtZn2CKqq2 vMubFNI06subfHslx65ggAnvH10C80p7hT6ywdg+eJgOgh4MH2lONU9gmPZJ5afi YLtQvCqBvSioN11fedpXovoftdwQIy8BY+xdTATGtfNDQmlm/wBJRgTtQByAnyeg CF6H5fBLlejk5aI2ay/Rfqvo9WX60XaALPXp+fuISnZF+dwIXH3rhKmiPsGOPkX9 32YAXoX71ZXFRK7SV1qPQh0Op+z75GGCw7Q3SD7ksgoCHzmdqWxNxyfSE2Fvdv8A 9SWRLfce9zTozZpbbHmIiiUjSOzDS1HS2GfrM3YBtU4VjecPtscsyxPwHHS/020R dpd56nV21GzsLfePiCn2Goq2XUdh0/PWDDXcju5PJrMd6J37dmLmwGA0DggSpUPS dDqfsl+i4cJDT/kwyCjHon3zZj9rgSmOEdufsZggqBl0dl64ZiwrfaeWlwUQNsKi +7qwLCWDdHF08sZMg0bHgIFLV0+2NvLFV8/Az6Ll/EvLe3Suly5cdZq12BgfZMAT tcCNAvEtWqNK0PBLsvIyvVXU6H7E/DvgW9b+YYAV2F/RmdItQOG4rpDoFVlPkH5I tnuhf5P4hlnyE952i88UbZ29o4rMwVqwt1eWZOFuPyzMrJOQoTgPzH9DfoZfSoze XL6ggBa4A3uJmjdhudzFNTswHtK9FSpnqwh+yMvpcfXcuBXDokISA2Gh4d+gAFNA KxxQRKkOh1PKNOayJhq7f4g18mFJr7o/wz/GCVKtNr1rv8C5t62HW49VkhodQFin IohQVwiSp9sON0WqrlXLz1CV0qV+1PxtfEs/r3iV3QXIdxpI5XPUKPlM/WUFv5sO YUaoADY2PLEgNhTWl8/VieIcD631gumYLtOxKtT1mpDQgOM2r1TgTNCGlMvys/KK Ws8qsv8AVcMMuHxK9xpJsMEOp6q6vQ6n7A/AI+q+gAAW1g4mvCaKIDJbGBYHggqd APNx8u3UWpvL6sv1ArRKwmohscsG05xavuKm4TZW/oCLWBqMFQgZM7TkEY129f0M x9XpzEBr0NnY2O7oRbxQUegbEtUC02VfBWrBXZ7qX9gYRBU224cHQhDqda6PoP2s 9TMntKtbKSH3S8B7rUrKoOg1O7CV7Wq9daOvofU7ojrLRvVrsd3aPU0aDfut0UtM 1AuvlEi2nxf2lUUFo2fa4umzl0vmiRYhq2PuMDBMxV29F1uJxdfsmB92ZBhDXVvQ d2BqDAeAbEKTDaLbfAzCn1haGlPfqdD1J6WEP3BLDF6zUXBPr6l9LozU/BPG0oO8 KgltCR52XnwxAIK2gws77DeFCQdML4CICKMiNMwWC775KpM+Dh09iDazDyYmdAeG 3fy8xchQwjqJEGuuZ3YihoR9girsWfaPlBABqTJRhZ2dI/VXVa2zAcwhll9B8B/b H0fSCaI9LDWD0zFazu/wDJ6vXmanR9WsuPg+aG1og+LzPcJ+WWArhgOBp/cHVtwF obD8wLHmJf0JpqPSX8rFvaaIBz+MJqrvqz8jsyp/pga3zxBCuyrc0Y6Xr2JdeIcH L+sYvc+1hC0TB+wQeadppw/AR2ssgCsNAmogq6iHxD9qJFFNYM3gRWZrjMwW73lD GLC9U5S/S6PiavTcOlzbQiSg0bHF5+kCZwzdmwmNurV3KTK9CBeDdl0Sj4B0IATq Ro+JfkcGK1zshcC++28WFwURMO1ckoGVUW2SfUXL/JH2g5Wtj732VBrNuYAUSv8A mrVwBurwS9lADSrQqw7xMlaRtyPvLcxQvdzH0YdGwMD2J5ETfMN/EYQSgnXYuoh8 J/bHQHXf0ITBnPedj6wCWadVk9o+h6otSoCWelV+F2N4BoRx6/YDeJa9B2LLQG72 mveuPzeG62afILqPnta8Bwdpbk2cpBREUTR3vmVGm2HQss+8IBuZ7tQG9lje2O42 l4HkONowVdlB22faayG43NkngwvfU9u/eAr9Aulmr7G3eJyTkM4ea8G7G0VHjBdr 4IVNUShzRT7RQptcq8s2hPztGM7qIxQh0Pgn7TcWtZoWhL+BczVzr1wUel9F65Le 0rezjV8Xyaxr3VlbGqxzMCnFth/cNRLxrnceX6QoCq7HW7G+/wBkJjbB3Bt41el9 CPM/PCnu0icgUzsGfAmZWvKyt9BLgV2k3rI+5Kq1UbsD+0AyWAtvq+6oAtpr7qXx fRO2B89ZwF17pq+cqRvL2YH5lgdR4zH0Bo6s7Qw4YYQYMP3Ooq0adUVEDux2noAd H0zry9YW1CE+cfLOvgD8zAsND3n2R2nCP5KH3gKgatEQgaL2DX4jxGgmu6X6EXJj A8tGsVcerfG+IVXaa51Ufljt6zUfYMxy5rj7N/1NZ2HsmZXZ1vncVVXVVi8ODbFI LBf1hSPv0uF/xQH9w1hBh0P296ak1PU+5L6AVM/Mmj6SoGpbmtfl0XpqeukS/Vfb Ym8OTlnveXwa03wU/Mz3fmlX+IZqvaV2IE86nsxEFccAdS36jKNoWBsRrudDGywK oL+u20MLkslUYKODaZvhD3ir6G5kSQB3cRm+KVwP6QcgR8sH78D2GGUrRa2mhPzF 3cl9mGE2HLkcjEUGRrUd4nhiUUEp9E/s2ZXQWXhy0RNc9pv+IuV0gdnBBzCEP3B6 7hEzNCGh0C2jVwTBl/BwQ3tnk/hUX1AWePqJiOnezvhw/MQrST3C/sQe4e67jpAH njtq/Yl0CtsPddjuQfsy31EybOUBKvxzMtDvyfKCQLnR1DVfLBEKNMKzwrT5RAwH otD/AGW05NXCDh/rLBovbbe7iNrhK+8GphbD2J9Ago2YTJ2SGwN7w2PnLbbVpwZr ybQTpavCMHwrTP8AchiKUqVXCeOGbveEB4d2XgKoCDN4MIft6+mtuDm4r7jp3EL6 xCrSvOaB3hC7S1EIUy3jQfLM0x0Gm5SrjSLQsVq+q2zodLiR1As4L/4iIEsUmlJD YVnT1a2+d5aHqG9U8mzLFn2aj3BUcrMGcE1E0ldC2ssqdR3rhmObiUArld3kbBCT oca1VrSzKwVaDpTR5D+WJFs5RQeX+ocphlynkTg2IcBb4Wmx/aK5GXdvW7gDRbze U8OpBBOiGq+5DLB9yvAypehU7jPzowh6ygVL1G29SBrIqIvBsNziZM42hX6VcLnr dhS5MBtCGsIQ/b304SJuCAq2q6P+VvFsC1HVOU8wBXaVX8nmKzaK+/Qb6LRKHy+o zKD0UApoUKwANRcflBsFtp1EYzdLc0p8qyW1bdEYHOjtcQhkV3EbaOVLINCypgoK SrB8wXLuNq8qyhFG1xw0/JKqlGYyLShrFyv1TAUPAgg3mGvYNveMBgFHoH+79FSA KswO8u5W7VexCPs06ZUJkWqovZd1eJTdcQaiadwmYcvuHRFhAITDbbTGEIQ/b34N z4b6yySUrytxaAl1gaYcHQYvqIspseq9toem5gAwYHgnh+ZazXNSs/SNratOQ/Ix zVajapt7mjMoj8nuK38SjUpsF3yahbCphqx+iAaxfP5a8GrCYSLGi7Huyoq7ukvn rFSSq6q+k8BhkBYxUSdabd9y/JUaNNGuCMJ90t8A6jo+Rhcpbz/liCFFaK4oV94a wOgIft76K9DBpHjPyl1agoKZDib1vxv0A9/QSgZXQIJaPA4frFVt9KLRAo9DCJ0s ZkDnT+BDM9Z2K5JQAvgLwr8TlI5aD5rLNjzFv2T2hpoAo9A4IAt5Oy/g1e/R9O0y UqrwNH+41/gtf6idK+P1Uw/KCKz9qH4lQhRRTNLlgQgQOh+3PpY9Ho3MwSTOnTtB DA+uRxxoRK07mH+yKJ4L3q5PsdLexowVPS3lPfX1VlvbohQVwF/aY7+jLkuBKZiC 2LwL6xwbhqCnzi2AF3RKRjSWEjqUwFBRrfLTjvKvvK/8gAFOmRfYmW7p0DTuXf7I qqra5V3X0svqQKCnVdt3O0UmE4Gk91MKNyS6NbRVVqtvvCCBD9wfS+mg+AwDexYw aDjxH8D5QWRC8CJzZioJ7CtvOcv2dGkNtNKHne4tt+nxk0Ie4lqPCnHB3iTVuye7 q+8xz7wyzkxv89ox+cRXjgd9YnnhodMSpU0zBogGlhu7uRFMNK2Tm6R4i8LH0qWV La/dOrMei/UTaIEGbJqBpAgQJUD9zfWwW605NyLbDUgJZMtYEQkW5a8VMIjaq2Ct WsQFai2aHoYi1Doh7QVDUGvziswDQNA0EQYqggao79vE4ju6B922Xpo2LxGMZi/f wGwcSpUqVKjvena6u71L9N9QRO6r7roRm15FggQJX7pfqWXKWtx+TVhDjKKmOjuR aCaO701bUIW6xg98duzf3SG0LuA6XyL9UtVVtcq795kFbfU961gBrS/5GkCVKlSo kQkoNj3hiNJwfwro9L646VK6UEwGU0DljqKYBz3YIIEr90fQx9CtWLXDNibpcjFt 67EsQBSg0Lm/S5fSotr0Z9X9xMR8L80faKhZa7G/+JVs82tHFwgQJUqVEiR7Kswu iShbb8+xlROtda6MYwMpoQ8fk5XLAgQP3i+i+qgy8kVW+j0LYqbV1Mu5PHHWyaVa jeEVfFpGtKqw8IgVQxB0Wqu81gQJUqV0qJEl4N9R0fMc3N1WnsxSgjw4ZUqVKlQS 0FuwZhmrLIcr+oaUp0OkCCBAh+7Mej0eoGMmZdfQhQW7ROkGrqNi+0G6X74DERTq 9psfQLx0NDI3e7db0zB4VG155MGZUuorGFPbQ8QhD11KiSoVUQ8Qmlb4ckzyN71O 55XK/lL+03ivgwSgog3TX5y127wggIEP3d6L1uLRbLsaOfS52lwdxACtq0jhsi5A XmipmzAXHKY+YgQS0sMNU68y8ojvR+kD7mq+LYpbNrVcvQQhD11KlSpUqV0VKgQJ XSv3hj1Z5iMs/L0VeI2rAooJXWmVKqEIQhD11K6VKlSpUqVKlSpX7ux65gGsZwYj bKZTBOkVrgmhGeZfS+h6CVCEPi1KlSpX72x6KGsrxCrrLQXaG5DezANCZlSpRKlS vUQh/wAYkTogs7U7Uo46nV6VK6V1qV0JXQ6V/wAUkToqVKlSpUqVKlSpUqVK9FQg /wDH1KlSpXWpUqV6KlSpUqVKlSvUf8NUrrUqVKlSpUqVKlSpUCVK6V6KlSvVf/D1 KlSpUqVKlSpUqVKldalSpUrrUqVKlSpUr/lq61KlSv8A9if/2gAIAQIDAT8Q/wDv 9X//2gAIAQMDAT8Q/wDv9X//2Q== ------------Ce2ljQkrvPB47m7td0y2SP Content-Disposition: inline; filename=category.suprofil-vlies-2010.png Content-Type: image/png; name=category.suprofil-vlies-2010.png Content-Location: http://www.p-interactive.com/site-marburg/images/layout/category.suprofil-vlies-2010.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAJYAAAAUEAYAAAA/6RhyAAAABGdBTUEAALGPC/xh BQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAA OpgAABdwnLpRPAAAAAZiS0dE////////CVj33AAAAAlwSFlzAAAASAAAAEgARslr PgAAAAl2cEFnAAAAlgAAABQA8EOfAgAAAWRJREFUeNrt20uOwjAMgGGKOB7bijMi ttylW8RFyqpCigjOo47j5v82SEMfruO6SWdmWpbX6/1e1xMAdO5sHQAApKJhdeb5 fDzu9+9n+PPY9lZx9hIPxnCxDkAq8Ot1nm836yjb5SF2vXvnQTpf7nZacWqJ1V1q PkqvOzeftec7GrOGpXXDAP9I9RT7vna/VnEeXfdLQmnAYqQlS+wz9XjSfqnHTz2u l6VWah5T8167X6j1Db6db7TGosVshrUNYFh4rQa29Mm19/dhHlpff+mMIpfWzGYv o85YvDF/hyVNoXsroN7i8UZriVQbD+Pqg3nDClk9YdFG7jhqPdCoK5/M3mF5eSdz dOHS0OpGTq2H2rhoVL519w4rtl3p/jFavy6W4hr1RinNi1Yec+tu7/ilmSJ19Ns0 2r/m8IQF/Or+zxoAYDPcDAuAX8ywALhBwwLgBg0LgBs0LABu0LAAuEHDAuDGB4Go 6KHTWHU0AAAAAElFTkSuQmCC ------------Ce2ljQkrvPB47m7td0y2SP Content-Disposition: inline; filename=category.la-veneziana.png Content-Type: image/png; name=category.la-veneziana.png Content-Location: http://www.p-interactive.com/site-marburg/images/layout/category.la-veneziana.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAJYAAAAUEAYAAAA/6RhyAAAABGdBTUEAALGPC/xh BQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAA OpgAABdwnLpRPAAAAAZiS0dE////////CVj33AAAAAlwSFlzAAALiQAAC4kBN8nL rQAAAAl2cEFnAAAAlgAAABQA8EOfAgAAASBJREFUeNrt20sOREAUheHW6eWZijWK qb2Yio3okYmkgluve/i/aTd1y+O4JdHM87Ks67Z9AMC5b+0CAOAqAguAjGqBNU3j OAy1p2+vx1v9pbx13vCBDgu3tG3X9X3tKvBWv9oFWIWe9NYbat9u329oP2e/W+s7 61xKjxfa/urx8TpvaJMLrFSB4rW+u9tZx0t9/FTmDW1ygXXshHLv/2rndVT6XU/s eLE3eO7zUns8+CAXWNYlSWmln+y1O4nS50XlOkBaj3npnvoCtXZWpeuMHS/30snb fKGteod196VraCngZYlwVkfqYLCOd/x/bL2lz4v36wB5NHyaA0DFY5aEAJ6PwAIg g8ACIIPAAiCDwAIgg8ACIIPAAiCDwAIg4w+tBW7gZa6ExAAAAABJRU5ErkJggg== ------------Ce2ljQkrvPB47m7td0y2SP Content-Disposition: inline; filename=category.solid-contract.png Content-Type: image/png; name=category.solid-contract.png Content-Location: http://www.p-interactive.com/site-marburg/images/layout/category.solid-contract.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAJYAAAAUEAYAAAA/6RhyAAAABGdBTUEAALGPC/xh BQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAA OpgAABdwnLpRPAAAAAZiS0dE////////CVj33AAAAAlwSFlzAAAASAAAAEgARslr PgAAAAl2cEFnAAAAlgAAABQA8EOfAgAAATRJREFUeNrt20EOgjAQhWExHo8t8YzG LXdhS7gIrtw0mXSm1k6H/t9OpXbalEcxOG3bvh/Hed4AoHN37wIAQGu4wFrX9/v1 0r9f+n0A6nt4F5A74ed5WZ7P/9fRqp/e5yFXn3cdV60XOm6BpV1QV194zAOg577D ytGeyNZ20vdI7Wrf+lkDyFpX6TjSdunx6evv8el4pONK69a209aLmNwCS7uwJdqA +XWBtg6y2nVJn2vbSYFUWpe1/9LxsiO9JvcdVu7Ky4KLxXrBad0vYnMPrJT1yopY et2xIga3xxpGX5jSLbFk9PnKYX7G0N1vWNJx1va1dmTWYGk1D63Gn+vP2k/pfFrH W6te9GXirzkAohjuSXcAcRFYAMIgsACEQWABCIPAAhAGgQUgDAILQBgEFoAwPl6O cERcm2iwAAAAAElFTkSuQmCC ------------Ce2ljQkrvPB47m7td0y2SP Content-Disposition: inline; filename=button-howtouse.png Content-Type: image/png; name=button-howtouse.png Content-Location: http://www.p-interactive.com/site-marburg/images/layout/button-howtouse.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAJYAAAAUCAYAAABvecQxAAAAAXNSR0IArs4c6QAA AJlJREFUaN7t2UEKhDAQBdFx8HhuxTOKW+/idpiL6KpBxCAEIwRfgSQmkIAUvxts lt9//QA38/UJQCy8Q6x5Gi/XU/N4T52BumlLX9D1Q1K+1B6UwqxUi7VjmkkwYt2S YjFGesVDLqWQBCgj1lmflCMbQYn1aJMPPVbRhh8SKyut9jJJr/pp/CvEa0ohiAUQ C8QCsQBigViomQ0xUDqp9BOsowAAAABJRU5ErkJggg== ------------Ce2ljQkrvPB47m7td0y2SP Content-Disposition: inline; filename=button-copyright-pinteractive.png Content-Type: image/png; name=button-copyright-pinteractive.png Content-Location: http://www.p-interactive.com/site-marburg/images/layout/button-copyright-pinteractive.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAJ8AAAAkCAYAAACXFuhWAAAAAXNSR0IArs4c6QAA AAlwSFlzAAALiQAAC4kBN8nLrQAAAAd0SU1FB9gJFwcKDXN2uwcAAAH8SURBVHja 7ZpRbsMgDIaXqReb1GNX2jH6Wu0i28MUiTIbGzCBdN8nTVrSJIDzxzaY7f74+n4D mMA7JgDEB4gPAPEB4gNAfID4Pm+3P3+l66LOpb+NZPTzV217Bpda43xcr+b59Hj/ v+fckZTaG9Gf9JlHj/VU4pO+Uslgo42Yt10Sf+5RrL6lH0F6z36cfxx5PyxRp/fk z5Q+QKlP2hik3719nCH8S+/XGnFdbgTLyLnoSi9Ou6fGC1pe2fJemnC1/krjsSJC TRSxxrC0+DwCiQhDow1S4xFbcjSPJxyRE54lfDeHXW/4Wpne/nnzQ0k0rVEhMjKd Snx5LqQZJQ0zWr6j5SStuU0p5Fo5aotnlvJCy1NpY7NCr2R7LfWoteVMtlfa1eKd jcNJ1/nOJjxYl439fIDnA8QHsLz40plXPruVrs1rwaU1q4gap6f+fHROCs90VTha qgWtk4PedTEmJC8ivujZqbZ+tR+X6qq5yLweyKr9WjVRb+0VjxcovtLCpzfs1Aiq Z7eL1Kantuqp23pqr1aVA/EdlL9EvgTvyr3UZk3VgbxuQfH1vKQab+kVs+UFLbF6 d6fU2AWCxVeqQUZ4sZqJTssLL+3TS5/lacNTe9XGxuTnl+kVjtl7yuAfi0+bgQLi AxgG5TVAfID4ABAfID4AxAeIDyCMHwMySFMjo3w/AAAAAElFTkSuQmCC ------------Ce2ljQkrvPB47m7td0y2SP Content-Disposition: inline; filename=1x1-trans.gif Content-Type: image/gif; name=1x1-trans.gif Content-Location: http://www.p-interactive.com/site-marburg/images/layout/1x1-trans.gif Content-Transfer-Encoding: Base64 R0lGODlhAQABAIAAAP///////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQB CgABACwAAAAAAQABAAACAkwBADs= ------------Ce2ljQkrvPB47m7td0y2SP Content-Disposition: inline; filename=scene-zoom-icon.gif Content-Type: image/gif; name=scene-zoom-icon.gif Content-Location: http://www.p-interactive.com/site-marburg/images/layout/scene-zoom-icon.gif Content-Transfer-Encoding: Base64 R0lGODlhFAAUAMZqAAAAAHZ2dlik3Vel4ZmZmV6m3GKo3V6p4mSp3GSs4mWt42at 42uw42yw5G2x5HSx33Kz5HO05HS05XW15Yux0o+x0JGy0Hq35aWuwXu45Xu45oa2 2oK544G75oK75oO854i+54i/54m/54q/6J+71ae80Lu4wLy4v7y4wL24v4/C6JDC 6L65wJHD6JbD5am/1be+y5bF6ZfG6ZjG6bTB0ZjH6cW/w7nCzsLCwp3J6p7J6p7K 6p/K6qTN67zI1qXN68THzcLH1L/I1qbO66fO68TI1rjM3MTJ18XK16vQ7MDM2MbL 2KzR7K3R7MfM2a7S7MrO07PU7bzT5LTV7bXV7cLU48jV37rY7rvY7bvY7rvZ7sHc 78/Z5MLc78Pc783b59fa38jf8Mnf8Mrg8Nvf5dvg5tzg5tDj8dHj8djn8v////// //////////////////////////////////////////////////////////////// /////////////////yH5BAEKAH8ALAAAAAAUABQAAAergH+Cg4SFhoeIiYUwQj40 GIqEXGloY15YLziRX2diXVpUT0QkBIlKYVtZU01DPDUtFAGIVVdRTD87My0jHxYA iFJJPToyKyIeGhMUv4dGOTEqIR0ZEg4LFcyGUC4gHRcRDQoHBgDZhlYcEAwJBwMC JeaFZEFADw8FCBs35YhkRSnlSlRYxu8QmSMn+JUreKgMEhQMI5lZAjFeIjBOTESM ZIPFxkh/PoIcSSgQADs= ------------Ce2ljQkrvPB47m7td0y2SP Content-Disposition: inline; filename=ajaxload-large-black-ffffff.gif Content-Type: image/gif; name=ajaxload-large-black-ffffff.gif Content-Location: http://www.p-interactive.com/site-marburg/images/layout/ajaxload-large-black-ffffff.gif Content-Transfer-Encoding: Base64 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 ------------Ce2ljQkrvPB47m7td0y2SP Content-Disposition: inline; filename=texture-zoom-icon.gif Content-Type: image/gif; name=texture-zoom-icon.gif Content-Location: http://www.p-interactive.com/site-marburg/images/layout/texture-zoom-icon.gif Content-Transfer-Encoding: Base64 R0lGODlhFAAUAMZqAAAAAHZ2dlik3Vel4ZmZmV6m3GKo3V6p4mSp3GSs4mWt42at 42uw42yw5G2x5HSx33Kz5HO05HS05XW15Yux0o+x0JGy0Hq35aWuwXu45Xu45oa2 2oK544G75oK75oO854i+54i/54m/54q/6J+71ae80Lu4wLy4v7y4wL24v4/C6JDC 6L65wJHD6JbD5am/1be+y5bF6ZfG6ZjG6bTB0ZjH6cW/w7nCzsLCwp3J6p7J6p7K 6p/K6qTN67zI1qXN68THzcLH1L/I1qbO66fO68TI1rjM3MTJ18XK16vQ7MDM2MbL 2KzR7K3R7MfM2a7S7MrO07PU7bzT5LTV7bXV7cLU48jV37rY7rvY7bvY7rvZ7sHc 78/Z5MLc78Pc783b59fa38jf8Mnf8Mrg8Nvf5dvg5tzg5tDj8dHj8djn8v////// //////////////////////////////////////////////////////////////// /////////////////yH5BAEKAH8ALAAAAAAUABQAAAergH+Cg4SFhoeIiYUwQj40 GIqEXGloY15YLziRX2diXVpUT0QkBIlKYVtZU01DPDUtFAGIVVdRTD87My0jHxYA iFJJPToyKyIeGhMUv4dGOTEqIR0ZEg4LFcyGUC4gHRcRDQoHBgDZhlYcEAwJBwMC JeaFZEFADw8FCBs35YhkRSnlSlRYxu8QmSMn+JUreKgMEhQMI5lZAjFeIjBOTESM ZIPFxkh/PoIcSSgQADs= ------------Ce2ljQkrvPB47m7td0y2SP Content-Disposition: inline; filename=ajaxload-progressbar-black.gif Content-Type: image/gif; name=ajaxload-progressbar-black.gif Content-Location: http://www.p-interactive.com/site-marburg/images/layout/ajaxload-progressbar-black.gif Content-Transfer-Encoding: Base64 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 ------------Ce2ljQkrvPB47m7td0y2SP Content-Disposition: inline; filename=scene-zoom-buttonbar.png Content-Type: image/png; name=scene-zoom-buttonbar.png Content-Location: http://www.p-interactive.com/site-marburg/images/layout/scene-zoom-buttonbar.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAA94AAAAWCAIAAAC5XNM4AAAAAXNSR0IArs4c6QAA AS5JREFUeNrt3UEOgjAQBdBivAX1rtxVOAcuTAgiCq0YKb63MMaWhrD6mQxj1fd9 AAAAfu3kEQAAgGgOAACI5gAAsCdnjwAAANZruy7jqljXi3tUzQEAYBdEcwAAEM0B AADRHAAAdsVroAAAlKRpmpU/Pu8ZzC5tdYeXGK9tm3Fh5d9AAQAoOql/nqqTDlmc 0HKJMYQwSecmtAAA8C+5/NWX8Wd4rK+/qqBvcm/3gJ5EQwsAAMXn8ow9w9JiWM9O 3qmdLarmAAAcM5eH1T3oqbn8S1TNAQA4Zi7PODP15Nmi+FBQT30ZVNUcAIDj5PL3 wfrNdJfNs37GkBZVcwAAykvnGfF6sjruNZ/0tHwe0w1PBACAr1scnjjL8EQAACiG aA4AAKI5AAAgmgMAwK7cAJkxglbO6TrXAAAAAElFTkSuQmCC ------------Ce2ljQkrvPB47m7td0y2SP Content-Disposition: inline; filename=texture-zoom-buttonbar.png Content-Type: image/png; name=texture-zoom-buttonbar.png Content-Location: http://www.p-interactive.com/site-marburg/images/layout/texture-zoom-buttonbar.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAu4AAAAWCAIAAAAQIY7AAAAAAXNSR0IArs4c6QAA AQ9JREFUeNrt3UEKgkAYgNExuoXTXb1reg5bBGKjjk4pJb23iFALcfXxO1bV930A ADini0sAAEgZAAApAwBQ4uoSAABf13bdG5+KdW0qAwCcmJQBAKQMAICUAQAoYtkv ABCaptm4cXrMYHbXXmd4i/HettPtlV/7BQCOqJCiL1l9gukWYwghqRlPMAEAuQRZ ejN+Da/zm6UJzS7n9gyaMTeYAICQD5Htxwy7VuNmY6nMHjOezZjKAABlzVF0zL4r ZqZMZQCAo5ojsyg4Y3Z57zCwSfaaygAAKx2TD5HM00+7t9G0ckxlAID5ItmSI8ne 8VqZ5B7T51njYWwA4Ef5O0kA4B9JGQBAygAASBkAgCIPANSCVifzqnsAAAAASUVO RK5CYII= ------------Ce2ljQkrvPB47m7td0y2SP Content-Disposition: inline; filename=default.js Content-Type: application/x-javascript; charset=utf-8; name=default.js Content-Location: http://www.p-interactive.com/site-marburg/js/ Content-Transfer-Encoding: Base64 LyogIFByb3RvdHlwZSBKYXZhU2NyaXB0IGZyYW1ld29yayAtIENvcHlyaWdodCAo YykgU2FtIFN0ZXBoZW5zb24uIFByb3RvdHlwZSBpcyBmcmVlbHkgZGlzdHJpYnV0 YWJsZSB1bmRlciB0aGUgdGVybXMgb2YgYW4gTUlULXN0eWxlIGxpY2Vuc2UuIEZv ciBkZXRhaWxzLCBzZWUgdGhlIFByb3RvdHlwZSB3ZWIgc2l0ZTogaHR0cDovL3d3 dy5wcm90b3R5cGVqcy5vcmcvICovDQp2YXIgUHJvdG90eXBlPXtWZXJzaW9uOiIx LjYuMV9yYzIiLEJyb3dzZXI6e0lFOiEhKHdpbmRvdy5hdHRhY2hFdmVudCYmbmF2 aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJPcGVyYSIpPT09LTEpLE9wZXJhOm5h dmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiT3BlcmEiKT4tMSxXZWJLaXQ6bmF2 aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJBcHBsZVdlYktpdC8iKT4tMSxHZWNr bzpuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkdlY2tvIik+LTEmJm5hdmln YXRvci51c2VyQWdlbnQuaW5kZXhPZigiS0hUTUwiKT09PS0xLE1vYmlsZVNhZmFy aTohIW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0FwcGxlLipNb2JpbGUuKlNh ZmFyaS8pfSxCcm93c2VyRmVhdHVyZXM6e1hQYXRoOiEhZG9jdW1lbnQuZXZhbHVh dGUsU2VsZWN0b3JzQVBJOiEhZG9jdW1lbnQucXVlcnlTZWxlY3RvcixFbGVtZW50 RXh0ZW5zaW9uczooZnVuY3Rpb24oKXtpZih3aW5kb3cuSFRNTEVsZW1lbnQmJndp bmRvdy5IVE1MRWxlbWVudC5wcm90b3R5cGUpe3JldHVybiB0cnVlfWlmKHdpbmRv dy5FbGVtZW50JiZ3aW5kb3cuRWxlbWVudC5wcm90b3R5cGUpe3JldHVybiB0cnVl fX0pKCksU3BlY2lmaWNFbGVtZW50RXh0ZW5zaW9uczooZnVuY3Rpb24oKXtpZih0 eXBlb2Ygd2luZG93LkhUTUxEaXZFbGVtZW50IT09InVuZGVmaW5lZCIpe3JldHVy biB0cnVlfXZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKGEu X19wcm90b19fJiZhLl9fcHJvdG9fXyE9PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo ImZvcm0iKVsiX19wcm90b19fIl0pe3JldHVybiB0cnVlfXJldHVybiBmYWxzZX0p KCl9LFNjcmlwdEZyYWdtZW50OiI8c2NyaXB0W14+XSo+KFtcXFNcXHNdKj8pPFwv c2NyaXB0PiIsSlNPTkZpbHRlcjovXlwvXCotc2VjdXJlLShbXHNcU10qKVwqXC9c cyokLyxlbXB0eUZ1bmN0aW9uOmZ1bmN0aW9uKCl7fSxLOmZ1bmN0aW9uKGEpe3Jl dHVybiBhfX07aWYoUHJvdG90eXBlLkJyb3dzZXIuTW9iaWxlU2FmYXJpKXtQcm90 b3R5cGUuQnJvd3NlckZlYXR1cmVzLlNwZWNpZmljRWxlbWVudEV4dGVuc2lvbnM9 ZmFsc2V9dmFyIEFic3RyYWN0PXt9O3ZhciBUcnk9e3RoZXNlOmZ1bmN0aW9uKCl7 dmFyIGM7Zm9yKHZhciBiPTAsZj1hcmd1bWVudHMubGVuZ3RoO2I8ZjtiKyspe3Zh ciBhPWFyZ3VtZW50c1tiXTt0cnl7Yz1hKCk7YnJlYWt9Y2F0Y2goZyl7fX1yZXR1 cm4gY319O3ZhciBDbGFzcz0oZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7dmFyIGg9 bnVsbCxnPSRBKGFyZ3VtZW50cyk7aWYoT2JqZWN0LmlzRnVuY3Rpb24oZ1swXSkp e2g9Zy5zaGlmdCgpfWZ1bmN0aW9uIGMoKXt0aGlzLmluaXRpYWxpemUuYXBwbHko dGhpcyxhcmd1bWVudHMpfU9iamVjdC5leHRlbmQoYyxDbGFzcy5NZXRob2RzKTtj LnN1cGVyY2xhc3M9aDtjLnN1YmNsYXNzZXM9W107aWYoaCl7dmFyIGU9ZnVuY3Rp b24oKXt9O2UucHJvdG90eXBlPWgucHJvdG90eXBlO2MucHJvdG90eXBlPW5ldyBl O2guc3ViY2xhc3Nlcy5wdXNoKGMpfWZvcih2YXIgZj0wO2Y8Zy5sZW5ndGg7Zisr KXtjLmFkZE1ldGhvZHMoZ1tmXSl9aWYoIWMucHJvdG90eXBlLmluaXRpYWxpemUp e2MucHJvdG90eXBlLmluaXRpYWxpemU9UHJvdG90eXBlLmVtcHR5RnVuY3Rpb259 Yy5wcm90b3R5cGUuY29uc3RydWN0b3I9YztyZXR1cm4gY31mdW5jdGlvbiBiKGsp e3ZhciBmPXRoaXMuc3VwZXJjbGFzcyYmdGhpcy5zdXBlcmNsYXNzLnByb3RvdHlw ZTt2YXIgZT1PYmplY3Qua2V5cyhrKTtpZighT2JqZWN0LmtleXMoe3RvU3RyaW5n OnRydWV9KS5sZW5ndGgpe2lmKGsudG9TdHJpbmchPU9iamVjdC5wcm90b3R5cGUu dG9TdHJpbmcpe2UucHVzaCgidG9TdHJpbmciKX1pZihrLnZhbHVlT2YhPU9iamVj dC5wcm90b3R5cGUudmFsdWVPZil7ZS5wdXNoKCJ2YWx1ZU9mIil9fWZvcih2YXIg Yz0wLGc9ZS5sZW5ndGg7YzxnO2MrKyl7dmFyIGo9ZVtjXSxoPWtbal07aWYoZiYm T2JqZWN0LmlzRnVuY3Rpb24oaCkmJmguYXJndW1lbnROYW1lcygpLmZpcnN0KCk9 PSIkc3VwZXIiKXt2YXIgbD1oO2g9KGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlv bigpe3JldHVybiBmW25dLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KShqKS53cmFw KGwpO2gudmFsdWVPZj1sLnZhbHVlT2YuYmluZChsKTtoLnRvU3RyaW5nPWwudG9T dHJpbmcuYmluZChsKX10aGlzLnByb3RvdHlwZVtqXT1ofXJldHVybiB0aGlzfXJl dHVybntjcmVhdGU6YSxNZXRob2RzOnthZGRNZXRob2RzOmJ9fX0pKCk7KGZ1bmN0 aW9uKCl7ZnVuY3Rpb24gbihzKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0 cmluZy5jYWxsKHMpLm1hdGNoKC9eXFtvYmplY3RccyguKilcXSQvKVsxXX1mdW5j dGlvbiBqKHMsdSl7Zm9yKHZhciB0IGluIHUpe3NbdF09dVt0XX1yZXR1cm4gc31m dW5jdGlvbiBtKHMpe3RyeXtpZihlKHMpKXtyZXR1cm4idW5kZWZpbmVkIn1pZihz PT09bnVsbCl7cmV0dXJuIm51bGwifXJldHVybiBzLmluc3BlY3Q/cy5pbnNwZWN0 KCk6U3RyaW5nKHMpfWNhdGNoKHQpe2lmKHQgaW5zdGFuY2VvZiBSYW5nZUVycm9y KXtyZXR1cm4iLi4uIn10aHJvdyB0fX1mdW5jdGlvbiBsKHMpe3ZhciB1PXR5cGVv ZiBzO3N3aXRjaCh1KXtjYXNlInVuZGVmaW5lZCI6Y2FzZSJmdW5jdGlvbiI6Y2Fz ZSJ1bmtub3duIjpyZXR1cm47Y2FzZSJib29sZWFuIjpyZXR1cm4gcy50b1N0cmlu ZygpfWlmKHM9PT1udWxsKXtyZXR1cm4ibnVsbCJ9aWYocy50b0pTT04pe3JldHVy biBzLnRvSlNPTigpfWlmKGgocykpe3JldHVybn12YXIgdD1bXTtmb3IodmFyIHcg aW4gcyl7dmFyIHY9bChzW3ddKTtpZighZSh2KSl7dC5wdXNoKHcudG9KU09OKCkr IjogIit2KX19cmV0dXJuInsiK3Quam9pbigiLCAiKSsifSJ9ZnVuY3Rpb24gYyhz KXtyZXR1cm4gJEgocykudG9RdWVyeVN0cmluZygpfWZ1bmN0aW9uIGYocyl7cmV0 dXJuIHMmJnMudG9IVE1MP3MudG9IVE1MKCk6U3RyaW5nLmludGVycHJldChzKX1m dW5jdGlvbiBxKHMpe3ZhciB0PVtdO2Zvcih2YXIgdSBpbiBzKXt0LnB1c2godSl9 cmV0dXJuIHR9ZnVuY3Rpb24gbyhzKXt2YXIgdD1bXTtmb3IodmFyIHUgaW4gcyl7 dC5wdXNoKHNbdV0pfXJldHVybiB0fWZ1bmN0aW9uIGsocyl7cmV0dXJuIGooe30s cyl9ZnVuY3Rpb24gaChzKXtyZXR1cm4gISEocyYmcy5ub2RlVHlwZT09MSl9ZnVu Y3Rpb24gZyhzKXtyZXR1cm4gbihzKT09PSJBcnJheSJ9ZnVuY3Rpb24gcihzKXty ZXR1cm4gcyBpbnN0YW5jZW9mIEhhc2h9ZnVuY3Rpb24gYihzKXtyZXR1cm4gdHlw ZW9mIHM9PT0iZnVuY3Rpb24ifWZ1bmN0aW9uIGEocyl7cmV0dXJuIG4ocyk9PT0i U3RyaW5nIn1mdW5jdGlvbiBwKHMpe3JldHVybiBuKHMpPT09Ik51bWJlciJ9ZnVu Y3Rpb24gZShzKXtyZXR1cm4gdHlwZW9mIHM9PT0idW5kZWZpbmVkIn1qKE9iamVj dCx7ZXh0ZW5kOmosaW5zcGVjdDptLHRvSlNPTjpsLHRvUXVlcnlTdHJpbmc6Yyx0 b0hUTUw6ZixrZXlzOnEsdmFsdWVzOm8sY2xvbmU6ayxpc0VsZW1lbnQ6aCxpc0Fy cmF5OmcsaXNIYXNoOnIsaXNGdW5jdGlvbjpiLGlzU3RyaW5nOmEsaXNOdW1iZXI6 cCxpc1VuZGVmaW5lZDplfSl9KSgpO09iamVjdC5leHRlbmQoRnVuY3Rpb24ucHJv dG90eXBlLChmdW5jdGlvbigpe3ZhciBtPUFycmF5LnByb3RvdHlwZS5zbGljZTtm dW5jdGlvbiBlKHEsbil7dmFyIHA9cS5sZW5ndGgsbz1uLmxlbmd0aDt3aGlsZShv LS0pe3FbcCtvXT1uW29dfXJldHVybiBxfWZ1bmN0aW9uIGsobyxuKXtvPW0uY2Fs bChvLDApO3JldHVybiBlKG8sbil9ZnVuY3Rpb24gaCgpe3ZhciBuPXRoaXMudG9T dHJpbmcoKS5tYXRjaCgvXltcc1woXSpmdW5jdGlvblteKF0qXCgoW14pXSopXCkv KVsxXS5yZXBsYWNlKC9cL1wvLio/W1xyXG5dfFwvXCooPzoufFtcclxuXSkqP1wq XC8vZywiIikucmVwbGFjZSgvXHMrL2csIiIpLnNwbGl0KCIsIik7cmV0dXJuIG4u bGVuZ3RoPT0xJiYhblswXT9bXTpufWZ1bmN0aW9uIGoocCl7aWYoYXJndW1lbnRz Lmxlbmd0aDwyJiZPYmplY3QuaXNVbmRlZmluZWQoYXJndW1lbnRzWzBdKSl7cmV0 dXJuIHRoaXN9dmFyIG49dGhpcyxvPW0uY2FsbChhcmd1bWVudHMsMSk7cmV0dXJu IGZ1bmN0aW9uKCl7dmFyIHE9ayhvLGFyZ3VtZW50cyk7cmV0dXJuIG4uYXBwbHko cCxxKX19ZnVuY3Rpb24gZyhwKXt2YXIgbj10aGlzLG89bS5jYWxsKGFyZ3VtZW50 cywxKTtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIHE9ZShbcnx8d2luZG93LmV2ZW50 XSxvKTtyZXR1cm4gbi5hcHBseShwLHEpfX1mdW5jdGlvbiBsKCl7aWYoIWFyZ3Vt ZW50cy5sZW5ndGgpe3JldHVybiB0aGlzfXZhciBuPXRoaXMsbz1tLmNhbGwoYXJn dW1lbnRzLDApO3JldHVybiBmdW5jdGlvbigpe3ZhciBwPWsobyxhcmd1bWVudHMp O3JldHVybiBuLmFwcGx5KHRoaXMscCl9fWZ1bmN0aW9uIGYocCl7dmFyIG49dGhp cyxvPW0uY2FsbChhcmd1bWVudHMsMSk7cD1wKjEwMDA7cmV0dXJuIHdpbmRvdy5z ZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIG4uYXBwbHkobixvKX0scCl9ZnVu Y3Rpb24gYSgpe3ZhciBuPWUoWzAuMDFdLGFyZ3VtZW50cyk7cmV0dXJuIHRoaXMu ZGVsYXkuYXBwbHkodGhpcyxuKX1mdW5jdGlvbiBjKG8pe3ZhciBuPXRoaXM7cmV0 dXJuIGZ1bmN0aW9uKCl7dmFyIHA9ZShbbi5iaW5kKHRoaXMpXSxhcmd1bWVudHMp O3JldHVybiBvLmFwcGx5KHRoaXMscCl9fWZ1bmN0aW9uIGIoKXtpZih0aGlzLl9t ZXRob2RpemVkKXtyZXR1cm4gdGhpcy5fbWV0aG9kaXplZH12YXIgbj10aGlzO3Jl dHVybiB0aGlzLl9tZXRob2RpemVkPWZ1bmN0aW9uKCl7dmFyIG89ZShbdGhpc10s YXJndW1lbnRzKTtyZXR1cm4gbi5hcHBseShudWxsLG8pfX1yZXR1cm57YXJndW1l bnROYW1lczpoLGJpbmQ6aixiaW5kQXNFdmVudExpc3RlbmVyOmcsY3Vycnk6bCxk ZWxheTpmLGRlZmVyOmEsd3JhcDpjLG1ldGhvZGl6ZTpifX0pKCkpO0RhdGUucHJv dG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiciJyt0aGlzLmdldFVUQ0Z1 bGxZZWFyKCkrIi0iKyh0aGlzLmdldFVUQ01vbnRoKCkrMSkudG9QYWRkZWRTdHJp bmcoMikrIi0iK3RoaXMuZ2V0VVRDRGF0ZSgpLnRvUGFkZGVkU3RyaW5nKDIpKyJU Iit0aGlzLmdldFVUQ0hvdXJzKCkudG9QYWRkZWRTdHJpbmcoMikrIjoiK3RoaXMu Z2V0VVRDTWludXRlcygpLnRvUGFkZGVkU3RyaW5nKDIpKyI6Iit0aGlzLmdldFVU Q1NlY29uZHMoKS50b1BhZGRlZFN0cmluZygyKSsnWiInfTtSZWdFeHAucHJvdG90 eXBlLm1hdGNoPVJlZ0V4cC5wcm90b3R5cGUudGVzdDtSZWdFeHAuZXNjYXBlPWZ1 bmN0aW9uKGEpe3JldHVybiBTdHJpbmcoYSkucmVwbGFjZSgvKFsuKis/Xj0hOiR7 fSgpfFtcXVwvXFxdKS9nLCJcXCQxIil9O3ZhciBQZXJpb2RpY2FsRXhlY3V0ZXI9 Q2xhc3MuY3JlYXRlKHtpbml0aWFsaXplOmZ1bmN0aW9uKGIsYSl7dGhpcy5jYWxs YmFjaz1iO3RoaXMuZnJlcXVlbmN5PWE7dGhpcy5jdXJyZW50bHlFeGVjdXRpbmc9 ZmFsc2U7dGhpcy5yZWdpc3RlckNhbGxiYWNrKCl9LHJlZ2lzdGVyQ2FsbGJhY2s6 ZnVuY3Rpb24oKXt0aGlzLnRpbWVyPXNldEludGVydmFsKHRoaXMub25UaW1lckV2 ZW50LmJpbmQodGhpcyksdGhpcy5mcmVxdWVuY3kqMTAwMCl9LGV4ZWN1dGU6ZnVu Y3Rpb24oKXt0aGlzLmNhbGxiYWNrKHRoaXMpfSxzdG9wOmZ1bmN0aW9uKCl7aWYo IXRoaXMudGltZXIpe3JldHVybn1jbGVhckludGVydmFsKHRoaXMudGltZXIpO3Ro aXMudGltZXI9bnVsbH0sb25UaW1lckV2ZW50OmZ1bmN0aW9uKCl7aWYoIXRoaXMu Y3VycmVudGx5RXhlY3V0aW5nKXt0cnl7dGhpcy5jdXJyZW50bHlFeGVjdXRpbmc9 dHJ1ZTt0aGlzLmV4ZWN1dGUoKX1jYXRjaChhKXt9ZmluYWxseXt0aGlzLmN1cnJl bnRseUV4ZWN1dGluZz1mYWxzZX19fX0pO09iamVjdC5leHRlbmQoU3RyaW5nLHtp bnRlcnByZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PW51bGw/IiI6U3RyaW5nKGEp fSxzcGVjaWFsQ2hhcjp7IlxiIjoiXFxiIiwiXHQiOiJcXHQiLCJcbiI6IlxcbiIs IlxmIjoiXFxmIiwiXHIiOiJcXHIiLCJcXCI6IlxcXFwifX0pO09iamVjdC5leHRl bmQoU3RyaW5nLnByb3RvdHlwZSwoZnVuY3Rpb24oKXtmdW5jdGlvbiBwcmVwYXJl UmVwbGFjZW1lbnQocmVwbGFjZW1lbnQpe2lmKE9iamVjdC5pc0Z1bmN0aW9uKHJl cGxhY2VtZW50KSl7cmV0dXJuIHJlcGxhY2VtZW50fXZhciB0ZW1wbGF0ZT1uZXcg VGVtcGxhdGUocmVwbGFjZW1lbnQpO3JldHVybiBmdW5jdGlvbihtYXRjaCl7cmV0 dXJuIHRlbXBsYXRlLmV2YWx1YXRlKG1hdGNoKX19ZnVuY3Rpb24gZ3N1YihwYXR0 ZXJuLHJlcGxhY2VtZW50KXt2YXIgcmVzdWx0PSIiLHNvdXJjZT10aGlzLG1hdGNo O3JlcGxhY2VtZW50PXByZXBhcmVSZXBsYWNlbWVudChyZXBsYWNlbWVudCk7aWYo T2JqZWN0LmlzU3RyaW5nKHBhdHRlcm4pKXtwYXR0ZXJuPVJlZ0V4cC5lc2NhcGUo cGF0dGVybil9aWYoIShwYXR0ZXJuLmxlbmd0aHx8cGF0dGVybi5zb3VyY2UpKXty ZXBsYWNlbWVudD1yZXBsYWNlbWVudCgiIik7cmV0dXJuIHJlcGxhY2VtZW50K3Nv dXJjZS5zcGxpdCgiIikuam9pbihyZXBsYWNlbWVudCkrcmVwbGFjZW1lbnR9d2hp bGUoc291cmNlLmxlbmd0aD4wKXtpZihtYXRjaD1zb3VyY2UubWF0Y2gocGF0dGVy bikpe3Jlc3VsdCs9c291cmNlLnNsaWNlKDAsbWF0Y2guaW5kZXgpO3Jlc3VsdCs9 U3RyaW5nLmludGVycHJldChyZXBsYWNlbWVudChtYXRjaCkpO3NvdXJjZT1zb3Vy Y2Uuc2xpY2UobWF0Y2guaW5kZXgrbWF0Y2hbMF0ubGVuZ3RoKX1lbHNle3Jlc3Vs dCs9c291cmNlLHNvdXJjZT0iIn19cmV0dXJuIHJlc3VsdH1mdW5jdGlvbiBzdWIo cGF0dGVybixyZXBsYWNlbWVudCxjb3VudCl7cmVwbGFjZW1lbnQ9cHJlcGFyZVJl cGxhY2VtZW50KHJlcGxhY2VtZW50KTtjb3VudD1PYmplY3QuaXNVbmRlZmluZWQo Y291bnQpPzE6Y291bnQ7cmV0dXJuIHRoaXMuZ3N1YihwYXR0ZXJuLGZ1bmN0aW9u KG1hdGNoKXtpZigtLWNvdW50PDApe3JldHVybiBtYXRjaFswXX1yZXR1cm4gcmVw bGFjZW1lbnQobWF0Y2gpfSl9ZnVuY3Rpb24gc2NhbihwYXR0ZXJuLGl0ZXJhdG9y KXt0aGlzLmdzdWIocGF0dGVybixpdGVyYXRvcik7cmV0dXJuIFN0cmluZyh0aGlz KX1mdW5jdGlvbiB0cnVuY2F0ZShsZW5ndGgsdHJ1bmNhdGlvbil7bGVuZ3RoPWxl bmd0aHx8MzA7dHJ1bmNhdGlvbj1PYmplY3QuaXNVbmRlZmluZWQodHJ1bmNhdGlv bik/Ii4uLiI6dHJ1bmNhdGlvbjtyZXR1cm4gdGhpcy5sZW5ndGg+bGVuZ3RoP3Ro aXMuc2xpY2UoMCxsZW5ndGgtdHJ1bmNhdGlvbi5sZW5ndGgpK3RydW5jYXRpb246 U3RyaW5nKHRoaXMpfWZ1bmN0aW9uIHN0cmlwKCl7cmV0dXJuIHRoaXMucmVwbGFj ZSgvXlxzKy8sIiIpLnJlcGxhY2UoL1xzKyQvLCIiKX1mdW5jdGlvbiBzdHJpcFRh Z3MoKXtyZXR1cm4gdGhpcy5yZXBsYWNlKC88XC8/W14+XSs+L2dpLCIiKX1mdW5j dGlvbiBzdHJpcFNjcmlwdHMoKXtyZXR1cm4gdGhpcy5yZXBsYWNlKG5ldyBSZWdF eHAoUHJvdG90eXBlLlNjcmlwdEZyYWdtZW50LCJpbWciKSwiIil9ZnVuY3Rpb24g ZXh0cmFjdFNjcmlwdHMoKXt2YXIgbWF0Y2hBbGw9bmV3IFJlZ0V4cChQcm90b3R5 cGUuU2NyaXB0RnJhZ21lbnQsImltZyIpO3ZhciBtYXRjaE9uZT1uZXcgUmVnRXhw KFByb3RvdHlwZS5TY3JpcHRGcmFnbWVudCwiaW0iKTtyZXR1cm4odGhpcy5tYXRj aChtYXRjaEFsbCl8fFtdKS5tYXAoZnVuY3Rpb24oc2NyaXB0VGFnKXtyZXR1cm4o c2NyaXB0VGFnLm1hdGNoKG1hdGNoT25lKXx8WyIiLCIiXSlbMV19KX1mdW5jdGlv biBldmFsU2NyaXB0cygpe3JldHVybiB0aGlzLmV4dHJhY3RTY3JpcHRzKCkubWFw KGZ1bmN0aW9uKHNjcmlwdCl7cmV0dXJuIGV2YWwoc2NyaXB0KX0pfWZ1bmN0aW9u IGVzY2FwZUhUTUwoKXtlc2NhcGVIVE1MLnRleHQuZGF0YT10aGlzO3JldHVybiBl c2NhcGVIVE1MLmRpdi5pbm5lckhUTUx9ZnVuY3Rpb24gdW5lc2NhcGVIVE1MKCl7 dmFyIGRpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtkaXYuaW5uZXJI VE1MPXRoaXMuc3RyaXBUYWdzKCk7cmV0dXJuIGRpdi5jaGlsZE5vZGVzWzBdPyhk aXYuY2hpbGROb2Rlcy5sZW5ndGg+MT8kQShkaXYuY2hpbGROb2RlcykuaW5qZWN0 KCIiLGZ1bmN0aW9uKG1lbW8sbm9kZSl7cmV0dXJuIG1lbW8rbm9kZS5ub2RlVmFs dWV9KTpkaXYuY2hpbGROb2Rlc1swXS5ub2RlVmFsdWUpOiIifWZ1bmN0aW9uIHRv UXVlcnlQYXJhbXMoc2VwYXJhdG9yKXt2YXIgbWF0Y2g9dGhpcy5zdHJpcCgpLm1h dGNoKC8oW14/I10qKSgjLiopPyQvKTtpZighbWF0Y2gpe3JldHVybnt9fXJldHVy biBtYXRjaFsxXS5zcGxpdChzZXBhcmF0b3J8fCImIikuaW5qZWN0KHt9LGZ1bmN0 aW9uKGhhc2gscGFpcil7aWYoKHBhaXI9cGFpci5zcGxpdCgiPSIpKVswXSl7dmFy IGtleT1kZWNvZGVVUklDb21wb25lbnQocGFpci5zaGlmdCgpKTt2YXIgdmFsdWU9 cGFpci5sZW5ndGg+MT9wYWlyLmpvaW4oIj0iKTpwYWlyWzBdO2lmKHZhbHVlIT11 bmRlZmluZWQpe3ZhbHVlPWRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSl9aWYoa2V5 IGluIGhhc2gpe2lmKCFPYmplY3QuaXNBcnJheShoYXNoW2tleV0pKXtoYXNoW2tl eV09W2hhc2hba2V5XV19aGFzaFtrZXldLnB1c2godmFsdWUpfWVsc2V7aGFzaFtr ZXldPXZhbHVlfX1yZXR1cm4gaGFzaH0pfWZ1bmN0aW9uIHRvQXJyYXkoKXtyZXR1 cm4gdGhpcy5zcGxpdCgiIil9ZnVuY3Rpb24gc3VjYygpe3JldHVybiB0aGlzLnNs aWNlKDAsdGhpcy5sZW5ndGgtMSkrU3RyaW5nLmZyb21DaGFyQ29kZSh0aGlzLmNo YXJDb2RlQXQodGhpcy5sZW5ndGgtMSkrMSl9ZnVuY3Rpb24gdGltZXMoY291bnQp e3JldHVybiBjb3VudDwxPyIiOm5ldyBBcnJheShjb3VudCsxKS5qb2luKHRoaXMp fWZ1bmN0aW9uIGNhbWVsaXplKCl7dmFyIHBhcnRzPXRoaXMuc3BsaXQoIi0iKSxs ZW49cGFydHMubGVuZ3RoO2lmKGxlbj09MSl7cmV0dXJuIHBhcnRzWzBdfXZhciBj YW1lbGl6ZWQ9dGhpcy5jaGFyQXQoMCk9PSItIj9wYXJ0c1swXS5jaGFyQXQoMCku dG9VcHBlckNhc2UoKStwYXJ0c1swXS5zdWJzdHJpbmcoMSk6cGFydHNbMF07Zm9y KHZhciBpPTE7aTxsZW47aSsrKXtjYW1lbGl6ZWQrPXBhcnRzW2ldLmNoYXJBdCgw KS50b1VwcGVyQ2FzZSgpK3BhcnRzW2ldLnN1YnN0cmluZygxKX1yZXR1cm4gY2Ft ZWxpemVkfWZ1bmN0aW9uIGNhcGl0YWxpemUoKXtyZXR1cm4gdGhpcy5jaGFyQXQo MCkudG9VcHBlckNhc2UoKSt0aGlzLnN1YnN0cmluZygxKS50b0xvd2VyQ2FzZSgp fWZ1bmN0aW9uIHVuZGVyc2NvcmUoKXtyZXR1cm4gdGhpcy5nc3ViKC86Oi8sIi8i KS5nc3ViKC8oW0EtWl0rKShbQS1aXVthLXpdKS8sIiN7MX1fI3syfSIpLmdzdWIo LyhbYS16XGRdKShbQS1aXSkvLCIjezF9XyN7Mn0iKS5nc3ViKC8tLywiXyIpLnRv TG93ZXJDYXNlKCl9ZnVuY3Rpb24gZGFzaGVyaXplKCl7cmV0dXJuIHRoaXMuZ3N1 YigvXy8sIi0iKX1mdW5jdGlvbiBpbnNwZWN0KHVzZURvdWJsZVF1b3Rlcyl7dmFy IGVzY2FwZWRTdHJpbmc9dGhpcy5nc3ViKC9bXHgwMC1ceDFmXFxdLyxmdW5jdGlv bihtYXRjaCl7dmFyIGNoYXJhY3Rlcj1TdHJpbmcuc3BlY2lhbENoYXJbbWF0Y2hb MF1dO3JldHVybiBjaGFyYWN0ZXI/Y2hhcmFjdGVyOiJcXHUwMCIrbWF0Y2hbMF0u Y2hhckNvZGVBdCgpLnRvUGFkZGVkU3RyaW5nKDIsMTYpfSk7aWYodXNlRG91Ymxl UXVvdGVzKXtyZXR1cm4nIicrZXNjYXBlZFN0cmluZy5yZXBsYWNlKC8iL2csJ1xc IicpKyciJ31yZXR1cm4iJyIrZXNjYXBlZFN0cmluZy5yZXBsYWNlKC8nL2csIlxc JyIpKyInIn1mdW5jdGlvbiB0b0pTT04oKXtyZXR1cm4gdGhpcy5pbnNwZWN0KHRy dWUpfWZ1bmN0aW9uIHVuZmlsdGVySlNPTihmaWx0ZXIpe3JldHVybiB0aGlzLnN1 YihmaWx0ZXJ8fFByb3RvdHlwZS5KU09ORmlsdGVyLCIjezF9Iil9ZnVuY3Rpb24g aXNKU09OKCl7dmFyIHN0cj10aGlzO2lmKHN0ci5ibGFuaygpKXtyZXR1cm4gZmFs c2V9c3RyPXRoaXMucmVwbGFjZSgvXFwuL2csIkAiKS5yZXBsYWNlKC8iW14iXFxc blxyXSoiL2csIiIpO3JldHVybigvXlssOnt9XFtcXTAtOS5cLStFYWVmbG5yLXUg XG5cclx0XSokLykudGVzdChzdHIpfWZ1bmN0aW9uIGV2YWxKU09OKHNhbml0aXpl KXt2YXIganNvbj10aGlzLnVuZmlsdGVySlNPTigpO3RyeXtpZighc2FuaXRpemV8 fGpzb24uaXNKU09OKCkpe3JldHVybiBldmFsKCIoIitqc29uKyIpIil9fWNhdGNo KGUpe310aHJvdyBuZXcgU3ludGF4RXJyb3IoIkJhZGx5IGZvcm1lZCBKU09OIHN0 cmluZzogIit0aGlzLmluc3BlY3QoKSl9ZnVuY3Rpb24gaW5jbHVkZShwYXR0ZXJu KXtyZXR1cm4gdGhpcy5pbmRleE9mKHBhdHRlcm4pPi0xfWZ1bmN0aW9uIHN0YXJ0 c1dpdGgocGF0dGVybil7cmV0dXJuIHRoaXMuaW5kZXhPZihwYXR0ZXJuKT09PTB9 ZnVuY3Rpb24gZW5kc1dpdGgocGF0dGVybil7dmFyIGQ9dGhpcy5sZW5ndGgtcGF0 dGVybi5sZW5ndGg7cmV0dXJuIGQ+PTAmJnRoaXMubGFzdEluZGV4T2YocGF0dGVy bik9PT1kfWZ1bmN0aW9uIGVtcHR5KCl7cmV0dXJuIHRoaXM9PSIifWZ1bmN0aW9u IGJsYW5rKCl7cmV0dXJuL15ccyokLy50ZXN0KHRoaXMpfWZ1bmN0aW9uIGludGVy cG9sYXRlKG9iamVjdCxwYXR0ZXJuKXtyZXR1cm4gbmV3IFRlbXBsYXRlKHRoaXMs cGF0dGVybikuZXZhbHVhdGUob2JqZWN0KX1yZXR1cm57Z3N1Yjpnc3ViLHN1Yjpz dWIsc2NhbjpzY2FuLHRydW5jYXRlOnRydW5jYXRlLHN0cmlwOnN0cmlwLHN0cmlw VGFnczpzdHJpcFRhZ3Msc3RyaXBTY3JpcHRzOnN0cmlwU2NyaXB0cyxleHRyYWN0 U2NyaXB0czpleHRyYWN0U2NyaXB0cyxldmFsU2NyaXB0czpldmFsU2NyaXB0cyxl c2NhcGVIVE1MOmVzY2FwZUhUTUwsdW5lc2NhcGVIVE1MOnVuZXNjYXBlSFRNTCx0 b1F1ZXJ5UGFyYW1zOnRvUXVlcnlQYXJhbXMscGFyc2VRdWVyeTp0b1F1ZXJ5UGFy YW1zLHRvQXJyYXk6dG9BcnJheSxzdWNjOnN1Y2MsdGltZXM6dGltZXMsY2FtZWxp emU6Y2FtZWxpemUsY2FwaXRhbGl6ZTpjYXBpdGFsaXplLHVuZGVyc2NvcmU6dW5k ZXJzY29yZSxkYXNoZXJpemU6ZGFzaGVyaXplLGluc3BlY3Q6aW5zcGVjdCx0b0pT T046dG9KU09OLHVuZmlsdGVySlNPTjp1bmZpbHRlckpTT04saXNKU09OOmlzSlNP TixldmFsSlNPTjpldmFsSlNPTixpbmNsdWRlOmluY2x1ZGUsc3RhcnRzV2l0aDpz dGFydHNXaXRoLGVuZHNXaXRoOmVuZHNXaXRoLGVtcHR5OmVtcHR5LGJsYW5rOmJs YW5rLGludGVycG9sYXRlOmludGVycG9sYXRlfX0pKCkpO09iamVjdC5leHRlbmQo U3RyaW5nLnByb3RvdHlwZS5lc2NhcGVIVE1MLHtkaXY6ZG9jdW1lbnQuY3JlYXRl RWxlbWVudCgiZGl2IiksdGV4dDpkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIil9 KTtTdHJpbmcucHJvdG90eXBlLmVzY2FwZUhUTUwuZGl2LmFwcGVuZENoaWxkKFN0 cmluZy5wcm90b3R5cGUuZXNjYXBlSFRNTC50ZXh0KTtpZigiPFxuPiIuZXNjYXBl SFRNTCgpIT09IiZsdDtcbiZndDsiKXtTdHJpbmcucHJvdG90eXBlLmVzY2FwZUhU TUw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXBsYWNlKC8mL2csIiZhbXA7Iiku cmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7Iil9fWlmKCIm bHQ7XG4mZ3Q7Ii51bmVzY2FwZUhUTUwoKSE9PSI8XG4+Iil7U3RyaW5nLnByb3Rv dHlwZS51bmVzY2FwZUhUTUw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdHJpcFRh Z3MoKS5yZXBsYWNlKC8mbHQ7L2csIjwiKS5yZXBsYWNlKC8mZ3Q7L2csIj4iKS5y ZXBsYWNlKC8mYW1wOy9nLCImIil9fXZhciBUZW1wbGF0ZT1DbGFzcy5jcmVhdGUo e2luaXRpYWxpemU6ZnVuY3Rpb24oYSxiKXt0aGlzLnRlbXBsYXRlPWEudG9TdHJp bmcoKTt0aGlzLnBhdHRlcm49Ynx8VGVtcGxhdGUuUGF0dGVybn0sZXZhbHVhdGU6 ZnVuY3Rpb24oYSl7aWYoT2JqZWN0LmlzRnVuY3Rpb24oYS50b1RlbXBsYXRlUmVw bGFjZW1lbnRzKSl7YT1hLnRvVGVtcGxhdGVSZXBsYWNlbWVudHMoKX1yZXR1cm4g dGhpcy50ZW1wbGF0ZS5nc3ViKHRoaXMucGF0dGVybixmdW5jdGlvbihlKXtpZihh PT1udWxsKXtyZXR1cm4iIn12YXIgZz1lWzFdfHwiIjtpZihnPT0iXFwiKXtyZXR1 cm4gZVsyXX12YXIgYj1hLGg9ZVszXTt2YXIgZj0vXihbXi5bXSt8XFsoKD86Lio/ W15cXF0pPylcXSkoXC58XFt8JCkvO2U9Zi5leGVjKGgpO2lmKGU9PW51bGwpe3Jl dHVybiBnfXdoaWxlKGUhPW51bGwpe3ZhciBjPWVbMV0uc3RhcnRzV2l0aCgiWyIp P2VbMl0uZ3N1YigiXFxcXF0iLCJdIik6ZVsxXTtiPWJbY107aWYobnVsbD09Ynx8 IiI9PWVbM10pe2JyZWFrfWg9aC5zdWJzdHJpbmcoIlsiPT1lWzNdP2VbMV0ubGVu Z3RoOmVbMF0ubGVuZ3RoKTtlPWYuZXhlYyhoKX1yZXR1cm4gZytTdHJpbmcuaW50 ZXJwcmV0KGIpfSl9fSk7VGVtcGxhdGUuUGF0dGVybj0vKF58LnxccnxcbikoI1x7 KC4qPylcfSkvO3ZhciAkYnJlYWs9e307dmFyIEVudW1lcmFibGU9KGZ1bmN0aW9u KCl7ZnVuY3Rpb24gYyhBLHope3ZhciB5PTA7dHJ5e3RoaXMuX2VhY2goZnVuY3Rp b24oQyl7QS5jYWxsKHosQyx5KyspfSl9Y2F0Y2goQil7aWYoQiE9JGJyZWFrKXt0 aHJvdyBCfX1yZXR1cm4gdGhpc31mdW5jdGlvbiB0KEIsQSx6KXt2YXIgeT0tQixD PVtdLEQ9dGhpcy50b0FycmF5KCk7aWYoQjwxKXtyZXR1cm4gRH13aGlsZSgoeSs9 Qik8RC5sZW5ndGgpe0MucHVzaChELnNsaWNlKHkseStCKSl9cmV0dXJuIEMuY29s bGVjdChBLHopfWZ1bmN0aW9uIGIoQSx6KXtBPUF8fFByb3RvdHlwZS5LO3ZhciB5 PXRydWU7dGhpcy5lYWNoKGZ1bmN0aW9uKEMsQil7eT15JiYhIUEuY2FsbCh6LEMs Qik7aWYoIXkpe3Rocm93ICRicmVha319KTtyZXR1cm4geX1mdW5jdGlvbiBrKEEs eil7QT1BfHxQcm90b3R5cGUuSzt2YXIgeT1mYWxzZTt0aGlzLmVhY2goZnVuY3Rp b24oQyxCKXtpZih5PSEhQS5jYWxsKHosQyxCKSl7dGhyb3cgJGJyZWFrfX0pO3Jl dHVybiB5fWZ1bmN0aW9uIGwoQSx6KXtBPUF8fFByb3RvdHlwZS5LO3ZhciB5PVtd O3RoaXMuZWFjaChmdW5jdGlvbihDLEIpe3kucHVzaChBLmNhbGwoeixDLEIpKX0p O3JldHVybiB5fWZ1bmN0aW9uIHYoQSx6KXt2YXIgeTt0aGlzLmVhY2goZnVuY3Rp b24oQyxCKXtpZihBLmNhbGwoeixDLEIpKXt5PUM7dGhyb3cgJGJyZWFrfX0pO3Jl dHVybiB5fWZ1bmN0aW9uIGooQSx6KXt2YXIgeT1bXTt0aGlzLmVhY2goZnVuY3Rp b24oQyxCKXtpZihBLmNhbGwoeixDLEIpKXt5LnB1c2goQyl9fSk7cmV0dXJuIHl9 ZnVuY3Rpb24gaChCLEEseil7QT1BfHxQcm90b3R5cGUuSzt2YXIgeT1bXTtpZihP YmplY3QuaXNTdHJpbmcoQikpe0I9bmV3IFJlZ0V4cChSZWdFeHAuZXNjYXBlKEIp KX10aGlzLmVhY2goZnVuY3Rpb24oRCxDKXtpZihCLm1hdGNoKEQpKXt5LnB1c2go QS5jYWxsKHosRCxDKSl9fSk7cmV0dXJuIHl9ZnVuY3Rpb24gYSh5KXtpZihPYmpl Y3QuaXNGdW5jdGlvbih0aGlzLmluZGV4T2YpKXtpZih0aGlzLmluZGV4T2YoeSkh PS0xKXtyZXR1cm4gdHJ1ZX19dmFyIHo9ZmFsc2U7dGhpcy5lYWNoKGZ1bmN0aW9u KEEpe2lmKEE9PXkpe3o9dHJ1ZTt0aHJvdyAkYnJlYWt9fSk7cmV0dXJuIHp9ZnVu Y3Rpb24gcyh6LHkpe3k9T2JqZWN0LmlzVW5kZWZpbmVkKHkpP251bGw6eTtyZXR1 cm4gdGhpcy5lYWNoU2xpY2UoeixmdW5jdGlvbihBKXt3aGlsZShBLmxlbmd0aDx6 KXtBLnB1c2goeSl9cmV0dXJuIEF9KX1mdW5jdGlvbiBuKHksQSx6KXt0aGlzLmVh Y2goZnVuY3Rpb24oQyxCKXt5PUEuY2FsbCh6LHksQyxCKX0pO3JldHVybiB5fWZ1 bmN0aW9uIHgoeil7dmFyIHk9JEEoYXJndW1lbnRzKS5zbGljZSgxKTtyZXR1cm4g dGhpcy5tYXAoZnVuY3Rpb24oQSl7cmV0dXJuIEFbel0uYXBwbHkoQSx5KX0pfWZ1 bmN0aW9uIHIoQSx6KXtBPUF8fFByb3RvdHlwZS5LO3ZhciB5O3RoaXMuZWFjaChm dW5jdGlvbihDLEIpe0M9QS5jYWxsKHosQyxCKTtpZih5PT1udWxsfHxDPj15KXt5 PUN9fSk7cmV0dXJuIHl9ZnVuY3Rpb24gcChBLHope0E9QXx8UHJvdG90eXBlLks7 dmFyIHk7dGhpcy5lYWNoKGZ1bmN0aW9uKEMsQil7Qz1BLmNhbGwoeixDLEIpO2lm KHk9PW51bGx8fEM8eSl7eT1DfX0pO3JldHVybiB5fWZ1bmN0aW9uIGYoQix6KXtC PUJ8fFByb3RvdHlwZS5LO3ZhciBBPVtdLHk9W107dGhpcy5lYWNoKGZ1bmN0aW9u KEQsQyl7KEIuY2FsbCh6LEQsQyk/QTp5KS5wdXNoKEQpfSk7cmV0dXJuW0EseV19 ZnVuY3Rpb24gZyh6KXt2YXIgeT1bXTt0aGlzLmVhY2goZnVuY3Rpb24oQSl7eS5w dXNoKEFbel0pfSk7cmV0dXJuIHl9ZnVuY3Rpb24gZShBLHope3ZhciB5PVtdO3Ro aXMuZWFjaChmdW5jdGlvbihDLEIpe2lmKCFBLmNhbGwoeixDLEIpKXt5LnB1c2go Qyl9fSk7cmV0dXJuIHl9ZnVuY3Rpb24gbyh6LHkpe3JldHVybiB0aGlzLm1hcChm dW5jdGlvbihCLEEpe3JldHVybnt2YWx1ZTpCLGNyaXRlcmlhOnouY2FsbCh5LEIs QSl9fSkuc29ydChmdW5jdGlvbihELEMpe3ZhciBCPUQuY3JpdGVyaWEsQT1DLmNy aXRlcmlhO3JldHVybiBCPEE/LTE6Qj5BPzE6MH0pLnBsdWNrKCJ2YWx1ZSIpfWZ1 bmN0aW9uIHEoKXtyZXR1cm4gdGhpcy5tYXAoKX1mdW5jdGlvbiB1KCl7dmFyIHo9 UHJvdG90eXBlLksseT0kQShhcmd1bWVudHMpO2lmKE9iamVjdC5pc0Z1bmN0aW9u KHkubGFzdCgpKSl7ej15LnBvcCgpfXZhciBBPVt0aGlzXS5jb25jYXQoeSkubWFw KCRBKTtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oQyxCKXtyZXR1cm4geihBLnBs dWNrKEIpKX0pfWZ1bmN0aW9uIG0oKXtyZXR1cm4gdGhpcy50b0FycmF5KCkubGVu Z3RofWZ1bmN0aW9uIHcoKXtyZXR1cm4iIzxFbnVtZXJhYmxlOiIrdGhpcy50b0Fy cmF5KCkuaW5zcGVjdCgpKyI+In1yZXR1cm57ZWFjaDpjLGVhY2hTbGljZTp0LGFs bDpiLGV2ZXJ5OmIsYW55Omssc29tZTprLGNvbGxlY3Q6bCxtYXA6bCxkZXRlY3Q6 dixmaW5kQWxsOmosc2VsZWN0OmosZmlsdGVyOmosZ3JlcDpoLGluY2x1ZGU6YSxt ZW1iZXI6YSxpbkdyb3Vwc09mOnMsaW5qZWN0Om4saW52b2tlOngsbWF4OnIsbWlu OnAscGFydGl0aW9uOmYscGx1Y2s6ZyxyZWplY3Q6ZSxzb3J0Qnk6byx0b0FycmF5 OnEsZW50cmllczpxLHppcDp1LHNpemU6bSxpbnNwZWN0OncsZmluZDp2fX0pKCk7 ZnVuY3Rpb24gJEEoYyl7aWYoIWMpe3JldHVybltdfWlmKCJ0b0FycmF5IiBpbiBj KXtyZXR1cm4gYy50b0FycmF5KCl9dmFyIGI9Yy5sZW5ndGh8fDAsYT1uZXcgQXJy YXkoYik7d2hpbGUoYi0tKXthW2JdPWNbYl19cmV0dXJuIGF9ZnVuY3Rpb24gJHco YSl7aWYoIU9iamVjdC5pc1N0cmluZyhhKSl7cmV0dXJuW119YT1hLnN0cmlwKCk7 cmV0dXJuIGE/YS5zcGxpdCgvXHMrLyk6W119QXJyYXkuZnJvbT0kQTsoZnVuY3Rp b24oKXt2YXIgdT1BcnJheS5wcm90b3R5cGUsbz11LnNsaWNlLHE9dS5mb3JFYWNo O2Z1bmN0aW9uIGIoeSl7Zm9yKHZhciB4PTAsej10aGlzLmxlbmd0aDt4PHo7eCsr KXt5KHRoaXNbeF0pfX1pZighcSl7cT1ifWZ1bmN0aW9uIG4oKXt0aGlzLmxlbmd0 aD0wO3JldHVybiB0aGlzfWZ1bmN0aW9uIGUoKXtyZXR1cm4gdGhpc1swXX1mdW5j dGlvbiBoKCl7cmV0dXJuIHRoaXNbdGhpcy5sZW5ndGgtMV19ZnVuY3Rpb24gaygp e3JldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbih4KXtyZXR1cm4geCE9bnVsbH0p fWZ1bmN0aW9uIHcoKXtyZXR1cm4gdGhpcy5pbmplY3QoW10sZnVuY3Rpb24oeSx4 KXtpZihPYmplY3QuaXNBcnJheSh4KSl7cmV0dXJuIHkuY29uY2F0KHguZmxhdHRl bigpKX15LnB1c2goeCk7cmV0dXJuIHl9KX1mdW5jdGlvbiBqKCl7dmFyIHg9by5j YWxsKGFyZ3VtZW50cywwKTtyZXR1cm4gdGhpcy5zZWxlY3QoZnVuY3Rpb24oeSl7 cmV0dXJuICF4LmluY2x1ZGUoeSl9KX1mdW5jdGlvbiBnKHgpe3JldHVybih4IT09 ZmFsc2U/dGhpczp0aGlzLnRvQXJyYXkoKSkuX3JldmVyc2UoKX1mdW5jdGlvbiBt KHgpe3JldHVybiB0aGlzLmluamVjdChbXSxmdW5jdGlvbihBLHoseSl7aWYoMD09 eXx8KHg/QS5sYXN0KCkhPXo6IUEuaW5jbHVkZSh6KSkpe0EucHVzaCh6KX1yZXR1 cm4gQX0pfWZ1bmN0aW9uIHIoeCl7cmV0dXJuIHRoaXMudW5pcSgpLmZpbmRBbGwo ZnVuY3Rpb24oeSl7cmV0dXJuIHguZGV0ZWN0KGZ1bmN0aW9uKHope3JldHVybiB5 PT09en0pfSl9ZnVuY3Rpb24gcygpe3JldHVybiBvLmNhbGwodGhpcywwKX1mdW5j dGlvbiBsKCl7cmV0dXJuIHRoaXMubGVuZ3RofWZ1bmN0aW9uIHYoKXtyZXR1cm4i WyIrdGhpcy5tYXAoT2JqZWN0Lmluc3BlY3QpLmpvaW4oIiwgIikrIl0ifWZ1bmN0 aW9uIHQoKXt2YXIgeD1bXTt0aGlzLmVhY2goZnVuY3Rpb24oeSl7dmFyIHo9T2Jq ZWN0LnRvSlNPTih5KTtpZighT2JqZWN0LmlzVW5kZWZpbmVkKHopKXt4LnB1c2go eil9fSk7cmV0dXJuIlsiK3guam9pbigiLCAiKSsiXSJ9ZnVuY3Rpb24gYSh6LHgp e3h8fCh4PTApO3ZhciB5PXRoaXMubGVuZ3RoO2lmKHg8MCl7eD15K3h9Zm9yKDt4 PHk7eCsrKXtpZih0aGlzW3hdPT09eil7cmV0dXJuIHh9fXJldHVybiAtMX1mdW5j dGlvbiBwKHkseCl7eD1pc05hTih4KT90aGlzLmxlbmd0aDooeDwwP3RoaXMubGVu Z3RoK3g6eCkrMTt2YXIgej10aGlzLnNsaWNlKDAseCkucmV2ZXJzZSgpLmluZGV4 T2YoeSk7cmV0dXJuKHo8MCk/ejp4LXotMX1mdW5jdGlvbiBjKCl7dmFyIEM9by5j YWxsKHRoaXMsMCksQTtmb3IodmFyIHk9MCx6PWFyZ3VtZW50cy5sZW5ndGg7eTx6 O3krKyl7QT1hcmd1bWVudHNbeV07aWYoT2JqZWN0LmlzQXJyYXkoQSkmJiEoImNh bGxlZSIgaW4gQSkpe2Zvcih2YXIgeD0wLEI9QS5sZW5ndGg7eDxCO3grKyl7Qy5w dXNoKEFbeF0pfX1lbHNle0MucHVzaChBKX19cmV0dXJuIEN9T2JqZWN0LmV4dGVu ZCh1LEVudW1lcmFibGUpO2lmKCF1Ll9yZXZlcnNlKXt1Ll9yZXZlcnNlPXUucmV2 ZXJzZX1PYmplY3QuZXh0ZW5kKHUse19lYWNoOnEsY2xlYXI6bixmaXJzdDplLGxh c3Q6aCxjb21wYWN0OmssZmxhdHRlbjp3LHdpdGhvdXQ6aixyZXZlcnNlOmcsdW5p cTptLGludGVyc2VjdDpyLGNsb25lOnMsdG9BcnJheTpzLHNpemU6bCxpbnNwZWN0 OnYsdG9KU09OOnR9KTt2YXIgZj0oZnVuY3Rpb24oKXtyZXR1cm5bXS5jb25jYXQo YXJndW1lbnRzKVswXVswXSE9PTF9KSgxLDIpO2lmKGYpe3UuY29uY2F0PWN9aWYo IXUuaW5kZXhPZil7dS5pbmRleE9mPWF9aWYoIXUubGFzdEluZGV4T2Ype3UubGFz dEluZGV4T2Y9cH19KSgpO2Z1bmN0aW9uICRIKGEpe3JldHVybiBuZXcgSGFzaChh KX12YXIgSGFzaD1DbGFzcy5jcmVhdGUoRW51bWVyYWJsZSwoZnVuY3Rpb24oKXtm dW5jdGlvbiBmKHMpe3RoaXMuX29iamVjdD1PYmplY3QuaXNIYXNoKHMpP3MudG9P YmplY3QoKTpPYmplY3QuY2xvbmUocyl9ZnVuY3Rpb24gZyh0KXtmb3IodmFyIHMg aW4gdGhpcy5fb2JqZWN0KXt2YXIgdT10aGlzLl9vYmplY3Rbc10sdj1bcyx1XTt2 LmtleT1zO3YudmFsdWU9dTt0KHYpfX1mdW5jdGlvbiBtKHMsdCl7cmV0dXJuIHRo aXMuX29iamVjdFtzXT10fWZ1bmN0aW9uIGMocyl7aWYodGhpcy5fb2JqZWN0W3Nd IT09T2JqZWN0LnByb3RvdHlwZVtzXSl7cmV0dXJuIHRoaXMuX29iamVjdFtzXX19 ZnVuY3Rpb24gcChzKXt2YXIgdD10aGlzLl9vYmplY3Rbc107ZGVsZXRlIHRoaXMu X29iamVjdFtzXTtyZXR1cm4gdH1mdW5jdGlvbiByKCl7cmV0dXJuIE9iamVjdC5j bG9uZSh0aGlzLl9vYmplY3QpfWZ1bmN0aW9uIHEoKXtyZXR1cm4gdGhpcy5wbHVj aygia2V5Iil9ZnVuY3Rpb24gbygpe3JldHVybiB0aGlzLnBsdWNrKCJ2YWx1ZSIp fWZ1bmN0aW9uIGgodCl7dmFyIHM9dGhpcy5kZXRlY3QoZnVuY3Rpb24odSl7cmV0 dXJuIHUudmFsdWU9PT10fSk7cmV0dXJuIHMmJnMua2V5fWZ1bmN0aW9uIGsocyl7 cmV0dXJuIHRoaXMuY2xvbmUoKS51cGRhdGUocyl9ZnVuY3Rpb24gZShzKXtyZXR1 cm4gbmV3IEhhc2gocykuaW5qZWN0KHRoaXMsZnVuY3Rpb24odCx1KXt0LnNldCh1 LmtleSx1LnZhbHVlKTtyZXR1cm4gdH0pfWZ1bmN0aW9uIGIocyx0KXtpZihPYmpl Y3QuaXNVbmRlZmluZWQodCkpe3JldHVybiBzfXJldHVybiBzKyI9IitlbmNvZGVV UklDb21wb25lbnQoU3RyaW5nLmludGVycHJldCh0KSl9ZnVuY3Rpb24gYSgpe3Jl dHVybiB0aGlzLmluamVjdChbXSxmdW5jdGlvbih1LHYpe3ZhciB0PWVuY29kZVVS SUNvbXBvbmVudCh2LmtleSkscz12LnZhbHVlO2lmKHMmJnR5cGVvZiBzPT0ib2Jq ZWN0Iil7aWYoT2JqZWN0LmlzQXJyYXkocykpe3JldHVybiB1LmNvbmNhdChzLm1h cChiLmN1cnJ5KHQpKSl9fWVsc2V7dS5wdXNoKGIodCxzKSl9cmV0dXJuIHV9KS5q b2luKCImIil9ZnVuY3Rpb24gbigpe3JldHVybiIjPEhhc2g6eyIrdGhpcy5tYXAo ZnVuY3Rpb24ocyl7cmV0dXJuIHMubWFwKE9iamVjdC5pbnNwZWN0KS5qb2luKCI6 ICIpfSkuam9pbigiLCAiKSsifT4ifWZ1bmN0aW9uIGwoKXtyZXR1cm4gT2JqZWN0 LnRvSlNPTih0aGlzLnRvT2JqZWN0KCkpfWZ1bmN0aW9uIGooKXtyZXR1cm4gbmV3 IEhhc2godGhpcyl9cmV0dXJue2luaXRpYWxpemU6ZixfZWFjaDpnLHNldDptLGdl dDpjLHVuc2V0OnAsdG9PYmplY3Q6cix0b1RlbXBsYXRlUmVwbGFjZW1lbnRzOnIs a2V5czpxLHZhbHVlczpvLGluZGV4OmgsbWVyZ2U6ayx1cGRhdGU6ZSx0b1F1ZXJ5 U3RyaW5nOmEsaW5zcGVjdDpuLHRvSlNPTjpsLGNsb25lOmp9fSkoKSk7SGFzaC5m cm9tPSRIO09iamVjdC5leHRlbmQoTnVtYmVyLnByb3RvdHlwZSwoZnVuY3Rpb24o KXtmdW5jdGlvbiBlKCl7cmV0dXJuIHRoaXMudG9QYWRkZWRTdHJpbmcoMiwxNil9 ZnVuY3Rpb24gZigpe3JldHVybiB0aGlzKzF9ZnVuY3Rpb24gYShtLGwpeyRSKDAs dGhpcyx0cnVlKS5lYWNoKG0sbCk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gYihuLG0p e3ZhciBsPXRoaXMudG9TdHJpbmcobXx8MTApO3JldHVybiIwIi50aW1lcyhuLWwu bGVuZ3RoKStsfWZ1bmN0aW9uIGcoKXtyZXR1cm4gaXNGaW5pdGUodGhpcyk/dGhp cy50b1N0cmluZygpOiJudWxsIn1mdW5jdGlvbiBrKCl7cmV0dXJuIE1hdGguYWJz KHRoaXMpfWZ1bmN0aW9uIGooKXtyZXR1cm4gTWF0aC5yb3VuZCh0aGlzKX1mdW5j dGlvbiBoKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzKX1mdW5jdGlvbiBjKCl7cmV0 dXJuIE1hdGguZmxvb3IodGhpcyl9cmV0dXJue3RvQ29sb3JQYXJ0OmUsc3VjYzpm LHRpbWVzOmEsdG9QYWRkZWRTdHJpbmc6Yix0b0pTT046ZyxhYnM6ayxyb3VuZDpq LGNlaWw6aCxmbG9vcjpjfX0pKCkpO2Z1bmN0aW9uICRSKGMsYSxiKXtyZXR1cm4g bmV3IE9iamVjdFJhbmdlKGMsYSxiKX12YXIgT2JqZWN0UmFuZ2U9Q2xhc3MuY3Jl YXRlKEVudW1lcmFibGUsKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYihnLGUsZil7dGhp cy5zdGFydD1nO3RoaXMuZW5kPWU7dGhpcy5leGNsdXNpdmU9Zn1mdW5jdGlvbiBj KGUpe3ZhciBmPXRoaXMuc3RhcnQ7d2hpbGUodGhpcy5pbmNsdWRlKGYpKXtlKGYp O2Y9Zi5zdWNjKCl9fWZ1bmN0aW9uIGEoZSl7aWYoZTx0aGlzLnN0YXJ0KXtyZXR1 cm4gZmFsc2V9aWYodGhpcy5leGNsdXNpdmUpe3JldHVybiBlPHRoaXMuZW5kfXJl dHVybiBlPD10aGlzLmVuZH1yZXR1cm57aW5pdGlhbGl6ZTpiLF9lYWNoOmMsaW5j bHVkZTphfX0pKCkpO3ZhciBBamF4PXtnZXRUcmFuc3BvcnQ6ZnVuY3Rpb24oKXty ZXR1cm4gVHJ5LnRoZXNlKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBYTUxIdHRwUmVx dWVzdCgpfSxmdW5jdGlvbigpe3JldHVybiBuZXcgQWN0aXZlWE9iamVjdCgiTXN4 bWwyLlhNTEhUVFAiKX0sZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEFjdGl2ZVhPYmpl Y3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9KXx8ZmFsc2V9LGFjdGl2ZVJlcXVlc3RD b3VudDowfTtBamF4LlJlc3BvbmRlcnM9e3Jlc3BvbmRlcnM6W10sX2VhY2g6ZnVu Y3Rpb24oYSl7dGhpcy5yZXNwb25kZXJzLl9lYWNoKGEpfSxyZWdpc3RlcjpmdW5j dGlvbihhKXtpZighdGhpcy5pbmNsdWRlKGEpKXt0aGlzLnJlc3BvbmRlcnMucHVz aChhKX19LHVucmVnaXN0ZXI6ZnVuY3Rpb24oYSl7dGhpcy5yZXNwb25kZXJzPXRo aXMucmVzcG9uZGVycy53aXRob3V0KGEpfSxkaXNwYXRjaDpmdW5jdGlvbihlLGIs YyxhKXt0aGlzLmVhY2goZnVuY3Rpb24oZil7aWYoT2JqZWN0LmlzRnVuY3Rpb24o ZltlXSkpe3RyeXtmW2VdLmFwcGx5KGYsW2IsYyxhXSl9Y2F0Y2goZyl7fX19KX19 O09iamVjdC5leHRlbmQoQWpheC5SZXNwb25kZXJzLEVudW1lcmFibGUpO0FqYXgu UmVzcG9uZGVycy5yZWdpc3Rlcih7b25DcmVhdGU6ZnVuY3Rpb24oKXtBamF4LmFj dGl2ZVJlcXVlc3RDb3VudCsrfSxvbkNvbXBsZXRlOmZ1bmN0aW9uKCl7QWpheC5h Y3RpdmVSZXF1ZXN0Q291bnQtLX19KTtBamF4LkJhc2U9Q2xhc3MuY3JlYXRlKHtp bml0aWFsaXplOmZ1bmN0aW9uKGEpe3RoaXMub3B0aW9ucz17bWV0aG9kOiJwb3N0 Iixhc3luY2hyb25vdXM6dHJ1ZSxjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13 d3ctZm9ybS11cmxlbmNvZGVkIixlbmNvZGluZzoiVVRGLTgiLHBhcmFtZXRlcnM6 IiIsZXZhbEpTT046dHJ1ZSxldmFsSlM6dHJ1ZX07T2JqZWN0LmV4dGVuZCh0aGlz Lm9wdGlvbnMsYXx8e30pO3RoaXMub3B0aW9ucy5tZXRob2Q9dGhpcy5vcHRpb25z Lm1ldGhvZC50b0xvd2VyQ2FzZSgpO2lmKE9iamVjdC5pc1N0cmluZyh0aGlzLm9w dGlvbnMucGFyYW1ldGVycykpe3RoaXMub3B0aW9ucy5wYXJhbWV0ZXJzPXRoaXMu b3B0aW9ucy5wYXJhbWV0ZXJzLnRvUXVlcnlQYXJhbXMoKX1lbHNle2lmKE9iamVj dC5pc0hhc2godGhpcy5vcHRpb25zLnBhcmFtZXRlcnMpKXt0aGlzLm9wdGlvbnMu cGFyYW1ldGVycz10aGlzLm9wdGlvbnMucGFyYW1ldGVycy50b09iamVjdCgpfX19 fSk7QWpheC5SZXF1ZXN0PUNsYXNzLmNyZWF0ZShBamF4LkJhc2Use19jb21wbGV0 ZTpmYWxzZSxpbml0aWFsaXplOmZ1bmN0aW9uKCRzdXBlcixiLGEpeyRzdXBlcihh KTt0aGlzLnRyYW5zcG9ydD1BamF4LmdldFRyYW5zcG9ydCgpO3RoaXMucmVxdWVz dChiKX0scmVxdWVzdDpmdW5jdGlvbihiKXt0aGlzLnVybD1iO3RoaXMubWV0aG9k PXRoaXMub3B0aW9ucy5tZXRob2Q7dmFyIGY9T2JqZWN0LmNsb25lKHRoaXMub3B0 aW9ucy5wYXJhbWV0ZXJzKTtpZighWyJnZXQiLCJwb3N0Il0uaW5jbHVkZSh0aGlz Lm1ldGhvZCkpe2YuX21ldGhvZD10aGlzLm1ldGhvZDt0aGlzLm1ldGhvZD0icG9z dCJ9dGhpcy5wYXJhbWV0ZXJzPWY7aWYoZj1PYmplY3QudG9RdWVyeVN0cmluZyhm KSl7aWYodGhpcy5tZXRob2Q9PSJnZXQiKXt0aGlzLnVybCs9KHRoaXMudXJsLmlu Y2x1ZGUoIj8iKT8iJiI6Ij8iKStmfWVsc2V7aWYoL0tvbnF1ZXJvcnxTYWZhcml8 S0hUTUwvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpe2YrPSImXz0ifX19dHJ5 e3ZhciBhPW5ldyBBamF4LlJlc3BvbnNlKHRoaXMpO2lmKHRoaXMub3B0aW9ucy5v bkNyZWF0ZSl7dGhpcy5vcHRpb25zLm9uQ3JlYXRlKGEpfUFqYXguUmVzcG9uZGVy cy5kaXNwYXRjaCgib25DcmVhdGUiLHRoaXMsYSk7dGhpcy50cmFuc3BvcnQub3Bl bih0aGlzLm1ldGhvZC50b1VwcGVyQ2FzZSgpLHRoaXMudXJsLHRoaXMub3B0aW9u cy5hc3luY2hyb25vdXMpO2lmKHRoaXMub3B0aW9ucy5hc3luY2hyb25vdXMpe3Ro aXMucmVzcG9uZFRvUmVhZHlTdGF0ZS5iaW5kKHRoaXMpLmRlZmVyKDEpfXRoaXMu dHJhbnNwb3J0Lm9ucmVhZHlzdGF0ZWNoYW5nZT10aGlzLm9uU3RhdGVDaGFuZ2Uu YmluZCh0aGlzKTt0aGlzLnNldFJlcXVlc3RIZWFkZXJzKCk7dGhpcy5ib2R5PXRo aXMubWV0aG9kPT0icG9zdCI/KHRoaXMub3B0aW9ucy5wb3N0Qm9keXx8Zik6bnVs bDt0aGlzLnRyYW5zcG9ydC5zZW5kKHRoaXMuYm9keSk7aWYoIXRoaXMub3B0aW9u cy5hc3luY2hyb25vdXMmJnRoaXMudHJhbnNwb3J0Lm92ZXJyaWRlTWltZVR5cGUp e3RoaXMub25TdGF0ZUNoYW5nZSgpfX1jYXRjaChjKXt0aGlzLmRpc3BhdGNoRXhj ZXB0aW9uKGMpfX0sb25TdGF0ZUNoYW5nZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMu dHJhbnNwb3J0LnJlYWR5U3RhdGU7aWYoYT4xJiYhKChhPT00KSYmdGhpcy5fY29t cGxldGUpKXt0aGlzLnJlc3BvbmRUb1JlYWR5U3RhdGUodGhpcy50cmFuc3BvcnQu cmVhZHlTdGF0ZSl9fSxzZXRSZXF1ZXN0SGVhZGVyczpmdW5jdGlvbigpe3ZhciBm PXsiWC1SZXF1ZXN0ZWQtV2l0aCI6IlhNTEh0dHBSZXF1ZXN0IiwiWC1Qcm90b3R5 cGUtVmVyc2lvbiI6UHJvdG90eXBlLlZlcnNpb24sQWNjZXB0OiJ0ZXh0L2phdmFz Y3JpcHQsIHRleHQvaHRtbCwgYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCwgKi8q In07aWYodGhpcy5tZXRob2Q9PSJwb3N0Iil7ZlsiQ29udGVudC10eXBlIl09dGhp cy5vcHRpb25zLmNvbnRlbnRUeXBlKyh0aGlzLm9wdGlvbnMuZW5jb2Rpbmc/Ijsg Y2hhcnNldD0iK3RoaXMub3B0aW9ucy5lbmNvZGluZzoiIik7aWYodGhpcy50cmFu c3BvcnQub3ZlcnJpZGVNaW1lVHlwZSYmKG5hdmlnYXRvci51c2VyQWdlbnQubWF0 Y2goL0dlY2tvXC8oXGR7NH0pLyl8fFswLDIwMDVdKVsxXTwyMDA1KXtmLkNvbm5l Y3Rpb249ImNsb3NlIn19aWYodHlwZW9mIHRoaXMub3B0aW9ucy5yZXF1ZXN0SGVh ZGVycz09Im9iamVjdCIpe3ZhciBjPXRoaXMub3B0aW9ucy5yZXF1ZXN0SGVhZGVy cztpZihPYmplY3QuaXNGdW5jdGlvbihjLnB1c2gpKXtmb3IodmFyIGI9MCxlPWMu bGVuZ3RoO2I8ZTtiKz0yKXtmW2NbYl1dPWNbYisxXX19ZWxzZXskSChjKS5lYWNo KGZ1bmN0aW9uKGcpe2ZbZy5rZXldPWcudmFsdWV9KX19Zm9yKHZhciBhIGluIGYp e3RoaXMudHJhbnNwb3J0LnNldFJlcXVlc3RIZWFkZXIoYSxmW2FdKX19LHN1Y2Nl c3M6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmdldFN0YXR1cygpO3JldHVybiAhYXx8 KGE+PTIwMCYmYTwzMDApfSxnZXRTdGF0dXM6ZnVuY3Rpb24oKXt0cnl7cmV0dXJu IHRoaXMudHJhbnNwb3J0LnN0YXR1c3x8MH1jYXRjaChhKXtyZXR1cm4gMH19LHJl c3BvbmRUb1JlYWR5U3RhdGU6ZnVuY3Rpb24oYSl7dmFyIGM9QWpheC5SZXF1ZXN0 LkV2ZW50c1thXSxiPW5ldyBBamF4LlJlc3BvbnNlKHRoaXMpO2lmKGM9PSJDb21w bGV0ZSIpe3RyeXt0aGlzLl9jb21wbGV0ZT10cnVlOyh0aGlzLm9wdGlvbnNbIm9u IitiLnN0YXR1c118fHRoaXMub3B0aW9uc1sib24iKyh0aGlzLnN1Y2Nlc3MoKT8i U3VjY2VzcyI6IkZhaWx1cmUiKV18fFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uKShi LGIuaGVhZGVySlNPTil9Y2F0Y2goZil7dGhpcy5kaXNwYXRjaEV4Y2VwdGlvbihm KX12YXIgZz1iLmdldEhlYWRlcigiQ29udGVudC10eXBlIik7aWYodGhpcy5vcHRp b25zLmV2YWxKUz09ImZvcmNlInx8KHRoaXMub3B0aW9ucy5ldmFsSlMmJnRoaXMu aXNTYW1lT3JpZ2luKCkmJmcmJmcubWF0Y2goL15ccyoodGV4dHxhcHBsaWNhdGlv bilcLyh4LSk/KGphdmF8ZWNtYSlzY3JpcHQoOy4qKT9ccyokL2kpKSl7dGhpcy5l dmFsUmVzcG9uc2UoKX19dHJ5eyh0aGlzLm9wdGlvbnNbIm9uIitjXXx8UHJvdG90 eXBlLmVtcHR5RnVuY3Rpb24pKGIsYi5oZWFkZXJKU09OKTtBamF4LlJlc3BvbmRl cnMuZGlzcGF0Y2goIm9uIitjLHRoaXMsYixiLmhlYWRlckpTT04pfWNhdGNoKGYp e3RoaXMuZGlzcGF0Y2hFeGNlcHRpb24oZil9aWYoYz09IkNvbXBsZXRlIil7dGhp cy50cmFuc3BvcnQub25yZWFkeXN0YXRlY2hhbmdlPVByb3RvdHlwZS5lbXB0eUZ1 bmN0aW9ufX0saXNTYW1lT3JpZ2luOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy51cmwu bWF0Y2goL15ccypodHRwcz86XC9cL1teXC9dKi8pO3JldHVybiAhYXx8KGFbMF09 PSIje3Byb3RvY29sfS8vI3tkb21haW59I3twb3J0fSIuaW50ZXJwb2xhdGUoe3By b3RvY29sOmxvY2F0aW9uLnByb3RvY29sLGRvbWFpbjpkb2N1bWVudC5kb21haW4s cG9ydDpsb2NhdGlvbi5wb3J0PyI6Iitsb2NhdGlvbi5wb3J0OiIifSkpfSxnZXRI ZWFkZXI6ZnVuY3Rpb24oYSl7dHJ5e3JldHVybiB0aGlzLnRyYW5zcG9ydC5nZXRS ZXNwb25zZUhlYWRlcihhKXx8bnVsbH1jYXRjaChiKXtyZXR1cm4gbnVsbH19LGV2 YWxSZXNwb25zZTpmdW5jdGlvbigpe3RyeXtyZXR1cm4gZXZhbCgodGhpcy50cmFu c3BvcnQucmVzcG9uc2VUZXh0fHwiIikudW5maWx0ZXJKU09OKCkpfWNhdGNoKGUp e3RoaXMuZGlzcGF0Y2hFeGNlcHRpb24oZSl9fSxkaXNwYXRjaEV4Y2VwdGlvbjpm dW5jdGlvbihhKXsodGhpcy5vcHRpb25zLm9uRXhjZXB0aW9ufHxQcm90b3R5cGUu ZW1wdHlGdW5jdGlvbikodGhpcyxhKTtBamF4LlJlc3BvbmRlcnMuZGlzcGF0Y2go Im9uRXhjZXB0aW9uIix0aGlzLGEpfX0pO0FqYXguUmVxdWVzdC5FdmVudHM9WyJV bmluaXRpYWxpemVkIiwiTG9hZGluZyIsIkxvYWRlZCIsIkludGVyYWN0aXZlIiwi Q29tcGxldGUiXTtBamF4LlJlc3BvbnNlPUNsYXNzLmNyZWF0ZSh7aW5pdGlhbGl6 ZTpmdW5jdGlvbihjKXt0aGlzLnJlcXVlc3Q9Yzt2YXIgZT10aGlzLnRyYW5zcG9y dD1jLnRyYW5zcG9ydCxhPXRoaXMucmVhZHlTdGF0ZT1lLnJlYWR5U3RhdGU7aWYo KGE+MiYmIVByb3RvdHlwZS5Ccm93c2VyLklFKXx8YT09NCl7dGhpcy5zdGF0dXM9 dGhpcy5nZXRTdGF0dXMoKTt0aGlzLnN0YXR1c1RleHQ9dGhpcy5nZXRTdGF0dXNU ZXh0KCk7dGhpcy5yZXNwb25zZVRleHQ9U3RyaW5nLmludGVycHJldChlLnJlc3Bv bnNlVGV4dCk7dGhpcy5oZWFkZXJKU09OPXRoaXMuX2dldEhlYWRlckpTT04oKX1p ZihhPT00KXt2YXIgYj1lLnJlc3BvbnNlWE1MO3RoaXMucmVzcG9uc2VYTUw9T2Jq ZWN0LmlzVW5kZWZpbmVkKGIpP251bGw6Yjt0aGlzLnJlc3BvbnNlSlNPTj10aGlz Ll9nZXRSZXNwb25zZUpTT04oKX19LHN0YXR1czowLHN0YXR1c1RleHQ6IiIsZ2V0 U3RhdHVzOkFqYXguUmVxdWVzdC5wcm90b3R5cGUuZ2V0U3RhdHVzLGdldFN0YXR1 c1RleHQ6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHRoaXMudHJhbnNwb3J0LnN0YXR1 c1RleHR8fCIifWNhdGNoKGEpe3JldHVybiIifX0sZ2V0SGVhZGVyOkFqYXguUmVx dWVzdC5wcm90b3R5cGUuZ2V0SGVhZGVyLGdldEFsbEhlYWRlcnM6ZnVuY3Rpb24o KXt0cnl7cmV0dXJuIHRoaXMuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCl9Y2F0Y2go YSl7cmV0dXJuIG51bGx9fSxnZXRSZXNwb25zZUhlYWRlcjpmdW5jdGlvbihhKXty ZXR1cm4gdGhpcy50cmFuc3BvcnQuZ2V0UmVzcG9uc2VIZWFkZXIoYSl9LGdldEFs bFJlc3BvbnNlSGVhZGVyczpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRyYW5zcG9y dC5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKX0sX2dldEhlYWRlckpTT046ZnVuY3Rp b24oKXt2YXIgYT10aGlzLmdldEhlYWRlcigiWC1KU09OIik7aWYoIWEpe3JldHVy biBudWxsfWE9ZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZShhKSk7dHJ5e3JldHVy biBhLmV2YWxKU09OKHRoaXMucmVxdWVzdC5vcHRpb25zLnNhbml0aXplSlNPTnx8 IXRoaXMucmVxdWVzdC5pc1NhbWVPcmlnaW4oKSl9Y2F0Y2goYil7dGhpcy5yZXF1 ZXN0LmRpc3BhdGNoRXhjZXB0aW9uKGIpfX0sX2dldFJlc3BvbnNlSlNPTjpmdW5j dGlvbigpe3ZhciBhPXRoaXMucmVxdWVzdC5vcHRpb25zO2lmKCFhLmV2YWxKU09O fHwoYS5ldmFsSlNPTiE9ImZvcmNlIiYmISh0aGlzLmdldEhlYWRlcigiQ29udGVu dC10eXBlIil8fCIiKS5pbmNsdWRlKCJhcHBsaWNhdGlvbi9qc29uIikpfHx0aGlz LnJlc3BvbnNlVGV4dC5ibGFuaygpKXtyZXR1cm4gbnVsbH10cnl7cmV0dXJuIHRo aXMucmVzcG9uc2VUZXh0LmV2YWxKU09OKGEuc2FuaXRpemVKU09OfHwhdGhpcy5y ZXF1ZXN0LmlzU2FtZU9yaWdpbigpKX1jYXRjaChiKXt0aGlzLnJlcXVlc3QuZGlz cGF0Y2hFeGNlcHRpb24oYil9fX0pO0FqYXguVXBkYXRlcj1DbGFzcy5jcmVhdGUo QWpheC5SZXF1ZXN0LHtpbml0aWFsaXplOmZ1bmN0aW9uKCRzdXBlcixhLGMsYil7 dGhpcy5jb250YWluZXI9e3N1Y2Nlc3M6KGEuc3VjY2Vzc3x8YSksZmFpbHVyZToo YS5mYWlsdXJlfHwoYS5zdWNjZXNzP251bGw6YSkpfTtiPU9iamVjdC5jbG9uZShi KTt2YXIgZT1iLm9uQ29tcGxldGU7Yi5vbkNvbXBsZXRlPShmdW5jdGlvbihmLGcp e3RoaXMudXBkYXRlQ29udGVudChmLnJlc3BvbnNlVGV4dCk7aWYoT2JqZWN0Lmlz RnVuY3Rpb24oZSkpe2UoZixnKX19KS5iaW5kKHRoaXMpOyRzdXBlcihjLGIpfSx1 cGRhdGVDb250ZW50OmZ1bmN0aW9uKGUpe3ZhciBjPXRoaXMuY29udGFpbmVyW3Ro aXMuc3VjY2VzcygpPyJzdWNjZXNzIjoiZmFpbHVyZSJdLGE9dGhpcy5vcHRpb25z O2lmKCFhLmV2YWxTY3JpcHRzKXtlPWUuc3RyaXBTY3JpcHRzKCl9aWYoYz0kKGMp KXtpZihhLmluc2VydGlvbil7aWYoT2JqZWN0LmlzU3RyaW5nKGEuaW5zZXJ0aW9u KSl7dmFyIGI9e307YlthLmluc2VydGlvbl09ZTtjLmluc2VydChiKX1lbHNle2Eu aW5zZXJ0aW9uKGMsZSl9fWVsc2V7Yy51cGRhdGUoZSl9fX19KTtBamF4LlBlcmlv ZGljYWxVcGRhdGVyPUNsYXNzLmNyZWF0ZShBamF4LkJhc2Use2luaXRpYWxpemU6 ZnVuY3Rpb24oJHN1cGVyLGEsYyxiKXskc3VwZXIoYik7dGhpcy5vbkNvbXBsZXRl PXRoaXMub3B0aW9ucy5vbkNvbXBsZXRlO3RoaXMuZnJlcXVlbmN5PSh0aGlzLm9w dGlvbnMuZnJlcXVlbmN5fHwyKTt0aGlzLmRlY2F5PSh0aGlzLm9wdGlvbnMuZGVj YXl8fDEpO3RoaXMudXBkYXRlcj17fTt0aGlzLmNvbnRhaW5lcj1hO3RoaXMudXJs PWM7dGhpcy5zdGFydCgpfSxzdGFydDpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5v bkNvbXBsZXRlPXRoaXMudXBkYXRlQ29tcGxldGUuYmluZCh0aGlzKTt0aGlzLm9u VGltZXJFdmVudCgpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy51cGRhdGVyLm9wdGlv bnMub25Db21wbGV0ZT11bmRlZmluZWQ7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIp Oyh0aGlzLm9uQ29tcGxldGV8fFByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uKS5hcHBs eSh0aGlzLGFyZ3VtZW50cyl9LHVwZGF0ZUNvbXBsZXRlOmZ1bmN0aW9uKGEpe2lm KHRoaXMub3B0aW9ucy5kZWNheSl7dGhpcy5kZWNheT0oYS5yZXNwb25zZVRleHQ9 PXRoaXMubGFzdFRleHQ/dGhpcy5kZWNheSp0aGlzLm9wdGlvbnMuZGVjYXk6MSk7 dGhpcy5sYXN0VGV4dD1hLnJlc3BvbnNlVGV4dH10aGlzLnRpbWVyPXRoaXMub25U aW1lckV2ZW50LmJpbmQodGhpcykuZGVsYXkodGhpcy5kZWNheSp0aGlzLmZyZXF1 ZW5jeSl9LG9uVGltZXJFdmVudDpmdW5jdGlvbigpe3RoaXMudXBkYXRlcj1uZXcg QWpheC5VcGRhdGVyKHRoaXMuY29udGFpbmVyLHRoaXMudXJsLHRoaXMub3B0aW9u cyl9fSk7ZnVuY3Rpb24gJChiKXtpZihhcmd1bWVudHMubGVuZ3RoPjEpe2Zvcih2 YXIgYT0wLGU9W10sYz1hcmd1bWVudHMubGVuZ3RoO2E8YzthKyspe2UucHVzaCgk KGFyZ3VtZW50c1thXSkpfXJldHVybiBlfWlmKE9iamVjdC5pc1N0cmluZyhiKSl7 Yj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChiKX1yZXR1cm4gRWxlbWVudC5leHRl bmQoYil9aWYoUHJvdG90eXBlLkJyb3dzZXJGZWF0dXJlcy5YUGF0aCl7ZG9jdW1l bnQuX2dldEVsZW1lbnRzQnlYUGF0aD1mdW5jdGlvbihnLGEpe3ZhciBjPVtdO3Zh ciBmPWRvY3VtZW50LmV2YWx1YXRlKGcsJChhKXx8ZG9jdW1lbnQsbnVsbCxYUGF0 aFJlc3VsdC5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRSxudWxsKTtmb3IodmFy IGI9MCxlPWYuc25hcHNob3RMZW5ndGg7YjxlO2IrKyl7Yy5wdXNoKEVsZW1lbnQu ZXh0ZW5kKGYuc25hcHNob3RJdGVtKGIpKSl9cmV0dXJuIGN9fWlmKCF3aW5kb3cu Tm9kZSl7dmFyIE5vZGU9e319aWYoIU5vZGUuRUxFTUVOVF9OT0RFKXtPYmplY3Qu ZXh0ZW5kKE5vZGUse0VMRU1FTlRfTk9ERToxLEFUVFJJQlVURV9OT0RFOjIsVEVY VF9OT0RFOjMsQ0RBVEFfU0VDVElPTl9OT0RFOjQsRU5USVRZX1JFRkVSRU5DRV9O T0RFOjUsRU5USVRZX05PREU6NixQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6 NyxDT01NRU5UX05PREU6OCxET0NVTUVOVF9OT0RFOjksRE9DVU1FTlRfVFlQRV9O T0RFOjEwLERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6MTEsTk9UQVRJT05fTk9ERTox Mn0pfShmdW5jdGlvbihjKXt2YXIgYj0oZnVuY3Rpb24oKXt2YXIgZz1kb2N1bWVu dC5jcmVhdGVFbGVtZW50KCJmb3JtIik7dmFyIGY9ZG9jdW1lbnQuY3JlYXRlRWxl bWVudCgiaW5wdXQiKTt2YXIgZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7Zi5z ZXRBdHRyaWJ1dGUoIm5hbWUiLCJ0ZXN0Iik7Zy5hcHBlbmRDaGlsZChmKTtlLmFw cGVuZENoaWxkKGcpO3ZhciBoPWcuZWxlbWVudHM/KHR5cGVvZiBnLmVsZW1lbnRz LnRlc3Q9PSJ1bmRlZmluZWQiKTpudWxsO2UucmVtb3ZlQ2hpbGQoZyk7Zz1mPW51 bGw7cmV0dXJuIGh9KSgpO3ZhciBhPWMuRWxlbWVudDtjLkVsZW1lbnQ9ZnVuY3Rp b24oZyxmKXtmPWZ8fHt9O2c9Zy50b0xvd2VyQ2FzZSgpO3ZhciBlPUVsZW1lbnQu Y2FjaGU7aWYoYiYmZi5uYW1lKXtnPSI8IitnKycgbmFtZT0iJytmLm5hbWUrJyI+ JztkZWxldGUgZi5uYW1lO3JldHVybiBFbGVtZW50LndyaXRlQXR0cmlidXRlKGRv Y3VtZW50LmNyZWF0ZUVsZW1lbnQoZyksZil9aWYoIWVbZ10pe2VbZ109RWxlbWVu dC5leHRlbmQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudChnKSl9cmV0dXJuIEVsZW1l bnQud3JpdGVBdHRyaWJ1dGUoZVtnXS5jbG9uZU5vZGUoZmFsc2UpLGYpfTtPYmpl Y3QuZXh0ZW5kKGMuRWxlbWVudCxhfHx7fSk7aWYoYSl7Yy5FbGVtZW50LnByb3Rv dHlwZT1hLnByb3RvdHlwZX19KSh0aGlzKTtFbGVtZW50LmNhY2hlPXt9O0VsZW1l bnQuaWRDb3VudGVyPTE7RWxlbWVudC5NZXRob2RzPXt2aXNpYmxlOmZ1bmN0aW9u KGEpe3JldHVybiAkKGEpLnN0eWxlLmRpc3BsYXkhPSJub25lIn0sdG9nZ2xlOmZ1 bmN0aW9uKGEpe2E9JChhKTtFbGVtZW50W0VsZW1lbnQudmlzaWJsZShhKT8iaGlk ZSI6InNob3ciXShhKTtyZXR1cm4gYX0saGlkZTpmdW5jdGlvbihhKXthPSQoYSk7 YS5zdHlsZS5kaXNwbGF5PSJub25lIjtyZXR1cm4gYX0sc2hvdzpmdW5jdGlvbihh KXthPSQoYSk7YS5zdHlsZS5kaXNwbGF5PSIiO3JldHVybiBhfSxyZW1vdmU6ZnVu Y3Rpb24oYSl7YT0kKGEpO2EucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKTtyZXR1 cm4gYX0sdXBkYXRlOihmdW5jdGlvbigpe3ZhciBiPShmdW5jdGlvbigpe3ZhciBm PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLGc9dHJ1ZTtmLmlubmVy SFRNTD0nPG9wdGlvbiB2YWx1ZT0idGVzdCI+dGVzdDwvb3B0aW9uPic7aWYoZi5v cHRpb25zJiZmLm9wdGlvbnNbMF0pe2c9Zi5vcHRpb25zWzBdLm5vZGVOYW1lLnRv VXBwZXJDYXNlKCkhPT0iT1BUSU9OIn1mPW51bGw7cmV0dXJuIGd9KSgpO3ZhciBh PShmdW5jdGlvbigpe3RyeXt2YXIgZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0 YWJsZSIpO2lmKGYmJmYudEJvZGllcyl7Zi5pbm5lckhUTUw9Ijx0Ym9keT48dHI+ PHRkPnRlc3Q8L3RkPjwvdHI+PC90Ym9keT4iO3ZhciBoPXR5cGVvZiBmLnRCb2Rp ZXNbMF09PSJ1bmRlZmluZWQiO2Y9bnVsbDtyZXR1cm4gaH19Y2F0Y2goZyl7cmV0 dXJuIHRydWV9fSkoKTt2YXIgZT0oZnVuY3Rpb24oKXt2YXIgZj1kb2N1bWVudC5j cmVhdGVFbGVtZW50KCJzY3JpcHQiKSxoPWZhbHNlO3RyeXtmLmFwcGVuZENoaWxk KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIiKSk7aD0hZi5maXJzdENoaWxkfHxm LmZpcnN0Q2hpbGQmJmYuZmlyc3RDaGlsZC5ub2RlVHlwZSE9PTN9Y2F0Y2goZyl7 aD10cnVlfWY9bnVsbDtyZXR1cm4gaH0pKCk7ZnVuY3Rpb24gYyhnLGgpe2c9JChn KTtpZihoJiZoLnRvRWxlbWVudCl7aD1oLnRvRWxlbWVudCgpfWlmKE9iamVjdC5p c0VsZW1lbnQoaCkpe3JldHVybiBnLnVwZGF0ZSgpLmluc2VydChoKX1oPU9iamVj dC50b0hUTUwoaCk7dmFyIGY9Zy50YWdOYW1lLnRvVXBwZXJDYXNlKCk7aWYoZj09 PSJTQ1JJUFQiJiZlKXtnLnRleHQ9aDtyZXR1cm4gZ31pZihifHxhKXtpZihmIGlu IEVsZW1lbnQuX2luc2VydGlvblRyYW5zbGF0aW9ucy50YWdzKXskQShnLmNoaWxk Tm9kZXMpLmVhY2goZnVuY3Rpb24oail7Zy5yZW1vdmVDaGlsZChqKX0pO0VsZW1l bnQuX2dldENvbnRlbnRGcm9tQW5vbnltb3VzRWxlbWVudChmLGguc3RyaXBTY3Jp cHRzKCkpLmVhY2goZnVuY3Rpb24oail7Zy5hcHBlbmRDaGlsZChqKX0pfWVsc2V7 Zy5pbm5lckhUTUw9aC5zdHJpcFNjcmlwdHMoKX19ZWxzZXtnLmlubmVySFRNTD1o LnN0cmlwU2NyaXB0cygpfWguZXZhbFNjcmlwdHMuYmluZChoKS5kZWZlcigpO3Jl dHVybiBnfXJldHVybiBjfSkoKSxyZXBsYWNlOmZ1bmN0aW9uKGIsYyl7Yj0kKGIp O2lmKGMmJmMudG9FbGVtZW50KXtjPWMudG9FbGVtZW50KCl9ZWxzZXtpZighT2Jq ZWN0LmlzRWxlbWVudChjKSl7Yz1PYmplY3QudG9IVE1MKGMpO3ZhciBhPWIub3du ZXJEb2N1bWVudC5jcmVhdGVSYW5nZSgpO2Euc2VsZWN0Tm9kZShiKTtjLmV2YWxT Y3JpcHRzLmJpbmQoYykuZGVmZXIoKTtjPWEuY3JlYXRlQ29udGV4dHVhbEZyYWdt ZW50KGMuc3RyaXBTY3JpcHRzKCkpfX1iLnBhcmVudE5vZGUucmVwbGFjZUNoaWxk KGMsYik7cmV0dXJuIGJ9LGluc2VydDpmdW5jdGlvbihjLGYpe2M9JChjKTtpZihP YmplY3QuaXNTdHJpbmcoZil8fE9iamVjdC5pc051bWJlcihmKXx8T2JqZWN0Lmlz RWxlbWVudChmKXx8KGYmJihmLnRvRWxlbWVudHx8Zi50b0hUTUwpKSl7Zj17Ym90 dG9tOmZ9fXZhciBlLGcsYixoO2Zvcih2YXIgYSBpbiBmKXtlPWZbYV07YT1hLnRv TG93ZXJDYXNlKCk7Zz1FbGVtZW50Ll9pbnNlcnRpb25UcmFuc2xhdGlvbnNbYV07 aWYoZSYmZS50b0VsZW1lbnQpe2U9ZS50b0VsZW1lbnQoKX1pZihPYmplY3QuaXNF bGVtZW50KGUpKXtnKGMsZSk7Y29udGludWV9ZT1PYmplY3QudG9IVE1MKGUpO2I9 KChhPT0iYmVmb3JlInx8YT09ImFmdGVyIik/Yy5wYXJlbnROb2RlOmMpLnRhZ05h bWUudG9VcHBlckNhc2UoKTtoPUVsZW1lbnQuX2dldENvbnRlbnRGcm9tQW5vbnlt b3VzRWxlbWVudChiLGUuc3RyaXBTY3JpcHRzKCkpO2lmKGE9PSJ0b3AifHxhPT0i YWZ0ZXIiKXtoLnJldmVyc2UoKX1oLmVhY2goZy5jdXJyeShjKSk7ZS5ldmFsU2Ny aXB0cy5iaW5kKGUpLmRlZmVyKCl9cmV0dXJuIGN9LHdyYXA6ZnVuY3Rpb24oYixj LGEpe2I9JChiKTtpZihPYmplY3QuaXNFbGVtZW50KGMpKXskKGMpLndyaXRlQXR0 cmlidXRlKGF8fHt9KX1lbHNle2lmKE9iamVjdC5pc1N0cmluZyhjKSl7Yz1uZXcg RWxlbWVudChjLGEpfWVsc2V7Yz1uZXcgRWxlbWVudCgiZGl2IixjKX19aWYoYi5w YXJlbnROb2RlKXtiLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGMsYil9Yy5hcHBl bmRDaGlsZChiKTtyZXR1cm4gY30saW5zcGVjdDpmdW5jdGlvbihiKXtiPSQoYik7 dmFyIGE9IjwiK2IudGFnTmFtZS50b0xvd2VyQ2FzZSgpOyRIKHtpZDoiaWQiLGNs YXNzTmFtZToiY2xhc3MifSkuZWFjaChmdW5jdGlvbihnKXt2YXIgZj1nLmZpcnN0 KCksYz1nLmxhc3QoKTt2YXIgZT0oYltmXXx8IiIpLnRvU3RyaW5nKCk7aWYoZSl7 YSs9IiAiK2MrIj0iK2UuaW5zcGVjdCh0cnVlKX19KTtyZXR1cm4gYSsiPiJ9LHJl Y3Vyc2l2ZWx5Q29sbGVjdDpmdW5jdGlvbihhLGMpe2E9JChhKTt2YXIgYj1bXTt3 aGlsZShhPWFbY10pe2lmKGEubm9kZVR5cGU9PTEpe2IucHVzaChFbGVtZW50LmV4 dGVuZChhKSl9fXJldHVybiBifSxhbmNlc3RvcnM6ZnVuY3Rpb24oYSl7cmV0dXJu ICQoYSkucmVjdXJzaXZlbHlDb2xsZWN0KCJwYXJlbnROb2RlIil9LGRlc2NlbmRh bnRzOmZ1bmN0aW9uKGEpe3JldHVybiBFbGVtZW50LnNlbGVjdChhLCIqIil9LGZp cnN0RGVzY2VuZGFudDpmdW5jdGlvbihhKXthPSQoYSkuZmlyc3RDaGlsZDt3aGls ZShhJiZhLm5vZGVUeXBlIT0xKXthPWEubmV4dFNpYmxpbmd9cmV0dXJuICQoYSl9 LGltbWVkaWF0ZURlc2NlbmRhbnRzOmZ1bmN0aW9uKGEpe2lmKCEoYT0kKGEpLmZp cnN0Q2hpbGQpKXtyZXR1cm5bXX13aGlsZShhJiZhLm5vZGVUeXBlIT0xKXthPWEu bmV4dFNpYmxpbmd9aWYoYSl7cmV0dXJuW2FdLmNvbmNhdCgkKGEpLm5leHRTaWJs aW5ncygpKX1yZXR1cm5bXX0scHJldmlvdXNTaWJsaW5nczpmdW5jdGlvbihhKXty ZXR1cm4gJChhKS5yZWN1cnNpdmVseUNvbGxlY3QoInByZXZpb3VzU2libGluZyIp fSxuZXh0U2libGluZ3M6ZnVuY3Rpb24oYSl7cmV0dXJuICQoYSkucmVjdXJzaXZl bHlDb2xsZWN0KCJuZXh0U2libGluZyIpfSxzaWJsaW5nczpmdW5jdGlvbihhKXth PSQoYSk7cmV0dXJuIGEucHJldmlvdXNTaWJsaW5ncygpLnJldmVyc2UoKS5jb25j YXQoYS5uZXh0U2libGluZ3MoKSl9LG1hdGNoOmZ1bmN0aW9uKGIsYSl7aWYoT2Jq ZWN0LmlzU3RyaW5nKGEpKXthPW5ldyBTZWxlY3RvcihhKX1yZXR1cm4gYS5tYXRj aCgkKGIpKX0sdXA6ZnVuY3Rpb24oYixlLGEpe2I9JChiKTtpZihhcmd1bWVudHMu bGVuZ3RoPT0xKXtyZXR1cm4gJChiLnBhcmVudE5vZGUpfXZhciBjPWIuYW5jZXN0 b3JzKCk7cmV0dXJuIE9iamVjdC5pc051bWJlcihlKT9jW2VdOlNlbGVjdG9yLmZp bmRFbGVtZW50KGMsZSxhKX0sZG93bjpmdW5jdGlvbihiLGMsYSl7Yj0kKGIpO2lm KGFyZ3VtZW50cy5sZW5ndGg9PTEpe3JldHVybiBiLmZpcnN0RGVzY2VuZGFudCgp fXJldHVybiBPYmplY3QuaXNOdW1iZXIoYyk/Yi5kZXNjZW5kYW50cygpW2NdOkVs ZW1lbnQuc2VsZWN0KGIsYylbYXx8MF19LHByZXZpb3VzOmZ1bmN0aW9uKGIsZSxh KXtiPSQoYik7aWYoYXJndW1lbnRzLmxlbmd0aD09MSl7cmV0dXJuICQoU2VsZWN0 b3IuaGFuZGxlcnMucHJldmlvdXNFbGVtZW50U2libGluZyhiKSl9dmFyIGM9Yi5w cmV2aW91c1NpYmxpbmdzKCk7cmV0dXJuIE9iamVjdC5pc051bWJlcihlKT9jW2Vd OlNlbGVjdG9yLmZpbmRFbGVtZW50KGMsZSxhKX0sbmV4dDpmdW5jdGlvbihjLGUs Yil7Yz0kKGMpO2lmKGFyZ3VtZW50cy5sZW5ndGg9PTEpe3JldHVybiAkKFNlbGVj dG9yLmhhbmRsZXJzLm5leHRFbGVtZW50U2libGluZyhjKSl9dmFyIGE9Yy5uZXh0 U2libGluZ3MoKTtyZXR1cm4gT2JqZWN0LmlzTnVtYmVyKGUpP2FbZV06U2VsZWN0 b3IuZmluZEVsZW1lbnQoYSxlLGIpfSxzZWxlY3Q6ZnVuY3Rpb24oKXt2YXIgYT0k QShhcmd1bWVudHMpLGI9JChhLnNoaWZ0KCkpO3JldHVybiBTZWxlY3Rvci5maW5k Q2hpbGRFbGVtZW50cyhiLGEpfSxhZGphY2VudDpmdW5jdGlvbigpe3ZhciBhPSRB KGFyZ3VtZW50cyksYj0kKGEuc2hpZnQoKSk7cmV0dXJuIFNlbGVjdG9yLmZpbmRD aGlsZEVsZW1lbnRzKGIucGFyZW50Tm9kZSxhKS53aXRob3V0KGIpfSxpZGVudGlm eTpmdW5jdGlvbihhKXthPSQoYSk7dmFyIGI9YS5yZWFkQXR0cmlidXRlKCJpZCIp O2lmKGIpe3JldHVybiBifWRve2I9ImFub255bW91c19lbGVtZW50XyIrRWxlbWVu dC5pZENvdW50ZXIrK313aGlsZSgkKGIpKTthLndyaXRlQXR0cmlidXRlKCJpZCIs Yik7cmV0dXJuIGJ9LHJlYWRBdHRyaWJ1dGU6KGZ1bmN0aW9uKCl7dmFyIGE9KGZ1 bmN0aW9uKCl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIiks Zj1mYWxzZTtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoYik7 dHJ5e2IuZ2V0QXR0cmlidXRlKCJ0eXBlIiwyKX1jYXRjaChjKXtmPXRydWV9ZG9j dW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUNoaWxkKGIpO2I9bnVsbDtyZXR1 cm4gZn0pKCk7cmV0dXJuIGZ1bmN0aW9uKGUsYil7ZT0kKGUpO2lmKGEmJmI9PT0i dHlwZSImJmUudGFnTmFtZS50b1VwcGVyQ2FzZSgpPT0iSUZSQU1FIil7cmV0dXJu IGUuZ2V0QXR0cmlidXRlKCJ0eXBlIil9aWYoUHJvdG90eXBlLkJyb3dzZXIuSUUp e3ZhciBjPUVsZW1lbnQuX2F0dHJpYnV0ZVRyYW5zbGF0aW9ucy5yZWFkO2lmKGMu dmFsdWVzW2JdKXtyZXR1cm4gYy52YWx1ZXNbYl0oZSxiKX1pZihjLm5hbWVzW2Jd KXtiPWMubmFtZXNbYl19aWYoYi5pbmNsdWRlKCI6Iikpe3JldHVybighZS5hdHRy aWJ1dGVzfHwhZS5hdHRyaWJ1dGVzW2JdKT9udWxsOmUuYXR0cmlidXRlc1tiXS52 YWx1ZX19cmV0dXJuIGUuZ2V0QXR0cmlidXRlKGIpfX0pKCksd3JpdGVBdHRyaWJ1 dGU6ZnVuY3Rpb24oZixjLGcpe2Y9JChmKTt2YXIgYj17fSxlPUVsZW1lbnQuX2F0 dHJpYnV0ZVRyYW5zbGF0aW9ucy53cml0ZTtpZih0eXBlb2YgYz09Im9iamVjdCIp e2I9Y31lbHNle2JbY109T2JqZWN0LmlzVW5kZWZpbmVkKGcpP3RydWU6Z31mb3Io dmFyIGEgaW4gYil7Yz1lLm5hbWVzW2FdfHxhO2c9YlthXTtpZihlLnZhbHVlc1th XSl7Yz1lLnZhbHVlc1thXShmLGcpfWlmKGc9PT1mYWxzZXx8Zz09PW51bGwpe2Yu cmVtb3ZlQXR0cmlidXRlKGMpfWVsc2V7aWYoZz09PXRydWUpe2Yuc2V0QXR0cmli dXRlKGMsYyl9ZWxzZXtmLnNldEF0dHJpYnV0ZShjLGcpfX19cmV0dXJuIGZ9LGdl dEhlaWdodDpmdW5jdGlvbihhKXtyZXR1cm4gJChhKS5nZXREaW1lbnNpb25zKCku aGVpZ2h0fSxnZXRXaWR0aDpmdW5jdGlvbihhKXtyZXR1cm4gJChhKS5nZXREaW1l bnNpb25zKCkud2lkdGh9LGNsYXNzTmFtZXM6ZnVuY3Rpb24oYSl7cmV0dXJuIG5l dyBFbGVtZW50LkNsYXNzTmFtZXMoYSl9LGhhc0NsYXNzTmFtZTpmdW5jdGlvbihh LGIpe2lmKCEoYT0kKGEpKSl7cmV0dXJufXZhciBjPWEuY2xhc3NOYW1lO3JldHVy bihjLmxlbmd0aD4wJiYoYz09Ynx8bmV3IFJlZ0V4cCgiKF58XFxzKSIrYisiKFxc c3wkKSIpLnRlc3QoYykpKX0sYWRkQ2xhc3NOYW1lOmZ1bmN0aW9uKGEsYil7aWYo IShhPSQoYSkpKXtyZXR1cm59aWYoIWEuaGFzQ2xhc3NOYW1lKGIpKXthLmNsYXNz TmFtZSs9KGEuY2xhc3NOYW1lPyIgIjoiIikrYn1yZXR1cm4gYX0scmVtb3ZlQ2xh c3NOYW1lOmZ1bmN0aW9uKGEsYil7aWYoIShhPSQoYSkpKXtyZXR1cm59YS5jbGFz c05hbWU9YS5jbGFzc05hbWUucmVwbGFjZShuZXcgUmVnRXhwKCIoXnxcXHMrKSIr YisiKFxccyt8JCkiKSwiICIpLnN0cmlwKCk7cmV0dXJuIGF9LHRvZ2dsZUNsYXNz TmFtZTpmdW5jdGlvbihhLGIpe2lmKCEoYT0kKGEpKSl7cmV0dXJufXJldHVybiBh W2EuaGFzQ2xhc3NOYW1lKGIpPyJyZW1vdmVDbGFzc05hbWUiOiJhZGRDbGFzc05h bWUiXShiKX0sY2xlYW5XaGl0ZXNwYWNlOmZ1bmN0aW9uKGIpe2I9JChiKTt2YXIg Yz1iLmZpcnN0Q2hpbGQ7d2hpbGUoYyl7dmFyIGE9Yy5uZXh0U2libGluZztpZihj Lm5vZGVUeXBlPT0zJiYhL1xTLy50ZXN0KGMubm9kZVZhbHVlKSl7Yi5yZW1vdmVD aGlsZChjKX1jPWF9cmV0dXJuIGJ9LGVtcHR5OmZ1bmN0aW9uKGEpe3JldHVybiAk KGEpLmlubmVySFRNTC5ibGFuaygpfSxkZXNjZW5kYW50T2Y6ZnVuY3Rpb24oYixh KXtiPSQoYiksYT0kKGEpO2lmKGIuY29tcGFyZURvY3VtZW50UG9zaXRpb24pe3Jl dHVybihiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGEpJjgpPT09OH1pZihhLmNv bnRhaW5zKXtyZXR1cm4gYS5jb250YWlucyhiKSYmYSE9PWJ9d2hpbGUoYj1iLnBh cmVudE5vZGUpe2lmKGI9PWEpe3JldHVybiB0cnVlfX1yZXR1cm4gZmFsc2V9LHNj cm9sbFRvOmZ1bmN0aW9uKGEpe2E9JChhKTt2YXIgYj1hLmN1bXVsYXRpdmVPZmZz ZXQoKTt3aW5kb3cuc2Nyb2xsVG8oYlswXSxiWzFdKTtyZXR1cm4gYX0sZ2V0U3R5 bGU6ZnVuY3Rpb24oYixjKXtiPSQoYik7Yz1jPT0iZmxvYXQiPyJjc3NGbG9hdCI6 Yy5jYW1lbGl6ZSgpO3ZhciBlPWIuc3R5bGVbY107aWYoIWV8fGU9PSJhdXRvIil7 dmFyIGE9ZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShiLG51 bGwpO2U9YT9hW2NdOm51bGx9aWYoYz09Im9wYWNpdHkiKXtyZXR1cm4gZT9wYXJz ZUZsb2F0KGUpOjF9cmV0dXJuIGU9PSJhdXRvIj9udWxsOmV9LGdldE9wYWNpdHk6 ZnVuY3Rpb24oYSl7cmV0dXJuICQoYSkuZ2V0U3R5bGUoIm9wYWNpdHkiKX0sc2V0 U3R5bGU6ZnVuY3Rpb24oYixjKXtiPSQoYik7dmFyIGY9Yi5zdHlsZSxhO2lmKE9i amVjdC5pc1N0cmluZyhjKSl7Yi5zdHlsZS5jc3NUZXh0Kz0iOyIrYztyZXR1cm4g Yy5pbmNsdWRlKCJvcGFjaXR5Iik/Yi5zZXRPcGFjaXR5KGMubWF0Y2goL29wYWNp dHk6XHMqKFxkP1wuP1xkKikvKVsxXSk6Yn1mb3IodmFyIGUgaW4gYyl7aWYoZT09 Im9wYWNpdHkiKXtiLnNldE9wYWNpdHkoY1tlXSl9ZWxzZXtmWyhlPT0iZmxvYXQi fHxlPT0iY3NzRmxvYXQiKT8oT2JqZWN0LmlzVW5kZWZpbmVkKGYuc3R5bGVGbG9h dCk/ImNzc0Zsb2F0Ijoic3R5bGVGbG9hdCIpOmVdPWNbZV19fXJldHVybiBifSxz ZXRPcGFjaXR5OmZ1bmN0aW9uKGEsYil7YT0kKGEpO2Euc3R5bGUub3BhY2l0eT0o Yj09MXx8Yj09PSIiKT8iIjooYjwwLjAwMDAxKT8wOmI7cmV0dXJuIGF9LGdldERp bWVuc2lvbnM6ZnVuY3Rpb24oYyl7Yz0kKGMpO3ZhciBoPWMuZ2V0U3R5bGUoImRp c3BsYXkiKTtpZihoIT0ibm9uZSImJmghPW51bGwpe3JldHVybnt3aWR0aDpjLm9m ZnNldFdpZHRoLGhlaWdodDpjLm9mZnNldEhlaWdodH19dmFyIGI9Yy5zdHlsZTt2 YXIgZz1iLnZpc2liaWxpdHk7dmFyIGU9Yi5wb3NpdGlvbjt2YXIgYT1iLmRpc3Bs YXk7Yi52aXNpYmlsaXR5PSJoaWRkZW4iO2lmKGUhPSJmaXhlZCIpe2IucG9zaXRp b249ImFic29sdXRlIn1iLmRpc3BsYXk9ImJsb2NrIjt2YXIgaj1jLmNsaWVudFdp ZHRoO3ZhciBmPWMuY2xpZW50SGVpZ2h0O2IuZGlzcGxheT1hO2IucG9zaXRpb249 ZTtiLnZpc2liaWxpdHk9ZztyZXR1cm57d2lkdGg6aixoZWlnaHQ6Zn19LG1ha2VQ b3NpdGlvbmVkOmZ1bmN0aW9uKGEpe2E9JChhKTt2YXIgYj1FbGVtZW50LmdldFN0 eWxlKGEsInBvc2l0aW9uIik7aWYoYj09InN0YXRpYyJ8fCFiKXthLl9tYWRlUG9z aXRpb25lZD10cnVlO2Euc3R5bGUucG9zaXRpb249InJlbGF0aXZlIjtpZihQcm90 b3R5cGUuQnJvd3Nlci5PcGVyYSl7YS5zdHlsZS50b3A9MDthLnN0eWxlLmxlZnQ9 MH19cmV0dXJuIGF9LHVuZG9Qb3NpdGlvbmVkOmZ1bmN0aW9uKGEpe2E9JChhKTtp ZihhLl9tYWRlUG9zaXRpb25lZCl7YS5fbWFkZVBvc2l0aW9uZWQ9dW5kZWZpbmVk O2Euc3R5bGUucG9zaXRpb249YS5zdHlsZS50b3A9YS5zdHlsZS5sZWZ0PWEuc3R5 bGUuYm90dG9tPWEuc3R5bGUucmlnaHQ9IiJ9cmV0dXJuIGF9LG1ha2VDbGlwcGlu ZzpmdW5jdGlvbihhKXthPSQoYSk7aWYoYS5fb3ZlcmZsb3cpe3JldHVybiBhfWEu X292ZXJmbG93PUVsZW1lbnQuZ2V0U3R5bGUoYSwib3ZlcmZsb3ciKXx8ImF1dG8i O2lmKGEuX292ZXJmbG93IT09ImhpZGRlbiIpe2Euc3R5bGUub3ZlcmZsb3c9Imhp ZGRlbiJ9cmV0dXJuIGF9LHVuZG9DbGlwcGluZzpmdW5jdGlvbihhKXthPSQoYSk7 aWYoIWEuX292ZXJmbG93KXtyZXR1cm4gYX1hLnN0eWxlLm92ZXJmbG93PWEuX292 ZXJmbG93PT0iYXV0byI/IiI6YS5fb3ZlcmZsb3c7YS5fb3ZlcmZsb3c9bnVsbDty ZXR1cm4gYX0sY3VtdWxhdGl2ZU9mZnNldDpmdW5jdGlvbihiKXt2YXIgYT0wLGM9 MDtkb3thKz1iLm9mZnNldFRvcHx8MDtjKz1iLm9mZnNldExlZnR8fDA7Yj1iLm9m ZnNldFBhcmVudH13aGlsZShiKTtyZXR1cm4gRWxlbWVudC5fcmV0dXJuT2Zmc2V0 KGMsYSl9LHBvc2l0aW9uZWRPZmZzZXQ6ZnVuY3Rpb24oYil7dmFyIGE9MCxlPTA7 ZG97YSs9Yi5vZmZzZXRUb3B8fDA7ZSs9Yi5vZmZzZXRMZWZ0fHwwO2I9Yi5vZmZz ZXRQYXJlbnQ7aWYoYil7aWYoYi50YWdOYW1lLnRvVXBwZXJDYXNlKCk9PSJCT0RZ Iil7YnJlYWt9dmFyIGM9RWxlbWVudC5nZXRTdHlsZShiLCJwb3NpdGlvbiIpO2lm KGMhPT0ic3RhdGljIil7YnJlYWt9fX13aGlsZShiKTtyZXR1cm4gRWxlbWVudC5f cmV0dXJuT2Zmc2V0KGUsYSl9LGFic29sdXRpemU6ZnVuY3Rpb24oYil7Yj0kKGIp O2lmKGIuZ2V0U3R5bGUoInBvc2l0aW9uIik9PSJhYnNvbHV0ZSIpe3JldHVybiBi fXZhciBlPWIucG9zaXRpb25lZE9mZnNldCgpO3ZhciBnPWVbMV07dmFyIGY9ZVsw XTt2YXIgYz1iLmNsaWVudFdpZHRoO3ZhciBhPWIuY2xpZW50SGVpZ2h0O2IuX29y aWdpbmFsTGVmdD1mLXBhcnNlRmxvYXQoYi5zdHlsZS5sZWZ0fHwwKTtiLl9vcmln aW5hbFRvcD1nLXBhcnNlRmxvYXQoYi5zdHlsZS50b3B8fDApO2IuX29yaWdpbmFs V2lkdGg9Yi5zdHlsZS53aWR0aDtiLl9vcmlnaW5hbEhlaWdodD1iLnN0eWxlLmhl aWdodDtiLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7Yi5zdHlsZS50b3A9Zysi cHgiO2Iuc3R5bGUubGVmdD1mKyJweCI7Yi5zdHlsZS53aWR0aD1jKyJweCI7Yi5z dHlsZS5oZWlnaHQ9YSsicHgiO3JldHVybiBifSxyZWxhdGl2aXplOmZ1bmN0aW9u KGEpe2E9JChhKTtpZihhLmdldFN0eWxlKCJwb3NpdGlvbiIpPT0icmVsYXRpdmUi KXtyZXR1cm4gYX1hLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSI7dmFyIGM9cGFy c2VGbG9hdChhLnN0eWxlLnRvcHx8MCktKGEuX29yaWdpbmFsVG9wfHwwKTt2YXIg Yj1wYXJzZUZsb2F0KGEuc3R5bGUubGVmdHx8MCktKGEuX29yaWdpbmFsTGVmdHx8 MCk7YS5zdHlsZS50b3A9YysicHgiO2Euc3R5bGUubGVmdD1iKyJweCI7YS5zdHls ZS5oZWlnaHQ9YS5fb3JpZ2luYWxIZWlnaHQ7YS5zdHlsZS53aWR0aD1hLl9vcmln aW5hbFdpZHRoO3JldHVybiBhfSxjdW11bGF0aXZlU2Nyb2xsT2Zmc2V0OmZ1bmN0 aW9uKGIpe3ZhciBhPTAsYz0wO2Rve2ErPWIuc2Nyb2xsVG9wfHwwO2MrPWIuc2Ny b2xsTGVmdHx8MDtiPWIucGFyZW50Tm9kZX13aGlsZShiKTtyZXR1cm4gRWxlbWVu dC5fcmV0dXJuT2Zmc2V0KGMsYSl9LGdldE9mZnNldFBhcmVudDpmdW5jdGlvbihh KXtpZihhLm9mZnNldFBhcmVudCl7cmV0dXJuICQoYS5vZmZzZXRQYXJlbnQpfWlm KGE9PWRvY3VtZW50LmJvZHkpe3JldHVybiAkKGEpfXdoaWxlKChhPWEucGFyZW50 Tm9kZSkmJmEhPWRvY3VtZW50LmJvZHkpe2lmKEVsZW1lbnQuZ2V0U3R5bGUoYSwi cG9zaXRpb24iKSE9InN0YXRpYyIpe3JldHVybiAkKGEpfX1yZXR1cm4gJChkb2N1 bWVudC5ib2R5KX0sdmlld3BvcnRPZmZzZXQ6ZnVuY3Rpb24oZSl7dmFyIGE9MCxj PTA7dmFyIGI9ZTtkb3thKz1iLm9mZnNldFRvcHx8MDtjKz1iLm9mZnNldExlZnR8 fDA7aWYoYi5vZmZzZXRQYXJlbnQ9PWRvY3VtZW50LmJvZHkmJkVsZW1lbnQuZ2V0 U3R5bGUoYiwicG9zaXRpb24iKT09ImFic29sdXRlIil7YnJlYWt9fXdoaWxlKGI9 Yi5vZmZzZXRQYXJlbnQpO2I9ZTtkb3tpZighUHJvdG90eXBlLkJyb3dzZXIuT3Bl cmF8fChiLnRhZ05hbWUmJihiLnRhZ05hbWUudG9VcHBlckNhc2UoKT09IkJPRFki KSkpe2EtPWIuc2Nyb2xsVG9wfHwwO2MtPWIuc2Nyb2xsTGVmdHx8MH19d2hpbGUo Yj1iLnBhcmVudE5vZGUpO3JldHVybiBFbGVtZW50Ll9yZXR1cm5PZmZzZXQoYyxh KX0sY2xvbmVQb3NpdGlvbjpmdW5jdGlvbihiLGUpe3ZhciBhPU9iamVjdC5leHRl bmQoe3NldExlZnQ6dHJ1ZSxzZXRUb3A6dHJ1ZSxzZXRXaWR0aDp0cnVlLHNldEhl aWdodDp0cnVlLG9mZnNldFRvcDowLG9mZnNldExlZnQ6MH0sYXJndW1lbnRzWzJd fHx7fSk7ZT0kKGUpO3ZhciBmPWUudmlld3BvcnRPZmZzZXQoKTtiPSQoYik7dmFy IGc9WzAsMF07dmFyIGM9bnVsbDtpZihFbGVtZW50LmdldFN0eWxlKGIsInBvc2l0 aW9uIik9PSJhYnNvbHV0ZSIpe2M9Yi5nZXRPZmZzZXRQYXJlbnQoKTtnPWMudmll d3BvcnRPZmZzZXQoKX1pZihjPT1kb2N1bWVudC5ib2R5KXtnWzBdLT1kb2N1bWVu dC5ib2R5Lm9mZnNldExlZnQ7Z1sxXS09ZG9jdW1lbnQuYm9keS5vZmZzZXRUb3B9 aWYoYS5zZXRMZWZ0KXtiLnN0eWxlLmxlZnQ9KGZbMF0tZ1swXSthLm9mZnNldExl ZnQpKyJweCJ9aWYoYS5zZXRUb3Ape2Iuc3R5bGUudG9wPShmWzFdLWdbMV0rYS5v ZmZzZXRUb3ApKyJweCJ9aWYoYS5zZXRXaWR0aCl7Yi5zdHlsZS53aWR0aD1lLm9m ZnNldFdpZHRoKyJweCJ9aWYoYS5zZXRIZWlnaHQpe2Iuc3R5bGUuaGVpZ2h0PWUu b2Zmc2V0SGVpZ2h0KyJweCJ9cmV0dXJuIGJ9fTtPYmplY3QuZXh0ZW5kKEVsZW1l bnQuTWV0aG9kcyx7Z2V0RWxlbWVudHNCeVNlbGVjdG9yOkVsZW1lbnQuTWV0aG9k cy5zZWxlY3QsY2hpbGRFbGVtZW50czpFbGVtZW50Lk1ldGhvZHMuaW1tZWRpYXRl RGVzY2VuZGFudHN9KTtFbGVtZW50Ll9hdHRyaWJ1dGVUcmFuc2xhdGlvbnM9e3dy aXRlOntuYW1lczp7Y2xhc3NOYW1lOiJjbGFzcyIsaHRtbEZvcjoiZm9yIn0sdmFs dWVzOnt9fX07aWYoUHJvdG90eXBlLkJyb3dzZXIuT3BlcmEpe0VsZW1lbnQuTWV0 aG9kcy5nZXRTdHlsZT1FbGVtZW50Lk1ldGhvZHMuZ2V0U3R5bGUud3JhcChmdW5j dGlvbihlLGIsYyl7c3dpdGNoKGMpe2Nhc2UibGVmdCI6Y2FzZSJ0b3AiOmNhc2Ui cmlnaHQiOmNhc2UiYm90dG9tIjppZihlKGIsInBvc2l0aW9uIik9PT0ic3RhdGlj Iil7cmV0dXJuIG51bGx9Y2FzZSJoZWlnaHQiOmNhc2Uid2lkdGgiOmlmKCFFbGVt ZW50LnZpc2libGUoYikpe3JldHVybiBudWxsfXZhciBmPXBhcnNlSW50KGUoYixj KSwxMCk7aWYoZiE9PWJbIm9mZnNldCIrYy5jYXBpdGFsaXplKCldKXtyZXR1cm4g ZisicHgifXZhciBhO2lmKGM9PT0iaGVpZ2h0Iil7YT1bImJvcmRlci10b3Atd2lk dGgiLCJwYWRkaW5nLXRvcCIsInBhZGRpbmctYm90dG9tIiwiYm9yZGVyLWJvdHRv bS13aWR0aCJdfWVsc2V7YT1bImJvcmRlci1sZWZ0LXdpZHRoIiwicGFkZGluZy1s ZWZ0IiwicGFkZGluZy1yaWdodCIsImJvcmRlci1yaWdodC13aWR0aCJdfXJldHVy biBhLmluamVjdChmLGZ1bmN0aW9uKGcsaCl7dmFyIGo9ZShiLGgpO3JldHVybiBq PT09bnVsbD9nOmctcGFyc2VJbnQoaiwxMCl9KSsicHgiO2RlZmF1bHQ6cmV0dXJu IGUoYixjKX19KTtFbGVtZW50Lk1ldGhvZHMucmVhZEF0dHJpYnV0ZT1FbGVtZW50 Lk1ldGhvZHMucmVhZEF0dHJpYnV0ZS53cmFwKGZ1bmN0aW9uKGMsYSxiKXtpZihi PT09InRpdGxlIil7cmV0dXJuIGEudGl0bGV9cmV0dXJuIGMoYSxiKX0pfWVsc2V7 aWYoUHJvdG90eXBlLkJyb3dzZXIuSUUpe0VsZW1lbnQuTWV0aG9kcy5nZXRPZmZz ZXRQYXJlbnQ9RWxlbWVudC5NZXRob2RzLmdldE9mZnNldFBhcmVudC53cmFwKGZ1 bmN0aW9uKGMsYil7Yj0kKGIpO3RyeXtiLm9mZnNldFBhcmVudH1jYXRjaChnKXty ZXR1cm4gJChkb2N1bWVudC5ib2R5KX12YXIgYT1iLmdldFN0eWxlKCJwb3NpdGlv biIpO2lmKGEhPT0ic3RhdGljIil7cmV0dXJuIGMoYil9Yi5zZXRTdHlsZSh7cG9z aXRpb246InJlbGF0aXZlIn0pO3ZhciBmPWMoYik7Yi5zZXRTdHlsZSh7cG9zaXRp b246YX0pO3JldHVybiBmfSk7JHcoInBvc2l0aW9uZWRPZmZzZXQgdmlld3BvcnRP ZmZzZXQiKS5lYWNoKGZ1bmN0aW9uKGEpe0VsZW1lbnQuTWV0aG9kc1thXT1FbGVt ZW50Lk1ldGhvZHNbYV0ud3JhcChmdW5jdGlvbihnLGMpe2M9JChjKTt0cnl7Yy5v ZmZzZXRQYXJlbnR9Y2F0Y2goail7cmV0dXJuIEVsZW1lbnQuX3JldHVybk9mZnNl dCgwLDApfXZhciBiPWMuZ2V0U3R5bGUoInBvc2l0aW9uIik7aWYoYiE9PSJzdGF0 aWMiKXtyZXR1cm4gZyhjKX12YXIgZj1jLmdldE9mZnNldFBhcmVudCgpO2lmKGYm JmYuZ2V0U3R5bGUoInBvc2l0aW9uIik9PT0iZml4ZWQiKXtmLnNldFN0eWxlKHt6 b29tOjF9KX1jLnNldFN0eWxlKHtwb3NpdGlvbjoicmVsYXRpdmUifSk7dmFyIGg9 ZyhjKTtjLnNldFN0eWxlKHtwb3NpdGlvbjpifSk7cmV0dXJuIGh9KX0pO0VsZW1l bnQuTWV0aG9kcy5jdW11bGF0aXZlT2Zmc2V0PUVsZW1lbnQuTWV0aG9kcy5jdW11 bGF0aXZlT2Zmc2V0LndyYXAoZnVuY3Rpb24oYixhKXt0cnl7YS5vZmZzZXRQYXJl bnR9Y2F0Y2goYyl7cmV0dXJuIEVsZW1lbnQuX3JldHVybk9mZnNldCgwLDApfXJl dHVybiBiKGEpfSk7RWxlbWVudC5NZXRob2RzLmdldFN0eWxlPWZ1bmN0aW9uKGEs Yil7YT0kKGEpO2I9KGI9PSJmbG9hdCJ8fGI9PSJjc3NGbG9hdCIpPyJzdHlsZUZs b2F0IjpiLmNhbWVsaXplKCk7dmFyIGM9YS5zdHlsZVtiXTtpZighYyYmYS5jdXJy ZW50U3R5bGUpe2M9YS5jdXJyZW50U3R5bGVbYl19aWYoYj09Im9wYWNpdHkiKXtp ZihjPShhLmdldFN0eWxlKCJmaWx0ZXIiKXx8IiIpLm1hdGNoKC9hbHBoYVwob3Bh Y2l0eT0oLiopXCkvKSl7aWYoY1sxXSl7cmV0dXJuIHBhcnNlRmxvYXQoY1sxXSkv MTAwfX1yZXR1cm4gMX1pZihjPT0iYXV0byIpe2lmKChiPT0id2lkdGgifHxiPT0i aGVpZ2h0IikmJihhLmdldFN0eWxlKCJkaXNwbGF5IikhPSJub25lIikpe3JldHVy biBhWyJvZmZzZXQiK2IuY2FwaXRhbGl6ZSgpXSsicHgifXJldHVybiBudWxsfXJl dHVybiBjfTtFbGVtZW50Lk1ldGhvZHMuc2V0T3BhY2l0eT1mdW5jdGlvbihiLGYp e2Z1bmN0aW9uIGcoaCl7cmV0dXJuIGgucmVwbGFjZSgvYWxwaGFcKFteXCldKlwp L2dpLCIiKX1iPSQoYik7dmFyIGE9Yi5jdXJyZW50U3R5bGU7aWYoKGEmJiFhLmhh c0xheW91dCl8fCghYSYmYi5zdHlsZS56b29tPT0ibm9ybWFsIikpe2Iuc3R5bGUu em9vbT0xfXZhciBlPWIuZ2V0U3R5bGUoImZpbHRlciIpLGM9Yi5zdHlsZTtpZihm PT0xfHxmPT09IiIpeyhlPWcoZSkpP2MuZmlsdGVyPWU6Yy5yZW1vdmVBdHRyaWJ1 dGUoImZpbHRlciIpO3JldHVybiBifWVsc2V7aWYoZjwwLjAwMDAxKXtmPTB9fWMu ZmlsdGVyPWcoZSkrImFscGhhKG9wYWNpdHk9IisoZioxMDApKyIpIjtyZXR1cm4g Yn07RWxlbWVudC5fYXR0cmlidXRlVHJhbnNsYXRpb25zPShmdW5jdGlvbigpe3Zh ciBiPSJjbGFzc05hbWUiO3ZhciBhPSJmb3IiO3ZhciBjPWRvY3VtZW50LmNyZWF0 ZUVsZW1lbnQoImRpdiIpO2Muc2V0QXR0cmlidXRlKGIsIngiKTtpZihjLmNsYXNz TmFtZSE9PSJ4Iil7Yy5zZXRBdHRyaWJ1dGUoImNsYXNzIiwieCIpO2lmKGMuY2xh c3NOYW1lPT09IngiKXtiPSJjbGFzcyJ9fWM9bnVsbDtjPWRvY3VtZW50LmNyZWF0 ZUVsZW1lbnQoImxhYmVsIik7Yy5zZXRBdHRyaWJ1dGUoYSwieCIpO2lmKGMuaHRt bEZvciE9PSJ4Iil7Yy5zZXRBdHRyaWJ1dGUoImh0bWxGb3IiLCJ4Iik7aWYoYy5o dG1sRm9yPT09IngiKXthPSJodG1sRm9yIn19Yz1udWxsO3JldHVybntyZWFkOntu YW1lczp7ImNsYXNzIjpiLGNsYXNzTmFtZTpiLCJmb3IiOmEsaHRtbEZvcjphfSx2 YWx1ZXM6e19nZXRBdHRyOmZ1bmN0aW9uKGUsZil7cmV0dXJuIGUuZ2V0QXR0cmli dXRlKGYsMil9LF9nZXRBdHRyTm9kZTpmdW5jdGlvbihlLGcpe3ZhciBmPWUuZ2V0 QXR0cmlidXRlTm9kZShnKTtyZXR1cm4gZj9mLnZhbHVlOiIifSxfZ2V0RXY6KGZ1 bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5v bmNsaWNrPVByb3RvdHlwZS5lbXB0eUZ1bmN0aW9uO3ZhciBoPWUuZ2V0QXR0cmli dXRlKCJvbmNsaWNrIik7dmFyIGc7aWYoU3RyaW5nKGgpLmluZGV4T2YoInsiKT4t MSl7Zz1mdW5jdGlvbihmLGope2o9Zi5nZXRBdHRyaWJ1dGUoaik7aWYoIWope3Jl dHVybiBudWxsfWo9ai50b1N0cmluZygpO2o9ai5zcGxpdCgieyIpWzFdO2o9ai5z cGxpdCgifSIpWzBdO3JldHVybiBqLnN0cmlwKCl9fWVsc2V7aWYoaD09PSIiKXtn PWZ1bmN0aW9uKGYsail7aj1mLmdldEF0dHJpYnV0ZShqKTtpZighail7cmV0dXJu IG51bGx9cmV0dXJuIGouc3RyaXAoKX19fWU9bnVsbDtyZXR1cm4gZ30pKCksX2Zs YWc6ZnVuY3Rpb24oZSxmKXtyZXR1cm4gJChlKS5oYXNBdHRyaWJ1dGUoZik/Zjpu dWxsfSxzdHlsZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5zdHlsZS5jc3NUZXh0LnRv TG93ZXJDYXNlKCl9LHRpdGxlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnRpdGxlfX19 fX0pKCk7RWxlbWVudC5fYXR0cmlidXRlVHJhbnNsYXRpb25zLndyaXRlPXtuYW1l czpPYmplY3QuZXh0ZW5kKHtjZWxscGFkZGluZzoiY2VsbFBhZGRpbmciLGNlbGxz cGFjaW5nOiJjZWxsU3BhY2luZyJ9LEVsZW1lbnQuX2F0dHJpYnV0ZVRyYW5zbGF0 aW9ucy5yZWFkLm5hbWVzKSx2YWx1ZXM6e2NoZWNrZWQ6ZnVuY3Rpb24oYSxiKXth LmNoZWNrZWQ9ISFifSxzdHlsZTpmdW5jdGlvbihhLGIpe2Euc3R5bGUuY3NzVGV4 dD1iP2I6IiJ9fX07RWxlbWVudC5fYXR0cmlidXRlVHJhbnNsYXRpb25zLmhhcz17 fTskdygiY29sU3BhbiByb3dTcGFuIHZBbGlnbiBkYXRlVGltZSBhY2Nlc3NLZXkg dGFiSW5kZXggZW5jVHlwZSBtYXhMZW5ndGggcmVhZE9ubHkgbG9uZ0Rlc2MgZnJh bWVCb3JkZXIiKS5lYWNoKGZ1bmN0aW9uKGEpe0VsZW1lbnQuX2F0dHJpYnV0ZVRy YW5zbGF0aW9ucy53cml0ZS5uYW1lc1thLnRvTG93ZXJDYXNlKCldPWE7RWxlbWVu dC5fYXR0cmlidXRlVHJhbnNsYXRpb25zLmhhc1thLnRvTG93ZXJDYXNlKCldPWF9 KTsoZnVuY3Rpb24oYSl7T2JqZWN0LmV4dGVuZChhLHtocmVmOmEuX2dldEF0dHIs c3JjOmEuX2dldEF0dHIsdHlwZTphLl9nZXRBdHRyLGFjdGlvbjphLl9nZXRBdHRy Tm9kZSxkaXNhYmxlZDphLl9mbGFnLGNoZWNrZWQ6YS5fZmxhZyxyZWFkb25seTph Ll9mbGFnLG11bHRpcGxlOmEuX2ZsYWcsb25sb2FkOmEuX2dldEV2LG9udW5sb2Fk OmEuX2dldEV2LG9uY2xpY2s6YS5fZ2V0RXYsb25kYmxjbGljazphLl9nZXRFdixv bm1vdXNlZG93bjphLl9nZXRFdixvbm1vdXNldXA6YS5fZ2V0RXYsb25tb3VzZW92 ZXI6YS5fZ2V0RXYsb25tb3VzZW1vdmU6YS5fZ2V0RXYsb25tb3VzZW91dDphLl9n ZXRFdixvbmZvY3VzOmEuX2dldEV2LG9uYmx1cjphLl9nZXRFdixvbmtleXByZXNz OmEuX2dldEV2LG9ua2V5ZG93bjphLl9nZXRFdixvbmtleXVwOmEuX2dldEV2LG9u c3VibWl0OmEuX2dldEV2LG9ucmVzZXQ6YS5fZ2V0RXYsb25zZWxlY3Q6YS5fZ2V0 RXYsb25jaGFuZ2U6YS5fZ2V0RXZ9KX0pKEVsZW1lbnQuX2F0dHJpYnV0ZVRyYW5z bGF0aW9ucy5yZWFkLnZhbHVlcyk7aWYoUHJvdG90eXBlLkJyb3dzZXJGZWF0dXJl cy5FbGVtZW50RXh0ZW5zaW9ucyl7KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShmKXt2 YXIgYj1mLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIiksZT1bXTtmb3IodmFyIGM9 MCxnO2c9YltjXTtjKyspe2lmKGcudGFnTmFtZSE9PSIhIil7ZS5wdXNoKGcpfX1y ZXR1cm4gZX1FbGVtZW50Lk1ldGhvZHMuZG93bj1mdW5jdGlvbihjLGUsYil7Yz0k KGMpO2lmKGFyZ3VtZW50cy5sZW5ndGg9PTEpe3JldHVybiBjLmZpcnN0RGVzY2Vu ZGFudCgpfXJldHVybiBPYmplY3QuaXNOdW1iZXIoZSk/YShjKVtlXTpFbGVtZW50 LnNlbGVjdChjLGUpW2J8fDBdfX0pKCl9fWVsc2V7aWYoUHJvdG90eXBlLkJyb3dz ZXIuR2Vja28mJi9ydjoxXC44XC4wLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQp KXtFbGVtZW50Lk1ldGhvZHMuc2V0T3BhY2l0eT1mdW5jdGlvbihhLGIpe2E9JChh KTthLnN0eWxlLm9wYWNpdHk9KGI9PTEpPzAuOTk5OTk5OihiPT09IiIpPyIiOihi PDAuMDAwMDEpPzA6YjtyZXR1cm4gYX19ZWxzZXtpZihQcm90b3R5cGUuQnJvd3Nl ci5XZWJLaXQpe0VsZW1lbnQuTWV0aG9kcy5zZXRPcGFjaXR5PWZ1bmN0aW9uKGEs Yil7YT0kKGEpO2Euc3R5bGUub3BhY2l0eT0oYj09MXx8Yj09PSIiKT8iIjooYjww LjAwMDAxKT8wOmI7aWYoYj09MSl7aWYoYS50YWdOYW1lLnRvVXBwZXJDYXNlKCk9 PSJJTUciJiZhLndpZHRoKXthLndpZHRoKys7YS53aWR0aC0tfWVsc2V7dHJ5e3Zh ciBmPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIik7YS5hcHBlbmRDaGlsZChm KTthLnJlbW92ZUNoaWxkKGYpfWNhdGNoKGMpe319fXJldHVybiBhfTtFbGVtZW50 Lk1ldGhvZHMuY3VtdWxhdGl2ZU9mZnNldD1mdW5jdGlvbihiKXt2YXIgYT0wLGM9 MDtkb3thKz1iLm9mZnNldFRvcHx8MDtjKz1iLm9mZnNldExlZnR8fDA7aWYoYi5v ZmZzZXRQYXJlbnQ9PWRvY3VtZW50LmJvZHkpe2lmKEVsZW1lbnQuZ2V0U3R5bGUo YiwicG9zaXRpb24iKT09ImFic29sdXRlIil7YnJlYWt9fWI9Yi5vZmZzZXRQYXJl bnR9d2hpbGUoYik7cmV0dXJuIEVsZW1lbnQuX3JldHVybk9mZnNldChjLGEpfX19 fX1pZigib3V0ZXJIVE1MIiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpe0Vs ZW1lbnQuTWV0aG9kcy5yZXBsYWNlPWZ1bmN0aW9uKGMsZil7Yz0kKGMpO2lmKGYm JmYudG9FbGVtZW50KXtmPWYudG9FbGVtZW50KCl9aWYoT2JqZWN0LmlzRWxlbWVu dChmKSl7Yy5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChmLGMpO3JldHVybiBjfWY9 T2JqZWN0LnRvSFRNTChmKTt2YXIgZT1jLnBhcmVudE5vZGUsYj1lLnRhZ05hbWUu dG9VcHBlckNhc2UoKTtpZihFbGVtZW50Ll9pbnNlcnRpb25UcmFuc2xhdGlvbnMu dGFnc1tiXSl7dmFyIGc9Yy5uZXh0KCk7dmFyIGE9RWxlbWVudC5fZ2V0Q29udGVu dEZyb21Bbm9ueW1vdXNFbGVtZW50KGIsZi5zdHJpcFNjcmlwdHMoKSk7ZS5yZW1v dmVDaGlsZChjKTtpZihnKXthLmVhY2goZnVuY3Rpb24oaCl7ZS5pbnNlcnRCZWZv cmUoaCxnKX0pfWVsc2V7YS5lYWNoKGZ1bmN0aW9uKGgpe2UuYXBwZW5kQ2hpbGQo aCl9KX19ZWxzZXtjLm91dGVySFRNTD1mLnN0cmlwU2NyaXB0cygpfWYuZXZhbFNj cmlwdHMuYmluZChmKS5kZWZlcigpO3JldHVybiBjfX1FbGVtZW50Ll9yZXR1cm5P ZmZzZXQ9ZnVuY3Rpb24oYixjKXt2YXIgYT1bYixjXTthLmxlZnQ9YjthLnRvcD1j O3JldHVybiBhfTtFbGVtZW50Ll9nZXRDb250ZW50RnJvbUFub255bW91c0VsZW1l bnQ9ZnVuY3Rpb24oYyxiKXt2YXIgZT1uZXcgRWxlbWVudCgiZGl2IiksYT1FbGVt ZW50Ll9pbnNlcnRpb25UcmFuc2xhdGlvbnMudGFnc1tjXTtpZihhKXtlLmlubmVy SFRNTD1hWzBdK2IrYVsxXTthWzJdLnRpbWVzKGZ1bmN0aW9uKCl7ZT1lLmZpcnN0 Q2hpbGR9KX1lbHNle2UuaW5uZXJIVE1MPWJ9cmV0dXJuICRBKGUuY2hpbGROb2Rl cyl9O0VsZW1lbnQuX2luc2VydGlvblRyYW5zbGF0aW9ucz17YmVmb3JlOmZ1bmN0 aW9uKGEsYil7YS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShiLGEpfSx0b3A6ZnVu Y3Rpb24oYSxiKXthLmluc2VydEJlZm9yZShiLGEuZmlyc3RDaGlsZCl9LGJvdHRv bTpmdW5jdGlvbihhLGIpe2EuYXBwZW5kQ2hpbGQoYil9LGFmdGVyOmZ1bmN0aW9u KGEsYil7YS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShiLGEubmV4dFNpYmxpbmcp fSx0YWdzOntUQUJMRTpbIjx0YWJsZT4iLCI8L3RhYmxlPiIsMV0sVEJPRFk6WyI8 dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iLDJdLFRSOlsiPHRhYmxl Pjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+IiwzXSxURDpbIjx0 YWJsZT48dGJvZHk+PHRyPjx0ZD4iLCI8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxl PiIsNF0sU0VMRUNUOlsiPHNlbGVjdD4iLCI8L3NlbGVjdD4iLDFdfX07KGZ1bmN0 aW9uKCl7T2JqZWN0LmV4dGVuZCh0aGlzLnRhZ3Mse1RIRUFEOnRoaXMudGFncy5U Qk9EWSxURk9PVDp0aGlzLnRhZ3MuVEJPRFksVEg6dGhpcy50YWdzLlREfSl9KS5j YWxsKEVsZW1lbnQuX2luc2VydGlvblRyYW5zbGF0aW9ucyk7RWxlbWVudC5NZXRo b2RzLlNpbXVsYXRlZD17aGFzQXR0cmlidXRlOmZ1bmN0aW9uKGEsYyl7Yz1FbGVt ZW50Ll9hdHRyaWJ1dGVUcmFuc2xhdGlvbnMuaGFzW2NdfHxjO3ZhciBiPSQoYSku Z2V0QXR0cmlidXRlTm9kZShjKTtyZXR1cm4gISEoYiYmYi5zcGVjaWZpZWQpfX07 RWxlbWVudC5NZXRob2RzLkJ5VGFnPXt9O09iamVjdC5leHRlbmQoRWxlbWVudCxF bGVtZW50Lk1ldGhvZHMpOyhmdW5jdGlvbihhKXtpZighUHJvdG90eXBlLkJyb3dz ZXJGZWF0dXJlcy5FbGVtZW50RXh0ZW5zaW9ucyYmYS5fX3Byb3RvX18pe3dpbmRv dy5IVE1MRWxlbWVudD17fTt3aW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlPWEu X19wcm90b19fO1Byb3RvdHlwZS5Ccm93c2VyRmVhdHVyZXMuRWxlbWVudEV4dGVu c2lvbnM9dHJ1ZX1hPW51bGx9KShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi KSk7RWxlbWVudC5leHRlbmQ9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYyhqKXtpZih0 eXBlb2Ygd2luZG93LkVsZW1lbnQhPSJ1bmRlZmluZWQiKXt2YXIgbD13aW5kb3cu RWxlbWVudC5wcm90b3R5cGU7aWYobCl7dmFyIG49Il8iKyhNYXRoLnJhbmRvbSgp KyIiKS5zbGljZSgyKTt2YXIgaz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGopO2xb bl09IngiO3ZhciBtPShrW25dIT09IngiKTtkZWxldGUgbFtuXTtrPW51bGw7cmV0 dXJuIG19fXJldHVybiBmYWxzZX1mdW5jdGlvbiBiKGssail7Zm9yKHZhciBtIGlu IGope3ZhciBsPWpbbV07aWYoT2JqZWN0LmlzRnVuY3Rpb24obCkmJiEobSBpbiBr KSl7a1ttXT1sLm1ldGhvZGl6ZSgpfX19dmFyIGU9Yygib2JqZWN0Iik7dmFyIGc9 YygiYXBwbGV0Iik7aWYoUHJvdG90eXBlLkJyb3dzZXJGZWF0dXJlcy5TcGVjaWZp Y0VsZW1lbnRFeHRlbnNpb25zKXtpZihlJiZnKXtyZXR1cm4gZnVuY3Rpb24oayl7 aWYoayYmay50YWdOYW1lKXt2YXIgaj1rLnRhZ05hbWUudG9VcHBlckNhc2UoKTtp ZihqPT09Ik9CSkVDVCJ8fGo9PT0iQVBQTEVUIil7YihrLEVsZW1lbnQuTWV0aG9k cyk7aWYoaj09PSJPQkpFQ1QiKXtiKGssRWxlbWVudC5NZXRob2RzLkJ5VGFnLk9C SkVDVCl9ZWxzZXtpZihqPT09IkFQUExFVCIpe2IoayxFbGVtZW50Lk1ldGhvZHMu QnlUYWcuQVBQTEVUKX19fX1yZXR1cm4ga319cmV0dXJuIFByb3RvdHlwZS5LfXZh ciBhPXt9LGY9RWxlbWVudC5NZXRob2RzLkJ5VGFnO3ZhciBoPU9iamVjdC5leHRl bmQoZnVuY3Rpb24obCl7aWYoIWx8fHR5cGVvZiBsLl9leHRlbmRlZEJ5UHJvdG90 eXBlIT0idW5kZWZpbmVkInx8bC5ub2RlVHlwZSE9MXx8bD09d2luZG93KXtyZXR1 cm4gbH12YXIgaj1PYmplY3QuY2xvbmUoYSksaz1sLnRhZ05hbWUudG9VcHBlckNh c2UoKTtpZihmW2tdKXtPYmplY3QuZXh0ZW5kKGosZltrXSl9YihsLGopO2wuX2V4 dGVuZGVkQnlQcm90b3R5cGU9UHJvdG90eXBlLmVtcHR5RnVuY3Rpb247cmV0dXJu IGx9LHtyZWZyZXNoOmZ1bmN0aW9uKCl7aWYoIVByb3RvdHlwZS5Ccm93c2VyRmVh dHVyZXMuRWxlbWVudEV4dGVuc2lvbnMpe09iamVjdC5leHRlbmQoYSxFbGVtZW50 Lk1ldGhvZHMpO09iamVjdC5leHRlbmQoYSxFbGVtZW50Lk1ldGhvZHMuU2ltdWxh dGVkKX19fSk7aC5yZWZyZXNoKCk7cmV0dXJuIGh9KSgpO0VsZW1lbnQuaGFzQXR0 cmlidXRlPWZ1bmN0aW9uKGEsYil7aWYoYS5oYXNBdHRyaWJ1dGUpe3JldHVybiBh Lmhhc0F0dHJpYnV0ZShiKX1yZXR1cm4gRWxlbWVudC5NZXRob2RzLlNpbXVsYXRl ZC5oYXNBdHRyaWJ1dGUoYSxiKX07RWxlbWVudC5hZGRNZXRob2RzPWZ1bmN0aW9u KGMpe3ZhciBrPVByb3RvdHlwZS5Ccm93c2VyRmVhdHVyZXMsZT1FbGVtZW50Lk1l dGhvZHMuQnlUYWc7aWYoIWMpe09iamVjdC5leHRlbmQoRm9ybSxGb3JtLk1ldGhv ZHMpO09iamVjdC5leHRlbmQoRm9ybS5FbGVtZW50LEZvcm0uRWxlbWVudC5NZXRo b2RzKTtPYmplY3QuZXh0ZW5kKEVsZW1lbnQuTWV0aG9kcy5CeVRhZyx7Rk9STTpP YmplY3QuY2xvbmUoRm9ybS5NZXRob2RzKSxJTlBVVDpPYmplY3QuY2xvbmUoRm9y bS5FbGVtZW50Lk1ldGhvZHMpLFNFTEVDVDpPYmplY3QuY2xvbmUoRm9ybS5FbGVt ZW50Lk1ldGhvZHMpLFRFWFRBUkVBOk9iamVjdC5jbG9uZShGb3JtLkVsZW1lbnQu TWV0aG9kcyl9KX1pZihhcmd1bWVudHMubGVuZ3RoPT0yKXt2YXIgYj1jO2M9YXJn dW1lbnRzWzFdfWlmKCFiKXtPYmplY3QuZXh0ZW5kKEVsZW1lbnQuTWV0aG9kcyxj fHx7fSl9ZWxzZXtpZihPYmplY3QuaXNBcnJheShiKSl7Yi5lYWNoKGgpfWVsc2V7 aChiKX19ZnVuY3Rpb24gaChtKXttPW0udG9VcHBlckNhc2UoKTtpZighRWxlbWVu dC5NZXRob2RzLkJ5VGFnW21dKXtFbGVtZW50Lk1ldGhvZHMuQnlUYWdbbV09e319 T2JqZWN0LmV4dGVuZChFbGVtZW50Lk1ldGhvZHMuQnlUYWdbbV0sYyl9ZnVuY3Rp b24gYShvLG4sbSl7bT1tfHxmYWxzZTtmb3IodmFyIHEgaW4gbyl7dmFyIHA9b1tx XTtpZighT2JqZWN0LmlzRnVuY3Rpb24ocCkpe2NvbnRpbnVlfWlmKCFtfHwhKHEg aW4gbikpe25bcV09cC5tZXRob2RpemUoKX19fWZ1bmN0aW9uIGYocCl7dmFyIG07 dmFyIG89e09QVEdST1VQOiJPcHRHcm91cCIsVEVYVEFSRUE6IlRleHRBcmVhIixQ OiJQYXJhZ3JhcGgiLEZJRUxEU0VUOiJGaWVsZFNldCIsVUw6IlVMaXN0IixPTDoi T0xpc3QiLERMOiJETGlzdCIsRElSOiJEaXJlY3RvcnkiLEgxOiJIZWFkaW5nIixI MjoiSGVhZGluZyIsSDM6IkhlYWRpbmciLEg0OiJIZWFkaW5nIixINToiSGVhZGlu ZyIsSDY6IkhlYWRpbmciLFE6IlF1b3RlIixJTlM6Ik1vZCIsREVMOiJNb2QiLEE6 IkFuY2hvciIsSU1HOiJJbWFnZSIsQ0FQVElPTjoiVGFibGVDYXB0aW9uIixDT0w6 IlRhYmxlQ29sIixDT0xHUk9VUDoiVGFibGVDb2wiLFRIRUFEOiJUYWJsZVNlY3Rp b24iLFRGT09UOiJUYWJsZVNlY3Rpb24iLFRCT0RZOiJUYWJsZVNlY3Rpb24iLFRS OiJUYWJsZVJvdyIsVEg6IlRhYmxlQ2VsbCIsVEQ6IlRhYmxlQ2VsbCIsRlJBTUVT RVQ6IkZyYW1lU2V0IixJRlJBTUU6IklGcmFtZSJ9O2lmKG9bcF0pe209IkhUTUwi K29bcF0rIkVsZW1lbnQifWlmKHdpbmRvd1ttXSl7cmV0dXJuIHdpbmRvd1ttXX1t PSJIVE1MIitwKyJFbGVtZW50IjtpZih3aW5kb3dbbV0pe3JldHVybiB3aW5kb3db bV19bT0iSFRNTCIrcC5jYXBpdGFsaXplKCkrIkVsZW1lbnQiO2lmKHdpbmRvd1tt XSl7cmV0dXJuIHdpbmRvd1ttXX12YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50 KHApO3ZhciBxPW4uX19wcm90b19ffHxuLmNvbnN0cnVjdG9yLnByb3RvdHlwZTtu PW51bGw7cmV0dXJuIHF9dmFyIGo9d2luZG93LkhUTUxFbGVtZW50P0hUTUxFbGVt ZW50LnByb3RvdHlwZTpFbGVtZW50LnByb3RvdHlwZTtpZihrLkVsZW1lbnRFeHRl bnNpb25zKXthKEVsZW1lbnQuTWV0aG9kcyxqKTthKEVsZW1lbnQuTWV0aG9kcy5T aW11bGF0ZWQsaix0cnVlKX1pZihrLlNwZWNpZmljRWxlbWVudEV4dGVuc2lvbnMp e2Zvcih2YXIgbCBpbiBFbGVtZW50Lk1ldGhvZHMuQnlUYWcpe3ZhciBnPWYobCk7 aWYoT2JqZWN0LmlzVW5kZWZpbmVkKGcpKXtjb250aW51ZX1hKGVbbF0sZy5wcm90 b3R5cGUpfX1PYmplY3QuZXh0ZW5kKEVsZW1lbnQsRWxlbWVudC5NZXRob2RzKTtk ZWxldGUgRWxlbWVudC5CeVRhZztpZihFbGVtZW50LmV4dGVuZC5yZWZyZXNoKXtF bGVtZW50LmV4dGVuZC5yZWZyZXNoKCl9RWxlbWVudC5jYWNoZT17fX07ZG9jdW1l bnQudmlld3BvcnQ9e2dldERpbWVuc2lvbnM6ZnVuY3Rpb24oKXtyZXR1cm57d2lk dGg6dGhpcy5nZXRXaWR0aCgpLGhlaWdodDp0aGlzLmdldEhlaWdodCgpfX0sZ2V0 U2Nyb2xsT2Zmc2V0czpmdW5jdGlvbigpe3JldHVybiBFbGVtZW50Ll9yZXR1cm5P ZmZzZXQod2luZG93LnBhZ2VYT2Zmc2V0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1l bnQuc2Nyb2xsTGVmdHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0LHdpbmRvdy5w YWdlWU9mZnNldHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcHx8 ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ApfX07KGZ1bmN0aW9uKGIpe3ZhciBoPVBy b3RvdHlwZS5Ccm93c2VyLGY9ZG9jdW1lbnQsYyxlPXt9O2Z1bmN0aW9uIGEoKXtp ZihoLldlYktpdCYmIWYuZXZhbHVhdGUpe3JldHVybiBkb2N1bWVudH1pZihoLk9w ZXJhJiZ3aW5kb3cucGFyc2VGbG9hdCh3aW5kb3cub3BlcmEudmVyc2lvbigpKTw5 LjUpe3JldHVybiBkb2N1bWVudC5ib2R5fXJldHVybiBkb2N1bWVudC5kb2N1bWVu dEVsZW1lbnR9ZnVuY3Rpb24gZyhqKXtpZighYyl7Yz1hKCl9ZVtqXT0iY2xpZW50 IitqO2JbImdldCIral09ZnVuY3Rpb24oKXtyZXR1cm4gY1tlW2pdXX07cmV0dXJu IGJbImdldCIral0oKX1iLmdldFdpZHRoPWcuY3VycnkoIldpZHRoIik7Yi5nZXRI ZWlnaHQ9Zy5jdXJyeSgiSGVpZ2h0Iil9KShkb2N1bWVudC52aWV3cG9ydCk7RWxl bWVudC5TdG9yYWdlPXtVSUQ6MX07RWxlbWVudC5hZGRNZXRob2RzKHtnZXRTdG9y YWdlOmZ1bmN0aW9uKGIpe2lmKCEoYj0kKGIpKSl7cmV0dXJufXZhciBhO2lmKGI9 PT13aW5kb3cpe2E9MH1lbHNle2lmKHR5cGVvZiBiLl9wcm90b3R5cGVVSUQ9PT0i dW5kZWZpbmVkIil7Yi5fcHJvdG90eXBlVUlEPVtFbGVtZW50LlN0b3JhZ2UuVUlE KytdfWE9Yi5fcHJvdG90eXBlVUlEWzBdfWlmKCFFbGVtZW50LlN0b3JhZ2VbYV0p e0VsZW1lbnQuU3RvcmFnZVthXT0kSCgpfXJldHVybiBFbGVtZW50LlN0b3JhZ2Vb YV19LHN0b3JlOmZ1bmN0aW9uKGIsYSxjKXtpZighKGI9JChiKSkpe3JldHVybn1p Zihhcmd1bWVudHMubGVuZ3RoPT09Mil7Yi5nZXRTdG9yYWdlKCkudXBkYXRlKGEp fWVsc2V7Yi5nZXRTdG9yYWdlKCkuc2V0KGEsYyl9cmV0dXJuIGJ9LHJldHJpZXZl OmZ1bmN0aW9uKGMsYixhKXtpZighKGM9JChjKSkpe3JldHVybn12YXIgZj1FbGVt ZW50LmdldFN0b3JhZ2UoYyksZT1mLmdldChiKTtpZihPYmplY3QuaXNVbmRlZmlu ZWQoZSkpe2Yuc2V0KGIsYSk7ZT1hfXJldHVybiBlfSxjbG9uZTpmdW5jdGlvbihj LGEpe2lmKCEoYz0kKGMpKSl7cmV0dXJufXZhciBmPWMuY2xvbmVOb2RlKGEpO2Yu X3Byb3RvdHlwZVVJRD12b2lkIDA7aWYoYSl7dmFyIGU9RWxlbWVudC5zZWxlY3Qo ZiwiKiIpLGI9ZS5sZW5ndGg7d2hpbGUoYi0tKXtlW2JdLl9wcm90b3R5cGVVSUQ9 dm9pZCAwfX1yZXR1cm4gRWxlbWVudC5leHRlbmQoZil9fSk7dmFyIFNlbGVjdG9y PUNsYXNzLmNyZWF0ZSh7aW5pdGlhbGl6ZTpmdW5jdGlvbihhKXt0aGlzLmV4cHJl c3Npb249YS5zdHJpcCgpO2lmKHRoaXMuc2hvdWxkVXNlU2VsZWN0b3JzQVBJKCkp e3RoaXMubW9kZT0ic2VsZWN0b3JzQVBJIn1lbHNle2lmKHRoaXMuc2hvdWxkVXNl WFBhdGgoKSl7dGhpcy5tb2RlPSJ4cGF0aCI7dGhpcy5jb21waWxlWFBhdGhNYXRj aGVyKCl9ZWxzZXt0aGlzLm1vZGU9Im5vcm1hbCI7dGhpcy5jb21waWxlTWF0Y2hl cigpfX19LHNob3VsZFVzZVhQYXRoOihmdW5jdGlvbigpe3ZhciBhPShmdW5jdGlv bigpe3ZhciBmPWZhbHNlO2lmKGRvY3VtZW50LmV2YWx1YXRlJiZ3aW5kb3cuWFBh dGhSZXN1bHQpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2Uu aW5uZXJIVE1MPSI8dWw+PGxpPjwvbGk+PC91bD48ZGl2Pjx1bD48bGk+PC9saT48 L3VsPjwvZGl2PiI7dmFyIGM9Ii4vLypbbG9jYWwtbmFtZSgpPSd1bCcgb3IgbG9j YWwtbmFtZSgpPSdVTCddLy8qW2xvY2FsLW5hbWUoKT0nbGknIG9yIGxvY2FsLW5h bWUoKT0nTEknXSI7dmFyIGI9ZG9jdW1lbnQuZXZhbHVhdGUoYyxlLG51bGwsWFBh dGhSZXN1bHQuT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUsbnVsbCk7Zj0oYi5z bmFwc2hvdExlbmd0aCE9PTIpO2U9bnVsbH1yZXR1cm4gZn0pKCk7cmV0dXJuIGZ1 bmN0aW9uKCl7aWYoIVByb3RvdHlwZS5Ccm93c2VyRmVhdHVyZXMuWFBhdGgpe3Jl dHVybiBmYWxzZX12YXIgYj10aGlzLmV4cHJlc3Npb247aWYoUHJvdG90eXBlLkJy b3dzZXIuV2ViS2l0JiYoYi5pbmNsdWRlKCItb2YtdHlwZSIpfHxiLmluY2x1ZGUo IjplbXB0eSIpKSl7cmV0dXJuIGZhbHNlfWlmKCgvKFxbW1x3LV0qPzp8OmNoZWNr ZWQpLykudGVzdChiKSl7cmV0dXJuIGZhbHNlfWlmKGEpe3JldHVybiBmYWxzZX1y ZXR1cm4gdHJ1ZX19KSgpLHNob3VsZFVzZVNlbGVjdG9yc0FQSTpmdW5jdGlvbigp e2lmKCFQcm90b3R5cGUuQnJvd3NlckZlYXR1cmVzLlNlbGVjdG9yc0FQSSl7cmV0 dXJuIGZhbHNlfWlmKFNlbGVjdG9yLkNBU0VfSU5TRU5TSVRJVkVfQ0xBU1NfTkFN RVMpe3JldHVybiBmYWxzZX1pZighU2VsZWN0b3IuX2Rpdil7U2VsZWN0b3IuX2Rp dj1uZXcgRWxlbWVudCgiZGl2Iil9dHJ5e1NlbGVjdG9yLl9kaXYucXVlcnlTZWxl Y3Rvcih0aGlzLmV4cHJlc3Npb24pfWNhdGNoKGEpe3JldHVybiBmYWxzZX1yZXR1 cm4gdHJ1ZX0sY29tcGlsZU1hdGNoZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmV4 cHJlc3Npb24scHM9U2VsZWN0b3IucGF0dGVybnMsaD1TZWxlY3Rvci5oYW5kbGVy cyxjPVNlbGVjdG9yLmNyaXRlcmlhLGxlLHAsbSxsZW49cHMubGVuZ3RoLG5hbWU7 aWYoU2VsZWN0b3IuX2NhY2hlW2VdKXt0aGlzLm1hdGNoZXI9U2VsZWN0b3IuX2Nh Y2hlW2VdO3JldHVybn10aGlzLm1hdGNoZXI9WyJ0aGlzLm1hdGNoZXIgPSBmdW5j dGlvbihyb290KSB7IiwidmFyIHIgPSByb290LCBoID0gU2VsZWN0b3IuaGFuZGxl cnMsIGMgPSBmYWxzZSwgbjsiXTt3aGlsZShlJiZsZSE9ZSYmKC9cUy8pLnRlc3Qo ZSkpe2xlPWU7Zm9yKHZhciBpPTA7aTxsZW47aSsrKXtwPXBzW2ldLnJlO25hbWU9 cHNbaV0ubmFtZTtpZihtPWUubWF0Y2gocCkpe3RoaXMubWF0Y2hlci5wdXNoKE9i amVjdC5pc0Z1bmN0aW9uKGNbbmFtZV0pP2NbbmFtZV0obSk6bmV3IFRlbXBsYXRl KGNbbmFtZV0pLmV2YWx1YXRlKG0pKTtlPWUucmVwbGFjZShtWzBdLCIiKTticmVh a319fXRoaXMubWF0Y2hlci5wdXNoKCJyZXR1cm4gaC51bmlxdWUobik7XG59Iik7 ZXZhbCh0aGlzLm1hdGNoZXIuam9pbigiXG4iKSk7U2VsZWN0b3IuX2NhY2hlW3Ro aXMuZXhwcmVzc2lvbl09dGhpcy5tYXRjaGVyfSxjb21waWxlWFBhdGhNYXRjaGVy OmZ1bmN0aW9uKCl7dmFyIGo9dGhpcy5leHByZXNzaW9uLGs9U2VsZWN0b3IucGF0 dGVybnMsYz1TZWxlY3Rvci54cGF0aCxoLGIsYT1rLmxlbmd0aCxmO2lmKFNlbGVj dG9yLl9jYWNoZVtqXSl7dGhpcy54cGF0aD1TZWxlY3Rvci5fY2FjaGVbal07cmV0 dXJufXRoaXMubWF0Y2hlcj1bIi4vLyoiXTt3aGlsZShqJiZoIT1qJiYoL1xTLyku dGVzdChqKSl7aD1qO2Zvcih2YXIgZz0wO2c8YTtnKyspe2Y9a1tnXS5uYW1lO2lm KGI9ai5tYXRjaChrW2ddLnJlKSl7dGhpcy5tYXRjaGVyLnB1c2goT2JqZWN0Lmlz RnVuY3Rpb24oY1tmXSk/Y1tmXShiKTpuZXcgVGVtcGxhdGUoY1tmXSkuZXZhbHVh dGUoYikpO2o9ai5yZXBsYWNlKGJbMF0sIiIpO2JyZWFrfX19dGhpcy54cGF0aD10 aGlzLm1hdGNoZXIuam9pbigiIik7U2VsZWN0b3IuX2NhY2hlW3RoaXMuZXhwcmVz c2lvbl09dGhpcy54cGF0aH0sZmluZEVsZW1lbnRzOmZ1bmN0aW9uKGEpe2E9YXx8 ZG9jdW1lbnQ7dmFyIGM9dGhpcy5leHByZXNzaW9uLGI7c3dpdGNoKHRoaXMubW9k ZSl7Y2FzZSJzZWxlY3RvcnNBUEkiOmlmKGEhPT1kb2N1bWVudCl7dmFyIGY9YS5p ZCxnPSQoYSkuaWRlbnRpZnkoKTtnPWcucmVwbGFjZSgvW1wuOl0vZywiXFwkMCIp O2M9IiMiK2crIiAiK2N9Yj0kQShhLnF1ZXJ5U2VsZWN0b3JBbGwoYykpLm1hcChF bGVtZW50LmV4dGVuZCk7YS5pZD1mO3JldHVybiBiO2Nhc2UieHBhdGgiOnJldHVy biBkb2N1bWVudC5fZ2V0RWxlbWVudHNCeVhQYXRoKHRoaXMueHBhdGgsYSk7ZGVm YXVsdDpyZXR1cm4gdGhpcy5tYXRjaGVyKGEpfX0sbWF0Y2g6ZnVuY3Rpb24obCl7 dGhpcy50b2tlbnM9W107dmFyIHI9dGhpcy5leHByZXNzaW9uLGE9U2VsZWN0b3Iu cGF0dGVybnMsZz1TZWxlY3Rvci5hc3NlcnRpb25zO3ZhciBiLGYsaCxxPWEubGVu Z3RoLGM7d2hpbGUociYmYiE9PXImJigvXFMvKS50ZXN0KHIpKXtiPXI7Zm9yKHZh ciBrPTA7azxxO2srKyl7Zj1hW2tdLnJlO2M9YVtrXS5uYW1lO2lmKGg9ci5tYXRj aChmKSl7aWYoZ1tjXSl7dGhpcy50b2tlbnMucHVzaChbYyxPYmplY3QuY2xvbmUo aCldKTtyPXIucmVwbGFjZShoWzBdLCIiKX1lbHNle3JldHVybiB0aGlzLmZpbmRF bGVtZW50cyhkb2N1bWVudCkuaW5jbHVkZShsKX19fX12YXIgbz10cnVlLGMsbjtm b3IodmFyIGs9MCxqO2o9dGhpcy50b2tlbnNba107aysrKXtjPWpbMF0sbj1qWzFd O2lmKCFTZWxlY3Rvci5hc3NlcnRpb25zW2NdKGwsbikpe289ZmFsc2U7YnJlYWt9 fXJldHVybiBvfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLmV4cHJl c3Npb259LGluc3BlY3Q6ZnVuY3Rpb24oKXtyZXR1cm4iIzxTZWxlY3RvcjoiK3Ro aXMuZXhwcmVzc2lvbi5pbnNwZWN0KCkrIj4ifX0pO2lmKFByb3RvdHlwZS5Ccm93 c2VyRmVhdHVyZXMuU2VsZWN0b3JzQVBJJiZkb2N1bWVudC5jb21wYXRNb2RlPT09 IkJhY2tDb21wYXQiKXtTZWxlY3Rvci5DQVNFX0lOU0VOU0lUSVZFX0NMQVNTX05B TUVTPShmdW5jdGlvbigpe3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp diIpLGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2MuaWQ9InByb3Rv dHlwZV90ZXN0X2lkIjthLmNsYXNzTmFtZT0iVGVzdCI7Yy5hcHBlbmRDaGlsZChh KTt2YXIgYj0oYy5xdWVyeVNlbGVjdG9yKCIjcHJvdG90eXBlX3Rlc3RfaWQgLnRl c3QiKSE9PW51bGwpO2M9YT1udWxsO3JldHVybiBifSkoKX1PYmplY3QuZXh0ZW5k KFNlbGVjdG9yLHtfY2FjaGU6e30seHBhdGg6e2Rlc2NlbmRhbnQ6Ii8vKiIsY2hp bGQ6Ii8qIixhZGphY2VudDoiL2ZvbGxvd2luZy1zaWJsaW5nOjoqWzFdIixsYXRl clNpYmxpbmc6Ii9mb2xsb3dpbmctc2libGluZzo6KiIsdGFnTmFtZTpmdW5jdGlv bihhKXtpZihhWzFdPT0iKiIpe3JldHVybiIifXJldHVybiJbbG9jYWwtbmFtZSgp PSciK2FbMV0udG9Mb3dlckNhc2UoKSsiJyBvciBsb2NhbC1uYW1lKCk9JyIrYVsx XS50b1VwcGVyQ2FzZSgpKyInXSJ9LGNsYXNzTmFtZToiW2NvbnRhaW5zKGNvbmNh dCgnICcsIEBjbGFzcywgJyAnKSwgJyAjezF9ICcpXSIsaWQ6IltAaWQ9JyN7MX0n XSIsYXR0clByZXNlbmNlOmZ1bmN0aW9uKGEpe2FbMV09YVsxXS50b0xvd2VyQ2Fz ZSgpO3JldHVybiBuZXcgVGVtcGxhdGUoIltAI3sxfV0iKS5ldmFsdWF0ZShhKX0s YXR0cjpmdW5jdGlvbihhKXthWzFdPWFbMV0udG9Mb3dlckNhc2UoKTthWzNdPWFb NV18fGFbNl07cmV0dXJuIG5ldyBUZW1wbGF0ZShTZWxlY3Rvci54cGF0aC5vcGVy YXRvcnNbYVsyXV0pLmV2YWx1YXRlKGEpfSxwc2V1ZG86ZnVuY3Rpb24oYSl7dmFy IGI9U2VsZWN0b3IueHBhdGgucHNldWRvc1thWzFdXTtpZighYil7cmV0dXJuIiJ9 aWYoT2JqZWN0LmlzRnVuY3Rpb24oYikpe3JldHVybiBiKGEpfXJldHVybiBuZXcg VGVtcGxhdGUoU2VsZWN0b3IueHBhdGgucHNldWRvc1thWzFdXSkuZXZhbHVhdGUo YSl9LG9wZXJhdG9yczp7Ij0iOiJbQCN7MX09JyN7M30nXSIsIiE9IjoiW0AjezF9 IT0nI3szfSddIiwiXj0iOiJbc3RhcnRzLXdpdGgoQCN7MX0sICcjezN9JyldIiwi JD0iOiJbc3Vic3RyaW5nKEAjezF9LCAoc3RyaW5nLWxlbmd0aChAI3sxfSkgLSBz dHJpbmctbGVuZ3RoKCcjezN9JykgKyAxKSk9JyN7M30nXSIsIio9IjoiW2NvbnRh aW5zKEAjezF9LCAnI3szfScpXSIsIn49IjoiW2NvbnRhaW5zKGNvbmNhdCgnICcs IEAjezF9LCAnICcpLCAnICN7M30gJyldIiwifD0iOiJbY29udGFpbnMoY29uY2F0 KCctJywgQCN7MX0sICctJyksICctI3szfS0nKV0ifSxwc2V1ZG9zOnsiZmlyc3Qt Y2hpbGQiOiJbbm90KHByZWNlZGluZy1zaWJsaW5nOjoqKV0iLCJsYXN0LWNoaWxk IjoiW25vdChmb2xsb3dpbmctc2libGluZzo6KildIiwib25seS1jaGlsZCI6Iltu b3QocHJlY2VkaW5nLXNpYmxpbmc6Oiogb3IgZm9sbG93aW5nLXNpYmxpbmc6Oiop XSIsZW1wdHk6Iltjb3VudCgqKSA9IDAgYW5kIChjb3VudCh0ZXh0KCkpID0gMCld IixjaGVja2VkOiJbQGNoZWNrZWRdIixkaXNhYmxlZDoiWyhAZGlzYWJsZWQpIGFu ZCAoQHR5cGUhPSdoaWRkZW4nKV0iLGVuYWJsZWQ6Iltub3QoQGRpc2FibGVkKSBh bmQgKEB0eXBlIT0naGlkZGVuJyldIixub3Q6ZnVuY3Rpb24oZyl7dmFyIGs9Z1s2 XSxjPVNlbGVjdG9yLnBhdHRlcm5zLGw9U2VsZWN0b3IueHBhdGgsYSxuLGo9Yy5s ZW5ndGgsYjt2YXIgZj1bXTt3aGlsZShrJiZhIT1rJiYoL1xTLykudGVzdChrKSl7 YT1rO2Zvcih2YXIgaD0wO2g8ajtoKyspe2I9Y1toXS5uYW1lO2lmKGc9ay5tYXRj aChjW2hdLnJlKSl7bj1PYmplY3QuaXNGdW5jdGlvbihsW2JdKT9sW2JdKGcpOm5l dyBUZW1wbGF0ZShsW2JdKS5ldmFsdWF0ZShnKTtmLnB1c2goIigiK24uc3Vic3Ry aW5nKDEsbi5sZW5ndGgtMSkrIikiKTtrPWsucmVwbGFjZShnWzBdLCIiKTticmVh a319fXJldHVybiJbbm90KCIrZi5qb2luKCIgYW5kICIpKyIpXSJ9LCJudGgtY2hp bGQiOmZ1bmN0aW9uKGEpe3JldHVybiBTZWxlY3Rvci54cGF0aC5wc2V1ZG9zLm50 aCgiKGNvdW50KC4vcHJlY2VkaW5nLXNpYmxpbmc6OiopICsgMSkgIixhKX0sIm50 aC1sYXN0LWNoaWxkIjpmdW5jdGlvbihhKXtyZXR1cm4gU2VsZWN0b3IueHBhdGgu cHNldWRvcy5udGgoIihjb3VudCguL2ZvbGxvd2luZy1zaWJsaW5nOjoqKSArIDEp ICIsYSl9LCJudGgtb2YtdHlwZSI6ZnVuY3Rpb24oYSl7cmV0dXJuIFNlbGVjdG9y LnhwYXRoLnBzZXVkb3MubnRoKCJwb3NpdGlvbigpICIsYSl9LCJudGgtbGFzdC1v Zi10eXBlIjpmdW5jdGlvbihhKXtyZXR1cm4gU2VsZWN0b3IueHBhdGgucHNldWRv cy5udGgoIihsYXN0KCkgKyAxIC0gcG9zaXRpb24oKSkgIixhKX0sImZpcnN0LW9m LXR5cGUiOmZ1bmN0aW9uKGEpe2FbNl09IjEiO3JldHVybiBTZWxlY3Rvci54cGF0 aC5wc2V1ZG9zWyJudGgtb2YtdHlwZSJdKGEpfSwibGFzdC1vZi10eXBlIjpmdW5j dGlvbihhKXthWzZdPSIxIjtyZXR1cm4gU2VsZWN0b3IueHBhdGgucHNldWRvc1si bnRoLWxhc3Qtb2YtdHlwZSJdKGEpfSwib25seS1vZi10eXBlIjpmdW5jdGlvbihh KXt2YXIgYj1TZWxlY3Rvci54cGF0aC5wc2V1ZG9zO3JldHVybiBiWyJmaXJzdC1v Zi10eXBlIl0oYSkrYlsibGFzdC1vZi10eXBlIl0oYSl9LG50aDpmdW5jdGlvbiho LGYpe3ZhciBqLGs9Zls2XSxlO2lmKGs9PSJldmVuIil7az0iMm4rMCJ9aWYoaz09 Im9kZCIpe2s9IjJuKzEifWlmKGo9ay5tYXRjaCgvXihcZCspJC8pKXtyZXR1cm4i WyIraCsiPSAiK2pbMV0rIl0ifWlmKGo9ay5tYXRjaCgvXigtP1xkKik/bigoWyst XSkoXGQrKSk/Lykpe2lmKGpbMV09PSItIil7alsxXT0tMX12YXIgZz1qWzFdP051 bWJlcihqWzFdKToxO3ZhciBjPWpbMl0/TnVtYmVyKGpbMl0pOjA7ZT0iWygoI3tm cmFnbWVudH0gLSAje2J9KSBtb2QgI3thfSA9IDApIGFuZCAoKCN7ZnJhZ21lbnR9 IC0gI3tifSkgZGl2ICN7YX0gPj0gMCldIjtyZXR1cm4gbmV3IFRlbXBsYXRlKGUp LmV2YWx1YXRlKHtmcmFnbWVudDpoLGE6ZyxiOmN9KX19fX0sY3JpdGVyaWE6e3Rh Z05hbWU6J24gPSBoLnRhZ05hbWUobiwgciwgIiN7MX0iLCBjKTsgICAgICBjID0g ZmFsc2U7JyxjbGFzc05hbWU6J24gPSBoLmNsYXNzTmFtZShuLCByLCAiI3sxfSIs IGMpOyAgICBjID0gZmFsc2U7JyxpZDonbiA9IGguaWQobiwgciwgIiN7MX0iLCBj KTsgICAgICAgICAgIGMgPSBmYWxzZTsnLGF0dHJQcmVzZW5jZTonbiA9IGguYXR0 clByZXNlbmNlKG4sIHIsICIjezF9IiwgYyk7IGMgPSBmYWxzZTsnLGF0dHI6ZnVu Y3Rpb24oYSl7YVszXT0oYVs1XXx8YVs2XSk7cmV0dXJuIG5ldyBUZW1wbGF0ZSgn biA9IGguYXR0cihuLCByLCAiI3sxfSIsICIjezN9IiwgIiN7Mn0iLCBjKTsgYyA9 IGZhbHNlOycpLmV2YWx1YXRlKGEpfSxwc2V1ZG86ZnVuY3Rpb24oYSl7aWYoYVs2 XSl7YVs2XT1hWzZdLnJlcGxhY2UoLyIvZywnXFwiJyl9cmV0dXJuIG5ldyBUZW1w bGF0ZSgnbiA9IGgucHNldWRvKG4sICIjezF9IiwgIiN7Nn0iLCByLCBjKTsgYyA9 IGZhbHNlOycpLmV2YWx1YXRlKGEpfSxkZXNjZW5kYW50OidjID0gImRlc2NlbmRh bnQiOycsY2hpbGQ6J2MgPSAiY2hpbGQiOycsYWRqYWNlbnQ6J2MgPSAiYWRqYWNl bnQiOycsbGF0ZXJTaWJsaW5nOidjID0gImxhdGVyU2libGluZyI7J30scGF0dGVy bnM6W3tuYW1lOiJsYXRlclNpYmxpbmciLHJlOi9eXHMqflxzKi99LHtuYW1lOiJj aGlsZCIscmU6L15ccyo+XHMqL30se25hbWU6ImFkamFjZW50IixyZTovXlxzKlwr XHMqL30se25hbWU6ImRlc2NlbmRhbnQiLHJlOi9eXHMvfSx7bmFtZToidGFnTmFt ZSIscmU6L15ccyooXCp8W1x3XC1dKykoXGJ8JCk/L30se25hbWU6ImlkIixyZTov XiMoW1x3XC1cKl0rKShcYnwkKS99LHtuYW1lOiJjbGFzc05hbWUiLHJlOi9eXC4o W1x3XC1cKl0rKShcYnwkKS99LHtuYW1lOiJwc2V1ZG8iLHJlOi9eOigoZmlyc3R8 bGFzdHxudGh8bnRoLWxhc3R8b25seSkoLWNoaWxkfC1vZi10eXBlKXxlbXB0eXxj aGVja2VkfChlbnxkaXMpYWJsZWR8bm90KShcKCguKj8pXCkpPyhcYnwkfCg/PVxz fFs6K34+XSkpL30se25hbWU6ImF0dHJQcmVzZW5jZSIscmU6L15cWygoPzpbXHct XSs6KT9bXHctXSspXF0vfSx7bmFtZToiYXR0ciIscmU6L1xbKCg/Oltcdy1dKjop P1tcdy1dKylccyooPzooWyFeJCp+fF0/PSlccyooKFsnIl0pKFteXDRdKj8pXDR8 KFteJyJdW15cXV0qPykpKT9cXS99XSxhc3NlcnRpb25zOnt0YWdOYW1lOmZ1bmN0 aW9uKGEsYil7cmV0dXJuIGJbMV0udG9VcHBlckNhc2UoKT09YS50YWdOYW1lLnRv VXBwZXJDYXNlKCl9LGNsYXNzTmFtZTpmdW5jdGlvbihhLGIpe3JldHVybiBFbGVt ZW50Lmhhc0NsYXNzTmFtZShhLGJbMV0pfSxpZDpmdW5jdGlvbihhLGIpe3JldHVy biBhLmlkPT09YlsxXX0sYXR0clByZXNlbmNlOmZ1bmN0aW9uKGEsYil7cmV0dXJu IEVsZW1lbnQuaGFzQXR0cmlidXRlKGEsYlsxXSl9LGF0dHI6ZnVuY3Rpb24oYixj KXt2YXIgYT1FbGVtZW50LnJlYWRBdHRyaWJ1dGUoYixjWzFdKTtyZXR1cm4gYSYm U2VsZWN0b3Iub3BlcmF0b3JzW2NbMl1dKGEsY1s1XXx8Y1s2XSl9fSxoYW5kbGVy czp7Y29uY2F0OmZ1bmN0aW9uKGUsYyl7Zm9yKHZhciBmPTAsZztnPWNbZl07Zisr KXtlLnB1c2goZyl9cmV0dXJuIGV9LG1hcms6ZnVuY3Rpb24oYSl7dmFyIGU9UHJv dG90eXBlLmVtcHR5RnVuY3Rpb247Zm9yKHZhciBiPTAsYztjPWFbYl07YisrKXtj Ll9jb3VudGVkQnlQcm90b3R5cGU9ZX1yZXR1cm4gYX0sdW5tYXJrOmZ1bmN0aW9u KGEpe2Zvcih2YXIgYj0wLGM7Yz1hW2JdO2IrKyl7Yy5fY291bnRlZEJ5UHJvdG90 eXBlPXVuZGVmaW5lZH1yZXR1cm4gYX0saW5kZXg6ZnVuY3Rpb24oYSxlLGgpe2Eu X2NvdW50ZWRCeVByb3RvdHlwZT1Qcm90b3R5cGUuZW1wdHlGdW5jdGlvbjtpZihl KXtmb3IodmFyIGI9YS5jaGlsZE5vZGVzLGY9Yi5sZW5ndGgtMSxjPTE7Zj49MDtm LS0pe3ZhciBnPWJbZl07aWYoZy5ub2RlVHlwZT09MSYmKCFofHxnLl9jb3VudGVk QnlQcm90b3R5cGUpKXtnLm5vZGVJbmRleD1jKyt9fX1lbHNle2Zvcih2YXIgZj0w LGM9MSxiPWEuY2hpbGROb2RlcztnPWJbZl07ZisrKXtpZihnLm5vZGVUeXBlPT0x JiYoIWh8fGcuX2NvdW50ZWRCeVByb3RvdHlwZSkpe2cubm9kZUluZGV4PWMrK319 fX0sdW5pcXVlOmZ1bmN0aW9uKGIpe2lmKGIubGVuZ3RoPT0wKXtyZXR1cm4gYn12 YXIgZT1bXSxmO2Zvcih2YXIgYz0wLGE9Yi5sZW5ndGg7YzxhO2MrKyl7aWYodHlw ZW9mKGY9YltjXSkuX2NvdW50ZWRCeVByb3RvdHlwZT09InVuZGVmaW5lZCIpe2Yu X2NvdW50ZWRCeVByb3RvdHlwZT1Qcm90b3R5cGUuZW1wdHlGdW5jdGlvbjtlLnB1 c2goRWxlbWVudC5leHRlbmQoZikpfX1yZXR1cm4gU2VsZWN0b3IuaGFuZGxlcnMu dW5tYXJrKGUpfSxkZXNjZW5kYW50OmZ1bmN0aW9uKGEpe3ZhciBlPVNlbGVjdG9y LmhhbmRsZXJzO2Zvcih2YXIgYz0wLGI9W10sZjtmPWFbY107YysrKXtlLmNvbmNh dChiLGYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSl9cmV0dXJuIGJ9LGNoaWxk OmZ1bmN0aW9uKGEpe3ZhciBmPVNlbGVjdG9yLmhhbmRsZXJzO2Zvcih2YXIgZT0w LGM9W10sZztnPWFbZV07ZSsrKXtmb3IodmFyIGI9MCxrO2s9Zy5jaGlsZE5vZGVz W2JdO2IrKyl7aWYoay5ub2RlVHlwZT09MSYmay50YWdOYW1lIT0iISIpe2MucHVz aChrKX19fXJldHVybiBjfSxhZGphY2VudDpmdW5jdGlvbihhKXtmb3IodmFyIGM9 MCxiPVtdLGY7Zj1hW2NdO2MrKyl7dmFyIGU9dGhpcy5uZXh0RWxlbWVudFNpYmxp bmcoZik7aWYoZSl7Yi5wdXNoKGUpfX1yZXR1cm4gYn0sbGF0ZXJTaWJsaW5nOmZ1 bmN0aW9uKGEpe3ZhciBlPVNlbGVjdG9yLmhhbmRsZXJzO2Zvcih2YXIgYz0wLGI9 W10sZjtmPWFbY107YysrKXtlLmNvbmNhdChiLEVsZW1lbnQubmV4dFNpYmxpbmdz KGYpKX1yZXR1cm4gYn0sbmV4dEVsZW1lbnRTaWJsaW5nOmZ1bmN0aW9uKGEpe3do aWxlKGE9YS5uZXh0U2libGluZyl7aWYoYS5ub2RlVHlwZT09MSl7cmV0dXJuIGF9 fXJldHVybiBudWxsfSxwcmV2aW91c0VsZW1lbnRTaWJsaW5nOmZ1bmN0aW9uKGEp e3doaWxlKGE9YS5wcmV2aW91c1NpYmxpbmcpe2lmKGEubm9kZVR5cGU9PTEpe3Jl dHVybiBhfX1yZXR1cm4gbnVsbH0sdGFnTmFtZTpmdW5jdGlvbihhLGssYyxiKXt2 YXIgbD1jLnRvVXBwZXJDYXNlKCk7dmFyIGY9W10saj1TZWxlY3Rvci5oYW5kbGVy cztpZihhKXtpZihiKXtpZihiPT0iZGVzY2VuZGFudCIpe2Zvcih2YXIgZz0wLGU7 ZT1hW2ddO2crKyl7ai5jb25jYXQoZixlLmdldEVsZW1lbnRzQnlUYWdOYW1lKGMp KX1yZXR1cm4gZn1lbHNle2E9dGhpc1tiXShhKX1pZihjPT0iKiIpe3JldHVybiBh fX1mb3IodmFyIGc9MCxlO2U9YVtnXTtnKyspe2lmKGUudGFnTmFtZS50b1VwcGVy Q2FzZSgpPT09bCl7Zi5wdXNoKGUpfX1yZXR1cm4gZn1lbHNle3JldHVybiBrLmdl dEVsZW1lbnRzQnlUYWdOYW1lKGMpfX0saWQ6ZnVuY3Rpb24oYSxtLGIsYyl7dmFy IGw9JChiKSxrPVNlbGVjdG9yLmhhbmRsZXJzO2lmKG09PWRvY3VtZW50KXtpZigh bCl7cmV0dXJuW119aWYoIWEpe3JldHVybltsXX19ZWxzZXtpZighbS5zb3VyY2VJ bmRleHx8bS5zb3VyY2VJbmRleDwxKXt2YXIgYT1tLmdldEVsZW1lbnRzQnlUYWdO YW1lKCIqIik7Zm9yKHZhciBmPTAsZTtlPWFbZl07ZisrKXtpZihlLmlkPT09Yil7 cmV0dXJuW2VdfX19fWlmKGEpe2lmKGMpe2lmKGM9PSJjaGlsZCIpe2Zvcih2YXIg Zz0wLGU7ZT1hW2ddO2crKyl7aWYobC5wYXJlbnROb2RlPT1lKXtyZXR1cm5bbF19 fX1lbHNle2lmKGM9PSJkZXNjZW5kYW50Iil7Zm9yKHZhciBnPTAsZTtlPWFbZ107 ZysrKXtpZihFbGVtZW50LmRlc2NlbmRhbnRPZihsLGUpKXtyZXR1cm5bbF19fX1l bHNle2lmKGM9PSJhZGphY2VudCIpe2Zvcih2YXIgZz0wLGU7ZT1hW2ddO2crKyl7 aWYoU2VsZWN0b3IuaGFuZGxlcnMucHJldmlvdXNFbGVtZW50U2libGluZyhsKT09 ZSl7cmV0dXJuW2xdfX19ZWxzZXthPWtbY10oYSl9fX19Zm9yKHZhciBnPTAsZTtl PWFbZ107ZysrKXtpZihlPT1sKXtyZXR1cm5bbF19fXJldHVybltdfXJldHVybihs JiZFbGVtZW50LmRlc2NlbmRhbnRPZihsLG0pKT9bbF06W119LGNsYXNzTmFtZTpm dW5jdGlvbihiLGEsYyxlKXtpZihiJiZlKXtiPXRoaXNbZV0oYil9cmV0dXJuIFNl bGVjdG9yLmhhbmRsZXJzLmJ5Q2xhc3NOYW1lKGIsYSxjKX0sYnlDbGFzc05hbWU6 ZnVuY3Rpb24oYyxiLGcpe2lmKCFjKXtjPVNlbGVjdG9yLmhhbmRsZXJzLmRlc2Nl bmRhbnQoW2JdKX12YXIgaj0iICIrZysiICI7Zm9yKHZhciBmPTAsZT1bXSxoLGE7 aD1jW2ZdO2YrKyl7YT1oLmNsYXNzTmFtZTtpZihhLmxlbmd0aD09MCl7Y29udGlu dWV9aWYoYT09Z3x8KCIgIithKyIgIikuaW5jbHVkZShqKSl7ZS5wdXNoKGgpfX1y ZXR1cm4gZX0sYXR0clByZXNlbmNlOmZ1bmN0aW9uKGMsYixhLGgpe2lmKCFjKXtj PWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKX1pZihjJiZoKXtjPXRoaXNbaF0o Yyl9dmFyIGY9W107Zm9yKHZhciBlPTAsZztnPWNbZV07ZSsrKXtpZihFbGVtZW50 Lmhhc0F0dHJpYnV0ZShnLGEpKXtmLnB1c2goZyl9fXJldHVybiBmfSxhdHRyOmZ1 bmN0aW9uKGEsayxqLGwsYyxiKXtpZighYSl7YT1rLmdldEVsZW1lbnRzQnlUYWdO YW1lKCIqIil9aWYoYSYmYil7YT10aGlzW2JdKGEpfXZhciBtPVNlbGVjdG9yLm9w ZXJhdG9yc1tjXSxnPVtdO2Zvcih2YXIgZj0wLGU7ZT1hW2ZdO2YrKyl7dmFyIGg9 RWxlbWVudC5yZWFkQXR0cmlidXRlKGUsaik7aWYoaD09PW51bGwpe2NvbnRpbnVl fWlmKG0oaCxsKSl7Zy5wdXNoKGUpfX1yZXR1cm4gZ30scHNldWRvOmZ1bmN0aW9u KGIsYyxmLGEsZSl7aWYoYiYmZSl7Yj10aGlzW2VdKGIpfWlmKCFiKXtiPWEuZ2V0 RWxlbWVudHNCeVRhZ05hbWUoIioiKX1yZXR1cm4gU2VsZWN0b3IucHNldWRvc1tj XShiLGYsYSl9fSxwc2V1ZG9zOnsiZmlyc3QtY2hpbGQiOmZ1bmN0aW9uKGIsZyxh KXtmb3IodmFyIGU9MCxjPVtdLGY7Zj1iW2VdO2UrKyl7aWYoU2VsZWN0b3IuaGFu ZGxlcnMucHJldmlvdXNFbGVtZW50U2libGluZyhmKSl7Y29udGludWV9Yy5wdXNo KGYpfXJldHVybiBjfSwibGFzdC1jaGlsZCI6ZnVuY3Rpb24oYixnLGEpe2Zvcih2 YXIgZT0wLGM9W10sZjtmPWJbZV07ZSsrKXtpZihTZWxlY3Rvci5oYW5kbGVycy5u ZXh0RWxlbWVudFNpYmxpbmcoZikpe2NvbnRpbnVlfWMucHVzaChmKX1yZXR1cm4g Y30sIm9ubHktY2hpbGQiOmZ1bmN0aW9uKGIsaixhKXt2YXIgZj1TZWxlY3Rvci5o YW5kbGVycztmb3IodmFyIGU9MCxjPVtdLGc7Zz1iW2VdO2UrKyl7aWYoIWYucHJl dmlvdXNFbGVtZW50U2libGluZyhnKSYmIWYubmV4dEVsZW1lbnRTaWJsaW5nKGcp KXtjLnB1c2goZyl9fXJldHVybiBjfSwibnRoLWNoaWxkIjpmdW5jdGlvbihiLGMs YSl7cmV0dXJuIFNlbGVjdG9yLnBzZXVkb3MubnRoKGIsYyxhKX0sIm50aC1sYXN0 LWNoaWxkIjpmdW5jdGlvbihiLGMsYSl7cmV0dXJuIFNlbGVjdG9yLnBzZXVkb3Mu bnRoKGIsYyxhLHRydWUpfSwibnRoLW9mLXR5cGUiOmZ1bmN0aW9uKGIsYyxhKXty ZXR1cm4gU2VsZWN0b3IucHNldWRvcy5udGgoYixjLGEsZmFsc2UsdHJ1ZSl9LCJu dGgtbGFzdC1vZi10eXBlIjpmdW5jdGlvbihiLGMsYSl7cmV0dXJuIFNlbGVjdG9y LnBzZXVkb3MubnRoKGIsYyxhLHRydWUsdHJ1ZSl9LCJmaXJzdC1vZi10eXBlIjpm dW5jdGlvbihiLGMsYSl7cmV0dXJuIFNlbGVjdG9yLnBzZXVkb3MubnRoKGIsIjEi LGEsZmFsc2UsdHJ1ZSl9LCJsYXN0LW9mLXR5cGUiOmZ1bmN0aW9uKGIsYyxhKXty ZXR1cm4gU2VsZWN0b3IucHNldWRvcy5udGgoYiwiMSIsYSx0cnVlLHRydWUpfSwi b25seS1vZi10eXBlIjpmdW5jdGlvbihiLGUsYSl7dmFyIGM9U2VsZWN0b3IucHNl dWRvcztyZXR1cm4gY1sibGFzdC1vZi10eXBlIl0oY1siZmlyc3Qtb2YtdHlwZSJd KGIsZSxhKSxlLGEpfSxnZXRJbmRpY2VzOmZ1bmN0aW9uKGUsYyxmKXtpZihlPT0w KXtyZXR1cm4gYz4wP1tjXTpbXX1yZXR1cm4gJFIoMSxmKS5pbmplY3QoW10sZnVu Y3Rpb24oYSxiKXtpZigwPT0oYi1jKSVlJiYoYi1jKS9lPj0wKXthLnB1c2goYil9 cmV0dXJuIGF9KX0sbnRoOmZ1bmN0aW9uKGMsdCx2LHMsZil7aWYoYy5sZW5ndGg9 PTApe3JldHVybltdfWlmKHQ9PSJldmVuIil7dD0iMm4rMCJ9aWYodD09Im9kZCIp e3Q9IjJuKzEifXZhciByPVNlbGVjdG9yLmhhbmRsZXJzLHE9W10sZT1bXSxrO3Iu bWFyayhjKTtmb3IodmFyIHA9MCxnO2c9Y1twXTtwKyspe2lmKCFnLnBhcmVudE5v ZGUuX2NvdW50ZWRCeVByb3RvdHlwZSl7ci5pbmRleChnLnBhcmVudE5vZGUscyxm KTtlLnB1c2goZy5wYXJlbnROb2RlKX19aWYodC5tYXRjaCgvXlxkKyQvKSl7dD1O dW1iZXIodCk7Zm9yKHZhciBwPTAsZztnPWNbcF07cCsrKXtpZihnLm5vZGVJbmRl eD09dCl7cS5wdXNoKGcpfX19ZWxzZXtpZihrPXQubWF0Y2goL14oLT9cZCopP24o KFsrLV0pKFxkKykpPy8pKXtpZihrWzFdPT0iLSIpe2tbMV09LTF9dmFyIHc9a1sx XT9OdW1iZXIoa1sxXSk6MTt2YXIgdT1rWzJdP051bWJlcihrWzJdKTowO3ZhciB4 PVNlbGVjdG9yLnBzZXVkb3MuZ2V0SW5kaWNlcyh3LHUsYy5sZW5ndGgpO2Zvcih2 YXIgcD0wLGcsbj14Lmxlbmd0aDtnPWNbcF07cCsrKXtmb3IodmFyIG89MDtvPG47 bysrKXtpZihnLm5vZGVJbmRleD09eFtvXSl7cS5wdXNoKGcpfX19fX1yLnVubWFy ayhjKTtyLnVubWFyayhlKTtyZXR1cm4gcX0sZW1wdHk6ZnVuY3Rpb24oYixnLGEp e2Zvcih2YXIgZT0wLGM9W10sZjtmPWJbZV07ZSsrKXtpZihmLnRhZ05hbWU9PSIh Inx8Zi5maXJzdENoaWxkKXtjb250aW51ZX1jLnB1c2goZil9cmV0dXJuIGN9LG5v dDpmdW5jdGlvbihhLGUsbCl7dmFyIGo9U2VsZWN0b3IuaGFuZGxlcnMsbixjO3Zh ciBrPW5ldyBTZWxlY3RvcihlKS5maW5kRWxlbWVudHMobCk7ai5tYXJrKGspO2Zv cih2YXIgZz0wLGY9W10sYjtiPWFbZ107ZysrKXtpZighYi5fY291bnRlZEJ5UHJv dG90eXBlKXtmLnB1c2goYil9fWoudW5tYXJrKGspO3JldHVybiBmfSxlbmFibGVk OmZ1bmN0aW9uKGIsZyxhKXtmb3IodmFyIGU9MCxjPVtdLGY7Zj1iW2VdO2UrKyl7 aWYoIWYuZGlzYWJsZWQmJighZi50eXBlfHxmLnR5cGUhPT0iaGlkZGVuIikpe2Mu cHVzaChmKX19cmV0dXJuIGN9LGRpc2FibGVkOmZ1bmN0aW9uKGIsZyxhKXtmb3Io dmFyIGU9MCxjPVtdLGY7Zj1iW2VdO2UrKyl7aWYoZi5kaXNhYmxlZCl7Yy5wdXNo KGYpfX1yZXR1cm4gY30sY2hlY2tlZDpmdW5jdGlvbihiLGcsYSl7Zm9yKHZhciBl PTAsYz1bXSxmO2Y9YltlXTtlKyspe2lmKGYuY2hlY2tlZCl7Yy5wdXNoKGYpfX1y ZXR1cm4gY319LG9wZXJhdG9yczp7Ij0iOmZ1bmN0aW9uKGIsYSl7cmV0dXJuIGI9 PWF9LCIhPSI6ZnVuY3Rpb24oYixhKXtyZXR1cm4gYiE9YX0sIl49IjpmdW5jdGlv bihiLGEpe3JldHVybiBiPT1hfHxiJiZiLnN0YXJ0c1dpdGgoYSl9LCIkPSI6ZnVu Y3Rpb24oYixhKXtyZXR1cm4gYj09YXx8YiYmYi5lbmRzV2l0aChhKX0sIio9Ijpm dW5jdGlvbihiLGEpe3JldHVybiBiPT1hfHxiJiZiLmluY2x1ZGUoYSl9LCJ+PSI6 ZnVuY3Rpb24oYixhKXtyZXR1cm4oIiAiK2IrIiAiKS5pbmNsdWRlKCIgIithKyIg Iil9LCJ8PSI6ZnVuY3Rpb24oYixhKXtyZXR1cm4oIi0iKyhifHwiIikudG9VcHBl ckNhc2UoKSsiLSIpLmluY2x1ZGUoIi0iKyhhfHwiIikudG9VcHBlckNhc2UoKSsi LSIpfX0sc3BsaXQ6ZnVuY3Rpb24oYil7dmFyIGE9W107Yi5zY2FuKC8oKFtcdyM6 Ln4+KygpXHMtXSt8XCp8XFsuKj9cXSkrKVxzKigsfCQpLyxmdW5jdGlvbihjKXth LnB1c2goY1sxXS5zdHJpcCgpKX0pO3JldHVybiBhfSxtYXRjaEVsZW1lbnRzOmZ1 bmN0aW9uKGcsail7dmFyIGY9JCQoaiksZT1TZWxlY3Rvci5oYW5kbGVycztlLm1h cmsoZik7Zm9yKHZhciBjPTAsYj1bXSxhO2E9Z1tjXTtjKyspe2lmKGEuX2NvdW50 ZWRCeVByb3RvdHlwZSl7Yi5wdXNoKGEpfX1lLnVubWFyayhmKTtyZXR1cm4gYn0s ZmluZEVsZW1lbnQ6ZnVuY3Rpb24oYixjLGEpe2lmKE9iamVjdC5pc051bWJlcihj KSl7YT1jO2M9ZmFsc2V9cmV0dXJuIFNlbGVjdG9yLm1hdGNoRWxlbWVudHMoYixj fHwiKiIpW2F8fDBdfSxmaW5kQ2hpbGRFbGVtZW50czpmdW5jdGlvbihmLGope2o9 U2VsZWN0b3Iuc3BsaXQoai5qb2luKCIsIikpO3ZhciBlPVtdLGc9U2VsZWN0b3Iu aGFuZGxlcnM7Zm9yKHZhciBjPTAsYj1qLmxlbmd0aCxhO2M8YjtjKyspe2E9bmV3 IFNlbGVjdG9yKGpbY10uc3RyaXAoKSk7Zy5jb25jYXQoZSxhLmZpbmRFbGVtZW50 cyhmKSl9cmV0dXJuKGI+MSk/Zy51bmlxdWUoZSk6ZX19KTtpZihQcm90b3R5cGUu QnJvd3Nlci5JRSl7T2JqZWN0LmV4dGVuZChTZWxlY3Rvci5oYW5kbGVycyx7Y29u Y2F0OmZ1bmN0aW9uKGUsYyl7Zm9yKHZhciBmPTAsZztnPWNbZl07ZisrKXtpZihn LnRhZ05hbWUhPT0iISIpe2UucHVzaChnKX19cmV0dXJuIGV9LHVubWFyazpmdW5j dGlvbihhKXtmb3IodmFyIGI9MCxjO2M9YVtiXTtiKyspe2MucmVtb3ZlQXR0cmli dXRlKCJfY291bnRlZEJ5UHJvdG90eXBlIil9cmV0dXJuIGF9fSl9ZnVuY3Rpb24g JCQoKXtyZXR1cm4gU2VsZWN0b3IuZmluZENoaWxkRWxlbWVudHMoZG9jdW1lbnQs JEEoYXJndW1lbnRzKSl9dmFyIEZvcm09e3Jlc2V0OmZ1bmN0aW9uKGEpe2E9JChh KTthLnJlc2V0KCk7cmV0dXJuIGF9LHNlcmlhbGl6ZUVsZW1lbnRzOmZ1bmN0aW9u KGgsYil7aWYodHlwZW9mIGIhPSJvYmplY3QiKXtiPXtoYXNoOiEhYn19ZWxzZXtp ZihPYmplY3QuaXNVbmRlZmluZWQoYi5oYXNoKSl7Yi5oYXNoPXRydWV9fXZhciBj LGcsYT1mYWxzZSxmPWIuc3VibWl0O3ZhciBlPWguaW5qZWN0KHt9LGZ1bmN0aW9u KGosayl7aWYoIWsuZGlzYWJsZWQmJmsubmFtZSl7Yz1rLm5hbWU7Zz0kKGspLmdl dFZhbHVlKCk7aWYoZyE9bnVsbCYmay50eXBlIT0iZmlsZSImJihrLnR5cGUhPSJz dWJtaXQifHwoIWEmJmYhPT1mYWxzZSYmKCFmfHxjPT1mKSYmKGE9dHJ1ZSkpKSl7 aWYoYyBpbiBqKXtpZighT2JqZWN0LmlzQXJyYXkoaltjXSkpe2pbY109W2pbY11d fWpbY10ucHVzaChnKX1lbHNle2pbY109Z319fXJldHVybiBqfSk7cmV0dXJuIGIu aGFzaD9lOk9iamVjdC50b1F1ZXJ5U3RyaW5nKGUpfX07Rm9ybS5NZXRob2RzPXtz ZXJpYWxpemU6ZnVuY3Rpb24oYixhKXtyZXR1cm4gRm9ybS5zZXJpYWxpemVFbGVt ZW50cyhGb3JtLmdldEVsZW1lbnRzKGIpLGEpfSxnZXRFbGVtZW50czpmdW5jdGlv bihmKXt2YXIgZz0kKGYpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIiksZSxhPVtd LGM9Rm9ybS5FbGVtZW50LlNlcmlhbGl6ZXJzO2Zvcih2YXIgYj0wO2U9Z1tiXTti Kyspe2EucHVzaChlKX1yZXR1cm4gYS5pbmplY3QoW10sZnVuY3Rpb24oaCxqKXtp ZihjW2oudGFnTmFtZS50b0xvd2VyQ2FzZSgpXSl7aC5wdXNoKEVsZW1lbnQuZXh0 ZW5kKGopKX1yZXR1cm4gaH0pfSxnZXRJbnB1dHM6ZnVuY3Rpb24oaCxjLGUpe2g9 JChoKTt2YXIgYT1oLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpO2lmKCFj JiYhZSl7cmV0dXJuICRBKGEpLm1hcChFbGVtZW50LmV4dGVuZCl9Zm9yKHZhciBm PTAsaj1bXSxnPWEubGVuZ3RoO2Y8ZztmKyspe3ZhciBiPWFbZl07aWYoKGMmJmIu dHlwZSE9Yyl8fChlJiZiLm5hbWUhPWUpKXtjb250aW51ZX1qLnB1c2goRWxlbWVu dC5leHRlbmQoYikpfXJldHVybiBqfSxkaXNhYmxlOmZ1bmN0aW9uKGEpe2E9JChh KTtGb3JtLmdldEVsZW1lbnRzKGEpLmludm9rZSgiZGlzYWJsZSIpO3JldHVybiBh fSxlbmFibGU6ZnVuY3Rpb24oYSl7YT0kKGEpO0Zvcm0uZ2V0RWxlbWVudHMoYSku aW52b2tlKCJlbmFibGUiKTtyZXR1cm4gYX0sZmluZEZpcnN0RWxlbWVudDpmdW5j dGlvbihiKXt2YXIgYz0kKGIpLmdldEVsZW1lbnRzKCkuZmluZEFsbChmdW5jdGlv bihlKXtyZXR1cm4iaGlkZGVuIiE9ZS50eXBlJiYhZS5kaXNhYmxlZH0pO3ZhciBh PWMuZmluZEFsbChmdW5jdGlvbihlKXtyZXR1cm4gZS5oYXNBdHRyaWJ1dGUoInRh YkluZGV4IikmJmUudGFiSW5kZXg+PTB9KS5zb3J0QnkoZnVuY3Rpb24oZSl7cmV0 dXJuIGUudGFiSW5kZXh9KS5maXJzdCgpO3JldHVybiBhP2E6Yy5maW5kKGZ1bmN0 aW9uKGUpe3JldHVyblsiaW5wdXQiLCJzZWxlY3QiLCJ0ZXh0YXJlYSJdLmluY2x1 ZGUoZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpfSl9LGZvY3VzRmlyc3RFbGVtZW50 OmZ1bmN0aW9uKGEpe2E9JChhKTthLmZpbmRGaXJzdEVsZW1lbnQoKS5hY3RpdmF0 ZSgpO3JldHVybiBhfSxyZXF1ZXN0OmZ1bmN0aW9uKGIsYSl7Yj0kKGIpLGE9T2Jq ZWN0LmNsb25lKGF8fHt9KTt2YXIgZT1hLnBhcmFtZXRlcnMsYz1iLnJlYWRBdHRy aWJ1dGUoImFjdGlvbiIpfHwiIjtpZihjLmJsYW5rKCkpe2M9d2luZG93LmxvY2F0 aW9uLmhyZWZ9YS5wYXJhbWV0ZXJzPWIuc2VyaWFsaXplKHRydWUpO2lmKGUpe2lm KE9iamVjdC5pc1N0cmluZyhlKSl7ZT1lLnRvUXVlcnlQYXJhbXMoKX1PYmplY3Qu ZXh0ZW5kKGEucGFyYW1ldGVycyxlKX1pZihiLmhhc0F0dHJpYnV0ZSgibWV0aG9k IikmJiFhLm1ldGhvZCl7YS5tZXRob2Q9Yi5tZXRob2R9cmV0dXJuIG5ldyBBamF4 LlJlcXVlc3QoYyxhKX19O0Zvcm0uRWxlbWVudD17Zm9jdXM6ZnVuY3Rpb24oYSl7 JChhKS5mb2N1cygpO3JldHVybiBhfSxzZWxlY3Q6ZnVuY3Rpb24oYSl7JChhKS5z ZWxlY3QoKTtyZXR1cm4gYX19O0Zvcm0uRWxlbWVudC5NZXRob2RzPXtzZXJpYWxp emU6ZnVuY3Rpb24oYSl7YT0kKGEpO2lmKCFhLmRpc2FibGVkJiZhLm5hbWUpe3Zh ciBiPWEuZ2V0VmFsdWUoKTtpZihiIT11bmRlZmluZWQpe3ZhciBjPXt9O2NbYS5u YW1lXT1iO3JldHVybiBPYmplY3QudG9RdWVyeVN0cmluZyhjKX19cmV0dXJuIiJ9 LGdldFZhbHVlOmZ1bmN0aW9uKGEpe2E9JChhKTt2YXIgYj1hLnRhZ05hbWUudG9M b3dlckNhc2UoKTtyZXR1cm4gRm9ybS5FbGVtZW50LlNlcmlhbGl6ZXJzW2JdKGEp fSxzZXRWYWx1ZTpmdW5jdGlvbihhLGIpe2E9JChhKTt2YXIgYz1hLnRhZ05hbWUu dG9Mb3dlckNhc2UoKTtGb3JtLkVsZW1lbnQuU2VyaWFsaXplcnNbY10oYSxiKTty ZXR1cm4gYX0sY2xlYXI6ZnVuY3Rpb24oYSl7JChhKS52YWx1ZT0iIjtyZXR1cm4g YX0scHJlc2VudDpmdW5jdGlvbihhKXtyZXR1cm4gJChhKS52YWx1ZSE9IiJ9LGFj dGl2YXRlOmZ1bmN0aW9uKGEpe2E9JChhKTt0cnl7YS5mb2N1cygpO2lmKGEuc2Vs ZWN0JiYoYS50YWdOYW1lLnRvTG93ZXJDYXNlKCkhPSJpbnB1dCJ8fCFbImJ1dHRv biIsInJlc2V0Iiwic3VibWl0Il0uaW5jbHVkZShhLnR5cGUpKSl7YS5zZWxlY3Qo KX19Y2F0Y2goYil7fXJldHVybiBhfSxkaXNhYmxlOmZ1bmN0aW9uKGEpe2E9JChh KTthLmRpc2FibGVkPXRydWU7cmV0dXJuIGF9LGVuYWJsZTpmdW5jdGlvbihhKXth PSQoYSk7YS5kaXNhYmxlZD1mYWxzZTtyZXR1cm4gYX19O3ZhciBGaWVsZD1Gb3Jt LkVsZW1lbnQ7dmFyICRGPUZvcm0uRWxlbWVudC5NZXRob2RzLmdldFZhbHVlO0Zv cm0uRWxlbWVudC5TZXJpYWxpemVycz17aW5wdXQ6ZnVuY3Rpb24oYSxiKXtzd2l0 Y2goYS50eXBlLnRvTG93ZXJDYXNlKCkpe2Nhc2UiY2hlY2tib3giOmNhc2UicmFk aW8iOnJldHVybiBGb3JtLkVsZW1lbnQuU2VyaWFsaXplcnMuaW5wdXRTZWxlY3Rv cihhLGIpO2RlZmF1bHQ6cmV0dXJuIEZvcm0uRWxlbWVudC5TZXJpYWxpemVycy50 ZXh0YXJlYShhLGIpfX0saW5wdXRTZWxlY3RvcjpmdW5jdGlvbihhLGIpe2lmKE9i amVjdC5pc1VuZGVmaW5lZChiKSl7cmV0dXJuIGEuY2hlY2tlZD9hLnZhbHVlOm51 bGx9ZWxzZXthLmNoZWNrZWQ9ISFifX0sdGV4dGFyZWE6ZnVuY3Rpb24oYSxiKXtp ZihPYmplY3QuaXNVbmRlZmluZWQoYikpe3JldHVybiBhLnZhbHVlfWVsc2V7YS52 YWx1ZT1ifX0sc2VsZWN0OmZ1bmN0aW9uKGMsZyl7aWYoT2JqZWN0LmlzVW5kZWZp bmVkKGcpKXtyZXR1cm4gdGhpc1tjLnR5cGU9PSJzZWxlY3Qtb25lIj8ic2VsZWN0 T25lIjoic2VsZWN0TWFueSJdKGMpfWVsc2V7dmFyIGIsZSxoPSFPYmplY3QuaXNB cnJheShnKTtmb3IodmFyIGE9MCxmPWMubGVuZ3RoO2E8ZjthKyspe2I9Yy5vcHRp b25zW2FdO2U9dGhpcy5vcHRpb25WYWx1ZShiKTtpZihoKXtpZihlPT1nKXtiLnNl bGVjdGVkPXRydWU7cmV0dXJufX1lbHNle2Iuc2VsZWN0ZWQ9Zy5pbmNsdWRlKGUp fX19fSxzZWxlY3RPbmU6ZnVuY3Rpb24oYil7dmFyIGE9Yi5zZWxlY3RlZEluZGV4 O3JldHVybiBhPj0wP3RoaXMub3B0aW9uVmFsdWUoYi5vcHRpb25zW2FdKTpudWxs fSxzZWxlY3RNYW55OmZ1bmN0aW9uKGUpe3ZhciBhLGY9ZS5sZW5ndGg7aWYoIWYp e3JldHVybiBudWxsfWZvcih2YXIgYz0wLGE9W107YzxmO2MrKyl7dmFyIGI9ZS5v cHRpb25zW2NdO2lmKGIuc2VsZWN0ZWQpe2EucHVzaCh0aGlzLm9wdGlvblZhbHVl KGIpKX19cmV0dXJuIGF9LG9wdGlvblZhbHVlOmZ1bmN0aW9uKGEpe3JldHVybiBF bGVtZW50LmV4dGVuZChhKS5oYXNBdHRyaWJ1dGUoInZhbHVlIik/YS52YWx1ZTph LnRleHR9fTtBYnN0cmFjdC5UaW1lZE9ic2VydmVyPUNsYXNzLmNyZWF0ZShQZXJp b2RpY2FsRXhlY3V0ZXIse2luaXRpYWxpemU6ZnVuY3Rpb24oJHN1cGVyLGEsYixj KXskc3VwZXIoYyxiKTt0aGlzLmVsZW1lbnQ9JChhKTt0aGlzLmxhc3RWYWx1ZT10 aGlzLmdldFZhbHVlKCl9LGV4ZWN1dGU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmdl dFZhbHVlKCk7aWYoT2JqZWN0LmlzU3RyaW5nKHRoaXMubGFzdFZhbHVlKSYmT2Jq ZWN0LmlzU3RyaW5nKGEpP3RoaXMubGFzdFZhbHVlIT1hOlN0cmluZyh0aGlzLmxh c3RWYWx1ZSkhPVN0cmluZyhhKSl7dGhpcy5jYWxsYmFjayh0aGlzLmVsZW1lbnQs YSk7dGhpcy5sYXN0VmFsdWU9YX19fSk7Rm9ybS5FbGVtZW50Lk9ic2VydmVyPUNs YXNzLmNyZWF0ZShBYnN0cmFjdC5UaW1lZE9ic2VydmVyLHtnZXRWYWx1ZTpmdW5j dGlvbigpe3JldHVybiBGb3JtLkVsZW1lbnQuZ2V0VmFsdWUodGhpcy5lbGVtZW50 KX19KTtGb3JtLk9ic2VydmVyPUNsYXNzLmNyZWF0ZShBYnN0cmFjdC5UaW1lZE9i c2VydmVyLHtnZXRWYWx1ZTpmdW5jdGlvbigpe3JldHVybiBGb3JtLnNlcmlhbGl6 ZSh0aGlzLmVsZW1lbnQpfX0pO0Fic3RyYWN0LkV2ZW50T2JzZXJ2ZXI9Q2xhc3Mu Y3JlYXRlKHtpbml0aWFsaXplOmZ1bmN0aW9uKGEsYil7dGhpcy5lbGVtZW50PSQo YSk7dGhpcy5jYWxsYmFjaz1iO3RoaXMubGFzdFZhbHVlPXRoaXMuZ2V0VmFsdWUo KTtpZih0aGlzLmVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT0iZm9ybSIp e3RoaXMucmVnaXN0ZXJGb3JtQ2FsbGJhY2tzKCl9ZWxzZXt0aGlzLnJlZ2lzdGVy Q2FsbGJhY2sodGhpcy5lbGVtZW50KX19LG9uRWxlbWVudEV2ZW50OmZ1bmN0aW9u KCl7dmFyIGE9dGhpcy5nZXRWYWx1ZSgpO2lmKHRoaXMubGFzdFZhbHVlIT1hKXt0 aGlzLmNhbGxiYWNrKHRoaXMuZWxlbWVudCxhKTt0aGlzLmxhc3RWYWx1ZT1hfX0s cmVnaXN0ZXJGb3JtQ2FsbGJhY2tzOmZ1bmN0aW9uKCl7Rm9ybS5nZXRFbGVtZW50 cyh0aGlzLmVsZW1lbnQpLmVhY2godGhpcy5yZWdpc3RlckNhbGxiYWNrLHRoaXMp fSxyZWdpc3RlckNhbGxiYWNrOmZ1bmN0aW9uKGEpe2lmKGEudHlwZSl7c3dpdGNo KGEudHlwZS50b0xvd2VyQ2FzZSgpKXtjYXNlImNoZWNrYm94IjpjYXNlInJhZGlv IjpFdmVudC5vYnNlcnZlKGEsImNsaWNrIix0aGlzLm9uRWxlbWVudEV2ZW50LmJp bmQodGhpcykpO2JyZWFrO2RlZmF1bHQ6RXZlbnQub2JzZXJ2ZShhLCJjaGFuZ2Ui LHRoaXMub25FbGVtZW50RXZlbnQuYmluZCh0aGlzKSk7YnJlYWt9fX19KTtGb3Jt LkVsZW1lbnQuRXZlbnRPYnNlcnZlcj1DbGFzcy5jcmVhdGUoQWJzdHJhY3QuRXZl bnRPYnNlcnZlcix7Z2V0VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gRm9ybS5FbGVt ZW50LmdldFZhbHVlKHRoaXMuZWxlbWVudCl9fSk7Rm9ybS5FdmVudE9ic2VydmVy PUNsYXNzLmNyZWF0ZShBYnN0cmFjdC5FdmVudE9ic2VydmVyLHtnZXRWYWx1ZTpm dW5jdGlvbigpe3JldHVybiBGb3JtLnNlcmlhbGl6ZSh0aGlzLmVsZW1lbnQpfX0p OyhmdW5jdGlvbigpe3ZhciB3PXtLRVlfQkFDS1NQQUNFOjgsS0VZX1RBQjo5LEtF WV9SRVRVUk46MTMsS0VZX0VTQzoyNyxLRVlfTEVGVDozNyxLRVlfVVA6MzgsS0VZ X1JJR0hUOjM5LEtFWV9ET1dOOjQwLEtFWV9ERUxFVEU6NDYsS0VZX0hPTUU6MzYs S0VZX0VORDozNSxLRVlfUEFHRVVQOjMzLEtFWV9QQUdFRE9XTjozNCxLRVlfSU5T RVJUOjQ1LGNhY2hlOnt9fTt2YXIgcDtpZihQcm90b3R5cGUuQnJvd3Nlci5JRSl7 dmFyIGg9ezA6MSwxOjQsMjoyfTtwPWZ1bmN0aW9uKHkseCl7cmV0dXJuIHkuYnV0 dG9uPT09aFt4XX19ZWxzZXtpZihQcm90b3R5cGUuQnJvd3Nlci5XZWJLaXQpe3A9 ZnVuY3Rpb24oeSx4KXtzd2l0Y2goeCl7Y2FzZSAwOnJldHVybiB5LndoaWNoPT0x JiYheS5tZXRhS2V5O2Nhc2UgMTpyZXR1cm4geS53aGljaD09MSYmeS5tZXRhS2V5 O2RlZmF1bHQ6cmV0dXJuIGZhbHNlfX19ZWxzZXtwPWZ1bmN0aW9uKHkseCl7cmV0 dXJuIHkud2hpY2g/KHkud2hpY2g9PT14KzEpOih5LmJ1dHRvbj09PXgpfX19ZnVu Y3Rpb24gcyh4KXtyZXR1cm4gcCh4LDApfWZ1bmN0aW9uIHIoeCl7cmV0dXJuIHAo eCwxKX1mdW5jdGlvbiBsKHgpe3JldHVybiBwKHgsMil9ZnVuY3Rpb24gYyh6KXt6 PXcuZXh0ZW5kKHopO3ZhciB5PXoudGFyZ2V0LHg9ei50eXBlLEE9ei5jdXJyZW50 VGFyZ2V0O2lmKEEmJkEudGFnTmFtZSl7aWYoeD09PSJsb2FkInx8eD09PSJlcnJv ciJ8fCh4PT09ImNsaWNrIiYmQS50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0iaW5w dXQiJiZBLnR5cGU9PT0icmFkaW8iKSl7eT1BfX1pZih5Lm5vZGVUeXBlPT1Ob2Rl LlRFWFRfTk9ERSl7eT15LnBhcmVudE5vZGV9cmV0dXJuIEVsZW1lbnQuZXh0ZW5k KHkpfWZ1bmN0aW9uIG4oeSxBKXt2YXIgeD13LmVsZW1lbnQoeSk7aWYoIUEpe3Jl dHVybiB4fXZhciB6PVt4XS5jb25jYXQoeC5hbmNlc3RvcnMoKSk7cmV0dXJuIFNl bGVjdG9yLmZpbmRFbGVtZW50KHosQSwwKX1mdW5jdGlvbiBxKHgpe3JldHVybnt4 OmIoeCkseTphKHgpfX1mdW5jdGlvbiBiKHope3ZhciB5PWRvY3VtZW50LmRvY3Vt ZW50RWxlbWVudCx4PWRvY3VtZW50LmJvZHl8fHtzY3JvbGxMZWZ0OjB9O3JldHVy biB6LnBhZ2VYfHwoei5jbGllbnRYKyh5LnNjcm9sbExlZnR8fHguc2Nyb2xsTGVm dCktKHkuY2xpZW50TGVmdHx8MCkpfWZ1bmN0aW9uIGEoeil7dmFyIHk9ZG9jdW1l bnQuZG9jdW1lbnRFbGVtZW50LHg9ZG9jdW1lbnQuYm9keXx8e3Njcm9sbFRvcDow fTtyZXR1cm4gei5wYWdlWXx8KHouY2xpZW50WSsoeS5zY3JvbGxUb3B8fHguc2Ny b2xsVG9wKS0oeS5jbGllbnRUb3B8fDApKX1mdW5jdGlvbiBvKHgpe3cuZXh0ZW5k KHgpO3gucHJldmVudERlZmF1bHQoKTt4LnN0b3BQcm9wYWdhdGlvbigpO3guc3Rv cHBlZD10cnVlfXcuTWV0aG9kcz17aXNMZWZ0Q2xpY2s6cyxpc01pZGRsZUNsaWNr OnIsaXNSaWdodENsaWNrOmwsZWxlbWVudDpjLGZpbmRFbGVtZW50Om4scG9pbnRl cjpxLHBvaW50ZXJYOmIscG9pbnRlclk6YSxzdG9wOm99O3ZhciB1PU9iamVjdC5r ZXlzKHcuTWV0aG9kcykuaW5qZWN0KHt9LGZ1bmN0aW9uKHgseSl7eFt5XT13Lk1l dGhvZHNbeV0ubWV0aG9kaXplKCk7cmV0dXJuIHh9KTtpZihQcm90b3R5cGUuQnJv d3Nlci5JRSl7ZnVuY3Rpb24gZyh5KXt2YXIgeDtzd2l0Y2goeS50eXBlKXtjYXNl Im1vdXNlb3ZlciI6eD15LmZyb21FbGVtZW50O2JyZWFrO2Nhc2UibW91c2VvdXQi Ong9eS50b0VsZW1lbnQ7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gbnVsbH1yZXR1cm4g RWxlbWVudC5leHRlbmQoeCl9T2JqZWN0LmV4dGVuZCh1LHtzdG9wUHJvcGFnYXRp b246ZnVuY3Rpb24oKXt0aGlzLmNhbmNlbEJ1YmJsZT10cnVlfSxwcmV2ZW50RGVm YXVsdDpmdW5jdGlvbigpe3RoaXMucmV0dXJuVmFsdWU9ZmFsc2V9LGluc3BlY3Q6 ZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBFdmVudF0ifX0pO3cuZXh0ZW5kPWZ1 bmN0aW9uKHkseCl7aWYoIXkpe3JldHVybiBmYWxzZX1pZih5Ll9leHRlbmRlZEJ5 UHJvdG90eXBlKXtyZXR1cm4geX15Ll9leHRlbmRlZEJ5UHJvdG90eXBlPVByb3Rv dHlwZS5lbXB0eUZ1bmN0aW9uO3ZhciB6PXcucG9pbnRlcih5KTtPYmplY3QuZXh0 ZW5kKHkse3RhcmdldDp5LnNyY0VsZW1lbnR8fHgscmVsYXRlZFRhcmdldDpnKHkp LHBhZ2VYOnoueCxwYWdlWTp6Lnl9KTtyZXR1cm4gT2JqZWN0LmV4dGVuZCh5LHUp fX1lbHNle3cucHJvdG90eXBlPXdpbmRvdy5FdmVudC5wcm90b3R5cGV8fGRvY3Vt ZW50LmNyZWF0ZUV2ZW50KCJIVE1MRXZlbnRzIikuX19wcm90b19fO09iamVjdC5l eHRlbmQody5wcm90b3R5cGUsdSk7dy5leHRlbmQ9UHJvdG90eXBlLkt9ZnVuY3Rp b24gbShCLEEsQyl7dmFyIHo9RWxlbWVudC5yZXRyaWV2ZShCLCJwcm90b3R5cGVf ZXZlbnRfcmVnaXN0cnkiKTtpZihPYmplY3QuaXNVbmRlZmluZWQoeikpe2UucHVz aChCKTt6PUVsZW1lbnQucmV0cmlldmUoQiwicHJvdG90eXBlX2V2ZW50X3JlZ2lz dHJ5IiwkSCgpKX12YXIgeD16LmdldChBKTtpZihPYmplY3QuaXNVbmRlZmluZWQo KSl7eD1bXTt6LnNldChBLHgpfWlmKHgucGx1Y2soImhhbmRsZXIiKS5pbmNsdWRl KEMpKXtyZXR1cm4gZmFsc2V9dmFyIHk7aWYoQS5pbmNsdWRlKCI6Iikpe3k9ZnVu Y3Rpb24oRCl7aWYoT2JqZWN0LmlzVW5kZWZpbmVkKEQuZXZlbnROYW1lKSl7cmV0 dXJuIGZhbHNlfWlmKEQuZXZlbnROYW1lIT09QSl7cmV0dXJuIGZhbHNlfXcuZXh0 ZW5kKEQsQik7Qy5jYWxsKEIsRCl9fWVsc2V7aWYoIVByb3RvdHlwZS5Ccm93c2Vy LklFJiYoQT09PSJtb3VzZWVudGVyInx8QT09PSJtb3VzZWxlYXZlIikpe2lmKEE9 PT0ibW91c2VlbnRlciJ8fEE9PT0ibW91c2VsZWF2ZSIpe3k9ZnVuY3Rpb24oRSl7 dy5leHRlbmQoRSxCKTt2YXIgRD1FLnJlbGF0ZWRUYXJnZXQ7d2hpbGUoRCYmRCE9 PUIpe3RyeXtEPUQucGFyZW50Tm9kZX1jYXRjaChGKXtEPUJ9fWlmKEQ9PT1CKXty ZXR1cm59Qy5jYWxsKEIsRSl9fX1lbHNle3k9ZnVuY3Rpb24oRCl7dy5leHRlbmQo RCxCKTtDLmNhbGwoQixEKX19fXkuaGFuZGxlcj1DO3gucHVzaCh5KTtyZXR1cm4g eX1mdW5jdGlvbiBmKCl7Zm9yKHZhciB4PTAseT1lLmxlbmd0aDt4PHk7eCsrKXt3 LnN0b3BPYnNlcnZpbmcoZVt4XSk7ZVt4XT1udWxsfX12YXIgZT1bXTtpZihQcm90 b3R5cGUuQnJvd3Nlci5JRSl7d2luZG93LmF0dGFjaEV2ZW50KCJvbnVubG9hZCIs Zil9aWYoUHJvdG90eXBlLkJyb3dzZXIuV2ViS2l0KXt3aW5kb3cuYWRkRXZlbnRM aXN0ZW5lcigidW5sb2FkIixQcm90b3R5cGUuZW1wdHlGdW5jdGlvbixmYWxzZSl9 dmFyIGs9UHJvdG90eXBlLks7aWYoIVByb3RvdHlwZS5Ccm93c2VyLklFKXtrPWZ1 bmN0aW9uKHkpe3ZhciB4PXttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVh dmU6Im1vdXNlb3V0In07cmV0dXJuIHkgaW4geD94W3ldOnl9fWZ1bmN0aW9uIHQo QSx6LEIpe0E9JChBKTt2YXIgeT1tKEEseixCKTtpZigheSl7cmV0dXJuIEF9aWYo ei5pbmNsdWRlKCI6Iikpe2lmKEEuYWRkRXZlbnRMaXN0ZW5lcil7QS5hZGRFdmVu dExpc3RlbmVyKCJkYXRhYXZhaWxhYmxlIix5LGZhbHNlKX1lbHNle0EuYXR0YWNo RXZlbnQoIm9uZGF0YWF2YWlsYWJsZSIseSk7QS5hdHRhY2hFdmVudCgib25maWx0 ZXJjaGFuZ2UiLHkpfX1lbHNle3ZhciB4PWsoeik7aWYoQS5hZGRFdmVudExpc3Rl bmVyKXtBLmFkZEV2ZW50TGlzdGVuZXIoeCx5LGZhbHNlKX1lbHNle0EuYXR0YWNo RXZlbnQoIm9uIit4LHkpfX1yZXR1cm4gQX1mdW5jdGlvbiBqKEMsQSxEKXtDPSQo Qyk7dmFyIHo9RWxlbWVudC5yZXRyaWV2ZShDLCJwcm90b3R5cGVfZXZlbnRfcmVn aXN0cnkiKTtpZihPYmplY3QuaXNVbmRlZmluZWQoeikpe3JldHVybiBDfWlmKEEm JiFEKXt2YXIgQj16LmdldChBKTtpZihPYmplY3QuaXNVbmRlZmluZWQoQikpe3Jl dHVybiBDfUIuZWFjaChmdW5jdGlvbihFKXtFbGVtZW50LnN0b3BPYnNlcnZpbmco QyxBLEUuaGFuZGxlcil9KTtyZXR1cm4gQ31lbHNle2lmKCFBKXt6LmVhY2goZnVu Y3Rpb24oRyl7dmFyIEU9Ry5rZXksRj1HLnZhbHVlO0YuZWFjaChmdW5jdGlvbihI KXtFbGVtZW50LnN0b3BPYnNlcnZpbmcoQyxFLEguaGFuZGxlcil9KX0pO3JldHVy biBDfX12YXIgQj16LmdldChBKTtpZighQil7cmV0dXJufXZhciB5PUIuZmluZChm dW5jdGlvbihFKXtyZXR1cm4gRS5oYW5kbGVyPT09RH0pO2lmKCF5KXtyZXR1cm4g Q312YXIgeD1rKEEpO2lmKEEuaW5jbHVkZSgiOiIpKXtpZihDLnJlbW92ZUV2ZW50 TGlzdGVuZXIpe0MucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZGF0YWF2YWlsYWJsZSIs eSxmYWxzZSl9ZWxzZXtDLmRldGFjaEV2ZW50KCJvbmRhdGFhdmFpbGFibGUiLHkp O0MuZGV0YWNoRXZlbnQoIm9uZmlsdGVyY2hhbmdlIix5KX19ZWxzZXtpZihDLnJl bW92ZUV2ZW50TGlzdGVuZXIpe0MucmVtb3ZlRXZlbnRMaXN0ZW5lcih4LHksZmFs c2UpfWVsc2V7Qy5kZXRhY2hFdmVudCgib24iK3gseSl9fXouc2V0KEEsQi53aXRo b3V0KHkpKTtyZXR1cm4gQ31mdW5jdGlvbiB2KEEseix5LHgpe0E9JChBKTtpZihP YmplY3QuaXNVbmRlZmluZWQoeCkpe3g9dHJ1ZX1pZihBPT1kb2N1bWVudCYmZG9j dW1lbnQuY3JlYXRlRXZlbnQmJiFBLmRpc3BhdGNoRXZlbnQpe0E9ZG9jdW1lbnQu ZG9jdW1lbnRFbGVtZW50fXZhciBCO2lmKGRvY3VtZW50LmNyZWF0ZUV2ZW50KXtC PWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJIVE1MRXZlbnRzIik7Qi5pbml0RXZlbnQo ImRhdGFhdmFpbGFibGUiLHRydWUsdHJ1ZSl9ZWxzZXtCPWRvY3VtZW50LmNyZWF0 ZUV2ZW50T2JqZWN0KCk7Qi5ldmVudFR5cGU9eD8ib25kYXRhYXZhaWxhYmxlIjoi b25maWx0ZXJjaGFuZ2UifUIuZXZlbnROYW1lPXo7Qi5tZW1vPXl8fHt9O2lmKGRv Y3VtZW50LmNyZWF0ZUV2ZW50KXtBLmRpc3BhdGNoRXZlbnQoQil9ZWxzZXtBLmZp cmVFdmVudChCLmV2ZW50VHlwZSxCKX1yZXR1cm4gdy5leHRlbmQoQil9T2JqZWN0 LmV4dGVuZCh3LHcuTWV0aG9kcyk7T2JqZWN0LmV4dGVuZCh3LHtmaXJlOnYsb2Jz ZXJ2ZTp0LHN0b3BPYnNlcnZpbmc6an0pO0VsZW1lbnQuYWRkTWV0aG9kcyh7Zmly ZTp2LG9ic2VydmU6dCxzdG9wT2JzZXJ2aW5nOmp9KTtPYmplY3QuZXh0ZW5kKGRv Y3VtZW50LHtmaXJlOnYubWV0aG9kaXplKCksb2JzZXJ2ZTp0Lm1ldGhvZGl6ZSgp LHN0b3BPYnNlcnZpbmc6ai5tZXRob2RpemUoKSxsb2FkZWQ6ZmFsc2V9KTtpZih3 aW5kb3cuRXZlbnQpe09iamVjdC5leHRlbmQod2luZG93LkV2ZW50LHcpfWVsc2V7 d2luZG93LkV2ZW50PXd9fSkoKTsoZnVuY3Rpb24oKXt2YXIgZTtmdW5jdGlvbiBh KCl7aWYoZG9jdW1lbnQubG9hZGVkKXtyZXR1cm59aWYoZSl7d2luZG93LmNsZWFy VGltZW91dChlKX1kb2N1bWVudC5sb2FkZWQ9dHJ1ZTtkb2N1bWVudC5maXJlKCJk b206bG9hZGVkIil9ZnVuY3Rpb24gYygpe2lmKGRvY3VtZW50LnJlYWR5U3RhdGU9 PT0iY29tcGxldGUiKXtkb2N1bWVudC5zdG9wT2JzZXJ2aW5nKCJyZWFkeXN0YXRl Y2hhbmdlIixjKTthKCl9fWZ1bmN0aW9uIGIoKXt0cnl7ZG9jdW1lbnQuZG9jdW1l bnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goZil7ZT1iLmRlZmVyKCk7 cmV0dXJufWEoKX1pZihkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKXtkb2N1bWVu dC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixhLGZhbHNlKX1l bHNle2RvY3VtZW50Lm9ic2VydmUoInJlYWR5c3RhdGVjaGFuZ2UiLGMpO2lmKHdp bmRvdz09dG9wKXtlPWIuZGVmZXIoKX19RXZlbnQub2JzZXJ2ZSh3aW5kb3csImxv YWQiLGEpfSkoKTtFbGVtZW50LmFkZE1ldGhvZHMoKTtIYXNoLnRvUXVlcnlTdHJp bmc9T2JqZWN0LnRvUXVlcnlTdHJpbmc7dmFyIFRvZ2dsZT17ZGlzcGxheTpFbGVt ZW50LnRvZ2dsZX07RWxlbWVudC5NZXRob2RzLmNoaWxkT2Y9RWxlbWVudC5NZXRo b2RzLmRlc2NlbmRhbnRPZjt2YXIgSW5zZXJ0aW9uPXtCZWZvcmU6ZnVuY3Rpb24o YSxiKXtyZXR1cm4gRWxlbWVudC5pbnNlcnQoYSx7YmVmb3JlOmJ9KX0sVG9wOmZ1 bmN0aW9uKGEsYil7cmV0dXJuIEVsZW1lbnQuaW5zZXJ0KGEse3RvcDpifSl9LEJv dHRvbTpmdW5jdGlvbihhLGIpe3JldHVybiBFbGVtZW50Lmluc2VydChhLHtib3R0 b206Yn0pfSxBZnRlcjpmdW5jdGlvbihhLGIpe3JldHVybiBFbGVtZW50Lmluc2Vy dChhLHthZnRlcjpifSl9fTt2YXIgJGNvbnRpbnVlPW5ldyBFcnJvcignInRocm93 ICRjb250aW51ZSIgaXMgZGVwcmVjYXRlZCwgdXNlICJyZXR1cm4iIGluc3RlYWQn KTt2YXIgUG9zaXRpb249e2luY2x1ZGVTY3JvbGxPZmZzZXRzOmZhbHNlLHByZXBh cmU6ZnVuY3Rpb24oKXt0aGlzLmRlbHRhWD13aW5kb3cucGFnZVhPZmZzZXR8fGRv Y3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0fHxkb2N1bWVudC5ib2R5 LnNjcm9sbExlZnR8fDA7dGhpcy5kZWx0YVk9d2luZG93LnBhZ2VZT2Zmc2V0fHxk b2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wfHxkb2N1bWVudC5ib2R5 LnNjcm9sbFRvcHx8MH0sd2l0aGluOmZ1bmN0aW9uKGIsYSxjKXtpZih0aGlzLmlu Y2x1ZGVTY3JvbGxPZmZzZXRzKXtyZXR1cm4gdGhpcy53aXRoaW5JbmNsdWRpbmdT Y3JvbGxvZmZzZXRzKGIsYSxjKX10aGlzLnhjb21wPWE7dGhpcy55Y29tcD1jO3Ro aXMub2Zmc2V0PUVsZW1lbnQuY3VtdWxhdGl2ZU9mZnNldChiKTtyZXR1cm4oYz49 dGhpcy5vZmZzZXRbMV0mJmM8dGhpcy5vZmZzZXRbMV0rYi5vZmZzZXRIZWlnaHQm JmE+PXRoaXMub2Zmc2V0WzBdJiZhPHRoaXMub2Zmc2V0WzBdK2Iub2Zmc2V0V2lk dGgpfSx3aXRoaW5JbmNsdWRpbmdTY3JvbGxvZmZzZXRzOmZ1bmN0aW9uKGIsYSxl KXt2YXIgYz1FbGVtZW50LmN1bXVsYXRpdmVTY3JvbGxPZmZzZXQoYik7dGhpcy54 Y29tcD1hK2NbMF0tdGhpcy5kZWx0YVg7dGhpcy55Y29tcD1lK2NbMV0tdGhpcy5k ZWx0YVk7dGhpcy5vZmZzZXQ9RWxlbWVudC5jdW11bGF0aXZlT2Zmc2V0KGIpO3Jl dHVybih0aGlzLnljb21wPj10aGlzLm9mZnNldFsxXSYmdGhpcy55Y29tcDx0aGlz Lm9mZnNldFsxXStiLm9mZnNldEhlaWdodCYmdGhpcy54Y29tcD49dGhpcy5vZmZz ZXRbMF0mJnRoaXMueGNvbXA8dGhpcy5vZmZzZXRbMF0rYi5vZmZzZXRXaWR0aCl9 LG92ZXJsYXA6ZnVuY3Rpb24oYixhKXtpZighYil7cmV0dXJuIDB9aWYoYj09InZl cnRpY2FsIil7cmV0dXJuKCh0aGlzLm9mZnNldFsxXSthLm9mZnNldEhlaWdodCkt dGhpcy55Y29tcCkvYS5vZmZzZXRIZWlnaHR9aWYoYj09Imhvcml6b250YWwiKXty ZXR1cm4oKHRoaXMub2Zmc2V0WzBdK2Eub2Zmc2V0V2lkdGgpLXRoaXMueGNvbXAp L2Eub2Zmc2V0V2lkdGh9fSxjdW11bGF0aXZlT2Zmc2V0OkVsZW1lbnQuTWV0aG9k cy5jdW11bGF0aXZlT2Zmc2V0LHBvc2l0aW9uZWRPZmZzZXQ6RWxlbWVudC5NZXRo b2RzLnBvc2l0aW9uZWRPZmZzZXQsYWJzb2x1dGl6ZTpmdW5jdGlvbihhKXtQb3Np dGlvbi5wcmVwYXJlKCk7cmV0dXJuIEVsZW1lbnQuYWJzb2x1dGl6ZShhKX0scmVs YXRpdml6ZTpmdW5jdGlvbihhKXtQb3NpdGlvbi5wcmVwYXJlKCk7cmV0dXJuIEVs ZW1lbnQucmVsYXRpdml6ZShhKX0scmVhbE9mZnNldDpFbGVtZW50Lk1ldGhvZHMu Y3VtdWxhdGl2ZVNjcm9sbE9mZnNldCxvZmZzZXRQYXJlbnQ6RWxlbWVudC5NZXRo b2RzLmdldE9mZnNldFBhcmVudCxwYWdlOkVsZW1lbnQuTWV0aG9kcy52aWV3cG9y dE9mZnNldCxjbG9uZTpmdW5jdGlvbihiLGMsYSl7YT1hfHx7fTtyZXR1cm4gRWxl bWVudC5jbG9uZVBvc2l0aW9uKGMsYixhKX19O2lmKCFkb2N1bWVudC5nZXRFbGVt ZW50c0J5Q2xhc3NOYW1lKXtkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1l PWZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGEoYyl7cmV0dXJuIGMuYmxhbmsoKT9udWxs OiJbY29udGFpbnMoY29uY2F0KCcgJywgQGNsYXNzLCAnICcpLCAnICIrYysiICcp XSJ9Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lPVByb3RvdHlwZS5Ccm93c2VyRmVh dHVyZXMuWFBhdGg/ZnVuY3Rpb24oYyxmKXtmPWYudG9TdHJpbmcoKS5zdHJpcCgp O3ZhciBlPS9ccy8udGVzdChmKT8kdyhmKS5tYXAoYSkuam9pbigiIik6YShmKTty ZXR1cm4gZT9kb2N1bWVudC5fZ2V0RWxlbWVudHNCeVhQYXRoKCIuLy8qIitlLGMp OltdfTpmdW5jdGlvbihmLGcpe2c9Zy50b1N0cmluZygpLnN0cmlwKCk7dmFyIGg9 W10saj0oL1xzLy50ZXN0KGcpPyR3KGcpOm51bGwpO2lmKCFqJiYhZyl7cmV0dXJu IGh9dmFyIGM9JChmKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpO2c9IiAiK2cr IiAiO2Zvcih2YXIgZT0wLGwsaztsPWNbZV07ZSsrKXtpZihsLmNsYXNzTmFtZSYm KGs9IiAiK2wuY2xhc3NOYW1lKyIgIikmJihrLmluY2x1ZGUoZyl8fChqJiZqLmFs bChmdW5jdGlvbihtKXtyZXR1cm4gIW0udG9TdHJpbmcoKS5ibGFuaygpJiZrLmlu Y2x1ZGUoIiAiK20rIiAiKX0pKSkpe2gucHVzaChFbGVtZW50LmV4dGVuZChsKSl9 fXJldHVybiBofTtyZXR1cm4gZnVuY3Rpb24oZSxjKXtyZXR1cm4gJChjfHxkb2N1 bWVudC5ib2R5KS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGUpfX0oRWxlbWVudC5N ZXRob2RzKX1FbGVtZW50LkNsYXNzTmFtZXM9Q2xhc3MuY3JlYXRlKCk7RWxlbWVu dC5DbGFzc05hbWVzLnByb3RvdHlwZT17aW5pdGlhbGl6ZTpmdW5jdGlvbihhKXt0 aGlzLmVsZW1lbnQ9JChhKX0sX2VhY2g6ZnVuY3Rpb24oYSl7dGhpcy5lbGVtZW50 LmNsYXNzTmFtZS5zcGxpdCgvXHMrLykuc2VsZWN0KGZ1bmN0aW9uKGIpe3JldHVy biBiLmxlbmd0aD4wfSkuX2VhY2goYSl9LHNldDpmdW5jdGlvbihhKXt0aGlzLmVs ZW1lbnQuY2xhc3NOYW1lPWF9LGFkZDpmdW5jdGlvbihhKXtpZih0aGlzLmluY2x1 ZGUoYSkpe3JldHVybn10aGlzLnNldCgkQSh0aGlzKS5jb25jYXQoYSkuam9pbigi ICIpKX0scmVtb3ZlOmZ1bmN0aW9uKGEpe2lmKCF0aGlzLmluY2x1ZGUoYSkpe3Jl dHVybn10aGlzLnNldCgkQSh0aGlzKS53aXRob3V0KGEpLmpvaW4oIiAiKSl9LHRv U3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuICRBKHRoaXMpLmpvaW4oIiAiKX19O09i amVjdC5leHRlbmQoRWxlbWVudC5DbGFzc05hbWVzLnByb3RvdHlwZSxFbnVtZXJh YmxlKTsNCi8qIHNjcmlwdC5hY3Vsby51cyAtIENvcHlyaWdodCAoYykgVGhvbWFz IEZ1Y2hzLCBKdXN0aW4gUGFsbWVyLCBNYXJrIFBpbGdyaW0sIE1hcnRpbiBCaWFs YXNpbmtpLiBzY3JpcHQuYWN1bG8udXMgaXMgZnJlZWx5IGRpc3RyaWJ1dGFibGUg dW5kZXIgdGhlIHRlcm1zIG9mIGFuIE1JVC1zdHlsZSBsaWNlbnNlLiBGb3IgZGV0 YWlscywgc2VlIHRoZSBzY3JpcHQuYWN1bG8udXMgd2ViIHNpdGU6IGh0dHA6Ly9z Y3JpcHQuYWN1bG8udXMvICovDQpTdHJpbmcucHJvdG90eXBlLnBhcnNlQ29sb3I9 ZnVuY3Rpb24oKXt2YXIgYT0iIyI7aWYodGhpcy5zbGljZSgwLDQpPT0icmdiKCIp e3ZhciBjPXRoaXMuc2xpY2UoNCx0aGlzLmxlbmd0aC0xKS5zcGxpdCgiLCIpO3Zh ciBiPTA7ZG97YSs9cGFyc2VJbnQoY1tiXSkudG9Db2xvclBhcnQoKX13aGlsZSgr K2I8Myl9ZWxzZXtpZih0aGlzLnNsaWNlKDAsMSk9PSIjIil7aWYodGhpcy5sZW5n dGg9PTQpe2Zvcih2YXIgYj0xO2I8NDtiKyspe2ErPSh0aGlzLmNoYXJBdChiKSt0 aGlzLmNoYXJBdChiKSkudG9Mb3dlckNhc2UoKX19aWYodGhpcy5sZW5ndGg9PTcp e2E9dGhpcy50b0xvd2VyQ2FzZSgpfX19cmV0dXJuKGEubGVuZ3RoPT03P2E6KGFy Z3VtZW50c1swXXx8dGhpcykpfTtFbGVtZW50LmNvbGxlY3RUZXh0Tm9kZXM9ZnVu Y3Rpb24oYSl7cmV0dXJuICRBKCQoYSkuY2hpbGROb2RlcykuY29sbGVjdChmdW5j dGlvbihiKXtyZXR1cm4oYi5ub2RlVHlwZT09Mz9iLm5vZGVWYWx1ZTooYi5oYXND aGlsZE5vZGVzKCk/RWxlbWVudC5jb2xsZWN0VGV4dE5vZGVzKGIpOiIiKSl9KS5m bGF0dGVuKCkuam9pbigiIil9O0VsZW1lbnQuY29sbGVjdFRleHROb2Rlc0lnbm9y ZUNsYXNzPWZ1bmN0aW9uKGEsYil7cmV0dXJuICRBKCQoYSkuY2hpbGROb2Rlcyku Y29sbGVjdChmdW5jdGlvbihjKXtyZXR1cm4oYy5ub2RlVHlwZT09Mz9jLm5vZGVW YWx1ZTooKGMuaGFzQ2hpbGROb2RlcygpJiYhRWxlbWVudC5oYXNDbGFzc05hbWUo YyxiKSk/RWxlbWVudC5jb2xsZWN0VGV4dE5vZGVzSWdub3JlQ2xhc3MoYyxiKToi IikpfSkuZmxhdHRlbigpLmpvaW4oIiIpfTtFbGVtZW50LnNldENvbnRlbnRab29t PWZ1bmN0aW9uKGEsYil7YT0kKGEpO2Euc2V0U3R5bGUoe2ZvbnRTaXplOihiLzEw MCkrImVtIn0pO2lmKFByb3RvdHlwZS5Ccm93c2VyLldlYktpdCl7d2luZG93LnNj cm9sbEJ5KDAsMCl9cmV0dXJuIGF9O0VsZW1lbnQuZ2V0SW5saW5lT3BhY2l0eT1m dW5jdGlvbihhKXtyZXR1cm4gJChhKS5zdHlsZS5vcGFjaXR5fHwiIn07RWxlbWVu dC5mb3JjZVJlcmVuZGVyaW5nPWZ1bmN0aW9uKGEpe3RyeXthPSQoYSk7dmFyIGM9 ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAiKTthLmFwcGVuZENoaWxkKGMpO2Eu cmVtb3ZlQ2hpbGQoYyl9Y2F0Y2goYil7fX07dmFyIEVmZmVjdD17X2VsZW1lbnRE b2VzTm90RXhpc3RFcnJvcjp7bmFtZToiRWxlbWVudERvZXNOb3RFeGlzdEVycm9y IixtZXNzYWdlOiJUaGUgc3BlY2lmaWVkIERPTSBlbGVtZW50IGRvZXMgbm90IGV4 aXN0LCBidXQgaXMgcmVxdWlyZWQgZm9yIHRoaXMgZWZmZWN0IHRvIG9wZXJhdGUi fSxUcmFuc2l0aW9uczp7bGluZWFyOlByb3RvdHlwZS5LLHNpbm9pZGFsOmZ1bmN0 aW9uKGEpe3JldHVybigtTWF0aC5jb3MoYSpNYXRoLlBJKS8yKSswLjV9LHJldmVy c2U6ZnVuY3Rpb24oYSl7cmV0dXJuIDEtYX0sZmxpY2tlcjpmdW5jdGlvbihhKXt2 YXIgYT0oKC1NYXRoLmNvcyhhKk1hdGguUEkpLzQpKzAuNzUpK01hdGgucmFuZG9t KCkvNDtyZXR1cm4gYT4xPzE6YX0sd29iYmxlOmZ1bmN0aW9uKGEpe3JldHVybigt TWF0aC5jb3MoYSpNYXRoLlBJKig5KmEpKS8yKSswLjV9LHB1bHNlOmZ1bmN0aW9u KGIsYSl7cmV0dXJuKC1NYXRoLmNvcygoYiooKGF8fDUpLTAuNSkqMikqTWF0aC5Q SSkvMikrMC41fSxzcHJpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuIDEtKE1hdGguY29z KGEqNC41Kk1hdGguUEkpKk1hdGguZXhwKC1hKjYpKX0sbm9uZTpmdW5jdGlvbihh KXtyZXR1cm4gMH0sZnVsbDpmdW5jdGlvbihhKXtyZXR1cm4gMX19LERlZmF1bHRP cHRpb25zOntkdXJhdGlvbjoxLGZwczoxMDAsc3luYzpmYWxzZSxmcm9tOjAsdG86 MSxkZWxheTowLHF1ZXVlOiJwYXJhbGxlbCJ9LHRhZ2lmeVRleHQ6ZnVuY3Rpb24o YSl7dmFyIGI9InBvc2l0aW9uOnJlbGF0aXZlIjtpZihQcm90b3R5cGUuQnJvd3Nl ci5JRSl7Yis9Ijt6b29tOjEifWE9JChhKTskQShhLmNoaWxkTm9kZXMpLmVhY2go ZnVuY3Rpb24oYyl7aWYoYy5ub2RlVHlwZT09Myl7Yy5ub2RlVmFsdWUudG9BcnJh eSgpLmVhY2goZnVuY3Rpb24oZSl7YS5pbnNlcnRCZWZvcmUobmV3IEVsZW1lbnQo InNwYW4iLHtzdHlsZTpifSkudXBkYXRlKGU9PSIgIj9TdHJpbmcuZnJvbUNoYXJD b2RlKDE2MCk6ZSksYyl9KTtFbGVtZW50LnJlbW92ZShjKX19KX0sbXVsdGlwbGU6 ZnVuY3Rpb24oYixjKXt2YXIgZjtpZigoKHR5cGVvZiBiPT0ib2JqZWN0Iil8fE9i amVjdC5pc0Z1bmN0aW9uKGIpKSYmKGIubGVuZ3RoKSl7Zj1ifWVsc2V7Zj0kKGIp LmNoaWxkTm9kZXN9dmFyIGE9T2JqZWN0LmV4dGVuZCh7c3BlZWQ6MC4xLGRlbGF5 OjB9LGFyZ3VtZW50c1syXXx8e30pO3ZhciBlPWEuZGVsYXk7JEEoZikuZWFjaChm dW5jdGlvbihoLGcpe25ldyBjKGgsT2JqZWN0LmV4dGVuZChhLHtkZWxheTpnKmEu c3BlZWQrZX0pKX0pfSxQQUlSUzp7c2xpZGU6WyJTbGlkZURvd24iLCJTbGlkZVVw Il0sYmxpbmQ6WyJCbGluZERvd24iLCJCbGluZFVwIl0sYXBwZWFyOlsiQXBwZWFy IiwiRmFkZSJdfSx0b2dnbGU6ZnVuY3Rpb24oYixjKXtiPSQoYik7Yz0oY3x8ImFw cGVhciIpLnRvTG93ZXJDYXNlKCk7dmFyIGE9T2JqZWN0LmV4dGVuZCh7cXVldWU6 e3Bvc2l0aW9uOiJlbmQiLHNjb3BlOihiLmlkfHwiZ2xvYmFsIiksbGltaXQ6MX19 LGFyZ3VtZW50c1syXXx8e30pO0VmZmVjdFtiLnZpc2libGUoKT9FZmZlY3QuUEFJ UlNbY11bMV06RWZmZWN0LlBBSVJTW2NdWzBdXShiLGEpfX07RWZmZWN0LkRlZmF1 bHRPcHRpb25zLnRyYW5zaXRpb249RWZmZWN0LlRyYW5zaXRpb25zLnNpbm9pZGFs O0VmZmVjdC5TY29wZWRRdWV1ZT1DbGFzcy5jcmVhdGUoRW51bWVyYWJsZSx7aW5p dGlhbGl6ZTpmdW5jdGlvbigpe3RoaXMuZWZmZWN0cz1bXTt0aGlzLmludGVydmFs PW51bGx9LF9lYWNoOmZ1bmN0aW9uKGEpe3RoaXMuZWZmZWN0cy5fZWFjaChhKX0s YWRkOmZ1bmN0aW9uKGIpe3ZhciBjPW5ldyBEYXRlKCkuZ2V0VGltZSgpO3ZhciBh PU9iamVjdC5pc1N0cmluZyhiLm9wdGlvbnMucXVldWUpP2Iub3B0aW9ucy5xdWV1 ZTpiLm9wdGlvbnMucXVldWUucG9zaXRpb247c3dpdGNoKGEpe2Nhc2UiZnJvbnQi OnRoaXMuZWZmZWN0cy5maW5kQWxsKGZ1bmN0aW9uKGYpe3JldHVybiBmLnN0YXRl PT0iaWRsZSJ9KS5lYWNoKGZ1bmN0aW9uKGYpe2Yuc3RhcnRPbis9Yi5maW5pc2hP bjtmLmZpbmlzaE9uKz1iLmZpbmlzaE9ufSk7YnJlYWs7Y2FzZSJ3aXRoLWxhc3Qi OmM9dGhpcy5lZmZlY3RzLnBsdWNrKCJzdGFydE9uIikubWF4KCl8fGM7YnJlYWs7 Y2FzZSJlbmQiOmM9dGhpcy5lZmZlY3RzLnBsdWNrKCJmaW5pc2hPbiIpLm1heCgp fHxjO2JyZWFrfWIuc3RhcnRPbis9YztiLmZpbmlzaE9uKz1jO2lmKCFiLm9wdGlv bnMucXVldWUubGltaXR8fCh0aGlzLmVmZmVjdHMubGVuZ3RoPGIub3B0aW9ucy5x dWV1ZS5saW1pdCkpe3RoaXMuZWZmZWN0cy5wdXNoKGIpfWlmKCF0aGlzLmludGVy dmFsKXt0aGlzLmludGVydmFsPXNldEludGVydmFsKHRoaXMubG9vcC5iaW5kKHRo aXMpLDE1KX19LHJlbW92ZTpmdW5jdGlvbihhKXt0aGlzLmVmZmVjdHM9dGhpcy5l ZmZlY3RzLnJlamVjdChmdW5jdGlvbihiKXtyZXR1cm4gYj09YX0pO2lmKHRoaXMu ZWZmZWN0cy5sZW5ndGg9PTApe2NsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7 dGhpcy5pbnRlcnZhbD1udWxsfX0sbG9vcDpmdW5jdGlvbigpe3ZhciBjPW5ldyBE YXRlKCkuZ2V0VGltZSgpO2Zvcih2YXIgYj0wLGE9dGhpcy5lZmZlY3RzLmxlbmd0 aDtiPGE7YisrKXt0aGlzLmVmZmVjdHNbYl0mJnRoaXMuZWZmZWN0c1tiXS5sb29w KGMpfX19KTtFZmZlY3QuUXVldWVzPXtpbnN0YW5jZXM6JEgoKSxnZXQ6ZnVuY3Rp b24oYSl7aWYoIU9iamVjdC5pc1N0cmluZyhhKSl7cmV0dXJuIGF9cmV0dXJuIHRo aXMuaW5zdGFuY2VzLmdldChhKXx8dGhpcy5pbnN0YW5jZXMuc2V0KGEsbmV3IEVm ZmVjdC5TY29wZWRRdWV1ZSgpKX19O0VmZmVjdC5RdWV1ZT1FZmZlY3QuUXVldWVz LmdldCgiZ2xvYmFsIik7RWZmZWN0LkJhc2U9Q2xhc3MuY3JlYXRlKHtwb3NpdGlv bjpudWxsLHN0YXJ0OmZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZSxjKXtyZXR1cm4o KGVbYysiSW50ZXJuYWwiXT8idGhpcy5vcHRpb25zLiIrYysiSW50ZXJuYWwodGhp cyk7IjoiIikrKGVbY10/InRoaXMub3B0aW9ucy4iK2MrIih0aGlzKTsiOiIiKSl9 aWYoYSYmYS50cmFuc2l0aW9uPT09ZmFsc2Upe2EudHJhbnNpdGlvbj1FZmZlY3Qu VHJhbnNpdGlvbnMubGluZWFyfXRoaXMub3B0aW9ucz1PYmplY3QuZXh0ZW5kKE9i amVjdC5leHRlbmQoe30sRWZmZWN0LkRlZmF1bHRPcHRpb25zKSxhfHx7fSk7dGhp cy5jdXJyZW50RnJhbWU9MDt0aGlzLnN0YXRlPSJpZGxlIjt0aGlzLnN0YXJ0T249 dGhpcy5vcHRpb25zLmRlbGF5KjEwMDA7dGhpcy5maW5pc2hPbj10aGlzLnN0YXJ0 T24rKHRoaXMub3B0aW9ucy5kdXJhdGlvbioxMDAwKTt0aGlzLmZyb21Ub0RlbHRh PXRoaXMub3B0aW9ucy50by10aGlzLm9wdGlvbnMuZnJvbTt0aGlzLnRvdGFsVGlt ZT10aGlzLmZpbmlzaE9uLXRoaXMuc3RhcnRPbjt0aGlzLnRvdGFsRnJhbWVzPXRo aXMub3B0aW9ucy5mcHMqdGhpcy5vcHRpb25zLmR1cmF0aW9uO3RoaXMucmVuZGVy PShmdW5jdGlvbigpe2Z1bmN0aW9uIGMoZixlKXtpZihmLm9wdGlvbnNbZSsiSW50 ZXJuYWwiXSl7Zi5vcHRpb25zW2UrIkludGVybmFsIl0oZil9aWYoZi5vcHRpb25z W2VdKXtmLm9wdGlvbnNbZV0oZil9fXJldHVybiBmdW5jdGlvbihlKXtpZih0aGlz LnN0YXRlPT09ImlkbGUiKXt0aGlzLnN0YXRlPSJydW5uaW5nIjtjKHRoaXMsImJl Zm9yZVNldHVwIik7aWYodGhpcy5zZXR1cCl7dGhpcy5zZXR1cCgpfWModGhpcywi YWZ0ZXJTZXR1cCIpfWlmKHRoaXMuc3RhdGU9PT0icnVubmluZyIpe2U9KHRoaXMu b3B0aW9ucy50cmFuc2l0aW9uKGUpKnRoaXMuZnJvbVRvRGVsdGEpK3RoaXMub3B0 aW9ucy5mcm9tO3RoaXMucG9zaXRpb249ZTtjKHRoaXMsImJlZm9yZVVwZGF0ZSIp O2lmKHRoaXMudXBkYXRlKXt0aGlzLnVwZGF0ZShlKX1jKHRoaXMsImFmdGVyVXBk YXRlIil9fX0pKCk7dGhpcy5ldmVudCgiYmVmb3JlU3RhcnQiKTtpZighdGhpcy5v cHRpb25zLnN5bmMpe0VmZmVjdC5RdWV1ZXMuZ2V0KE9iamVjdC5pc1N0cmluZyh0 aGlzLm9wdGlvbnMucXVldWUpPyJnbG9iYWwiOnRoaXMub3B0aW9ucy5xdWV1ZS5z Y29wZSkuYWRkKHRoaXMpfX0sbG9vcDpmdW5jdGlvbihjKXtpZihjPj10aGlzLnN0 YXJ0T24pe2lmKGM+PXRoaXMuZmluaXNoT24pe3RoaXMucmVuZGVyKDEpO3RoaXMu Y2FuY2VsKCk7dGhpcy5ldmVudCgiYmVmb3JlRmluaXNoIik7aWYodGhpcy5maW5p c2gpe3RoaXMuZmluaXNoKCl9dGhpcy5ldmVudCgiYWZ0ZXJGaW5pc2giKTtyZXR1 cm59dmFyIGI9KGMtdGhpcy5zdGFydE9uKS90aGlzLnRvdGFsVGltZSxhPShiKnRo aXMudG90YWxGcmFtZXMpLnJvdW5kKCk7aWYoYT50aGlzLmN1cnJlbnRGcmFtZSl7 dGhpcy5yZW5kZXIoYik7dGhpcy5jdXJyZW50RnJhbWU9YX19fSxjYW5jZWw6ZnVu Y3Rpb24oKXtpZighdGhpcy5vcHRpb25zLnN5bmMpe0VmZmVjdC5RdWV1ZXMuZ2V0 KE9iamVjdC5pc1N0cmluZyh0aGlzLm9wdGlvbnMucXVldWUpPyJnbG9iYWwiOnRo aXMub3B0aW9ucy5xdWV1ZS5zY29wZSkucmVtb3ZlKHRoaXMpfXRoaXMuc3RhdGU9 ImZpbmlzaGVkIn0sZXZlbnQ6ZnVuY3Rpb24oYSl7aWYodGhpcy5vcHRpb25zW2Er IkludGVybmFsIl0pe3RoaXMub3B0aW9uc1thKyJJbnRlcm5hbCJdKHRoaXMpfWlm KHRoaXMub3B0aW9uc1thXSl7dGhpcy5vcHRpb25zW2FdKHRoaXMpfX0saW5zcGVj dDpmdW5jdGlvbigpe3ZhciBhPSRIKCk7Zm9yKHByb3BlcnR5IGluIHRoaXMpe2lm KCFPYmplY3QuaXNGdW5jdGlvbih0aGlzW3Byb3BlcnR5XSkpe2Euc2V0KHByb3Bl cnR5LHRoaXNbcHJvcGVydHldKX19cmV0dXJuIiM8RWZmZWN0OiIrYS5pbnNwZWN0 KCkrIixvcHRpb25zOiIrJEgodGhpcy5vcHRpb25zKS5pbnNwZWN0KCkrIj4ifX0p O0VmZmVjdC5QYXJhbGxlbD1DbGFzcy5jcmVhdGUoRWZmZWN0LkJhc2Use2luaXRp YWxpemU6ZnVuY3Rpb24oYSl7dGhpcy5lZmZlY3RzPWF8fFtdO3RoaXMuc3RhcnQo YXJndW1lbnRzWzFdKX0sdXBkYXRlOmZ1bmN0aW9uKGEpe3RoaXMuZWZmZWN0cy5p bnZva2UoInJlbmRlciIsYSl9LGZpbmlzaDpmdW5jdGlvbihhKXt0aGlzLmVmZmVj dHMuZWFjaChmdW5jdGlvbihiKXtiLnJlbmRlcigxKTtiLmNhbmNlbCgpO2IuZXZl bnQoImJlZm9yZUZpbmlzaCIpO2lmKGIuZmluaXNoKXtiLmZpbmlzaChhKX1iLmV2 ZW50KCJhZnRlckZpbmlzaCIpfSl9fSk7RWZmZWN0LlR3ZWVuPUNsYXNzLmNyZWF0 ZShFZmZlY3QuQmFzZSx7aW5pdGlhbGl6ZTpmdW5jdGlvbihjLGcsZil7Yz1PYmpl Y3QuaXNTdHJpbmcoYyk/JChjKTpjO3ZhciBiPSRBKGFyZ3VtZW50cyksZT1iLmxh c3QoKSxhPWIubGVuZ3RoPT01P2JbM106bnVsbDt0aGlzLm1ldGhvZD1PYmplY3Qu aXNGdW5jdGlvbihlKT9lLmJpbmQoYyk6T2JqZWN0LmlzRnVuY3Rpb24oY1tlXSk/ Y1tlXS5iaW5kKGMpOmZ1bmN0aW9uKGgpe2NbZV09aH07dGhpcy5zdGFydChPYmpl Y3QuZXh0ZW5kKHtmcm9tOmcsdG86Zn0sYXx8e30pKX0sdXBkYXRlOmZ1bmN0aW9u KGEpe3RoaXMubWV0aG9kKGEpfX0pO0VmZmVjdC5FdmVudD1DbGFzcy5jcmVhdGUo RWZmZWN0LkJhc2Use2luaXRpYWxpemU6ZnVuY3Rpb24oKXt0aGlzLnN0YXJ0KE9i amVjdC5leHRlbmQoe2R1cmF0aW9uOjB9LGFyZ3VtZW50c1swXXx8e30pKX0sdXBk YXRlOlByb3RvdHlwZS5lbXB0eUZ1bmN0aW9ufSk7RWZmZWN0Lk9wYWNpdHk9Q2xh c3MuY3JlYXRlKEVmZmVjdC5CYXNlLHtpbml0aWFsaXplOmZ1bmN0aW9uKGIpe3Ro aXMuZWxlbWVudD0kKGIpO2lmKCF0aGlzLmVsZW1lbnQpe3Rocm93IChFZmZlY3Qu X2VsZW1lbnREb2VzTm90RXhpc3RFcnJvcil9aWYoUHJvdG90eXBlLkJyb3dzZXIu SUUmJighdGhpcy5lbGVtZW50LmN1cnJlbnRTdHlsZS5oYXNMYXlvdXQpKXt0aGlz LmVsZW1lbnQuc2V0U3R5bGUoe3pvb206MX0pfXZhciBhPU9iamVjdC5leHRlbmQo e2Zyb206dGhpcy5lbGVtZW50LmdldE9wYWNpdHkoKXx8MCx0bzoxfSxhcmd1bWVu dHNbMV18fHt9KTt0aGlzLnN0YXJ0KGEpfSx1cGRhdGU6ZnVuY3Rpb24oYSl7dGhp cy5lbGVtZW50LnNldE9wYWNpdHkoYSl9fSk7RWZmZWN0Lk1vdmU9Q2xhc3MuY3Jl YXRlKEVmZmVjdC5CYXNlLHtpbml0aWFsaXplOmZ1bmN0aW9uKGIpe3RoaXMuZWxl bWVudD0kKGIpO2lmKCF0aGlzLmVsZW1lbnQpe3Rocm93IChFZmZlY3QuX2VsZW1l bnREb2VzTm90RXhpc3RFcnJvcil9dmFyIGE9T2JqZWN0LmV4dGVuZCh7eDowLHk6 MCxtb2RlOiJyZWxhdGl2ZSJ9LGFyZ3VtZW50c1sxXXx8e30pO3RoaXMuc3RhcnQo YSl9LHNldHVwOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50Lm1ha2VQb3NpdGlvbmVk KCk7dGhpcy5vcmlnaW5hbExlZnQ9cGFyc2VGbG9hdCh0aGlzLmVsZW1lbnQuZ2V0 U3R5bGUoImxlZnQiKXx8IjAiKTt0aGlzLm9yaWdpbmFsVG9wPXBhcnNlRmxvYXQo dGhpcy5lbGVtZW50LmdldFN0eWxlKCJ0b3AiKXx8IjAiKTtpZih0aGlzLm9wdGlv bnMubW9kZT09ImFic29sdXRlIil7dGhpcy5vcHRpb25zLng9dGhpcy5vcHRpb25z LngtdGhpcy5vcmlnaW5hbExlZnQ7dGhpcy5vcHRpb25zLnk9dGhpcy5vcHRpb25z LnktdGhpcy5vcmlnaW5hbFRvcH19LHVwZGF0ZTpmdW5jdGlvbihhKXt0aGlzLmVs ZW1lbnQuc2V0U3R5bGUoe2xlZnQ6KHRoaXMub3B0aW9ucy54KmErdGhpcy5vcmln aW5hbExlZnQpLnJvdW5kKCkrInB4Iix0b3A6KHRoaXMub3B0aW9ucy55KmErdGhp cy5vcmlnaW5hbFRvcCkucm91bmQoKSsicHgifSl9fSk7RWZmZWN0Lk1vdmVCeT1m dW5jdGlvbihiLGEsYyl7cmV0dXJuIG5ldyBFZmZlY3QuTW92ZShiLE9iamVjdC5l eHRlbmQoe3g6Yyx5OmF9LGFyZ3VtZW50c1szXXx8e30pKX07RWZmZWN0LlNjYWxl PUNsYXNzLmNyZWF0ZShFZmZlY3QuQmFzZSx7aW5pdGlhbGl6ZTpmdW5jdGlvbihi LGMpe3RoaXMuZWxlbWVudD0kKGIpO2lmKCF0aGlzLmVsZW1lbnQpe3Rocm93IChF ZmZlY3QuX2VsZW1lbnREb2VzTm90RXhpc3RFcnJvcil9dmFyIGE9T2JqZWN0LmV4 dGVuZCh7c2NhbGVYOnRydWUsc2NhbGVZOnRydWUsc2NhbGVDb250ZW50OnRydWUs c2NhbGVGcm9tQ2VudGVyOmZhbHNlLHNjYWxlTW9kZToiYm94IixzY2FsZUZyb206 MTAwLHNjYWxlVG86Y30sYXJndW1lbnRzWzJdfHx7fSk7dGhpcy5zdGFydChhKX0s c2V0dXA6ZnVuY3Rpb24oKXt0aGlzLnJlc3RvcmVBZnRlckZpbmlzaD10aGlzLm9w dGlvbnMucmVzdG9yZUFmdGVyRmluaXNofHxmYWxzZTt0aGlzLmVsZW1lbnRQb3Np dGlvbmluZz10aGlzLmVsZW1lbnQuZ2V0U3R5bGUoInBvc2l0aW9uIik7dGhpcy5v cmlnaW5hbFN0eWxlPXt9O1sidG9wIiwibGVmdCIsIndpZHRoIiwiaGVpZ2h0Iiwi Zm9udFNpemUiXS5lYWNoKGZ1bmN0aW9uKGIpe3RoaXMub3JpZ2luYWxTdHlsZVti XT10aGlzLmVsZW1lbnQuc3R5bGVbYl19LmJpbmQodGhpcykpO3RoaXMub3JpZ2lu YWxUb3A9dGhpcy5lbGVtZW50Lm9mZnNldFRvcDt0aGlzLm9yaWdpbmFsTGVmdD10 aGlzLmVsZW1lbnQub2Zmc2V0TGVmdDt2YXIgYT10aGlzLmVsZW1lbnQuZ2V0U3R5 bGUoImZvbnQtc2l6ZSIpfHwiMTAwJSI7WyJlbSIsInB4IiwiJSIsInB0Il0uZWFj aChmdW5jdGlvbihiKXtpZihhLmluZGV4T2YoYik+MCl7dGhpcy5mb250U2l6ZT1w YXJzZUZsb2F0KGEpO3RoaXMuZm9udFNpemVUeXBlPWJ9fS5iaW5kKHRoaXMpKTt0 aGlzLmZhY3Rvcj0odGhpcy5vcHRpb25zLnNjYWxlVG8tdGhpcy5vcHRpb25zLnNj YWxlRnJvbSkvMTAwO3RoaXMuZGltcz1udWxsO2lmKHRoaXMub3B0aW9ucy5zY2Fs ZU1vZGU9PSJib3giKXt0aGlzLmRpbXM9W3RoaXMuZWxlbWVudC5vZmZzZXRIZWln aHQsdGhpcy5lbGVtZW50Lm9mZnNldFdpZHRoXX1pZigvXmNvbnRlbnQvLnRlc3Qo dGhpcy5vcHRpb25zLnNjYWxlTW9kZSkpe3RoaXMuZGltcz1bdGhpcy5lbGVtZW50 LnNjcm9sbEhlaWdodCx0aGlzLmVsZW1lbnQuc2Nyb2xsV2lkdGhdfWlmKCF0aGlz LmRpbXMpe3RoaXMuZGltcz1bdGhpcy5vcHRpb25zLnNjYWxlTW9kZS5vcmlnaW5h bEhlaWdodCx0aGlzLm9wdGlvbnMuc2NhbGVNb2RlLm9yaWdpbmFsV2lkdGhdfX0s dXBkYXRlOmZ1bmN0aW9uKGEpe3ZhciBiPSh0aGlzLm9wdGlvbnMuc2NhbGVGcm9t LzEwMCkrKHRoaXMuZmFjdG9yKmEpO2lmKHRoaXMub3B0aW9ucy5zY2FsZUNvbnRl bnQmJnRoaXMuZm9udFNpemUpe3RoaXMuZWxlbWVudC5zZXRTdHlsZSh7Zm9udFNp emU6dGhpcy5mb250U2l6ZSpiK3RoaXMuZm9udFNpemVUeXBlfSl9dGhpcy5zZXRE aW1lbnNpb25zKHRoaXMuZGltc1swXSpiLHRoaXMuZGltc1sxXSpiKX0sZmluaXNo OmZ1bmN0aW9uKGEpe2lmKHRoaXMucmVzdG9yZUFmdGVyRmluaXNoKXt0aGlzLmVs ZW1lbnQuc2V0U3R5bGUodGhpcy5vcmlnaW5hbFN0eWxlKX19LHNldERpbWVuc2lv bnM6ZnVuY3Rpb24oYSxlKXt2YXIgZj17fTtpZih0aGlzLm9wdGlvbnMuc2NhbGVY KXtmLndpZHRoPWUucm91bmQoKSsicHgifWlmKHRoaXMub3B0aW9ucy5zY2FsZVkp e2YuaGVpZ2h0PWEucm91bmQoKSsicHgifWlmKHRoaXMub3B0aW9ucy5zY2FsZUZy b21DZW50ZXIpe3ZhciBjPShhLXRoaXMuZGltc1swXSkvMjt2YXIgYj0oZS10aGlz LmRpbXNbMV0pLzI7aWYodGhpcy5lbGVtZW50UG9zaXRpb25pbmc9PSJhYnNvbHV0 ZSIpe2lmKHRoaXMub3B0aW9ucy5zY2FsZVkpe2YudG9wPXRoaXMub3JpZ2luYWxU b3AtYysicHgifWlmKHRoaXMub3B0aW9ucy5zY2FsZVgpe2YubGVmdD10aGlzLm9y aWdpbmFsTGVmdC1iKyJweCJ9fWVsc2V7aWYodGhpcy5vcHRpb25zLnNjYWxlWSl7 Zi50b3A9LWMrInB4In1pZih0aGlzLm9wdGlvbnMuc2NhbGVYKXtmLmxlZnQ9LWIr InB4In19fXRoaXMuZWxlbWVudC5zZXRTdHlsZShmKX19KTtFZmZlY3QuSGlnaGxp Z2h0PUNsYXNzLmNyZWF0ZShFZmZlY3QuQmFzZSx7aW5pdGlhbGl6ZTpmdW5jdGlv bihiKXt0aGlzLmVsZW1lbnQ9JChiKTtpZighdGhpcy5lbGVtZW50KXt0aHJvdyAo RWZmZWN0Ll9lbGVtZW50RG9lc05vdEV4aXN0RXJyb3IpfXZhciBhPU9iamVjdC5l eHRlbmQoe3N0YXJ0Y29sb3I6IiNmZmZmOTkifSxhcmd1bWVudHNbMV18fHt9KTt0 aGlzLnN0YXJ0KGEpfSxzZXR1cDpmdW5jdGlvbigpe2lmKHRoaXMuZWxlbWVudC5n ZXRTdHlsZSgiZGlzcGxheSIpPT0ibm9uZSIpe3RoaXMuY2FuY2VsKCk7cmV0dXJu fXRoaXMub2xkU3R5bGU9e307aWYoIXRoaXMub3B0aW9ucy5rZWVwQmFja2dyb3Vu ZEltYWdlKXt0aGlzLm9sZFN0eWxlLmJhY2tncm91bmRJbWFnZT10aGlzLmVsZW1l bnQuZ2V0U3R5bGUoImJhY2tncm91bmQtaW1hZ2UiKTt0aGlzLmVsZW1lbnQuc2V0 U3R5bGUoe2JhY2tncm91bmRJbWFnZToibm9uZSJ9KX1pZighdGhpcy5vcHRpb25z LmVuZGNvbG9yKXt0aGlzLm9wdGlvbnMuZW5kY29sb3I9dGhpcy5lbGVtZW50Lmdl dFN0eWxlKCJiYWNrZ3JvdW5kLWNvbG9yIikucGFyc2VDb2xvcigiI2ZmZmZmZiIp fWlmKCF0aGlzLm9wdGlvbnMucmVzdG9yZWNvbG9yKXt0aGlzLm9wdGlvbnMucmVz dG9yZWNvbG9yPXRoaXMuZWxlbWVudC5nZXRTdHlsZSgiYmFja2dyb3VuZC1jb2xv ciIpfXRoaXMuX2Jhc2U9JFIoMCwyKS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIHBh cnNlSW50KHRoaXMub3B0aW9ucy5zdGFydGNvbG9yLnNsaWNlKGEqMisxLGEqMisz KSwxNil9LmJpbmQodGhpcykpO3RoaXMuX2RlbHRhPSRSKDAsMikubWFwKGZ1bmN0 aW9uKGEpe3JldHVybiBwYXJzZUludCh0aGlzLm9wdGlvbnMuZW5kY29sb3Iuc2xp Y2UoYSoyKzEsYSoyKzMpLDE2KS10aGlzLl9iYXNlW2FdfS5iaW5kKHRoaXMpKX0s dXBkYXRlOmZ1bmN0aW9uKGEpe3RoaXMuZWxlbWVudC5zZXRTdHlsZSh7YmFja2dy b3VuZENvbG9yOiRSKDAsMikuaW5qZWN0KCIjIixmdW5jdGlvbihiLGMsZSl7cmV0 dXJuIGIrKCh0aGlzLl9iYXNlW2VdKyh0aGlzLl9kZWx0YVtlXSphKSkucm91bmQo KS50b0NvbG9yUGFydCgpKX0uYmluZCh0aGlzKSl9KX0sZmluaXNoOmZ1bmN0aW9u KCl7dGhpcy5lbGVtZW50LnNldFN0eWxlKE9iamVjdC5leHRlbmQodGhpcy5vbGRT dHlsZSx7YmFja2dyb3VuZENvbG9yOnRoaXMub3B0aW9ucy5yZXN0b3JlY29sb3J9 KSl9fSk7RWZmZWN0LlNjcm9sbFRvPWZ1bmN0aW9uKGMpe3ZhciBiPWFyZ3VtZW50 c1sxXXx8e30sYT1kb2N1bWVudC52aWV3cG9ydC5nZXRTY3JvbGxPZmZzZXRzKCks ZT0kKGMpLmN1bXVsYXRpdmVPZmZzZXQoKTtpZihiLm9mZnNldCl7ZVsxXSs9Yi5v ZmZzZXR9cmV0dXJuIG5ldyBFZmZlY3QuVHdlZW4obnVsbCxhLnRvcCxlWzFdLGIs ZnVuY3Rpb24oZil7c2Nyb2xsVG8oYS5sZWZ0LGYucm91bmQoKSl9KX07RWZmZWN0 LkZhZGU9ZnVuY3Rpb24oYyl7Yz0kKGMpO3ZhciBhPWMuZ2V0SW5saW5lT3BhY2l0 eSgpO3ZhciBiPU9iamVjdC5leHRlbmQoe2Zyb206Yy5nZXRPcGFjaXR5KCl8fDEs dG86MCxhZnRlckZpbmlzaEludGVybmFsOmZ1bmN0aW9uKGUpe2lmKGUub3B0aW9u cy50byE9MCl7cmV0dXJufWUuZWxlbWVudC5oaWRlKCkuc2V0U3R5bGUoe29wYWNp dHk6YX0pfX0sYXJndW1lbnRzWzFdfHx7fSk7cmV0dXJuIG5ldyBFZmZlY3QuT3Bh Y2l0eShjLGIpfTtFZmZlY3QuQXBwZWFyPWZ1bmN0aW9uKGIpe2I9JChiKTt2YXIg YT1PYmplY3QuZXh0ZW5kKHtmcm9tOihiLmdldFN0eWxlKCJkaXNwbGF5Iik9PSJu b25lIj8wOmIuZ2V0T3BhY2l0eSgpfHwwKSx0bzoxLGFmdGVyRmluaXNoSW50ZXJu YWw6ZnVuY3Rpb24oYyl7Yy5lbGVtZW50LmZvcmNlUmVyZW5kZXJpbmcoKX0sYmVm b3JlU2V0dXA6ZnVuY3Rpb24oYyl7Yy5lbGVtZW50LnNldE9wYWNpdHkoYy5vcHRp b25zLmZyb20pLnNob3coKX19LGFyZ3VtZW50c1sxXXx8e30pO3JldHVybiBuZXcg RWZmZWN0Lk9wYWNpdHkoYixhKX07RWZmZWN0LlB1ZmY9ZnVuY3Rpb24oYil7Yj0k KGIpO3ZhciBhPXtvcGFjaXR5OmIuZ2V0SW5saW5lT3BhY2l0eSgpLHBvc2l0aW9u OmIuZ2V0U3R5bGUoInBvc2l0aW9uIiksdG9wOmIuc3R5bGUudG9wLGxlZnQ6Yi5z dHlsZS5sZWZ0LHdpZHRoOmIuc3R5bGUud2lkdGgsaGVpZ2h0OmIuc3R5bGUuaGVp Z2h0fTtyZXR1cm4gbmV3IEVmZmVjdC5QYXJhbGxlbChbbmV3IEVmZmVjdC5TY2Fs ZShiLDIwMCx7c3luYzp0cnVlLHNjYWxlRnJvbUNlbnRlcjp0cnVlLHNjYWxlQ29u dGVudDp0cnVlLHJlc3RvcmVBZnRlckZpbmlzaDp0cnVlfSksbmV3IEVmZmVjdC5P cGFjaXR5KGIse3N5bmM6dHJ1ZSx0bzowfSldLE9iamVjdC5leHRlbmQoe2R1cmF0 aW9uOjEsYmVmb3JlU2V0dXBJbnRlcm5hbDpmdW5jdGlvbihjKXtQb3NpdGlvbi5h YnNvbHV0aXplKGMuZWZmZWN0c1swXS5lbGVtZW50KX0sYWZ0ZXJGaW5pc2hJbnRl cm5hbDpmdW5jdGlvbihjKXtjLmVmZmVjdHNbMF0uZWxlbWVudC5oaWRlKCkuc2V0 U3R5bGUoYSl9fSxhcmd1bWVudHNbMV18fHt9KSl9O0VmZmVjdC5CbGluZFVwPWZ1 bmN0aW9uKGEpe2E9JChhKTthLm1ha2VDbGlwcGluZygpO3JldHVybiBuZXcgRWZm ZWN0LlNjYWxlKGEsMCxPYmplY3QuZXh0ZW5kKHtzY2FsZUNvbnRlbnQ6ZmFsc2Us c2NhbGVYOmZhbHNlLHJlc3RvcmVBZnRlckZpbmlzaDp0cnVlLGFmdGVyRmluaXNo SW50ZXJuYWw6ZnVuY3Rpb24oYil7Yi5lbGVtZW50LmhpZGUoKS51bmRvQ2xpcHBp bmcoKX19LGFyZ3VtZW50c1sxXXx8e30pKX07RWZmZWN0LkJsaW5kRG93bj1mdW5j dGlvbihiKXtiPSQoYik7dmFyIGE9Yi5nZXREaW1lbnNpb25zKCk7cmV0dXJuIG5l dyBFZmZlY3QuU2NhbGUoYiwxMDAsT2JqZWN0LmV4dGVuZCh7c2NhbGVDb250ZW50 OmZhbHNlLHNjYWxlWDpmYWxzZSxzY2FsZUZyb206MCxzY2FsZU1vZGU6e29yaWdp bmFsSGVpZ2h0OmEuaGVpZ2h0LG9yaWdpbmFsV2lkdGg6YS53aWR0aH0scmVzdG9y ZUFmdGVyRmluaXNoOnRydWUsYWZ0ZXJTZXR1cDpmdW5jdGlvbihjKXtjLmVsZW1l bnQubWFrZUNsaXBwaW5nKCkuc2V0U3R5bGUoe2hlaWdodDoiMHB4In0pLnNob3co KX0sYWZ0ZXJGaW5pc2hJbnRlcm5hbDpmdW5jdGlvbihjKXtjLmVsZW1lbnQudW5k b0NsaXBwaW5nKCl9fSxhcmd1bWVudHNbMV18fHt9KSl9O0VmZmVjdC5Td2l0Y2hP ZmY9ZnVuY3Rpb24oYil7Yj0kKGIpO3ZhciBhPWIuZ2V0SW5saW5lT3BhY2l0eSgp O3JldHVybiBuZXcgRWZmZWN0LkFwcGVhcihiLE9iamVjdC5leHRlbmQoe2R1cmF0 aW9uOjAuNCxmcm9tOjAsdHJhbnNpdGlvbjpFZmZlY3QuVHJhbnNpdGlvbnMuZmxp Y2tlcixhZnRlckZpbmlzaEludGVybmFsOmZ1bmN0aW9uKGMpe25ldyBFZmZlY3Qu U2NhbGUoYy5lbGVtZW50LDEse2R1cmF0aW9uOjAuMyxzY2FsZUZyb21DZW50ZXI6 dHJ1ZSxzY2FsZVg6ZmFsc2Usc2NhbGVDb250ZW50OmZhbHNlLHJlc3RvcmVBZnRl ckZpbmlzaDp0cnVlLGJlZm9yZVNldHVwOmZ1bmN0aW9uKGUpe2UuZWxlbWVudC5t YWtlUG9zaXRpb25lZCgpLm1ha2VDbGlwcGluZygpfSxhZnRlckZpbmlzaEludGVy bmFsOmZ1bmN0aW9uKGUpe2UuZWxlbWVudC5oaWRlKCkudW5kb0NsaXBwaW5nKCku dW5kb1Bvc2l0aW9uZWQoKS5zZXRTdHlsZSh7b3BhY2l0eTphfSl9fSl9fSxhcmd1 bWVudHNbMV18fHt9KSl9O0VmZmVjdC5Ecm9wT3V0PWZ1bmN0aW9uKGIpe2I9JChi KTt2YXIgYT17dG9wOmIuZ2V0U3R5bGUoInRvcCIpLGxlZnQ6Yi5nZXRTdHlsZSgi bGVmdCIpLG9wYWNpdHk6Yi5nZXRJbmxpbmVPcGFjaXR5KCl9O3JldHVybiBuZXcg RWZmZWN0LlBhcmFsbGVsKFtuZXcgRWZmZWN0Lk1vdmUoYix7eDowLHk6MTAwLHN5 bmM6dHJ1ZX0pLG5ldyBFZmZlY3QuT3BhY2l0eShiLHtzeW5jOnRydWUsdG86MH0p XSxPYmplY3QuZXh0ZW5kKHtkdXJhdGlvbjowLjUsYmVmb3JlU2V0dXA6ZnVuY3Rp b24oYyl7Yy5lZmZlY3RzWzBdLmVsZW1lbnQubWFrZVBvc2l0aW9uZWQoKX0sYWZ0 ZXJGaW5pc2hJbnRlcm5hbDpmdW5jdGlvbihjKXtjLmVmZmVjdHNbMF0uZWxlbWVu dC5oaWRlKCkudW5kb1Bvc2l0aW9uZWQoKS5zZXRTdHlsZShhKX19LGFyZ3VtZW50 c1sxXXx8e30pKX07RWZmZWN0LlNoYWtlPWZ1bmN0aW9uKGUpe2U9JChlKTt2YXIg Yj1PYmplY3QuZXh0ZW5kKHtkaXN0YW5jZToyMCxkdXJhdGlvbjowLjV9LGFyZ3Vt ZW50c1sxXXx8e30pO3ZhciBmPXBhcnNlRmxvYXQoYi5kaXN0YW5jZSk7dmFyIGM9 cGFyc2VGbG9hdChiLmR1cmF0aW9uKS8xMDt2YXIgYT17dG9wOmUuZ2V0U3R5bGUo InRvcCIpLGxlZnQ6ZS5nZXRTdHlsZSgibGVmdCIpfTtyZXR1cm4gbmV3IEVmZmVj dC5Nb3ZlKGUse3g6Zix5OjAsZHVyYXRpb246YyxhZnRlckZpbmlzaEludGVybmFs OmZ1bmN0aW9uKGcpe25ldyBFZmZlY3QuTW92ZShnLmVsZW1lbnQse3g6LWYqMix5 OjAsZHVyYXRpb246YyoyLGFmdGVyRmluaXNoSW50ZXJuYWw6ZnVuY3Rpb24oaCl7 bmV3IEVmZmVjdC5Nb3ZlKGguZWxlbWVudCx7eDpmKjIseTowLGR1cmF0aW9uOmMq MixhZnRlckZpbmlzaEludGVybmFsOmZ1bmN0aW9uKGope25ldyBFZmZlY3QuTW92 ZShqLmVsZW1lbnQse3g6LWYqMix5OjAsZHVyYXRpb246YyoyLGFmdGVyRmluaXNo SW50ZXJuYWw6ZnVuY3Rpb24oayl7bmV3IEVmZmVjdC5Nb3ZlKGsuZWxlbWVudCx7 eDpmKjIseTowLGR1cmF0aW9uOmMqMixhZnRlckZpbmlzaEludGVybmFsOmZ1bmN0 aW9uKGwpe25ldyBFZmZlY3QuTW92ZShsLmVsZW1lbnQse3g6LWYseTowLGR1cmF0 aW9uOmMsYWZ0ZXJGaW5pc2hJbnRlcm5hbDpmdW5jdGlvbihtKXttLmVsZW1lbnQu dW5kb1Bvc2l0aW9uZWQoKS5zZXRTdHlsZShhKX19KX19KX19KX19KX19KX19KX07 RWZmZWN0LlNsaWRlRG93bj1mdW5jdGlvbihjKXtjPSQoYykuY2xlYW5XaGl0ZXNw YWNlKCk7dmFyIGE9Yy5kb3duKCkuZ2V0U3R5bGUoImJvdHRvbSIpO3ZhciBiPWMu Z2V0RGltZW5zaW9ucygpO3JldHVybiBuZXcgRWZmZWN0LlNjYWxlKGMsMTAwLE9i amVjdC5leHRlbmQoe3NjYWxlQ29udGVudDpmYWxzZSxzY2FsZVg6ZmFsc2Usc2Nh bGVGcm9tOndpbmRvdy5vcGVyYT8wOjEsc2NhbGVNb2RlOntvcmlnaW5hbEhlaWdo dDpiLmhlaWdodCxvcmlnaW5hbFdpZHRoOmIud2lkdGh9LHJlc3RvcmVBZnRlckZp bmlzaDp0cnVlLGFmdGVyU2V0dXA6ZnVuY3Rpb24oZSl7ZS5lbGVtZW50Lm1ha2VQ b3NpdGlvbmVkKCk7ZS5lbGVtZW50LmRvd24oKS5tYWtlUG9zaXRpb25lZCgpO2lm KHdpbmRvdy5vcGVyYSl7ZS5lbGVtZW50LnNldFN0eWxlKHt0b3A6IiJ9KX1lLmVs ZW1lbnQubWFrZUNsaXBwaW5nKCkuc2V0U3R5bGUoe2hlaWdodDoiMHB4In0pLnNo b3coKX0sYWZ0ZXJVcGRhdGVJbnRlcm5hbDpmdW5jdGlvbihlKXtlLmVsZW1lbnQu ZG93bigpLnNldFN0eWxlKHtib3R0b206KGUuZGltc1swXS1lLmVsZW1lbnQuY2xp ZW50SGVpZ2h0KSsicHgifSl9LGFmdGVyRmluaXNoSW50ZXJuYWw6ZnVuY3Rpb24o ZSl7ZS5lbGVtZW50LnVuZG9DbGlwcGluZygpLnVuZG9Qb3NpdGlvbmVkKCk7ZS5l bGVtZW50LmRvd24oKS51bmRvUG9zaXRpb25lZCgpLnNldFN0eWxlKHtib3R0b206 YX0pfX0sYXJndW1lbnRzWzFdfHx7fSkpfTtFZmZlY3QuU2xpZGVVcD1mdW5jdGlv bihjKXtjPSQoYykuY2xlYW5XaGl0ZXNwYWNlKCk7dmFyIGE9Yy5kb3duKCkuZ2V0 U3R5bGUoImJvdHRvbSIpO3ZhciBiPWMuZ2V0RGltZW5zaW9ucygpO3JldHVybiBu ZXcgRWZmZWN0LlNjYWxlKGMsd2luZG93Lm9wZXJhPzA6MSxPYmplY3QuZXh0ZW5k KHtzY2FsZUNvbnRlbnQ6ZmFsc2Usc2NhbGVYOmZhbHNlLHNjYWxlTW9kZToiYm94 IixzY2FsZUZyb206MTAwLHNjYWxlTW9kZTp7b3JpZ2luYWxIZWlnaHQ6Yi5oZWln aHQsb3JpZ2luYWxXaWR0aDpiLndpZHRofSxyZXN0b3JlQWZ0ZXJGaW5pc2g6dHJ1 ZSxhZnRlclNldHVwOmZ1bmN0aW9uKGUpe2UuZWxlbWVudC5tYWtlUG9zaXRpb25l ZCgpO2UuZWxlbWVudC5kb3duKCkubWFrZVBvc2l0aW9uZWQoKTtpZih3aW5kb3cu b3BlcmEpe2UuZWxlbWVudC5zZXRTdHlsZSh7dG9wOiIifSl9ZS5lbGVtZW50Lm1h a2VDbGlwcGluZygpLnNob3coKX0sYWZ0ZXJVcGRhdGVJbnRlcm5hbDpmdW5jdGlv bihlKXtlLmVsZW1lbnQuZG93bigpLnNldFN0eWxlKHtib3R0b206KGUuZGltc1sw XS1lLmVsZW1lbnQuY2xpZW50SGVpZ2h0KSsicHgifSl9LGFmdGVyRmluaXNoSW50 ZXJuYWw6ZnVuY3Rpb24oZSl7ZS5lbGVtZW50LmhpZGUoKS51bmRvQ2xpcHBpbmco KS51bmRvUG9zaXRpb25lZCgpO2UuZWxlbWVudC5kb3duKCkudW5kb1Bvc2l0aW9u ZWQoKS5zZXRTdHlsZSh7Ym90dG9tOmF9KX19LGFyZ3VtZW50c1sxXXx8e30pKX07 RWZmZWN0LlNxdWlzaD1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IEVmZmVjdC5TY2Fs ZShhLHdpbmRvdy5vcGVyYT8xOjAse3Jlc3RvcmVBZnRlckZpbmlzaDp0cnVlLGJl Zm9yZVNldHVwOmZ1bmN0aW9uKGIpe2IuZWxlbWVudC5tYWtlQ2xpcHBpbmcoKX0s YWZ0ZXJGaW5pc2hJbnRlcm5hbDpmdW5jdGlvbihiKXtiLmVsZW1lbnQuaGlkZSgp LnVuZG9DbGlwcGluZygpfX0pfTtFZmZlY3QuR3Jvdz1mdW5jdGlvbihjKXtjPSQo Yyk7dmFyIGI9T2JqZWN0LmV4dGVuZCh7ZGlyZWN0aW9uOiJjZW50ZXIiLG1vdmVU cmFuc2l0aW9uOkVmZmVjdC5UcmFuc2l0aW9ucy5zaW5vaWRhbCxzY2FsZVRyYW5z aXRpb246RWZmZWN0LlRyYW5zaXRpb25zLnNpbm9pZGFsLG9wYWNpdHlUcmFuc2l0 aW9uOkVmZmVjdC5UcmFuc2l0aW9ucy5mdWxsfSxhcmd1bWVudHNbMV18fHt9KTt2 YXIgYT17dG9wOmMuc3R5bGUudG9wLGxlZnQ6Yy5zdHlsZS5sZWZ0LGhlaWdodDpj LnN0eWxlLmhlaWdodCx3aWR0aDpjLnN0eWxlLndpZHRoLG9wYWNpdHk6Yy5nZXRJ bmxpbmVPcGFjaXR5KCl9O3ZhciBoPWMuZ2V0RGltZW5zaW9ucygpO3ZhciBqLGc7 dmFyIGYsZTtzd2l0Y2goYi5kaXJlY3Rpb24pe2Nhc2UidG9wLWxlZnQiOmo9Zz1m PWU9MDticmVhaztjYXNlInRvcC1yaWdodCI6aj1oLndpZHRoO2c9ZT0wO2Y9LWgu d2lkdGg7YnJlYWs7Y2FzZSJib3R0b20tbGVmdCI6aj1mPTA7Zz1oLmhlaWdodDtl PS1oLmhlaWdodDticmVhaztjYXNlImJvdHRvbS1yaWdodCI6aj1oLndpZHRoO2c9 aC5oZWlnaHQ7Zj0taC53aWR0aDtlPS1oLmhlaWdodDticmVhaztjYXNlImNlbnRl ciI6aj1oLndpZHRoLzI7Zz1oLmhlaWdodC8yO2Y9LWgud2lkdGgvMjtlPS1oLmhl aWdodC8yO2JyZWFrfXJldHVybiBuZXcgRWZmZWN0Lk1vdmUoYyx7eDpqLHk6Zyxk dXJhdGlvbjowLjAxLGJlZm9yZVNldHVwOmZ1bmN0aW9uKGspe2suZWxlbWVudC5o aWRlKCkubWFrZUNsaXBwaW5nKCkubWFrZVBvc2l0aW9uZWQoKX0sYWZ0ZXJGaW5p c2hJbnRlcm5hbDpmdW5jdGlvbihrKXtuZXcgRWZmZWN0LlBhcmFsbGVsKFtuZXcg RWZmZWN0Lk9wYWNpdHkoay5lbGVtZW50LHtzeW5jOnRydWUsdG86MSxmcm9tOjAs dHJhbnNpdGlvbjpiLm9wYWNpdHlUcmFuc2l0aW9ufSksbmV3IEVmZmVjdC5Nb3Zl KGsuZWxlbWVudCx7eDpmLHk6ZSxzeW5jOnRydWUsdHJhbnNpdGlvbjpiLm1vdmVU cmFuc2l0aW9ufSksbmV3IEVmZmVjdC5TY2FsZShrLmVsZW1lbnQsMTAwLHtzY2Fs ZU1vZGU6e29yaWdpbmFsSGVpZ2h0OmguaGVpZ2h0LG9yaWdpbmFsV2lkdGg6aC53 aWR0aH0sc3luYzp0cnVlLHNjYWxlRnJvbTp3aW5kb3cub3BlcmE/MTowLHRyYW5z aXRpb246Yi5zY2FsZVRyYW5zaXRpb24scmVzdG9yZUFmdGVyRmluaXNoOnRydWV9 KV0sT2JqZWN0LmV4dGVuZCh7YmVmb3JlU2V0dXA6ZnVuY3Rpb24obCl7bC5lZmZl Y3RzWzBdLmVsZW1lbnQuc2V0U3R5bGUoe2hlaWdodDoiMHB4In0pLnNob3coKX0s YWZ0ZXJGaW5pc2hJbnRlcm5hbDpmdW5jdGlvbihsKXtsLmVmZmVjdHNbMF0uZWxl bWVudC51bmRvQ2xpcHBpbmcoKS51bmRvUG9zaXRpb25lZCgpLnNldFN0eWxlKGEp fX0sYikpfX0pfTtFZmZlY3QuU2hyaW5rPWZ1bmN0aW9uKGMpe2M9JChjKTt2YXIg Yj1PYmplY3QuZXh0ZW5kKHtkaXJlY3Rpb246ImNlbnRlciIsbW92ZVRyYW5zaXRp b246RWZmZWN0LlRyYW5zaXRpb25zLnNpbm9pZGFsLHNjYWxlVHJhbnNpdGlvbjpF ZmZlY3QuVHJhbnNpdGlvbnMuc2lub2lkYWwsb3BhY2l0eVRyYW5zaXRpb246RWZm ZWN0LlRyYW5zaXRpb25zLm5vbmV9LGFyZ3VtZW50c1sxXXx8e30pO3ZhciBhPXt0 b3A6Yy5zdHlsZS50b3AsbGVmdDpjLnN0eWxlLmxlZnQsaGVpZ2h0OmMuc3R5bGUu aGVpZ2h0LHdpZHRoOmMuc3R5bGUud2lkdGgsb3BhY2l0eTpjLmdldElubGluZU9w YWNpdHkoKX07dmFyIGc9Yy5nZXREaW1lbnNpb25zKCk7dmFyIGYsZTtzd2l0Y2go Yi5kaXJlY3Rpb24pe2Nhc2UidG9wLWxlZnQiOmY9ZT0wO2JyZWFrO2Nhc2UidG9w LXJpZ2h0IjpmPWcud2lkdGg7ZT0wO2JyZWFrO2Nhc2UiYm90dG9tLWxlZnQiOmY9 MDtlPWcuaGVpZ2h0O2JyZWFrO2Nhc2UiYm90dG9tLXJpZ2h0IjpmPWcud2lkdGg7 ZT1nLmhlaWdodDticmVhaztjYXNlImNlbnRlciI6Zj1nLndpZHRoLzI7ZT1nLmhl aWdodC8yO2JyZWFrfXJldHVybiBuZXcgRWZmZWN0LlBhcmFsbGVsKFtuZXcgRWZm ZWN0Lk9wYWNpdHkoYyx7c3luYzp0cnVlLHRvOjAsZnJvbToxLHRyYW5zaXRpb246 Yi5vcGFjaXR5VHJhbnNpdGlvbn0pLG5ldyBFZmZlY3QuU2NhbGUoYyx3aW5kb3cu b3BlcmE/MTowLHtzeW5jOnRydWUsdHJhbnNpdGlvbjpiLnNjYWxlVHJhbnNpdGlv bixyZXN0b3JlQWZ0ZXJGaW5pc2g6dHJ1ZX0pLG5ldyBFZmZlY3QuTW92ZShjLHt4 OmYseTplLHN5bmM6dHJ1ZSx0cmFuc2l0aW9uOmIubW92ZVRyYW5zaXRpb259KV0s T2JqZWN0LmV4dGVuZCh7YmVmb3JlU3RhcnRJbnRlcm5hbDpmdW5jdGlvbihoKXto LmVmZmVjdHNbMF0uZWxlbWVudC5tYWtlUG9zaXRpb25lZCgpLm1ha2VDbGlwcGlu ZygpfSxhZnRlckZpbmlzaEludGVybmFsOmZ1bmN0aW9uKGgpe2guZWZmZWN0c1sw XS5lbGVtZW50LmhpZGUoKS51bmRvQ2xpcHBpbmcoKS51bmRvUG9zaXRpb25lZCgp LnNldFN0eWxlKGEpfX0sYikpfTtFZmZlY3QuUHVsc2F0ZT1mdW5jdGlvbihjKXtj PSQoYyk7dmFyIGI9YXJndW1lbnRzWzFdfHx7fSxhPWMuZ2V0SW5saW5lT3BhY2l0 eSgpLGY9Yi50cmFuc2l0aW9ufHxFZmZlY3QuVHJhbnNpdGlvbnMubGluZWFyLGU9 ZnVuY3Rpb24oZyl7cmV0dXJuIDEtZigoLU1hdGguY29zKChnKihiLnB1bHNlc3x8 NSkqMikqTWF0aC5QSSkvMikrMC41KX07cmV0dXJuIG5ldyBFZmZlY3QuT3BhY2l0 eShjLE9iamVjdC5leHRlbmQoT2JqZWN0LmV4dGVuZCh7ZHVyYXRpb246Mixmcm9t OjAsYWZ0ZXJGaW5pc2hJbnRlcm5hbDpmdW5jdGlvbihnKXtnLmVsZW1lbnQuc2V0 U3R5bGUoe29wYWNpdHk6YX0pfX0sYikse3RyYW5zaXRpb246ZX0pKX07RWZmZWN0 LkZvbGQ9ZnVuY3Rpb24oYil7Yj0kKGIpO3ZhciBhPXt0b3A6Yi5zdHlsZS50b3As bGVmdDpiLnN0eWxlLmxlZnQsd2lkdGg6Yi5zdHlsZS53aWR0aCxoZWlnaHQ6Yi5z dHlsZS5oZWlnaHR9O2IubWFrZUNsaXBwaW5nKCk7cmV0dXJuIG5ldyBFZmZlY3Qu U2NhbGUoYiw1LE9iamVjdC5leHRlbmQoe3NjYWxlQ29udGVudDpmYWxzZSxzY2Fs ZVg6ZmFsc2UsYWZ0ZXJGaW5pc2hJbnRlcm5hbDpmdW5jdGlvbihjKXtuZXcgRWZm ZWN0LlNjYWxlKGIsMSx7c2NhbGVDb250ZW50OmZhbHNlLHNjYWxlWTpmYWxzZSxh ZnRlckZpbmlzaEludGVybmFsOmZ1bmN0aW9uKGUpe2UuZWxlbWVudC5oaWRlKCku dW5kb0NsaXBwaW5nKCkuc2V0U3R5bGUoYSl9fSl9fSxhcmd1bWVudHNbMV18fHt9 KSl9O0VmZmVjdC5Nb3JwaD1DbGFzcy5jcmVhdGUoRWZmZWN0LkJhc2Use2luaXRp YWxpemU6ZnVuY3Rpb24oYyl7dGhpcy5lbGVtZW50PSQoYyk7aWYoIXRoaXMuZWxl bWVudCl7dGhyb3cgKEVmZmVjdC5fZWxlbWVudERvZXNOb3RFeGlzdEVycm9yKX12 YXIgYT1PYmplY3QuZXh0ZW5kKHtzdHlsZTp7fX0sYXJndW1lbnRzWzFdfHx7fSk7 aWYoIU9iamVjdC5pc1N0cmluZyhhLnN0eWxlKSl7dGhpcy5zdHlsZT0kSChhLnN0 eWxlKX1lbHNle2lmKGEuc3R5bGUuaW5jbHVkZSgiOiIpKXt0aGlzLnN0eWxlPWEu c3R5bGUucGFyc2VTdHlsZSgpfWVsc2V7dGhpcy5lbGVtZW50LmFkZENsYXNzTmFt ZShhLnN0eWxlKTt0aGlzLnN0eWxlPSRIKHRoaXMuZWxlbWVudC5nZXRTdHlsZXMo KSk7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzTmFtZShhLnN0eWxlKTt2YXIgYj10 aGlzLmVsZW1lbnQuZ2V0U3R5bGVzKCk7dGhpcy5zdHlsZT10aGlzLnN0eWxlLnJl amVjdChmdW5jdGlvbihlKXtyZXR1cm4gZS52YWx1ZT09YltlLmtleV19KTthLmFm dGVyRmluaXNoSW50ZXJuYWw9ZnVuY3Rpb24oZSl7ZS5lbGVtZW50LmFkZENsYXNz TmFtZShlLm9wdGlvbnMuc3R5bGUpO2UudHJhbnNmb3Jtcy5lYWNoKGZ1bmN0aW9u KGYpe2UuZWxlbWVudC5zdHlsZVtmLnN0eWxlXT0iIn0pfX19dGhpcy5zdGFydChh KX0sc2V0dXA6ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIpe2lmKCFifHxbInJnYmEo MCwgMCwgMCwgMCkiLCJ0cmFuc3BhcmVudCJdLmluY2x1ZGUoYikpe2I9IiNmZmZm ZmYifWI9Yi5wYXJzZUNvbG9yKCk7cmV0dXJuICRSKDAsMikubWFwKGZ1bmN0aW9u KGMpe3JldHVybiBwYXJzZUludChiLnNsaWNlKGMqMisxLGMqMiszKSwxNil9KX10 aGlzLnRyYW5zZm9ybXM9dGhpcy5zdHlsZS5tYXAoZnVuY3Rpb24oaCl7dmFyIGc9 aFswXSxmPWhbMV0sZT1udWxsO2lmKGYucGFyc2VDb2xvcigiI3p6enp6eiIpIT0i I3p6enp6eiIpe2Y9Zi5wYXJzZUNvbG9yKCk7ZT0iY29sb3IifWVsc2V7aWYoZz09 Im9wYWNpdHkiKXtmPXBhcnNlRmxvYXQoZik7aWYoUHJvdG90eXBlLkJyb3dzZXIu SUUmJighdGhpcy5lbGVtZW50LmN1cnJlbnRTdHlsZS5oYXNMYXlvdXQpKXt0aGlz LmVsZW1lbnQuc2V0U3R5bGUoe3pvb206MX0pfX1lbHNle2lmKEVsZW1lbnQuQ1NT X0xFTkdUSC50ZXN0KGYpKXt2YXIgYz1mLm1hdGNoKC9eKFtcK1wtXT9bMC05XC5d KykoLiopJC8pO2Y9cGFyc2VGbG9hdChjWzFdKTtlPShjLmxlbmd0aD09Myk/Y1sy XTpudWxsfX19dmFyIGI9dGhpcy5lbGVtZW50LmdldFN0eWxlKGcpO3JldHVybntz dHlsZTpnLmNhbWVsaXplKCksb3JpZ2luYWxWYWx1ZTplPT0iY29sb3IiP2EoYik6 cGFyc2VGbG9hdChifHwwKSx0YXJnZXRWYWx1ZTplPT0iY29sb3IiP2EoZik6Zix1 bml0OmV9fS5iaW5kKHRoaXMpKS5yZWplY3QoZnVuY3Rpb24oYil7cmV0dXJuKChi Lm9yaWdpbmFsVmFsdWU9PWIudGFyZ2V0VmFsdWUpfHwoYi51bml0IT0iY29sb3Ii JiYoaXNOYU4oYi5vcmlnaW5hbFZhbHVlKXx8aXNOYU4oYi50YXJnZXRWYWx1ZSkp KSl9KX0sdXBkYXRlOmZ1bmN0aW9uKGEpe3ZhciBlPXt9LGIsYz10aGlzLnRyYW5z Zm9ybXMubGVuZ3RoO3doaWxlKGMtLSl7ZVsoYj10aGlzLnRyYW5zZm9ybXNbY10p LnN0eWxlXT1iLnVuaXQ9PSJjb2xvciI/IiMiKyhNYXRoLnJvdW5kKGIub3JpZ2lu YWxWYWx1ZVswXSsoYi50YXJnZXRWYWx1ZVswXS1iLm9yaWdpbmFsVmFsdWVbMF0p KmEpKS50b0NvbG9yUGFydCgpKyhNYXRoLnJvdW5kKGIub3JpZ2luYWxWYWx1ZVsx XSsoYi50YXJnZXRWYWx1ZVsxXS1iLm9yaWdpbmFsVmFsdWVbMV0pKmEpKS50b0Nv bG9yUGFydCgpKyhNYXRoLnJvdW5kKGIub3JpZ2luYWxWYWx1ZVsyXSsoYi50YXJn ZXRWYWx1ZVsyXS1iLm9yaWdpbmFsVmFsdWVbMl0pKmEpKS50b0NvbG9yUGFydCgp OihiLm9yaWdpbmFsVmFsdWUrKGIudGFyZ2V0VmFsdWUtYi5vcmlnaW5hbFZhbHVl KSphKS50b0ZpeGVkKDMpKyhiLnVuaXQ9PT1udWxsPyIiOmIudW5pdCl9dGhpcy5l bGVtZW50LnNldFN0eWxlKGUsdHJ1ZSl9fSk7RWZmZWN0LlRyYW5zZm9ybT1DbGFz cy5jcmVhdGUoe2luaXRpYWxpemU6ZnVuY3Rpb24oYSl7dGhpcy50cmFja3M9W107 dGhpcy5vcHRpb25zPWFyZ3VtZW50c1sxXXx8e307dGhpcy5hZGRUcmFja3MoYSl9 LGFkZFRyYWNrczpmdW5jdGlvbihhKXthLmVhY2goZnVuY3Rpb24oYil7Yj0kSChi KTt2YXIgYz1iLnZhbHVlcygpLmZpcnN0KCk7dGhpcy50cmFja3MucHVzaCgkSCh7 aWRzOmIua2V5cygpLmZpcnN0KCksZWZmZWN0OkVmZmVjdC5Nb3JwaCxvcHRpb25z OntzdHlsZTpjfX0pKX0uYmluZCh0aGlzKSk7cmV0dXJuIHRoaXN9LHBsYXk6ZnVu Y3Rpb24oKXtyZXR1cm4gbmV3IEVmZmVjdC5QYXJhbGxlbCh0aGlzLnRyYWNrcy5t YXAoZnVuY3Rpb24oYSl7dmFyIGU9YS5nZXQoImlkcyIpLGM9YS5nZXQoImVmZmVj dCIpLGI9YS5nZXQoIm9wdGlvbnMiKTt2YXIgZj1bJChlKXx8JCQoZSldLmZsYXR0 ZW4oKTtyZXR1cm4gZi5tYXAoZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyBjKGcsT2Jq ZWN0LmV4dGVuZCh7c3luYzp0cnVlfSxiKSl9KX0pLmZsYXR0ZW4oKSx0aGlzLm9w dGlvbnMpfX0pO0VsZW1lbnQuQ1NTX1BST1BFUlRJRVM9JHcoImJhY2tncm91bmRD b2xvciBiYWNrZ3JvdW5kUG9zaXRpb24gYm9yZGVyQm90dG9tQ29sb3IgYm9yZGVy Qm90dG9tU3R5bGUgYm9yZGVyQm90dG9tV2lkdGggYm9yZGVyTGVmdENvbG9yIGJv cmRlckxlZnRTdHlsZSBib3JkZXJMZWZ0V2lkdGggYm9yZGVyUmlnaHRDb2xvciBi b3JkZXJSaWdodFN0eWxlIGJvcmRlclJpZ2h0V2lkdGggYm9yZGVyU3BhY2luZyBi b3JkZXJUb3BDb2xvciBib3JkZXJUb3BTdHlsZSBib3JkZXJUb3BXaWR0aCBib3R0 b20gY2xpcCBjb2xvciBmb250U2l6ZSBmb250V2VpZ2h0IGhlaWdodCBsZWZ0IGxl dHRlclNwYWNpbmcgbGluZUhlaWdodCBtYXJnaW5Cb3R0b20gbWFyZ2luTGVmdCBt YXJnaW5SaWdodCBtYXJnaW5Ub3AgbWFya2VyT2Zmc2V0IG1heEhlaWdodCBtYXhX aWR0aCBtaW5IZWlnaHQgbWluV2lkdGggb3BhY2l0eSBvdXRsaW5lQ29sb3Igb3V0 bGluZU9mZnNldCBvdXRsaW5lV2lkdGggcGFkZGluZ0JvdHRvbSBwYWRkaW5nTGVm dCBwYWRkaW5nUmlnaHQgcGFkZGluZ1RvcCByaWdodCB0ZXh0SW5kZW50IHRvcCB3 aWR0aCB3b3JkU3BhY2luZyB6SW5kZXgiKTtFbGVtZW50LkNTU19MRU5HVEg9L14o KFtcK1wtXT9bMC05XC5dKykoZW18ZXh8cHh8aW58Y218bW18cHR8cGN8XCUpKXww JC87U3RyaW5nLl8kMT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtTdHJp bmcucHJvdG90eXBlLnBhcnNlU3R5bGU9ZnVuY3Rpb24oKXt2YXIgYixhPSRIKCk7 aWYoUHJvdG90eXBlLkJyb3dzZXIuV2ViS2l0KXtiPW5ldyBFbGVtZW50KCJkaXYi LHtzdHlsZTp0aGlzfSkuc3R5bGV9ZWxzZXtTdHJpbmcuXyQxLmlubmVySFRNTD0n PGRpdiBzdHlsZT0iJyt0aGlzKyciPjwvZGl2Pic7Yj1TdHJpbmcuXyQxLmNoaWxk Tm9kZXNbMF0uc3R5bGV9RWxlbWVudC5DU1NfUFJPUEVSVElFUy5lYWNoKGZ1bmN0 aW9uKGMpe2lmKGJbY10pe2Euc2V0KGMsYltjXSl9fSk7aWYoUHJvdG90eXBlLkJy b3dzZXIuSUUmJnRoaXMuaW5jbHVkZSgib3BhY2l0eSIpKXthLnNldCgib3BhY2l0 eSIsdGhpcy5tYXRjaCgvb3BhY2l0eTpccyooKD86MHwxKT8oPzpcLlxkKik/KS8p WzFdKX1yZXR1cm4gYX07aWYoZG9jdW1lbnQuZGVmYXVsdFZpZXcmJmRvY3VtZW50 LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUpe0VsZW1lbnQuZ2V0U3R5bGVz PWZ1bmN0aW9uKGIpe3ZhciBhPWRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1 dGVkU3R5bGUoJChiKSxudWxsKTtyZXR1cm4gRWxlbWVudC5DU1NfUFJPUEVSVElF Uy5pbmplY3Qoe30sZnVuY3Rpb24oYyxlKXtjW2VdPWFbZV07cmV0dXJuIGN9KX19 ZWxzZXtFbGVtZW50LmdldFN0eWxlcz1mdW5jdGlvbihiKXtiPSQoYik7dmFyIGE9 Yi5jdXJyZW50U3R5bGUsYztjPUVsZW1lbnQuQ1NTX1BST1BFUlRJRVMuaW5qZWN0 KHt9LGZ1bmN0aW9uKGUsZil7ZVtmXT1hW2ZdO3JldHVybiBlfSk7aWYoIWMub3Bh Y2l0eSl7Yy5vcGFjaXR5PWIuZ2V0T3BhY2l0eSgpfXJldHVybiBjfX1FZmZlY3Qu TWV0aG9kcz17bW9ycGg6ZnVuY3Rpb24oYSxiKXthPSQoYSk7bmV3IEVmZmVjdC5N b3JwaChhLE9iamVjdC5leHRlbmQoe3N0eWxlOmJ9LGFyZ3VtZW50c1syXXx8e30p KTtyZXR1cm4gYX0sdmlzdWFsRWZmZWN0OmZ1bmN0aW9uKGMsZixiKXtjPSQoYyk7 dmFyIGU9Zi5kYXNoZXJpemUoKS5jYW1lbGl6ZSgpLGE9ZS5jaGFyQXQoMCkudG9V cHBlckNhc2UoKStlLnN1YnN0cmluZygxKTtuZXcgRWZmZWN0W2FdKGMsYik7cmV0 dXJuIGN9LGhpZ2hsaWdodDpmdW5jdGlvbihiLGEpe2I9JChiKTtuZXcgRWZmZWN0 LkhpZ2hsaWdodChiLGEpO3JldHVybiBifX07JHcoImZhZGUgYXBwZWFyIGdyb3cg c2hyaW5rIGZvbGQgYmxpbmRVcCBibGluZERvd24gc2xpZGVVcCBzbGlkZURvd24g cHVsc2F0ZSBzaGFrZSBwdWZmIHNxdWlzaCBzd2l0Y2hPZmYgZHJvcE91dCIpLmVh Y2goZnVuY3Rpb24oYSl7RWZmZWN0Lk1ldGhvZHNbYV09ZnVuY3Rpb24oYyxiKXtj PSQoYyk7RWZmZWN0W2EuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrYS5zdWJzdHJp bmcoMSldKGMsYik7cmV0dXJuIGN9fSk7JHcoImdldElubGluZU9wYWNpdHkgZm9y Y2VSZXJlbmRlcmluZyBzZXRDb250ZW50Wm9vbSBjb2xsZWN0VGV4dE5vZGVzIGNv bGxlY3RUZXh0Tm9kZXNJZ25vcmVDbGFzcyBnZXRTdHlsZXMiKS5lYWNoKGZ1bmN0 aW9uKGEpe0VmZmVjdC5NZXRob2RzW2FdPUVsZW1lbnRbYV19KTtFbGVtZW50LmFk ZE1ldGhvZHMoRWZmZWN0Lk1ldGhvZHMpO2lmKCF3aW5kb3cuY29uc29sZXx8IWNv bnNvbGUuZmlyZWJ1Zyl7dmFyIG5hbWVzPVsibG9nIiwiZGVidWciLCJpbmZvIiwi d2FybiIsImVycm9yIiwiYXNzZXJ0IiwiZGlyIiwiZGlyeG1sIiwiZ3JvdXAiLCJn cm91cEVuZCIsInRpbWUiLCJ0aW1lRW5kIiwiY291bnQiLCJ0cmFjZSIsInByb2Zp bGUiLCJwcm9maWxlRW5kIl07d2luZG93LmNvbnNvbGU9e307Zm9yKHZhciBpPTA7 aTxuYW1lcy5sZW5ndGg7KytpKXt3aW5kb3cuY29uc29sZVtuYW1lc1tpXV09ZnVu Y3Rpb24oKXt9fX1TQ0VORVM9e25vcm1hbF9oZWlnaHQ6WzQ0NSw0NDUsNDQ1LDQ0 NSw0NDUsMzk5LDQ0NSw0NDUsNDQ1LDQ0NSwzODksMzM0LDQwNywzMTIsMzAwLDQ0 NSw0NDUsNDQ1LDQ0NSw0NDUsNDQ1LDQ0NSw0NDUsMzU0LDQ0NSw0NDUsMjc2LDQ0 NSw0NDUsNDIxLDQ0NSw0NDUsNDAwLDMzNCwyOTYsMzczLDMwMywzMDMsNDQ1LDM0 Ml0sem9vbV9oZWlnaHQ6WzEwMjQsMTAyNCwxMDI0LDEwMjQsMTMxNyw5MTcsMTAy NCwxMDI0LDEwMjQsMTAyNCw4OTQsNzY5LDkzNyw3MTksNjkxLDEwMjQsMTAyNCwx MDI0LDEyMTMsMTAyNCwxMTU0LDExMTgsMTAyNCwxMDI0LDEyODUsMTEwOCw2MzYs MTIxMiwxMDI0LDk2OSwxMDI0LDEwMjQsOTIxLDc2OCw2ODAsODU4LDY5Nyw2OTcs MTAyNCw3ODhdLGNhdGVnb3J5OltbInNpdGUtbWFyYnVyZyJdLFsic2l0ZS1tYXJi dXJnIl0sWyJzaXRlLW1hcmJ1cmciXSxbInNpdGUtbWFyYnVyZyJdLFsic2l0ZS1t YXJidXJnIl0sWyJzaXRlLW1hcmJ1cmciXSxbInNpdGUtbWFyYnVyZyJdLFsic2l0 ZS1tYXJidXJnIl0sWyJzaXRlLW1hcmJ1cmciXSxbInNpdGUtbWFyYnVyZyJdLFsi c2l0ZS1tYXJidXJnIl0sWyJzaXRlLW1hcmJ1cmciXSxbInNpdGUtbWFyYnVyZyJd LFsic2l0ZS1tYXJidXJnIl0sWyJzaXRlLW1hcmJ1cmciXSxbInNpdGUtbWFyYnVy ZyJdLFsic2l0ZS1tYXJidXJnIl0sWyJzaXRlLW1hcmJ1cmciXSxbInNpdGUtbWFy YnVyZyJdLFsic2l0ZS1tYXJidXJnIl0sWyJzaXRlLW1hcmJ1cmciXSxbInNpdGUt bWFyYnVyZyJdLFsic2l0ZS1tYXJidXJnIl0sWyJzaXRlLW1hcmJ1cmciXSxbInNp dGUtbWFyYnVyZyJdLFsic2l0ZS1tYXJidXJnIl0sWyJzaXRlLW1hcmJ1cmciXSxb InNpdGUtbWFyYnVyZyJdLFsic2l0ZS1tYXJidXJnIl0sWyJzaXRlLW1hcmJ1cmci XSxbInNpdGUtbWFyYnVyZyJdLFsic2l0ZS1tYXJidXJnIl0sWyJzaXRlLW1hcmJ1 cmciXSxbInNpdGUtbWFyYnVyZyJdLFsic2l0ZS1tYXJidXJnIl0sWyJzaXRlLW1h cmJ1cmciXSxbInNpdGUtbWFyYnVyZyJdLFsic2l0ZS1tYXJidXJnIl0sWyJzaXRl LW1hcmJ1cmciXSxbInNpdGUtbWFyYnVyZyJdXSx6b29tX3dpZHRoOlsxMDI0LDEw MjQsMTAyNCwxMDI0LDEwMjQsMTAyNCwxMDI0LDEwMjQsMTAyNCwxMDI0LDEwMjQs MTAyNCwxMDI0LDEwMjQsMTAyNCwxMDI0LDEwMjQsMTAyNCwxMDI0LDEwMjQsMTAy NCwxMDI0LDEwMjQsMTI4NiwxMDI0LDEwMjQsMTAyNCwxMDI0LDg1NiwxMDI0LDEw MjQsMTAyNCwxMDI0LDEwMjQsMTAyNCwxMDI0LDEwMjQsMTAyNCwxMDI0LDEwMjRd LG9iamVjdHM6W3tncm91cHM6IjAwMDAxMiIsY29sb3JzOiJtbW1teHgiLG1hcHBp bmdzOiJDQ0NDVFQifSx7Z3JvdXBzOiIwMTIiLGNvbG9yczoibXh4IixtYXBwaW5n czoiQ1RUIn0se2dyb3VwczoiMDAwMDEyMyIsY29sb3JzOiJtbW1teHh4IixtYXBw aW5nczoiQ0NDQ1RUVCJ9LHtncm91cHM6IjAwMDAxMjMiLGNvbG9yczoibW1tbXh4 eCIsbWFwcGluZ3M6IkNDQ0NUVFQifSx7Z3JvdXBzOiIxIixjb2xvcnM6IngiLG1h cHBpbmdzOiJUIn0se2dyb3VwczoiMDAxMjMiLGNvbG9yczoibW14eHgiLG1hcHBp bmdzOiJDQ1RUVCJ9LHtncm91cHM6IjAwMDAxMjMiLGNvbG9yczoibW1tbXh4eCIs bWFwcGluZ3M6IkNDQ0NUVFQifSx7Z3JvdXBzOiIwMDAxMjMiLGNvbG9yczoibW1t eHh4IixtYXBwaW5nczoiQ0NDVFRUIn0se2dyb3VwczoiMDAxMjM0Iixjb2xvcnM6 Im1teHh4eCIsbWFwcGluZ3M6IkNDVFRUVCJ9LHtncm91cHM6IjAwMDAxMjM0Iixj b2xvcnM6Im1tbW14eHh4IixtYXBwaW5nczoiQ0NDQ1RUVFQifSx7Z3JvdXBzOiIw MDAwMDEyIixjb2xvcnM6Im1tbW1teHgiLG1hcHBpbmdzOiJDQ0NDQ1RUIn0se2dy b3VwczoiMDEyMzQ1MCIsY29sb3JzOiJteHh4eHhtIixtYXBwaW5nczoiQ1RUVFRU QyJ9LHtncm91cHM6IjAwMSIsY29sb3JzOiJtbXgiLG1hcHBpbmdzOiJDQ1QifSx7 Z3JvdXBzOiIwMDEyMyIsY29sb3JzOiJtbXh4eCIsbWFwcGluZ3M6IkNDVFRUIn0s e2dyb3VwczoiMDAxMjM0NSIsY29sb3JzOiJtbXh4eHh4IixtYXBwaW5nczoiQ0NU VFRUVCJ9LHtncm91cHM6IjAxMjMiLGNvbG9yczoibXh4eCIsbWFwcGluZ3M6IkNU VFQifSx7Z3JvdXBzOiIwMDAwMDAxMjMwMCIsY29sb3JzOiJtbW1tbW14eHhtbSIs bWFwcGluZ3M6IkNDQ0NDQ1RUVENDIn0se2dyb3VwczoiMDAwMDAwMDEyMyIsY29s b3JzOiJtbW1tbW1teHh4IixtYXBwaW5nczoiQ0NDQ0NDQ1RUVCJ9LHtncm91cHM6 IjAxMjMwMCIsY29sb3JzOiJteHh4bW0iLG1hcHBpbmdzOiJDVFRUQ0MifSx7Z3Jv dXBzOiIwMDAwMTIzIixjb2xvcnM6Im1tbW14eHgiLG1hcHBpbmdzOiJDQ0NDVFRU In0se2dyb3VwczoiMDEyMzQ1MDAwIixjb2xvcnM6Im14eHh4eG1tbSIsbWFwcGlu Z3M6IkNUVFRUVENDQyJ9LHtncm91cHM6IjAwMTIzNDU2MDAiLGNvbG9yczoibW14 eHh4eHhtbSIsbWFwcGluZ3M6IkNDVFRUVFRUQ0MifSx7Z3JvdXBzOiIwMDAwMDAw MDEiLGNvbG9yczoibW1tbW1tbW14IixtYXBwaW5nczoiQ0NDQ0NDQ0NUIn0se2dy b3VwczoiMDAwMDEyMyIsY29sb3JzOiJtbW1teHh4IixtYXBwaW5nczoiQ0NDQ1RU VCJ9LHtncm91cHM6IjAxMDAiLGNvbG9yczoibXhtbSIsbWFwcGluZ3M6IkNUQ0Mi fSx7Z3JvdXBzOiIwMDEyMzQiLGNvbG9yczoibW14eHh4IixtYXBwaW5nczoiQ0NU VFRUIn0se2dyb3VwczoiMDEyIixjb2xvcnM6Im14eCIsbWFwcGluZ3M6IkNUVCJ9 LHtncm91cHM6IjAxMiIsY29sb3JzOiJteHgiLG1hcHBpbmdzOiJDVFQifSx7Z3Jv dXBzOiIwMDAxMjMiLGNvbG9yczoibW1teHh4IixtYXBwaW5nczoiQ0NDVFRUIn0s e2dyb3VwczoiMDAxMjMiLGNvbG9yczoibW14eHgiLG1hcHBpbmdzOiJDQ1RUVCJ9 LHtncm91cHM6IjAwMDAxMiIsY29sb3JzOiJtbW1teHgiLG1hcHBpbmdzOiJDQ0ND VFQifSx7Z3JvdXBzOiIwMTIzIixjb2xvcnM6Im14eHgiLG1hcHBpbmdzOiJDVFRU In0se2dyb3VwczoiMTIiLGNvbG9yczoieHgiLG1hcHBpbmdzOiJUVCJ9LHtncm91 cHM6IjAxMiIsY29sb3JzOiJteHgiLG1hcHBpbmdzOiJDVFQifSx7Z3JvdXBzOiIw MTIzIixjb2xvcnM6Im14eHgiLG1hcHBpbmdzOiJDVFRUIn0se2dyb3VwczoiMDAx Iixjb2xvcnM6Im1teCIsbWFwcGluZ3M6IkNDVCJ9LHtncm91cHM6IjAxMiIsY29s b3JzOiJteHgiLG1hcHBpbmdzOiJDVFQifSx7Z3JvdXBzOiIxMjM0NTY3ODkiLGNv bG9yczoieHh4eHh4eHh4IixtYXBwaW5nczoiVFRUVFRUVFRUIn0se2dyb3Vwczoi MDAwMTIzIixjb2xvcnM6Im1tbXh4eCIsbWFwcGluZ3M6IkNDQ1RUVCJ9LHtncm91 cHM6IjAwMDAxMiIsY29sb3JzOiJtbW1teHgiLG1hcHBpbmdzOiJDQ0NDVFQifV0s bm9ybWFsX3dpZHRoOls0NDUsNDQ1LDQ0NSw0NDUsMzQ2LDQ0NSw0NDUsNDQ1LDQ0 NSw0NDUsNDQ1LDQ0NSw0NDUsNDQ1LDQ0NSw0NDUsNDQ1LDQ0NSwzNzYsNDQ1LDM5 NSw0MDgsNDQ1LDQ0NSwzNTUsNDExLDQ0NSwzNzYsMzcyLDQ0NSw0NDUsNDQ1LDQ0 NSw0NDUsNDQ1LDQ0NSw0NDUsNDQ1LDQ0NSw0NDVdLG5hbWVzOlsiMzExNWgiLCIz MTE1diIsIjMxMTYiLCIzMTE3IiwiMzUzNSIsIjM1Nzh2cyIsIjkzMDUtd2Vpc3Nl V2FlbmRlLW1pdEEiLCI5MzA1LXdlaXNzZVdhZW5kZS1vaG5lQSIsIjkzMTMtd2Vp c3Mtb2huZSIsIjkzMTMtd2Vpc3MiLCJhbGljZWZvdG8yIiwiQmF1MS0wMTciLCJC YXUxLTA4MCIsIkJhdTItMDAxIiwiQmF1My0wMDEiLCJiYXp3MTg5NiIsIkJpbGQx MCIsIkJpbGQxIiwiQmlsZDIiLCJCaWxkMyIsIkJpbGQ0IiwiQmlsZDUiLCJCaWxk NiIsIkJpbGQ3LTIiLCJCaWxkOC0yIiwiQmlsZDktMiIsImNhcm9mb3RvMSIsImNh cm96d2k0IiwiZHJucjE4MTkiLCJkcm5yMjIxMSIsImRybnIyNDI0IiwiZHJucjI3 MTAiLCJnaW5aVzM1NTV2aCIsIkhpbHRvbi5TdWl0ZS1zY2hsYWZlbiIsIkhvdGVs emltbWVyIiwibW9yaXR6MjkwNCIsInBhdGRyMzcxOWgiLCJwYXRkcjM3MjhoIiwi cGljMSIsIndhbGxncm9zc2JpbGQiXX07VEVYVFVSRVM9e2NhdGVnb3J5OltbInBh dGVudC1kZWNvciJdLFsicGF0ZW50LWRlY29yIl0sWyJwYXRlbnQtZGVjb3IiXSxb InBhdGVudC1kZWNvciJdLFsicGF0ZW50LWRlY29yIl0sWyJwYXRlbnQtZGVjb3Ii XSxbInBhdGVudC1kZWNvciJdLFsicGF0ZW50LWRlY29yIl0sWyJwYXRlbnQtZGVj b3IiXSxbInBhdGVudC1kZWNvciJdLFsicGF0ZW50LWRlY29yIl0sWyJwYXRlbnQt ZGVjb3IiXSxbInBhdGVudC1kZWNvciJdLFsicGF0ZW50LWRlY29yIl0sWyJwYXRl bnQtZGVjb3IiXSxbInBhdGVudC1kZWNvciJdLFsicGF0ZW50LWRlY29yIl0sWyJw YXRlbnQtZGVjb3IiXSxbInBhdGVudC1kZWNvciJdLFsic29sYXJpIl0sWyJzb2xh cmkiXSxbInNvbGFyaSJdLFsic29sYXJpIl0sWyJzb2xhcmkiXSxbInNvbGFyaSJd LFsic29sYXJpIl0sWyJzb2xhcmkiXSxbInNvbGFyaSJdLFsic29sYXJpIl0sWyJz dXByb2ZpbC12bGllcy0yMDEwIl0sWyJob21lLWNsYXNzaWNzIl0sWyJob21lLWNs YXNzaWNzIl0sWyJob21lLWNsYXNzaWNzIl0sWyJob21lLWNsYXNzaWNzIl0sWyJo b21lLWNsYXNzaWNzIl0sWyJob21lLWNsYXNzaWNzIl0sWyJob21lLWNsYXNzaWNz Il0sWyJob21lLWNsYXNzaWNzIl0sWyJob21lLWNsYXNzaWNzIl0sWyJsYS12ZW5l emlhbmEiXSxbImxhLXZlbmV6aWFuYSJdLFsibGEtdmVuZXppYW5hIl0sWyJsYS12 ZW5lemlhbmEiXSxbImxhLXZlbmV6aWFuYSJdLFsibGEtdmVuZXppYW5hIl0sWyJs YS12ZW5lemlhbmEiXSxbImxhLXZlbmV6aWFuYSJdLFsibGEtdmVuZXppYW5hIl0s WyJsYS12ZW5lemlhbmEiXSxbImxhLXZlbmV6aWFuYSJdLFsibGEtdmVuZXppYW5h Il0sWyJsYS12ZW5lemlhbmEiXSxbImxhLXZlbmV6aWFuYSJdLFsibGEtdmVuZXpp YW5hIl0sWyJsYS12ZW5lemlhbmEiXSxbImxhLXZlbmV6aWFuYSJdLFsibGEtdmVu ZXppYW5hIl0sWyJsYS12ZW5lemlhbmEiXSxbImxhLXZlbmV6aWFuYSJdLFsibGEt dmVuZXppYW5hIl0sWyJsYS12ZW5lemlhbmEiXSxbImxhLXZlbmV6aWFuYSJdLFsi bGEtdmVuZXppYW5hIl0sWyJsYS12ZW5lemlhbmEiXSxbImxhLXZlbmV6aWFuYSJd LFsibGEtdmVuZXppYW5hIl0sWyJsYS12ZW5lemlhbmEiXSxbImxhLXZlbmV6aWFu YSJdLFsibGEtdmVuZXppYW5hIl0sWyJsYS12ZW5lemlhbmEiXSxbImxhLXZlbmV6 aWFuYSJdLFsibGEtdmVuZXppYW5hIl0sWyJsYS12ZW5lemlhbmEiXSxbImxhLXZl bmV6aWFuYSJdLFsibGEtdmVuZXppYW5hIl0sWyJsYS12ZW5lemlhbmEiXSxbImxh LXZlbmV6aWFuYSJdLFsibGEtdmVuZXppYW5hIl0sWyJsYS12ZW5lemlhbmEiXSxb ImxhLXZlbmV6aWFuYSJdLFsibGEtdmVuZXppYW5hIl0sWyJsYS12ZW5lemlhbmEi XSxbImxhLXZlbmV6aWFuYSJdLFsibGEtdmVuZXppYW5hIl0sWyJsYS12ZW5lemlh bmEiXSxbImxhLXZlbmV6aWFuYSJdLFsibGEtdmVuZXppYW5hIl0sWyJsYS12ZW5l emlhbmEiXSxbImxhLXZlbmV6aWFuYSJdLFsic3Vwcm9maWwtdmxpZXMtMjAxMCJd LFsic3Vwcm9maWwtdmxpZXMtMjAxMCJdLFsic3Vwcm9maWwtdmxpZXMtMjAxMCJd LFsic3Vwcm9maWwtdmxpZXMtMjAxMCJdLFsic3Vwcm9maWwtdmxpZXMtMjAxMCJd LFsic3Vwcm9maWwtdmxpZXMtMjAxMCJdLFsic3Vwcm9maWwtdmxpZXMtMjAxMCJd LFsic3Vwcm9maWwtdmxpZXMtMjAxMCJdLFsic3Vwcm9maWwtdmxpZXMtMjAxMCJd LFsic3Vwcm9maWwtdmxpZXMtMjAxMCJdLFsic3Vwcm9maWwtdmxpZXMtMjAxMCJd LFsic3Vwcm9maWwtdmxpZXMtMjAxMCJdLFsic3Vwcm9maWwtdmxpZXMtMjAxMCJd LFsic3Vwcm9maWwtdmxpZXMtMjAxMCJdLFsic3Vwcm9maWwtdmxpZXMtMjAxMCJd LFsic3Vwcm9maWwtdmxpZXMtMjAxMCJdLFsic3Vwcm9maWwtdmxpZXMtMjAxMCJd LFsic3Vwcm9maWwtdmxpZXMtMjAxMCJdLFsic3Vwcm9maWwtdmxpZXMtMjAxMCJd LFsic3Vwcm9maWwtdmxpZXMtMjAxMCJdLFsic3Vwcm9maWwtdmxpZXMtMjAxMCJd LFsic3Vwcm9maWwtdmxpZXMtMjAxMCJdLFsic3Vwcm9maWwtdmxpZXMtMjAxMCJd LFsic3Vwcm9maWwtdmxpZXMtMjAxMCJdLFsic3Vwcm9maWwtdmxpZXMtMjAxMCJd LFsic3Vwcm9maWwtdmxpZXMtMjAxMCJdLFsic3Vwcm9maWwtdmxpZXMtMjAxMCJd LFsic3Vwcm9maWwtdmxpZXMtMjAxMCJdLFsic3Vwcm9maWwtdmxpZXMtMjAxMCJd LFsic3Vwcm9maWwtdmxpZXMtMjAxMCJdLFsic3Vwcm9maWwtdmxpZXMtMjAxMCJd LFsic3Vwcm9maWwtdmxpZXMtMjAxMCJdLFsic3Vwcm9maWwtdmxpZXMtMjAxMCJd LFsic3Vwcm9maWwtdmxpZXMtMjAxMCJdLFsic3Vwcm9maWwtdmxpZXMtMjAxMCJd LFsic3Vwcm9maWwtdmxpZXMtMjAxMCJdLFsic3Vwcm9maWwtdmxpZXMtMjAxMCJd LFsibnltcGhlZSJdLFsibnltcGhlZSJdLFsiYmVuYXJlcyJdLFsiYmVuYXJlcyJd LFsiYmVuYXJlcyJdLFsiYmVuYXJlcyJdLFsiYmVuYXJlcyJdLFsiYmVuYXJlcyJd LFsiYmVuYXJlcyJdLFsiYmVuYXJlcyJdLFsic29saWQtY29udHJhY3QiXSxbInNv bGlkLWNvbnRyYWN0Il0sWyJzb2xpZC1jb250cmFjdCJdLFsic29saWQtY29udHJh Y3QiXSxbInNvbGlkLWNvbnRyYWN0Il1dLGNvbG9yczpbW1syMDEsMTk2LDE2Niw1 NDcsNTEuNDI5LDAuMjQ1LDAuNzJdXSxbWzI0OSwyNDQsMjM5LDk2MSwzMCwwLjQ1 NSwwLjk1N11dLFtbMjM3LDI0MCwyMzEsODY3LDgwLDAuMjMxLDAuOTI0XV0sW1sy MzEsMTk1LDE1NCw0ODcsMzEuOTQ4LDAuNjE2LDAuNzU1XV0sW1syMzUsMjE4LDIx NSw3NjMsOSwwLjMzMywwLjg4Ml1dLFtbMjE1LDIwMSwyMDYsODA5LDMzOC41NzEs MC4xNDksMC44MTZdXSxbWzIxMiwxODEsMTE5LDEwMDAsNDAsMC41MiwwLjY0OV1d LFtbMjM3LDIwMCwxNTAsOTQwLDM0LjQ4MywwLjcwNywwLjc1OV1dLFtbMjM3LDE5 OCwxNjcsODg3LDI2LjU3MSwwLjY2LDAuNzkyXV0sW1syMDYsMjAzLDE3MSw4ODQs NTQuODU3LDAuMjYzLDAuNzM5XV0sW1syNDksMjEzLDE4Niw5MTAsMjUuNzE0LDAu ODQsMC44NTNdXSxbWzE3MywxNzgsMTY0LDU5Myw4MS40MjksMC4wODMsMC42NzFd XSxbWzE4OCwyMTQsMjM3LDgxNSwyMDguMTYzLDAuNTc2LDAuODMzXV0sW1syMzUs MjA3LDE1Miw3MzgsMzkuNzU5LDAuNjc1LDAuNzU5XV0sW1syMzgsMjMxLDE4Miw1 NDksNTIuNSwwLjYyMiwwLjgyNF1dLFtbMjQxLDIzMSwyMTYsNzQ3LDM2LDAuNDcy LDAuODk2XV0sW1syMjcsMjE1LDIxMyw2MzIsOC41NzEsMC4yLDAuODYzXV0sW1sy NDQsMTUwLDQ1LDY2NCwzMS42NTgsMC45LDAuNTY3XV0sW1syNDgsMjQwLDIzNywx MDAwLDE2LjM2NCwwLjQ0LDAuOTUxXV0sW1syMzgsMjMwLDIwNCw1OTEsNDUuODgy LDAuNSwwLjg2N11dLFtbMjE1LDE0OSwxMjAsNzEwLDE4LjMxNiwwLjU0MywwLjY1 N11dLFtbMTgyLDE5NywyMzEsNjc0LDIyMS42MzMsMC41MDUsMC44MV1dLFtbMjE2 LDE4MiwyMDUsNzMxLDMxOS40MTIsMC4zMDQsMC43OF1dLFtbMTk3LDE2NCwxMTUs NTQxLDM1Ljg1NCwwLjQxNCwwLjYxMl1dLFtbMjUxLDI0MywyNDEsNzExLDEyLDAu NTU2LDAuOTY1XV0sW1syNTAsMjQyLDIyNSwzNjUsNDAuOCwwLjcxNCwwLjkzMV1d LFtbMjMxLDIyMCwxOTQsNDI0LDQyLjE2MiwwLjQzNSwwLjgzM11dLFtbMjEyLDIx MiwyMjYsNDg3LDI0MCwwLjE5NCwwLjg1OV1dLFtbMjUyLDIyOCwyMDcsNjA4LDI4 LDAuODgyLDAuOV1dLFtbMjQxLDI0MCwyNDIsMTAwMCwyNzAsMC4wNzEsMC45NDVd XSxbWzIwOSwxODIsMTU1LDgxOSwzMCwwLjM3LDAuNzE0XV0sW1syMzAsMjIyLDE5 Myw0MDMsNDcuMDI3LDAuNDI1LDAuODI5XV0sW1syMTcsMjEyLDIwNyw0NjgsMzAs MC4xMTYsMC44MzFdXSxbWzIzMywyMjcsMjE5LDc5MCwzNC4yODYsMC4yNDEsMC44 ODZdXSxbWzIyNiwyMjEsMjExLDI0OSw0MCwwLjIwNSwwLjg1N11dLFtbMTUwLDEx NSwxMDYsMjY4LDEyLjI3MywwLjE3MywwLjUwMl1dLFtbMTk5LDE3NSwxNTIsMjM3 LDI5LjM2MiwwLjI5NiwwLjY4OF1dLFtbMjE5LDIwOSwxNzUsNDE0LDQ2LjM2NCww LjM3OSwwLjc3M11dLFtbMjMxLDIyMiwxOTQsMzA4LDQ1LjQwNSwwLjQzNSwwLjgz M11dLFtbMjQwLDIxNywxOTYsNTE2LDI4LjYzNiwwLjU5NSwwLjg1NV1dLFtbMjAx LDE0NywxMTQsODk4LDIyLjc1OSwwLjQ0NiwwLjYxOF1dLFtbMjE1LDE3NywxNDYs NTIwLDI2Ljk1NywwLjQ2MywwLjcwOF1dLFtbMjQ4LDIzOSwyMzQsODgzLDIxLjQy OSwwLjUsMC45NDVdXSxbWzE1MiwxMDIsNzcsNTcwLDIwLDAuMzI4LDAuNDQ5XV0s W1sxNzEsMTQxLDEwMiw0NjIsMzMuOTEzLDAuMjkxLDAuNTM1XV0sW1syMDMsMTcy LDE0MSw1NzEsMzAsMC4zNzMsMC42NzVdXSxbWzI0MiwyMzgsMjM1LDgxOCwyNS43 MTQsMC4yMTIsMC45MzVdXSxbWzE0NCw4MCw1OCw0MDAsMTUuMzQ5LDAuNDI2LDAu Mzk2XV0sW1sxNTQsMTE2LDg4LDI5OSwyNS40NTUsMC4yNzMsMC40NzVdXSxbWzIz NiwyMzAsMjI4LDI5MywxNSwwLjE3NCwwLjkxXV0sW1syNDgsMjM5LDIyOSw1NzMs MzEuNTc5LDAuNTc2LDAuOTM1XV0sW1sxMzUsMTE0LDEwNSwyMzUsMTgsMC4xMjUs MC40NzFdXSxbWzI0NSwyMDIsMTUwLDUwOSwzMi44NDIsMC44MjYsMC43NzVdXSxb WzExMCwxMDMsMTAzLDI3NiwwLDAuMDMzLDAuNDE4XV0sW1sxNTUsMTA1LDc4LDMx NCwyMS4wMzksMC4zMywwLjQ1N11dLFtbMjQzLDIzMiwyMTgsNjI5LDMzLjYsMC41 MSwwLjkwNF1dLFtbMTM5LDExNywxMDYsMzU0LDIwLDAuMTM1LDAuNDhdXSxbWzI0 OSwyMTUsMTY3LDU0NiwzNS4xMjIsMC44NzIsMC44MTZdXSxbWzExMiwxMDQsMTA2 LDQwNCwzNDUsMC4wMzcsMC40MjRdLFsxMzEsODksNzMsMzEzLDE2LjU1MiwwLjI4 NCwwLjRdXSxbWzIzMiwxOTUsMTY4LDc2NiwyNS4zMTIsMC41ODIsMC43ODRdXSxb WzI1MiwyMzcsMjE5LDgwMCwzMi43MjcsMC44NDYsMC45MjRdXSxbWzE3NSwxNzQs MTUwLDU3Nyw1Ny42LDAuMTM1LDAuNjM3XV0sW1sxMTQsNTYsNTMsODA4LDIuOTUx LDAuMzY1LDAuMzI3XV0sW1syNDQsMjA0LDE1NCw4MzYsMzMuMzMzLDAuODA0LDAu NzhdXSxbWzE5MywxNTgsMTQxLDM1NSwxOS42MTUsMC4yOTUsMC42NTVdXSxbWzI0 OSwyNDUsMjM5LDg4NCwzNiwwLjQ1NSwwLjk1N11dLFtbMTY2LDExMiw4NCw2NDIs MjAuNDg4LDAuMzI4LDAuNDldXSxbWzI0NSwyMTUsMTY3LDczNSwzNi45MjMsMC43 OTYsMC44MDhdXSxbWzE0MCwxMjAsMTEwLDQ2MCwyMCwwLjEyLDAuNDldXSxbWzIx MSwxNzIsMTM2LDk5MiwyOC44LDAuNDYsMC42OF1dLFtbMjA0LDE0NiwxMTEsMTAw MCwyMi41ODEsMC40NzcsMC42MThdXSxbWzE1OCwxMzAsOTEsMjE3LDM0LjkyNSww LjI2OSwwLjQ4OF1dLFtbMjUyLDI0NCwyNDIsMTAwMCwxMiwwLjYyNSwwLjk2OV1d LFtbMjUyLDIzOCwyMjgsNTExLDI1LDAuOCwwLjk0MV1dLFtbMjI4LDIxMCwxOTUs ODQxLDI3LjI3MywwLjM3OSwwLjgyOV1dLFtbMTA4LDEwMiwxMDUsNTkyLDMzMCww LjAyOSwwLjQxMl1dLFtbMTM1LDk4LDg0LDYxNiwxNi40NzEsMC4yMzMsMC40Mjld XSxbWzIyNSwxOTUsMTczLDI5MiwyNS4zODUsMC40NjQsMC43OF1dLFtbMTk5LDE2 NSwxNDgsODAyLDIwLDAuMzEzLDAuNjhdXSxbWzI1MiwyNDIsMjMwLDkwMSwzMi43 MjcsMC43ODYsMC45NDVdXSxbWzI0OCwyNDEsMjM0LDkyOCwzMCwwLjUsMC45NDVd XSxbWzE3NCwxNzQsMTUwLDEwMDAsNjAsMC4xMjksMC42MzVdXSxbWzE1NSwxNDks MTMyLDUyNSw0NC4zNDgsMC4xMDMsMC41NjNdXSxbWzE2NiwxMTMsOTAsNDgzLDE4 LjE1OCwwLjI5OSwwLjUwMl1dLFtbMTMzLDczLDcyLDk5NCwwLjk4NCwwLjI5OCww LjQwMl1dLFtbMjM4LDIwMiwxNTMsNzE5LDM0LjU4OCwwLjcxNCwwLjc2N11dLFtb MjQ0LDIxNiwxNzMsNjY3LDM2LjMzOCwwLjc2MywwLjgxOF1dLFtbOTksODgsODQs NzI1LDE2LDAuMDgyLDAuMzU5XV0sW1sxMzMsMTE0LDEwNCw0MTcsMjAuNjksMC4x MjIsMC40NjVdXSxbWzIzMywyMzIsMjMyLDcxNywwLDAuMDIyLDAuOTEyXSxbNjUs NjUsNzUsODgsMjQwLDAuMDcxLDAuMjc1XSxbMTgzLDE1MywxMTIsNDYsMzQuNjQ4 LDAuMzMsMC41NzhdXSxbWzIyOSwyMjAsMjE2LDQxNSwxOC40NjIsMC4yLDAuODcz XSxbMTU5LDc0LDEwNyw2NiwzMzYuNzA2LDAuMzY1LDAuNDU3XV0sW1sxNTMsNzYs MTAwLDc5NiwzNDEuMjk5LDAuMzM2LDAuNDQ5XV0sW1syMzcsMjI3LDIyMSw1MDEs MjIuNSwwLjMwOCwwLjg5OF1dLFtbMjUxLDI0MCwyMTksNTIzLDM5LjM3NSwwLjgs MC45MjJdXSxbWzIzOSwyMzMsMjMyLDQzMyw4LjU3MSwwLjE3OSwwLjkyNF1dLFtb OTEsOTIsMTAwLDUwOCwyMzMuMzMzLDAuMDQ3LDAuMzc1XV0sW1sxODMsMTU2LDEx OCw2MjYsMzUuMDc3LDAuMzExLDAuNTldXSxbWzI0NCwyMzUsMjE5LDU2MSwzOC40 LDAuNTMyLDAuOTA4XV0sW1syNDQsMjQyLDI0Miw0NjMsMCwwLjA4MywwLjk1M10s WzIwOCwyMjUsMjM0LDIzNywyMDAuNzY5LDAuMzgyLDAuODY3XSxbMjA1LDE5Nywx ODYsMTYsMzQuNzM3LDAuMTYsMC43NjddXSxbWzIzNiwyMzEsMjMwLDQ1MiwxMCww LjEzNiwwLjkxNF0sWzIzNCwxNTUsMTkyLDQ1LDMzMS44OTksMC42NTMsMC43NjNd XSxbWzE4NywxNTQsMTQxLDEwMDAsMTYuOTU3LDAuMjUzLDAuNjQzXV0sW1syMzMs MTM3LDE4NywxMDAwLDMyOC43NSwwLjY4NiwwLjcyNV1dLFtbMjQzLDI0MSwyNDIs Mzk2LDMzMCwwLjA3NywwLjk0OV0sWzE4NiwxNTMsMTM5LDIyNiwxNy44NzIsMC4y NTQsMC42MzddLFsyMDUsMjIyLDIzMCwyMTAsMTk5LjIsMC4zMzMsMC44NTNdXSxb WzIzNiwyMzEsMjMxLDM3NywwLDAuMTE2LDAuOTE2XSxbMjMyLDE0NywxODksMjMw LDMzMC4zNTMsMC42NDksMC43NDNdXSxbWzI0MywyMzQsMjA4LDEwMDAsNDQuNTcx LDAuNTkzLDAuODg0XV0sW1syNDAsMjE2LDE5Niw5NzMsMjcuMjczLDAuNTk1LDAu ODU1XV0sW1sxMzMsMTMxLDEzNyw5MjcsMjYwLDAuMDI1LDAuNTI1XV0sW1syMzks MjM5LDIzOSw3NjksMCwwLDAuOTM3XSxbMTgzLDE4MiwxODEsNzcsMzAsMC4wMTQs MC43MTRdXSxbWzI0MywyMjgsMTkzLDYzMyw0MiwwLjY3NiwwLjg1NV1dLFtbMTMx LDEwOSwxMDYsNjM0LDcuMiwwLjEwNSwwLjQ2NV0sWzE0MiwxMzcsMTQzLDc4LDI5 MCwwLjAyNiwwLjU0OV1dLFtbMjQ0LDIzNCwyMjUsNTUyLDI4LjQyMSwwLjQ2Myww LjkyXV0sW1sxNjEsNzUsNzUsNjI0LDAsMC4zNjQsMC40NjNdLFsxMzcsNDQsNTgs MTE2LDM1MC45NjgsMC41MTQsMC4zNTVdXSxbWzEyMiwxMDQsMTAzLDk3NywzLjE1 OCwwLjA4NCwwLjQ0MV1dLFtbMjQxLDIzMCwyMjAsNjY0LDI4LjU3MSwwLjQyOSww LjkwNF1dLFtbMTUxLDY4LDcyLDYxMiwzNTcuMTA4LDAuMzc5LDAuNDI5XV0sW1sx MzMsMTEzLDEwNCwzNzYsMTguNjIxLDAuMTIyLDAuNDY1XV0sW1syMzEsMjIxLDIx NCw0MDQsMjQuNzA2LDAuMjYyLDAuODczXV0sW1sxMTgsOTksOTIsMzgzLDE2LjE1 NCwwLjEyNCwwLjQxMl1dLFtbMTg4LDE2OCwxNTYsNzU4LDIyLjUsMC4xOTMsMC42 NzVdXSxbWzIyMiwyMjAsMjE5LDM5OSwyMCwwLjA0MywwLjg2NV1dLFtbMTkzLDE3 MiwxNjQsNTY1LDE2LjU1MiwwLjE5LDAuN11dLFtbOTAsOTEsMTAwLDUzOSwyMzQs MC4wNTMsMC4zNzNdXSxbWzkxLDk2LDEwMiwzMTMsMjEyLjcyNywwLjA1NywwLjM3 OF1dLFtbNjgsNzEsNzksNDM4LDIyMy42MzYsMC4wNzUsMC4yODhdXSxbWzIzMiwy MjksMjI5LDgxMywwLDAuMDYxLDAuOTA0XSxbMTYyLDE2MCwxNjEsMTQsMzMwLDAu MDExLDAuNjMxXSxbODIsODQsODYsMTEsMjEwLDAuMDI0LDAuMzI5XSxbMTI3LDEy NiwxMjgsNiwyNzAsMC4wMDgsMC40OThdXSxbWzIzMCwyMjgsMjI3LDM4MiwyMCww LjA1NywwLjg5Nl0sWzYxLDYzLDY0LDI3LDIwMCwwLjAyNCwwLjI0NV0sWzEyNywx MjcsMTI4LDE2LDI0MCwwLjAwNCwwLjVdXSxbWzI0NSwxOTgsMTU2LDgwNiwyOC4z MTUsMC44MTcsMC43ODZdXSxbWzE3MiwxNDAsODksNzk2LDM2Ljg2NywwLjMzMyww LjUxMl1dLFtbMjM4LDIyNiwyMTksMTAwMCwyMi4xMDUsMC4zNTgsMC44OTZdXSxb WzI0NCwxNzQsMTQyLDEwMDAsMTguODI0LDAuODIzLDAuNzU3XV0sW1syMTIsMjEw LDIxNSwxMDAwLDI2NCwwLjA1OSwwLjgzM11dLFtbMjEzLDE2NywxNjIsMTAwMCw1 Ljg4MiwwLjM3OCwwLjczNV1dLFtbMjU1LDIzMCwyMDUsMTAwMCwzMCwxLDAuOTAy XV0sW1syNTAsMjQwLDIxMiwxMDAwLDQ0LjIxMSwwLjc5MiwwLjkwNl1dLFtbMTcy LDE0NSwxMzksMTAwMCwxMC45MDksMC4xNjYsMC42MV1dLFtbMjEzLDE4MCwxMjgs MTAwMCwzNi43MDYsMC41MDMsMC42NjldXSxbWzE3Niw5OCwxMDcsNTA1LDM1My4w NzcsMC4zMzEsMC41MzddXSxbWzE1MSwxNzksMTc5LDk2OCwxODAsMC4xNTYsMC42 NDddXSxbWzE1MSwxMTIsMTA0LDkyMCwxMC4yMTMsMC4xODQsMC41XV0sW1syNDEs MjE0LDE3OCwxMDAwLDM0LjI4NiwwLjY5MiwwLjgyMl1dLFtbMjQwLDIyOCwyMTks OTY2LDI1LjcxNCwwLjQxMiwwLjldXV0sbmFtZXM6WyI5ODc3X1R1bmRyYSIsIjk4 NzdfUHV0aW5hIiwiOTg3N19BZ2F2ZSIsIjk4NTRfUGFsYXp6byIsIjk4NTRfRmxh bWVuY282MCIsIjk4NTRfRmxhbWVuY28iLCI5ODE3X1BhbGF6em8iLCI5ODE3X01h cmlsbCIsIjk4MTdfQW1iZXIiLCI5NDI1X1R1bmRyYSIsIjk0MjRfQW1iZXIiLCI5 NDIzX0FnYXZlIiwiOTQyMl9MYWdvIiwiOTQyMV9QYWxhenpvIiwiOTQyMF9Tb2ph IiwiOTQxOV9QYWxhenpvIiwiOTQxOF9GbGFtZW5jbyIsIjk0MTdfQW1iZXIiLCI5 NDE2X0ZsYW1lbmNvIiwiODkyMTk5IiwiODkyMTk3IiwiODkyMTk2IiwiODkyMTk1 IiwiODkyMTk0IiwiODkyMTkyIiwiODkyMTkxIiwiODkyMTkwIiwiODkyMTg5Iiwi ODkyMTg4IiwiNzgyMTYiLCI3Nzk2NCIsIjc3OTYzIiwiNzc5NTYiLCI3Nzk1NCIs Ijc3OTMyIiwiNzc5MjIiLCI3NzkxOCIsIjc3OTExIiwiNzc5MDMiLCI3Nzc1MSIs Ijc3NzUwIiwiNzc3NDkiLCI3Nzc0OCIsIjc3NzQ3IiwiNzc3NDYiLCI3Nzc0NSIs Ijc3NzQ0IiwiNzc3NDMiLCI3Nzc0MiIsIjc3NzQxIiwiNzc3NDAiLCI3NzczOSIs Ijc3NzM4IiwiNzc3MzciLCI3NzczNiIsIjc3NzM1IiwiNzc3MzQiLCI3NzczMyIs Ijc3NzMyIiwiNzc3MzEiLCI3NzczMCIsIjc3NzI5IiwiNzc3MjgiLCI3NzcyNyIs Ijc3NzI2IiwiNzc3MjUiLCI3NzcyNCIsIjc3NzIzIiwiNzc3MjIiLCI3NzcyMSIs Ijc3NzIwIiwiNzc3MTkiLCI3NzcxNyIsIjc3NzE2IiwiNzc3MTUiLCI3NzcxNCIs Ijc3NzEzIiwiNzc3MTIiLCI3NzcxMSIsIjc3NzEwIiwiNzc3MDkiLCI3NzcwOCIs Ijc3NzA3IiwiNzc3MDYiLCI3NzcwNSIsIjc3NzA0IiwiNzc3MDMiLCI3NzcwMiIs Ijc3NzAxIiwiNzc2OTEiLCI3NzY4OCIsIjc3NjgzIiwiNzc2ODIiLCI3NzY3OSIs Ijc3Njc4IiwiNzc2NzciLCI3NzY3MyIsIjc3NjY5IiwiNzc2NjciLCI3NzY2NiIs Ijc3NjYyIiwiNzc2NjAiLCI3NzY1NSIsIjc3NjU0IiwiNzc2NDUiLCI3NzY0NCIs Ijc3NjQzIiwiNzc2MzgiLCI3NzYzNyIsIjc3NjMxIiwiNzc2MzAiLCI3NzYyOSIs Ijc3NjI2IiwiNzc2MjUiLCI3NzYyNCIsIjc3NjE5IiwiNzc2MTYiLCI3NzYxNSIs Ijc3NjExIiwiNzc2MDkiLCI3NzYwNiIsIjc3NjAzIiwiNzc2MDIiLCI3NzU5NCIs Ijc3NTkyIiwiNzc1OTAiLCI3NjYyNyIsIjc2NjIzIiwiNTAxMjIiLCI1MDAyMCIs IjUwMDE0IiwiNTAwMTMiLCI1MDAxMCIsIjUwMDA5IiwiNTAwMDMiLCI1MDAwMSIs IjA5Mjk1IiwiMDkyOTMiLCIwOTI5MiIsIjA5MjkwIiwiMDkyODciXX0NCi8qIENv cHlyaWdodCAoQykgMjAwOC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKi8NCjtmdW5j dGlvbiBfJDIoayxuLGYpe3ZhciBjPWsvMjU1LG09bi8yNTUscD1mLzI1NTt2YXIg bz1NYXRoLm1pbihjLE1hdGgubWluKG0scCkpO3ZhciBxPU1hdGgubWF4KGMsTWF0 aC5tYXgobSxwKSk7dmFyIGE9cS1vO3ZhciBqPTAsdD0wLGU9KG8rcSkvMjtpZigo ZT4wKSYmKGU8MC41KSl7dD1hLyhxK28pfWlmKChlPj0wLjUpJiYoZTwxKSl7dD1h LygyLXEtbyl9aWYoYT4wKXtpZigocT09YykmJihxIT1tKSl7aj1qKyhtLXApL2F9 aWYoKHE9PW0pJiYocSE9cCkpe2o9aisyKyhwLWMpL2F9aWYoKHE9PXApJiYocSE9 Yykpe2o9ais0KyhjLW0pL2F9ai89Nn1pZihqPDApe2orPTF9aWYoaj4xKXtqLT0x fXJldHVybntoOihqKjM2MCksczp0LGw6ZX19ZnVuY3Rpb24gX2gycmdiKGIsYSxj KXtpZihjPDApe2MrPTF9aWYoYz4xKXtjLT0xfWlmKGMqNjwxKXtyZXR1cm4gYiso YS1iKSpjKjZ9aWYoYyoyPDEpe3JldHVybiBhfWlmKGMqMzwyKXtyZXR1cm4gYiso YS1iKSooMi8zLWMpKjZ9cmV0dXJuIGJ9ZnVuY3Rpb24gXyQzKG0sbyxjKXt2YXIg ZT1tLzM2MDt2YXIgbixrO2lmKGM8PTAuNSl7az1jKihvKzEpfWVsc2V7az1jK28t YypvfW49YyoyLWs7dmFyIGE9X2gycmdiKG4sayxlKzEvMyk7dmFyIGY9X2gycmdi KG4sayxlKTt2YXIgaj1faDJyZ2IobixrLGUtMS8zKTtyZXR1cm57cjpNYXRoLnJv dW5kKGEqMjU1KSxnOk1hdGgucm91bmQoZioyNTUpLGI6TWF0aC5yb3VuZChqKjI1 NSl9fWZ1bmN0aW9uIF8kNChhLGIpe2E9JChhKTtpZih0eXBlb2YgYSE9Im9iamVj dCIpe3JldHVybn1pZighYS5zdHlsZSl7cmV0dXJufWEuc3R5bGUudmlzaWJpbGl0 eT1iPyJoaWRkZW4iOiJ2aXNpYmxlIn1mdW5jdGlvbiBfJDUoYSl7XyQ0KGEsdHJ1 ZSl9ZnVuY3Rpb24gXyQ2KGIsYyl7Yj0kKGIpO2lmKHR5cGVvZiBiIT0ib2JqZWN0 Iil7cmV0dXJuIGZhbHNlfWlmKCFiLnN0eWxlKXtyZXR1cm4gZmFsc2V9dmFyIGE9 KGIuZ2V0U3R5bGUoInZpc2liaWxpdHkiKT09KGM/ImhpZGRlbiI6InZpc2libGUi KSk7cmV0dXJuIGF9ZnVuY3Rpb24gXyQ3KGEpe3JldHVybiBfJDYoYSx0cnVlKX1m dW5jdGlvbiBfJDgoYSxjKXt2YXIgYj0wLGU9MDtpZihzZWxmLmlubmVySGVpZ2h0 KXtiPXNlbGYuaW5uZXJXaWR0aDtlPXNlbGYuaW5uZXJIZWlnaHR9ZWxzZXtpZihk b2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVu dC5jbGllbnRIZWlnaHQpe2I9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVu dFdpZHRoO2U9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodH1l bHNle2lmKGRvY3VtZW50LmJvZHkpe2I9ZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0 aDt3aWRodEhlaWdodD1kb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodH19fWlmKChi PGEtNCl8fChlPGMtNCkpe3dpbmRvdy5yZXNpemVUbyhNYXRoLm1pbihzY3JlZW4u d2lkdGgsMTAyNCksTWF0aC5taW4oc2NyZWVuLmhlaWdodCw3NjgpKX19ZnVuY3Rp b24gXyQ5KGEpe3JldHVybigodHlwZW9mIGE9PSJudW1iZXIiKSYmKGE+PTApJiYo YTxTQ0VORVMubmFtZXMubGVuZ3RoKSl9ZnVuY3Rpb24gXyRhKGEpe3JldHVybigo dHlwZW9mIGE9PSJudW1iZXIiKSYmKGE+PTApJiYoYTxURVhUVVJFUy5uYW1lcy5s ZW5ndGgpKX1mdW5jdGlvbiBfJGIoYSl7cmV0dXJuKCh0eXBlb2YgYT09Im51bWJl ciIpJiYoYT49LTEpKX1mdW5jdGlvbiBfJGMoYSl7cmV0dXJuKGEmJk9iamVjdC5p c0FycmF5KGEpJihhLmxlbmd0aD4wKSl9ZnVuY3Rpb24gXyRkKGEpe3JldHVybiBm YWxzZX1mdW5jdGlvbiBfJGUoYSl7cmV0dXJuIHRydWV9ZnVuY3Rpb24gXyRmKCl7 ZG9jdW1lbnQub25tb3VzZWRvd249XyRkO2RvY3VtZW50Lm9uY2xpY2s9XyRlO2Rv Y3VtZW50LnVuc2VsZWN0YWJsZT0ib24iO2lmKGRvY3VtZW50LnN0eWxlKXtkb2N1 bWVudC5zdHlsZS5Nb3pVc2VyU2VsZWN0PSJub25lIjtkb2N1bWVudC5zdHlsZS5L aHRtbFVzZXJTZWxlY3Q9Im5vbmUifWRvY3VtZW50Lm9uc2VsZWN0c3RhcnQ9XyRk O2RvY3VtZW50Lm9uZHJhZ3N0YXJ0PV8kZH1fJDEwPXtfJDExOmZ1bmN0aW9uKGYs aixlLG0saCl7dmFyIGs9MS43MDE1ODt2YXIgbD0wO3ZhciBnPW07aWYoaj09MCl7 cmV0dXJuIGV9aWYoKGovPWgpPT0xKXtyZXR1cm4gZSttfWlmKCFsKXtsPWQqMC4z fWlmKGc8TWF0aC5hYnMobSkpe2c9bTt2YXIgaz1sLzR9ZWxzZXt2YXIgaz1sLygy Kk1hdGguUEkpKk1hdGguYXNpbihtL2cpfXJldHVybiBnKk1hdGgucG93KDIsLTEw KmopKk1hdGguc2luKChqKmgtaykqKDIqTWF0aC5QSSkvbCkrbStlfSxFTkRfJDEw Om51bGx9O2Z1bmN0aW9uIF8kMTIoYSl7aWYoYT09InBsYWNlaG9sZGVyIil7cmV0 dXJuImltYWdlcy9sYXlvdXQvMXgxLWxpZ2h0Z3JheS5naWYifXJldHVybiJpbWFn ZXMvbGF5b3V0LzF4MS10cmFucy5naWYifVRSPW5ldyBIYXNoKCk7VFIubGFuZ3M9 W107VFIubGFuZz1udWxsO2Z1bmN0aW9uIHRyKGIsYSl7dmFyIGM9VFIuZ2V0KGIp O3JldHVybihjP2M6Yil9ZnVuY3Rpb24gdHJfbGFuZyhlLGMpe1RSLmxhbmc9ZXx8 bnVsbDtUUi5sYW5ncz1jfHxbXTt2YXIgYT0vbGFuZz0oW2EtekEtWl1bYS16QS1a XSkvO3ZhciBiPWEuZXhlYyhkb2N1bWVudC5VUkwpO2lmKCFifHwoYi5sZW5ndGg8 Mikpe3JldHVybn12YXIgZT1TdHJpbmcoYlsxXSkudG9Mb3dlckNhc2UoKTtpZihj LmluZGV4T2YoZSk8MCl7cmV0dXJufVRSLmxhbmc9ZX1mdW5jdGlvbiB0cl9pbWco KXt2YXIgYT1UUi5sYW5nO2lmKCFhKXtyZXR1cm59JCQoIi50ci1pbWciKS5lYWNo KGZ1bmN0aW9uKGUpe3ZhciBiPWUuc3JjO3ZhciBjPWIucmVwbGFjZSgvKFwuW2Et ekEtWl1bYS16QS1aXSk/KFwuaG92ZXIpP1wuKHBuZ3xqcGU/Z3xnaWZ8dGlmZj98 cGRmKS8sKCIuIithKyIkMi4kMyIpKTtpZihjKXtlLnNyYz1jfX0pfV8kMTM9bmV3 IE9iamVjdCgpOw0KLyogQ29weXJpZ2h0IChDKSAyMDA4LiBBbGwgcmlnaHRzIHJl c2VydmVkLiAqLw0KXyQxND1DbGFzcy5jcmVhdGUoe2luaXRpYWxpemU6ZnVuY3Rp b24oYSl7dGhpcy5fJDE1PWF8fCJzaXRlLXVua25vd24iO3RoaXMuXyQxNigpO2Rv Y3VtZW50Lm9ic2VydmUoInVzZXI6aG93dG91c2UiLHRoaXMuXyQxNy5iaW5kQXNF dmVudExpc3RlbmVyKHRoaXMpKX0sXyQxNjpmdW5jdGlvbigpeyQkKCIubWFrZS1o b3Zlci1idXR0b24iKS5lYWNoKHRoaXMuXyQxOCx0aGlzKX0sXyQxOTpmdW5jdGlv bihiLGEpe2lmKCFifHxiLmhhc0hvdmVySGFuZGxlcil7cmV0dXJufWIuaGFzSG92 ZXJIYW5kbGVyPXRydWU7RXZlbnQub2JzZXJ2ZShiLCJtb3VzZW1vdmUiLHRoaXMu XyQxYS5iaW5kQXNFdmVudExpc3RlbmVyKGIpKTtFdmVudC5vYnNlcnZlKGIsIm1v dXNlb3V0Iix0aGlzLl8kMWIuYmluZEFzRXZlbnRMaXN0ZW5lcihiKSk7Yi5fJDFj PWF8fCJob3Zlci10bXAifSxfJDFhOmZ1bmN0aW9uKGEpe2lmKCFhfHwhYS50YXJn ZXR8fGEudGFyZ2V0Ll8kMWQpe3JldHVybn1pZighYS50YXJnZXQuXyQxYyl7cmV0 dXJufWEudGFyZ2V0LmFkZENsYXNzTmFtZShhLnRhcmdldC5fJDFjKTthLnRhcmdl dC5fJDFkPXRydWV9LF8kMWI6ZnVuY3Rpb24oYSl7aWYoIWF8fCFhLnRhcmdldHx8 IWEudGFyZ2V0Ll8kMWQpe3JldHVybn1pZighYS50YXJnZXQuXyQxYyl7cmV0dXJu fWEudGFyZ2V0LnJlbW92ZUNsYXNzTmFtZShhLnRhcmdldC5fJDFjKTthLnRhcmdl dC5fJDFkPWZhbHNlfSxfJDE4OmZ1bmN0aW9uKGEpe2lmKCFhfHxhLmhhc0hvdmVy SGFuZGxlcil7cmV0dXJufWEuaGFzSG92ZXJIYW5kbGVyPXRydWU7RXZlbnQub2Jz ZXJ2ZShhLCJtb3VzZW1vdmUiLHRoaXMuXyQxZS5iaW5kQXNFdmVudExpc3RlbmVy KGEpKTtFdmVudC5vYnNlcnZlKGEsIm1vdXNlb3V0Iix0aGlzLl8kMWYuYmluZEFz RXZlbnRMaXN0ZW5lcihhKSl9LF8kMWU6ZnVuY3Rpb24oYSl7aWYoIWF8fCFhLnRh cmdldHx8YS50YXJnZXQuXyQxZCl7cmV0dXJufWlmKCFhLnRhcmdldC5zcmMpe3Jl dHVybn12YXIgYj1hLnRhcmdldC5zcmM7aWYoIS9cLmhvdmVyXC4vLnRlc3QoYikp e2I9Yi5yZXBsYWNlKC8uKGpwZ3xwbmd8Z2lmKSQvLCIuaG92ZXIuJDEiKX1hLnRh cmdldC5zcmM9YjthLnRhcmdldC5fJDFkPXRydWV9LF8kMWY6ZnVuY3Rpb24oYSl7 aWYoIWF8fCFhLnRhcmdldHx8IWEudGFyZ2V0Ll8kMWQpe3JldHVybn1pZighYS50 YXJnZXQuc3JjKXtyZXR1cm59dmFyIGI9YS50YXJnZXQuc3JjO2I9Yi5yZXBsYWNl KC9cLmhvdmVyXC4vLCIuIik7YS50YXJnZXQuc3JjPWI7YS50YXJnZXQuXyQxZD1m YWxzZX0sXyQxNzpmdW5jdGlvbihhKXtpZighYXx8IWEubWVtbyl7cmV0dXJufXZh ciBiPXtVUkw6Ii8iK3RoaXMuXyQxNSsiL2ltYWdlcy9sYXlvdXQvaGVscC1ob3d0 b3VzZSIrKFRSLmxhbmc/KCIuIitUUi5sYW5nKToiIikrIi5wbmciLGltYWdlV2lk dGg6ODIwLGltYWdlSGVpZ2h0OjE1MDAsdW5pcXVlSWRWYWx1ZToiaGVscC1ob3d0 b3VzZSJ9O2RvY3VtZW50LmZpcmUoInVzZXI6c2NlbmV6b29tIixiKX0sRU5EXyQx NDpudWxsfSk7XyQyMD1DbGFzcy5jcmVhdGUoe2luaXRpYWxpemU6ZnVuY3Rpb24o Yil7T2JqZWN0LmV4dGVuZCh0aGlzLGJ8fHt9KTtpZih0eXBlb2YgdGhpcy5fJDE1 PT0idW5kZWZpbmVkIil7cmV0dXJufXRoaXMuXyQyMT1uZXcgT2JqZWN0KCk7dGhp cy5fJDIyPWZhbHNlO3RoaXMuXyQyMyhudWxsKTt0aGlzLl8kMjQ9e3RleHR1cmVJ bmRleDpudWxsLGNvbG9yU3BlYzpudWxsfTt0aGlzLl8kMjU9bmV3IEFycmF5KCk7 dGhpcy5fJDI2PW5ldyBBcnJheSgpO3RoaXMuXyQyNz1uZXcgQXJyYXkoKTtpZih0 aGlzLl8kMjgpe2Zvcih2YXIgZT0wLGY9U0NFTkVTLmNhdGVnb3J5Lmxlbmd0aDtl PGY7ZSsrKXt2YXIgZz1TQ0VORVMuY2F0ZWdvcnlbZV1bMF07dmFyIGM9KGc9PSJh bGwiKT8iYWxsIjoidW51c2VkIjt2YXIgYT10aGlzLl8kMjk/dGhpcy5fJDI5OnRo aXMuXyQxNTtpZihnPT1hKXtjPSJhbGwifWlmKGc9PWErIi4iK1N0cmluZyhUUi5s YW5nKSl7Yz0iYWxsIn1TQ0VORVMuY2F0ZWdvcnlbZV1bMF09Y319dGhpcy5fJDJh PW5ldyBPYmplY3QoKTtpZih0aGlzLl8kMmIpeyRIKHRoaXMuXyQyYikuZWFjaChm dW5jdGlvbihrKXt2YXIgaD10aGlzLl8kMmMoay5rZXkpO3ZhciBtPXRoaXMuXyQy ZChoKTt2YXIgbD1rLnZhbHVlO3ZhciBqPXRoaXMuXyQyZShoLGwpO2lmKGope2lm KCF0aGlzLl8kMmFbbV0pe3RoaXMuXyQyYVttXT1uZXcgT2JqZWN0KCl9dGhpcy5f JDJhW21dLl8kMmY9an19LHRoaXMpfWRvY3VtZW50Lm9ic2VydmUoIm1vZGVsOnNl bGVjdGNhdGVnb3J5Iix0aGlzLl8kMzAuYmluZEFzRXZlbnRMaXN0ZW5lcih0aGlz KSk7ZG9jdW1lbnQub2JzZXJ2ZSgibW9kZWw6c2VsZWN0c2NlbmUiLHRoaXMuXyQz MS5iaW5kQXNFdmVudExpc3RlbmVyKHRoaXMpKTtkb2N1bWVudC5vYnNlcnZlKCJt b2RlbDpzY2VuZWxvYWRlZCIsdGhpcy5fJDMyLmJpbmRBc0V2ZW50TGlzdGVuZXIo dGhpcykpO2RvY3VtZW50Lm9ic2VydmUoIm1vZGVsOmhvdmVyb2JqZWN0aWQiLHRo aXMuXyQzMy5iaW5kQXNFdmVudExpc3RlbmVyKHRoaXMpKTtkb2N1bWVudC5vYnNl cnZlKCJtb2RlbDpzZWxlY3RvYmplY3RpZCIsdGhpcy5fJDM0LmJpbmRBc0V2ZW50 TGlzdGVuZXIodGhpcykpO2RvY3VtZW50Lm9ic2VydmUoIm1vZGVsOnNlbGVjdHRl eHR1cmUiLHRoaXMuXyQzNS5iaW5kQXNFdmVudExpc3RlbmVyKHRoaXMpKTtkb2N1 bWVudC5vYnNlcnZlKCJtb2RlbDpzZWxlY3Rjb2xvciIsdGhpcy5fJDM2LmJpbmRB c0V2ZW50TGlzdGVuZXIodGhpcykpO2RvY3VtZW50Lm9ic2VydmUoIm1vZGVsOnNj ZW5lem9vbSIsdGhpcy5fJDM3LmJpbmRBc0V2ZW50TGlzdGVuZXIodGhpcykpO2Rv Y3VtZW50Lm9ic2VydmUoIm1vZGVsOnRleHR1cmV6b29tIix0aGlzLl8kMzguYmlu ZEFzRXZlbnRMaXN0ZW5lcih0aGlzKSk7ZG9jdW1lbnQub2JzZXJ2ZSgibW9kZWw6 cmV2ZWFsbGF5b3V0Iix0aGlzLl8kMzkuYmluZEFzRXZlbnRMaXN0ZW5lcih0aGlz KSl9LF8kMjM6ZnVuY3Rpb24obSxsLGIpe3ZhciByPW51bGw7dmFyIHE9W107dmFy IGc9IiI7dmFyIG49e21hcHBpbmdzOiIiLGdyb3VwczoiIixjb2xvcnM6IiJ9O3Zh ciBqPTA7dmFyIGM9bnVsbDt2YXIgbz0tMTt2YXIgdD0ibm9uZSI7dmFyIGU9MDtp Zih0eXBlb2YgbT09Im51bWJlciIpe2lmKCh0eXBlb2YgbSE9Im51bWJlciIpfHwo bTwwKXx8KG0+PVNDRU5FUy5uYW1lcy5sZW5ndGgpKXtyZXR1cm4gZmFsc2V9cj1t O3ZhciBjPVNDRU5FUy5uYW1lc1tyXTtpZigodHlwZW9mIGMhPSJzdHJpbmciKXx8 KGMubGVuZ3RoPDEpKXtyZXR1cm4gZmFsc2V9dmFyIHE9bHx8U0NFTkVTLmNhdGVn b3J5W3JdO2lmKCFfJGMocSkpe3JldHVybiBmYWxzZX12YXIgZz1ifHx0aGlzLl8k MmQocSk7dmFyIGs9T2JqZWN0LmNsb25lKFNDRU5FUy5vYmplY3RzW3JdKTtpZigo dHlwZW9mIGsubWFwcGluZ3M9PSJzdHJpbmciKSYmKGsubWFwcGluZ3MubGVuZ3Ro PjApKXtqPWsubWFwcGluZ3MubGVuZ3RoO24ubWFwcGluZ3M9ay5tYXBwaW5ncztu Lmdyb3Vwcz1rLmdyb3Vwc3x8IiI7aWYobi5ncm91cHMubGVuZ3RoPGope24uZ3Jv dXBzKz0iMCIudGltZXMoai1uLmdyb3Vwcy5sZW5ndGgpfW4uY29sb3JzPWsuY29s b3JzfHwiIjtpZihuLmNvbG9ycy5sZW5ndGg8ail7bi5jb2xvcnMrPSIwIi50aW1l cyhqLW4uY29sb3JzLmxlbmd0aCl9dmFyIHM9U0NFTkVTLm9iamVjdHNbcl0ueDtp ZihzKXt2YXIgaD1uZXcgT2JqZWN0KCk7Zm9yKHZhciBwPTAsZj1qO3A8ZjtwKysp e3ZhciBhPXNbU3RyaW5nKHApXTtpZihhKXtoW1N0cmluZyhwKV09YX19bi54PWh9 fX1pZihnIT0iYWxsIil7dGhpcy5fJDNhPXE7dGhpcy5fJDNiPWd9aWYodGhpcy5f JDNjKCkpe3JldHVybiB0cnVlfXRoaXMuXyQzZD1yO3RoaXMuXyQzZT1uO3RoaXMu XyQzZj1qO3RoaXMuXyQ0MD1jO3RoaXMuXyQ0MT1vO3RoaXMuXyQ0Mj10O3RoaXMu XyQ0Mz1lO3RoaXMuXyQyNT1uZXcgQXJyYXkoKTtpZih0aGlzLl8kM2Qpe31yZXR1 cm4gdHJ1ZX0sXyQyYzpmdW5jdGlvbihiKXt2YXIgYTtpZih0eXBlb2YgYj09InN0 cmluZyIpe2E9Yi5zcGxpdCgiLyIpfWVsc2V7YT1PYmplY3QuaXNBcnJheShiKT9i Om51bGx9cmV0dXJuIGF9LF8kMmQ6ZnVuY3Rpb24oYSl7dmFyIGI7aWYodHlwZW9m IGE9PSJzdHJpbmciKXtiPWF9ZWxzZXtiPU9iamVjdC5pc0FycmF5KGEpP2Euam9p bigiLyIpOm51bGx9cmV0dXJuIGJ9LF8kNDQ6ZnVuY3Rpb24oZixlLGEpe2lmKCFh KXtmPXRoaXMuXyQyYyhmKTtlPXRoaXMuXyQyYyhlKX1pZighXyRjKGYpfHwhXyRj KGUpKXtyZXR1cm4gZmFsc2V9Zm9yKHZhciBiPTAsYz1NYXRoLm1pbihmLmxlbmd0 aCxlLmxlbmd0aCk7YjxjO2IrKyl7aWYoKGZbYl09PSJhbGwiKXx8KGVbYl09PSJh bGwiKSl7cmV0dXJuIHRydWV9aWYoZltiXSE9ZVtiXSl7cmV0dXJuIGZhbHNlfX1y ZXR1cm4gdHJ1ZX0sXyQyZTpmdW5jdGlvbihhLGMpe2E9dGhpcy5fJDJjKGEpO2Zv cih2YXIgYj0wLGU9U0NFTkVTLm5hbWVzLmxlbmd0aDtiPGU7YisrKXtpZighYXx8 dGhpcy5fJDQ0KFNDRU5FUy5jYXRlZ29yeVtiXSxhLHRydWUpKXtpZighY3x8KFND RU5FUy5uYW1lc1tiXT09Yykpe3JldHVybiBifX19cmV0dXJuIG51bGx9LF8kMzA6 ZnVuY3Rpb24oZSl7aWYoIWV8fCFlLm1lbW8pe3JldHVybn1pZighZS5tZW1vLmNh dGVnb3J5UGF0aCYmIWUubWVtby5jYXRlZ29yeU5hbWUpe3JldHVybn12YXIgYT10 aGlzLl8kMmMoZS5tZW1vLmNhdGVnb3J5UGF0aHx8ZS5tZW1vLmNhdGVnb3J5TmFt ZSk7dmFyIGM9dGhpcy5fJDJkKGUubWVtby5jYXRlZ29yeVBhdGh8fGUubWVtby5j YXRlZ29yeU5hbWUpO2lmKCFfJGMoYSkpe3JldHVybn1pZigodHlwZW9mIGMhPSJz dHJpbmciKXx8KGMubGVuZ3RoPDEpKXtyZXR1cm59dmFyIGI9dGhpcy5fJDJhW2Nd P3RoaXMuXyQyYVtjXS5fJDJmOm51bGw7dmFyIGI9dGhpcy5fJDNkO2lmKCh0eXBl b2YgYiE9Im51bWJlciIpfHwoYjwwKXx8KGI+PVNDRU5FUy5uYW1lcy5sZW5ndGgp KXtiPXRoaXMuXyQyZShhLG51bGwpfWlmKCh0eXBlb2YgYiE9Im51bWJlciIpfHwo YjwwKXx8KGI+PVNDRU5FUy5uYW1lcy5sZW5ndGgpKXtyZXR1cm59aWYodGhpcy5f JDQ1KGIsYSxjKSl7fX0sXyQzMTpmdW5jdGlvbihiKXtpZighYnx8IWIubWVtbyl7 cmV0dXJufWlmKCFfJDkoYi5tZW1vLnNjZW5lSW5kZXgpKXtyZXR1cm59dmFyIGE9 Yi5tZW1vLnNjZW5lSW5kZXg7aWYodGhpcy5fJDQ1KGEpKXt9fSxfJDMyOmZ1bmN0 aW9uKGEpe2RvY3VtZW50LmZpcmUoInVzZXI6dXBkYXRlZGV0YWlsc3BhbmVsdG1w Iil9LF8kNDU6ZnVuY3Rpb24oYixhLGUpe2lmKCh0eXBlb2YgYiE9Im51bWJlciIp fHwoYjwwKXx8KGI+PVNDRU5FUy5uYW1lcy5sZW5ndGgpKXtyZXR1cm4gZmFsc2V9 dGhpcy5fJDQ2KCk7dmFyIGM9dGhpcy5fJDQ3KGIsYSxlKTtpZighYyl7fXJldHVy biBjfSxfJDQ4OmZ1bmN0aW9uKGEpe2lmKCFfJGIoYSkpe3JldHVybiAtMX1pZih0 aGlzLl8kM2UueCYmdGhpcy5fJDNlLnhbU3RyaW5nKGEpXSl7dmFyIGI9TnVtYmVy KHRoaXMuXyQzZS54W1N0cmluZyhhKV0pO2E9Yn1yZXR1cm4gYX0sXyQzMzpmdW5j dGlvbihiKXtpZighYnx8IWIubWVtbyl7cmV0dXJufWlmKHR5cGVvZiBiLm1lbW8u b2JqZWN0SUQ9PSJ1bmRlZmluZWQiKXtyZXR1cm59dmFyIGE9Yi5tZW1vLm9iamVj dElEO3ZhciBjPWIubWVtby5vYmplY3RUeXBlfHx0aGlzLl8kNDkoYSl9LF8kNGE6 ZnVuY3Rpb24oZyl7dmFyIGY9dGhpcy5fJDI0fHx7dGV4dHVyZUluZGV4Om51bGws Y29sb3JTcGVjOm51bGx9O2lmKCFnKXtyZXR1cm4gZn12YXIgYT1nLnRleHR1cmVJ bmRleHx8bnVsbDt2YXIgYj1mLnRleHR1cmVJbmRleHx8bnVsbDt2YXIgZT10aGlz Ll8kNGIoZy5jb2xvclNwZWMpfHxudWxsO3ZhciBjPXRoaXMuXyQ0YihmLmNvbG9y U3BlYyl8fG51bGw7aWYoKGI9PWEpJiYoYz09ZSkpe3JldHVybnt0ZXh0dXJlSW5k ZXg6bnVsbCxjb2xvclNwZWM6bnVsbH19cmV0dXJuIGZ9LF8kMzQ6ZnVuY3Rpb24o Yyl7aWYoIWN8fCFjLm1lbW8pe3JldHVybn1pZih0eXBlb2YgYy5tZW1vLm9iamVj dElEPT0idW5kZWZpbmVkIil7cmV0dXJufXZhciBiPVNDRU5FUy5vYmplY3RzLm1h cHBpbmdzO3RoaXMuXyQ0MT1jLm1lbW8ub2JqZWN0SUQ7dGhpcy5fJDQzPTA7dmFy IGE9dGhpcy5fJDQ5KHRoaXMuXyQ0MSk7dmFyIGU9dGhpcy5fJDRjKHRoaXMuXyQ0 MSk7aWYoIWF8fCh0eXBlb2YgZSE9Im51bWJlciIpKXtyZXR1cm59aWYoKGE9PSJ0 ZXh0dXJlIikmJihlPjApJiZ0aGlzLl8kMjQmJnRoaXMuXyQyNC5jb2xvclNwZWMp e3RoaXMuXyQyNltlXT10aGlzLl8kNGEodGhpcy5fJDI2W2VdKX1lbHNle3RoaXMu XyQyNVt0aGlzLl8kNDFdPXRoaXMuXyQ0YSh0aGlzLl8kMjVbdGhpcy5fJDQxXSl9 ZG9jdW1lbnQuZmlyZSgidXNlcjp1cGRhdGVkZXRhaWxzcGFuZWx0bXAiKTtkb2N1 bWVudC5maXJlKCJ1c2VyOnNlbGVjdHNjZW5lIik7dGhpcy5fJDRkKHRydWUpfSxf JDM1OmZ1bmN0aW9uKGIpe2lmKCFifHwoIWIudGFyZ2V0JiYhYi5tZW1vKSl7cmV0 dXJufWlmKGIudGFyZ2V0JiYodHlwZW9mIGIudGFyZ2V0Lmdyb3VwSW5kZXg9PSJu dW1iZXIiKSl7dmFyIGc9Yi50YXJnZXQuZ3JvdXBJbmRleDt2YXIgZj10aGlzLl8k MjZbZ107aWYoIWZ8fCgoIWYudGV4dHVyZUluZGV4KSYmKCFmLmNvbG9yU3BlYykp KXt0aGlzLl8kMjZbZ109dGhpcy5fJDRhKGYpfXRoaXMuXyQyND10aGlzLl8kMjZb Z118fHt0ZXh0dXJlSW5kZXg6bnVsbCxjb2xvclNwZWM6bnVsbH07Yi5tZW1vPW5l dyBPYmplY3QoKTtiLm1lbW8udGV4dHVyZUluZGV4PXRoaXMuXyQyNC50ZXh0dXJl SW5kZXg7ZG9jdW1lbnQuZmlyZSgidXNlcjpzZWxlY3RzY2VuZSIpfWlmKCFifHwh Yi5tZW1vKXtyZXR1cm59aWYoIV8kYShiLm1lbW8udGV4dHVyZUluZGV4KSl7cmV0 dXJufXZhciBlPWIubWVtby50ZXh0dXJlSW5kZXg7dmFyIGE9dGhpcy5fJDRlKGUp O3ZhciBjPShhJiZhLm5hbWUpP3RoaXMuXyQ0YihhLmNvbG9yc1swXSk6bnVsbDt0 aGlzLl8kMjQ9e3RleHR1cmVJbmRleDpiLm1lbW8udGV4dHVyZUluZGV4LGNvbG9y U3BlYzpjfTtkb2N1bWVudC5maXJlKCJ1c2VyOnVwZGF0ZWNvbG9yc3BhbmVsdG1w Iik7ZG9jdW1lbnQuZmlyZSgidXNlcjp1cGRhdGVkZXRhaWxzcGFuZWx0bXAiKTt0 aGlzLl8kNGQodHJ1ZSl9LF8kMzY6ZnVuY3Rpb24oYSl7aWYoIWF8fCFhLnRhcmdl dHx8IWEudGFyZ2V0LmNvbG9yU3BlYyl7cmV0dXJufXZhciBiPXRoaXMuXyQ0Zihh LnRhcmdldC5jb2xvclNwZWMpO2lmKGIpe3RoaXMuXyQyND17Y29sb3JTcGVjOmJ9 O3RoaXMuXyQ0ZCh0cnVlKX19LF8kNGQ6ZnVuY3Rpb24oKXt2YXIgaD1udWxsO2lm KHRoaXMuXyQyNCl7aD10aGlzLl8kMjQudGV4dHVyZUluZGV4fWlmKCFfJGEoaCkp e2g9bnVsbH12YXIgZz1udWxsO2lmKHRoaXMuXyQyNCl7Zz10aGlzLl8kNGIodGhp cy5fJDI0LmNvbG9yU3BlYyl9JCQoIi50ZXh0dXJlcy1wYW5lbC10aHVtYm5haWwi KS5lYWNoKGZ1bmN0aW9uKGMpe2Muc3R5bGUuYm9yZGVyQ29sb3I9KGgmJihjLl8k NTA9PWgpKT8iIzAwMDAwMCI6IiNlZWVlZWUifSx0aGlzKTtmb3IodmFyIGU9MTtl PD00O2UrKyl7dmFyIGI9JCgiZGV0YWlscy1wYW5lbC10ZXh0dXJlLXRodW1ibmFp bC0iK2UpO2lmKGIpe3ZhciBmPXRoaXMuXyQyNltlXXx8e307Yi5zdHlsZS5ib3Jk ZXJDb2xvcj0oaCYmKGYudGV4dHVyZUluZGV4PT1oKSk/IiMwMDAwMDAiOiIjZWVl ZWVlIn19Zm9yKHZhciBrPTE7azw9NjtrKyspe3ZhciBhPSQoImRldGFpbHMtcGFu ZWwtY29sb3ItIitrKTtpZihhKXt2YXIgaj17Y29sb3JTcGVjOihhLmNvbG9yU3Bl Y3x8IiIpfTthLnN0eWxlLmJvcmRlckNvbG9yPShnJiYhaCYmKGouY29sb3JTcGVj PT1nKSk/IiMwMDAwMDAiOiIjZWVlZWVlIn19fSxfJDQ2OmZ1bmN0aW9uKCl7dmFy IGE9dGhpcy5fJDNkO2lmKCh0eXBlb2YgYSE9Im51bWJlciIpfHwoYTwwKXx8KGE+ PVNDRU5FUy5uYW1lcy5sZW5ndGgpKXtyZXR1cm59dmFyIGI9dGhpcy5fJDNiO2lm KCh0eXBlb2YgYiE9InN0cmluZyIpfHwoYi5sZW5ndGg8MSkpe3JldHVybn12YXIg Yz17XyQyNTp0aGlzLl8kMjUsRU5EXyQyNzpudWxsfTt0aGlzLl8kMjdbYV09Yztp ZighdGhpcy5fJDJhW2JdKXt0aGlzLl8kMmFbYl09bmV3IE9iamVjdCgpfXRoaXMu XyQyYVtiXS5fJDJmPXRoaXMuXyQzZH0sXyQ0NzpmdW5jdGlvbihlLGIsZyl7aWYo KHR5cGVvZiBlIT0ibnVtYmVyIil8fChlPDApfHwoZT49U0NFTkVTLm5hbWVzLmxl bmd0aCkpe3JldHVybiBmYWxzZX12YXIgYT10aGlzLl8kM2Q7dmFyIGY9dGhpcy5f JDNhO3ZhciBjPXRoaXMuXyQzYjtpZigoZT09YSkmJihiPT1mKSl7cmV0dXJuIGZh bHNlfWlmKCF0aGlzLl8kMjMoZSxiLGcpKXtyZXR1cm4gZmFsc2V9dmFyIGg9dGhp cy5fJDI3W2VdfHxuZXcgT2JqZWN0KCk7dGhpcy5fJDI1PWguXyQyNXx8bmV3IEFy cmF5KCk7aWYodGhpcy5fJDNiIT1jKXtkb2N1bWVudC5maXJlKCJ1c2VyOnNlbGVj dGNhdGVnb3J5Iil9aWYodGhpcy5fJDNkIT1hKXtkb2N1bWVudC5maXJlKCJ1c2Vy OnNlbGVjdHNjZW5lIil9cmV0dXJuIHRydWV9LF8kNTE6ZnVuY3Rpb24oayxjLGEs bSl7aWYoIWspe3JldHVybn12YXIgYjtpZihhPT0ic2NlbmVzIil7Yj1TQ0VORVN9 ZWxzZXtpZihhPT0idGV4dHVyZXMiKXtiPVRFWFRVUkVTfWVsc2V7cmV0dXJufX1t PW0/dGhpcy5fJDJjKG0pOnRoaXMuXyQzYTtpZighXyRjKG0pKXtyZXR1cm59dmFy IGo9e307dmFyIGc9Yi5jYXRlZ29yeTtmb3IodmFyIGg9MCxmPWIubmFtZXMubGVu Z3RoO2g8ZjtoKyspe2lmKCF0aGlzLl8kNDQoZ1toXSx0aGlzLl8kM2EpKXtjb250 aW51ZX10aGlzLl8kNTIoYSxoLGopO2lmKCFqLm5hbWUpe2NvbnRpbnVlfXRyeXtp ZihjKXtrLmFwcGx5KGMsW2osaF0pfWVsc2V7ayhqLGgpfX1jYXRjaChsKXtpZihs IT0kYnJlYWspe3Rocm93IGx9fX19LF8kNTM6ZnVuY3Rpb24oYixhKXtyZXR1cm4g dGhpcy5fJDUxKGIsYSwic2NlbmVzIil9LF8kNTQ6ZnVuY3Rpb24oYixhKXtyZXR1 cm4gdGhpcy5fJDUxKGIsYSwidGV4dHVyZXMiKX0sXyQ1MjpmdW5jdGlvbihmLGMs Yil7aWYoKGYhPSJzY2VuZXMiKSYmKGYhPSJ0ZXh0dXJlcyIpKXtyZXR1cm4gbnVs bH1pZighYil7Yj17fX1lbHNle2IubmFtZT1udWxsfWlmKChmPT0ic2NlbmVzIikm JihfJDkoYykpKXt2YXIgYT1TQ0VORVM7Yi5uYW1lPWEubmFtZXNbY107Yi50aXRs ZT1udWxsO2Iubm9ybWFsX3dpZHRoPWEubm9ybWFsX3dpZHRoW2NdO2Iubm9ybWFs X2hlaWdodD1hLm5vcm1hbF9oZWlnaHRbY107Yi56b29tX3dpZHRoPWEuem9vbV93 aWR0aFtjXTtiLnpvb21faGVpZ2h0PWEuem9vbV9oZWlnaHRbY107Yi5jYXRlZ29y eT1hLmNhdGVnb3J5W2NdO2Iub2JqZWN0cz1hLm9iamVjdHNbY119aWYoKGY9PSJ0 ZXh0dXJlcyIpJiYoXyRhKGMpKSl7dmFyIGU9VEVYVFVSRVM7Yi5uYW1lPWUubmFt ZXNbY107Yi50aXRsZT1iLm5hbWU7Yi5jYXRlZ29yeT1lLmNhdGVnb3J5W2NdO2Iu Y29sb3JzPWUuY29sb3JzW2NdfWIuXyQ1NT1jO3JldHVybiBifSxfJDU2OmZ1bmN0 aW9uKGIsYSl7cmV0dXJuIHRoaXMuXyQ1Migic2NlbmVzIixiLGEpfSxfJDRlOmZ1 bmN0aW9uKGIsYSl7cmV0dXJuIHRoaXMuXyQ1MigidGV4dHVyZXMiLGIsYSl9LF8k NDk6ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGEhPSJudW1iZXIiKXtyZXR1cm4gbnVs bH1pZigoYT49MCkmJnRoaXMuXyQzZSYmdGhpcy5fJDNlLm1hcHBpbmdzJiYoYTx0 aGlzLl8kM2YpKXt2YXIgYj10aGlzLl8kM2UubWFwcGluZ3Muc3Vic3RyaW5nKGEs YSsxKTtpZigvW1RdLy50ZXN0KGIpKXtyZXR1cm4idGV4dHVyZSJ9aWYoL1tDY3Rd Ly50ZXN0KGIpKXtyZXR1cm4iY29sb3IifWlmKC9bWHhdLy50ZXN0KGIpKXtyZXR1 cm4ibm9uZSJ9fXJldHVybiJub25lIn0sXyQ0YzpmdW5jdGlvbihhKXtpZih0eXBl b2YgYSE9Im51bWJlciIpe3JldHVybiBudWxsfWlmKChhPj0wKSYmdGhpcy5fJDNl JiZ0aGlzLl8kM2UuZ3JvdXBzJiYoYTx0aGlzLl8kM2YpKXt2YXIgYj1wYXJzZUlu dCh0aGlzLl8kM2UuZ3JvdXBzLnN1YnN0cmluZyhhLGErMSkpO2lmKGlzTmFOKGIp KXtiPTB9cmV0dXJuIGJ9cmV0dXJuIjAifSxfJDU3OmZ1bmN0aW9uKGYsYixoLGUp e3ZhciBhPXRoaXMuXyQzZDtpZigodHlwZW9mIGEhPSJudW1iZXIiKXx8KGE8MCl8 fChhPj1TQ0VORVMubmFtZXMubGVuZ3RoKSl7cmV0dXJuIG51bGx9aWYoIXRoaXMu XyQxNXx8IXRoaXMuXyQ0MCl7cmV0dXJuIG51bGx9dmFyIGc9dGhpcy5fJDE1KyIv Iit0aGlzLl8kNDA7aWYoKHR5cGVvZiBmIT0ibnVtYmVyIil8fCh0eXBlb2YgYiE9 Im51bWJlciIpKXtyZXR1cm4gbnVsbH12YXIgYz0iIjtpZigodHlwZW9mIGg9PSJu dW1iZXIiKSYmKHR5cGVvZiBlPT0ibnVtYmVyIikpe2lmKChoPD0xKXx8KGU8PTEp KXtyZXR1cm4gbnVsbH1jPSIrIitoKyIrIitlO2lmKGY+aCl7Zj1ofWlmKGI+ZSl7 Yj1lfX1pZihmPDEpe2Y9MX1pZihiPDEpe2I9MX12YXIgaj0iKyIrZisiKyIrYjty ZXR1cm4iL2FwaS94eWhlbHBlci5leGU/IitnK2orYysiJmpzb24ifSxfJDRiOmZ1 bmN0aW9uKGIpe2lmKHR5cGVvZiBiPT0ic3RyaW5nIil7cmV0dXJuIGJ9aWYoIU9i amVjdC5pc0FycmF5KGIpfHwoYi5sZW5ndGg8Mykpe3JldHVybiBudWxsfXZhciBh PSIjIitiWzBdLnRvQ29sb3JQYXJ0KCkrYlsxXS50b0NvbG9yUGFydCgpK2JbMl0u dG9Db2xvclBhcnQoKTtyZXR1cm4gYX0sXyQ0ZjpmdW5jdGlvbihhKXtpZihPYmpl Y3QuaXNBcnJheShhKSYmKGEubGVuZ3RoPj0zKSl7cmV0dXJuIGF9aWYodHlwZW9m IGEhPSJzdHJpbmciKXtyZXR1cm4gbnVsbH1hPWEucGFyc2VDb2xvcigpO2lmKCh0 eXBlb2YgYSE9InN0cmluZyIpfHwoYS5sZW5ndGghPTcpKXtyZXR1cm4gbnVsbH1y ZXR1cm4gJFIoMCwyKS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIHBhcnNlSW50KGEu c2xpY2UoYioyKzEsYioyKzMpLDE2KX0pfSxfJDU4OmZ1bmN0aW9uKG8pe3ZhciBj PXRoaXMuXyQzZDtpZigodHlwZW9mIGMhPSJudW1iZXIiKXx8KGM8MCl8fChjPj1T Q0VORVMubmFtZXMubGVuZ3RoKSl7cmV0dXJuIG51bGx9aWYoIXRoaXMuXyQxNXx8 IXRoaXMuXyQ0MHx8IXRoaXMuXyQyNSl7cmV0dXJuIG51bGx9dmFyIG09bmV3IEFy cmF5KCk7Zm9yKHZhciBoPTAsYT10aGlzLl8kM2Y7aDxhO2grKyl7dmFyIGU9dGhp cy5fJDQ5KGgpO2lmKGU9PSJub25lIil7Y29udGludWV9dmFyIGo9dGhpcy5fJDI1 W2hdO2lmKCFqfHwoIWoudGV4dHVyZUluZGV4JiYhai5jb2xvclNwZWMpKXt2YXIg Zj10aGlzLl8kNGMoaCk7aWYoKHR5cGVvZiBmPT0ibnVtYmVyIikmJihmPjApKXtq PXRoaXMuXyQyNltmXX19aWYoail7dmFyIG49dGhpcy5fJDRiKGouY29sb3JTcGVj KTt2YXIgZz1qLnRleHR1cmVJbmRleDt2YXIgYixsO2I9KHR5cGVvZiBuPT0ic3Ry aW5nIik/bi5yZXBsYWNlKC9eWyNdLywiIikudG9Mb3dlckNhc2UoKTpudWxsO2lm KF8kYShnKSl7bD10aGlzLl8kNGUoZyk7aWYoIWwubmFtZSl7bD1udWxsfX1pZihs JiYoZT09InRleHR1cmUiKSl7bVtoXT0oIiZ0IitoKyI9IitsLm5hbWUpfWVsc2V7 aWYoYil7bVtoXT0iJmMiK2grIj0iK2J9fX19dmFyIGs9Ii8iK3RoaXMuXyQxNSsi L2FwaS8/c2NlbmU9Iit0aGlzLl8kNDArbS5jb21wYWN0KCkuam9pbigiJiIpKyhv PyImc2l6ZT16b29tIjoiIik7cmV0dXJuIGt9LF8kNTk6ZnVuY3Rpb24oZSxiKXt2 YXIgZixhO2lmKC9ec2NlbmVzPy0vLnRlc3QoZSkpe2Y9InNjZW5lcyJ9aWYoL150 ZXh0dXJlcz8tLy50ZXN0KGUpKXtmPSJ0ZXh0dXJlcyJ9aWYodHlwZW9mIGYhPSJ1 bmRlZmluZWQiKXthPXRoaXMuXyQ1MihmLGIpO2lmKCFhfHwhYS5uYW1lKXtmPW51 bGx9fWlmKC9ecGxhY2Vob2xkZXItPy8udGVzdChlKSl7Zj0icGxhY2Vob2xkZXIi fWlmKHR5cGVvZiBmPT0idW5kZWZpbmVkIil7ZT0icGxhY2Vob2xkZXIifXZhciBj O3N3aXRjaChlKXtjYXNlInNjZW5lLXRodW1ibmFpbC1taW5pIjpjPSIvIit0aGlz Ll8kMTUrIi9hcGkvP3NjZW5lPSIrU3RyaW5nKGEubmFtZSkrIiZzaXplPW1pbmki O2JyZWFrO2Nhc2Uic2NlbmUtdGh1bWJuYWlsLXNtYWxsIjpjPSJpbWFnZXMvc2Nl bmVzLyIrYS5uYW1lKyIuc21hbGwucG5nPzEiO2JyZWFrO2Nhc2Uic2NlbmUtdGh1 bWJuYWlsLWxhcmdlIjpjPSJpbWFnZXMvc2NlbmVzLyIrYS5uYW1lKyIubGFyZ2Uu cG5nPzEiO2JyZWFrO2Nhc2UidGV4dHVyZS10aHVtYm5haWwtbGFyZ2UiOmM9Imlt YWdlcy9wcmV2aWV3cy5keW4tc2NhbGVkLjkxeDcxLyIrYS5uYW1lKyIucG5nIjti cmVhaztjYXNlInRleHR1cmUtdGh1bWJuYWlsLXNtYWxsIjpjPSJpbWFnZXMvcHJl dmlld3MuZHluLXNjYWxlZC45MXgyMy8iK2EubmFtZSsiLnBuZyI7YnJlYWs7Y2Fz ZSJ0ZXh0dXJlLXByZXZpZXctem9vbSI6Yz0iaW1hZ2VzL3ByZXZpZXdzLmN1dC43 MTh4NjA4LyIrYS5uYW1lKyIuanBnIjticmVhaztjYXNlInRleHR1cmUtcHJldmll dy16b29tLW92ZXJsYXkiOmM9ImltYWdlcy9wcmV2aWV3cy5zY2FsZWQuMTk0eDIz Ni8iK2EubmFtZSsiLmpwZyI7YnJlYWs7Y2FzZSJwbGFjZWhvbGRlci10ZXh0dXJl LXRodW1ibmFpbC1ncm91cC1pY29uIjpjPSJpbWFnZXMvbGF5b3V0L3RleHR1cmUt IitOdW1iZXIoYnx8MCkrIi5wbmciO2JyZWFrO2Nhc2UicGxhY2Vob2xkZXItbGln aHRncmF5IjpjPSJpbWFnZXMvbGF5b3V0LzF4MS1saWdodGdyYXkuZ2lmIjticmVh aztjYXNlInBsYWNlaG9sZGVyLXRyYW5zcGFyZW50IjpjYXNlInBsYWNlaG9sZGVy IjpjPSJpbWFnZXMvbGF5b3V0LzF4MS10cmFucy5naWYiO2JyZWFrO2RlZmF1bHQ6 Yz1udWxsO2JyZWFrfXJldHVybiBjfSxfJDM3OmZ1bmN0aW9uKGMpe2lmKCFjfHwh Yy5tZW1vKXtyZXR1cm59dmFyIGI9dGhpcy5fJDNkO3ZhciBlPXRoaXMuXyQ1Nihi KTtpZighXyQ5KGIpfHwhZSl7cmV0dXJufXZhciBhPXRoaXMuXyQ1OCh0cnVlKTtp ZihhKXt2YXIgZj17VVJMOmEsaW1hZ2VXaWR0aDplLnpvb21fd2lkdGh8fDEsaW1h Z2VIZWlnaHQ6ZS56b29tX2hlaWdodHx8MSx1bmlxdWVJZFZhbHVlOiJzY2VuZS0i K1N0cmluZyhiKX07ZG9jdW1lbnQuZmlyZSgidXNlcjpzY2VuZXpvb20iLGYpfX0s XyQzODpmdW5jdGlvbihhKXtpZighYXx8IWEubWVtbyl7cmV0dXJufWlmKCFfJGEo YS5tZW1vLnRleHR1cmVJbmRleCkpe3JldHVybn19LF8kNWE6ZnVuY3Rpb24oYSl7 dGhpcy5fJDIyPWF9LF8kM2M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fJDIyfSxf JDViOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXyQ1Y30sXyQzOTpmdW5jdGlvbihh KXtpZih0aGlzLl8kNWMpe3JldHVybn10aGlzLl8kNWM9dHJ1ZTtpZihhJiZhLm1l bW8mJihhLm1lbW8udGltZW91dCkpe31fJDUoImxheW91dC1sb2FkaW5nIik7JCQo Ii52aXNpYmxlLWFmdGVyLWluaXRpYWwtcmVsYXlvdXQiKS5lYWNoKGZ1bmN0aW9u KGIpe18kNChiKX0pO2lmKHR5cGVvZiBUUi5sYW5nPT0ic3RyaW5nIil7JCQoIi52 aXNpYmxlLWFmdGVyLWluaXRpYWwtcmVsYXlvdXQtZm9yLSIrVFIubGFuZykuZWFj aChmdW5jdGlvbihiKXtfJDQoYil9KX19LEVORF8kMjA6bnVsbH0pO18kNWQ9Q2xh c3MuY3JlYXRlKHtpbml0aWFsaXplOmZ1bmN0aW9uKGEpe09iamVjdC5leHRlbmQo dGhpcyxhfHx7fSk7aWYodHlwZW9mIHRoaXMuXyQ1ZT09InVuZGVmaW5lZCIpe3Jl dHVybn10aGlzLl8kNWY9dGhpcy5fJDVmfHw0O3RoaXMuXyQ2MD0xMDA7dGhpcy5f JDYxPSRBKCk7dGhpcy5fJDYyPTA7dGhpcy5fJDYzPXRoaXMuXyQ2NC5iaW5kQXNF dmVudExpc3RlbmVyKHRoaXMpO3RoaXMuXyQ2NT1mYWxzZX0sXyQ2NjpmdW5jdGlv bihhKXt0aGlzLl8kNjcoKTt0aGlzLl8kNjU9c2V0VGltZW91dCh0aGlzLl8kNjMs dGhpcy5fJDYwKX0sXyQ2NzpmdW5jdGlvbihhKXtpZih0aGlzLl8kNjUpe2NsZWFy VGltZW91dCh0aGlzLl8kNjUpO3RoaXMuXyQ2NT1mYWxzZX19LF8kNjQ6ZnVuY3Rp b24oZSl7aWYodGhpcy5fJDYxLmxlbmd0aD09MCl7dGhpcy5fJDY3KCk7cmV0dXJu fXZhciBoPXRoaXMuXyQ2MTt2YXIgYz10aGlzLl8kNjI7dmFyIGc9dGhpcy5fJDYy K3RoaXMuXyQ1Zi0xO2lmKGc+PWgubGVuZ3RoKXtnPWgubGVuZ3RofWZvcih2YXIg Yj1jO2I8PWc7YisrKXt2YXIgZj1oW2JdO2hbYl09bnVsbDtpZihmJiZmLmRlbGF5 TG9hZFVSTCYmKGYuc3JjIT1mLmRlbGF5TG9hZFVSTCkpe3ZhciBhPWYuZGVsYXlM b2FkVVJMO2YuZGVsYXlMb2FkVVJMPW51bGw7Zi5uZXdJbWFnZT1uZXcgSW1hZ2Uo KTtFdmVudC5vYnNlcnZlKGYubmV3SW1hZ2UsImxvYWQiLHRoaXMuXyQ2OC5iaW5k QXNFdmVudExpc3RlbmVyKGYpKTtmLm5ld0ltYWdlLnNyYz1hO2lmKFByb3RvdHlw ZS5Ccm93c2VyLk9wZXJhJiZmLm5ld0ltYWdlLmNvbXBsZXRlKXt0aGlzLl8kNjgu YXBwbHkoZil9fX10aGlzLl8kNjI9ZysxO2lmKHRoaXMuXyQ2Mj49aC5sZW5ndGgp e3RoaXMuXyQ2MT0kQSgpO3RoaXMuXyQ2Mj0wO3RoaXMuXyQ2NygpfWVsc2V7dGhp cy5fJDY1PXNldFRpbWVvdXQodGhpcy5fJDYzLHRoaXMuXyQ2MCl9fSxfJDY4OmZ1 bmN0aW9uKGIpe3ZhciBrPXRoaXMubmV3SW1hZ2U7aWYoIWspe3JldHVybn10aGlz Lm5ld0ltYWdlPW51bGw7RXZlbnQuc3RvcE9ic2VydmluZyh0aGlzLm5ld0ltYWdl LCJsb2FkIik7dmFyIG49dGhpcy53aWR0aDt2YXIgZj10aGlzLmhlaWdodDtpZigh bnx8IWYpe3JldHVybn12YXIgYT1wYXJzZUludCh0aGlzLnN0eWxlLmxlZnQpO3Zh ciBsPXBhcnNlSW50KHRoaXMuc3R5bGUudG9wKTtpZigodHlwZW9mIGEhPSJudW1i ZXIiKXx8KHR5cGVvZiBsIT0ibnVtYmVyIikpe3JldHVybn12YXIgZT1hK01hdGgu cm91bmQobi8yKTt2YXIgYz1sK01hdGgucm91bmQoZi8yKTt2YXIgZz1rLndpZHRo O3ZhciBoPWsuaGVpZ2h0O2lmKCFnfHwhaCl7cmV0dXJufXZhciBtPWUtTWF0aC5y b3VuZChnLzIpO3ZhciBqPWMtTWF0aC5yb3VuZChoLzIpO2lmKG0hPWEpe3RoaXMu c3R5bGUubGVmdD1tKyJweCJ9aWYoaiE9bCl7dGhpcy5zdHlsZS50b3A9aisicHgi fWlmKGchPW4pe3RoaXMud2lkdGg9Z31pZihoIT1mKXt0aGlzLmhlaWdodD1ofXRo aXMuc3JjPWsuc3JjO3RoaXMuc3R5bGUudmlzaWJpbGl0eT0idmlzaWJsZSJ9LEVO RF8kNWQ6bnVsbH0pO18kNjk9Q2xhc3MuY3JlYXRlKHtfJDZhOiJpbnZpc2libGUi LGluaXRpYWxpemU6ZnVuY3Rpb24oYSl7T2JqZWN0LmV4dGVuZCh0aGlzLGF8fHt9 KTtpZih0eXBlb2YgdGhpcy5fJDVlPT0idW5kZWZpbmVkIil7cmV0dXJufWlmKHR5 cGVvZiB0aGlzLl8kNmI9PSJ1bmRlZmluZWQiKXtyZXR1cm59dGhpcy5fJDZjPSQo dGhpcy5fJDZiKyItY29udGFpbmVyIik7dGhpcy5fJDZkPSQodGhpcy5fJDZiKyIt bG9hZGluZyIpO3RoaXMuXyQ2ZT0kKHRoaXMuXyQ2Yik7dGhpcy5fJDZmPSQoInNl Y29uZGFyeS0iK3RoaXMuXyQ2Yik7aWYoIXRoaXMuXyQ2Y3x8IXRoaXMuXyQ2ZXx8 IXRoaXMuXyQ2Zil7cmV0dXJufXRoaXMuXyQ3MD0iIjtpZih0aGlzLl8kNmUpe3Ro aXMuXyQ3MD10aGlzLl8kNmUuY2xhc3NOYW1lfHwiIn10aGlzLl8kNzE9JCh0aGlz Ll8kNmIrIi1mYWRlciIpO2lmKHRoaXMuXyQ3MSl7dGhpcy5fJDcxLnN0eWxlLmJh Y2tncm91bmRDb2xvcj0iYmxhY2siO3RoaXMuXyQ3MS5zZXRPcGFjaXR5KDAuMSk7 XyQ1KHRoaXMuXyQ3MSl9dGhpcy5fJDcyPTUwMDt0aGlzLl8kNzM9bnVsbDt0aGlz Ll8kNzQ9MTUwMDA7dGhpcy5fJDc1PW51bGw7dGhpcy5fJDc2PW51bGw7dGhpcy5f JDc3PW51bGw7dGhpcy5fJDc4PW51bGw7dGhpcy5fJDc5KCk7ZG9jdW1lbnQub2Jz ZXJ2ZSgidXNlcjpzZWxlY3RzY2VuZSIsdGhpcy5fJDMxLmJpbmRBc0V2ZW50TGlz dGVuZXIodGhpcykpO3RoaXMuXyQ3YT0xMDt0aGlzLl8kN2I9MjAwO3RoaXMuXyQ3 Yz1uZXcgRGF0ZSgpLmdldE1pbGxpc2Vjb25kcygpfHwwO3RoaXMuXyQ3ZD1mYWxz ZTt0aGlzLl8kN2U9bnVsbDtpZih0aGlzLl8kNmUpe0V2ZW50Lm9ic2VydmUodGhp cy5fJDZlLCJtb3VzZW1vdmUiLHRoaXMuXyQ3Zi5iaW5kQXNFdmVudExpc3RlbmVy KHRoaXMpKTtFdmVudC5vYnNlcnZlKHRoaXMuXyQ2ZSwibW91c2VvdXQiLHRoaXMu XyQ4MC5iaW5kQXNFdmVudExpc3RlbmVyKHRoaXMpKTtFdmVudC5vYnNlcnZlKHRo aXMuXyQ2ZSwiY2xpY2siLHRoaXMuXyQ4MS5iaW5kQXNFdmVudExpc3RlbmVyKHRo aXMpKX10aGlzLl8kODI9bmV3IF8kODMoe18kNmI6dGhpcy5fJDZiKyItem9vbS1p Y29uIixfJDg0OnRoaXMuXyQ2ZSxfJDg1OnRoaXMuXyQzNy5iaW5kQXNFdmVudExp c3RlbmVyKHRoaXMpLF8kODY6ZmFsc2V9KX0sXyQ3ZjpmdW5jdGlvbihnKXtpZigh dGhpcy5fJDZlKXtyZXR1cm59aWYodGhpcy5fJDdlJiYhdGhpcy5fJDdlLl9jb21w bGV0ZSl7cmV0dXJufXZhciBiPXRoaXMuXyQ3Y3x8MDt2YXIgaD1uZXcgRGF0ZSgp LmdldE1pbGxpc2Vjb25kcygpO3ZhciBjPU1hdGguYWJzKGgtYik7aWYoYzwxMDAp e3JldHVybiBmYWxzZX12YXIgZj0odHlwZW9mIGcub2Zmc2V0WCE9InVuZGVmaW5l ZCIpP2cub2Zmc2V0WCsxOmcubGF5ZXJYO3ZhciBlPSh0eXBlb2YgZy5vZmZzZXRZ IT0idW5kZWZpbmVkIik/Zy5vZmZzZXRZKzE6Zy5sYXllclk7aWYoKHR5cGVvZiBm IT0ibnVtYmVyIil8fGlzTmFOKGYpfHwoZjwxKXx8KHR5cGVvZiBmIT0ibnVtYmVy Iil8fGlzTmFOKGUpfHwoZTwxKSl7cmV0dXJufXZhciBiPXRoaXMuXyQ3Y3x8MDt2 YXIgaD1uZXcgRGF0ZSgpLmdldE1pbGxpc2Vjb25kcygpO2lmKChjPHRoaXMuXyQ3 YikmJihNYXRoLmFicyhmLXRoaXMuXyQ4Nyk8dGhpcy5fJDdhKSYmKE1hdGguYWJz KGUtdGhpcy5fJDg4KTx0aGlzLl8kN2EpKXtyZXR1cm59dGhpcy5fJDdjPWg7dGhp cy5fJDg3PWY7dGhpcy5fJDg4PWU7dmFyIGE9dGhpcy5fJDVlLl8kNTcoZixlLHRo aXMuXyQ2ZS53aWR0aCx0aGlzLl8kNmUuaGVpZ2h0KTtpZighYSl7cmV0dXJufXRo aXMuXyQ3ZT1uZXcgQWpheC5SZXF1ZXN0KGEse21ldGhvZDoiR0VUIixldmFsSlM6 ZmFsc2UsZXZhbEpTT046ZmFsc2Usb25TdWNjZXNzOnRoaXMuXyQ4OS5iaW5kKHRo aXMpfSl9LF8kODk6ZnVuY3Rpb24oYil7aWYoIXRoaXMuXyQ1ZSl7cmV0dXJufXZh ciBjPWIucmVzcG9uc2VUZXh0O2lmKCFjKXtyZXR1cm59dmFyIGc7dHJ5e2c9Yy5l dmFsSlNPTigpfWNhdGNoKGYpe31pZighZyl7cmV0dXJufXZhciBhPXRoaXMuXyQ1 ZS5fJDQ4KGcuaWQpO3RoaXMuXyQ4YShhKX0sXyQ3OTpmdW5jdGlvbigpe3RoaXMu XyQ0Mj1udWxsO3RoaXMuXyQ0MT0tMTt0aGlzLl8kNmUuY2xhc3NOYW1lPXRoaXMu XyQ3MH0sXyQ4YTpmdW5jdGlvbihhKXtpZighdGhpcy5fJDVlfHwhdGhpcy5fJDZl fHwhdGhpcy5fJDcwKXtyZXR1cm59dmFyIGI9dGhpcy5fJDVlLl8kNDkoYSl8fCJu b25lIjtpZihiIT10aGlzLl8kNDIpe3ZhciBjPSgiY3Vyc29yLXBhaW50LSIrYik7 dGhpcy5fJDZlLmNsYXNzTmFtZT0odGhpcy5fJDcwKyIgIitjKX10aGlzLl8kNDE9 YTt0aGlzLl8kNDI9Yjt2YXIgZT17b2JqZWN0VHlwZTpiLG9iamVjdElEOmF9O2Rv Y3VtZW50LmZpcmUoIm1vZGVsOmhvdmVyb2JqZWN0aWQiLGUpfSxfJDgwOmZ1bmN0 aW9uKGEpe2lmKCF0aGlzLl8kNmV8fCF0aGlzLl8kNzApe3JldHVybn10aGlzLl8k NzkoKTt2YXIgYj17b2JqZWN0VHlwZTpmYWxzZSxvYmplY3RJRDpmYWxzZX07ZG9j dW1lbnQuZmlyZSgibW9kZWw6aG92ZXJvYmplY3RpZCIsYil9LF8kODE6ZnVuY3Rp b24oYil7aWYoIWJ8fCFiLnRhcmdldCl7cmV0dXJufXZhciBhPXRoaXMuXyQ0MTtp Zih0eXBlb2YgYSE9Im51bWJlciIpe3JldHVybn12YXIgYz17b2JqZWN0SUQ6YX07 ZG9jdW1lbnQuZmlyZSgibW9kZWw6c2VsZWN0b2JqZWN0aWQiLGMpfSxfJDM3OmZ1 bmN0aW9uKGEpe2lmKCFhfHwhYS50YXJnZXR8fCFhLnRhcmdldC5fJDhiKXtyZXR1 cm59dmFyIGI9YS50YXJnZXQuXyQ4Yjtkb2N1bWVudC5maXJlKCJtb2RlbDpzY2Vu ZXpvb20iKX0sXyQ4YzpmdW5jdGlvbihhKXtpZihhKXt0aGlzLl8kNmE9YX19LF8k OGQ6ZnVuY3Rpb24oKXtpZighdGhpcy5fJDc2fHwodGhpcy5fJDZhPT0icmVhZHki KSl7cmV0dXJufXZhciBhPXRoaXMuXyQ3Njt2YXIgYj1uZXcgRGF0ZSgpLmdldFRp bWUoKTt0aGlzLl8kNzU9bnVsbDt0aGlzLl8kNzY9bnVsbDt0aGlzLl8kODIuXyQ4 ZSgpO3ZhciBjPW5ldyBJbWFnZSgxLDEpO2Muc3JjPSJpbWFnZXMvbGF5b3V0LzF4 MS10cmFucy5naWYiO3RoaXMuXyQ2ZS5vbmxvYWQ9bnVsbDt0aGlzLl8kNmUuc3Jj PWMuc3JjO3RoaXMuXyQ2ZS53aWR0aD10aGlzLl8kNmUuaGVpZ2h0PTE7dGhpcy5f JDZmLnNyYz1jLnNyYzt0aGlzLl8kNmYud2lkdGg9dGhpcy5fJDZmLmhlaWdodD0x O18kNSh0aGlzLl8kNmUpO25ldyBFZmZlY3QuQXBwZWFyKHRoaXMuXyQ2ZSx7ZHVy YXRpb246MCxmcm9tOjAsdG86MX0pO18kNSh0aGlzLl8kNmYpO25ldyBFZmZlY3Qu QXBwZWFyKHRoaXMuXyQ2Zix7ZHVyYXRpb246MCxmcm9tOjAsdG86MX0pO18kNCh0 aGlzLl8kNmUpO18kNSh0aGlzLl8kNmYpO18kNSh0aGlzLl8kNmQpO3RoaXMuXyQ2 ZS5zdHlsZS5jdXJzb3I9IiI7dGhpcy5fJDhjKCJpbnZpc2libGUiKTt0aGlzLl8k OGYoKTt0aGlzLl8kNzM9bnVsbH0sXyQ5MDpmdW5jdGlvbigpe2lmKCF0aGlzLl8k NzYpe3JldHVybn1pZih0aGlzLl8kNzEpe3RoaXMuXyQ3MS5zdHlsZS53aWR0aD0o dGhpcy5fJDZlLndpZHRofHwxKSsicHgiO3RoaXMuXyQ3MS5zdHlsZS5oZWlnaHQ9 KHRoaXMuXyQ2ZS5oZWlnaHR8fDEpKyJweCI7XyQ0KHRoaXMuXyQ3MSl9aWYodGhp cy5fJDVlLl8kNWIoKSl7XyQ0KHRoaXMuXyQ2ZCl9fSxfJDhmOmZ1bmN0aW9uKCl7 aWYodGhpcy5fJDcxKXtfJDUodGhpcy5fJDcxKX1fJDUodGhpcy5fJDZkKX0sXyQ5 MTpmdW5jdGlvbigpe2lmKHRoaXMuXyQ3Nil7cmV0dXJufXRoaXMuXyQ4YygicHJl cGFyaW5nLXNjZW5lLXN3aXRjaGluZyIpO3RoaXMuXyQ3Nj1uZXcgRGF0ZSgpLmdl dFRpbWUoKTt0aGlzLl8kNzU9c2V0VGltZW91dCh0aGlzLl8kOGQuYmluZCh0aGlz KSx0aGlzLl8kNzQpO3RoaXMuXyQ3OSgpO18kNSh0aGlzLl8kNmYpO3RoaXMuXyQ4 Mi5fJDhlKCk7dGhpcy5fJDczPXNldFRpbWVvdXQodGhpcy5fJDkwLmJpbmQodGhp cyksdGhpcy5fJDcyKTt0aGlzLl8kOGMoImxvYWRpbmctb2xkLXNjZW5lLWltYWdl Iik7aWYodGhpcy5fJDZmJiZ0aGlzLl8kNmUmJih0aGlzLl8kNmYuc3JjPT09dGhp cy5fJDZlLnNyYykpe3RoaXMuXyQ2Zi53aWR0aD10aGlzLl8kNmUud2lkdGg7dGhp cy5fJDZmLmhlaWdodD10aGlzLl8kNmUuaGVpZ2h0O3RoaXMuXyQ4YygidXBkYXRp bmctc2Vjb25kYXJ5LXNjZW5lLWltZy1lbGVtZW50Iik7dGhpcy5fJDkyKCl9ZWxz ZXt0aGlzLl8kNzc9bmV3IEltYWdlKCk7RXZlbnQub2JzZXJ2ZSh0aGlzLl8kNzcs ImxvYWQiLHRoaXMuXyQ5My5iaW5kQXNFdmVudExpc3RlbmVyKHRoaXMpKTt0aGlz Ll8kNzcuc3JjPXRoaXMuXyQ2ZS5zcmM7aWYoUHJvdG90eXBlLkJyb3dzZXIuT3Bl cmEmJnRoaXMuXyQ3Ny5jb21wbGV0ZSl7dGhpcy5fJDkzKCl9fX0sXyQ5MzpmdW5j dGlvbigpe2lmKCF0aGlzLl8kNzYpe3JldHVybn1pZih0aGlzLl8kNmEhPSJsb2Fk aW5nLW9sZC1zY2VuZS1pbWFnZSIpe3JldHVybn10aGlzLl8kOGMoInVwZGF0aW5n LXNlY29uZGFyeS1zY2VuZS1pbWctZWxlbWVudCIpO2lmKCF0aGlzLl8kNmYuaGFz T25sb2FkKXtFdmVudC5vYnNlcnZlKHRoaXMuXyQ2ZiwibG9hZCIsdGhpcy5fJDky LmJpbmRBc0V2ZW50TGlzdGVuZXIodGhpcykpO3RoaXMuXyQ2Zi5oYXNPbmxvYWQ9 dHJ1ZX10aGlzLl8kNmYuc3JjPXRoaXMuXyQ3Ny5zcmM7dGhpcy5fJDZmLndpZHRo PXRoaXMuXyQ3Ny53aWR0aDt0aGlzLl8kNmYuaGVpZ2h0PXRoaXMuXyQ3Ny5oZWln aHQ7aWYoUHJvdG90eXBlLkJyb3dzZXIuT3BlcmEmJnRoaXMuXyQ2Zi5jb21wbGV0 ZSl7dGhpcy5fJDkyKCl9fSxfJDkyOmZ1bmN0aW9uKCl7aWYoIXRoaXMuXyQ3Nil7 cmV0dXJufWlmKHRoaXMuXyQ2YSE9InVwZGF0aW5nLXNlY29uZGFyeS1zY2VuZS1p bWctZWxlbWVudCIpe3JldHVybn1fJDQodGhpcy5fJDZmKTtfJDUodGhpcy5fJDZl KTt0aGlzLl8kOGMoImxvYWRpbmctbmV3LXNjZW5lLWltYWdlIik7dmFyIGE9dGhp cy5fJDVlLl8kNTgoZmFsc2UpO2lmKHRoaXMuXyQ2ZSYmKHRoaXMuXyQ2ZS5zcmM9 PT1hKSl7dGhpcy5fJDhjKCJ1cGRhdGluZy1zY2VuZS1pbWctZWxlbWVudCIpO3Ro aXMuXyQ5NCgpfWVsc2V7dGhpcy5fJDc4PW5ldyBJbWFnZSgpO0V2ZW50Lm9ic2Vy dmUodGhpcy5fJDc4LCJsb2FkIix0aGlzLl8kOTUuYmluZEFzRXZlbnRMaXN0ZW5l cih0aGlzKSk7dGhpcy5fJDc4LnNyYz1hO2lmKFByb3RvdHlwZS5Ccm93c2VyLk9w ZXJhJiZ0aGlzLl8kNzguY29tcGxldGUpe3RoaXMuXyQ5NSgpfX19LF8kOTU6ZnVu Y3Rpb24oYSl7aWYoIXRoaXMuXyQ3Nil7cmV0dXJufWlmKHRoaXMuXyQ2YSE9Imxv YWRpbmctbmV3LXNjZW5lLWltYWdlIil7cmV0dXJufXRoaXMuXyQ4YygidXBkYXRp bmctc2NlbmUtaW1nLWVsZW1lbnQiKTtpZighdGhpcy5fJDZlLmhhc09ubG9hZCl7 RXZlbnQub2JzZXJ2ZSh0aGlzLl8kNmUsImxvYWQiLHRoaXMuXyQ5NC5iaW5kQXNF dmVudExpc3RlbmVyKHRoaXMpKTt0aGlzLl8kNmUuaGFzT25sb2FkPXRydWV9dGhp cy5fJDZlLnNyYz10aGlzLl8kNzguc3JjO3RoaXMuXyQ2ZS53aWR0aD10aGlzLl8k Nzgud2lkdGg7dGhpcy5fJDZlLmhlaWdodD10aGlzLl8kNzguaGVpZ2h0O2lmKFBy b3RvdHlwZS5Ccm93c2VyLk9wZXJhJiZ0aGlzLl8kNmUuY29tcGxldGUpe3RoaXMu XyQ5NCgpfX0sXyQ5NDpmdW5jdGlvbigpe2lmKCF0aGlzLl8kNzYpe3JldHVybn1p Zih0aGlzLl8kNmEhPSJ1cGRhdGluZy1zY2VuZS1pbWctZWxlbWVudCIpe3JldHVy bn10aGlzLl8kOGMoImZhZGluZy1pbiIpO2RvY3VtZW50LmZpcmUoIm1vZGVsOnJl dmVhbGxheW91dCIpO3ZhciBhPXRoaXM7dmFyIGU9bnVsbDtpZigodGhpcy5fJDZl LndpZHRoIT10aGlzLl8kNmYud2lkdGgpfHwodGhpcy5fJDZlLmhlaWdodCE9dGhp cy5fJDZmLmhlaWdodCkpe2U9bmV3IEVmZmVjdC5GYWRlKGEuXyQ2Zix7c3luYzp0 cnVlLGR1cmF0aW9uOjEsZnJvbToxLHRvOjAsYWZ0ZXJGaW5pc2g6ZnVuY3Rpb24o Zil7XyQ1KGEuXyQ2Zik7bmV3IEVmZmVjdC5BcHBlYXIoYS5fJDZmLHtkdXJhdGlv bjowLGZyb206MCx0bzoxfSl9fSl9dGhpcy5fJDZlLnN0eWxlLmN1cnNvcj0id2Fp dCI7bmV3IEVmZmVjdC5GYWRlKHRoaXMuXyQ2ZSx7ZHVyYXRpb246MCxmcm9tOjEs dG86MH0pO3RoaXMuXyQ2ZS5zdHlsZS5kaXNwbGF5PSJub25lIjtfJDQodGhpcy5f JDZlKTt2YXIgYj1uZXcgRWZmZWN0LkFwcGVhcihhLl8kNmUse3N5bmM6dHJ1ZSxk dXJhdGlvbjoxLGZyb206MCx0bzoxLGFmdGVyU2V0dXA6ZnVuY3Rpb24oZil7aWYo YS5fJDc1KXtjbGVhclRpbWVvdXQoYS5fJDc1KX1hLl8kNzU9bnVsbDtpZihhLl8k NzMpe2NsZWFyVGltZW91dChhLl8kNzMpfWEuXyQ4ZigpO2EuXyQ3Mz1udWxsfSxh ZnRlckZpbmlzaDpmdW5jdGlvbihmKXthLl8kNmUuc3R5bGUuY3Vyc29yPSIiO18k NShhLl8kNmYpO25ldyBFZmZlY3QuQXBwZWFyKGEuXyQ2Zix7ZHVyYXRpb246MCxm cm9tOjAsdG86MX0pO2EuXyQ4Mi5fJDk2KGEuXyQ2ZSk7YS5fJDhjKCJyZWFkeSIp O2EuXyQ3Nj1udWxsO2RvY3VtZW50LmZpcmUoIm1vZGVsOnNjZW5lbG9hZGVkIil9 fSk7dmFyIGM9W2UsYl07bmV3IEVmZmVjdC5QYXJhbGxlbChjLmNvbXBhY3QoKSx7 ZHVyYXRpb246MX0pfSxfJDMxOmZ1bmN0aW9uKGEpe3ZhciBiPW51bGw7aWYoYSYm YS5tZW1vJiYodHlwZW9mIGEubWVtby5zY2VuZUluZGV4PT0ibnVtYmVyIikpe2I9 YS5tZW1vLnNjZW5lSW5kZXh9dGhpcy5fJDkxKGIpfSxFTkRfJDY5Om51bGx9KTtf JDgzPUNsYXNzLmNyZWF0ZSh7aW5pdGlhbGl6ZTpmdW5jdGlvbihhKXtPYmplY3Qu ZXh0ZW5kKHRoaXMsYXx8e30pO2lmKHR5cGVvZiB0aGlzLl8kNmI9PSJ1bmRlZmlu ZWQiKXtyZXR1cm59dGhpcy5fJDk3PSQodGhpcy5fJDZiKTtpZighdGhpcy5fJDk3 KXtyZXR1cm59dGhpcy5fJDk4PXRoaXMuXyQ5OHx8InJpZ2h0Ijt0aGlzLl8kOTk9 dGhpcy5fJDk5fHwiYm90dG9tIjt0aGlzLl8kOWE9dGhpcy5fJDliLmJpbmRBc0V2 ZW50TGlzdGVuZXIodGhpcyk7dGhpcy5fJDljPXRoaXMuXyQ5ZC5iaW5kQXNFdmVu dExpc3RlbmVyKHRoaXMpO2lmKHRoaXMuXyQ4NCl7RXZlbnQub2JzZXJ2ZSh0aGlz Ll8kODQsIm1vdXNlbW92ZSIsdGhpcy5fJDlhKTtFdmVudC5vYnNlcnZlKHRoaXMu XyQ4NCwibW91c2VvdXQiLHRoaXMuXyQ5Yyl9aWYodGhpcy5fJDg1KXtFdmVudC5v YnNlcnZlKHRoaXMuXyQ5NywiY2xpY2siLHRoaXMuXyQ4NSl9dGhpcy5fJDllPSh0 eXBlb2YgdGhpcy5fJDg0IT0idW5kZWZpbmVkIik7dGhpcy5fJDlmPWZhbHNlO2lm KCF0aGlzLl8kODYpe3RoaXMuXyQ5NigpfX0sXyQ5NjpmdW5jdGlvbihhKXtpZihh fHwhdGhpcy5fJDllfHwhdGhpcy5fJDlmKXt0aGlzLl8kOWU9dHJ1ZTtpZighdGhp cy5fJGEwKGEpKXtyZXR1cm59fV8kNCh0aGlzLl8kOTcpO3RoaXMuXyQ5Zj10cnVl fSxfJDhlOmZ1bmN0aW9uKCl7XyQ1KHRoaXMuXyQ5Nyk7dGhpcy5fJDlmPWZhbHNl O3RoaXMuXyQ5ZT1mYWxzZX0sXyRhMTpmdW5jdGlvbihhKXtpZighYSl7cmV0dXJu fUV2ZW50LnN0b3BPYnNlcnZpbmcoYSwibW91c2Vtb3ZlIix0aGlzLl8kOWEpO0V2 ZW50LnN0b3BPYnNlcnZpbmcoYSwibW91c2VvdXQiLHRoaXMuXyQ5Yyk7RXZlbnQu b2JzZXJ2ZShhLCJtb3VzZW1vdmUiLHRoaXMuXyQ5YSk7RXZlbnQub2JzZXJ2ZShh LCJtb3VzZW91dCIsdGhpcy5fJDljKX0sXyRhMDpmdW5jdGlvbihhKXtpZighYSl7 YT10aGlzLl8kODR9aWYoYSE9dGhpcy5fJDg0KXt0aGlzLl8kODQ9YTt0aGlzLl8k YTEoYSl9dGhpcy5fJDk3Ll8kOGI9YTtpZighdGhpcy5fJDllKXtyZXR1cm59aWYo IWEpe3JldHVybiBmYWxzZX12YXIgaD1wYXJzZUludChhLmdldFN0eWxlKCJsZWZ0 IikpfHwwO3ZhciBnPXBhcnNlSW50KGEuZ2V0U3R5bGUoInRvcCIpKXx8MDt2YXIg az1hLndpZHRofHwwO3ZhciBjPWEuaGVpZ2h0fHwwO3ZhciBmPXRoaXMuXyQ5Ny53 aWR0aHx8MDt2YXIgaj10aGlzLl8kOTcuaGVpZ2h0fHwwO2lmKCFrfHwhY3x8IWZ8 fCFqKXtyZXR1cm4gZmFsc2V9aWYoKGs8PTEpfHwoYzw9MSkpe3JldHVybiBmYWxz ZX12YXIgYj0oaCtrLWYtMSk7dmFyIGU9KGcrYy1qLTEpO3RoaXMuXyQ5Ny5zdHls ZS5sZWZ0PWIrInB4Ijt0aGlzLl8kOTcuc3R5bGUudG9wPWUrInB4IjtyZXR1cm4g dHJ1ZX0sXyRhMjpmdW5jdGlvbihhKXtpZighdGhpc3x8IWEpe3JldHVybiBmYWxz ZX1yZXR1cm4odGhpcy5fJDk3PT0oYS5yZWxhdGVkVGFyZ2V0fHxhLnRvRWxlbWVu dHx8YS5mcm9tRWxlbWVudCkpfSxfJDliOmZ1bmN0aW9uKGEpe2lmKCFhfHwhYS50 YXJnZXQpe3JldHVybn1pZighdGhpcy5fJDllKXtyZXR1cm59aWYodGhpcy5fJDlm KXtyZXR1cm59dmFyIGI9YS50YXJnZXQ7aWYoYiE9dGhpcy5fJDg0KXt0aGlzLl8k YTAoYil9XyQ0KHRoaXMuXyQ5Nyk7dGhpcy5fJDlmPXRydWV9LF8kOWQ6ZnVuY3Rp b24oYSl7aWYoIWF8fCFhLnRhcmdldCl7cmV0dXJufXZhciBiPWEudGFyZ2V0O2lm KCF0aGlzLl8kOWYpe3JldHVybn1pZih0aGlzLl8kYTIoYSkpe3JldHVybn1fJDUo dGhpcy5fJDk3KTt0aGlzLl8kOWY9ZmFsc2V9LEVORF8kODM6bnVsbH0pO18kYTM9 Q2xhc3MuY3JlYXRlKHtpbml0aWFsaXplOmZ1bmN0aW9uKGEpe09iamVjdC5leHRl bmQodGhpcyxhfHx7fSk7aWYodHlwZW9mIHRoaXMuXyQ2Yj09InVuZGVmaW5lZCIp e3JldHVybn10aGlzLl8kYTQ9JCh0aGlzLl8kNmIrIi1jb250YWluZXIiKTtpZigh dGhpcy5fJGE0KXtyZXR1cm59ZG9jdW1lbnQub2JzZXJ2ZSgidXNlcjp1cGRhdGVj b2xvcnNwYW5lbHRtcCIsdGhpcy5fJGE1LmJpbmRBc0V2ZW50TGlzdGVuZXIodGhp cykpO2RvY3VtZW50Lm9ic2VydmUoInVzZXI6dXBkYXRlZGV0YWlsc3BhbmVsdG1w Iix0aGlzLl8kYTYuYmluZEFzRXZlbnRMaXN0ZW5lcih0aGlzKSk7ZG9jdW1lbnQu b2JzZXJ2ZSgidXNlcjpwcmludCIsdGhpcy5fJGE3LmJpbmRBc0V2ZW50TGlzdGVu ZXIodGhpcykpfSxfJGE1OmZ1bmN0aW9uKHEpe3ZhciB0PSQoImRldGFpbHMtcGFu ZWwtY29sb3ItMSIpO3ZhciBuPSQoImRldGFpbHMtcGFuZWwtY29sb3ItMiIpO3Zh ciBiPSQoImRldGFpbHMtcGFuZWwtY29sb3ItMyIpO3ZhciByPSQoImRldGFpbHMt cGFuZWwtY29sb3ItNCIpO3ZhciBsPSQoImRldGFpbHMtcGFuZWwtY29sb3ItNSIp O3ZhciB3PSQoImRldGFpbHMtcGFuZWwtY29sb3ItNiIpO2lmKCF0fHwhdCl7cmV0 dXJufXZhciB1PW51bGw7dmFyIG89bnVsbDt2YXIgYz1udWxsO3ZhciBzPW51bGw7 dmFyIG09bnVsbDtpZighdGhpcy5fJDVlLl8kMjR8fCF0aGlzLl8kNWUuXyQyNC50 ZXh0dXJlSW5kZXgpe3JldHVybn12YXIgaj10aGlzLl8kNWUuXyQyNC50ZXh0dXJl SW5kZXg7aWYoXyRhKGopKXt2YXIgcD10aGlzLl8kNWUuXyQ0ZShqKTtpZighcC5u YW1lKXtwPW51bGx9aWYocCl7dmFyIGg9dGhpcy5fJDVlLl8kNGYocC5jb2xvcnNb MF0pO2lmKGgpe3ZhciB2PV8kMihoWzBdLGhbMV0saFsyXSk7aWYodil7dmFyIGE9 XyQzKHYuaCx2LnMsMC44KTt2YXIgZj1fJDModi5oLHYucywwLjM1KTtpZihmKXt1 PXRoaXMuXyQ1ZS5fJDRiKFtmLnIsZi5nLGYuYl0pfWlmKGEpe289dGhpcy5fJDVl Ll8kNGIoW2EucixhLmcsYS5iXSl9fWM9dGhpcy5fJDVlLl8kNGIoW2hbMF0saFsx XSxoWzJdXSl9Y29sb3JBcnJheTI9dGhpcy5fJDVlLl8kNGYocC5jb2xvcnNbMV0p O2lmKGNvbG9yQXJyYXkyKXtzPXRoaXMuXyQ1ZS5fJDRiKFtjb2xvckFycmF5Mlsw XSxjb2xvckFycmF5MlsxXSxjb2xvckFycmF5MlsyXV0pfWNvbG9yQXJyYXkzPXRo aXMuXyQ1ZS5fJDRmKHAuY29sb3JzWzJdKTtpZihjb2xvckFycmF5Myl7bT10aGlz Ll8kNWUuXyQ0YihbY29sb3JBcnJheTNbMF0sY29sb3JBcnJheTNbMV0sY29sb3JB cnJheTNbMl1dKX12YXIgZz0xO2lmKHQpe3Quc3R5bGUuYmFja2dyb3VuZENvbG9y PXU/dToidHJhbnNwYXJlbnQiO3QuY29sb3JTcGVjPXU/dTpudWxsO3Quc3R5bGUu dmlzaWJpbGl0eT11PyJ2aXNpYmxlIjoiaGlkZGVuIjtpZih1KXtnPTF9fWlmKG4p e24uc3R5bGUuYmFja2dyb3VuZENvbG9yPW8/bzoidHJhbnNwYXJlbnQiO24uY29s b3JTcGVjPW8/bzpudWxsO24uc3R5bGUudmlzaWJpbGl0eT1vPyJ2aXNpYmxlIjoi aGlkZGVuIjtpZihvKXtnPTJ9fWlmKGIpe2Iuc3R5bGUuYmFja2dyb3VuZENvbG9y PWM/YzoidHJhbnNwYXJlbnQiO2IuY29sb3JTcGVjPWM/YzpudWxsO2Iuc3R5bGUu dmlzaWJpbGl0eT1jPyJ2aXNpYmxlIjoiaGlkZGVuIjtpZihjKXtnPTN9fWlmKHIp e3Iuc3R5bGUuYmFja2dyb3VuZENvbG9yPXM/czoidHJhbnNwYXJlbnQiO3IuY29s b3JTcGVjPXM/czpudWxsO3Iuc3R5bGUudmlzaWJpbGl0eT1zPyJ2aXNpYmxlIjoi aGlkZGVuIjtpZihzKXtnPTR9fWlmKGwpe2wuc3R5bGUuYmFja2dyb3VuZENvbG9y PW0/bToidHJhbnNwYXJlbnQiO2wuY29sb3JTcGVjPW0/bTpudWxsO2wuc3R5bGUu dmlzaWJpbGl0eT1tPyJ2aXNpYmxlIjoiaGlkZGVuIjtpZihtKXtnPTV9fWlmKHcp e3cuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIn12YXIgaz1nKzE7dmFyIGU9JCgi ZGV0YWlscy1wYW5lbC1jb2xvci0iK051bWJlcihrKSk7aWYoZSl7ZS5zdHlsZS5i YWNrZ3JvdW5kQ29sb3I9dGhpcy5fJDVlLl8kNGIoWzI1NSwyNTUsMjU1XSk7ZS5j b2xvclNwZWM9dGhpcy5fJDVlLl8kNGIoWzI1NSwyNTUsMjU1XSk7ZS5zdHlsZS52 aXNpYmlsaXR5PSJ2aXNpYmxlIn1pZighd2luZG93LkNPTE9SU19CT1VORF90bXAp e0V2ZW50Lm9ic2VydmUodCwiY2xpY2siLHRoaXMuXyQ1ZS5fJDM2LmJpbmRBc0V2 ZW50TGlzdGVuZXIodGhpcy5fJDVlKSk7RXZlbnQub2JzZXJ2ZShuLCJjbGljayIs dGhpcy5fJDVlLl8kMzYuYmluZEFzRXZlbnRMaXN0ZW5lcih0aGlzLl8kNWUpKTtF dmVudC5vYnNlcnZlKGIsImNsaWNrIix0aGlzLl8kNWUuXyQzNi5iaW5kQXNFdmVu dExpc3RlbmVyKHRoaXMuXyQ1ZSkpO0V2ZW50Lm9ic2VydmUociwiY2xpY2siLHRo aXMuXyQ1ZS5fJDM2LmJpbmRBc0V2ZW50TGlzdGVuZXIodGhpcy5fJDVlKSk7RXZl bnQub2JzZXJ2ZShsLCJjbGljayIsdGhpcy5fJDVlLl8kMzYuYmluZEFzRXZlbnRM aXN0ZW5lcih0aGlzLl8kNWUpKTtpZih3KXtFdmVudC5vYnNlcnZlKHcsImNsaWNr Iix0aGlzLl8kNWUuXyQzNi5iaW5kQXNFdmVudExpc3RlbmVyKHRoaXMuXyQ1ZSkp fXdpbmRvdy5fJDE0Ll8kMTkodCk7d2luZG93Ll8kMTQuXyQxOShuKTt3aW5kb3cu XyQxNC5fJDE5KGIpO3dpbmRvdy5fJDE0Ll8kMTkocik7d2luZG93Ll8kMTQuXyQx OShsKTtpZih3KXt3aW5kb3cuXyQxNC5fJDE5KHcpfXdpbmRvdy5DT0xPUlNfQk9V TkRfdG1wPXRydWV9fX19LF8kYTY6ZnVuY3Rpb24oYSl7dmFyIG49MDtpZighdGhp cy5fJDVlLl8kM2V8fCF0aGlzLl8kNWUuXyQzZS5ncm91cHMpe3JldHVybn1mb3Io dmFyIG89MCxmPXRoaXMuXyQ1ZS5fJDNlLmdyb3Vwcy5sZW5ndGg7bzxmO28rKyl7 dmFyIGo9cGFyc2VJbnQodGhpcy5fJDVlLl8kM2UuZ3JvdXBzLnN1YnN0cmluZyhv LG8rMSkpO2lmKGlzTmFOKGopKXtqPTB9bj1NYXRoLm1heChuLGopfXZhciBsPTU7 Zm9yKHZhciBxPTE7cTxsO3ErKyl7dmFyIGU9JCgiZGV0YWlscy1wYW5lbC10ZXh0 dXJlLXRodW1ibmFpbC0iK3EpO3ZhciBwPSQoImRldGFpbHMtcGFuZWwtdGV4dHVy ZS10aHVtYm5haWwtdGV4dC1wcm9kY2F0LSIrcSk7dmFyIG09JCgiZGV0YWlscy1w YW5lbC10ZXh0dXJlLXRodW1ibmFpbC10ZXh0LXByb2RuYW1lLSIrcSk7aWYoIWV8 fCFwfHwhbSl7Y29udGludWV9aWYoIXdpbmRvdy5ERVRBSUxTX1RIVU1CTkFJTFNf Qk9VTkRfdG1wJiZlKXtFdmVudC5vYnNlcnZlKGUsImNsaWNrIix0aGlzLl8kNWUu XyQzNS5iaW5kQXNFdmVudExpc3RlbmVyKHRoaXMuXyQ1ZSkpO3dpbmRvdy5fJDE0 Ll8kMTkoZSk7ZS5ncm91cEluZGV4PXF9aWYocT5uKXtfJDUoZSk7XyQ1KHApO18k NShtKTtjb250aW51ZX12YXIgaz1udWxsO2lmKHRoaXMuXyQ1ZS5fJDI2W3FdJiZ0 aGlzLl8kNWUuXyQyNltxXS50ZXh0dXJlSW5kZXgpe2s9dGhpcy5fJDVlLl8kMjZb cV0udGV4dHVyZUluZGV4fXZhciByPXRoaXMuXyQ1ZS5fJDRlKGspO2lmKCFyLm5h bWUpe3I9bnVsbH1pZihyKXtlLnNyYz10aGlzLl8kNWUuXyQ1OSgidGV4dHVyZS10 aHVtYm5haWwtbGFyZ2UiLGspO3ZhciBnPVRFWFRVUkVTLmNhdGVnb3J5W2tdO3Zh ciBjPWdbMF07dmFyIGI9dHIoYyk7dmFyIGg9VEVYVFVSRVMubmFtZXNba107aWYo cCl7cC5pbm5lckhUTUw9Yn1pZihtKXttLmlubmVySFRNTD1oLnJlcGxhY2UoL1sg X10rLywiPGJyPiIpfX1lbHNle2Uuc3JjPXRoaXMuXyQ1ZS5fJDU5KCJwbGFjZWhv bGRlci10ZXh0dXJlLXRodW1ibmFpbC1ncm91cC1pY29uIixxKTtwLmlubmVySFRN TD0iIjttLmlubmVySFRNTD0iIn1fJDQoZSk7XyQ0KHApO18kNChtKX13aW5kb3cu REVUQUlMU19USFVNQk5BSUxTX0JPVU5EX3RtcD10cnVlfSxfJGE3OmZ1bmN0aW9u KGIpe2lmKCF0aGlzLl8kNWV8fCh0eXBlb2YgdGhpcy5fJDVlLl8kM2YhPSJudW1i ZXIiKXx8IXRoaXMuXyQ1ZS5fJDI2KXtyZXR1cm59dmFyIGg9JzwhRE9DVFlQRSBI VE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93 d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPjxodG1sPjxoZWFkPjx0aXRs ZT5EcnVja2VuPC90aXRsZT48L2hlYWQ+PGJvZHk+JztoKz0nPGltZyBzcmM9Ii8n K3RoaXMuXyQ1ZS5fJDE1KyIvaW1hZ2VzL2xheW91dC9wcmludC1sb2dvIisodGhp cy5fJDVlLl8kMjk/Ii4iK3RoaXMuXyQ1ZS5fJDI5OiIiKSsnLnBuZyI+JztoKz0i PHA+PC9wPiI7aCs9Ijxocj4iO2grPSI8cD48L3A+IjtoKz0nPGltZyBzdHlsZT0i Ym9yZGVyOjFweCBzb2xpZCBibGFjazsiIHNyYz0iJyt0aGlzLl8kNWUuXyQ1OChm YWxzZSkrJyI+JztoKz0iPHA+PC9wPiI7dmFyIHI9bmV3IE9iamVjdDtmb3IodmFy IGs9MCxjPXRoaXMuXyQ1ZS5fJDNmO2s8YztrKyspe3ZhciBlPXRoaXMuXyQ1ZS5f JDRjKGspO2lmKCh0eXBlb2YgZT09Im51bWJlciIpJiYoZT4wKSl7dmFyIGw9dGhp cy5fJDVlLl8kMjZbZV07aWYoIWwpe2NvbnRpbnVlfXZhciBmPWwudGV4dHVyZUlu ZGV4O2lmKF8kYShmKSl7XyRhOD10aGlzLl8kNWUuXyQ0ZShmKTtpZighXyRhOC5u YW1lKXtfJGE4PW51bGx9fWlmKHR5cGVvZiBfJGE4PT0idW5kZWZpbmVkIil7Y29u dGludWV9aWYocltfJGE4Lm5hbWVdKXtjb250aW51ZX1yW18kYTgubmFtZV09dHJ1 ZTt2YXIgbT1fJGE4Lm5hbWU7aWYodHlwZW9mIG0hPSJzdHJpbmciKXtjb250aW51 ZX12YXIgbj1fJGE4LmNhdGVnb3J5O2lmKCFufHwobi5sZW5ndGg9PTApKXtjb250 aW51ZX12YXIgbz1uWzBdO2lmKHR5cGVvZiBvIT0ic3RyaW5nIil7Y29udGludWV9 by5yZXBsYWNlKC8gLywiJm5ic3A7Iik7bz10cihvKTtpZih0eXBlb2YgbyE9InN0 cmluZyIpe2NvbnRpbnVlfXZhciBqPXRoaXMuXyQ1ZS5fJDU5KCJ0ZXh0dXJlLXRo dW1ibmFpbC1sYXJnZSIsZik7aWYodHlwZW9mIGohPSJzdHJpbmciKXtjb250aW51 ZX12YXIgZz0nPGltZyBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCBibGFjazsiIHNy Yz0iJytqKyciPic7dmFyIHA9ImZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OmJv bGQ7Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLFZlcmRhbmEsc2Fucy1zZXJp ZjsiO2grPSc8cCBzdHlsZT0iJytwKyciPicrZysiJm5ic3A7IitvKyImbmJzcDso IittKyIpPC9wPiI7aCs9IjxwPjwvcD4ifX1oKz0iPGhyPiI7dmFyIHE9ImZvbnQt c2l6ZToxMHB4O2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1mYW1pbHk6QXJpYWwsSGVs dmV0aWNhLFZlcmRhbmEsc2Fucy1zZXJpZjsiO2grPSc8cCBzdHlsZT0iJytxKyci PkNvcHlyaWdodCAmY29weTsgMjAwOCBSYXNjaCBHbWJIICZhbXA7IENvLiBLRyBh bmQgPGEgaHJlZj0iaHR0cDovL3d3dy5wLWludGVyYWN0aXZlLmNvbS8iIG9uY2xp Y2s9IndpbmRvdy5vcGVuKHRoaXMuaHJlZik7cmV0dXJuIGZhbHNlOyI+d3d3LnAt aW50ZXJhY3RpdmUuY29tPC9hPi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L3A+Jzto Kz0iPC9ib2R5PjwvaHRtbD4iO3ZhciBhPXdpbmRvdy5vcGVuKCk7YS5kb2N1bWVu dC53cml0ZWxuKGgpO2EuZG9jdW1lbnQuY2xvc2UoKTthLmZvY3VzKCk7YS5wcmlu dCgpO3dpbmRvdy5mb2N1cygpfSxFTkRfJGEzOm51bGx9KTtfJGE5PUNsYXNzLmNy ZWF0ZSh7aW5pdGlhbGl6ZTpmdW5jdGlvbihhKXtPYmplY3QuZXh0ZW5kKHRoaXMs YXx8e30pO2lmKHR5cGVvZiB0aGlzLl8kNWU9PSJ1bmRlZmluZWQiKXtyZXR1cm59 aWYodHlwZW9mIHRoaXMuXyQ2Yj09InVuZGVmaW5lZCIpe3JldHVybn10aGlzLl8k YWE9JCh0aGlzLl8kNmIpO2lmKCF0aGlzLl8kYWEpe3JldHVybn1pZih0eXBlb2Yg dGhpcy5fJGFiPT0idW5kZWZpbmVkIil7dGhpcy5fJGFiPWZhbHNlfXRoaXMuXyRh Yz1mYWxzZTtkb2N1bWVudC5vYnNlcnZlKCJ1c2VyOnNlbGVjdGNhdGVnb3J5Iix0 aGlzLl8kMzAuYmluZEFzRXZlbnRMaXN0ZW5lcih0aGlzKSl9LF8kYWQ6ZnVuY3Rp b24oYil7aWYoIWJ8fCFiLnRhcmdldCl7cmV0dXJufXZhciBhPWIudGFyZ2V0Ll8k YWU7aWYoIV8kOShhKSl7cmV0dXJufXZhciBjPXtzY2VuZUluZGV4OmF9O2RvY3Vt ZW50LmZpcmUoIm1vZGVsOnNlbGVjdHNjZW5lIixjKX0sXyQzMDpmdW5jdGlvbihi KXtpZighYil7cmV0dXJufWlmKCF0aGlzfHwhdGhpcy5fJDVlKXtyZXR1cm59aWYo IXRoaXMuXyRhYiYmdGhpcy5fJGFjKXtyZXR1cm59dmFyIGE9dGhpcy5fJGFkLmJp bmRBc0V2ZW50TGlzdGVuZXIodGhpcyk7dGhpcy5fJGFhLmlubmVySFRNTD0iIjt0 aGlzLl8kNWUuXyQ1MyhmdW5jdGlvbihnLGUpe3ZhciBjPW5ldyBFbGVtZW50KCJp bWciLHtjbGFzc05hbWU6dGhpcy5fJDZiKyItdGh1bWJuYWlsIn0pO3ZhciBmPXRo aXMuXyQ1ZS5fJDU5KCJzY2VuZS10aHVtYm5haWwtc21hbGwiLGUpO2Muc3JjPWY7 Yy5fJGFlPWU7RXZlbnQub2JzZXJ2ZShjLCJjbGljayIsYSk7Yz10aGlzLl8kYWEu YXBwZW5kQ2hpbGQoYyk7d2luZG93Ll8kMTQuXyQxOShjKX0sdGhpcyk7dGhpcy5f JGFjPXRydWV9LEVORF8kYTk6bnVsbH0pO18kYWY9Q2xhc3MuY3JlYXRlKHtpbml0 aWFsaXplOmZ1bmN0aW9uKGEpe09iamVjdC5leHRlbmQodGhpcyxhfHx7fSk7aWYo dHlwZW9mIHRoaXMuXyQ1ZT09InVuZGVmaW5lZCIpe3JldHVybn1pZih0eXBlb2Yg dGhpcy5fJDZiPT0idW5kZWZpbmVkIil7cmV0dXJufWlmKHR5cGVvZiB0aGlzLl8k YjA9PSJ1bmRlZmluZWQiKXtyZXR1cm59aWYodHlwZW9mIHRoaXMuXyRiMT09InVu ZGVmaW5lZCIpe3JldHVybn1pZih0eXBlb2YgdGhpcy5fJGIyPT0idW5kZWZpbmVk Iil7cmV0dXJufWlmKHR5cGVvZiB0aGlzLl8kYjM9PSJ1bmRlZmluZWQiKXtyZXR1 cm59aWYodHlwZW9mIHRoaXMuXyRiND09InVuZGVmaW5lZCIpe3JldHVybn10aGlz Ll8kYWE9JCh0aGlzLl8kNmIpO2lmKCF0aGlzLl8kYWEpe3JldHVybn10aGlzLl8k YjU9bmV3IF8kNWQoe18kNWU6dGhpcy5fJDVlfSk7dGhpcy5fJGI2KHRoaXMuXyRi MCk7dGhpcy5fJGI3PWZhbHNlO3RoaXMuXyRiOD0kKHRoaXMuXyQ2YisiLW1heGlt aXplZC1iYWNrZ3JvdW5kIik7dGhpcy5fJGI5PSQodGhpcy5fJDZiKyItbWF4aW1p emUtYnV0dG9uIik7dGhpcy5fJGJhKCk7dGhpcy5fJGJiPXRydWU7dGhpcy5fJGJj KCk7dGhpcy5fJGJkPSQodGhpcy5fJDZiKyItc2Nyb2xsLWJhY2t3YXJkLWJ1dHRv biIpO3RoaXMuXyRiZT0kKHRoaXMuXyQ2YisiLXNjcm9sbC1mb3J3YXJkLWJ1dHRv biIpO3RoaXMuXyRiZih0aGlzLl8kYjQpO3RoaXMuXyRjMD10aGlzLl8kYzE9MDtF dmVudC5vYnNlcnZlKHRoaXMuXyRhYSwibW91c2V3aGVlbCIsdGhpcy5fJGMyLmJp bmRBc0V2ZW50TGlzdGVuZXIodGhpcykpO0V2ZW50Lm9ic2VydmUodGhpcy5fJGFh LCJET01Nb3VzZVNjcm9sbCIsdGhpcy5fJGMyLmJpbmRBc0V2ZW50TGlzdGVuZXIo dGhpcykpO2lmKHRoaXMuXyRiZCl7RXZlbnQub2JzZXJ2ZSh0aGlzLl8kYmQsImNs aWNrIix0aGlzLl8kYzMuYmluZEFzRXZlbnRMaXN0ZW5lcih0aGlzKSl9aWYodGhp cy5fJGJlKXtFdmVudC5vYnNlcnZlKHRoaXMuXyRiZSwiY2xpY2siLHRoaXMuXyRj NC5iaW5kQXNFdmVudExpc3RlbmVyKHRoaXMpKX1pZih0aGlzLl8kYjkpe0V2ZW50 Lm9ic2VydmUodGhpcy5fJGI5LCJjbGljayIsdGhpcy5fJGM1LmJpbmRBc0V2ZW50 TGlzdGVuZXIodGhpcykpfWlmKHRoaXMuXyRjNil7dGhpcy5fJGM3KCl9aWYoIXRo aXMuXyRjOCl7dGhpcy5fJGM4PSJyaWdodCJ9dGhpcy5fJGM5PSQodGhpcy5fJDZi KyItem9vbS1pY29uIik7aWYodGhpcy5fJGM5KXt0aGlzLl8kODI9bmV3IF8kODMo e18kNmI6dGhpcy5fJDZiKyItem9vbS1pY29uIixfJDg0Om51bGwsXyQ4NTp0aGlz Ll8kMzguYmluZEFzRXZlbnRMaXN0ZW5lcih0aGlzKSxfJDg2OmZhbHNlfSl9ZG9j dW1lbnQub2JzZXJ2ZSgidXNlcjpzZWxlY3RjYXRlZ29yeSIsdGhpcy5fJDMwLmJp bmRBc0V2ZW50TGlzdGVuZXIodGhpcykpO2RvY3VtZW50Lm9ic2VydmUoInVzZXI6 Y2xvc2VhbGxwYW5lbHMiLHRoaXMuXyRjYS5iaW5kQXNFdmVudExpc3RlbmVyKHRo aXMpKTtkb2N1bWVudC5vYnNlcnZlKCJ1c2VyOnB1dG90aGVycGFuZWxzYmVoaW5k Iix0aGlzLl8kY2IuYmluZEFzRXZlbnRMaXN0ZW5lcih0aGlzKSl9LF8kYzU6ZnVu Y3Rpb24oYSl7aWYodGhpcy5fJGI3KXt0aGlzLl8kY2EoKX1lbHNle3RoaXMuXyRj NygpfX0sXyRjYjpmdW5jdGlvbihiKXtpZihiJiZiLm1lbW8mJih0eXBlb2YgYi5t ZW1vLmZyb250UGFuZWwhPSJ1bmRlZmluZWQiKSYmdGhpcyYmdGhpcy5fJGFhJiZ0 aGlzLl8kYWEucGFyZW50Tm9kZSYmKGIubWVtby5mcm9udFBhbmVsIT10aGlzLl8k YjgpKXt2YXIgYz1iLm1lbW8uZnJvbnRQYW5lbDt2YXIgYT10aGlzLl8kYWEucGFy ZW50Tm9kZTtjb25zb2xlLmxvZygiUFVUQkVISU5EOiAiK3RoaXMuXyQ2YisiIEJF SElORCAiK2MuaWQpO2lmKHRoaXMuXyRiOCl7YS5pbnNlcnRCZWZvcmUodGhpcy5f JGI4LGMpfWlmKHRoaXMuXyRhYSl7YS5pbnNlcnRCZWZvcmUodGhpcy5fJGFhLGMp fWlmKHRoaXMuXyRiZCl7YS5pbnNlcnRCZWZvcmUodGhpcy5fJGJkLGMpfWlmKHRo aXMuXyRiZSl7YS5pbnNlcnRCZWZvcmUodGhpcy5fJGJlLGMpfWlmKHRoaXMuXyRi OSl7YS5pbnNlcnRCZWZvcmUodGhpcy5fJGI5LGMpfX19LF8kYzc6ZnVuY3Rpb24o YSl7aWYoIXRoaXMuXyRiOSl7cmV0dXJufWlmKHRoaXMuXyRiNyl7cmV0dXJufWRv Y3VtZW50LmZpcmUoInVzZXI6Y2xvc2VhbGxwYW5lbHMiKTt0aGlzLl8kY2MoKTtk b2N1bWVudC5maXJlKCJ1c2VyOnB1dG90aGVycGFuZWxzYmVoaW5kIix7ZnJvbnRQ YW5lbDp0aGlzLl8kYjh9KTtpZih0aGlzLl8kYjgpe18kNCh0aGlzLl8kYjgpfXRo aXMuXyRhYS5hZGRDbGFzc05hbWUodGhpcy5fJDZiKyItbWF4aW1pemVkIik7dGhp cy5fJGI3PXRydWU7dGhpcy5fJGJhKCk7aWYodGhpcy5fJGNkKXt0aGlzLl8kYmMo KX10aGlzLl8kYmYoKTtpZih0aGlzLl8kY2UhPXRoaXMuXyRjZil7dGhpcy5fJGQw KCl9dGhpcy5fJDVlLl8kNWEodHJ1ZSl9LF8kY2E6ZnVuY3Rpb24oYSl7aWYoIXRo aXMuXyRiNyl7cmV0dXJufXRoaXMuXyRjYygpO2lmKHRoaXMuXyRiOCl7XyQ1KHRo aXMuXyRiOCl9dGhpcy5fJGFhLnJlbW92ZUNsYXNzTmFtZSh0aGlzLl8kNmIrIi1t YXhpbWl6ZWQiKTt0aGlzLl8kYjc9ZmFsc2U7dGhpcy5fJGJhKCk7aWYodGhpcy5f JGNkKXt0aGlzLl8kYmMoKX10aGlzLl8kYmYoKTtpZih0aGlzLl8kY2UhPXRoaXMu XyRjZil7dGhpcy5fJGQwKCl9dGhpcy5fJDVlLl8kNWEoZmFsc2UpfSxfJGJjOmZ1 bmN0aW9uKCl7aWYodGhpcy5fJGNkJiZ0aGlzLl8kYjcpe09iamVjdC5leHRlbmQo dGhpcyx0aGlzLl8kY2QpfWVsc2V7T2JqZWN0LmV4dGVuZCh0aGlzLHRoaXMuXyRi Myl9dGhpcy5fJGQxPSh0aGlzLl8kZDF8fCh0aGlzLl8kZDIrMTApKTt0aGlzLl8k ZDM9KHRoaXMuXyRkM3x8KHRoaXMuXyRkNCsxMCkpO3RoaXMuXyRkNT0odGhpcy5f JGQ1fHwwKTt0aGlzLl8kZDY9KHRoaXMuXyRkNnx8MCl9LF8kZDc6ZnVuY3Rpb24o KXt0aGlzLl8kZDg9cGFyc2VJbnQodGhpcy5fJGFhLmdldFN0eWxlKCJ3aWR0aCIp fHwwKTt0aGlzLl8kZDk9cGFyc2VJbnQodGhpcy5fJGFhLmdldFN0eWxlKCJoZWln aHQiKXx8MCl9LF8kYmY6ZnVuY3Rpb24oYSl7aWYoIWEpe2E9KHRoaXMuXyRiNHx8 InZlcnRpY2FsIil9dGhpcy5fJGQ3KCk7aWYoL15bVnZdLy50ZXN0KGEpKXt0aGlz Ll8kZGE9MDt0aGlzLl8kZGI9MTtpZih0aGlzLl8kYmQpe3RoaXMuXyRiZC5zcmM9 ImltYWdlcy9sYXlvdXQvYnV0dG9uLXVwLmdpZiJ9aWYodGhpcy5fJGJlKXt0aGlz Ll8kYmUuc3JjPSJpbWFnZXMvbGF5b3V0L2J1dHRvbi1kb3duLmdpZiJ9dGhpcy5f JGRjPU1hdGguZmxvb3IodGhpcy5fJGQ4L3RoaXMuXyRkMSk7dGhpcy5fJGRkPW51 bGw7aWYodGhpcy5fJGRjPDEpe3RoaXMuXyRkYz0xfX1lbHNle3RoaXMuXyRkYT0x O3RoaXMuXyRkYj0wO2lmKHRoaXMuXyRiZCl7dGhpcy5fJGJkLnNyYz0iaW1hZ2Vz L2xheW91dC9idXR0b24tbGVmdC5naWYifWlmKHRoaXMuXyRiZSl7dGhpcy5fJGJl LnNyYz0iaW1hZ2VzL2xheW91dC9idXR0b24tcmlnaHQuZ2lmIn10aGlzLl8kZGM9 bnVsbDt0aGlzLl8kZGQ9TWF0aC5mbG9vcih0aGlzLl8kZDkvdGhpcy5fJGQzKTtp Zih0aGlzLl8kZGQ8MSl7dGhpcy5fJGRkPTF9fXRoaXMuXyRiND1hO3RoaXMuXyRi NS5fJDVmPSh0aGlzLl8kZGN8fHRoaXMuXyRkZCl9LF8kYmE6ZnVuY3Rpb24oKXtp ZighdGhpcy5fJGI5KXtyZXR1cm59dmFyIGE9dGhpcy5fJGM4O2lmKHRoaXMuXyRi Nyl7YT0oYT09ImxlZnQiPyJyaWdodCI6ImxlZnQiKX10aGlzLl8kYjkuc3JjPSJp bWFnZXMvbGF5b3V0L2J1dHRvbi1tYXhpbWl6ZS0iK2ErIi5naWYifSxfJGMyOmZ1 bmN0aW9uKGIpe3ZhciBhPWJ8fHdpbmRvdy5ldmVudDtFdmVudC5leHRlbmQoYSk7 dmFyIGM9MDtpZihhLndoZWVsRGVsdGEpe2M9YS53aGVlbERlbHRhLzEyMH1lbHNl e2lmKGEuZGV0YWlsKXtjPS1hLmRldGFpbC8zfWVsc2V7cmV0dXJuIGZhbHNlfX1j PU1hdGgucm91bmQoYyk7aWYoYzwwKXt0aGlzLl8kZGUodHJ1ZSl9aWYoYz4wKXt0 aGlzLl8kZGUoZmFsc2UpfWEuc3RvcCgpO3JldHVybiBmYWxzZX0sXyRjYzpmdW5j dGlvbihhKXt0aGlzLl8kYzA9dGhpcy5fJGMxPTA7aWYoYSl7fXRoaXMuXyRjMD0t cGFyc2VJbnQodGhpcy5fJGFhLnNjcm9sbExlZnQpO3RoaXMuXyRjMT0tcGFyc2VJ bnQodGhpcy5fJGFhLnNjcm9sbFRvcCk7XyQ1KHRoaXMuXyRhYSk7dGhpcy5fJGRm KHRydWUpO18kNCh0aGlzLl8kYWEpfSxfJGRmOmZ1bmN0aW9uKGIpe3ZhciBlPXRo aXMuXyRjMDt2YXIgYT10aGlzLl8kYzE7aWYoIWUmJiFhKXtyZXR1cm59dmFyIGg9 cGFyc2VJbnQodGhpcy5fJGFhLnNjcm9sbExlZnQpO3ZhciBnPXBhcnNlSW50KHRo aXMuXyRhYS5zY3JvbGxUb3ApO2lmKChNYXRoLmFicyhlKT4zKSYmIWIpe2U9TWF0 aC5yb3VuZCgwLjI1KmUpfWlmKChNYXRoLmFicyhhKT4zKSYmIWIpe2E9TWF0aC5y b3VuZCgwLjI1KmEpfXRoaXMuXyRhYS5zY3JvbGxMZWZ0PWgrZTt0aGlzLl8kYWEu c2Nyb2xsVG9wPWcrYTt2YXIgYz1wYXJzZUludCh0aGlzLl8kYWEuc2Nyb2xsTGVm dCk7dmFyIGY9cGFyc2VJbnQodGhpcy5fJGFhLnNjcm9sbFRvcCk7aWYoKGM9PWgr ZSkmJihmPT1nK2EpKXt0aGlzLl8kYzAtPWU7dGhpcy5fJGMxLT1hfWVsc2V7dGhp cy5fJGMwPXRoaXMuXyRjMT0wfWlmKCh0aGlzLl8kYzAhPTApfHwodGhpcy5fJGMx IT0wKSl7c2V0VGltZW91dCh0aGlzLl8kZGYuYmluZCh0aGlzKSw1MCl9fSxfJGUw OmZ1bmN0aW9uKGEpe3RoaXMuXyRlMShhPy1hOm51bGwpfSxfJGUxOmZ1bmN0aW9u KGEpe3ZhciBjPShhKnRoaXMuXyRkYSp0aGlzLl8kZDEpO3ZhciBiPShhKnRoaXMu XyRkYip0aGlzLl8kZDMpO3RoaXMuXyRjMC09Yzt0aGlzLl8kYzEtPWM7c2V0VGlt ZW91dCh0aGlzLl8kZGYuYmluZCh0aGlzKSwxMDApfSxfJGRlOmZ1bmN0aW9uKGMp e2lmKCF0aGlzLl8kYWEpe3JldHVybn1pZigodGhpcy5fJGQ4PT0wKXx8KHRoaXMu XyRkOT09MCkpe3JldHVybn12YXIgYj1NYXRoLmNlaWwodGhpcy5fJGQ4L3RoaXMu XyRkMS0xKTt2YXIgYT1NYXRoLmNlaWwodGhpcy5fJGQ5L3RoaXMuXyRkMy0xKTti PWE9MTtpZihiPD0xKXtiPTF9aWYoYTw9MSl7YT0xfWlmKCFjKXtiPS1iO2E9LWF9 dGhpcy5fJGMwKz0oYip0aGlzLl8kZGEqdGhpcy5fJGQxKTt0aGlzLl8kYzErPShh KnRoaXMuXyRkYip0aGlzLl8kZDMpO3NldFRpbWVvdXQodGhpcy5fJGRmLmJpbmQo dGhpcyksMTAwKX0sXyRjMzpmdW5jdGlvbihhKXt0aGlzLl8kZGUoZmFsc2UpfSxf JGM0OmZ1bmN0aW9uKGEpe3RoaXMuXyRkZSh0cnVlKX0sXyQzODpmdW5jdGlvbihh KXtpZighYXx8IWEudGFyZ2V0fHwhYS50YXJnZXQuXyQ4Yil7cmV0dXJufXZhciBi PWEudGFyZ2V0Ll8kOGIuXyQ1MDtpZighXyRhKGIpKXtyZXR1cm59dGhpcy5fJGNh KCk7dmFyIGM9e3pvb21UeXBlOiJ0ZXh0dXJlIix0ZXh0dXJlSW5kZXg6YixVUkw6 dGhpcy5fJDVlLl8kNTkoInRleHR1cmUtcHJldmlldy16b29tIixiKSxvdmVybGF5 VVJMOnRoaXMuXyQ1ZS5fJDU5KCJ0ZXh0dXJlLXByZXZpZXctem9vbS1vdmVybGF5 IixiKSxpbWFnZVdpZHRoOnRoaXMuXyRiMSxpbWFnZUhlaWdodDp0aGlzLl8kYjIs dW5pcXVlSWRWYWx1ZToidGV4dHVyZS0iK1N0cmluZyhiKX07ZG9jdW1lbnQuZmly ZSgidXNlcjp0ZXh0dXJlem9vbSIsYyl9LF8kODE6ZnVuY3Rpb24oYil7aWYoIWJ8 fCFiLnRhcmdldCl7cmV0dXJufXZhciBhPWIudGFyZ2V0Ll8kYWU7aWYoIV8kOShh KSl7cmV0dXJufXRoaXMuXyRjYSgpO3ZhciBjPXtzY2VuZUluZGV4OmF9O2RvY3Vt ZW50LmZpcmUoIm1vZGVsOnNlbGVjdHNjZW5lIixjKX0sXyRlMjpmdW5jdGlvbihh KXtpZighYXx8IWEudGFyZ2V0KXtyZXR1cm59dmFyIGI9YS50YXJnZXQuXyQ1MDtp ZighXyRhKGIpKXtyZXR1cm59dGhpcy5fJGNhKCk7aWYoZmFsc2UpeyQkKFN0cmlu ZygiLiIrdGhpcy5fJDZiKyItdGh1bWJuYWlsIikpLmVhY2goZnVuY3Rpb24oZSl7 dmFyIGY9ZS5fJGUzO2lmKGYmJihlLl8kNTAhPWIpKXtlLl8kZTM9ZmFsc2U7ZS5z dHlsZS5ib3JkZXJDb2xvcj0iI2VlZWVlZSJ9aWYoIWYmJihlLl8kNTA9PWIpKXtl Ll8kZTM9dHJ1ZTtlLnN0eWxlLmJvcmRlckNvbG9yPSIjMDAwMDAwIn19LHRoaXMp fWRvY3VtZW50LmZpcmUoInVzZXI6Y2xvc2V0ZXh0dXJlem9vbSIpO3ZhciBjPXt0 ZXh0dXJlSW5kZXg6Yn07ZG9jdW1lbnQuZmlyZSgibW9kZWw6c2VsZWN0dGV4dHVy ZSIsYyl9LF8kYjY6ZnVuY3Rpb24oYSl7c3dpdGNoKGEpe2Nhc2Uic2NlbmVzIjp0 aGlzLl8kZTQ9dGhpcy5fJDVlLl8kNTM7dGhpcy5fJGU1PXRoaXMuXyQ4MTt0aGlz Ll8kY2U9InNjZW5lLXRodW1ibmFpbC1zbWFsbCI7dGhpcy5fJGNmPSJzY2VuZS10 aHVtYm5haWwtbGFyZ2UiO2JyZWFrO2Nhc2UidGV4dHVyZXMiOmRlZmF1bHQ6dGhp cy5fJGU0PXRoaXMuXyQ1ZS5fJDU0O3RoaXMuXyRlNT10aGlzLl8kZTI7dGhpcy5f JGNlPSJ0ZXh0dXJlLXRodW1ibmFpbC1sYXJnZSI7dGhpcy5fJGNmPSJ0ZXh0dXJl LXRodW1ibmFpbC1sYXJnZSI7YnJlYWt9fSxfJDMwOmZ1bmN0aW9uKGEpe2lmKCF0 aGlzfHwhdGhpcy5fJDVlKXtyZXR1cm59aWYodGhpcy5fJGIwPT0ic2NlbmVzIil7 dGhpcy5fJGNhKGEpO2lmKHRoaXMuXyRlNil7cmV0dXJuIGZhbHNlfXRoaXMuXyRl Nj10cnVlfXJldHVybiB0aGlzLl8kZDAoYSl9LF8kZDA6ZnVuY3Rpb24oKXtpZigh dGhpc3x8IXRoaXMuXyQ1ZSl7cmV0dXJufXZhciBoPTA7dmFyIGc9MCxlPTA7dmFy IGM9MCxmPTA7aWYodGhpcy5fJGRjJiZ0aGlzLl8kZGQpe3JldHVybn1pZih0aGlz Ll8kZGQpe2Y9MX1lbHNle2M9MX12YXIgYT1wYXJzZUludCh0aGlzLl8kYWEuZ2V0 U3R5bGUoImhlaWdodCIpKTt0aGlzLl8kYWEuaW5uZXJIVE1MPSIiO2NvbnNvbGUu bG9nKCJSRVBPUFVMQVRJTkcgUEFORUw6ICIrdGhpcy5fJGIwKTt2YXIgYj10aGlz Ll8kY2V8fHRoaXMuXyRjZjtpZih0aGlzLl8kYjcpe2I9dGhpcy5fJGNmfHx0aGlz Ll8kY2V9dGhpcy5fJGU0LmFwcGx5KHRoaXMuXyQ1ZSxbZnVuY3Rpb24oaixsKXt2 YXIgbT1uZXcgRWxlbWVudCgiaW1nIix7Y2xhc3NOYW1lOnRoaXMuXyQ2YisiLXRo dW1ibmFpbCJ9KTt2YXIgcD10aGlzLl8kZDUrdGhpcy5fJGQxKmc7dmFyIG89dGhp cy5fJGQ2K3RoaXMuXyRkMyplO20uc3R5bGUubGVmdD1wKyJweCI7bS5zdHlsZS50 b3A9bysicHgiO3ZhciBuPXRoaXMuXyQ1ZS5fJDU5KGIsbCk7bS5kZWxheUxvYWRV Ukw9bjttLnNyYz10aGlzLl8kNWUuXyQ1OSgicGxhY2Vob2xkZXItbGlnaHRncmF5 Iik7bS53aWR0aD10aGlzLl8kZDI7bS5oZWlnaHQ9dGhpcy5fJGQ0O2lmKHRoaXMu XyRiMD09InNjZW5lcyIpe20uXyRhZT1sfWlmKHRoaXMuXyRiMD09InRleHR1cmVz Iil7bS5fJDUwPWx9RXZlbnQub2JzZXJ2ZShtLCJjbGljayIsdGhpcy5fJGU1LmJp bmRBc0V2ZW50TGlzdGVuZXIodGhpcykpO2lmKHRoaXMuXyRjOSl7dGhpcy5fJDgy Ll8kYTEobSl9aCsrO2crPWM7ZSs9Zjt2YXIgaz1mYWxzZTtpZih0aGlzLl8kYmIp e2lmKChjIT0wKSYmKChnPDApfHwoZz49dGhpcy5fJGRjKSkpe2M9LWM7Zys9Yztr PXRydWV9aWYoKGYhPTApJiYoKGU8MCl8fChlPj10aGlzLl8kZGQpKSl7Zj0tZjtl Kz1mO2s9dHJ1ZX19ZWxzZXtpZihnPj10aGlzLl8kZGMpe2c9MDtrPXRydWV9aWYo ZT49dGhpcy5fJGRkKXtlPTA7az10cnVlfX1pZihrKXtpZih0aGlzLl8kZGQpe2cr PTF9ZWxzZXtlKz0xfX1tPXRoaXMuXyRhYS5hcHBlbmRDaGlsZChtKTt3aW5kb3cu XyQxNC5fJDE5KG0pO2lmKG0uZGVsYXlMb2FkVVJMKXt0aGlzLl8kYjUuXyQ2MS5w dXNoKG0pfX0sdGhpc10pO2lmKHRoaXMuXyRjOSl7dGhpcy5fJGFhLmFwcGVuZENo aWxkKHRoaXMuXyRjOSl9dGhpcy5fJGFhLnNjcm9sbExlZnQ9dGhpcy5fJGFhLnNj cm9sbFRvcD0wO3RoaXMuXyRiNS5fJDY2KCl9LEVORF8kZTc6bnVsbH0pO18kZTg9 Q2xhc3MuY3JlYXRlKHtpbml0aWFsaXplOmZ1bmN0aW9uKGIpe09iamVjdC5leHRl bmQodGhpcyxifHx7fSk7aWYodHlwZW9mIHRoaXMuXyQ1ZT09InVuZGVmaW5lZCIp e3JldHVybn1pZih0eXBlb2YgdGhpcy5fJDZiPT0idW5kZWZpbmVkIil7cmV0dXJu fWlmKHR5cGVvZiB0aGlzLl8kZTk9PSJ1bmRlZmluZWQiKXtyZXR1cm59dGhpcy5f JGVhPWZhbHNlO3RoaXMuXyRlYj0kKHRoaXMuXyQ2YisiLWNvbnRhaW5lciIpO3Ro aXMuXyRlYz0kKHRoaXMuXyQ2YisiLWJhY2tncm91bmQiKTt0aGlzLl8kZWQ9JCh0 aGlzLl8kNmIrIi1sb2FkaW5nIik7dGhpcy5fJGVlPSQodGhpcy5fJDZiKyItaW1h Z2UiKTt0aGlzLl8kZWY9JCh0aGlzLl8kNmIrIi1idXR0b25iYXIiKTt2YXIgYT10 aGlzLl8kZjAuYmluZEFzRXZlbnRMaXN0ZW5lcih0aGlzKTtFdmVudC5vYnNlcnZl KHRoaXMuXyRlYywiY2xpY2siLGEpO0V2ZW50Lm9ic2VydmUodGhpcy5fJGVmLCJj bGljayIsYSk7RXZlbnQub2JzZXJ2ZSh0aGlzLl8kZWUsImNsaWNrIixhKTtkb2N1 bWVudC5vYnNlcnZlKCJ1c2VyOmNsb3NlYWxscGFuZWxzIix0aGlzLl8kZjAuYmlu ZEFzRXZlbnRMaXN0ZW5lcih0aGlzKSk7dGhpcy5fJGYxPW51bGw7dGhpcy5fJGYy PTA7RXZlbnQub2JzZXJ2ZSh0aGlzLl8kZWUsIm1vdXNlbW92ZSIsdGhpcy5fJDdm LmJpbmQodGhpcykpO2lmKHRoaXMuXyRmMyl7dGhpcy5fJGVjLnNldE9wYWNpdHko dGhpcy5fJGYzKX10aGlzLl8kZjQ9bnVsbDt0aGlzLl8kZjU9XyQxMigpO3RoaXMu XyRmNj1udWxsO3RoaXMuXyRmNz0kKHRoaXMuXyQ2YisiLW92ZXJsYXktY29udGFp bmVyIik7dGhpcy5fJGY4PSQodGhpcy5fJDZiKyItb3ZlcmxheS1pbWFnZSIpO2lm KHRoaXMuXyRmNyYmdGhpcy5fJGY4KXtFdmVudC5vYnNlcnZlKHRoaXMuXyRmNywi Y2xpY2siLHRoaXMuXyRmOS5iaW5kQXNFdmVudExpc3RlbmVyKHRoaXMpKX10aGlz Ll8kZmE9ZmFsc2U7dGhpcy5fJGZiPW51bGw7dGhpcy5fJGZjPXRoaXMuXyRmZD1m YWxzZTtkb2N1bWVudC5vYnNlcnZlKHRoaXMuXyRlOSx0aGlzLl8kZmUuYmluZEFz RXZlbnRMaXN0ZW5lcih0aGlzKSk7aWYodGhpcy5fJGZmKXtkb2N1bWVudC5vYnNl cnZlKHRoaXMuXyRmZixhKX19LF8kN2Y6ZnVuY3Rpb24oZSl7aWYoIXRoaXMuXyRl ZXx8IXRoaXMuXyRlYil7cmV0dXJufXZhciBjPXRoaXMuXyRlZS53aWR0aDt2YXIg Zz10aGlzLl8kZWUuaGVpZ2h0O3ZhciBmPXBhcnNlSW50KHRoaXMuXyRlYi5nZXRT dHlsZSgid2lkdGgiKSk7dmFyIGI9cGFyc2VJbnQodGhpcy5fJGViLmdldFN0eWxl KCJoZWlnaHQiKSk7dmFyIGE9ZS5wb2ludGVyWSgpO3RoaXMuXyRmMj0wO2lmKGE8 KGIqMS8zKSl7dGhpcy5fJGYyPS0xfWlmKGE+KGIqMi8zKSl7dGhpcy5fJGYyPSsx fWlmKHRoaXMuXyRmMil7d2luZG93LnNldFRpbWVvdXQodGhpcy5fJDEwMC5iaW5k KHRoaXMpLDIwKX19LF8kMTAwOmZ1bmN0aW9uKCl7aWYoIXRoaXMuXyRlZXx8IXRo aXMuXyRlYnx8IXRoaXMuXyRmMil7cmV0dXJufXZhciBjPXRoaXMuXyRlZS53aWR0 aDt2YXIgZj10aGlzLl8kZWUuaGVpZ2h0O3ZhciBlPXBhcnNlSW50KHRoaXMuXyRl Yi5nZXRTdHlsZSgid2lkdGgiKSk7dmFyIGE9cGFyc2VJbnQodGhpcy5fJGViLmdl dFN0eWxlKCJoZWlnaHQiKSk7dmFyIGI9cGFyc2VJbnQodGhpcy5fJGVlLmdldFN0 eWxlKCJ0b3AiKSk7Yi09dGhpcy5fJGYyO2lmKGI+MCl7cmV0dXJufWlmKGI8LWYr YSl7cmV0dXJufXRoaXMuXyRlZS5zdHlsZS50b3A9YisicHgiO3dpbmRvdy5zZXRU aW1lb3V0KHRoaXMuXyQxMDAuYmluZCh0aGlzKSwyMCl9LF8kMTAxOmZ1bmN0aW9u KGEpe2lmKCF0aGlzLl8kZjd8fCF0aGlzLl8kZjh8fCFhKXtyZXR1cm59dGhpcy5f JDEwMigpO3RoaXMuXyRmYT1mYWxzZTtpZih0aGlzLl8kZmIpe0V2ZW50LnN0b3BP YnNlcnZpbmcodGhpcy5fJGZiLCJsb2FkIil9RXZlbnQuc3RvcE9ic2VydmluZyh0 aGlzLl8kZjgsImxvYWQiKTt0aGlzLl8kZjguc3JjPXRoaXMuXyRmNTt0aGlzLl8k ZmI9bmV3IEltYWdlKCk7RXZlbnQub2JzZXJ2ZSh0aGlzLl8kZmIsImxvYWQiLHRo aXMuXyQxMDMuYmluZEFzRXZlbnRMaXN0ZW5lcih0aGlzKSk7dGhpcy5fJGZiLnNy Yz1hO2lmKFByb3RvdHlwZS5Ccm93c2VyLk9wZXJhJiZ0aGlzLl8kZmIuY29tcGxl dGUpe0V2ZW50LnN0b3BPYnNlcnZpbmcodGhpcy5fJGZiLCJsb2FkIik7dGhpcy5f JDEwMygpfX0sXyQxMDM6ZnVuY3Rpb24oYSl7aWYoIXRoaXMuXyRmOCl7cmV0dXJu fUV2ZW50LnN0b3BPYnNlcnZpbmcodGhpcy5fJGY4LCJsb2FkIik7RXZlbnQub2Jz ZXJ2ZSh0aGlzLl8kZjgsImxvYWQiLHRoaXMuXyQxMDQuYmluZEFzRXZlbnRMaXN0 ZW5lcih0aGlzKSk7dGhpcy5fJGY4LnNyYz10aGlzLl8kZmIuc3JjO3RoaXMuXyRm OC53aWR0aD10aGlzLl8kZmIud2lkdGg7dGhpcy5fJGY4LmhlaWdodD10aGlzLl8k ZmIuaGVpZ2h0O2lmKFByb3RvdHlwZS5Ccm93c2VyLk9wZXJhJiZ0aGlzLl8kZjgu Y29tcGxldGUpe0V2ZW50LnN0b3BPYnNlcnZpbmcodGhpcy5fJGY4LCJsb2FkIik7 dGhpcy5fJDEwNCgpfX0sXyQxMDQ6ZnVuY3Rpb24oYSl7dGhpcy5fJGZhPXRydWU7 dGhpcy5fJDEwNSgpfSxfJDEwNTpmdW5jdGlvbigpe2lmKCF0aGlzLl8kZjcpe3Jl dHVybn1pZighdGhpcy5fJGY4KXtpZighdGhpcy5fJGZjKXtfJDQodGhpcy5fJGY3 KX10aGlzLl8kZmM9dHJ1ZTtyZXR1cm59aWYodGhpcy5fJGZjJiYhdGhpcy5fJGZk JiZ0aGlzLl8kZmEmJnRoaXMuXyRlYSl7XyQ0KHRoaXMuXyRmNyk7dGhpcy5fJGZk PXRydWU7cmV0dXJufX0sXyQxMDI6ZnVuY3Rpb24oKXtpZighdGhpcy5fJGY3fHwh dGhpcy5fJGZkKXtyZXR1cm59XyQ1KHRoaXMuXyRmNyk7dGhpcy5fJGZkPWZhbHNl fSxfJDEwNjpmdW5jdGlvbihhKXt0aGlzLl8kZmM9dHJ1ZTt0aGlzLl8kMTA1KCk7 aWYoYS5zdG9wKXthLnN0b3AoKX19LF8kZjk6ZnVuY3Rpb24oYSl7dGhpcy5fJGZj PWZhbHNlO3RoaXMuXyQxMDIoKTtpZihhLnN0b3Ape2Euc3RvcCgpfX0sXyRmZTpm dW5jdGlvbihhKXtpZihhJiZhLm1lbW8mJih0eXBlb2YgYS5tZW1vLnVuaXF1ZUlk VmFsdWUhPSJ1bmRlZmluZWQiKSl7aWYoYS5tZW1vLnVuaXF1ZUlkVmFsdWU9PXRo aXMudW5pcXVlSWRWYWx1ZSl7aWYodGhpcy5fJGVhKXt0aGlzLl8kZjAoYSl9ZWxz ZXt0aGlzLl8kMTA3KGEpfXJldHVybn1lbHNle3RoaXMuXyRmNj1hLm1lbW8udW5p cXVlSWRWYWx1ZX19dGhpcy5fJDEwNyhhKX0sXyQxMDc6ZnVuY3Rpb24oYil7aWYo IWJ8fCFiLm1lbW98fCFiLm1lbW8uVVJMfHwhYi5tZW1vLmltYWdlV2lkdGh8fCFi Lm1lbW8uaW1hZ2VIZWlnaHQpe3JldHVybn10aGlzLl8kZWUuc3R5bGUuY3Vyc29y PSJ3YWl0Ijt0aGlzLl8kMTA4KCk7dGhpcy5fJGY0PW5ldyBJbWFnZShiLm1lbW8u aW1hZ2VXaWR0aCxiLm1lbW8uaW1hZ2VIZWlnaHQpO3RoaXMuXyRmNC5pbWFnZVpv b21lcj10aGlzO3ZhciBhPXRoaXMuXyQxMDkuYmluZEFzRXZlbnRMaXN0ZW5lcih0 aGlzKTtFdmVudC5zdG9wT2JzZXJ2aW5nKHRoaXMuXyRmNCwibG9hZCIpO0V2ZW50 Lm9ic2VydmUodGhpcy5fJGY0LCJsb2FkIixhKTt0aGlzLl8kZjQuc3JjPWIubWVt by5VUkw7aWYoUHJvdG90eXBlLkJyb3dzZXIuT3BlcmEmJnRoaXMuXyRmNC5jb21w bGV0ZSl7RXZlbnQuc3RvcE9ic2VydmluZyh0aGlzLl8kZjQsImxvYWQiKTt0aGlz Ll8kMTA5KGIpfWlmKGIubWVtby5vdmVybGF5VVJMKXt0aGlzLl8kMTAxKGIubWVt by5vdmVybGF5VVJMKX19LF8kMTA5OmZ1bmN0aW9uKGUpe2lmKCF0aGlzLl8kZWV8 fCF0aGlzLl8kZjR8fCF0aGlzLl8kZWIpe3JldHVybn1pZighdGhpcy5fJGVhKXty ZXR1cm59dmFyIGM9dGhpcy5fJGY0LndpZHRoO3ZhciBnPXRoaXMuXyRmNC5oZWln aHQ7RXZlbnQuc3RvcE9ic2VydmluZyh0aGlzLl8kZWUsImxvYWQiKTtFdmVudC5v YnNlcnZlKHRoaXMuXyRlZSwibG9hZCIsdGhpcy5fJDEwYS5iaW5kQXNFdmVudExp c3RlbmVyKHRoaXMpKTt0aGlzLl8kZWUuc3JjPXRoaXMuXyRmNC5zcmM7dGhpcy5f JGVlLndpZHRoPWM7dGhpcy5fJGVlLmhlaWdodD1nO3ZhciBmPXBhcnNlSW50KHRo aXMuXyRlYi5nZXRTdHlsZSgid2lkdGgiKSk7dmFyIGI9cGFyc2VJbnQodGhpcy5f JGViLmdldFN0eWxlKCJoZWlnaHQiKSk7dmFyIGE9MDtpZihmPmMpe2E9TWF0aC5y b3VuZCgoZi1jKS8yKX10aGlzLl8kZWUuc3R5bGUubGVmdD1hKyJweCI7dGhpcy5f JGVlLnN0eWxlLnRvcD0iMHB4IjtpZihQcm90b3R5cGUuQnJvd3Nlci5PcGVyYSYm dGhpcy5fJGVlLmNvbXBsZXRlKXtFdmVudC5zdG9wT2JzZXJ2aW5nKHRoaXMuXyRl ZSwibG9hZCIpO3RoaXMuXyQxMGEoKX19LF8kMTBhOmZ1bmN0aW9uKGEpe2lmKCF0 aGlzLl8kZWUpe3JldHVybn1fJDUodGhpcy5fJGVkKTt0aGlzLl8kZWUuc3R5bGUu Y3Vyc29yPSJhdXRvIjtfJDQodGhpcy5fJGVlKTt0aGlzLl8kZmM9dHJ1ZTt0aGlz Ll8kMTA1KCl9LF8kZjA6ZnVuY3Rpb24oYil7dmFyIGE9dGhpcy5fJGY0O2lmKHRo aXMuXyRmNCl7RXZlbnQuc3RvcE9ic2VydmluZyh0aGlzLl8kZjQsImxvYWQiKTt0 aGlzLl8kZjQ9bnVsbH1pZih0aGlzLl8kZmIpe0V2ZW50LnN0b3BPYnNlcnZpbmco dGhpcy5fJGZiLCJsb2FkIik7dGhpcy5fJGZiPW51bGx9dGhpcy5fJGZjPWZhbHNl O3RoaXMuXyQxMDIoKTt0aGlzLl8kMTBiKCl9LF8kMTA4OmZ1bmN0aW9uKCl7aWYo dGhpcy5fJGVhKXtyZXR1cm59XyQ0KHRoaXMuXyRlYik7XyQ0KHRoaXMuXyRlYyk7 XyQ0KHRoaXMuXyRlZCk7dGhpcy5fJGVhPXRydWV9LF8kMTBiOmZ1bmN0aW9uKCl7 aWYoIXRoaXMuXyRlYSl7cmV0dXJufV8kNSh0aGlzLl8kZWIpO18kNSh0aGlzLl8k ZWMpO18kNSh0aGlzLl8kZWQpO18kNSh0aGlzLl8kZWUpO0V2ZW50LnN0b3BPYnNl cnZpbmcodGhpcy5fJGVlLCJsb2FkIik7dGhpcy5fJGVlLnNyYz10aGlzLl8kZjU7 dGhpcy5fJGVhPWZhbHNlfSxFTkRfJGU4Om51bGx9KTtfJDEwYz1DbGFzcy5jcmVh dGUoe2luaXRpYWxpemU6ZnVuY3Rpb24oYSl7dGhpcy5fJDE1PSJzaXRlLW1hcmJ1 cmciO3RoaXMuXyQxMGQ9InN1cHJvZmlsLXZsaWVzLTIwMTAiO3RoaXMuXyQ1ZT1u ZXcgXyQyMCh7XyQyYjp7fSxfJDE1OnRoaXMuXyQxNSxfJDI5OmEsXyQyODp0cnVl fSk7d2luZG93Ll8kMTQ9bmV3IF8kMTQodGhpcy5fJDE1KTt0aGlzLl8kMTBlPW5l dyBfJGE5KHtfJDVlOnRoaXMuXyQ1ZSxfJDZiOiJzY2VuZXMtcGFuZWwifSk7dGhp cy5fJDEwZj1uZXcgXyRhZih7XyQ1ZTp0aGlzLl8kNWUsXyQ2YjoidGV4dHVyZXMt cGFuZWwiLF8kYjA6InRleHR1cmVzIixfJGIxOjcxOCxfJGIyOjYwOCxfJGIzOntf JGQ1OjEwLF8kZDI6OTEsXyRkMTo5MSsxNCxfJGQ2OjArMTYsXyRkNDo3MSxfJGQz OjcxKzE0fSxfJGI0OiJob3Jpem9udGFsIixfJGM4OiJsZWZ0IixfJGM2OmZhbHNl fSk7dGhpcy5fJDExMD1uZXcgXyRhMyh7XyQ1ZTp0aGlzLl8kNWUsXyQ2YjoiZGV0 YWlscy1wYW5lbCJ9KTt0aGlzLl8kMTExPW5ldyBfJGU4KHtfJDVlOnRoaXMuXyQ1 ZSxfJDZiOiJzY2VuZS16b29tIixfJGYzOjAuNyxfJGU5OiJ1c2VyOnNjZW5lem9v bSJ9KTt0aGlzLl8kMTEyPW5ldyBfJGU4KHtfJDVlOnRoaXMuXyQ1ZSxfJDZiOiJ0 ZXh0dXJlLXpvb20iLF8kZTk6InVzZXI6dGV4dHVyZXpvb20iLF8kZmY6InVzZXI6 Y2xvc2V0ZXh0dXJlem9vbSJ9KTt0aGlzLl8kMTEzPW5ldyBfJDY5KHtfJDVlOnRo aXMuXyQ1ZSxfJDZiOiJzY2VuZSIsXyQxNTp0aGlzLl8kMTV9KTtzZXRUaW1lb3V0 KGZ1bmN0aW9uKCl7ZG9jdW1lbnQuZmlyZSgibW9kZWw6cmV2ZWFsbGF5b3V0Iix7 dGltZW91dDp0cnVlfSl9LDgwMDApO2RvY3VtZW50LmZpcmUoIm1vZGVsOnNlbGVj dGNhdGVnb3J5Iix7Y2F0ZWdvcnlOYW1lOnRoaXMuXyQxMGR9KX0sRU5EXyQxMGM6 bnVsbH0pO2Z1bmN0aW9uIF8kMTE0KGEpe3RyX2xhbmcobnVsbCxbXSk7dHJfaW1n KCk7XyRmKCk7XyQ4KDk5MCw2MzApO18kMTE1PW5ldyBfJDEwYygpfWRvY3VtZW50 Lm9ic2VydmUoImRvbTpsb2FkZWQiLF8kMTE0KTtUUi5zZXQoImJlbmFyZXMiLCJC ZW5hcmVzIik7VFIuc2V0KCJiZXN0LWFnZXItMjAxMSIsIkJlc3QgQWdlciAyMDEx Iik7VFIuc2V0KCJjb2xhbmkiLCJDb2xhbmkiKTtUUi5zZXQoImhvbWUtY2xhc3Np Y3MiLCJIb21lIENsYXNzaWNzIik7VFIuc2V0KCJsYS12ZW5lemlhbmEiLCJMYSBW ZW5lemlhbmEiKTtUUi5zZXQoIm55bXBoZWUiLCJOeW1waMOpZSIpO1RSLnNldCgi cGF0ZW50LWRlY29yIiwiUGF0ZW50IERlY29yIik7VFIuc2V0KCJzb2xhcmkiLCJT b2xhcmkiKTtUUi5zZXQoInNvbGlkLWNvbnRyYWN0IiwiU29saWQgQ29udHJhY3Qi KTtUUi5zZXQoInN1cHJvZmlsLXZsaWVzLTIwMTAiLCJTdXByb2ZpbCBWbGllcyAy MDEwIik7DQo= ------------Ce2ljQkrvPB47m7td0y2SP--
In order to use this application, you need to enable JavaScript in your web browser and reload this page.