@opcua/for-node-red 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/all.js +1 -1
- package/config-panel/index.html +15 -0
- package/package.json +1 -1
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +2 -2
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.html +2 -2
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.html +150 -2
- package/source/OpcUa-Client2-ExtensionObject/OpcUa-Client2-ExtensionObject.html +2 -2
- package/source/OpcUa-Client2-HistoryRead/OpcUa-Client2-HistoryRead.html +2 -2
- package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.html +2 -2
- package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.html +2 -2
- package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.html +2 -2
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.html +2 -2
- package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.html +16 -20
@@ -4,8 +4,8 @@
|
|
4
4
|
</style>
|
5
5
|
|
6
6
|
<script type="text/javascript">
|
7
|
-
function _0x397f(){const _0x104502=['pageX','typeDefinition','$inputGroup','length','DarkOrange','Inverse',';\x22></i>\x20','blur','already\x20loading','\x22}><span\x20class=\x22tree-text\x22\x20title=','keydown','_delay','none','loading','then','prev','red-ui-typedInput-focus','top','/browse','$dropdown','$selectLabel','CadetBlue','removeClass','Value\x20is\x20not\x20verified','_showTypeMenu','/opcua-for-node-red','body','stringify','log','555494sRUIoo','$selectTrigger','height','attr','HasProperty','!!failure!!','input-group','DodgerBlue','Organizes','red-ui-typedInput-icon','SandyBrown','OpcUa-Endpoint2','node\x20id\x20or\x20\x20browse\x20path\x20comes\x20from\x20injected\x20msg\x20parameter','_initMenu','Good','<i\x20class=\x22fa\x20fa-tag\x22/>1\x20 \x20','left','referenceTypeId','browseResult','baseUrl','<input\x20type=\x22checkbox\x22>','nsu\x20nodeId:\x20','off','$tree','toggleClass','Invalid','apply','empty','fa-text-width','each','pageY','fetched','</span><ul></ul></li>','sort','29124mtunTM','hide','sterfive-combo-box','reference','forEach','Forward','multiple','append','toggle','fa-cog','13jutbUl','find','DataType','throw','red-ui-typedInput-icon\x20','\x22\x20style=\x22color:','<i>','nodes','nsu','/checkNodeId','resolveParentNode','<i\x20class=\x22fa\x20fa-id-card\x22/> \x20','selected','../../icons/opcuanodeLogo.png','relativePath','<div/>','Aliased\x20NodeId','err','endpoint','already\x20fetched','fa-folder','HasTypeDefinition','verify','$elementDiv','rgba(61,\x2060,\x204,\x200.525)','data','trigger','parent','push','<li>error\x20','11565cbImRJ','BrowseName','nodeId_nsu','507683PaxRoe','2538dMgmTm','preventDefault','tabindex','failure','bp_indexed','><i\x20class=\x22fa\x20','callback','<span\x20class=\x22red-ui-typedInput-type-label\x22></span>','focus','mousedown.red-ui-typedInput-focus-block','msg.','remove','stopPropagation','</span>','aliased\x20browsePath:\x20','references','NodeId','192dBpuZI','indexOf','ReferenceType','Object','scrollTop','inputs','opcua','closest','_hideMenu','ObjectType','ns=0;i=47','$uiSelect','application/json','position','filter','$combo','icon','<div\x20class=\x22info-text\x22></div>','[value=\x27','ns=0;i=61','input-error','json','wrap','appendTo','children','<li\x20key=\x22','change','options','disarmClick','6871592KsOsXK','expanded','show','#node-input-nodeId','ns=0;i=45','bp_aliased','after','message','element','__parentNode',':first','function','displayName','3990340dTfTBM','Variable','mousedown.red-ui-typedInput-close-property-select','18px','<i\x20class=\x22fa\x20fa-envelope-open-o\x22/>','/walk-backward','4kvLwcI','HasChild','<div>','expandable\x20expanded','aliasedBrowsePath','read','css','endpointNode','assign','title','nodeId','reset','sterfive.nodeBrowser','405kJdDzv','node\x20class:\x20','checked','$verifyBtn','ns=0;i=46','browse\x20path:\x20','toString','statusCode:\x20','widget','registerType','> \x20','isSelectable','<i\x20class=\x22fa\x20fa-bookmark\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/> ','namespaceAliases','fa-list-alt','opts','#node-input-endpoint','POST','browsePath','fetching\x20failed\x20with\x20error','mask-image:\x20url(','main-wrapper','<span\x20title=','isTypeRef',':focus','Method','error','label','nodeIds','<div\x20class=\x22spinner\x22></div>','Both','NodeClass','hasClass','aliasedNodeId','nodeId:\x20','text','parentNode','IsForward','$menu','$info','i=61','HasSubtype','Unspecified','currentParent','statusText','SuppressedError','<button\x20type=\x22button\x22\x20tabindex=\x220\x22></button>','_createMenu','selectedMenuItem','prop','animate','<button\x20title=\x22verify\x20nodeId\x20or\x20browsePath\x22><i\x20class=\x22fa\x20fa-refresh\x22></i></button>','status','88XCflYv','statusCode','value','nsuNodeID','addClass','OpcUa-Client2-Read','next','browseName','name','join','VariableType','ns=0;i=35','nodeClass','$toggleTreeBtn','prependTo','ns=0;i=40','338422eGQXpx','fa-object-group','18hZalBc','node','string','<i\x20class=\x22fa\x20fa-bookmark\x22/> \x20','mode','offset','View','node_label_italic','placeholder','expandable','fa-question','val','BrowsePath','keyCode','click','nodeId_aliased','match','$input'];_0x397f=function(){return _0x104502;};return _0x397f();}function _0x56de(_0x4380be,_0x523d9a){const _0x397f0c=_0x397f();return _0x56de=function(_0x56de74,_0x20358f){_0x56de74=_0x56de74-0xa6;let _0x1a7193=_0x397f0c[_0x56de74];return _0x1a7193;},_0x56de(_0x4380be,_0x523d9a);}(function(_0x16349e,_0x45b872){const _0x1c86a8=_0x56de,_0x11c8d0=_0x16349e();while(!![]){try{const _0x59688a=parseInt(_0x1c86a8(0xb7))/0x1*(-parseInt(_0x1c86a8(0x13a))/0x2)+-parseInt(_0x1c86a8(0xc4))/0x3*(-parseInt(_0x1c86a8(0x15c))/0x4)+parseInt(_0x1c86a8(0x184))/0x5*(parseInt(_0x1c86a8(0x188))/0x6)+-parseInt(_0x1c86a8(0x109))/0x7*(-parseInt(_0x1c86a8(0xf9))/0x8)+parseInt(_0x1c86a8(0x10b))/0x9*(parseInt(_0x1c86a8(0xb1))/0xa)+parseInt(_0x1c86a8(0x187))/0xb*(-parseInt(_0x1c86a8(0x199))/0xc)+parseInt(_0x1c86a8(0x166))/0xd*(-parseInt(_0x1c86a8(0x1b6))/0xe);if(_0x59688a===_0x45b872)break;else _0x11c8d0['push'](_0x11c8d0['shift']());}catch(_0x4ddeff){_0x11c8d0['push'](_0x11c8d0['shift']());}}}(_0x397f,0xe82a0),(function(){'use strict';const _0x5d2502=_0x56de;function _0x5b394f(_0x455596,_0x52e260,_0x326082,_0x4eeafe){function _0x3d45dd(_0xee29cd){return _0xee29cd instanceof _0x326082?_0xee29cd:new _0x326082(function(_0x3170b3){_0x3170b3(_0xee29cd);});}return new(_0x326082||(_0x326082=Promise))(function(_0x6a24b8,_0x9ca5b5){const _0x3f1891=_0x56de;function _0x3e6bc6(_0x467095){const _0x3db6d3=_0x56de;try{_0x1e0226(_0x4eeafe[_0x3db6d3(0xff)](_0x467095));}catch(_0x1ab823){_0x9ca5b5(_0x1ab823);}}function _0x2aa673(_0x3a6a08){const _0x51975c=_0x56de;try{_0x1e0226(_0x4eeafe[_0x51975c(0x169)](_0x3a6a08));}catch(_0x25315c){_0x9ca5b5(_0x25315c);}}function _0x1e0226(_0x165388){const _0x2b9e33=_0x56de;_0x165388['done']?_0x6a24b8(_0x165388[_0x2b9e33(0xfb)]):_0x3d45dd(_0x165388['value'])[_0x2b9e33(0x12b)](_0x3e6bc6,_0x2aa673);}_0x1e0226((_0x4eeafe=_0x4eeafe[_0x3f1891(0x154)](_0x455596,_0x52e260||[]))[_0x3f1891(0xff)]());});}typeof SuppressedError===_0x5d2502(0xaf)?SuppressedError:function(_0x4d21ed,_0x25377d,_0x392afc){const _0x46de2e=_0x5d2502;var _0x1b587c=new Error(_0x392afc);return _0x1b587c[_0x46de2e(0x101)]=_0x46de2e(0xf1),_0x1b587c['error']=_0x4d21ed,_0x1b587c['suppressed']=_0x25377d,_0x1b587c;};const _0x42905d=_0x5d2502(0x104),_0xb42160=_0x5d2502(0x1ac),_0x1e0577=_0x5d2502(0x1a3),_0x80e1db=_0x5d2502(0xc8),_0x4209de='ns=0;i=34',_0x3ac181=_0x5d2502(0xa8),_0x539d07=_0x5d2502(0x108);var _0x50db5d;(function(_0xf1f15c){const _0x114614=_0x5d2502;_0xf1f15c[_0xf1f15c[_0x114614(0x161)]=0x0]=_0x114614(0x161),_0xf1f15c[_0xf1f15c['Inverse']=0x1]=_0x114614(0x122),_0xf1f15c[_0xf1f15c[_0x114614(0xe2)]=0x2]=_0x114614(0xe2),_0xf1f15c[_0xf1f15c['Invalid']=0x3]=_0x114614(0x153);}(_0x50db5d||(_0x50db5d={})));var _0x452daa;(function(_0x267608){const _0x5c46ad=_0x5d2502;_0x267608[_0x267608[_0x5c46ad(0xee)]=0x0]=_0x5c46ad(0xee),_0x267608[_0x267608[_0x5c46ad(0x19c)]=0x1]=_0x5c46ad(0x19c),_0x267608[_0x267608[_0x5c46ad(0xb2)]=0x2]='Variable',_0x267608[_0x267608[_0x5c46ad(0xdd)]=0x4]='Method',_0x267608[_0x267608[_0x5c46ad(0x1a2)]=0x8]=_0x5c46ad(0x1a2),_0x267608[_0x267608['VariableType']=0x10]=_0x5c46ad(0x103),_0x267608[_0x267608[_0x5c46ad(0x19b)]=0x20]=_0x5c46ad(0x19b),_0x267608[_0x267608[_0x5c46ad(0x168)]=0x40]=_0x5c46ad(0x168),_0x267608[_0x267608['View']=0x80]=_0x5c46ad(0x111);}(_0x452daa||(_0x452daa={})));var _0x57eaf1;(function(_0x426cdc){const _0x5d5398=_0x5d2502;_0x426cdc[_0x426cdc[_0x5d5398(0x19c)]=0x1]=_0x5d5398(0x19c),_0x426cdc[_0x426cdc['Variable']=0x2]=_0x5d5398(0xb2),_0x426cdc[_0x426cdc[_0x5d5398(0xdd)]=0x4]=_0x5d5398(0xdd),_0x426cdc[_0x426cdc[_0x5d5398(0x1a2)]=0x8]=_0x5d5398(0x1a2),_0x426cdc[_0x426cdc[_0x5d5398(0x103)]=0x10]=_0x5d5398(0x103),_0x426cdc[_0x426cdc[_0x5d5398(0x19b)]=0x20]=_0x5d5398(0x19b),_0x426cdc[_0x426cdc[_0x5d5398(0x168)]=0x40]=_0x5d5398(0x168),_0x426cdc[_0x426cdc[_0x5d5398(0x111)]=0x80]=_0x5d5398(0x111);}(_0x57eaf1||(_0x57eaf1={})));var _0x33fdbc;(function(_0x2d3d82){const _0x11acef=_0x5d2502;_0x2d3d82[_0x2d3d82['ReferenceType']=0x1]=_0x11acef(0x19b),_0x2d3d82[_0x2d3d82[_0x11acef(0xe9)]=0x2]=_0x11acef(0xe9),_0x2d3d82[_0x2d3d82['NodeClass']=0x4]=_0x11acef(0xe3),_0x2d3d82[_0x2d3d82[_0x11acef(0x185)]=0x8]='BrowseName',_0x2d3d82[_0x2d3d82['DisplayName']=0x10]='DisplayName',_0x2d3d82[_0x2d3d82['TypeDefinition']=0x20]='TypeDefinition';}(_0x33fdbc||(_0x33fdbc={})));function _0x1b58fe(_0x3c27ad){const _0xd98a0f=_0x5d2502;switch(_0x3c27ad){case'Organizes':return _0x42905d;case _0xd98a0f(0x13e):return _0x80e1db;case'HasComponent':return _0x1e0577;case _0xd98a0f(0xb8):return _0x4209de;case _0xd98a0f(0xed):return _0x3ac181;case _0xd98a0f(0x17b):return _0x539d07;}}const _0x5b41d7=_0x48950a=>{const _0x41eb70=_0x5d2502;switch(_0x48950a['nodeClass']){case'Object':if(_0x48950a[_0x41eb70(0x14b)]===_0x42905d);if(_0x48950a[_0x41eb70(0x11e)]===_0xb42160||_0x48950a[_0x41eb70(0x14b)]===_0x41eb70(0xec))return{'icon':_0x41eb70(0x17a),'color':_0x41eb70(0x17e)};return{'icon':_0x41eb70(0x10a),'color':'SeaGreen'};case'Variable':if(_0x48950a[_0x41eb70(0x14b)]===_0x1e0577)return{'icon':_0x41eb70(0xd2),'color':'SteelBlue'};else return _0x48950a[_0x41eb70(0x14b)]===_0x80e1db?{'icon':_0x41eb70(0xd2),'color':_0x41eb70(0x141)}:{'icon':_0x41eb70(0xd2),'color':_0x41eb70(0x132)};case'Method':return{'icon':_0x41eb70(0x165),'color':_0x41eb70(0x144)};case _0x41eb70(0x1a2):return{'icon':_0x41eb70(0x10a),'color':_0x41eb70(0x121)};case _0x41eb70(0x103):return{'icon':'fa-sliders','color':'DarkOrange'};case _0x41eb70(0x168):return{'icon':_0x41eb70(0x156),'color':_0x41eb70(0x132)};}return{'icon':_0x41eb70(0x115),'color':'grey'};},_0x3ee77f=(_0x1809e3,_0x564e2f,_0x5cee1b)=>_0x5b394f(void 0x0,[_0x1809e3,_0x564e2f,_0x5cee1b],void 0x0,function*({endpointNode:_0x4afa86,endpoint:_0x32f301,baseUrl:_0x4006dc},_0x18cae0,_0x322ec6){const _0x4f59e6=_0x5d2502,_0x16826f=_0x4006dc+'/opcua-for-node-red',_0x231c13=_0x16826f+_0x4f59e6(0x12f),_0x31d549=Object[_0x4f59e6(0xbf)](Object[_0x4f59e6(0xbf)]({},_0x322ec6),{'nodeId':_0x18cae0,'resultMask':0x3f}),_0x3daad4=yield fetch(_0x231c13,{'method':_0x4f59e6(0xd5),'body':JSON[_0x4f59e6(0x138)]({'endpointNode':_0x4afa86,'endpoint':_0x32f301,'browseDescription':_0x31d549}),'headers':{'Content-Type':_0x4f59e6(0x1a5)}});if(_0x3daad4[_0x4f59e6(0xf8)]!==0xc8)return console[_0x4f59e6(0x139)](_0x4f59e6(0xd7),_0x3daad4[_0x4f59e6(0xf8)],_0x3daad4['statusText']),{'references':[]};const _0xef275f=yield _0x3daad4[_0x4f59e6(0x1ae)](),_0x500455=_0xef275f[_0x4f59e6(0x14c)][_0x4f59e6(0x197)]||[];return{'references':_0x500455};}),_0x5ea6f1={'referenceTypeId':_0x1b58fe(_0x5d2502(0xb8)),'includeSubtypes':!![],'browseDirection':_0x50db5d['Forward'],'nodeClassMask':_0x452daa[_0x5d2502(0xb2)]|_0x452daa[_0x5d2502(0x19c)]|_0x452daa[_0x5d2502(0xdd)],'resultMask':0x3f},_0x649583={'referenceTypeId':_0x1b58fe(_0x5d2502(0x142)),'includeSubtypes':!![],'browseDirection':_0x50db5d[_0x5d2502(0x161)],'nodeClassMask':_0x452daa[_0x5d2502(0xb2)]|_0x452daa[_0x5d2502(0x19c)]|_0x452daa[_0x5d2502(0xdd)],'resultMask':0x3f},_0x34b6b3=(_0x19cf63,_0xb7f796)=>_0x5b394f(void 0x0,[_0x19cf63,_0xb7f796],void 0x0,function*({endpointNode:_0x5f28ca,endpoint:_0x4794c1,baseUrl:_0x2c3690},{nodeId:_0x223ac4,rootNodeId:_0x4ed9ab,isType:_0x568449}){const _0x36a49a=_0x5d2502,_0x566c4c=_0x2c3690+_0x36a49a(0x136),_0x2258b4=_0x566c4c+_0x36a49a(0xb6),_0x106439=yield fetch(_0x2258b4,{'method':'POST','body':JSON[_0x36a49a(0x138)]({'endpointNode':_0x5f28ca,'endpoint':_0x4794c1,'nodeId':_0x223ac4,'rootNodeId':_0x4ed9ab,'isType':_0x568449}),'headers':{'Content-Type':_0x36a49a(0x1a5)}});if(_0x106439[_0x36a49a(0xf8)]!==0xc8)return null;const _0x5358d6=yield _0x106439[_0x36a49a(0x1ae)]();return _0x5358d6[_0x36a49a(0xd6)];}),_0xea72c5=(_0x293cf8,_0x598233)=>{const _0x2c8063=_0x5d2502;if(_0x293cf8[_0x2c8063(0xfa)]!==_0x2c8063(0x148))return _0x293cf8['requestedNodeId'];switch(_0x598233){case'browsePath':return _0x293cf8[_0x2c8063(0x18c)];case _0x2c8063(0xbb):return _0x293cf8['bp_aliased']||_0x293cf8['bp_indexed'];case _0x2c8063(0xe5):return _0x293cf8[_0x2c8063(0x11a)]||_0x293cf8[_0x2c8063(0x186)];case'nsuNodeID':return _0x293cf8[_0x2c8063(0x186)];default:case _0x2c8063(0xc1):return _0x293cf8[_0x2c8063(0xc1)];}},_0x46787a=_0x452031=>{const _0x6fb6ac=_0x5d2502;if(_0x452031[_0x6fb6ac(0xfa)]!==_0x6fb6ac(0x148))return _0x6fb6ac(0xcb)+_0x452031[_0x6fb6ac(0xfa)];else{let _0xc81733=[];return _0xc81733[_0x6fb6ac(0x182)](_0x6fb6ac(0xe6)+_0x452031[_0x6fb6ac(0xc1)]),_0xc81733[_0x6fb6ac(0x182)](_0x6fb6ac(0xc9)+_0x452031[_0x6fb6ac(0x18c)]),_0xc81733[_0x6fb6ac(0x182)](_0x6fb6ac(0xc5)+_0x452daa[_0x452031[_0x6fb6ac(0x105)]]),_0x452031[_0x6fb6ac(0x186)]&&_0xc81733[_0x6fb6ac(0x182)](_0x6fb6ac(0x14f)+_0x452031[_0x6fb6ac(0x186)]),_0x452031[_0x6fb6ac(0x11a)]&&_0xc81733[_0x6fb6ac(0x182)]('aliased\x20NodeId:\x20'+_0x452031[_0x6fb6ac(0x11a)]),_0x452031[_0x6fb6ac(0x18c)]&&_0xc81733[_0x6fb6ac(0x182)](_0x6fb6ac(0x196)+_0x452031[_0x6fb6ac(0xa9)]),_0xc81733[_0x6fb6ac(0x102)]('\x0a');}};function _0x389833(_0x33bae9){const _0xf0fcc3=_0x5d2502;if(_0x33bae9['match'](/^nsu=/))return _0xf0fcc3(0xfc);if(_0x33bae9['match'](/^(ns=.*;)?(i|b|s|g)=/))return _0xf0fcc3(0xc1);if(_0x33bae9[_0xf0fcc3(0x11b)](/^nsa=/))return _0xf0fcc3(0xe5);if(_0x33bae9['match'](/^(\/|\.)[0-9]+:/))return _0xf0fcc3(0xd6);if(_0x33bae9['match'](/^(\/|\.).*:/))return'browsePath';}function _0x3a21aa(_0x2f551d){const _0x1a49ac=_0x5d2502,_0x3927ca=_0x389833(_0x2f551d);switch(_0x3927ca){case'nodeId':return'n';case _0x1a49ac(0xe5):return'na';case _0x1a49ac(0xfc):return _0x1a49ac(0x16e);case'browsePath':return'b';case _0x1a49ac(0xbb):return'ab';default:return't';}}function _0x2e602e(_0x13df0e){const _0x218d53=_0x5d2502;let _0x50d212;switch(_0x13df0e){case'n':_0x50d212=_0x218d53(0xc1);break;case'na':_0x50d212=_0x218d53(0xe5);break;case _0x218d53(0x16e):_0x50d212=_0x218d53(0xfc);break;case'b':_0x50d212=_0x218d53(0xd6);break;case'ab':_0x50d212=_0x218d53(0xbb);break;}return _0x50d212;}const _0x3956a8=(_0x2dce56,_0x1a2205)=>_0x5b394f(void 0x0,[_0x2dce56,_0x1a2205],void 0x0,function*({endpointNode:_0x48d0f2,endpoint:_0x5b5bf9,baseUrl:_0x85a3a9},_0x1ef62b){const _0x1c6df9=_0x5d2502,_0x195dee=_0x85a3a9+_0x1c6df9(0x136),_0x575129=_0x195dee+_0x1c6df9(0x16f),_0x5cb429=_0x48d0f2['id'],_0x4cce7e=RED['nodes']['node'](_0x5cb429);console['log'](_0x4cce7e[_0x1c6df9(0xd1)]),_0x4cce7e['namespaceAliases'];const _0x202228=_0x48d0f2[_0x1c6df9(0xd1)],_0x343733=yield fetch(_0x575129,{'method':_0x1c6df9(0xd5),'body':JSON[_0x1c6df9(0x138)]({'endpointNode':_0x48d0f2,'endpoint':_0x5b5bf9,'nodeId':_0x1ef62b,'namespaceAliases':_0x202228}),'headers':{'Content-Type':_0x1c6df9(0x1a5)}}),_0x44513f=yield _0x343733['json']();return{'json':_0x44513f,'data':_0x343733};}),_0x5345ab=(_0x39416e,_0x3e88d6,_0xd97b72,_0x53acc5)=>_0x5b394f(void 0x0,[_0x39416e,_0x3e88d6,_0xd97b72,_0x53acc5],void 0x0,function*({endpointNode:_0x53bcad,endpoint:_0xee0c8d,baseUrl:_0x14a099},_0x822701,_0x311169,_0x3038cd){const _0x2985f9=_0x5d2502,_0x1af35c=_0x311169[_0x2985f9(0x116)](),{json:_0x20ef08,data:_0xac2314}=yield _0x3956a8({'endpointNode':_0x53bcad,'endpoint':_0xee0c8d,'baseUrl':_0x14a099},_0x1af35c),_0x2158cc=(_0x210ca0,_0x1ab7de)=>{const _0x231b8c=_0x2985f9;_0x3038cd[_0x231b8c(0xe7)](_0x210ca0)[_0x231b8c(0xfd)]('sterfive-info')[_0x231b8c(0xfd)](_0x1ab7de),_0x3038cd[_0x231b8c(0xa6)](),setTimeout(()=>{_0x3038cd['removeClass'](_0x1ab7de),_0x3038cd['hide']();},0xbb8);};if(_0xac2314['status']!==0xc8)return _0x2158cc(_0x2985f9(0x13f)+_0x1af35c,_0x2985f9(0x18b)),![];else{if(_0x20ef08['statusCode'][_0x2985f9(0x11b)](/Good/)){const _0x3623e0=_0x46787a(_0x20ef08);_0x311169[_0x2985f9(0x13d)]('title',_0x3623e0);const _0x4ffcb9=_0xea72c5(_0x20ef08,_0x822701);return _0x311169[_0x2985f9(0x116)](_0x4ffcb9),_0x311169[_0x2985f9(0x180)](_0x2985f9(0x1b3)),_0x2158cc(_0x2985f9(0x148),'ok'),!![];}else return _0x311169[_0x2985f9(0x116)](''+_0x1af35c),_0x2158cc(_0x20ef08['statusCode']+'\x20'+_0xac2314[_0x2985f9(0xf0)],'failure'),![];}});function _0x236294(_0x1f4699,_0x415219){return _0x5b394f(this,void 0x0,void 0x0,function*(){const _0x4fe729=_0x56de,_0x163b2b=_0x1f4699[_0x4fe729(0x17f)]('value'),_0x3b45cd=yield _0x3ee77f(_0x415219,_0x163b2b,_0x5ea6f1),_0x364aee=yield _0x3ee77f(_0x415219,_0x163b2b,_0x649583);return{'references':[..._0x3b45cd[_0x4fe729(0x197)],..._0x364aee[_0x4fe729(0x197)]]};});}const _0x3d4f96={'referenceTypeId':_0x1b58fe(_0x5d2502(0xed)),'includeSubtypes':!![],'browseDirection':_0x50db5d[_0x5d2502(0x161)],'nodeClassMask':_0x452daa[_0x5d2502(0x19b)]|_0x452daa[_0x5d2502(0x1a2)]|_0x452daa[_0x5d2502(0x168)]|_0x452daa[_0x5d2502(0x103)],'resultMask':0x3f};function _0xf03216(_0x16a36d,_0xd9935e){return _0x5b394f(this,void 0x0,void 0x0,function*(){const _0x2e604b=_0x56de,_0x1db643=_0x16a36d['data'](_0x2e604b(0xfb)),_0x118882=yield _0x3ee77f(_0xd9935e,_0x1db643,_0x3d4f96);return _0x118882;});}const _0x40bb86=_0x6e1011=>{const _0x4b9bf7=_0x5d2502;var _0x3d8315,_0x358575,_0x528c30,_0x2da928;if(!_0x6e1011||!_0x6e1011[_0x4b9bf7(0xc1)]){const _0x280a8d=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x280a8d;}const _0x2e65a5=_0x6e1011[_0x4b9bf7(0xc1)][_0x4b9bf7(0xca)](),_0x45e4da=((_0x3d8315=_0x6e1011[_0x4b9bf7(0xb0)])===null||_0x3d8315===void 0x0?void 0x0:_0x3d8315[_0x4b9bf7(0xe7)])||((_0x358575=_0x6e1011[_0x4b9bf7(0x100)])===null||_0x358575===void 0x0?void 0x0:_0x358575[_0x4b9bf7(0x101)])||_0x6e1011[_0x4b9bf7(0xc1)][_0x4b9bf7(0xca)](),{icon:_0x44de51,color:_0x399669}=_0x5b41d7(_0x6e1011),_0x566bf2='('+_0x6e1011['nodeId'][_0x4b9bf7(0xca)]()+')\x20'+(((_0x528c30=_0x6e1011[_0x4b9bf7(0x100)])===null||_0x528c30===void 0x0?void 0x0:_0x528c30[_0x4b9bf7(0x101)])||((_0x2da928=_0x6e1011[_0x4b9bf7(0xb0)])===null||_0x2da928===void 0x0?void 0x0:_0x2da928[_0x4b9bf7(0xe7)])||''),_0x18b3e4=$(_0x4b9bf7(0x1b2)+_0x6e1011[_0x4b9bf7(0xc1)]['toString']()+_0x4b9bf7(0x126)+_0x566bf2+_0x4b9bf7(0x18d)+_0x44de51+_0x4b9bf7(0x16b)+_0x399669+_0x4b9bf7(0x123)+_0x45e4da+_0x4b9bf7(0x15a));return _0x18b3e4[_0x4b9bf7(0xfd)](_0x4b9bf7(0x114)),_0x18b3e4['data'](_0x4b9bf7(0xfb),_0x2e65a5),_0x18b3e4[_0x4b9bf7(0x17f)](_0x4b9bf7(0x15f),_0x6e1011),_0x18b3e4;},_0x4241bf=(_0x485cf3,_0x382614)=>{return _0x382614['find']('li[key=\x22'+_0x485cf3+'\x22]');},_0x513d76=(_0x203c01,_0x55ad44)=>{const _0x115b01=_0x5d2502;_0x203c01[_0x115b01(0x151)][_0x115b01(0x167)]('li\x20>\x20.tree-text')[_0x115b01(0x133)](_0x115b01(0x172)),_0x55ad44['find']('.tree-text:first')[_0x115b01(0xfd)]('selected');},_0x332131=(_0x2d4a76,_0xf0d8a4,_0xb158d8)=>_0x5b394f(void 0x0,void 0x0,void 0x0,function*(){const _0x24973f=_0x5d2502;let _0x58d52d=_0xb158d8[_0x24973f(0x1b1)](_0x24973f(0xae));_0xf0d8a4[_0x24973f(0x174)]['elements']||[];const _0x5a4faa=_0xf0d8a4[_0x24973f(0xe0)]||[];if(_0x5a4faa[_0x24973f(0x120)]===0x0)return;for(const _0x389289 of _0x5a4faa){_0x58d52d[_0x24973f(0xe4)]('expandable')&&(yield _0x5a7d05(_0x2d4a76,_0x58d52d));const _0x3245b8=_0x4241bf(_0x389289,_0x58d52d);if(_0x3245b8[_0x24973f(0x120)]===0x0)return;_0x58d52d=_0x3245b8;}_0x513d76(_0x2d4a76,_0x58d52d),_0x562d8e(_0x2d4a76[_0x24973f(0x130)],_0x58d52d);});function _0x562d8e(_0x21fa9a,_0x58c9eb){const _0x59fca1=_0x5d2502,_0x596927=_0x58c9eb[_0x59fca1(0x1a6)]()[_0x59fca1(0x12e)],_0x4f9346=_0x21fa9a[_0x59fca1(0x19d)]();if(_0x4f9346==undefined)return;const _0x57221e=_0x4f9346+_0x596927-_0x21fa9a[_0x59fca1(0x13c)]()/0x2+_0x58c9eb['height']()/0x2;_0x21fa9a[_0x59fca1(0xf6)]({'scrollTop':_0x57221e},0x1f4);}const _0x2d4757=(_0x2a7620,_0x213346)=>_0x5b394f(void 0x0,void 0x0,void 0x0,function*(){const _0x4db4c0=_0x5d2502,_0x416de2=_0x2a7620[_0x4db4c0(0x11c)][_0x4db4c0(0x116)](),_0x569801={'nodeId':_0x416de2,'rootNodeId':_0x213346['nodeId'],'isType':_0x2a7620[_0x4db4c0(0x1b4)][_0x4db4c0(0xdb)]||![]},_0x37feb3=_0x3edddc(_0x2a7620),_0xeb5606=yield _0x34b6b3(_0x37feb3,_0x569801);if(!_0xeb5606)return;yield _0x332131(_0x2a7620,_0xeb5606,_0x2a7620[_0x4db4c0(0x151)]);});function _0xcb80f6(_0x44b125,_0xa4f83b,_0x304515,_0x2d9f3b){return _0x5b394f(this,void 0x0,void 0x0,function*(){const _0xacb2b6=_0x56de;if(_0xa4f83b[_0xacb2b6(0xe4)](_0xacb2b6(0x159))){console[_0xacb2b6(0x139)](_0xacb2b6(0x179));return;}if(_0xa4f83b[_0xacb2b6(0xe4)](_0xacb2b6(0x12a))){console[_0xacb2b6(0x139)](_0xacb2b6(0x125));return;}_0xa4f83b['addClass']('loading'),_0xa4f83b[_0xacb2b6(0x163)](_0xacb2b6(0xe1));try{_0xa4f83b[_0xacb2b6(0x1b1)]('ul')[_0xacb2b6(0x155)]();const {references:_0x5b3baa}=yield _0x304515(_0xa4f83b,_0x2d9f3b);_0x5b3baa[_0xacb2b6(0x15b)]((_0x166b02,_0x29f35b)=>{const _0x43e0c1=_0xacb2b6;var _0x5dfb58,_0x25454a;return(((_0x5dfb58=_0x166b02[_0x43e0c1(0x100)])===null||_0x5dfb58===void 0x0?void 0x0:_0x5dfb58[_0x43e0c1(0x101)])||'')['localeCompare'](((_0x25454a=_0x29f35b['browseName'])===null||_0x25454a===void 0x0?void 0x0:_0x25454a[_0x43e0c1(0x101)])||'');});for(const _0xfc68e9 of _0x5b3baa){if(_0x44b125[_0xacb2b6(0x1b4)]['filter']&&!_0x44b125[_0xacb2b6(0x1b4)][_0xacb2b6(0x1a7)](_0xfc68e9))continue;const _0x133d3e=_0x40bb86(_0xfc68e9);_0xa4f83b[_0xacb2b6(0x1b1)]('ul')[_0xacb2b6(0x163)](_0x133d3e);}_0xa4f83b['addClass'](_0xacb2b6(0x159));}catch(_0x27196a){_0xa4f83b[_0xacb2b6(0x1b1)]('ul')[_0xacb2b6(0x163)](_0xacb2b6(0x183)+_0x27196a[_0xacb2b6(0xab)]+'</li>'),console[_0xacb2b6(0x139)](_0xacb2b6(0x177),_0x27196a);}_0xa4f83b[_0xacb2b6(0x167)]('.spinner')[_0xacb2b6(0x193)](),_0xa4f83b[_0xacb2b6(0x133)]('loading');});}function _0x3edddc(_0x219006){const _0x3e3514=_0x5d2502,_0x6b7c1e={'baseUrl':_0x219006[_0x3e3514(0x1b4)][_0x3e3514(0x14d)],'endpointNode':typeof _0x219006[_0x3e3514(0x1b4)][_0x3e3514(0xbe)]===_0x3e3514(0xaf)?_0x219006[_0x3e3514(0x1b4)]['endpointNode']():_0x219006[_0x3e3514(0x1b4)][_0x3e3514(0xbe)],'endpoint':typeof _0x219006['options'][_0x3e3514(0x178)]===_0x3e3514(0xaf)?_0x219006[_0x3e3514(0x1b4)][_0x3e3514(0x178)]():_0x219006[_0x3e3514(0x1b4)][_0x3e3514(0x178)]};return _0x6b7c1e;}function _0x5a7d05(_0x320e16,_0x54fb8e){return _0x5b394f(this,void 0x0,void 0x0,function*(){const _0x7ad937=_0x56de;if(_0x54fb8e[_0x7ad937(0xe4)](_0x7ad937(0x159))){_0x54fb8e[_0x7ad937(0x133)](_0x7ad937(0x114))[_0x7ad937(0xfd)]('expanded'),_0x54fb8e['children']('ul')['toggle']();return;}const _0x40abe0=_0x3edddc(_0x320e16),_0x57aa37=!_0x320e16[_0x7ad937(0x1b4)]['isTypeRef']?_0x236294:_0xf03216;try{yield _0xcb80f6(_0x320e16,_0x54fb8e,_0x57aa37,_0x40abe0),_0x54fb8e[_0x7ad937(0x133)](_0x7ad937(0x114))[_0x7ad937(0xfd)](_0x7ad937(0x1b7));}catch(_0x4feee1){_0x54fb8e[_0x7ad937(0x133)](_0x7ad937(0x114))[_0x7ad937(0xfd)](_0x7ad937(0x1b7)),console[_0x7ad937(0x139)](_0x7ad937(0xde),_0x4feee1);}});}const _0x22e723={'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':'Object','nodeId':'ns=0;i=85','displayName':{'text':'Objects'},'typeDefinition':_0xb42160},_0x568456=()=>{const _0x5090eb=_0x5d2502;$[_0x5090eb(0xcc)](_0x5090eb(0xc3),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>_0x22e723,'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x5b394f(this,void 0x0,void 0x0,function*(){const _0x25c7f9=_0x56de,_0x532522=this;if(_0x532522[_0x25c7f9(0xad)]==undefined){const _0x4c1df1=typeof _0x532522['options']['parentNode']===_0x25c7f9(0xaf)?_0x532522[_0x25c7f9(0x1b4)][_0x25c7f9(0xe8)]['call'](_0x532522):_0x532522[_0x25c7f9(0x1b4)]['parentNode'];if(_0x4c1df1 instanceof Promise){const _0x3c4bf1=yield _0x4c1df1;_0x532522[_0x25c7f9(0xad)]=_0x3c4bf1;}else _0x532522[_0x25c7f9(0xad)]=_0x4c1df1;}return _0x532522[_0x25c7f9(0xad)]||_0x22e723;});},'reset'(){return _0x5b394f(this,void 0x0,void 0x0,function*(){const _0x19b3b8=_0x56de,_0x25a4bb=this,_0x13a405=_0x25a4bb;_0x13a405[_0x19b3b8(0xad)]=undefined,_0x25a4bb[_0x19b3b8(0x151)][_0x19b3b8(0x155)]();const _0x11357e=yield this[_0x19b3b8(0x170)](),_0x5d97db=_0x40bb86(_0x11357e);_0x25a4bb[_0x19b3b8(0x151)]['append'](_0x5d97db),_0x25a4bb[_0x19b3b8(0xef)]=_0x11357e;});},'verify'(_0x461458){const _0x27e576=_0x5090eb,_0x3c5cdb=this,_0xd8e6b8=_0x3edddc(_0x3c5cdb);_0x5345ab(_0xd8e6b8,_0x461458,_0x3c5cdb[_0x27e576(0x11c)],_0x3c5cdb[_0x27e576(0xeb)])[_0x27e576(0x12b)](_0x4589b2=>{const _0x5a4fd4=_0x27e576;!_0x4589b2?_0x3c5cdb[_0x5a4fd4(0x1a8)][_0x5a4fd4(0xfd)](_0x5a4fd4(0x1ad)):_0x3c5cdb[_0x5a4fd4(0x1a8)]['removeClass'](_0x5a4fd4(0x1ad));});},'_hideMenu'(_0x1c7223){const _0x2f9fe1=_0x5090eb,_0x438079=this;$(document)[_0x2f9fe1(0x150)](_0x2f9fe1(0xb3)),_0x1c7223['hide'](),_0x1c7223['css']({'height':'auto'});if(_0x1c7223['opts'][_0x2f9fe1(0x162)]){var _0x57b945=[];_0x1c7223['find']('input[type=\x22checkbox\x22]')[_0x2f9fe1(0x157)](function(){const _0x5cbadb=_0x2f9fe1;$(this)[_0x5cbadb(0xf5)](_0x5cbadb(0xc6))&&_0x57b945[_0x5cbadb(0x182)]($(this)[_0x5cbadb(0x17f)](_0x5cbadb(0xfb)));}),_0x1c7223[_0x2f9fe1(0x18e)](_0x57b945);}_0x438079[_0x2f9fe1(0x17d)]['is'](':visible')?_0x438079[_0x2f9fe1(0x11c)][_0x2f9fe1(0x180)]('focus'):_0x438079['$selectTrigger'][_0x2f9fe1(0x180)](_0x2f9fe1(0x190));},'_createMenu'(_0x230c49,_0x77eb7d,_0x1be0ea){const _0x943f17=_0x5090eb;var _0x1a101e=this;const _0x569f05=$(_0x943f17(0xb9))[_0x943f17(0xfd)]('sterfive-typedInput-options\x20sterfive-online-menu');return _0x569f05[_0x943f17(0xd3)]=_0x77eb7d,_0x569f05[_0x943f17(0x18e)]=_0x1be0ea,_0x230c49[_0x943f17(0x160)](_0x29a09f=>{const _0x3fc977=_0x943f17;typeof _0x29a09f===_0x3fc977(0x10d)&&(_0x29a09f={'value':_0x29a09f,'label':_0x29a09f});var _0x5d9da5=$('<a\x20href=\x22#\x22></a>')[_0x3fc977(0x13d)](_0x3fc977(0xfb),_0x29a09f[_0x3fc977(0xfb)])[_0x3fc977(0x1b0)](_0x569f05);_0x29a09f['label']&&_0x5d9da5[_0x3fc977(0xe7)](_0x29a09f['label']);_0x29a09f[_0x3fc977(0xc0)]&&_0x5d9da5[_0x3fc977(0xf5)](_0x3fc977(0xc0),_0x29a09f[_0x3fc977(0xc0)]);if(_0x29a09f[_0x3fc977(0x1a9)]){if(_0x29a09f[_0x3fc977(0x1a9)][_0x3fc977(0x19a)]('<')===0x0)$(_0x29a09f[_0x3fc977(0x1a9)])[_0x3fc977(0x107)](_0x5d9da5);else _0x29a09f[_0x3fc977(0x1a9)]['indexOf']('/')!==-0x1?$(_0x3fc977(0x16c),{'class':_0x3fc977(0x143),'style':_0x3fc977(0xd8)+_0x29a09f[_0x3fc977(0x1a9)]+');\x20-webkit-mask-image:\x20url('+_0x29a09f['icon']+');'})[_0x3fc977(0x107)](_0x5d9da5):$(_0x3fc977(0x16c),{'class':_0x3fc977(0x16a)+_0x29a09f[_0x3fc977(0x1a9)]})[_0x3fc977(0x107)](_0x5d9da5);}else _0x5d9da5[_0x3fc977(0xbd)]({'paddingLeft':_0x3fc977(0xb4)});!_0x29a09f['icon']&&!_0x29a09f[_0x3fc977(0xdf)]&&_0x5d9da5['text'](_0x29a09f[_0x3fc977(0xfb)]);var _0x28c493;_0x77eb7d['multiple']&&(_0x28c493=$(_0x3fc977(0x14e))[_0x3fc977(0xbd)]('pointer-events','none')[_0x3fc977(0x17f)](_0x3fc977(0xfb),_0x29a09f[_0x3fc977(0xfb)])[_0x3fc977(0x107)](_0x5d9da5)['on']('mousedown',function(_0x322500){const _0x5dbd97=_0x3fc977;_0x322500[_0x5dbd97(0x189)]();})),_0x5d9da5['on']('click',function(_0xbec6fc){const _0x47b053=_0x3fc977;_0xbec6fc[_0x47b053(0x189)](),_0xbec6fc[_0x47b053(0x194)](),!_0x77eb7d[_0x47b053(0x162)]?(_0x1be0ea(_0x29a09f[_0x47b053(0xfb)]),_0x1a101e[_0x47b053(0x1a1)](_0x569f05)):_0x28c493[_0x47b053(0xf5)](_0x47b053(0xc6),!_0x28c493[_0x47b053(0xf5)]('checked'));});}),_0x569f05[_0x943f17(0xbd)]({'display':_0x943f17(0x129)}),_0x569f05['on'](_0x943f17(0x127),function(_0x17d768){const _0x55ecd2=_0x943f17;if(_0x17d768[_0x55ecd2(0x118)]===0x28)_0x17d768[_0x55ecd2(0x189)](),$(this)[_0x55ecd2(0x1b1)](_0x55ecd2(0xdc))[_0x55ecd2(0xff)]()['trigger'](_0x55ecd2(0x190));else{if(_0x17d768['keyCode']===0x26)_0x17d768[_0x55ecd2(0x189)](),$(this)['children'](':focus')[_0x55ecd2(0x12c)]()[_0x55ecd2(0x180)](_0x55ecd2(0x190));else _0x17d768[_0x55ecd2(0x118)]===0x1b&&(_0x17d768[_0x55ecd2(0x189)](),_0x1a101e[_0x55ecd2(0x1a1)](_0x569f05));}_0x17d768[_0x55ecd2(0x194)]();}),_0x569f05;},'disarmClick':![],'_showMenu'(_0x55cc57,_0x546f12){const _0x5403d8=_0x5090eb;if(this[_0x5403d8(0x1b5)]){this[_0x5403d8(0x1b5)]=![];return;}var _0x11338f=this,_0xd83238=_0x546f12[_0x5403d8(0x110)](),_0xe7227c=_0x546f12[_0x5403d8(0x13c)](),_0xe2e687=_0x55cc57[_0x5403d8(0x13c)](),_0x4966f1=_0xe7227c+_0xd83238['top'];_0x4966f1+_0xe2e687-$(document)[_0x5403d8(0x19d)]()>$(window)['height']()&&(_0x4966f1-=_0x4966f1+_0xe2e687-$(window)[_0x5403d8(0x13c)]()+0x5),_0x4966f1<0x0&&(_0x55cc57[_0x5403d8(0x13c)](_0xe2e687+_0x4966f1),_0x4966f1=0x0),_0x55cc57[_0x5403d8(0xbd)]({'top':_0x4966f1+'px','left':_0xd83238[_0x5403d8(0x14a)]+'px'}),_0x55cc57['slideDown'](0x64),this[_0x5403d8(0x128)](function(){const _0x12f228=_0x5403d8;_0x11338f[_0x12f228(0x1a4)][_0x12f228(0xfd)]('red-ui-typedInput-focus'),$(document)['on']('mousedown.red-ui-typedInput-close-property-select',function(_0x2707ff){const _0x525812=_0x12f228;!$(_0x2707ff['target'])[_0x525812(0x1a0)](_0x55cc57)['length']&&_0x11338f[_0x525812(0x1a1)](_0x55cc57),$(_0x2707ff['target'])[_0x525812(0x1a0)](_0x546f12)['length']&&(_0x11338f['disarmClick']=!![],_0x2707ff['preventDefault']());});});},'_showTypeMenu'(){const _0x156179=_0x5090eb,_0x49cfa7=this;this['_showMenu'](_0x49cfa7[_0x156179(0xea)],_0x49cfa7[_0x156179(0x1a8)]),_0x49cfa7[_0x156179(0x130)]['hide']();const _0x198b65=_0x49cfa7[_0x156179(0xf4)];var _0xf9c2b9=_0x49cfa7[_0x156179(0xea)][_0x156179(0x167)](_0x156179(0x1ab)+_0x198b65+'\x27');setTimeout(function(){const _0xb7d4c3=_0x156179;_0xf9c2b9[_0xb7d4c3(0x180)](_0xb7d4c3(0x190));},0x78);},'_initMenu'(){const _0x44fd43=_0x5090eb,_0x176af6=this;_0x176af6[_0x44fd43(0x13b)]['attr'](_0x44fd43(0x18a),-0x1),_0x176af6[_0x44fd43(0x13b)]['on'](_0x44fd43(0x191),function(_0x1c6055){const _0x54f4b3=_0x44fd43;_0x1c6055[_0x54f4b3(0x189)]();});_0x176af6[_0x44fd43(0xea)]&&_0x176af6[_0x44fd43(0xea)][_0x44fd43(0x193)]();const _0x5d980c=[{'label':_0x44fd43(0xe7),'value':'t','title':_0x44fd43(0x134),'icon':'<i\x20class=\x22fa\x20fa-font\x22/i>\x20'},{'label':_0x44fd43(0x192),'value':'msg','title':_0x44fd43(0x146),'icon':_0x44fd43(0xb5)},{'label':_0x44fd43(0x198),'value':'n','icon':_0x44fd43(0x149)},{'label':_0x44fd43(0x176),'value':'na','icon':_0x44fd43(0x10e)},{'label':'NodeId\x20with\x20namespace\x20Urn','value':_0x44fd43(0x16e),'icon':_0x44fd43(0x171)},{'label':_0x44fd43(0x117),'value':'b','icon':'<i\x20class=\x22fa\x20fa-tag\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/> '},{'label':'Aliased\x20Browse\x20Path','value':'ab','icon':_0x44fd43(0xd0)}],_0x59fd29=_0x3a21aa(_0x176af6[_0x44fd43(0x11c)]['val']()),_0x17fc6c=_0x5d980c[_0x44fd43(0x167)](_0x113be1=>_0x113be1[_0x44fd43(0xfb)]===_0x59fd29);_0x176af6['$selectLabel'][_0x44fd43(0x155)]()[_0x44fd43(0x163)](_0x44fd43(0xda)+((_0x17fc6c===null||_0x17fc6c===void 0x0?void 0x0:_0x17fc6c[_0x44fd43(0xc0)])||'')+_0x44fd43(0xce)+((_0x17fc6c===null||_0x17fc6c===void 0x0?void 0x0:_0x17fc6c[_0x44fd43(0x1a9)])||'')+_0x44fd43(0x195)),_0x176af6[_0x44fd43(0xf4)]=_0x59fd29;const _0x19baa8=this;_0x176af6[_0x44fd43(0xea)]=this[_0x44fd43(0xf3)](_0x5d980c,{},_0x269d9a=>{const _0xb707f2=_0x44fd43,_0x274d0b=_0x2e602e(_0x269d9a);_0x274d0b&&_0x19baa8[_0xb707f2(0x17c)](_0x274d0b);const _0x2d229c=_0x5d980c[_0xb707f2(0x167)](_0x34322b=>_0x34322b[_0xb707f2(0xfb)]===_0x269d9a);_0x176af6['selectedMenuItem']=_0x269d9a,_0x176af6[_0xb707f2(0x131)][_0xb707f2(0x155)]()[_0xb707f2(0x163)](_0xb707f2(0xda)+((_0x2d229c===null||_0x2d229c===void 0x0?void 0x0:_0x2d229c[_0xb707f2(0xc0)])||'')+_0xb707f2(0xce)+((_0x2d229c===null||_0x2d229c===void 0x0?void 0x0:_0x2d229c['icon'])||'')+_0xb707f2(0x195));}),_0x176af6[_0x44fd43(0xea)]['appendTo'](document[_0x44fd43(0x137)]),_0x176af6[_0x44fd43(0xea)][_0x44fd43(0x15d)](),_0x176af6[_0x44fd43(0x13b)][_0x44fd43(0xa6)]();},'mode'(){const _0x305ba1=this;return _0x2e602e(_0x305ba1['selectedMenuItem']);},'_create'(){const _0x1fac51=_0x5090eb,_0x235500=this;_0x235500[_0x1fac51(0x11c)]=this[_0x1fac51(0xac)],_0x235500['$input']['css']('border',_0x1fac51(0x129)),_0x235500['$elementDiv']=_0x235500[_0x1fac51(0x11c)][_0x1fac51(0x1af)](_0x1fac51(0xb9))[_0x1fac51(0x181)]()[_0x1fac51(0xfd)](_0x1fac51(0xd9)),_0x235500['$combo']=$(_0x1fac51(0x175)),_0x235500['$combo'][_0x1fac51(0xfd)](_0x1fac51(0x15e)),_0x235500[_0x1fac51(0x11c)]['replaceWith'](_0x235500['$combo']),_0x235500[_0x1fac51(0x11f)]=$('<div/>')[_0x1fac51(0xfd)](_0x1fac51(0x140)),_0x235500[_0x1fac51(0x1a8)][_0x1fac51(0x163)](_0x235500[_0x1fac51(0x11f)]),_0x235500[_0x1fac51(0x11f)][_0x1fac51(0x163)](_0x235500[_0x1fac51(0x11c)]),_0x235500[_0x1fac51(0x106)]=$('<button\x20title=\x22open\x20OPCUA\x20AddressSpace\x20Browser\x22><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x235500['$input']['after'](_0x235500[_0x1fac51(0x106)]),_0x235500['$toggleTreeBtn']['on'](_0x1fac51(0x119),function(){return _0x5b394f(this,void 0x0,void 0x0,function*(){const _0x59aba2=_0x56de;var _0x885148;let _0x3bb076=![],_0x2c0974;!_0x235500[_0x59aba2(0x130)]['is'](':visible')&&(_0x235500[_0x59aba2(0xeb)]['hide'](),_0x2c0974=yield _0x235500['resolveParentNode'](),(_0x2c0974!==_0x235500[_0x59aba2(0xef)]||((_0x885148=_0x235500[_0x59aba2(0xef)])===null||_0x885148===void 0x0?void 0x0:_0x885148[_0x59aba2(0xc1)])!==_0x2c0974[_0x59aba2(0xc1)])&&(yield _0x235500[_0x59aba2(0xc2)]()),_0x3bb076=!![]),_0x235500['$dropdown']['toggle'](),_0x3bb076&&(yield _0x2d4757(_0x235500,_0x2c0974));});}),_0x235500[_0x1fac51(0xc7)]=$(_0x1fac51(0xf7)),_0x235500[_0x1fac51(0x11c)][_0x1fac51(0xaa)](_0x235500['$verifyBtn']),_0x235500['$verifyBtn']['on']('click',()=>{const _0x37836e=_0x1fac51,_0x3c4074=_0x235500[_0x37836e(0x10f)]();if(!_0x3c4074)return;this[_0x37836e(0x17c)](_0x3c4074);});const _0x3b34ea=_0x9e056a=>_0x5b394f(this,void 0x0,void 0x0,function*(){const _0x4db848=_0x1fac51,_0x56a508=this,_0x1c6a7f=_0x56a508[_0x4db848(0x10f)]();if(!_0x1c6a7f)return;const _0xf76de3=_0x3edddc(_0x56a508),{data:_0x5dd09a,json:_0x5dd486}=yield _0x3956a8(_0xf76de3,_0x9e056a);if(_0x5dd09a[_0x4db848(0xf8)]!==0xc8)return;if(_0x5dd486[_0x4db848(0xfa)][_0x4db848(0x11b)](/Good/)){const _0x393347=_0xea72c5(_0x5dd486,_0x1c6a7f);_0x56a508[_0x4db848(0x11c)][_0x4db848(0x116)](_0x393347),_0x56a508[_0x4db848(0x11c)]['trigger'](_0x4db848(0x1b3));}});{_0x235500[_0x1fac51(0x1a4)]=$(_0x1fac51(0xb9)),_0x235500[_0x1fac51(0x11c)]['before'](_0x235500[_0x1fac51(0x1a4)]),_0x235500['$selectTrigger']=$(_0x1fac51(0xf2))[_0x1fac51(0x107)](_0x235500['$uiSelect']),$('<i\x20class=\x22red-ui-typedInput-icon\x20fa\x20fa-caret-down\x22></i>')[_0x1fac51(0x164)](!![])[_0x1fac51(0x1b0)](_0x235500[_0x1fac51(0x13b)]),_0x235500[_0x1fac51(0x13b)]['on'](_0x1fac51(0x119),function(_0x4dac30){const _0x56ac3a=_0x1fac51;_0x4dac30[_0x56ac3a(0x189)](),_0x4dac30[_0x56ac3a(0x194)](),_0x235500[_0x56ac3a(0x135)]();}),_0x235500['$selectTrigger']['on'](_0x1fac51(0x127),function(_0x41217a){const _0x170e4d=_0x1fac51;_0x41217a[_0x170e4d(0x118)]===0x28&&_0x235500[_0x170e4d(0x135)](),_0x41217a[_0x170e4d(0x194)]();})['on'](_0x1fac51(0x190),function(){const _0x29f4eb=_0x1fac51;_0x235500[_0x29f4eb(0x1a4)][_0x29f4eb(0xfd)](_0x29f4eb(0x12d));})['on'](_0x1fac51(0x124),function(){const _0x5c1b54=_0x1fac51;_0x235500[_0x5c1b54(0x1a4)][_0x5c1b54(0x133)](_0x5c1b54(0x12d));}),_0x235500[_0x1fac51(0x131)]=$(_0x1fac51(0x18f))[_0x1fac51(0x1b0)](_0x235500[_0x1fac51(0x13b)]);}this[_0x1fac51(0x147)]();!_0x235500[_0x1fac51(0x11c)][_0x1fac51(0x13d)](_0x1fac51(0x113))&&_0x235500[_0x1fac51(0x11c)][_0x1fac51(0x13d)](_0x1fac51(0x113),'enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20');_0x235500[_0x1fac51(0xeb)]=$(_0x1fac51(0x1aa)),_0x235500[_0x1fac51(0xeb)]['hide'](),_0x235500['$combo'][_0x1fac51(0x163)](_0x235500[_0x1fac51(0xeb)]),_0x235500[_0x1fac51(0x130)]=$(_0x1fac51(0x175))['addClass']('sterfive-dropdown')[_0x1fac51(0x15d)]()[_0x1fac51(0x1b0)](_0x235500[_0x1fac51(0x1a8)]),_0x235500[_0x1fac51(0x151)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')['appendTo'](_0x235500[_0x1fac51(0x130)]),this['reset']();const _0x389938=(_0x3a5b6e,_0x162ef3)=>{const _0x1f3d65=_0x1fac51,_0x954daa=0x14,_0x2cba89=0x14,_0x4d4db0=_0x3a5b6e[_0x1f3d65(0x110)](),_0x5d51bc=_0x162ef3;if(_0x5d51bc[_0x1f3d65(0x11d)]>=_0x4d4db0['left']&&_0x5d51bc[_0x1f3d65(0x11d)]<=_0x4d4db0[_0x1f3d65(0x14a)]+_0x954daa&&_0x5d51bc[_0x1f3d65(0x158)]>=_0x4d4db0['top']&&_0x5d51bc['pageY']<=_0x4d4db0['top']+_0x2cba89)return!![];return![];},_0x4cc941=_0x539555=>_0x5b394f(this,void 0x0,void 0x0,function*(){const _0x17603a=_0x1fac51;if(_0x539555[_0x17603a(0xe4)](_0x17603a(0x114)))_0x5a7d05(_0x235500,_0x539555);else{if(_0x539555[_0x17603a(0xe4)](_0x17603a(0x1b7)))_0x539555[_0x17603a(0x1b1)]('ul')[_0x17603a(0x164)](),_0x539555[_0x17603a(0x152)]('expandable\x20expanded');else{if(_0x539555[_0x17603a(0x1b1)]('ul')[_0x17603a(0x1b1)]()[_0x17603a(0x120)]>0x0)_0x539555['children']('ul')['toggle'](),_0x539555['toggleClass'](_0x17603a(0xba));else;}}});_0x235500[_0x1fac51(0x151)]['on']('dblclick','li',function(_0x27d2b2){const _0x4d21d4=_0x1fac51;var _0x57803f,_0x48a1dc;_0x27d2b2[_0x4d21d4(0x194)]();let _0x47aeed=$(this);if(_0x389938(_0x47aeed,_0x27d2b2))_0x4cc941(_0x47aeed);else{const _0x188fbc=_0x47aeed['data'](_0x4d21d4(0xfb)),_0xf6fb6f=_0x47aeed['data']('reference');if(_0x235500[_0x4d21d4(0x1b4)][_0x4d21d4(0xcf)]&&!_0x235500['options'][_0x4d21d4(0xcf)](_0xf6fb6f))return;_0x235500[_0x4d21d4(0x11c)][_0x4d21d4(0x17f)]('reference',_0xf6fb6f),((_0x57803f=_0xf6fb6f[_0x4d21d4(0xb0)])===null||_0x57803f===void 0x0?void 0x0:_0x57803f[_0x4d21d4(0xe7)])||((_0x48a1dc=_0xf6fb6f[_0x4d21d4(0x100)])===null||_0x48a1dc===void 0x0?void 0x0:_0x48a1dc[_0x4d21d4(0x101)])||_0xf6fb6f[_0x4d21d4(0xc1)][_0x4d21d4(0xca)](),_0x3b34ea(_0x188fbc),_0x235500[_0x4d21d4(0x130)][_0x4d21d4(0x15d)]();}}),_0x235500['$tree']['on'](_0x1fac51(0x119),'li',function(_0x23a83d){_0x23a83d['stopPropagation']();let _0x2d4fc7=$(this);_0x389938(_0x2d4fc7,_0x23a83d)&&_0x4cc941(_0x2d4fc7),_0x513d76(_0x235500,_0x2d4fc7);}),$(document)['on'](_0x1fac51(0x119),function(_0xb0be6f){const _0x2d468c=_0x1fac51;!$(_0xb0be6f['target'])[_0x2d468c(0x1a0)](_0x235500[_0x2d468c(0x1a8)])[_0x2d468c(0x120)]&&_0x235500['$dropdown'][_0x2d468c(0x15d)]();});}});},_0x296821=()=>{const _0x34072e=_0x5d2502,_0x242045=$(_0x34072e(0xd4)),_0x3bfb1f=_0x242045[_0x34072e(0x116)](),_0xd01d60=RED['nodes'][_0x34072e(0x10c)](_0x3bfb1f);if(!_0xd01d60)return undefined;const {endpoint:_0x58b568,securityMode:_0x2edb4e,securityPolicy:_0x2f3433,userIdentityType:_0x1b473f,credentials:_0x4d52c9,namespaceAliases:_0x1d28d3}=_0xd01d60,_0x2b8f1c={'endpoint':_0x58b568,'securityMode':_0x2edb4e,'securityPolicy':_0x2f3433,'userIdentityType':_0x1b473f,'credentials':_0x4d52c9,'namespaceAliases':_0x1d28d3};return _0x2b8f1c;},_0x4aa90f=()=>{const _0x5b4195=_0x5d2502,_0x376d7b=$(_0x5b4195(0xd4)),_0x7f4b88=_0x376d7b[_0x5b4195(0x116)](),_0x308f8d=_0x296821();if(!_0x308f8d)return undefined;const _0x5f20e2=_0x308f8d[_0x5b4195(0xd1)];return Object[_0x5b4195(0xbf)]({'namespaceAliases':_0x5f20e2,'id':_0x7f4b88},_0x308f8d);},_0x334925=()=>{return{'endpointNode':_0x4aa90f};};RED[_0x5d2502(0x16d)][_0x5d2502(0xcd)](_0x5d2502(0xfe),{'category':_0x5d2502(0x19f),'color':'#C0DEED','align':'right','icon':_0x5d2502(0x173),'paletteLabel':_0x5d2502(0xbc),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x5d2502(0x145)},'attributeId':{'value':'Value','required':!![]},'nodeId':{'value':'','required':![]},'outputType':{'value':'Value','required':!![]}},'outputs':0x2,'label'(){return this['name']||'OPCUA\x20Client\x20Read';},'labelStyle'(){const _0x52c18a=_0x5d2502;return this[_0x52c18a(0x101)]?_0x52c18a(0x112):'';},'oneditprepare'(){const _0x264981=_0x5d2502,_0x97b5c8=this;_0x568456(),_0x97b5c8[_0x264981(0x19e)]=0x1;const _0x1db428=$(_0x264981(0xa7));_0x1db428['nodeBrowser'](Object['assign'](Object['assign']({},_0x334925()),{'isSelectable'(_0x3d04aa){const _0x398da8=_0x264981;return _0x3d04aa[_0x398da8(0x105)]===_0x398da8(0xb2);}}));},'oneditsave'(){}});}()));
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg1YjM5NGYiLCJfMHg0NTU1OTYiLCJfMHg1MmUyNjAiLCJfMHgzMjYwODIiLCJfMHg0ZWVhZmUiLCJfMHgzZDQ1ZGQiLCJfMHhlZTI5Y2QiLCJfMHgzMTcwYjMiLCJQcm9taXNlIiwiXzB4NmEyNGI4IiwiXzB4OWNhNWI1IiwiXzB4M2U2YmM2IiwiXzB4NDY3MDk1IiwiXzB4MWUwMjI2IiwiXzB4MWFiODIzIiwiXzB4MmFhNjczIiwiXzB4M2E2YTA4IiwiXzB4MjUzMTVjIiwiXzB4MTY1Mzg4IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NGQyMWVkIiwiXzB4MjUzNzdkIiwiXzB4MzkyYWZjIiwiXzB4MWI1ODdjIiwiRXJyb3IiLCJfMHg0MjkwNWQiLCJfMHhiNDIxNjAiLCJfMHgxZTA1NzciLCJfMHg4MGUxZGIiLCJfMHg0MjA5ZGUiLCJfMHgzYWMxODEiLCJfMHg1MzlkMDciLCJfMHg1MGRiNWQiLCJfMHhmMWYxNWMiLCJfMHg0NTJkYWEiLCJfMHgyNjc2MDgiLCJfMHg1N2VhZjEiLCJfMHg0MjZjZGMiLCJfMHgzM2ZkYmMiLCJfMHgyZDNkODIiLCJfMHgxYjU4ZmUiLCJfMHgzYzI3YWQiLCJfMHg1YjQxZDciLCJfMHg0ODk1MGEiLCJfMHgzZWU3N2YiLCJfMHgxODA5ZTMiLCJfMHg1NjRlMmYiLCJfMHg1Y2VlMWIiLCJlbmRwb2ludE5vZGUiLCJfMHg0YWZhODYiLCJlbmRwb2ludCIsIl8weDMyZjMwMSIsImJhc2VVcmwiLCJfMHg0MDA2ZGMiLCJfMHgxOGNhZTAiLCJfMHgzMjJlYzYiLCJfMHgxNjgyNmYiLCJfMHgyMzFjMTMiLCJfMHgzMWQ1NDkiLCJPYmplY3QiLCJfMHgzZGFhZDQiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4ZWYyNzVmIiwiXzB4NTAwNDU1IiwiXzB4NWVhNmYxIiwiXzB4NjQ5NTgzIiwiXzB4MzRiNmIzIiwiXzB4MTljZjYzIiwiXzB4YjdmNzk2IiwiXzB4NWYyOGNhIiwiXzB4NDc5NGMxIiwiXzB4MmMzNjkwIiwibm9kZUlkIiwiXzB4MjIzYWM0Iiwicm9vdE5vZGVJZCIsIl8weDRlZDlhYiIsImlzVHlwZSIsIl8weDU2ODQ0OSIsIl8weDU2NmM0YyIsIl8weDIyNThiNCIsIl8weDEwNjQzOSIsIl8weDUzNThkNiIsIl8weGVhNzJjNSIsIl8weDI5M2NmOCIsIl8weDU5ODIzMyIsIl8weDQ2Nzg3YSIsIl8weDQ1MjAzMSIsIl8weGM4MTczMyIsIl8weDM4OTgzMyIsIl8weDMzYmFlOSIsIl8weDNhMjFhYSIsIl8weDJmNTUxZCIsIl8weDM5MjdjYSIsIl8weDJlNjAyZSIsIl8weDEzZGYwZSIsIl8weDUwZDIxMiIsIl8weDM5NTZhOCIsIl8weDJkY2U1NiIsIl8weDFhMjIwNSIsIl8weDQ4ZDBmMiIsIl8weDViNWJmOSIsIl8weDg1YTNhOSIsIl8weDFlZjYyYiIsIl8weDE5NWRlZSIsIl8weDU3NTEyOSIsIl8weDVjYjQyOSIsIl8weDRjY2U3ZSIsIlJFRCIsIl8weDIwMjIyOCIsIl8weDM0MzczMyIsIl8weDQ0NTEzZiIsIl8weDUzNDVhYiIsIl8weDM5NDE2ZSIsIl8weDNlODhkNiIsIl8weGQ5N2I3MiIsIl8weDUzYWNjNSIsIl8weDUzYmNhZCIsIl8weGVlMGM4ZCIsIl8weDE0YTA5OSIsIl8weDgyMjcwMSIsIl8weDMxMTE2OSIsIl8weDMwMzhjZCIsIl8weDFhZjM1YyIsImpzb24iLCJfMHgyMGVmMDgiLCJkYXRhIiwiXzB4YWMyMzE0IiwiXzB4MjE1OGNjIiwiXzB4MjEwY2EwIiwiXzB4MWFiN2RlIiwic2V0VGltZW91dCIsIl8weDM2MjNlMCIsIl8weDRmZmNiOSIsIl8weDIzNjI5NCIsIl8weDFmNDY5OSIsIl8weDQxNTIxOSIsIl8weDE2M2IyYiIsIl8weDNiNDVjZCIsIl8weDM2NGFlZSIsIl8weDNkNGY5NiIsIl8weGYwMzIxNiIsIl8weDE2YTM2ZCIsIl8weGQ5OTM1ZSIsIl8weDFkYjY0MyIsIl8weDExODg4MiIsIl8weDQwYmI4NiIsIl8weDZlMTAxMSIsIl8weDNkODMxNSIsIl8weDM1ODU3NSIsIl8weDUyOGMzMCIsIl8weDJkYTkyOCIsIl8weDI4MGE4ZCIsIiQiLCJfMHgyZTY1YTUiLCJfMHg0NWU0ZGEiLCJpY29uIiwiXzB4NDRkZTUxIiwiY29sb3IiLCJfMHgzOTk2NjkiLCJfMHg1NjZiZjIiLCJfMHgxOGIzZTQiLCJfMHg0MjQxYmYiLCJfMHg0ODVjZjMiLCJfMHgzODI2MTQiLCJfMHg1MTNkNzYiLCJfMHgyMDNjMDEiLCJfMHg1NWFkNDQiLCJfMHgzMzIxMzEiLCJfMHgyZDRhNzYiLCJfMHhmMGQ4YTQiLCJfMHhiMTU4ZDgiLCJfMHg1OGQ1MmQiLCJfMHg1YTRmYWEiLCJfMHgzODkyODkiLCJfMHg1YTdkMDUiLCJfMHgzMjQ1YjgiLCJfMHg1NjJkOGUiLCJfMHgyMWZhOWEiLCJfMHg1OGM5ZWIiLCJfMHg1OTY5MjciLCJfMHg0ZjkzNDYiLCJ1bmRlZmluZWQiLCJfMHg1NzIyMWUiLCJfMHgyZDQ3NTciLCJfMHgyYTc2MjAiLCJfMHgyMTMzNDYiLCJfMHg0MTZkZTIiLCJfMHg1Njk4MDEiLCJfMHgzN2ZlYjMiLCJfMHgzZWRkZGMiLCJfMHhlYjU2MDYiLCJfMHhjYjgwZjYiLCJfMHg0NGIxMjUiLCJfMHhhNGY4M2IiLCJfMHgzMDQ1MTUiLCJfMHgyZDlmM2IiLCJyZWZlcmVuY2VzIiwiXzB4NWIzYmFhIiwiXzB4MTY2YjAyIiwiXzB4MjlmMzViIiwiXzB4NWRmYjU4IiwiXzB4MjU0NTRhIiwiXzB4ZmM2OGU5IiwiXzB4MTMzZDNlIiwiXzB4MjcxOTZhIiwiXzB4MjE5MDA2IiwiXzB4NmI3YzFlIiwiXzB4MzIwZTE2IiwiXzB4NTRmYjhlIiwiXzB4NDBhYmUwIiwiXzB4NTdhYTM3IiwiXzB4NGZlZWUxIiwiXzB4MjJlNzIzIiwiXzB4NTY4NDU2IiwiXzB4NTMyNTIyIiwiXzB4NGMxZGYxIiwiXzB4M2M0YmYxIiwiXzB4MjVhNGJiIiwiXzB4MTNhNDA1IiwiXzB4MTEzNTdlIiwiXzB4NWQ5N2RiIiwiXzB4NDYxNDU4IiwiXzB4M2M1Y2RiIiwiXzB4ZDhlNmI4IiwiXzB4NDU4OWIyIiwiXzB4MWM3MjIzIiwiXzB4NDM4MDc5IiwiZG9jdW1lbnQiLCJfMHg1N2I5NDUiLCJfMHgyMzBjNDkiLCJfMHg3N2ViN2QiLCJfMHgxYmUwZWEiLCJfMHgxYTEwMWUiLCJfMHg1NjlmMDUiLCJfMHgyOWEwOWYiLCJfMHg1ZDlkYTUiLCJfMHgyOGM0OTMiLCJfMHgzMjI1MDAiLCJfMHhiZWM2ZmMiLCJfMHgxN2Q3NjgiLCJfMHg1NWNjNTciLCJfMHg1NDZmMTIiLCJfMHgxMTMzOGYiLCJfMHhkODMyMzgiLCJfMHhlNzIyN2MiLCJfMHhlMmU2ODciLCJfMHg0OTY2ZjEiLCJ3aW5kb3ciLCJfMHgyNzA3ZmYiLCJfMHg0OWNmYTciLCJfMHgxOThiNjUiLCJfMHhmOWMyYjkiLCJfMHgxNzZhZjYiLCJfMHgxYzYwNTUiLCJfMHg1ZDk4MGMiLCJfMHg1OWZkMjkiLCJfMHgxN2ZjNmMiLCJfMHgxMTNiZTEiLCJfMHgxOWJhYTgiLCJfMHgyNjlkOWEiLCJfMHgyNzRkMGIiLCJfMHgyZDIyOWMiLCJfMHgzNDMyMmIiLCJfMHgzMDViYTEiLCJfMHgyMzU1MDAiLCJfMHg4ODUxNDgiLCJfMHgzYmIwNzYiLCJfMHgyYzA5NzQiLCJfMHgzYzQwNzQiLCJfMHgzYjM0ZWEiLCJfMHg5ZTA1NmEiLCJfMHg1NmE1MDgiLCJfMHgxYzZhN2YiLCJfMHhmNzZkZTMiLCJfMHg1ZGQwOWEiLCJfMHg1ZGQ0ODYiLCJfMHgzOTMzNDciLCJfMHg0ZGFjMzAiLCJfMHg0MTIxN2EiLCJfMHgzODk5MzgiLCJfMHgzYTViNmUiLCJfMHgxNjJlZjMiLCJfMHg5NTRkYWEiLCJfMHgyY2JhODkiLCJfMHg0ZDRkYjAiLCJfMHg1ZDUxYmMiLCJfMHg0Y2M5NDEiLCJfMHg1Mzk1NTUiLCJfMHgyN2QyYjIiLCJfMHg1NzgwM2YiLCJfMHg0OGExZGMiLCJfMHg0N2FlZWQiLCJfMHgxODhmYmMiLCJfMHhmNmZiNmYiLCJfMHgyM2E4M2QiLCJfMHgyZDRmYzciLCJfMHhiMGJlNmYiLCJfMHgyOTY4MjEiLCJfMHgyNDIwNDUiLCJfMHgzYmZiMWYiLCJfMHhkMDFkNjAiLCJfMHg1OGI1NjgiLCJzZWN1cml0eU1vZGUiLCJfMHgyZWRiNGUiLCJzZWN1cml0eVBvbGljeSIsIl8weDJmMzQzMyIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHgxYjQ3M2YiLCJjcmVkZW50aWFscyIsIl8weDRkNTJjOSIsIm5hbWVzcGFjZUFsaWFzZXMiLCJfMHgxZDI4ZDMiLCJfMHgyYjhmMWMiLCJfMHg0YWE5MGYiLCJfMHgzNzZkN2IiLCJfMHg3ZjRiODgiLCJfMHgzMDhmOGQiLCJfMHg1ZjIwZTIiLCJfMHgzMzQ5MjUiLCJfMHg5N2I1YzgiLCJfMHgxZGI0MjgiLCJfMHgzZDA0YWEiXSwibWFwcGluZ3MiOiIyaktBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxTQUNyRCxHQUFLLENBQUFILFNBQUEsRUFBTSxDQUFBQSxTQUFBLENBQUlLLE9BQUosQ0FBTixDQUFMLENBQXlCLFNBQVVDLFNBQVYsQ0FBbUJDLFNBQW5CLEMseUJBQzVCLFNBQVNDLFNBQVQsQ0FBbUJDLFNBQW5CLEMseUJBQTRCLEcsQ0FBTUMsU0FBQSxDQUFLVCxTQUFBLEMsZUFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyx5QkFBMkIsRyxDQUFNSCxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFtQlksU0FBbkIsQ0FBTCxDLEVBQW1DLE1BQU9DLFNBQVAsQyxDQUFZUCxTQUFBLENBQU9PLFNBQVAsQyxHQUNoRixTQUFTSixTQUFULENBQWNLLFNBQWQsQyx5QkFBd0JBLFNBQUEsQyxNQUFBLEVBQWNULFNBQUEsQ0FBUVMsU0FBQSxDLGVBQUEsQ0FBUixDQUFkLENBQXNDYixTQUFBLENBQU1hLFNBQUEsQyxPQUFBLENBQU4sRSxnQkFBQSxFQUF5QlAsU0FBekIsQ0FBb0NJLFNBQXBDLEMsRUFDOURGLFNBQUEsQ0FBTSxDQUFBVCxTQUFBLENBQVlBLFNBQUEsQyxnQkFBQSxFQUFnQkgsU0FBaEIsQ0FBeUJDLFNBQUEsRUFBYyxFQUF2QyxDQUFaLENBQUQsQyxlQUFBLEdBQUwsQyxFQUpHLEMsRUFRWCxPQUFPaUIsZUFBUCxHLGVBQUEsQ0FBd0NBLGVBQXhDLENBQTBELFNBQVVDLFNBQVYsQ0FBaUJDLFNBQWpCLENBQTZCQyxTQUE3QixDLDJCQUN0RCxJQUFJQyxTQUFBLENBQUksSUFBSUMsS0FBSixDQUFVRixTQUFWLENBQVIsQyxPQUNPQyxTQUFBLEMsZ0JBQUEsRSxlQUFBLENBQTRCQSxTQUFBLEMsT0FBQSxFQUFVSCxTQUF0QyxDQUE2Q0csU0FBQSxDLFlBQUEsRUFBZUYsU0FBNUQsQ0FBd0VFLFMsRUFGbkYsQ0FLQSxNQUFNRSxTQUFBLEMsZ0JBQU4sQ0FDTUMsU0FBQSxDLGdCQUROLENBRU1DLFNBQUEsQyxnQkFGTixDQUdNQyxTQUFBLEMsZUFITixDQUlNQyxTQUFBLEMsV0FKTixDQUtNQyxTQUFBLEMsZUFMTixDQU1NQyxTQUFBLEMsZ0JBTk4sQ0FRQSxJQUFJQyxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxnQkFBQSxFLEdBQWhCLEUsaUJBQ0FBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxTQUFBLEUsR0FBaEIsRSxpQkFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLGVBQUEsRSxHQUFoQixFLGdCQUNBQSxTQUFBLENBQWdCQSxTQUFBLEMsU0FBQSxFLEdBQWhCLEUsa0JBSkosQ0FLR0QsU0FBQSxFQUFvQixDQUFBQSxTQUFBLENBQWtCLEVBQWxCLENBTHZCLEdBTUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVVBLFNBQUEsQyxlQUFBLEUsR0FBVixFLGdCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLEdBQVYsRSxXQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxlQUFBLEUsR0FBVixFLFNBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxjQUFBLEUsSUFBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLE1BQUEsRSxJQUFWLEUsa0JBVEosQ0FVR0QsU0FBQSxFQUFjLENBQUFBLFNBQUEsQ0FBWSxFQUFaLENBVmpCLEdBV0EsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsVUFBQSxFLEdBQWQsRSxnQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZUFBQSxFLEdBQWQsRSxnQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGtCQVJKLENBU0dELFNBQUEsRUFBa0IsQ0FBQUEsU0FBQSxDQUFnQixFQUFoQixDQVRyQixHQVVBLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFXQSxTQUFBLEMsZUFBQSxFLEdBQVgsRSxpQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZUFBQSxFLEdBQVgsRSxnQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsV0FBQSxFLEdBQVgsRSxnQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsYUFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsYUFBQSxFLElBQVgsRSxjQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxnQkFBQSxFLElBQVgsRSxrQkFOSixDQU9HRCxTQUFBLEVBQWUsQ0FBQUEsU0FBQSxDQUFhLEVBQWIsQ0FQbEIsR0FTQSxTQUFTRSxTQUFULENBQXVCQyxTQUF2QixDLDJCQUNJLE9BQVFBLFNBQVIsRUFDSSxJLFdBQUEsQ0FDSSxPQUFPaEIsU0FBUCxDQUNKLEssZ0JBQUEsQ0FDSSxPQUFPRyxTQUFQLENBQ0osSSxjQUFBLENBQ0ksT0FBT0QsU0FBUCxDQUNKLEssZUFBQSxDQUNJLE9BQU9FLFNBQVAsQ0FDSixLLGVBQUEsQ0FDSSxPQUFPQyxTQUFQLENBQ0osSyxnQkFBQSxDQUNJLE9BQU9DLFNBQVAsQ0FaUixDLENBZ0JKLE1BQU1XLFNBQUEsQ0FBV0MsU0FBRCxFLDJCQUNaLE9BQVFBLFNBQUEsQyxXQUFBLENBQVIsRUFDSSxJLFFBQUEsQyxHQUNRQSxTQUFBLEMsZ0JBQUEsSUFBOEJsQixTLEtBQzlCa0IsU0FBQSxDLGdCQUFBLElBQTZCakIsU0FBN0IsRUFBMkNpQixTQUFBLEMsZ0JBQUEsSSxzQkFDcEMsQyxNQUFFLEMsZ0JBQUYsQyxPQUFxQixDLGdCQUFyQixDLENBRVgsTUFBTyxDLE1BQUUsQyxnQkFBRixDLE9BQTJCLEMsVUFBM0IsQ0FBUCxDQUNKLEksVUFBQSxDLEdBQ1FBLFNBQUEsQyxnQkFBQSxJQUE4QmhCLFMsT0FDdkIsQyxNQUFFLEMsZUFBRixDLE9BQXVCLEMsV0FBdkIsQyxhQUVGZ0IsU0FBQSxDLGdCQUFBLElBQThCZixTLENBQzVCLEMsTUFBRSxDLGVBQUYsQyxPQUF1QixDLGdCQUF2QixDLENBR0EsQyxNQUFFLEMsZUFBRixDLE9BQXVCLEMsZ0JBQXZCLEMsQ0FFZixJLFFBQUEsQ0FDSSxNQUFPLEMsTUFBRSxDLGdCQUFGLEMsT0FBa0IsQyxnQkFBbEIsQ0FBUCxDQUNKLEssZ0JBQUEsQ0FDSSxNQUFPLEMsTUFBRSxDLGdCQUFGLEMsT0FBMkIsQyxnQkFBM0IsQ0FBUCxDQUNKLEssZ0JBQUEsQ0FDSSxNQUFPLEMsTUFBRSxDLFlBQUYsQyxPQUFzQixDLFlBQXRCLENBQVAsQ0FDSixLLGdCQUFBLENBQ0ksTUFBTyxDLE1BQUUsQyxnQkFBRixDLE9BQXlCLEMsZ0JBQXpCLENBQVAsQ0F4QlIsQyxNQTBCTyxDLE1BQUUsQyxnQkFBRixDLE9BQXVCLEMsTUFBdkIsQyxFQTNCWCxDQThCTWdCLFNBQUEsQ0FBUyxDQUFDQyxTQUFELENBQUtDLFNBQUwsQ0FBZUMsU0FBZixHQUE4Qi9DLFNBQUEsQ0FBVSxLLEdBQVYsQ0FBa0IsQ0FBQzZDLFNBQUQsQ0FBS0MsU0FBTCxDQUFlQyxTQUFmLENBQWxCLENBQThDLEssR0FBOUMsQ0FBc0QsVUFBVyxDQUFFQyxZQUFBLENBQUFDLFNBQUYsQ0FBZ0JDLFFBQUEsQ0FBQUMsU0FBaEIsQ0FBMEJDLE9BQUEsQ0FBQUMsU0FBMUIsQ0FBWCxDQUFnREMsU0FBaEQsQ0FBd0RDLFNBQXhELEMsMkJBQ3pGQyxTQUFBLENBQVVILFMsdUJBQ1ZJLFNBQUEsQ0FBU0QsUyxrQkFDVEUsU0FBQSxDQUFvQkMsTUFBQSxDLGVBQUEsRUFBY0EsTUFBQSxDLGVBQUEsRUFBYyxFQUFkLENBQWtCSixTQUFsQixDQUFkLENBQTJDLEMsUUFBRSxDQUFBRCxTQUFGLEMsWUFBVSxDLElBQVYsQ0FBM0MsQyxDQUNwQk0sU0FBQSxDQUFPLE1BQU1DLEtBQUEsQ0FBTUosU0FBTixDQUFXLEMsUUFDMUIsQyxlQUQwQixDLE1BRTFCLENBQU1LLElBQUEsQyxnQkFBQSxFQUFlLEMsY0FDakIsQ0FBQWIsU0FEaUIsQyxVQUVqQixDQUFBRSxTQUZpQixDLG1CQUdqQixDQUFBTyxTQUhpQixDQUFmLENBRm9CLEMsU0FPMUIsQ0FBUyxDLGNBQUUsQyxnQkFBRixDQVBpQixDQUFYLEMsSUFTZkUsU0FBQSxDLGVBQUEsSSxZQUNBRyxPQUFBLEMsZ0JBQUEsRSxlQUFBLENBQTBDSCxTQUFBLEMsZUFBQSxDQUExQyxDQUF1REEsU0FBQSxDLFlBQUEsQ0FBdkQsQyxDQUNPLEMsWUFBRSxDQUFZLEVBQWQsQyxDQUdYLE1BQU1JLFNBQUEsQ0FBVyxNQUFNSixTQUFBLEMsZ0JBQUEsR0FBdkIsQ0FDTUssU0FBQSxDQUFhRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUFvQyxFQUR2RCxDLE1BRU8sQyxZQUFFLENBQUFDLFNBQUYsQyxFQXBCa0MsQ0E5QjdDLENBcURNQyxTQUFBLENBQVksQyxpQkFDZCxDQUFpQjFCLFNBQUEsQyxlQUFBLENBREgsQyxpQkFFZCxDLElBRmMsQyxpQkFHZCxDQUFpQlIsU0FBQSxDLFNBQUEsQ0FISCxDLGVBSWQsQ0FBZUUsU0FBQSxDLGVBQUEsRUFBcUJBLFNBQUEsQyxnQkFBQSxDQUFyQixDQUF3Q0EsU0FBQSxDLGVBQUEsQ0FKekMsQyxZQVVkLEMsSUFWYyxDQXJEbEIsQ0FpRU1pQyxTQUFBLENBQVksQyxpQkFDZCxDQUFpQjNCLFNBQUEsQyxnQkFBQSxDQURILEMsaUJBRWQsQyxJQUZjLEMsaUJBR2QsQ0FBaUJSLFNBQUEsQyxnQkFBQSxDQUhILEMsZUFJZCxDQUFlRSxTQUFBLEMsZUFBQSxFQUFxQkEsU0FBQSxDLGdCQUFBLENBQXJCLENBQXdDQSxTQUFBLEMsZUFBQSxDQUp6QyxDLFlBVWQsQyxJQVZjLENBakVsQixDQTZFTWtDLFNBQUEsQ0FBZSxDQUFDQyxTQUFELENBQUtDLFNBQUwsR0FBWXRFLFNBQUEsQ0FBVSxLLEdBQVYsQ0FBa0IsQ0FBQ3FFLFNBQUQsQ0FBS0MsU0FBTCxDQUFsQixDQUE0QixLLEdBQTVCLENBQW9DLFVBQVcsQ0FBRXRCLFlBQUEsQ0FBQXVCLFNBQUYsQ0FBZ0JyQixRQUFBLENBQUFzQixTQUFoQixDQUEwQnBCLE9BQUEsQ0FBQXFCLFNBQTFCLENBQVgsQ0FBZ0QsQ0FBRUMsTUFBQSxDQUFBQyxTQUFGLENBQVVDLFVBQUEsQ0FBQUMsU0FBVixDQUFzQkMsTUFBQSxDQUFBQyxTQUF0QixDQUFoRCxDLDJCQUMzREMsU0FBQSxDQUFVUCxTLGtCQUNWUSxTQUFBLENBQVNELFMsaUJBQ1RFLFNBQUEsQ0FBTyxNQUFNckIsS0FBQSxDQUFNb0IsU0FBTixDQUFXLEMsUUFDMUIsQyxNQUQwQixDLE1BRTFCLENBQU1uQixJQUFBLEMsZ0JBQUEsRUFBZSxDLGNBQ2pCLENBQUFTLFNBRGlCLEMsVUFFakIsQ0FBQUMsU0FGaUIsQyxRQUdqQixDQUFBRyxTQUhpQixDLFlBSWpCLENBQUFFLFNBSmlCLEMsUUFLakIsQ0FBQUUsU0FMaUIsQ0FBZixDQUZvQixDLFNBUzFCLENBQVMsQyxjQUFFLEMsZ0JBQUYsQ0FUaUIsQ0FBWCxDLElBV2ZHLFNBQUEsQyxlQUFBLEksWUFDTyxJLENBRVgsTUFBTUMsU0FBQSxDQUFRLE1BQU1ELFNBQUEsQyxnQkFBQSxHQUFwQixDLE9BQ09DLFNBQUEsQyxlQUFBLEMsRUFsQnNCLENBN0VqQyxDQWlHTUMsU0FBQSxDQUFlLENBQUNDLFNBQUQsQ0FBT0MsU0FBUCxHLDhCQUNiRCxTQUFBLEMsZUFBQSxJLHdCQUNPQSxTQUFBLEMsaUJBQUEsQyxDQUVYLE9BQVFDLFNBQVIsRUFDSSxJLFlBQUEsQ0FDSSxPQUFPRCxTQUFBLEMsZ0JBQUEsQ0FBUCxDQUNKLEssZUFBQSxDQUNJLE9BQU9BLFNBQUEsQyxZQUFBLEdBQW1CQSxTQUFBLEMsWUFBQSxDQUExQixDQUNKLEssZUFBQSxDQUNJLE9BQU9BLFNBQUEsQyxnQkFBQSxHQUF1QkEsU0FBQSxDLGdCQUFBLENBQTlCLENBQ0osSSxXQUFBLENBQ0ksT0FBT0EsU0FBQSxDLGdCQUFBLENBQVAsQ0FDSixRQUNBLEssZUFBQSxDQUNJLE9BQU9BLFNBQUEsQyxlQUFBLENBQVAsQ0FYUixDLENBckdKLENBbUhNRSxTQUFBLENBQWVDLFNBQUQsRSw4QkFDWkEsU0FBQSxDLGVBQUEsSSx3Q0FDc0JBLFNBQUEsQyxlQUFBLEMsTUFHdEIsSUFBSUMsU0FBQSxDQUFNLEVBQVYsQyxPQUNBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBb0JELFNBQUEsQyxlQUFBLENBQXBCLEMsQ0FDQUMsU0FBQSxDLGdCQUFBLEUsZ0JBQXlCRCxTQUFBLEMsZ0JBQUEsQ0FBekIsQyxDQUNBQyxTQUFBLEMsZ0JBQUEsRSxnQkFBd0J2RCxTQUFBLENBQVVzRCxTQUFBLEMsZ0JBQUEsQ0FBVixDQUF4QixDLENBQ0lBLFNBQUEsQyxnQkFBQSxDLEVBQ0FDLFNBQUEsQyxnQkFBQSxFLGlCQUF3QkQsU0FBQSxDLGdCQUFBLENBQXhCLEMsQ0FFQUEsU0FBQSxDLGdCQUFBLEMsRUFDQUMsU0FBQSxDLGdCQUFBLEUseUJBQTRCRCxTQUFBLEMsZ0JBQUEsQ0FBNUIsQyxDQUVBQSxTQUFBLEMsZ0JBQUEsQyxFQUNBQyxTQUFBLEMsZ0JBQUEsRSxpQkFBZ0NELFNBQUEsQyxlQUFBLENBQWhDLEMsQ0FFR0MsU0FBQSxDLGdCQUFBLEUsTUFBQSxDLEdBcklmLENBd0lBLFNBQVNDLFNBQVQsQ0FBdUJDLFNBQXZCLEMsOEJBQ1FBLFNBQUEsQyxPQUFBLEVBQXFCLE9BQXJCLEMsMkJBR0FBLFNBQUEsQyxPQUFBLEVBQXFCLHNCQUFyQixDLDJCQUdBQSxTQUFBLEMsZ0JBQUEsRUFBcUIsT0FBckIsQywyQkFHQUEsU0FBQSxDLE9BQUEsRUFBcUIsaUJBQXJCLEMsMkJBR0FBLFNBQUEsQyxPQUFBLEVBQXFCLGFBQXJCLEMscUJBSVIsU0FBU0MsU0FBVCxDQUFnQ0MsU0FBaEMsQywyQkFDVUMsU0FBQSxDQUFPSixTQUFBLENBQWNHLFNBQWQsQyxDQUNiLE9BQVFDLFNBQVIsRUFDSSxJLFFBQUEsQ0FDSSxNLEdBQUEsQ0FDSixLLGVBQUEsQ0FDSSxNLElBQUEsQ0FDSixLLGVBQUEsQ0FDSSxPLGdCQUFBLENBQ0osSSxZQUFBLENBQ0ksTSxHQUFBLENBQ0osSyxlQUFBLENBQ0ksTSxJQUFBLENBQ0osUUFDSSxNLEdBQUEsQ0FaUixDLENBZUosU0FBU0MsU0FBVCxDQUFnQkMsU0FBaEIsQywyQkFDSSxJQUFJQyxTQUFKLENBQ0EsT0FBUUQsU0FBUixFQUNJLEksR0FBQSxDQUNJQyxTQUFBLEMsZUFBQSxDQUNBLE1BQ0osSSxJQUFBLENBQ0lBLFNBQUEsQyxlQUFBLENBQ0EsTUFDSixLLGdCQUFBLENBQ0lBLFNBQUEsQyxlQUFBLENBQ0EsTUFDSixJLEdBQUEsQ0FDSUEsU0FBQSxDLGVBQUEsQ0FDQSxNQUNKLEksSUFBQSxDQUNJQSxTQUFBLEMsZUFBQSxDQUNBLE1BZlIsQyxPQWlCT0EsUyxFQUVYLE1BQU1DLFNBQUEsQ0FBbUIsQ0FBQ0MsU0FBRCxDQUFLQyxTQUFMLEdBQWtCcEcsU0FBQSxDQUFVLEssR0FBVixDQUFrQixDQUFDbUcsU0FBRCxDQUFLQyxTQUFMLENBQWxCLENBQWtDLEssR0FBbEMsQ0FBMEMsVUFBVyxDQUFFcEQsWUFBQSxDQUFBcUQsU0FBRixDQUFnQm5ELFFBQUEsQ0FBQW9ELFNBQWhCLENBQTBCbEQsT0FBQSxDQUFBbUQsU0FBMUIsQ0FBWCxDQUFnREMsU0FBaEQsQywyQkFDM0VDLFNBQUEsQ0FBVUYsUyxrQkFDVkcsU0FBQSxDQUFTRCxTLGtCQUNURSxTQUFBLENBQU1OLFNBQUEsQyxJQUFBLEMsQ0FDTk8sU0FBQSxDQUFJQyxHQUFBLEMsT0FBQSxFLE1BQUEsRUFBZUYsU0FBZixDLENBQ1Y1QyxPQUFBLEMsS0FBQSxFQUFZNkMsU0FBQSxDLGVBQUEsQ0FBWixDLENBQ0FBLFNBQUEsQyxrQkFBQSxDQURBLENBRUEsTUFBTUUsU0FBQSxDQUFtQlQsU0FBQSxDLGVBQUEsQ0FBekIsQ0FDTVUsU0FBQSxDQUFPLE1BQU1sRCxLQUFBLENBQU02QyxTQUFOLENBQVcsQyxRQUMxQixDLGVBRDBCLEMsTUFFMUIsQ0FBTTVDLElBQUEsQyxnQkFBQSxFQUFlLEMsY0FDakIsQ0FBQXVDLFNBRGlCLEMsVUFFakIsQ0FBQUMsU0FGaUIsQyxRQUdqQixDQUFBRSxTQUhpQixDLGtCQUlqQixDQUFBTSxTQUppQixDQUFmLENBRm9CLEMsU0FRMUIsQ0FBUyxDLGNBQUUsQyxnQkFBRixDQVJpQixDQUFYLENBRG5CLENBV01FLFNBQUEsQ0FBUSxNQUFNRCxTQUFBLEMsTUFBQSxHQVhwQixDLE1BWU8sQyxNQUFFLENBQUFDLFNBQUYsQyxNQUFRLENBQUFELFNBQVIsQyxFQW5CZ0MsQ0FBM0MsQ0FxQk1FLFNBQUEsQ0FBaUIsQ0FBQ0MsU0FBRCxDQUFLQyxTQUFMLENBQWFDLFNBQWIsQ0FBOEJDLFNBQTlCLEdBQTBDckgsU0FBQSxDQUFVLEssR0FBVixDQUFrQixDQUFDa0gsU0FBRCxDQUFLQyxTQUFMLENBQWFDLFNBQWIsQ0FBOEJDLFNBQTlCLENBQWxCLENBQTBELEssR0FBMUQsQ0FBa0UsVUFBVyxDQUFFckUsWUFBQSxDQUFBc0UsU0FBRixDQUFnQnBFLFFBQUEsQ0FBQXFFLFNBQWhCLENBQTBCbkUsT0FBQSxDQUFBb0UsU0FBMUIsQ0FBWCxDQUFnREMsU0FBaEQsQ0FBc0RDLFNBQXRELENBQXFFQyxTQUFyRSxDLDJCQUN6SEMsU0FBQSxDQUFpQkYsU0FBQSxDLGdCQUFBLEcsQ0FDakIsQ0FBRUcsSUFBQSxDQUFBQyxTQUFGLENBQVFDLElBQUEsQ0FBQUMsU0FBUixFQUFpQixNQUFNOUIsU0FBQSxDQUFpQixDLGNBQUUsQ0FBQW9CLFNBQUYsQyxVQUFnQixDQUFBQyxTQUFoQixDLFNBQTBCLENBQUFDLFNBQTFCLENBQWpCLENBQXNESSxTQUF0RCxDLENBQ3ZCSyxTQUFBLENBQWtCLENBQUNDLFNBQUQsQ0FBT0MsU0FBUCxHLDJCQUNwQlIsU0FBQSxDLGVBQUEsRUFBV08sU0FBWCxFLGVBQUEsRSxlQUFBLEUsZUFBQSxFQUFvREMsU0FBcEQsQyxDQUNBUixTQUFBLEMsZUFBQSxHLENBQ0FTLFVBQUEsQ0FBVyxJLENBQ1BULFNBQUEsQyxhQUFBLEVBQWtCUSxTQUFsQixDLENBQ0FSLFNBQUEsQyxNQUFBLEcsRUFGSixDLEtBQUEsQyxNQUtBSyxTQUFBLEMsUUFBQSxJLFlBRUFDLFNBQUEsQyxnQkFBZ0IsQ0FBZ0JMLFNBQWhDLEMsZ0JBQUEsQyxhQUlJRSxTQUFBLEMsWUFBQSxFLGdCQUFBLEVBQXNCLE1BQXRCLEMsRUFDQSxNQUFNTyxTQUFBLENBQVU5QyxTQUFBLENBQVl1QyxTQUFaLENBQWhCLENBQ0FKLFNBQUEsQyxnQkFBQSxFLE9BQUEsQ0FBNEJXLFNBQTVCLEVBRUEsTUFBTUMsU0FBQSxDQUFpQmxELFNBQUEsQ0FBYTBDLFNBQWIsQ0FBbUJMLFNBQW5CLENBQXZCLEMsT0FDQUMsU0FBQSxDLGdCQUFBLEVBQWtCWSxTQUFsQixDLENBQ0FaLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsQ0FDQU8sU0FBQSxDLGdCQUFBLEMsSUFBQSxDLG1CQUlBUCxTQUFBLEMsZ0JBQUEsRSxHQUFxQkUsU0FBckIsQyxDQUNBSyxTQUFBLENBQW1CSCxTQUFBLEMsWUFBQSxDLFFBQW1CRSxTQUFBLEMsZUFBQSxDQUF0QyxDLFNBQUEsQyxPQTdCcUQsQ0FyQmpFLENBdURBLFNBQVNPLFNBQVQsQ0FBdUJDLFNBQXZCLENBQThCQyxTQUE5QixDLFFBQ1d6SSxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDN0IwSSxTQUFBLENBQVNGLFNBQUEsQyxnQkFBQSxFLE9BQUEsQyxDQUNURyxTQUFBLENBQWdCLE1BQU0vRixTQUFBLENBQU82RixTQUFQLENBQWFDLFNBQWIsQ0FBcUJ4RSxTQUFyQixDLENBQ3RCMEUsU0FBQSxDQUFnQixNQUFNaEcsU0FBQSxDQUFPNkYsU0FBUCxDQUFhQyxTQUFiLENBQXFCdkUsU0FBckIsQyxPQUNyQixDLFlBQ0gsQ0FBWSxDQUFDLEdBQUd3RSxTQUFBLEMsZ0JBQUEsQ0FBSixDQUE4QixHQUFHQyxTQUFBLEMsZ0JBQUEsQ0FBakMsQ0FEVCxDLEVBSkosQyxFQVNYLE1BQU1DLFNBQUEsQ0FBYSxDLGlCQUNmLENBQWlCckcsU0FBQSxDLGVBQUEsQ0FERixDLGlCQUVmLEMsSUFGZSxDLGlCQUdmLENBQWlCUixTQUFBLEMsZ0JBQUEsQ0FIRixDLGVBSWYsQ0FBZUUsU0FBQSxDLGdCQUFBLEVBQTBCQSxTQUFBLEMsZ0JBQUEsQ0FBMUIsQ0FBaURBLFNBQUEsQyxnQkFBQSxDQUFqRCxDQUFzRUEsU0FBQSxDLGdCQUFBLENBSnRFLEMsWUFLZixDLElBTGUsQ0FBbkIsQ0FPQSxTQUFTNEcsU0FBVCxDQUF1QkMsU0FBdkIsQ0FBOEJDLFNBQTlCLEMsUUFDV2hKLFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLHlCQUM3QmlKLFNBQUEsQ0FBU0YsU0FBQSxDLE1BQUEsRSxlQUFBLEMsQ0FDVEcsU0FBQSxDQUFnQixNQUFNdEcsU0FBQSxDQUFPb0csU0FBUCxDQUFhQyxTQUFiLENBQXFCSixTQUFyQixDLFFBQ3JCSyxTLEVBSEosQyxFQU1YLE1BQU1DLFNBQUEsQ0FBZUMsU0FBRCxFLDJCQUNoQixJQUFJQyxTQUFKLENBQVFDLFNBQVIsQ0FBWUMsU0FBWixDQUFnQkMsU0FBaEIsQyxHQUNJLENBQUNKLFNBQUQsRUFBYyxDQUFDQSxTQUFBLEMsZUFBQSxDLEVBQ2YsTUFBTUssU0FBQSxDQUFXQyxDQUFBLEMsMkdBQUEsQ0FBakIsQyxPQUNPRCxTLEVBRVgsTUFBTUUsU0FBQSxDQUFJUCxTQUFBLEMsZUFBQSxFLGVBQUEsR0FBVixDQUNNUSxTQUFBLENBQUssQ0FBQyxDQUFBUCxTQUFBLENBQUtELFNBQUEsQyxlQUFBLENBQUwsQ0FBRCxHQUFpQyxJQUFqQyxFQUF5Q0MsU0FBQSxHQUFPLEssR0FBaEQsQ0FBeUQsSyxHQUF6RCxDQUFrRUEsU0FBQSxDLGVBQUEsQ0FBbEUsQ0FBRCxFQUFnRixDQUFDLENBQUFDLFNBQUEsQ0FBS0YsU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUFnQyxJQUFoQyxFQUF3Q0UsU0FBQSxHQUFPLEssR0FBL0MsQ0FBd0QsSyxHQUF4RCxDQUFpRUEsU0FBQSxDLGdCQUFBLENBQWpFLENBQWhGLEVBQTZKRixTQUFBLEMsZUFBQSxFLGVBQUEsR0FEdkssQ0FFTSxDQUFFUyxJQUFBLENBQUFDLFNBQUYsQ0FBUUMsS0FBQSxDQUFBQyxTQUFSLEVBQWtCdEgsU0FBQSxDQUFRMEcsU0FBUixDQUZ4QixDQUdNYSxTQUFBLEMsSUFBWWIsU0FBQSxDLFFBQUEsRSxlQUFBLEcsU0FBZ0MsQ0FBQyxDQUFDLENBQUFHLFNBQUEsQ0FBS0gsU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUFnQyxJQUFoQyxFQUF3Q0csU0FBQSxHQUFPLEssR0FBL0MsQ0FBd0QsSyxHQUF4RCxDQUFpRUEsU0FBQSxDLGdCQUFBLENBQWpFLENBQUQsRUFBK0UsQ0FBQyxDQUFBQyxTQUFBLENBQUtKLFNBQUEsQyxlQUFBLENBQUwsQ0FBRCxHQUFpQyxJQUFqQyxFQUF5Q0ksU0FBQSxHQUFPLEssR0FBaEQsQ0FBeUQsSyxHQUF6RCxDQUFrRUEsU0FBQSxDLGVBQUEsQ0FBbEUsQ0FBL0UsRSxFQUFBLENBSGxELENBSU1VLFNBQUEsQ0FBV1IsQ0FBQSxDLGlCQUFjTixTQUFBLEMsZUFBQSxFLFVBQUEsRyxrQkFBK0RhLFMsa0JBQXNCSCxTLGtCQUFzQkUsUyxrQkFBZ0JKLFMsaUJBQXpJLENBSmpCLEMsT0FLQU0sU0FBQSxDLGVBQUEsRSxnQkFBQSxDLENBQ0FBLFNBQUEsQyxNQUFBLEUsZUFBQSxDQUF1QlAsU0FBdkIsQyxDQUNBTyxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUEyQmQsU0FBM0IsQyxDQUNPYyxTLEVBZFgsQ0FnQk1DLFNBQUEsQ0FBYyxDQUFDQyxTQUFELENBQVNDLFNBQVQsRyxRQUNUQSxTQUFBLEMsTUFBQSxFLGNBQXNCRCxTLFFBQXRCLEMsRUFqQlgsQ0FtQk1FLFNBQUEsQ0FBZSxDQUFDQyxTQUFELENBQU9DLFNBQVAsRywyQkFDakJELFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsdUJBQUEsRSxnQkFBQSxFLGdCQUFBLEMsQ0FFQUMsU0FBQSxDLE1BQUEsRSxrQkFBQSxFLGVBQUEsRSxVQUFBLEMsRUF0QkosQ0F3Qk1DLFNBQUEsQ0FBYSxDQUFDQyxTQUFELENBQU9DLFNBQVAsQ0FBbUJDLFNBQW5CLEdBQTZCNUssU0FBQSxDQUFVLEssR0FBVixDQUFrQixLLEdBQWxCLENBQTBCLEssR0FBMUIsQ0FBa0MsVywyQkFFOUUsSUFBSTZLLFNBQUEsQ0FBV0QsU0FBQSxDLGdCQUFBLEUsZUFBQSxDQUFmLENBQ0FELFNBQUEsQyxnQkFBQSxFLFVBQUEsR0FBb0MsRUFBcEMsQ0FDQSxNQUFNRyxTQUFBLENBQVVILFNBQUEsQyxlQUFBLEdBQXNCLEVBQXRDLEMsR0FDSUcsU0FBQSxDLGdCQUFBLEksSUFDQSxPQUVKLFVBQVdDLFNBQVgsSUFBZ0JELFNBQWhCLEMsQ0FDUUQsU0FBQSxDLGVBQUEsRSxZQUFBLEMsRUFFQSxPQUFNRyxTQUFBLENBQVVOLFNBQVYsQ0FBZ0JHLFNBQWhCLENBQU4sQyxDQUVKLE1BQU1JLFNBQUEsQ0FBV2QsU0FBQSxDQUFZWSxTQUFaLENBQWVGLFNBQWYsQ0FBakIsQyxHQUNJSSxTQUFBLEMsZ0JBQUEsSSxJQUNBLE9BRUpKLFNBQUEsQ0FBV0ksUyxFQUVmWCxTQUFBLENBQWFJLFNBQWIsQ0FBbUJHLFNBQW5CLEMsQ0FDQUssU0FBQSxDQUFXUixTQUFBLEMsZ0JBQUEsQ0FBWCxDQUEyQkcsU0FBM0IsQyxFQXBCNEMsQ0F4QmhELENBOENBLFNBQVNLLFNBQVQsQ0FBb0JDLFNBQXBCLENBQWdDQyxTQUFoQyxDLDJCQUVVQyxTQUFBLENBQVFELFNBQUEsQyxnQkFBQSxJLGdCQUFBLEMsQ0FFUkUsU0FBQSxDQUFxQkgsU0FBQSxDLGdCQUFBLEcsSUFDdkJHLFNBQUEsRUFBc0JDLFMsQ0FDdEIsT0FJSixNQUFNQyxTQUFBLENBQVdGLFNBQUEsQ0FBcUJELFNBQXJCLENBQTZCRixTQUFBLEMsZ0JBQUEsSSxHQUE3QixDQUF1REMsU0FBQSxDLFFBQUEsSSxHQUF4RSxDQUVBRCxTQUFBLEMsZUFBQSxFQUFtQixDLFdBQ2YsQ0FBV0ssU0FESSxDQUFuQixDLEtBQUEsQyxFQUlKLE1BQU1DLFNBQUEsQ0FBaUIsQ0FBQ0MsU0FBRCxDQUFPQyxTQUFQLEdBQXNCM0wsU0FBQSxDQUFVLEssR0FBVixDQUFrQixLLEdBQWxCLENBQTBCLEssR0FBMUIsQ0FBa0MsVywyQkFDckU0TCxTQUFBLENBQVNGLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEcsQ0FDVEcsU0FBQSxDQUFVLEMsUUFDWixDQUFBRCxTQURZLEMsWUFFWixDQUFZRCxTQUFBLEMsUUFBQSxDQUZBLEMsUUFHWixDQUFRRCxTQUFBLEMsZ0JBQUEsRSxlQUFBLEcsR0FISSxDLENBS1ZJLFNBQUEsQ0FBT0MsU0FBQSxDQUFlTCxTQUFmLEMsQ0FDUE0sU0FBQSxDQUFhLE1BQU01SCxTQUFBLENBQWEwSCxTQUFiLENBQW1CRCxTQUFuQixDLElBQ3JCLENBQUNHLFMsQ0FDRCxPQUVKLE1BQU12QixTQUFBLENBQVdpQixTQUFYLENBQWlCTSxTQUFqQixDQUE2Qk4sU0FBQSxDLGdCQUFBLENBQTdCLEMsRUFabUMsQ0FBN0MsQ0FjQSxTQUFTTyxTQUFULENBQTJCQyxTQUEzQixDQUFpQ0MsU0FBakMsQ0FBd0NDLFNBQXhDLENBQW1EQyxTQUFuRCxDLFFBQ1dyTSxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyw0QkFDL0JtTSxTQUFBLEMsZUFBQSxFLGdCQUFBLEMsRUFDQXBJLE9BQUEsQyxnQkFBQSxFLGdCQUFBLEVBQ0EsTyxJQUVBb0ksU0FBQSxDLGVBQUEsRSxnQkFBQSxDLEVBQ0FwSSxPQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUNBLE8sQ0FFSm9JLFNBQUEsQyxVQUFBLEUsU0FBQSxDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLGVBQUEsQ0FEQSxDQUVBLEcsQ0FDSUEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLElBQ0EsTUFBTSxDQUFFRyxVQUFBLENBQUFDLFNBQUYsRUFBaUIsTUFBTUgsU0FBQSxDQUFVRCxTQUFWLENBQWlCRSxTQUFqQixDQUE3QixDQUVBRSxTQUFBLEMsZ0JBQUEsRUFBZ0IsQ0FBQ0MsU0FBRCxDQUFJQyxTQUFKLEcsMkJBQVksSUFBSUMsU0FBSixDQUFRQyxTQUFSLEMsTUFBb0IsQ0FBQyxDQUFDLENBQUFELFNBQUEsQ0FBS0YsU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUF3QixJQUF4QixFQUFnQ0UsU0FBQSxHQUFPLEssR0FBdkMsQ0FBZ0QsSyxHQUFoRCxDQUF5REEsU0FBQSxDLGdCQUFBLENBQXpELENBQUQsRSxFQUFBLENBQUQsQyxlQUFBLEVBQTBGLENBQUMsQ0FBQUMsU0FBQSxDQUFLRixTQUFBLEMsWUFBQSxDQUFMLENBQUQsR0FBd0IsSUFBeEIsRUFBZ0NFLFNBQUEsR0FBTyxLLEdBQXZDLENBQWdELEssR0FBaEQsQ0FBeURBLFNBQUEsQyxnQkFBQSxDQUF6RCxDQUFELEUsRUFBekYsQyxFQUEvQyxFQUNBLFVBQVdDLFNBQVgsSUFBd0JMLFNBQXhCLEMsSUFDUUwsU0FBQSxDLGdCQUFBLEUsUUFBQSxHQUF1QixDQUFDQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFvQlUsU0FBcEIsQyxDQUN4QixTQUVKLE1BQU1DLFNBQUEsQ0FBVzFELFNBQUEsQ0FBWXlELFNBQVosQ0FBakIsQ0FDQVQsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLEVBQTRCVSxTQUE1QixDLEVBRUpWLFNBQUEsQyxVQUFBLEUsZ0JBQUEsQyxFQUVKLE1BQU9XLFNBQVAsQyxDQUNJWCxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsRSxpQkFBeUNXLFNBQUEsQyxlQUFBLEMsUUFBekMsQyxDQUNBL0ksT0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBbUIrSSxTQUFuQixDLEVBRUpYLFNBQUEsQyxnQkFBQSxFLFVBQUEsRSxnQkFBQSxHLENBQ0FBLFNBQUEsQyxnQkFBQSxFLFNBQUEsQyxFQTlCRyxDLEVBaUNYLFNBQVNKLFNBQVQsQ0FBd0JnQixTQUF4QixDLDJCQUNVQyxTQUFBLENBQU8sQyxTQUNULENBQVNELFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBREEsQyxjQUVULENBQWMsT0FBT0EsU0FBQSxDLGdCQUFBLEUsZUFBQSxDQUFQLEcsZUFBQSxDQUFrREEsU0FBQSxDLGdCQUFBLEUsY0FBQSxHQUFsRCxDQUFnRkEsU0FBQSxDLGdCQUFBLEUsZUFBQSxDQUZyRixDLFVBR1QsQ0FBVSxPQUFPQSxTQUFBLEMsU0FBQSxFLGdCQUFBLENBQVAsRyxlQUFBLENBQThDQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUE5QyxDQUF3RUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FIekUsQyxRQUtOQyxTLEVBRVgsU0FBU2hDLFNBQVQsQ0FBbUJpQyxTQUFuQixDQUF5QkMsU0FBekIsQyxRQUNXbE4sU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcsNEJBQy9Ca04sU0FBQSxDLGVBQUEsRSxnQkFBQSxDLEVBQ0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZUFBQSxFLFVBQUEsQyxDQUNBQSxTQUFBLEMsVUFBQSxFLElBQUEsRSxRQUFBLEdBREEsQ0FFQSxPLENBR0osTUFBTUMsU0FBQSxDQUFPcEIsU0FBQSxDQUFla0IsU0FBZixDQUFiLENBQ01HLFNBQUEsQ0FBSSxDQUFDSCxTQUFBLEMsZ0JBQUEsRSxXQUFBLENBQUQsQ0FBMEIxRSxTQUExQixDQUEwQ08sU0FEcEQsQ0FFQSxHLENBQ0ksTUFBTW1ELFNBQUEsQ0FBa0JnQixTQUFsQixDQUF3QkMsU0FBeEIsQ0FBNkJFLFNBQTdCLENBQWdDRCxTQUFoQyxDLENBRU5ELFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZUFBQSxFLGdCQUFBLEMsRUFFSixNQUFPRyxTQUFQLEMsQ0FDSUgsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxlQUFBLEUsZ0JBQUEsQyxDQUNBbkosT0FBQSxDLGdCQUFBLEUsZUFBQSxDQUFxQnNKLFNBQXJCLEMsR0FoQkQsQyxFQW9CWCxNQUFNQyxTQUFBLENBQW9CLEMsWUFDdEIsQ0FBWSxDLGdCQUFFLEMsR0FBRixDLE1BQXFCLEMsU0FBckIsQ0FEVSxDLFdBRXRCLEMsUUFGc0IsQyxRQUd0QixDLFdBSHNCLEMsYUFJdEIsQ0FBYSxDLE1BQUUsQyxTQUFGLENBSlMsQyxnQkFLdEIsQ0FBZ0I1TCxTQUxNLENBQTFCLENBT002TCxTQUFBLENBQTJCLEksMkJBUTdCN0QsQ0FBQSxDLGVBQUEsRSxlQUFBLENBQWlDLEMsU0FFN0IsQ0FBUyxDLGNBQ0wsQ0FBYyxLQUFPLEMsVUFBRSxDLHdDQUFGLENBQVAsQ0FEVCxDLFVBRUwsQ0FBVSxJQUFNNkIsU0FGWCxDLFlBR0wsQ0FBWSxJQUFNK0IsU0FIYixDLFFBSUwsQ0FBUSxJLElBSkgsQyxTQUtMLEMsRUFMSyxDLFdBTUwsQyxHQU5LLENBRm9CLEMsbUJBVTdCLEUsUUFDV3ROLFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLHlCQUM3QndOLFNBQUEsQ0FBTyxJLElBQ1RBLFNBQUEsQyxlQUFBLEdBQXFCakMsUyxFQUNyQixNQUFNa0MsU0FBQSxDQUFJLE9BQU9ELFNBQUEsQyxTQUFBLEUsWUFBQSxDQUFQLEcsZUFBQSxDQUFnREEsU0FBQSxDLGdCQUFBLEUsZUFBQSxFLE1BQUEsRUFBNkJBLFNBQTdCLENBQWhELENBQXFGQSxTQUFBLEMsZ0JBQUEsRSxZQUFBLENBQS9GLEMsR0FDSUMsU0FBQSxZQUFhak4sTyxFQUNiLE1BQU1rTixTQUFBLENBQU8sTUFBTUQsU0FBbkIsQ0FDQUQsU0FBQSxDLGVBQUEsRUFBb0JFLFMsT0FHcEJGLFNBQUEsQyxlQUFBLEVBQW9CQyxTLFNBR3JCRCxTQUFBLEMsZUFBQSxHQUFxQkYsUyxFQVp6QixDLEVBWGtCLEMsT0EwQjdCLEUsUUFDV3ROLFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLHlCQUM3QjJOLFNBQUEsQ0FBTyxJLENBRVBDLFNBQUEsQ0FBSUQsUyxDQUNWQyxTQUFBLEMsZUFBQSxFQUFpQnJDLFMsQ0FDakJvQyxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQURBLENBRUEsTUFBTUUsU0FBQSxDQUFhLE1BQU0sSyxnQkFBQSxHQUF6QixDQUNNQyxTQUFBLENBQVczRSxTQUFBLENBQVkwRSxTQUFaLENBRGpCLENBRUFGLFNBQUEsQyxnQkFBQSxFLFFBQUEsRUFBa0JHLFNBQWxCLEMsQ0FDQUgsU0FBQSxDLGVBQUEsRUFBcUJFLFMsRUFUbEIsQyxFQTNCa0IsQyxRQXVDN0IsQ0FBT0UsU0FBUCxDLDJCQUNVQyxTQUFBLENBQU8sSSxDQUVQQyxTQUFBLENBQU9sQyxTQUFBLENBQWVpQyxTQUFmLEMsQ0FDYi9HLFNBQUEsQ0FBZWdILFNBQWYsQ0FBcUJGLFNBQXJCLENBQTJCQyxTQUFBLEMsZ0JBQUEsQ0FBM0IsQ0FBd0NBLFNBQUEsQyxlQUFBLENBQXhDLEUsZ0JBQUEsRUFBMERFLFNBQUQsRSwyQkFDakQsQ0FBQ0EsUyxDQUNERixTQUFBLEMsZ0JBQUEsRSxlQUFBLEUsZ0JBQUEsQyxDQUdBQSxTQUFBLEMsZ0JBQUEsRSxhQUFBLEUsZ0JBQUEsQyxFQUxSLEMsRUEzQ3lCLEMsV0FvRDdCLENBQVVHLFNBQVYsQywyQkFDVUMsU0FBQSxDQUFPLEksQ0FDYjFFLENBQUEsQ0FBRTJFLFFBQUYsRSxnQkFBQSxFLGVBQUEsQyxDQUNBRixTQUFBLEMsTUFBQSxHLENBQ0FBLFNBQUEsQyxLQUFBLEVBQVMsQyxRQUNMLEMsTUFESyxDQUFULENBRkEsQyxHQUtJQSxTQUFBLEMsTUFBQSxFLGdCQUFBLEMsRUFDQSxJQUFJRyxTQUFBLENBQVcsRUFBZixDQUNBSCxTQUFBLEMsTUFBQSxFLDhCQUFBLEUsZ0JBQUEsRUFBeUMsVSwyQkFDakN6RSxDQUFBLENBQUUsSUFBRixFLGVBQUEsRSxlQUFBLEMsRUFDQTRFLFNBQUEsQyxnQkFBQSxFQUFjNUUsQ0FBQSxDQUFFLElBQUYsRSxnQkFBQSxFLGVBQUEsQ0FBZCxDLEVBRlIsQyxDQUtBeUUsU0FBQSxDLGdCQUFBLEVBQWNHLFNBQWQsQyxFQUVBRixTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsVUFBQSxDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsT0FBQSxDLENBS0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQyxFQTFFcUIsQyxhQTZFN0IsQ0FBWUcsU0FBWixDQUF5QkMsU0FBekIsQ0FBK0JDLFNBQS9CLEMsMkJBQ0ksSUFBSUMsU0FBQSxDQUFPLElBQVgsQ0FDQSxNQUFNQyxTQUFBLENBQU9qRixDQUFBLEMsZUFBQSxFLGVBQUEsRSxxREFBQSxDQUFiLEMsT0FDQWlGLFNBQUEsQyxlQUFBLEVBQVlILFMsQ0FDWkcsU0FBQSxDLGdCQUFBLEVBQWdCRixTLENBQ2hCRixTQUFBLEMsZ0JBQUEsRUFBcUJLLFNBQUQsRSwyQkFDWixPQUFPQSxTQUFQLEcsa0JBQ0EsQ0FBQUEsU0FBQSxDQUFNLEMsT0FBRSxDQUFPQSxTQUFULEMsT0FBYyxDQUFPQSxTQUFyQixDQUFOLEMsQ0FFSixJQUFJQyxTQUFBLENBQUtuRixDQUFBLEMsMkJBQUEsRSxnQkFBQSxFLGVBQUEsQ0FBb0NrRixTQUFBLEMsZUFBQSxDQUFwQyxFLGdCQUFBLEVBQXdERCxTQUF4RCxDQUFULENBQ0lDLFNBQUEsQyxPQUFBLEMsRUFDQUMsU0FBQSxDLGVBQUEsRUFBUUQsU0FBQSxDLE9BQUEsQ0FBUixDLENBRUFBLFNBQUEsQyxlQUFBLEMsRUFDQUMsU0FBQSxDLGVBQUEsRSxlQUFBLENBQWlCRCxTQUFBLEMsZUFBQSxDQUFqQixDLElBRUFBLFNBQUEsQyxnQkFBQSxDLEtBQ0lBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsR0FBQSxJLElBQ0FsRixDQUFBLENBQUVrRixTQUFBLEMsZ0JBQUEsQ0FBRixFLGdCQUFBLEVBQXNCQyxTQUF0QixDLE1BRUtELFNBQUEsQyxnQkFBQSxFLFNBQUEsRSxHQUFBLElBQTBCLEMsSUFDL0JsRixDQUFBLEMsZ0JBQUEsQ0FBUyxDLE9BQ0wsQyxnQkFESyxDLE9BRUwsQyxlQUFPLENBQXFCa0YsU0FBQSxDLGdCQUFBLENBQXJCLEMsbUNBQUEsQ0FBZ0VBLFNBQUEsQyxNQUFBLENBQWhFLEMsSUFGRixDQUFULEUsZ0JBQUEsRUFHYUMsU0FIYixDLENBTUFuRixDQUFBLEMsZ0JBQUEsQ0FBUyxDLE9BQUUsQyxnQkFBTyxDQUE0QmtGLFNBQUEsQyxnQkFBQSxDQUFyQyxDQUFULEUsZ0JBQUEsRUFBb0VDLFNBQXBFLEMsT0FJSkEsU0FBQSxDLGVBQUEsRUFBTyxDLGFBQUUsQyxlQUFGLENBQVAsQyxDQUVBLENBQUNELFNBQUEsQyxNQUFBLENBQUQsRUFBYSxDQUFDQSxTQUFBLEMsZUFBQSxDLEVBQ2RDLFNBQUEsQyxNQUFBLEVBQVFELFNBQUEsQyxlQUFBLENBQVIsQyxDQUVKLElBQUlFLFNBQUosQ0FDSU4sU0FBQSxDLFVBQUEsQyxFQUNBLENBQUFNLFNBQUEsQ0FBS3BGLENBQUEsQyxnQkFBQSxFLGVBQUEsRSxnQkFBQSxDLE1BQUEsRSxnQkFBQSxFLGVBQUEsQ0FFY2tGLFNBQUEsQyxlQUFBLENBRmQsRSxnQkFBQSxFQUdVQyxTQUhWLEUsSUFBQSxFLFdBQUEsQ0FJZ0IsU0FBVUUsU0FBVixDLDJCQUNqQkEsU0FBQSxDLGdCQUFBLEcsRUFMQyxDQUFMLEMsQ0FRSkYsU0FBQSxDLElBQUEsRSxPQUFBLENBQWUsU0FBVUcsU0FBVixDLDJCQUNYQSxTQUFBLEMsZ0JBQUEsRyxDQUNBQSxTQUFBLEMsZ0JBQUEsRyxDQUNJLENBQUNSLFNBQUEsQyxnQkFBQSxDLEVBQ0RDLFNBQUEsQ0FBU0csU0FBQSxDLGVBQUEsQ0FBVCxDLENBQ0FGLFNBQUEsQyxnQkFBQSxFQUFlQyxTQUFmLEMsRUFHQUcsU0FBQSxDLGVBQUEsRSxlQUFBLENBQW1CLENBQUNBLFNBQUEsQyxlQUFBLEUsU0FBQSxDQUFwQixDLEVBUlIsQyxFQXpDSixDLENBcURBSCxTQUFBLEMsZUFBQSxFQUFTLEMsU0FDTCxDLGdCQURLLENBQVQsQyxDQUdBQSxTQUFBLEMsSUFBQSxFLGdCQUFBLENBQW1CLFNBQVVNLFNBQVYsQyw4QkFDWEEsU0FBQSxDLGdCQUFBLEksS0FDQUEsU0FBQSxDLGdCQUFBLEcsQ0FFQXZGLENBQUEsQ0FBRSxJQUFGLEUsZ0JBQUEsRSxlQUFBLEUsZUFBQSxJLFNBQUEsRSxnQkFBQSxDLFNBRUt1RixTQUFBLEMsU0FBQSxJLEtBQ0xBLFNBQUEsQyxnQkFBQSxHLENBRUF2RixDQUFBLENBQUUsSUFBRixFLFVBQUEsRSxRQUFBLEUsZ0JBQUEsSSxnQkFBQSxFLGdCQUFBLEMsTUFFS3VGLFNBQUEsQyxnQkFBQSxJLE9BRUxBLFNBQUEsQyxnQkFBQSxHLENBQ0FQLFNBQUEsQyxnQkFBQSxFQUFlQyxTQUFmLEMsR0FFSk0sU0FBQSxDLGdCQUFBLEcsRUFoQkosQyxDQWtCT04sUyxFQTVKa0IsQyxhQThKN0IsQyxHQTlKNkIsQyxXQStKN0IsQ0FBVU8sU0FBVixDQUFnQkMsU0FBaEIsQyw4QkFDUSxLLGdCQUFBLEMsRUFDQSxLLGdCQUFBLEUsR0FBQSxDQUNBLE8sQ0FFSixJQUFJQyxTQUFBLENBQU8sSUFBWCxDQUNJQyxTQUFBLENBQU1GLFNBQUEsQyxnQkFBQSxHQURWLENBRUlHLFNBQUEsQ0FBU0gsU0FBQSxDLGdCQUFBLEdBRmIsQ0FHSUksU0FBQSxDQUFhTCxTQUFBLEMsZ0JBQUEsR0FIakIsQ0FJSU0sU0FBQSxDQUFNRixTQUFBLENBQVNELFNBQUEsQyxLQUFBLENBSm5CLENBS0lHLFNBQUEsQ0FBTUQsU0FBTixDQUFtQjdGLENBQUEsQ0FBRTJFLFFBQUYsRSxnQkFBQSxHQUFuQixDQUE2QzNFLENBQUEsQ0FBRStGLE1BQUYsRSxRQUFBLEcsRUFDN0MsQ0FBQUQsU0FBQSxFQUFPQSxTQUFBLENBQU1ELFNBQU4sQ0FBbUI3RixDQUFBLENBQUUrRixNQUFGLEUsZ0JBQUEsR0FBbkIsQyxHQUFQLEMsQ0FFQUQsU0FBQSxDLE1BQ0FOLFNBQUEsQyxnQkFBQSxFQUFZSyxTQUFBLENBQWFDLFNBQXpCLEMsQ0FDQUEsU0FBQSxDLEtBRUpOLFNBQUEsQyxlQUFBLEVBQVMsQyxLQUNMLENBQUtNLFNBQUEsQyxJQURBLEMsTUFFTCxDQUFNSCxTQUFBLEMsZ0JBQUEsRSxJQUZELENBQVQsQyxDQUlBSCxTQUFBLEMsV0FBQSxFLElBQUEsQyxDQUNBLEssZ0JBQUEsRUFBWSxVLDJCQUNSRSxTQUFBLEMsZ0JBQUEsRSxlQUFBLEUseUJBQUEsQyxDQUNBMUYsQ0FBQSxDQUFFMkUsUUFBRixFLElBQUEsRSxtREFBQSxDQUFvRSxTQUFVcUIsU0FBVixDLDJCQUM1RCxDQUFDaEcsQ0FBQSxDQUFFZ0csU0FBQSxDLFFBQUEsQ0FBRixFLGdCQUFBLEVBQXdCUixTQUF4QixFLFFBQUEsQyxFQUNERSxTQUFBLEMsZ0JBQUEsRUFBZUYsU0FBZixDLENBRUF4RixDQUFBLENBQUVnRyxTQUFBLEMsUUFBQSxDQUFGLEUsZ0JBQUEsRUFBd0JQLFNBQXhCLEUsUUFBQSxDLEdBQ0FDLFNBQUEsQyxhQUFBLEUsS0FDQU0sU0FBQSxDLGdCQUFBLEcsR0FOUixDLEVBRkosQyxFQXJMeUIsQyxlQWtNN0IsRSwyQkFDVUMsU0FBQSxDQUFPLEksQ0FDYixLLFdBQUEsRUFBZUEsU0FBQSxDLGVBQUEsQ0FBZixDQUEyQkEsU0FBQSxDLGdCQUFBLENBQTNCLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsTUFBQSxHQURBLENBRUEsTUFBTUMsU0FBQSxDQUFPRCxTQUFBLEMsZUFBQSxDQUFiLENBQ0EsSUFBSUUsU0FBQSxDQUFXRixTQUFBLEMsZUFBQSxFLGdCQUFBLEUsZ0JBQWdCLENBQWFDLFNBQWIsQyxNQUFoQixDQUFmLENBQ0F4SCxVQUFBLENBQVcsVSwyQkFDUHlILFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsRUFESixDLElBQUEsQyxFQXhNeUIsQyxXQTRNN0IsRSwyQkFDVUMsU0FBQSxDQUFPLEksQ0FDYkEsU0FBQSxDLGdCQUFBLEUsTUFBQSxFLGdCQUFBLENBQXFDLEMsR0FBckMsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsQ0FBa0UsU0FBVUMsU0FBVixDLDJCQUM5REEsU0FBQSxDLGdCQUFBLEcsRUFESixDQURBLENBSUlELFNBQUEsQyxlQUFBLEMsRUFDQUEsU0FBQSxDLGVBQUEsRSxnQkFBQSxHLENBR0osTUFBTUUsU0FBQSxDQUFXLENBQ2IsQyxPQUFFLEMsZUFBRixDLE9BQWlCLEMsR0FBakIsQyxPQUE2QixDLGdCQUE3QixDLE1BQTZELEMsMENBQTdELENBRGEsQ0FFYixDLE9BQ0ksQyxnQkFESixDLE9BRUksQyxLQUZKLEMsT0FHSSxDLGdCQUhKLEMsTUFJSSxDLGVBSkosQ0FGYSxDQVFiLEMsT0FBRSxDLGdCQUFGLEMsT0FBbUIsQyxHQUFuQixDLE1BQStCLEMsZ0JBQS9CLENBUmEsQ0FTYixDLE9BQUUsQyxnQkFBRixDLE9BQTJCLEMsSUFBM0IsQyxNQUF3QyxDLGdCQUF4QyxDQVRhLENBVWIsQyxPQUFFLEMsb0NBQUYsQyxPQUFzQyxDLGdCQUF0QyxDLE1BQW9ELEMsZ0JBQXBELENBVmEsQ0FXYixDLE9BQUUsQyxnQkFBRixDLE9BQXVCLEMsR0FBdkIsQyxNQUFtQyxDLG9GQUFuQyxDQVhhLENBWWIsQyxPQUNJLEMsMkJBREosQyxPQUVJLEMsSUFGSixDLE1BR0ksQyxlQUhKLENBWmEsQ0FBakIsQ0FrQk1DLFNBQUEsQ0FBSXJLLFNBQUEsQ0FBdUJrSyxTQUFBLEMsZ0JBQUEsRSxLQUFBLEdBQXZCLENBbEJWLENBbUJNSSxTQUFBLENBQUlGLFNBQUEsQyxnQkFBQSxFQUFlRyxTQUFELEVBQU9BLFNBQUEsQyxlQUFBLElBQVlGLFNBQWpDLENBbkJWLENBb0JBSCxTQUFBLEMsY0FBQSxFLGdCQUFBLEksZ0JBQUEsRSxnQkFBZ0QsQ0FBQyxDQUFBSSxTQUFBLEdBQU0sSUFBTixFQUFjQSxTQUFBLEdBQU0sSyxHQUFwQixDQUE2QixLLEdBQTdCLENBQXNDQSxTQUFBLEMsZUFBQSxDQUF0QyxDQUFELEUsRUFBQSxDLGlCQUFnRSxDQUFDLENBQUFBLFNBQUEsR0FBTSxJQUFOLEVBQWNBLFNBQUEsR0FBTSxLLEdBQXBCLENBQTZCLEssR0FBN0IsQ0FBc0NBLFNBQUEsQyxnQkFBQSxDQUF0QyxDQUFELEUsRUFBQSxDLGlCQUFoSCxDLENBQ0FKLFNBQUEsQyxlQUFBLEVBQXdCRyxTQUR4QixDQUVBLE1BQU1HLFNBQUEsQ0FBSyxJQUFYLENBQ0FOLFNBQUEsQyxlQUFBLEVBQWEsSyxlQUFBLEVBQWlCRSxTQUFqQixDQUEyQixFQUEzQixDQUFnQ0ssU0FBRCxFLDJCQUNsQ0MsU0FBQSxDQUFPdkssU0FBQSxDQUFPc0ssU0FBUCxDLENBQ1RDLFMsRUFFQUYsU0FBQSxDLGdCQUFBLEVBQVVFLFNBQVYsQyxDQUVKLE1BQU1DLFNBQUEsQ0FBSVAsU0FBQSxDLGdCQUFBLEVBQWVRLFNBQUQsRUFBT0EsU0FBQSxDLGVBQUEsSUFBWUgsU0FBakMsQ0FBVixDQUNBUCxTQUFBLEMsa0JBQUEsRUFBd0JPLFMsQ0FDeEJQLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEksZ0JBQUEsRSxnQkFBZ0QsQ0FBQyxDQUFBUyxTQUFBLEdBQU0sSUFBTixFQUFjQSxTQUFBLEdBQU0sSyxHQUFwQixDQUE2QixLLEdBQTdCLENBQXNDQSxTQUFBLEMsZUFBQSxDQUF0QyxDQUFELEUsRUFBQSxDLGlCQUFnRSxDQUFDLENBQUFBLFNBQUEsR0FBTSxJQUFOLEVBQWNBLFNBQUEsR0FBTSxLLEdBQXBCLENBQTZCLEssR0FBN0IsQ0FBc0NBLFNBQUEsQyxNQUFBLENBQXRDLENBQUQsRSxFQUFBLEMsaUJBQWhILEMsRUFSUyxDLENBVWJULFNBQUEsQyxlQUFBLEUsVUFBQSxFQUFvQnpCLFFBQUEsQyxnQkFBQSxDQUFwQixDLENBQ0F5QixTQUFBLEMsZUFBQSxFLGdCQUFBLEcsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsZUFBQSxHLEVBelB5QixDLE1BMlA3QixFLENBQ0ksTUFBTVcsU0FBQSxDQUFPLElBQWIsQyxPQUNPMUssU0FBQSxDQUFPMEssU0FBQSxDLGtCQUFBLENBQVAsQyxFQTdQa0IsQyxTQStQN0IsRSwyQkFFVUMsU0FBQSxDQUFPLEksQ0FDYkEsU0FBQSxDLGdCQUFBLEVBQWMsSyxlQUFBLEMsQ0FDZEEsU0FBQSxDLFFBQUEsRSxLQUFBLEUsUUFBQSxDLGdCQUFBLEMsQ0FFQUEsU0FBQSxDLGFBQUEsRUFBbUJBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZUFBQSxFLGdCQUFBLEksZUFBQSxFLGVBQUEsQyxDQUVuQkEsU0FBQSxDLFFBQUEsRUFBY2hILENBQUEsQyxnQkFBQSxDLENBQ2RnSCxTQUFBLEMsUUFBQSxFLGVBQUEsRSxnQkFBQSxDLENBRUFBLFNBQUEsQyxnQkFBQSxFLGFBQUEsRUFBd0JBLFNBQUEsQyxRQUFBLENBQXhCLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEVBQW1CaEgsQ0FBQSxDLFFBQUEsRSxlQUFBLEUsZ0JBQUEsQyxDQUNuQmdILFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQW1CQSxTQUFBLEMsZ0JBQUEsQ0FBbkIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUF3QkEsU0FBQSxDLGdCQUFBLENBQXhCLEMsQ0FJQUEsU0FBQSxDLGdCQUFBLEVBQXNCaEgsQ0FBQSxDLHNIQUFBLEMsQ0FDdEJnSCxTQUFBLEMsUUFBQSxFLE9BQUEsRUFBa0JBLFNBQUEsQyxnQkFBQSxDQUFsQixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxDQUFnQyxVLFFBQ3JCMVEsU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcseUJBQ25DLElBQUkyUSxTQUFKLENBQ0EsSUFBSUMsU0FBQSxDLEdBQUosQ0FDSUMsU0FESixDQUVJLENBQUNILFNBQUEsQyxnQkFBQSxFLElBQUEsRSxVQUFBLEMsR0FDREEsU0FBQSxDLGVBQUEsRSxNQUFBLEcsQ0FFQUcsU0FBQSxDQUFhLE1BQU1ILFNBQUEsQyxtQkFBQSxHLENBQ2YsQ0FBQUcsU0FBQSxHQUFlSCxTQUFBLEMsZUFBQSxDQUFmLEVBQXNDLENBQUMsQ0FBQUMsU0FBQSxDQUFLRCxTQUFBLEMsZUFBQSxDQUFMLENBQUQsR0FBOEIsSUFBOUIsRUFBc0NDLFNBQUEsR0FBTyxLLEdBQTdDLENBQXNELEssR0FBdEQsQ0FBK0RBLFNBQUEsQyxlQUFBLENBQS9ELENBQUQsR0FBK0VFLFNBQUEsQyxlQUFBLENBQXBILEMsRUFDQSxPQUFNSCxTQUFBLEMsZUFBQSxHQUFOLEMsQ0FFSkUsU0FBQSxDLE1BRUpGLFNBQUEsQyxXQUFBLEUsUUFBQSxHLENBQ0FFLFNBQUEsRUFBeUIsT0FBTW5GLFNBQUEsQ0FBZWlGLFNBQWYsQ0FBcUJHLFNBQXJCLENBQU4sQyxFQWR0QixDLEVBRFgsQyxDQW9CQUgsU0FBQSxDLGVBQUEsRUFBa0JoSCxDQUFBLEMsZUFBQSxDLENBQ2xCZ0gsU0FBQSxDLGdCQUFBLEUsZUFBQSxFQUFrQkEsU0FBQSxDLFlBQUEsQ0FBbEIsQyxDQUNBQSxTQUFBLEMsWUFBQSxFLElBQUEsRSxPQUFBLENBQTRCLEksMkJBQ2xCSSxTQUFBLENBQU9KLFNBQUEsQyxnQkFBQSxHLElBQ1QsQ0FBQ0ksUyxDQUNELE9BRUosSyxnQkFBQSxFQUFZQSxTQUFaLEMsRUFMSixDQXZDQSxDQWdEQSxNQUFNQyxTQUFBLENBQWtCQyxTQUFELEVBQVdoUixTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVywyQkFDeERpUixTQUFBLENBQU8sSSxDQUNQQyxTQUFBLENBQU9ELFNBQUEsQyxnQkFBQSxHLElBQ1QsQ0FBQ0MsUyxDQUNELE9BR0osTUFBTUMsU0FBQSxDQUFpQnBGLFNBQUEsQ0FBZWtGLFNBQWYsQ0FBdkIsQ0FDTSxDQUFFbEosSUFBQSxDQUFBcUosU0FBRixDQUFRdkosSUFBQSxDQUFBd0osU0FBUixFQUFpQixNQUFNbkwsU0FBQSxDQUFpQmlMLFNBQWpCLENBQWlDSCxTQUFqQyxDQUQ3QixDLEdBRUlJLFNBQUEsQyxlQUFBLEksS0FDQSxPLEdBRUFDLFNBQUEsQyxlQUFBLEUsZ0JBQUEsRUFBc0IsTUFBdEIsQyxFQUNBLE1BQU1DLFNBQUEsQ0FBaUJsTSxTQUFBLENBQWFpTSxTQUFiLENBQW1CSCxTQUFuQixDQUF2QixDQUNBRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFnQkssU0FBaEIsQyxDQUNBTCxTQUFBLEMsZ0JBQUEsRSxTQUFBLEUsZ0JBQUEsQyxHQWYwQixDQUFsQyxDLENBc0JJUCxTQUFBLEMsZ0JBQUEsRUFBaUJoSCxDQUFBLEMsZUFBQSxDLENBQ2pCZ0gsU0FBQSxDLGdCQUFBLEUsUUFBQSxFQUFtQkEsU0FBQSxDLGdCQUFBLENBQW5CLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEVBQXNCaEgsQ0FBQSxDLGVBQUEsRSxnQkFBQSxFQUE0RGdILFNBQUEsQyxXQUFBLENBQTVELEMsQ0FDdEJoSCxDQUFBLEMsd0VBQUEsRSxnQkFBQSxFLElBQUEsRSxnQkFBQSxFQUFtRmdILFNBQUEsQyxnQkFBQSxDQUFuRixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxDQUFnQyxTQUFVYSxTQUFWLEMsMkJBQzVCQSxTQUFBLEMsZ0JBQUEsRyxDQUNBQSxTQUFBLEMsZ0JBQUEsRyxDQUNBYixTQUFBLEMsZ0JBQUEsRyxFQUhKLEMsQ0FLQUEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLENBQ21CLFNBQVVjLFNBQVYsQywyQkFDWEEsU0FBQSxDLGdCQUFBLEksTUFFQWQsU0FBQSxDLGdCQUFBLEcsQ0FFSmMsU0FBQSxDLGdCQUFBLEcsRUFOSixFLElBQUEsRSxnQkFBQSxDQVFpQixVLDJCQUNiZCxTQUFBLEMsZ0JBQUEsRSxlQUFBLEUsZ0JBQUEsQyxFQVRKLEUsSUFBQSxFLGdCQUFBLENBV2dCLFUsMkJBR1pBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQyxFQWRKLEMsQ0FpQkFBLFNBQUEsQyxnQkFBQSxFQUFvQmhILENBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQWlFZ0gsU0FBQSxDLGdCQUFBLENBQWpFLEMsRUFFeEIsSyxnQkFBQSxJQUNJLENBQUNBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQyxFQUNEQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEMsbURBQUEsQyxDQUdKQSxTQUFBLEMsZUFBQSxFQUFhaEgsQ0FBQSxDLGdCQUFBLEMsQ0FDYmdILFNBQUEsQyxlQUFBLEUsTUFBQSxHLENBQ0FBLFNBQUEsQyxRQUFBLEUsZ0JBQUEsRUFBbUJBLFNBQUEsQyxlQUFBLENBQW5CLEMsQ0FHQUEsU0FBQSxDLGdCQUFBLEVBQWlCaEgsQ0FBQSxDLGdCQUFBLEUsVUFBQSxFLG1CQUFBLEUsZ0JBQUEsSSxnQkFBQSxFQUEwRGdILFNBQUEsQyxnQkFBQSxDQUExRCxDLENBQ2pCQSxTQUFBLEMsZ0JBQUEsRUFBYWhILENBQUEsQywwQ0FBQSxFLFVBQUEsRUFBOENnSCxTQUFBLEMsZ0JBQUEsQ0FBOUMsQyxDQUViLEssT0FBQSxHQVJBLENBVUEsTUFBTWUsU0FBQSxDQUFlLENBQUNDLFNBQUQsQ0FBTUMsU0FBTixHLDJCQUNYQyxTQUFBLEMsS0FDQUMsU0FBQSxDLEtBQ0FDLFNBQUEsQ0FBYUosU0FBQSxDLGdCQUFBLEcsQ0FDYkssU0FBQSxDQUFJSixTLElBQ05JLFNBQUEsQyxnQkFBQSxHQUFXRCxTQUFBLEMsTUFBQSxDQUFYLEVBQ0FDLFNBQUEsQyxnQkFBQSxHQUFXRCxTQUFBLEMsZ0JBQUEsRUFBa0JGLFNBRDdCLEVBRUFHLFNBQUEsQyxnQkFBQSxHQUFXRCxTQUFBLEMsS0FBQSxDQUZYLEVBR0FDLFNBQUEsQyxPQUFBLEdBQVdELFNBQUEsQyxLQUFBLEVBQWlCRCxTLHVCQVJwQyxDQWFNRyxTQUFBLENBQW1CQyxTQUFELEVBQVNqUyxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyw4QkFDekRpUyxTQUFBLEMsZUFBQSxFLGdCQUFBLEMsQ0FDQWpILFNBQUEsQ0FBVTBGLFNBQVYsQ0FBZ0J1QixTQUFoQixDLFNBRUtBLFNBQUEsQyxlQUFBLEUsZ0JBQUEsQyxDQUVMQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsRyxDQUVBQSxTQUFBLEMsZ0JBQUEsRSx3QkFBQSxDLFNBRUtBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxJLGdCQUFBLEUsSUFDTEEsU0FBQSxDLFVBQUEsRSxJQUFBLEUsUUFBQSxHLENBRUFBLFNBQUEsQyxhQUFBLEUsZUFBQSxDLFNBYnlCLENBYmpDLENBOEJBdkIsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLFVBQUEsQyxJQUFBLENBQWdDLFNBQVV3QixTQUFWLEMsMkJBQzVCLElBQUlDLFNBQUosQ0FBUUMsU0FBUixDQUNBRixTQUFBLEMsZ0JBQUEsSUFDQSxJQUFJRyxTQUFBLENBQU0zSSxDQUFBLENBQUUsSUFBRixDQUFWLEMsR0FDSStILFNBQUEsQ0FBYVksU0FBYixDQUFrQkgsU0FBbEIsQyxDQUNBRixTQUFBLENBQWdCSyxTQUFoQixDLE1BR0EsTUFBTUMsU0FBQSxDQUFRRCxTQUFBLEMsTUFBQSxFLGVBQUEsQ0FBZCxDQUNNRSxTQUFBLENBQVlGLFNBQUEsQyxNQUFBLEUsV0FBQSxDQURsQixDLEdBRUkzQixTQUFBLEMsZ0JBQUEsRSxlQUFBLEdBQTZCLENBQUNBLFNBQUEsQyxTQUFBLEUsZUFBQSxFQUEwQjZCLFNBQTFCLEMsQ0FDOUIsT0FFSjdCLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsV0FBQSxDQUE4QjZCLFNBQTlCLEMsQ0FDQyxDQUFDLENBQUFKLFNBQUEsQ0FBS0ksU0FBQSxDLGVBQUEsQ0FBTCxDQUFELEdBQWlDLElBQWpDLEVBQXlDSixTQUFBLEdBQU8sSyxHQUFoRCxDQUF5RCxLLEdBQXpELENBQWtFQSxTQUFBLEMsZUFBQSxDQUFsRSxDQUFELEVBQWdGLENBQUMsQ0FBQUMsU0FBQSxDQUFLRyxTQUFBLEMsZ0JBQUEsQ0FBTCxDQUFELEdBQWdDLElBQWhDLEVBQXdDSCxTQUFBLEdBQU8sSyxHQUEvQyxDQUF3RCxLLEdBQXhELENBQWlFQSxTQUFBLEMsZ0JBQUEsQ0FBakUsQ0FBaEYsRUFBNkpHLFNBQUEsQyxlQUFBLEUsZUFBQSxHLENBRTdKeEIsU0FBQSxDQUFldUIsU0FBZixDLENBR0E1QixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLEdBbkJSLEMsQ0FzQkFBLFNBQUEsQyxPQUFBLEUsSUFBQSxFLGdCQUFBLEMsSUFBQSxDQUE2QixTQUFVOEIsU0FBVixDLENBQ3pCQSxTQUFBLEMsaUJBQUEsSUFDQSxJQUFJQyxTQUFBLENBQU0vSSxDQUFBLENBQUUsSUFBRixDQUFWLENBQ0krSCxTQUFBLENBQWFnQixTQUFiLENBQWtCRCxTQUFsQixDLEVBQ0FSLFNBQUEsQ0FBZ0JTLFNBQWhCLEMsQ0FFSm5JLFNBQUEsQ0FBYW9HLFNBQWIsQ0FBbUIrQixTQUFuQixDLEVBTkosQyxDQVFBL0ksQ0FBQSxDQUFFMkUsUUFBRixFLElBQUEsRSxnQkFBQSxDQUF3QixTQUFVcUUsU0FBVixDLDJCQUVoQixDQUFDaEosQ0FBQSxDQUFFZ0osU0FBQSxDLFFBQUEsQ0FBRixFLGdCQUFBLEVBQXdCaEMsU0FBQSxDLGdCQUFBLENBQXhCLEUsZ0JBQUEsQyxFQUNEQSxTQUFBLEMsV0FBQSxFLGdCQUFBLEcsRUFIUixDLEVBL2F5QixDQUFqQyxDLEVBZkosQ0FrZE1pQyxTQUFBLENBQXdCLEksMkJBQ3BCQyxTQUFBLENBQVlsSixDQUFBLEMsZUFBQSxDLENBQ1ptSixTQUFBLENBQWFELFNBQUEsQyxnQkFBQSxHLENBQ2JFLFNBQUEsQ0FBVWpNLEdBQUEsQyxPQUFBLEUsZ0JBQUEsRUFBZWdNLFNBQWYsQyxJQUNaLENBQUNDLFMsQ0FDRCxPQUFPdkgsU0FBUCxDQUdKLE1BQU0sQ0FBRXJJLFFBQUEsQ0FBQTZQLFNBQUYsQ0FBWUMsWUFBQSxDQUFBQyxTQUFaLENBQTBCQyxjQUFBLENBQUFDLFNBQTFCLENBQTBDQyxnQkFBQSxDQUFBQyxTQUExQyxDQUE0REMsV0FBQSxDQUFBQyxTQUE1RCxDQUF5RUMsZ0JBQUEsQ0FBQUMsU0FBekUsRUFBOEZYLFNBQXBHLENBQ01ZLFNBQUEsQ0FBVyxDLFVBQ2IsQ0FBQVgsU0FEYSxDLGNBRWIsQ0FBQUUsU0FGYSxDLGdCQUdiLENBQUFFLFNBSGEsQyxrQkFJYixDQUFBRSxTQUphLEMsYUFLYixDQUFBRSxTQUxhLEMsa0JBTWIsQ0FBQUUsU0FOYSxDQURqQixDLE9BU09DLFMsRUFuZVgsQ0FxZU1DLFNBQUEsQ0FBd0IsSSwyQkFDcEJDLFNBQUEsQ0FBWWxLLENBQUEsQyxlQUFBLEMsQ0FDWm1LLFNBQUEsQ0FBYUQsU0FBQSxDLGdCQUFBLEcsQ0FDYkUsU0FBQSxDQUFhbkIsU0FBQSxFLElBQ2YsQ0FBQ21CLFMsUUFDTXZJLFMsQ0FFWCxNQUFNd0ksU0FBQSxDQUFtQkQsU0FBQSxDLGVBQUEsQ0FBekIsQyxPQUNPblEsTUFBQSxDLGVBQUEsRUFBYyxDLGtCQUFFLENBQUFvUSxTQUFGLEMsSUFBb0IsQ0FBSUYsU0FBeEIsQ0FBZCxDQUFvREMsU0FBcEQsQyxFQTdlWCxDQStlTUUsU0FBQSxDQUErQixJLE9BQzFCLEMsY0FDSCxDQUFjTCxTQURYLEMsRUFoZlgsQ0FxZkE5TSxHQUFBLEMsZ0JBQUEsRSxlQUFBLEUsZUFBQSxDQUE2QyxDLFVBQ3pDLEMsZ0JBRHlDLEMsT0FFekMsQyxTQUZ5QyxDLE9BR3pDLEMsT0FIeUMsQyxNQUl6QyxDLGdCQUp5QyxDLGNBS3pDLEMsZUFMeUMsQyxVQU16QyxDQUFVLEMsUUFDTixDQUFRLEMsT0FBRSxDLEdBQUYsQ0FERixDLFFBRU4sQ0FBUSxDLE9BQUUsQyxHQUFGLENBRkYsQyxNQUlOLENBQU0sQyxPQUFFLEMsRUFBRixDQUpBLEMsVUFLTixDQUFVLEMsT0FBRSxDLEVBQUYsQyxVQUFhLEMsSUFBYixDLE1BQTZCLEMsZ0JBQTdCLENBTEosQyxhQU9OLENBQWEsQyxPQUFFLEMsT0FBRixDLFVBQWtCLEMsSUFBbEIsQ0FQUCxDLFFBUU4sQ0FBUSxDLE9BQUUsQyxFQUFGLEMsVUFBYSxDLEdBQWIsQ0FSRixDLFlBU04sQ0FBWSxDLE9BQUUsQyxPQUFGLEMsVUFBa0IsQyxJQUFsQixDQVROLENBTitCLEMsU0FrQnpDLEMsR0FsQnlDLEMsT0FtQnpDLEUsUUFDVyxLLE1BQUEsRywyQkFwQjhCLEMsWUFzQnpDLEUsa0NBQ1csSyxnQkFBQSxFLGdCQUFBLEMsSUF2QjhCLEMsZUF5QnpDLEUsMkJBQ1VvTixTQUFBLENBQU8sSSxDQUNiMUcsU0FBQSxFLENBQ0EwRyxTQUFBLEMsZ0JBQUEsRSxHQURBLENBRUEsTUFBTUMsU0FBQSxDQUFVeEssQ0FBQSxDLGVBQUEsQ0FBaEIsQ0FDQXdLLFNBQUEsQyxhQUFBLEVBQW9CdlEsTUFBQSxDLFFBQUEsRUFBY0EsTUFBQSxDLFFBQUEsRUFBYyxFQUFkLENBQWtCcVEsU0FBQSxFQUFsQixDQUFkLENBQWlFLEMsY0FBRSxDQUFhRyxTQUFiLEMsa0NBQ3hFQSxTQUFBLEMsZ0JBQUEsSSxpQkFEc0UsQ0FBakUsQ0FBcEIsQyxFQTlCcUMsQyxZQWtDekMsRSxFQWxDeUMsQ0FBN0MsQyxFQWwvQkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCwgSXRlcmF0b3IgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBjb25zdCBPcmdhbml6ZXNSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNVwiO1xuICAgIGNvbnN0IEZvbGRlclR5cGUgPSBcIm5zPTA7aT02MVwiO1xuICAgIGNvbnN0IEhhc0NvbXBvbmVudFJlZk5vZGVJZCA9IFwibnM9MDtpPTQ3XCI7XG4gICAgY29uc3QgSGFzUHJvcGVydHlSZWZOb2RlSWQgPSBcIm5zPTA7aT00NlwiO1xuICAgIGNvbnN0IEhhc0NoaWxkUmVmTm9kZUlkID0gXCJucz0wO2k9MzRcIjtcbiAgICBjb25zdCBIYXNTdWJ0eXBlUmVmTm9kZUlkID0gXCJucz0wO2k9NDVcIjtcbiAgICBjb25zdCBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZCA9IFwibnM9MDtpPTQwXCI7XG5cbiAgICB2YXIgQnJvd3NlRGlyZWN0aW9uO1xuICAgIChmdW5jdGlvbiAoQnJvd3NlRGlyZWN0aW9uKSB7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJGb3J3YXJkXCJdID0gMF0gPSBcIkZvcndhcmRcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmVyc2VcIl0gPSAxXSA9IFwiSW52ZXJzZVwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiQm90aFwiXSA9IDJdID0gXCJCb3RoXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZhbGlkXCJdID0gM10gPSBcIkludmFsaWRcIjtcbiAgICB9KShCcm93c2VEaXJlY3Rpb24gfHwgKEJyb3dzZURpcmVjdGlvbiA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzcztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzcykge1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVW5zcGVjaWZpZWRcIl0gPSAwXSA9IFwiVW5zcGVjaWZpZWRcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzIHx8IChOb2RlQ2xhc3MgPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3NNYXNrO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzTWFzaykge1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzTWFzayB8fCAoTm9kZUNsYXNzTWFzayA9IHt9KSk7XG4gICAgdmFyIFJlc3VsdE1hc2s7XG4gICAgKGZ1bmN0aW9uIChSZXN1bHRNYXNrKSB7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAxXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJJc0ZvcndhcmRcIl0gPSAyXSA9IFwiSXNGb3J3YXJkXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIk5vZGVDbGFzc1wiXSA9IDRdID0gXCJOb2RlQ2xhc3NcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiQnJvd3NlTmFtZVwiXSA9IDhdID0gXCJCcm93c2VOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkRpc3BsYXlOYW1lXCJdID0gMTZdID0gXCJEaXNwbGF5TmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJUeXBlRGVmaW5pdGlvblwiXSA9IDMyXSA9IFwiVHlwZURlZmluaXRpb25cIjtcbiAgICB9KShSZXN1bHRNYXNrIHx8IChSZXN1bHRNYXNrID0ge30pKTtcbiAgICAvLyAgY29uc3QgcSA9IFJlZmVyZW5jZVR5cGVJZHMuT3JnYW5pemVzO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVOb2RlSWQobm9kZUlkTGlrZSkge1xuICAgICAgICBzd2l0Y2ggKG5vZGVJZExpa2UpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPcmdhbml6ZXNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gT3JnYW5pemVzUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1Byb3BlcnR5XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1Byb3BlcnR5UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NvbXBvbmVudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDb21wb25lbnRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ2hpbGRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ2hpbGRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzU3VidHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNTdWJ0eXBlUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1R5cGVEZWZpbml0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SWNvbiA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZWZlcmVuY2Uubm9kZUNsYXNzKSB7XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IE9yZ2FuaXplc1JlZk5vZGVJZCkgO1xuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UudHlwZURlZmluaXRpb24gPT09IEZvbGRlclR5cGUgfHwgcmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gXCJpPTYxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1mb2xkZXJcIiwgY29sb3I6IFwicmdiYSg2MSwgNjAsIDQsIDAuNTI1KVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIlNlYUdyZWVuXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNDb21wb25lbnRSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJTdGVlbEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNQcm9wZXJ0eVJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkRvZGdlckJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJNZXRob2RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWNvZ1wiLCBjb2xvcjogXCJTYW5keUJyb3duXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1zbGlkZXJzXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIkRhdGFUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS10ZXh0LXdpZHRoXCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1xdWVzdGlvblwiLCBjb2xvcjogXCJncmV5XCIgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYnJvd3NlID0gKF9hLCBub2RlSWRfMSwgdGVtcGxhdGVfMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBub2RlSWRfMSwgdGVtcGxhdGVfMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZm9yLW5vZGUtcmVkYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiYnJvd3NlIGZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSByZXNwb25zZS5icm93c2VSZXN1bHQucmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlcyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgdGVtcGxhdGUxID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNDaGlsZFwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHRlbXBsYXRlMiA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiT3JnYW5pemVzXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3Qgd2Fsa0JhY2t3YXJkID0gKF9hLCBfYikgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBfYl0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgeyBub2RlSWQsIHJvb3ROb2RlSWQsIGlzVHlwZSB9KSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS93YWxrLWJhY2t3YXJkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgICAgIHJvb3ROb2RlSWQsXG4gICAgICAgICAgICAgICAgaXNUeXBlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiBqc29uLmJyb3dzZVBhdGg7XG4gICAgfSk7XG4gICAgY29uc3QgY2hvb3NlTm9kZUlkID0gKGRhdGEsIG1vZGUpID0+IHtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzQ29kZSAhPT0gXCJHb29kXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhLnJlcXVlc3RlZE5vZGVJZDtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJicm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEuYnBfaW5kZXhlZDtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkQnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLmJwX2FsaWFzZWQgfHwgZGF0YS5icF9pbmRleGVkO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWROb2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5ub2RlSWRfYWxpYXNlZCB8fCBkYXRhLm5vZGVJZF9uc3U7XG4gICAgICAgICAgICBjYXNlIFwibnN1Tm9kZUlEXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEubm9kZUlkX25zdTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBjYXNlIFwibm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEubm9kZUlkO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBtYWtlVG9vbHRpcCA9IChkYXRhKSA9PiB7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1c0NvZGUgIT09IFwiR29vZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gYHN0YXR1c0NvZGU6ICR7ZGF0YS5zdGF0dXNDb2RlfWA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBsZXQgc3RyID0gW107XG4gICAgICAgICAgICBzdHIucHVzaChgbm9kZUlkOiAke2RhdGEubm9kZUlkfWApO1xuICAgICAgICAgICAgc3RyLnB1c2goYGJyb3dzZSBwYXRoOiAke2RhdGEuYnBfaW5kZXhlZH1gKTtcbiAgICAgICAgICAgIHN0ci5wdXNoKGBub2RlIGNsYXNzOiAke05vZGVDbGFzc1tkYXRhLm5vZGVDbGFzc119YCk7XG4gICAgICAgICAgICBpZiAoZGF0YS5ub2RlSWRfbnN1KSB7XG4gICAgICAgICAgICAgICAgc3RyLnB1c2goYG5zdSBub2RlSWQ6ICR7ZGF0YS5ub2RlSWRfbnN1fWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEubm9kZUlkX2FsaWFzZWQpIHtcbiAgICAgICAgICAgICAgICBzdHIucHVzaChgYWxpYXNlZCBOb2RlSWQ6ICR7ZGF0YS5ub2RlSWRfYWxpYXNlZH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmJwX2luZGV4ZWQpIHtcbiAgICAgICAgICAgICAgICBzdHIucHVzaChgYWxpYXNlZCBicm93c2VQYXRoOiAke2RhdGEuYnBfYWxpYXNlZH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzdHIuam9pbihcIlxcblwiKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgZnVuY3Rpb24gZmlndXJlT3V0TW9kZShlbmhhbmNlZE5vZGVJZCkge1xuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL15uc3U9LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcIm5zdU5vZGVJRFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXihucz0uKjspPyhpfGJ8c3xnKT0vKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwibm9kZUlkXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9ebnNhPS8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJhbGlhc2VkTm9kZUlkXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9eKFxcL3xcXC4pWzAtOV0rOi8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJicm93c2VQYXRoXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9eKFxcL3xcXC4pLio6LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcImJyb3dzZVBhdGhcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBmaWd1cmVPdXRNZW5VSXRlbVZhbHVlKHN0cikge1xuICAgICAgICBjb25zdCBtb2RlID0gZmlndXJlT3V0TW9kZShzdHIpO1xuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJub2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuXCI7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZE5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5hXCI7XG4gICAgICAgICAgICBjYXNlIFwibnN1Tm9kZUlEXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibnN1XCI7XG4gICAgICAgICAgICBjYXNlIFwiYnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImJcIjtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkQnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImFiXCI7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBcInRcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiB0b01vZGUodikge1xuICAgICAgICBsZXQgbW9kZTtcbiAgICAgICAgc3dpdGNoICh2KSB7XG4gICAgICAgICAgICBjYXNlIFwiblwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcIm5vZGVJZFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIm5hXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwiYWxpYXNlZE5vZGVJZFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIm5zdVwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcIm5zdU5vZGVJRFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcImJcIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJicm93c2VQYXRoXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiYWJcIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJhbGlhc2VkQnJvd3NlUGF0aFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtb2RlO1xuICAgIH1cbiAgICBjb25zdCBfY2FsbENoZWNrTm9kZUlkID0gKF9hLCBub2RlSWRfMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBub2RlSWRfMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9jaGVja05vZGVJZGA7XG4gICAgICAgIGNvbnN0IGVJZCA9IGVuZHBvaW50Tm9kZS5pZDtcbiAgICAgICAgY29uc3QgbiA9IFJFRC5ub2Rlcy5ub2RlKGVJZCk7XG4gICAgICAgIGNvbnNvbGUubG9nKG4ubmFtZXNwYWNlQWxpYXNlcyk7XG4gICAgICAgIG4ubmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgY29uc3QgbmFtZXNwYWNlQWxpYXNlcyA9IGVuZHBvaW50Tm9kZS5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlcyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiB7IGpzb24sIGRhdGEgfTtcbiAgICB9KTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9IChfYSwgbW9kZV8xLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbW9kZV8xLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG1vZGUsICRpbnB1dEVsZW1lbnQsICRpbmZvKSB7XG4gICAgICAgIGNvbnN0IGVuaGFuY2VkTm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgeyBqc29uLCBkYXRhIH0gPSB5aWVsZCBfY2FsbENoZWNrTm9kZUlkKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBlbmhhbmNlZE5vZGVJZCk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+IHtcbiAgICAgICAgICAgICRpbmZvLnRleHQodGV4dCkuYWRkQ2xhc3MoXCJzdGVyZml2ZS1pbmZvXCIpLmFkZENsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAkaW5mby5zaG93KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAkaW5mby5yZW1vdmVDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiISFmYWlsdXJlISFcIiArIGVuaGFuY2VkTm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b29sdGlwID0gbWFrZVRvb2x0aXAoanNvbik7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC5hdHRyKFwidGl0bGVcIiwgdG9vbHRpcCk7XG4gICAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWROb2RlSWQgPSBjaG9vc2VOb2RlSWQoanNvbiwgbW9kZSk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoc2VsZWN0ZWROb2RlSWQpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCJHb29kXCIsIFwib2tcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChgJHtlbmhhbmNlZE5vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gZmV0Y2hDaGlsZHJlbigkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMSk7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQyID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUyKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczogWy4uLmJyb3dzZVJlc3VsdDEucmVmZXJlbmNlcywgLi4uYnJvd3NlUmVzdWx0Mi5yZWZlcmVuY2VzXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZVNUID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNTdWJ0eXBlXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHwgTm9kZUNsYXNzLk9iamVjdFR5cGUgfCBOb2RlQ2xhc3MuRGF0YVR5cGUgfCBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlLFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZldGNoU3VidHlwZXMoJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZVNUKTtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VSZXN1bHQxO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UgfHwgIXJlZmVyZW5jZS5ub2RlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gYCgke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX0pICR7KChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZSkgfHwgKChfZCA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLnRleHQpIHx8IFwiXCJ9YDtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGkga2V5PVwiJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9XCJ9PjxzcGFuIGNsYXNzPVwidHJlZS10ZXh0XCIgdGl0bGU9JHt0aXRsZX0+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08L3NwYW4+PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZmluZEVsZW1lbnQgPSAobm9kZUlkLCAkdHJlZSkgPT4ge1xuICAgICAgICByZXR1cm4gJHRyZWUuZmluZChgbGlba2V5PVwiJHtub2RlSWR9XCJdYCk7XG4gICAgfTtcbiAgICBjb25zdCBzZWxlY3RTaW5nbGUgPSAodGhhdCwgJGxpKSA9PiB7XG4gICAgICAgIHRoYXQuJHRyZWUuZmluZChcImxpID4gLnRyZWUtdGV4dFwiKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAvLyBjbGVhciBhbGwgc2VsZWN0ZWQgaXRlbXNcbiAgICAgICAgJGxpLmZpbmQoXCIudHJlZS10ZXh0OmZpcnN0XCIpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgfTtcbiAgICBjb25zdCBhdXRvRXhwYW5kID0gKHRoYXQsIGJyb3dzZVBhdGgsICR0cmVlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgLy8gZXhwYW5kIHRoZSB0cmVlIHRvIHNob3cgdGhlIG5vZGVJZFxuICAgICAgICBsZXQgJGN1cnJlbnQgPSAkdHJlZS5jaGlsZHJlbihcIjpmaXJzdFwiKTtcbiAgICAgICAgYnJvd3NlUGF0aC5yZWxhdGl2ZVBhdGguZWxlbWVudHMgfHwgW107XG4gICAgICAgIGNvbnN0IG5vZGVJZHMgPSBicm93c2VQYXRoLm5vZGVJZHMgfHwgW107XG4gICAgICAgIGlmIChub2RlSWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgbiBvZiBub2RlSWRzKSB7XG4gICAgICAgICAgICBpZiAoJGN1cnJlbnQuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgLy8gbmVlZCB0byBleHBhbmQgYW5kIHNlbGVjdCB0aGUgcmlnaHQgZWxlbWVudFxuICAgICAgICAgICAgICAgIHlpZWxkIF9leHBhbmRMaSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IGZpbmRFbGVtZW50KG4sICRjdXJyZW50KTtcbiAgICAgICAgICAgIGlmICgkZWxlbWVudC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkY3VycmVudCA9ICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgIHNjcm9sbFRvTGkodGhhdC4kZHJvcGRvd24sICRjdXJyZW50KTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBzY3JvbGxUb0xpKCRjb250YWluZXIsICR0YXJnZXRMaSkge1xuICAgICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0YXJnZXQgaXRlbSByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGxpUG9zID0gJHRhcmdldExpLnBvc2l0aW9uKCkudG9wO1xuICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBjb250YWluZXJcbiAgICAgICAgY29uc3QgY29udGFpbmVyU2Nyb2xsVG9wID0gJGNvbnRhaW5lci5zY3JvbGxUb3AoKTtcbiAgICAgICAgaWYgKGNvbnRhaW5lclNjcm9sbFRvcCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHBvc2l0aW9uIHRvIHNjcm9sbCB0byAoY3VycmVudCBzY3JvbGwgKyBpdGVtJ3MgcG9zaXRpb24pXG4gICAgICAgIC8vIEFkanVzdCB0aGlzIGNhbGN1bGF0aW9uIGJhc2VkIG9uIHlvdXIgbmVlZHNcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG8gPSBjb250YWluZXJTY3JvbGxUb3AgKyBsaVBvcyAtICRjb250YWluZXIuaGVpZ2h0KCkgLyAyICsgJHRhcmdldExpLmhlaWdodCgpIC8gMjtcbiAgICAgICAgLy8gU2Nyb2xsIHRoZSBjb250YWluZXIgdG8gZW5zdXJlIHRoZSBpdGVtIGlzIHZpc2libGVcbiAgICAgICAgJGNvbnRhaW5lci5hbmltYXRlKHtcbiAgICAgICAgICAgIHNjcm9sbFRvcDogc2Nyb2xsVG8sXG4gICAgICAgIH0sIDUwMCk7IC8vIEFkanVzdCB0aGUgZHVyYXRpb24gKDUwMG1zKSBhcyBuZWVkZWRcbiAgICB9XG4gICAgY29uc3QgcmVhY2hTZWxlY3Rpb24gPSAodGhhdCwgcGFyZW50Tm9kZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9IHRoYXQuJGlucHV0LnZhbCgpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgcm9vdE5vZGVJZDogcGFyZW50Tm9kZS5ub2RlSWQsXG4gICAgICAgICAgICBpc1R5cGU6IHRoYXQub3B0aW9ucy5pc1R5cGVSZWYgfHwgZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgY29uc3QgYnJvd3NlUGF0aCA9IHlpZWxkIHdhbGtCYWNrd2FyZChkYXRhLCBvcHRpb25zKTtcbiAgICAgICAgaWYgKCFicm93c2VQYXRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQgYXV0b0V4cGFuZCh0aGF0LCBicm93c2VQYXRoLCB0aGF0LiR0cmVlKTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBzb3J0IHJlZmVyZW5jZSAgIGJ5IGJyb3dzZU5hbWVcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzLnNvcnQoKGEsIGIpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuICgoKF9hID0gYS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubmFtZSkgfHwgXCJcIikubG9jYWxlQ29tcGFyZSgoKF9iID0gYi5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgXCJcIik7IH0pO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFrZUNvbm5lY3Rpb24odGhhdCkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX2V4cGFuZExpKHRoYXQsICRsaSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHlpZWxkIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRsaSwgZiwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFBhcmVudE5vZGUgPSB7XG4gICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiBkZWZhdWx0UGFyZW50Tm9kZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5fX3BhcmVudE5vZGUgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZS5jYWxsKHRoYXQpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjID0geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGRlc2M7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuX19wYXJlbnROb2RlIHx8IGRlZmF1bHRQYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIHJlc2V0IHBhcmVudCBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0aGF0O1xuICAgICAgICAgICAgICAgICAgICBhLl9fcGFyZW50Tm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0geWllbGQgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHBhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuY3VycmVudFBhcmVudCA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmVyaWZ5KG1vZGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIG1vZGUsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKS50aGVuKChzdWNjZXNzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJpbnB1dC1lcnJvclwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLnJlbW92ZUNsYXNzKFwiaW5wdXQtZXJyb3JcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfaGlkZU1lbnUobWVudSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9mZihcIm1vdXNlZG93bi5yZWQtdWktdHlwZWRJbnB1dC1jbG9zZS1wcm9wZXJ0eS1zZWxlY3RcIik7XG4gICAgICAgICAgICAgICAgbWVudS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChtZW51Lm9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkID0gW107XG4gICAgICAgICAgICAgICAgICAgIG1lbnUuZmluZCgnaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLnB1c2goJCh0aGlzKS5kYXRhKFwidmFsdWVcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgbWVudS5jYWxsYmFjayhzZWxlY3RlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGF0LiRlbGVtZW50RGl2LmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICAvL3h4IH0gZWxzZSBpZiAodGhpcy4kb3B0aW9uU2VsZWN0VHJpZ2dlci5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8veHggICAgIHRoYXQuJG9wdGlvblNlbGVjdFRyaWdnZXIudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGVNZW51KG1lbnVPcHRpb25zLCBvcHRzLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBtZW51ID0gJChcIjxkaXY+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtdHlwZWRJbnB1dC1vcHRpb25zIHN0ZXJmaXZlLW9ubGluZS1tZW51XCIpO1xuICAgICAgICAgICAgICAgIG1lbnUub3B0cyA9IG9wdHM7XG4gICAgICAgICAgICAgICAgbWVudS5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgICAgICAgICAgIG1lbnVPcHRpb25zLmZvckVhY2goKG9wdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9wdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3B0ID0geyB2YWx1ZTogb3B0LCBsYWJlbDogb3B0IH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIG9wID0gJCgnPGEgaHJlZj1cIiNcIj48L2E+JykuYXR0cihcInZhbHVlXCIsIG9wdC52YWx1ZSkuYXBwZW5kVG8obWVudSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHQubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wLnRleHQob3B0LmxhYmVsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0LnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC5wcm9wKFwidGl0bGVcIiwgb3B0LnRpdGxlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0Lmljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHQuaWNvbi5pbmRleE9mKFwiPFwiKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQob3B0Lmljb24pLnByZXBlbmRUbyhvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChvcHQuaWNvbi5pbmRleE9mKFwiL1wiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiPGk+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwicmVkLXVpLXR5cGVkSW5wdXQtaWNvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogXCJtYXNrLWltYWdlOiB1cmwoXCIgKyBvcHQuaWNvbiArIFwiKTsgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCIgKyBvcHQuaWNvbiArIFwiKTtcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5wcmVwZW5kVG8ob3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIjxpPlwiLCB7IGNsYXNzOiBcInJlZC11aS10eXBlZElucHV0LWljb24gXCIgKyBvcHQuaWNvbiB9KS5wcmVwZW5kVG8ob3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AuY3NzKHsgcGFkZGluZ0xlZnQ6IFwiMThweFwiIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICghb3B0Lmljb24gJiYgIW9wdC5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AudGV4dChvcHQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBjYjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNiID0gJCgnPGlucHV0IHR5cGU9XCJjaGVja2JveFwiPicpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyhcInBvaW50ZXItZXZlbnRzXCIsIFwibm9uZVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5kYXRhKFwidmFsdWVcIiwgb3B0LnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmVwZW5kVG8ob3ApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwibW91c2Vkb3duXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG9wLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhvcHQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX2hpZGVNZW51KG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2IucHJvcChcImNoZWNrZWRcIiwgIWNiLnByb3AoXCJjaGVja2VkXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtZW51Lm9uKFwia2V5ZG93blwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5Q29kZSA9PT0gNDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRE9XTlxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5jaGlsZHJlbihcIjpmb2N1c1wiKS5uZXh0KCkudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5rZXlDb2RlID09PSAzOCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVUFxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5jaGlsZHJlbihcIjpmb2N1c1wiKS5wcmV2KCkudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5rZXlDb2RlID09PSAyNykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRVNDQVBFXG4gICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX2hpZGVNZW51KG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWVudTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkaXNhcm1DbGljazogZmFsc2UsXG4gICAgICAgICAgICBfc2hvd01lbnUobWVudSwgcmVsYXRpdmVUbykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRpc2FybUNsaWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYXJtQ2xpY2sgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdmFyIHBvcyA9IHJlbGF0aXZlVG8ub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgdmFyIGhlaWdodCA9IHJlbGF0aXZlVG8uaGVpZ2h0KCk7XG4gICAgICAgICAgICAgICAgdmFyIG1lbnVIZWlnaHQgPSBtZW51LmhlaWdodCgpO1xuICAgICAgICAgICAgICAgIHZhciB0b3AgPSBoZWlnaHQgKyBwb3MudG9wO1xuICAgICAgICAgICAgICAgIGlmICh0b3AgKyBtZW51SGVpZ2h0IC0gJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkgPiAkKHdpbmRvdykuaGVpZ2h0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wIC09IHRvcCArIG1lbnVIZWlnaHQgLSAkKHdpbmRvdykuaGVpZ2h0KCkgKyA1O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodG9wIDwgMCkge1xuICAgICAgICAgICAgICAgICAgICBtZW51LmhlaWdodChtZW51SGVpZ2h0ICsgdG9wKTtcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICB0b3A6IHRvcCArIFwicHhcIixcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogcG9zLmxlZnQgKyBcInB4XCIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbWVudS5zbGlkZURvd24oMTAwKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWxheShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0LmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwibW91c2Vkb3duLnJlZC11aS10eXBlZElucHV0LWNsb3NlLXByb3BlcnR5LXNlbGVjdFwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QobWVudSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5faGlkZU1lbnUobWVudSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJChldmVudC50YXJnZXQpLmNsb3Nlc3QocmVsYXRpdmVUbykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5kaXNhcm1DbGljayA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3Nob3dUeXBlTWVudSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG93TWVudSh0aGF0LiRtZW51LCB0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSB0aGF0LnNlbGVjdGVkTWVudUl0ZW07XG4gICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkID0gdGhhdC4kbWVudS5maW5kKFwiW3ZhbHVlPSdcIiArIHR5cGUgKyBcIidcIik7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICB9LCAxMjApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbml0TWVudSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLmF0dHIoXCJ0YWJpbmRleFwiLCAtMSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5vbihcIm1vdXNlZG93bi5yZWQtdWktdHlwZWRJbnB1dC1mb2N1cy1ibG9ja1wiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICh0aGF0LiRtZW51KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGZhLWlkLWNhcmRcbiAgICAgICAgICAgICAgICBjb25zdCB0eXBlTGlzdCA9IFtcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJ0ZXh0XCIsIHZhbHVlOiBcInRcIiwgdGl0bGU6IFwiVmFsdWUgaXMgbm90IHZlcmlmaWVkXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWZvbnRcIi9pPiAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIm1zZy5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIm1zZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwibm9kZSBpZCBvciAgYnJvd3NlIHBhdGggY29tZXMgZnJvbSBpbmplY3RlZCBtc2cgcGFyYW1ldGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1lbnZlbG9wZS1vcGVuLW9cIi8+JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJOb2RlSWRcIiwgdmFsdWU6IFwiblwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS10YWdcIi8+MSAmbmJzcDsgJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIkFsaWFzZWQgTm9kZUlkXCIsIHZhbHVlOiBcIm5hXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWJvb2ttYXJrXCIvPiZuYnNwOyAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiTm9kZUlkIHdpdGggbmFtZXNwYWNlIFVyblwiLCB2YWx1ZTogXCJuc3VcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtaWQtY2FyZFwiLz4mbmJzcDsgJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIkJyb3dzZVBhdGhcIiwgdmFsdWU6IFwiYlwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS10YWdcIi8+PGkgY2xhc3M9XCJmYSBmYS1maWdodGVyLWpldFwiLz4mbmJzcDsnIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIkFsaWFzZWQgQnJvd3NlIFBhdGhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcImFiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1ib29rbWFya1wiLz48aSBjbGFzcz1cImZhIGZhLWZpZ2h0ZXItamV0XCIvPiZuYnNwOycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBjb25zdCBhID0gZmlndXJlT3V0TWVuVUl0ZW1WYWx1ZSh0aGF0LiRpbnB1dC52YWwoKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZSA9IHR5cGVMaXN0LmZpbmQoKHgpID0+IHgudmFsdWUgPT09IGEpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdExhYmVsLmVtcHR5KCkuYXBwZW5kKGA8c3BhbiB0aXRsZT0keyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUudGl0bGUpIHx8IFwiXCJ9PiZuYnNwOyAkeyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUuaWNvbikgfHwgXCJcIn08L3NwYW4+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC5zZWxlY3RlZE1lbnVJdGVtID0gYTtcbiAgICAgICAgICAgICAgICBjb25zdCB0dCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kbWVudSA9IHRoaXMuX2NyZWF0ZU1lbnUodHlwZUxpc3QsIHt9LCAodikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RlID0gdG9Nb2RlKHYpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb24gTWVudSBzZWxlY3RlZCAhXG4gICAgICAgICAgICAgICAgICAgICAgICB0dC52ZXJpZnkobW9kZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IHR5cGVMaXN0LmZpbmQoKHgpID0+IHgudmFsdWUgPT09IHYpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LnNlbGVjdGVkTWVudUl0ZW0gPSB2O1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RMYWJlbC5lbXB0eSgpLmFwcGVuZChgPHNwYW4gdGl0bGU9JHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnRpdGxlKSB8fCBcIlwifT4mbmJzcDsgJHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLmljb24pIHx8IFwiXCJ9PC9zcGFuPmApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUuYXBwZW5kVG8oZG9jdW1lbnQuYm9keSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kbWVudS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5zaG93KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbW9kZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9Nb2RlKHRoYXQuc2VsZWN0ZWRNZW51SXRlbSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5jc3MoXCJib3JkZXJcIiwgXCJub25lXCIpO1xuICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXRcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kZWxlbWVudERpdiA9IHRoYXQuJGlucHV0LndyYXAoXCI8ZGl2PlwiKS5wYXJlbnQoKS5hZGRDbGFzcyhcIm1haW4td3JhcHBlclwiKTtcbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIENvbWJvIGJyb3dzZXJcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgLy8gdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1pbnB1dC13cmFwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gYWRkIGJ1dHRvbiBvbiB0aGUgcmlnaHQgc2lkZVxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdG9nZ2xlVHJlZUJ0blxuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uIHRpdGxlPVwib3BlbiBPUENVQSBBZGRyZXNzU3BhY2UgQnJvd3NlclwiPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hZnRlcih0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHlpZWxkIHRoYXQucmVzb2x2ZVBhcmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gJiYgKHlpZWxkIHJlYWNoU2VsZWN0aW9uKHRoYXQsIHBhcmVudE5vZGUpKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdmVyaWZ5QnRuXG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuID0gJChgPGJ1dHRvbiB0aXRsZT1cInZlcmlmeSBub2RlSWQgb3IgYnJvd3NlUGF0aFwiPjxpIGNsYXNzPVwiZmEgZmEtcmVmcmVzaFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hZnRlcih0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9kZSA9IHRoYXQubW9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeShtb2RlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZUlucHV0ID0gKGlucHV0KSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RlID0gdGhhdC5tb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29ubmVjdGlvbkRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBqc29uIH0gPSB5aWVsZCBfY2FsbENoZWNrTm9kZUlkKGNvbm5lY3Rpb25EYXRhLCBpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGpzb24uc3RhdHVzQ29kZS5tYXRjaCgvR29vZC8pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZE5vZGVJZCA9IGNob29zZU5vZGVJZChqc29uLCBtb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChzZWxlY3RlZE5vZGVJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAgICAgLy8gY3JlYXRlIHRoZSBwcmVwZW5kZWQgYnV0dG9uXG4gICAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR1aVNlbGVjdCA9ICQoXCI8ZGl2PlwiKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYmVmb3JlKHRoYXQuJHVpU2VsZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlciA9ICQoJzxidXR0b24gdHlwZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiPjwvYnV0dG9uPicpLnByZXBlbmRUbyh0aGF0LiR1aVNlbGVjdCk7XG4gICAgICAgICAgICAgICAgICAgICQoJzxpIGNsYXNzPVwicmVkLXVpLXR5cGVkSW5wdXQtaWNvbiBmYSBmYS1jYXJldC1kb3duXCI+PC9pPicpLnRvZ2dsZSh0cnVlKS5hcHBlbmRUbyh0aGF0LiRzZWxlY3RUcmlnZ2VyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fc2hvd1R5cGVNZW51KCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyXG4gICAgICAgICAgICAgICAgICAgICAgICAub24oXCJrZXlkb3duXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5Q29kZSA9PT0gNDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBEb3duXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fc2hvd1R5cGVNZW51KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAub24oXCJmb2N1c1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiR1aVNlbGVjdC5hZGRDbGFzcyhcInJlZC11aS10eXBlZElucHV0LWZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwiYmx1clwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB2YXIgb3B0ID0gdGhhdC50eXBlTWFwW3RoYXQucHJvcGVydHlUeXBlXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIChvcHQuaGFzVmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiR1aVNlbGVjdC5yZW1vdmVDbGFzcyhcInJlZC11aS10eXBlZElucHV0LWZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0TGFiZWwgPSAkKCc8c3BhbiBjbGFzcz1cInJlZC11aS10eXBlZElucHV0LXR5cGUtbGFiZWxcIj48L3NwYW4+JykuYXBwZW5kVG8odGhhdC4kc2VsZWN0VHJpZ2dlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2luaXRNZW51KCk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiB0ZW1wb3JhdHkgaW5mbyBwYW5lbFxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIGRyb3AgZG93biB0cmVlXG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpLmFwcGVuZFRvKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIC8vIHRoYXQuJGRyb3Bkb3duLnNob3coKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIGNvbnN0IGlzT25MZWZ0U2l6ZSA9ICgkbGksIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJGxpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgdG9nZ2xlRXhwYW5zaW9uID0gKCRsaSkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX2V4cGFuZExpKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuY2hpbGRyZW4oXCJ1bFwiKS5jaGlsZHJlbigpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJkYmxjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZUlucHV0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBjb250YWluaW5nOlxuICAgICAqICAtIHRoZSBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSxcbiAgICAgKiAgLSB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAqICAtIGNyZWRlbnRpYWxzXG4gICAgICogIC0gbmFtZXNwYWNlQWxpYXNlc1xuICAgICAqXG4gICAgICogZXh0cmFjdGVkIGZyb20gdGhlIHVpIHdpZGdldCAjbm9kZS1pbnB1dC1lbmRwb2ludFxuICAgICAqL1xuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIGNvbnN0IGNyZWRlbnRpYWxzID0gUkVELihlbmRwb2ludElkKTtcbiAgICAgICAgLy8gd2UgbmVlZCB0byBzYW5pdGl6ZSBhbmQgZXh0cmFjdCB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBvbmx5ICggbm90IHRoZSBub2RlLXJlZCBzdHVmZilcbiAgICAgICAgY29uc3QgeyBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSwgdXNlcklkZW50aXR5VHlwZSwgY3JlZGVudGlhbHMsIG5hbWVzcGFjZUFsaWFzZXMgfSA9IHJlZE5vZGU7XG4gICAgICAgIGNvbnN0IHJldFZhbHVlID0ge1xuICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICBjcmVkZW50aWFscyxcbiAgICAgICAgICAgIG5hbWVzcGFjZUFsaWFzZXMsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuYW1lc3BhY2VBbGlhc2VzID0gZW5kcG9pbnROci5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7IG5hbWVzcGFjZUFsaWFzZXMsIGlkOiBlbmRwb2ludElkIH0sIGVuZHBvaW50TnIpO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1SZWFkXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIi4uLy4uL2ljb25zL29wY3Vhbm9kZUxvZ28ucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJyZWFkXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIC8vIGZvciBhY3Rpb24gcmVhZFxuICAgICAgICAgICAgYXR0cmlidXRlSWQ6IHsgdmFsdWU6IFwiVmFsdWVcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBvdXRwdXRUeXBlOiB7IHZhbHVlOiBcIlZhbHVlXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGlucHV0czosXG4gICAgICAgIG91dHB1dHM6IDIsIC8vIDIgb3V0cHV0LCBzZWNvbmQgZm9yIHJhdyBub2RlLW9wY3VhIGRpYWdub3N0aWNzIG9yIG1vcmUgY29tcGxldGUgbWVzc2FnZVxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQSBDbGllbnQgUmVhZFwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
|
7
|
+
function _0x3bf1(_0x124c47,_0x46735d){const _0x572f5a=_0x572f();return _0x3bf1=function(_0x3bf12d,_0x27186a){_0x3bf12d=_0x3bf12d-0x12b;let _0x3e122f=_0x572f5a[_0x3bf12d];return _0x3e122f;},_0x3bf1(_0x124c47,_0x46735d);}function _0x572f(){const _0x4a9adb=['BrowseName','Value\x20is\x20not\x20verified','removeClass',':visible','input-error','checked','isSelectable','<li>error\x20','verify','prependTo','red-ui-typedInput-icon\x20','ns=0;i=47','5UjqLNg','<div>','$selectTrigger','!!failure!!','grey','.spinner','err','CadetBlue','bp_aliased','fa-text-width','push','li\x20>\x20.tree-text','ns=0;i=61','match','SuppressedError','</span><ul></ul></li>','referenceTypeId','children','background-color:transparent;overflow:hidden;border:3px','NodeId','ns=0;i=34','<button\x20title=\x22open\x20OPCUA\x20AddressSpace\x20Browser\x22><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','HasComponent','opts','left','ReferenceType','stopPropagation','<input\x20type=\x22checkbox\x22>','call','scrollTop','currentParent','fetched','<span\x20title=','<i\x20class=\x22fa\x20fa-font\x22/i>\x20','relativePath','val','installing\x20iframe','Unspecified','<li\x20key=\x22','$menu','fa-folder','selectedMenuItem','ns=0;i=45','ns=0;i=85','$combo','9KuAAAP','#C0DEED','remove','body','node','_showMenu','displayName','position','IsForward','string','isTypeRef','assign','ns=0;i=35','nodeBrowser','fa-cog','inputs','SteelBlue','</span>','expandable','fetching\x20failed\x20with\x20error','keydown','Both','done','closest','20px','OpcUa-Client2-Read','replaceWith','top','fa-sliders','Aliased\x20Browse\x20Path','blur',');\x20-webkit-mask-image:\x20url(','mousedown','DisplayName','_hideMenu','613732HimKsD','.red-ui-tray-body','Invalid','suppressed','<i>','next','sterfive-dropdown','<a\x20href=\x22#\x22></a>','endpointNode','mousedown.red-ui-typedInput-close-property-select','sterfive-combo-box','endpoint','function','data','$selectLabel','Method','nodeId_aliased','failure','append','ns=0;i=46','animate','hide','nodeId_nsu','sort','height','Value','<i\x20class=\x22red-ui-typedInput-icon\x20fa\x20fa-caret-down\x22></i>','DodgerBlue','toggle','Organizes','SeaGreen','already\x20fetched','mask-image:\x20url(','right','addClass','log','nodes','wrap','bp_indexed','#node-input-endpoint','__parentNode','aliasedNodeId','browsePath','resolveParentNode','POST','expanded','i=61','typeDefinition','VariableType','TypeDefinition','nodeClass','aliased\x20browsePath:\x20','application/json','widget','registerType','sterfive-info','absolute','<i\x20class=\x22fa\x20fa-id-card\x22/> \x20','tabindex','message','OpcUa-Endpoint2','$elementDiv','toString','Object','HasProperty','mode','namespaceAliases','Good','find','prop','<div\x20class=\x22spinner\x22></div>','before','/walk-backward','disarmClick','attr','text','$toggleTreeBtn','target','browseResult','reference','css','trigger','Inverse','30px','expandable\x20expanded','<ul\x20class=\x22sterfive-tree\x22></ul>','title','browse\x20path:\x20','\x22\x20style=\x22color:','read','keyCode','hasClass','callback','browseName','HasSubtype','View',';\x22></i>\x20','sterfive.nodeBrowser','main-wrapper','change','length','$info','requestedNodeId','$inputGroup','<button\x20type=\x22button\x22\x20tabindex=\x220\x22></button>','throw','then','DarkOrange','<i\x20class=\x22fa\x20fa-tag\x22/>1\x20 \x20','$tree','<button\x20title=\x22verify\x20nodeId\x20or\x20browsePath\x22><i\x20class=\x22fa\x20fa-refresh\x22></i></button>','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','red-ui-typedInput-icon','statusCode:\x20','none','statusCode','join','prev','value','$input','after','1609068VKdQic','NodeClass','<i\x20class=\x22fa\x20fa-envelope-open-o\x22/>','Forward','SandyBrown','/checkNodeId','appendTo','show','click','status','reset','localeCompare','<iframe></iframe>','Aliased\x20NodeId','indexOf','nodeId','Objects','mousedown.red-ui-typedInput-focus-block','icon','#node-input-nodeId','_showTypeMenu','9566610deUGQV','18px','ObjectType','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','/opcua-for-node-red','pageX','fa-object-group','pointer-events','../../icons/opcuanodeLogo.png','_createMenu','li[key=\x22','node\x20id\x20or\x20\x20browse\x20path\x20comes\x20from\x20injected\x20msg\x20parameter','aliasedBrowsePath','<div\x20class=\x22info-text\x22></div>','installFeedbackWidget\x20','preventDefault','rgba(61,\x2060,\x204,\x200.525)','already\x20loading','empty','$dropdown','references','statusText','/opcua-for-node-red/support-frame.html','loading','$verifyBtn','json','5963832BPxNwR','766844QHIeHa','red-ui-typedInput-focus','<div/>','dblclick','selected','$uiSelect','error',':focus',':first','node\x20class:\x20','name','stringify','aliased\x20NodeId:\x20','9HYcSbV','fa-list-alt','parent','toggleClass','true','2437372JfpbqV','multiple','nsu','label','4966068imXikk','offset','DataType','Variable','off','</li>','><i\x20class=\x22fa\x20','[value=\x27','options','> \x20','apply','sterfive-typedInput-options\x20sterfive-online-menu','border','nsuNodeID','nodeIds','focus','nsu\x20nodeId:\x20'];_0x572f=function(){return _0x4a9adb;};return _0x572f();}(function(_0x340aae,_0x4c5b03){const _0x4ee744=_0x3bf1,_0x54a69d=_0x340aae();while(!![]){try{const _0x118851=parseInt(_0x4ee744(0x1fe))/0x1+-parseInt(_0x4ee744(0x14b))/0x2+-parseInt(_0x4ee744(0x1db))/0x3*(parseInt(_0x4ee744(0x17b))/0x4)+-parseInt(_0x4ee744(0x1ae))/0x5*(-parseInt(_0x4ee744(0x191))/0x6)+parseInt(_0x4ee744(0x18d))/0x7+-parseInt(_0x4ee744(0x17a))/0x8*(parseInt(_0x4ee744(0x188))/0x9)+parseInt(_0x4ee744(0x160))/0xa;if(_0x118851===_0x4c5b03)break;else _0x54a69d['push'](_0x54a69d['shift']());}catch(_0x4a3af2){_0x54a69d['push'](_0x54a69d['shift']());}}}(_0x572f,0x97a41),(function(){'use strict';const _0x2349a0=_0x3bf1;function _0x2bd42c(_0x40e455,_0x376496,_0x3e2804,_0x37fc51){function _0x4c0ac4(_0x524cc1){return _0x524cc1 instanceof _0x3e2804?_0x524cc1:new _0x3e2804(function(_0x1d0ba6){_0x1d0ba6(_0x524cc1);});}return new(_0x3e2804||(_0x3e2804=Promise))(function(_0x484bc3,_0x196cac){const _0xd280e2=_0x3bf1;function _0x21ba65(_0x224871){const _0x260912=_0x3bf1;try{_0x48a6f8(_0x37fc51[_0x260912(0x203)](_0x224871));}catch(_0xc65c0d){_0x196cac(_0xc65c0d);}}function _0x3c1020(_0x16ae2d){const _0x433904=_0x3bf1;try{_0x48a6f8(_0x37fc51[_0x433904(0x13b)](_0x16ae2d));}catch(_0x1d5d39){_0x196cac(_0x1d5d39);}}function _0x48a6f8(_0x4f3d1e){const _0x157489=_0x3bf1;_0x4f3d1e[_0x157489(0x1f1)]?_0x484bc3(_0x4f3d1e[_0x157489(0x148)]):_0x4c0ac4(_0x4f3d1e[_0x157489(0x148)])[_0x157489(0x13c)](_0x21ba65,_0x3c1020);}_0x48a6f8((_0x37fc51=_0x37fc51[_0xd280e2(0x19b)](_0x40e455,_0x376496||[]))['next']());});}typeof SuppressedError==='function'?SuppressedError:function(_0x50e960,_0x35aed8,_0x1a8722){const _0x30794d=_0x3bf1;var _0x3305b6=new Error(_0x1a8722);return _0x3305b6['name']=_0x30794d(0x1bc),_0x3305b6[_0x30794d(0x181)]=_0x50e960,_0x3305b6[_0x30794d(0x201)]=_0x35aed8,_0x3305b6;};const _0xa23ff3=_0x2349a0(0x1e7),_0x2ed4b1=_0x2349a0(0x1ba),_0x5b1472=_0x2349a0(0x1ad),_0x34a7e4=_0x2349a0(0x211),_0x49e334=_0x2349a0(0x1c2),_0x1e65d2=_0x2349a0(0x1d8),_0x4495d7='ns=0;i=40';var _0x36f946;(function(_0x3609f3){const _0x277c63=_0x2349a0;_0x3609f3[_0x3609f3[_0x277c63(0x14e)]=0x0]=_0x277c63(0x14e),_0x3609f3[_0x3609f3[_0x277c63(0x250)]=0x1]=_0x277c63(0x250),_0x3609f3[_0x3609f3[_0x277c63(0x1f0)]=0x2]=_0x277c63(0x1f0),_0x3609f3[_0x3609f3[_0x277c63(0x200)]=0x3]='Invalid';}(_0x36f946||(_0x36f946={})));var _0xca852b;(function(_0x5a7b1e){const _0x336d89=_0x2349a0;_0x5a7b1e[_0x5a7b1e['Unspecified']=0x0]=_0x336d89(0x1d3),_0x5a7b1e[_0x5a7b1e[_0x336d89(0x23d)]=0x1]=_0x336d89(0x23d),_0x5a7b1e[_0x5a7b1e[_0x336d89(0x194)]=0x2]=_0x336d89(0x194),_0x5a7b1e[_0x5a7b1e[_0x336d89(0x20d)]=0x4]=_0x336d89(0x20d),_0x5a7b1e[_0x5a7b1e[_0x336d89(0x162)]=0x8]=_0x336d89(0x162),_0x5a7b1e[_0x5a7b1e[_0x336d89(0x22e)]=0x10]=_0x336d89(0x22e),_0x5a7b1e[_0x5a7b1e[_0x336d89(0x1c7)]=0x20]=_0x336d89(0x1c7),_0x5a7b1e[_0x5a7b1e[_0x336d89(0x193)]=0x40]=_0x336d89(0x193),_0x5a7b1e[_0x5a7b1e[_0x336d89(0x131)]=0x80]=_0x336d89(0x131);}(_0xca852b||(_0xca852b={})));var _0x1e7c94;(function(_0x2f839f){const _0x582ed7=_0x2349a0;_0x2f839f[_0x2f839f[_0x582ed7(0x23d)]=0x1]='Object',_0x2f839f[_0x2f839f[_0x582ed7(0x194)]=0x2]=_0x582ed7(0x194),_0x2f839f[_0x2f839f[_0x582ed7(0x20d)]=0x4]='Method',_0x2f839f[_0x2f839f[_0x582ed7(0x162)]=0x8]=_0x582ed7(0x162),_0x2f839f[_0x2f839f[_0x582ed7(0x22e)]=0x10]=_0x582ed7(0x22e),_0x2f839f[_0x2f839f[_0x582ed7(0x1c7)]=0x20]=_0x582ed7(0x1c7),_0x2f839f[_0x2f839f[_0x582ed7(0x193)]=0x40]=_0x582ed7(0x193),_0x2f839f[_0x2f839f['View']=0x80]=_0x582ed7(0x131);}(_0x1e7c94||(_0x1e7c94={})));var _0x4fc5a4;(function(_0x2f3692){const _0xcaf218=_0x2349a0;_0x2f3692[_0x2f3692[_0xcaf218(0x1c7)]=0x1]=_0xcaf218(0x1c7),_0x2f3692[_0x2f3692[_0xcaf218(0x1e3)]=0x2]='IsForward',_0x2f3692[_0x2f3692[_0xcaf218(0x14c)]=0x4]=_0xcaf218(0x14c),_0x2f3692[_0x2f3692[_0xcaf218(0x1a2)]=0x8]=_0xcaf218(0x1a2),_0x2f3692[_0x2f3692[_0xcaf218(0x1fc)]=0x10]=_0xcaf218(0x1fc),_0x2f3692[_0x2f3692[_0xcaf218(0x22f)]=0x20]=_0xcaf218(0x22f);}(_0x4fc5a4||(_0x4fc5a4={})));function _0x4ef438(_0x180b78){const _0x4ba053=_0x2349a0;switch(_0x180b78){case _0x4ba053(0x21b):return _0xa23ff3;case _0x4ba053(0x23e):return _0x34a7e4;case _0x4ba053(0x1c4):return _0x5b1472;case'HasChild':return _0x49e334;case _0x4ba053(0x130):return _0x1e65d2;case'HasTypeDefinition':return _0x4495d7;}}const _0x1bc371=_0x67345d=>{const _0xceeba0=_0x2349a0;switch(_0x67345d['nodeClass']){case _0xceeba0(0x23d):if(_0x67345d[_0xceeba0(0x1be)]===_0xa23ff3);if(_0x67345d[_0xceeba0(0x22d)]===_0x2ed4b1||_0x67345d[_0xceeba0(0x1be)]===_0xceeba0(0x22c))return{'icon':_0xceeba0(0x1d6),'color':_0xceeba0(0x170)};return{'icon':_0xceeba0(0x166),'color':_0xceeba0(0x21c)};case _0xceeba0(0x194):if(_0x67345d['referenceTypeId']===_0x5b1472)return{'icon':_0xceeba0(0x189),'color':_0xceeba0(0x1eb)};else return _0x67345d[_0xceeba0(0x1be)]===_0x34a7e4?{'icon':_0xceeba0(0x189),'color':_0xceeba0(0x219)}:{'icon':_0xceeba0(0x189),'color':_0xceeba0(0x1b5)};case _0xceeba0(0x20d):return{'icon':_0xceeba0(0x1e9),'color':_0xceeba0(0x14f)};case _0xceeba0(0x162):return{'icon':_0xceeba0(0x166),'color':'DarkOrange'};case _0xceeba0(0x22e):return{'icon':_0xceeba0(0x1f7),'color':_0xceeba0(0x13d)};case'DataType':return{'icon':_0xceeba0(0x1b7),'color':_0xceeba0(0x1b5)};}return{'icon':'fa-question','color':_0xceeba0(0x1b2)};},_0x4e0455=(_0x4bf499,_0x3514ca,_0x1d5142)=>_0x2bd42c(void 0x0,[_0x4bf499,_0x3514ca,_0x1d5142],void 0x0,function*({endpointNode:_0x548966,endpoint:_0x75e0ad,baseUrl:_0x176684},_0x483451,_0x305430){const _0xd11569=_0x2349a0,_0x122ab6=_0x176684+_0xd11569(0x164),_0x208575=_0x122ab6+'/browse',_0x594b77=Object[_0xd11569(0x1e6)](Object[_0xd11569(0x1e6)]({},_0x305430),{'nodeId':_0x483451,'resultMask':0x3f}),_0x15df4d=yield fetch(_0x208575,{'method':_0xd11569(0x22a),'body':JSON[_0xd11569(0x186)]({'endpointNode':_0x548966,'endpoint':_0x75e0ad,'browseDescription':_0x594b77}),'headers':{'Content-Type':_0xd11569(0x232)}});if(_0x15df4d[_0xd11569(0x154)]!==0xc8)return console[_0xd11569(0x221)](_0xd11569(0x1ee),_0x15df4d[_0xd11569(0x154)],_0x15df4d[_0xd11569(0x175)]),{'references':[]};const _0x557488=yield _0x15df4d['json'](),_0x218b41=_0x557488[_0xd11569(0x24c)][_0xd11569(0x174)]||[];return{'references':_0x218b41};}),_0x35d469={'referenceTypeId':_0x4ef438('HasChild'),'includeSubtypes':!![],'browseDirection':_0x36f946[_0x2349a0(0x14e)],'nodeClassMask':_0xca852b[_0x2349a0(0x194)]|_0xca852b['Object']|_0xca852b[_0x2349a0(0x20d)],'resultMask':0x3f},_0x2e483d={'referenceTypeId':_0x4ef438(_0x2349a0(0x21b)),'includeSubtypes':!![],'browseDirection':_0x36f946[_0x2349a0(0x14e)],'nodeClassMask':_0xca852b[_0x2349a0(0x194)]|_0xca852b[_0x2349a0(0x23d)]|_0xca852b[_0x2349a0(0x20d)],'resultMask':0x3f},_0x11e5f3=(_0x4404fb,_0x10c8ca)=>_0x2bd42c(void 0x0,[_0x4404fb,_0x10c8ca],void 0x0,function*({endpointNode:_0x5ee42b,endpoint:_0x3cbb92,baseUrl:_0x5b2d2a},{nodeId:_0x4b972a,rootNodeId:_0x1353af,isType:_0x4f0519}){const _0x3e7406=_0x2349a0,_0x31c6ae=_0x5b2d2a+_0x3e7406(0x164),_0x55a837=_0x31c6ae+_0x3e7406(0x246),_0x2031df=yield fetch(_0x55a837,{'method':_0x3e7406(0x22a),'body':JSON[_0x3e7406(0x186)]({'endpointNode':_0x5ee42b,'endpoint':_0x3cbb92,'nodeId':_0x4b972a,'rootNodeId':_0x1353af,'isType':_0x4f0519}),'headers':{'Content-Type':'application/json'}});if(_0x2031df[_0x3e7406(0x154)]!==0xc8)return null;const _0x35c6b5=yield _0x2031df[_0x3e7406(0x179)]();return _0x35c6b5['browsePath'];}),_0x587d50=(_0x1f494f,_0x3b0d7b)=>{const _0x109f7a=_0x2349a0;if(_0x1f494f[_0x109f7a(0x145)]!==_0x109f7a(0x241))return _0x1f494f[_0x109f7a(0x138)];switch(_0x3b0d7b){case _0x109f7a(0x228):return _0x1f494f[_0x109f7a(0x224)];case _0x109f7a(0x16c):return _0x1f494f[_0x109f7a(0x1b6)]||_0x1f494f[_0x109f7a(0x224)];case _0x109f7a(0x227):return _0x1f494f[_0x109f7a(0x20e)]||_0x1f494f['nodeId_nsu'];case _0x109f7a(0x19e):return _0x1f494f['nodeId_nsu'];default:case _0x109f7a(0x15a):return _0x1f494f[_0x109f7a(0x15a)];}},_0x3cd0d6=_0x12fad0=>{const _0x35018f=_0x2349a0;if(_0x12fad0[_0x35018f(0x145)]!==_0x35018f(0x241))return _0x35018f(0x143)+_0x12fad0['statusCode'];else{let _0x29787d=[];return _0x29787d[_0x35018f(0x1b8)]('nodeId:\x20'+_0x12fad0[_0x35018f(0x15a)]),_0x29787d['push'](_0x35018f(0x255)+_0x12fad0[_0x35018f(0x224)]),_0x29787d[_0x35018f(0x1b8)](_0x35018f(0x184)+_0xca852b[_0x12fad0[_0x35018f(0x230)]]),_0x12fad0['nodeId_nsu']&&_0x29787d[_0x35018f(0x1b8)](_0x35018f(0x1a1)+_0x12fad0[_0x35018f(0x214)]),_0x12fad0[_0x35018f(0x20e)]&&_0x29787d[_0x35018f(0x1b8)](_0x35018f(0x187)+_0x12fad0[_0x35018f(0x20e)]),_0x12fad0[_0x35018f(0x224)]&&_0x29787d['push'](_0x35018f(0x231)+_0x12fad0['bp_aliased']),_0x29787d[_0x35018f(0x146)]('\x0a');}};function _0x47f1be(_0x20a405){const _0x2090d6=_0x2349a0;if(_0x20a405['match'](/^nsu=/))return _0x2090d6(0x19e);if(_0x20a405[_0x2090d6(0x1bb)](/^(ns=.*;)?(i|b|s|g)=/))return _0x2090d6(0x15a);if(_0x20a405[_0x2090d6(0x1bb)](/^nsa=/))return'aliasedNodeId';if(_0x20a405['match'](/^(\/|\.)[0-9]+:/))return _0x2090d6(0x228);if(_0x20a405[_0x2090d6(0x1bb)](/^(\/|\.).*:/))return _0x2090d6(0x228);}function _0x33111(_0x4d6e54){const _0x2b35a2=_0x2349a0,_0x1740d0=_0x47f1be(_0x4d6e54);switch(_0x1740d0){case _0x2b35a2(0x15a):return'n';case _0x2b35a2(0x227):return'na';case _0x2b35a2(0x19e):return _0x2b35a2(0x18f);case _0x2b35a2(0x228):return'b';case _0x2b35a2(0x16c):return'ab';default:return't';}}function _0x2f83f4(_0x4a65e6){const _0x4ca921=_0x2349a0;let _0x4b9b04;switch(_0x4a65e6){case'n':_0x4b9b04='nodeId';break;case'na':_0x4b9b04=_0x4ca921(0x227);break;case _0x4ca921(0x18f):_0x4b9b04=_0x4ca921(0x19e);break;case'b':_0x4b9b04=_0x4ca921(0x228);break;case'ab':_0x4b9b04=_0x4ca921(0x16c);break;}return _0x4b9b04;}const _0x23c661=(_0x3fe587,_0x48bd27)=>_0x2bd42c(void 0x0,[_0x3fe587,_0x48bd27],void 0x0,function*({endpointNode:_0xff5e9b,endpoint:_0x4cbbda,baseUrl:_0x6064f1},_0x26cd5d){const _0x16a1b5=_0x2349a0,_0x21deaf=_0x6064f1+_0x16a1b5(0x164),_0x1c4121=_0x21deaf+_0x16a1b5(0x150),_0x34e4aa=_0xff5e9b['id'],_0x3ee59b=RED['nodes'][_0x16a1b5(0x1df)](_0x34e4aa);console[_0x16a1b5(0x221)](_0x3ee59b[_0x16a1b5(0x240)]),_0x3ee59b['namespaceAliases'];const _0xb54fa1=_0xff5e9b[_0x16a1b5(0x240)],_0x16b48b=yield fetch(_0x1c4121,{'method':'POST','body':JSON[_0x16a1b5(0x186)]({'endpointNode':_0xff5e9b,'endpoint':_0x4cbbda,'nodeId':_0x26cd5d,'namespaceAliases':_0xb54fa1}),'headers':{'Content-Type':_0x16a1b5(0x232)}}),_0x545527=yield _0x16b48b[_0x16a1b5(0x179)]();return{'json':_0x545527,'data':_0x16b48b};}),_0x4de9af=(_0x27cb4d,_0x12a114,_0x3d8b39,_0x2f1536)=>_0x2bd42c(void 0x0,[_0x27cb4d,_0x12a114,_0x3d8b39,_0x2f1536],void 0x0,function*({endpointNode:_0xe273b1,endpoint:_0x21791b,baseUrl:_0x1482cb},_0x3e6a93,_0x2fbd41,_0x3c4e7a){const _0x15b6a7=_0x2349a0,_0x25384c=_0x2fbd41[_0x15b6a7(0x1d1)](),{json:_0x56e5b8,data:_0x690e86}=yield _0x23c661({'endpointNode':_0xe273b1,'endpoint':_0x21791b,'baseUrl':_0x1482cb},_0x25384c),_0x17228a=(_0x1e068a,_0x57bcc2)=>{const _0x3251af=_0x15b6a7;_0x3c4e7a['text'](_0x1e068a)[_0x3251af(0x220)](_0x3251af(0x235))[_0x3251af(0x220)](_0x57bcc2),_0x3c4e7a['show'](),setTimeout(()=>{const _0x261350=_0x3251af;_0x3c4e7a[_0x261350(0x1a4)](_0x57bcc2),_0x3c4e7a['hide']();},0xbb8);};if(_0x690e86[_0x15b6a7(0x154)]!==0xc8)return _0x17228a(_0x15b6a7(0x1b1)+_0x25384c,_0x15b6a7(0x20f)),![];else{if(_0x56e5b8[_0x15b6a7(0x145)]['match'](/Good/)){const _0x582082=_0x3cd0d6(_0x56e5b8);_0x2fbd41[_0x15b6a7(0x248)](_0x15b6a7(0x254),_0x582082);const _0x1883b7=_0x587d50(_0x56e5b8,_0x3e6a93);return _0x2fbd41['val'](_0x1883b7),_0x2fbd41[_0x15b6a7(0x24f)](_0x15b6a7(0x135)),_0x17228a(_0x15b6a7(0x241),'ok'),!![];}else return _0x2fbd41[_0x15b6a7(0x1d1)](''+_0x25384c),_0x17228a(_0x56e5b8['statusCode']+'\x20'+_0x690e86[_0x15b6a7(0x175)],_0x15b6a7(0x20f)),![];}});function _0x1427e0(_0x1e6a22,_0x86ca51){return _0x2bd42c(this,void 0x0,void 0x0,function*(){const _0x419b73=_0x3bf1,_0x3119b9=_0x1e6a22[_0x419b73(0x20b)]('value'),_0x12dd33=yield _0x4e0455(_0x86ca51,_0x3119b9,_0x35d469),_0x3cc30e=yield _0x4e0455(_0x86ca51,_0x3119b9,_0x2e483d);return{'references':[..._0x12dd33['references'],..._0x3cc30e[_0x419b73(0x174)]]};});}const _0x3b6c0e={'referenceTypeId':_0x4ef438(_0x2349a0(0x130)),'includeSubtypes':!![],'browseDirection':_0x36f946[_0x2349a0(0x14e)],'nodeClassMask':_0xca852b[_0x2349a0(0x1c7)]|_0xca852b['ObjectType']|_0xca852b[_0x2349a0(0x193)]|_0xca852b[_0x2349a0(0x22e)],'resultMask':0x3f};function _0x363c75(_0x2b6cdc,_0x31007b){return _0x2bd42c(this,void 0x0,void 0x0,function*(){const _0x53cca8=_0x3bf1,_0x523928=_0x2b6cdc['data'](_0x53cca8(0x148)),_0x3a608b=yield _0x4e0455(_0x31007b,_0x523928,_0x3b6c0e);return _0x3a608b;});}const _0x4dfa8a=_0x466fc7=>{const _0x245d2b=_0x2349a0;var _0x19ef5c,_0x23cbab,_0xf99c01,_0x355b7c;if(!_0x466fc7||!_0x466fc7[_0x245d2b(0x15a)]){const _0x1ab160=$(_0x245d2b(0x141));return _0x1ab160;}const _0x416cee=_0x466fc7['nodeId'][_0x245d2b(0x23c)](),_0x5d4d2a=((_0x19ef5c=_0x466fc7[_0x245d2b(0x1e1)])===null||_0x19ef5c===void 0x0?void 0x0:_0x19ef5c[_0x245d2b(0x249)])||((_0x23cbab=_0x466fc7[_0x245d2b(0x12f)])===null||_0x23cbab===void 0x0?void 0x0:_0x23cbab[_0x245d2b(0x185)])||_0x466fc7[_0x245d2b(0x15a)][_0x245d2b(0x23c)](),{icon:_0x3a52ac,color:_0x77b54b}=_0x1bc371(_0x466fc7),_0xd0a717='('+_0x466fc7[_0x245d2b(0x15a)][_0x245d2b(0x23c)]()+')\x20'+(((_0xf99c01=_0x466fc7[_0x245d2b(0x12f)])===null||_0xf99c01===void 0x0?void 0x0:_0xf99c01[_0x245d2b(0x185)])||((_0x355b7c=_0x466fc7[_0x245d2b(0x1e1)])===null||_0x355b7c===void 0x0?void 0x0:_0x355b7c[_0x245d2b(0x249)])||''),_0x3c15b0=$(_0x245d2b(0x1d4)+_0x466fc7[_0x245d2b(0x15a)][_0x245d2b(0x23c)]()+'\x22}><span\x20class=\x22tree-text\x22\x20title='+_0xd0a717+_0x245d2b(0x197)+_0x3a52ac+_0x245d2b(0x256)+_0x77b54b+_0x245d2b(0x132)+_0x5d4d2a+_0x245d2b(0x1bd));return _0x3c15b0['addClass'](_0x245d2b(0x1ed)),_0x3c15b0[_0x245d2b(0x20b)]('value',_0x416cee),_0x3c15b0[_0x245d2b(0x20b)](_0x245d2b(0x24d),_0x466fc7),_0x3c15b0;},_0x19abad=(_0x563cab,_0x26a719)=>{const _0x450d00=_0x2349a0;return _0x26a719[_0x450d00(0x242)](_0x450d00(0x16a)+_0x563cab+'\x22]');},_0x46fe54=(_0x3211c7,_0x384cf5)=>{const _0x111c3a=_0x2349a0;_0x3211c7[_0x111c3a(0x13f)]['find'](_0x111c3a(0x1b9))[_0x111c3a(0x1a4)](_0x111c3a(0x17f)),_0x384cf5[_0x111c3a(0x242)]('.tree-text:first')[_0x111c3a(0x220)]('selected');},_0x5a0ac0=(_0x279318,_0x471af9,_0x1a2098)=>_0x2bd42c(void 0x0,void 0x0,void 0x0,function*(){const _0x168929=_0x2349a0;let _0x5b1f05=_0x1a2098[_0x168929(0x1bf)](_0x168929(0x183));_0x471af9[_0x168929(0x1d0)]['elements']||[];const _0x1d3800=_0x471af9[_0x168929(0x19f)]||[];if(_0x1d3800[_0x168929(0x136)]===0x0)return;for(const _0x106405 of _0x1d3800){_0x5b1f05[_0x168929(0x12d)]('expandable')&&(yield _0x1e62ca(_0x279318,_0x5b1f05));const _0x2f342b=_0x19abad(_0x106405,_0x5b1f05);if(_0x2f342b[_0x168929(0x136)]===0x0)return;_0x5b1f05=_0x2f342b;}_0x46fe54(_0x279318,_0x5b1f05),_0x54956a(_0x279318[_0x168929(0x173)],_0x5b1f05);});function _0x54956a(_0x4b41ab,_0xaf2725){const _0x16b759=_0x2349a0,_0x2fa496=_0xaf2725[_0x16b759(0x1e2)]()[_0x16b759(0x1f6)],_0x1b766d=_0x4b41ab[_0x16b759(0x1cb)]();if(_0x1b766d==undefined)return;const _0x2fa74a=_0x1b766d+_0x2fa496-_0x4b41ab['height']()/0x2+_0xaf2725[_0x16b759(0x216)]()/0x2;_0x4b41ab[_0x16b759(0x212)]({'scrollTop':_0x2fa74a},0x1f4);}const _0x58ceb5=(_0x2c389b,_0x5b0b92)=>_0x2bd42c(void 0x0,void 0x0,void 0x0,function*(){const _0x4c014b=_0x2349a0,_0x6fe0c4=_0x2c389b[_0x4c014b(0x149)]['val'](),_0x89958b={'nodeId':_0x6fe0c4,'rootNodeId':_0x5b0b92[_0x4c014b(0x15a)],'isType':_0x2c389b[_0x4c014b(0x199)][_0x4c014b(0x1e5)]||![]},_0x51d9e9=_0x1d6f22(_0x2c389b),_0x42e464=yield _0x11e5f3(_0x51d9e9,_0x89958b);if(!_0x42e464)return;yield _0x5a0ac0(_0x2c389b,_0x42e464,_0x2c389b['$tree']);});function _0x4f8f52(_0x2e43a5,_0x266889,_0x10c492,_0x1c08e3){return _0x2bd42c(this,void 0x0,void 0x0,function*(){const _0x9221b5=_0x3bf1;if(_0x266889[_0x9221b5(0x12d)](_0x9221b5(0x1cd))){console[_0x9221b5(0x221)](_0x9221b5(0x21d));return;}if(_0x266889['hasClass']('loading')){console[_0x9221b5(0x221)](_0x9221b5(0x171));return;}_0x266889[_0x9221b5(0x220)](_0x9221b5(0x177)),_0x266889['append'](_0x9221b5(0x244));try{_0x266889[_0x9221b5(0x1bf)]('ul')[_0x9221b5(0x172)]();const {references:_0x336808}=yield _0x10c492(_0x266889,_0x1c08e3);_0x336808[_0x9221b5(0x215)]((_0xc1c818,_0x5c042e)=>{const _0x293a99=_0x9221b5;var _0x426dea,_0x157150;return(((_0x426dea=_0xc1c818[_0x293a99(0x12f)])===null||_0x426dea===void 0x0?void 0x0:_0x426dea['name'])||'')[_0x293a99(0x156)](((_0x157150=_0x5c042e['browseName'])===null||_0x157150===void 0x0?void 0x0:_0x157150[_0x293a99(0x185)])||'');});for(const _0x363a66 of _0x336808){if(_0x2e43a5[_0x9221b5(0x199)]['filter']&&!_0x2e43a5[_0x9221b5(0x199)]['filter'](_0x363a66))continue;const _0x3597aa=_0x4dfa8a(_0x363a66);_0x266889[_0x9221b5(0x1bf)]('ul')[_0x9221b5(0x210)](_0x3597aa);}_0x266889[_0x9221b5(0x220)](_0x9221b5(0x1cd));}catch(_0x3b2087){_0x266889[_0x9221b5(0x1bf)]('ul')[_0x9221b5(0x210)](_0x9221b5(0x1a9)+_0x3b2087[_0x9221b5(0x239)]+_0x9221b5(0x196)),console['log'](_0x9221b5(0x1b4),_0x3b2087);}_0x266889[_0x9221b5(0x242)](_0x9221b5(0x1b3))[_0x9221b5(0x1dd)](),_0x266889[_0x9221b5(0x1a4)]('loading');});}function _0x1d6f22(_0x4af6f5){const _0x338f05=_0x2349a0,_0x540157={'baseUrl':_0x4af6f5['options']['baseUrl'],'endpointNode':typeof _0x4af6f5[_0x338f05(0x199)]['endpointNode']===_0x338f05(0x20a)?_0x4af6f5[_0x338f05(0x199)][_0x338f05(0x206)]():_0x4af6f5['options'][_0x338f05(0x206)],'endpoint':typeof _0x4af6f5['options']['endpoint']===_0x338f05(0x20a)?_0x4af6f5[_0x338f05(0x199)][_0x338f05(0x209)]():_0x4af6f5[_0x338f05(0x199)][_0x338f05(0x209)]};return _0x540157;}function _0x1e62ca(_0x32c90e,_0xaa0b8d){return _0x2bd42c(this,void 0x0,void 0x0,function*(){const _0x29b24a=_0x3bf1;if(_0xaa0b8d[_0x29b24a(0x12d)](_0x29b24a(0x1cd))){_0xaa0b8d[_0x29b24a(0x1a4)](_0x29b24a(0x1ed))['addClass'](_0x29b24a(0x22b)),_0xaa0b8d[_0x29b24a(0x1bf)]('ul')['toggle']();return;}const _0x175bb4=_0x1d6f22(_0x32c90e),_0x462616=!_0x32c90e['options'][_0x29b24a(0x1e5)]?_0x1427e0:_0x363c75;try{yield _0x4f8f52(_0x32c90e,_0xaa0b8d,_0x462616,_0x175bb4),_0xaa0b8d[_0x29b24a(0x1a4)](_0x29b24a(0x1ed))[_0x29b24a(0x220)](_0x29b24a(0x22b));}catch(_0x129145){_0xaa0b8d[_0x29b24a(0x1a4)](_0x29b24a(0x1ed))['addClass'](_0x29b24a(0x22b)),console[_0x29b24a(0x221)](_0x29b24a(0x181),_0x129145);}});}const _0x27e23f={'browseName':{'namespaceIndex':0x0,'name':_0x2349a0(0x15b)},'nodeClass':_0x2349a0(0x23d),'nodeId':_0x2349a0(0x1d9),'displayName':{'text':'Objects'},'typeDefinition':_0x2ed4b1},_0x2a0e42=()=>{const _0x598708=_0x2349a0;$[_0x598708(0x233)](_0x598708(0x133),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>_0x27e23f,'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x2bd42c(this,void 0x0,void 0x0,function*(){const _0x54b563=_0x3bf1,_0xbbeea4=this;if(_0xbbeea4[_0x54b563(0x226)]==undefined){const _0x5c8e62=typeof _0xbbeea4[_0x54b563(0x199)]['parentNode']===_0x54b563(0x20a)?_0xbbeea4[_0x54b563(0x199)]['parentNode'][_0x54b563(0x1ca)](_0xbbeea4):_0xbbeea4['options']['parentNode'];if(_0x5c8e62 instanceof Promise){const _0x4a79a7=yield _0x5c8e62;_0xbbeea4[_0x54b563(0x226)]=_0x4a79a7;}else _0xbbeea4[_0x54b563(0x226)]=_0x5c8e62;}return _0xbbeea4[_0x54b563(0x226)]||_0x27e23f;});},'reset'(){return _0x2bd42c(this,void 0x0,void 0x0,function*(){const _0x44a3c7=_0x3bf1,_0x162e74=this,_0x2e1f13=_0x162e74;_0x2e1f13[_0x44a3c7(0x226)]=undefined,_0x162e74[_0x44a3c7(0x13f)][_0x44a3c7(0x172)]();const _0xaf3c57=yield this['resolveParentNode'](),_0xf17260=_0x4dfa8a(_0xaf3c57);_0x162e74[_0x44a3c7(0x13f)][_0x44a3c7(0x210)](_0xf17260),_0x162e74[_0x44a3c7(0x1cc)]=_0xaf3c57;});},'verify'(_0xca655f){const _0x55a6f4=_0x598708,_0x4be208=this,_0x12bae4=_0x1d6f22(_0x4be208);_0x4de9af(_0x12bae4,_0xca655f,_0x4be208[_0x55a6f4(0x149)],_0x4be208[_0x55a6f4(0x137)])['then'](_0x3f47a9=>{const _0x5b374f=_0x55a6f4;!_0x3f47a9?_0x4be208[_0x5b374f(0x1da)]['addClass']('input-error'):_0x4be208[_0x5b374f(0x1da)][_0x5b374f(0x1a4)](_0x5b374f(0x1a6));});},'_hideMenu'(_0x5b0393){const _0x3ec8a3=_0x598708,_0x27fded=this;$(document)[_0x3ec8a3(0x195)](_0x3ec8a3(0x207)),_0x5b0393[_0x3ec8a3(0x213)](),_0x5b0393[_0x3ec8a3(0x24e)]({'height':'auto'});if(_0x5b0393[_0x3ec8a3(0x1c5)][_0x3ec8a3(0x18e)]){var _0x2f5c0e=[];_0x5b0393['find']('input[type=\x22checkbox\x22]')['each'](function(){const _0x58bacf=_0x3ec8a3;$(this)['prop'](_0x58bacf(0x1a7))&&_0x2f5c0e['push']($(this)[_0x58bacf(0x20b)](_0x58bacf(0x148)));}),_0x5b0393[_0x3ec8a3(0x12e)](_0x2f5c0e);}_0x27fded[_0x3ec8a3(0x23b)]['is'](_0x3ec8a3(0x1a5))?_0x27fded[_0x3ec8a3(0x149)][_0x3ec8a3(0x24f)](_0x3ec8a3(0x1a0)):_0x27fded['$selectTrigger'][_0x3ec8a3(0x24f)](_0x3ec8a3(0x1a0));},'_createMenu'(_0x4ce1b7,_0xc81941,_0x539ff8){const _0x11572b=_0x598708;var _0xed06ad=this;const _0x50805b=$('<div>')['addClass'](_0x11572b(0x19c));return _0x50805b[_0x11572b(0x1c5)]=_0xc81941,_0x50805b[_0x11572b(0x12e)]=_0x539ff8,_0x4ce1b7['forEach'](_0xa8449=>{const _0x28f67a=_0x11572b;typeof _0xa8449===_0x28f67a(0x1e4)&&(_0xa8449={'value':_0xa8449,'label':_0xa8449});var _0x42d34e=$(_0x28f67a(0x205))['attr']('value',_0xa8449[_0x28f67a(0x148)])['appendTo'](_0x50805b);_0xa8449[_0x28f67a(0x190)]&&_0x42d34e[_0x28f67a(0x249)](_0xa8449[_0x28f67a(0x190)]);_0xa8449[_0x28f67a(0x254)]&&_0x42d34e[_0x28f67a(0x243)](_0x28f67a(0x254),_0xa8449[_0x28f67a(0x254)]);if(_0xa8449[_0x28f67a(0x15d)]){if(_0xa8449[_0x28f67a(0x15d)][_0x28f67a(0x159)]('<')===0x0)$(_0xa8449[_0x28f67a(0x15d)])[_0x28f67a(0x1ab)](_0x42d34e);else _0xa8449[_0x28f67a(0x15d)][_0x28f67a(0x159)]('/')!==-0x1?$(_0x28f67a(0x202),{'class':_0x28f67a(0x142),'style':_0x28f67a(0x21e)+_0xa8449[_0x28f67a(0x15d)]+_0x28f67a(0x1fa)+_0xa8449['icon']+');'})[_0x28f67a(0x1ab)](_0x42d34e):$(_0x28f67a(0x202),{'class':_0x28f67a(0x1ac)+_0xa8449['icon']})['prependTo'](_0x42d34e);}else _0x42d34e[_0x28f67a(0x24e)]({'paddingLeft':_0x28f67a(0x161)});!_0xa8449[_0x28f67a(0x15d)]&&!_0xa8449[_0x28f67a(0x190)]&&_0x42d34e['text'](_0xa8449[_0x28f67a(0x148)]);var _0x4ea242;_0xc81941[_0x28f67a(0x18e)]&&(_0x4ea242=$(_0x28f67a(0x1c9))[_0x28f67a(0x24e)](_0x28f67a(0x167),_0x28f67a(0x144))['data']('value',_0xa8449['value'])[_0x28f67a(0x1ab)](_0x42d34e)['on'](_0x28f67a(0x1fb),function(_0x5430b3){_0x5430b3['preventDefault']();})),_0x42d34e['on']('click',function(_0x35b55d){const _0x403e79=_0x28f67a;_0x35b55d['preventDefault'](),_0x35b55d[_0x403e79(0x1c8)](),!_0xc81941[_0x403e79(0x18e)]?(_0x539ff8(_0xa8449['value']),_0xed06ad[_0x403e79(0x1fd)](_0x50805b)):_0x4ea242['prop'](_0x403e79(0x1a7),!_0x4ea242[_0x403e79(0x243)]('checked'));});}),_0x50805b[_0x11572b(0x24e)]({'display':_0x11572b(0x144)}),_0x50805b['on'](_0x11572b(0x1ef),function(_0x2f2760){const _0x4a80ba=_0x11572b;if(_0x2f2760[_0x4a80ba(0x12c)]===0x28)_0x2f2760['preventDefault'](),$(this)['children'](_0x4a80ba(0x182))['next']()['trigger'](_0x4a80ba(0x1a0));else{if(_0x2f2760[_0x4a80ba(0x12c)]===0x26)_0x2f2760['preventDefault'](),$(this)[_0x4a80ba(0x1bf)](_0x4a80ba(0x182))[_0x4a80ba(0x147)]()[_0x4a80ba(0x24f)](_0x4a80ba(0x1a0));else _0x2f2760[_0x4a80ba(0x12c)]===0x1b&&(_0x2f2760['preventDefault'](),_0xed06ad[_0x4a80ba(0x1fd)](_0x50805b));}_0x2f2760[_0x4a80ba(0x1c8)]();}),_0x50805b;},'disarmClick':![],'_showMenu'(_0x7a539c,_0x4c1ec0){const _0x4d76ef=_0x598708;if(this[_0x4d76ef(0x247)]){this[_0x4d76ef(0x247)]=![];return;}var _0x127bd0=this,_0x25c4e7=_0x4c1ec0[_0x4d76ef(0x192)](),_0x16ec1b=_0x4c1ec0[_0x4d76ef(0x216)](),_0x16c7c9=_0x7a539c['height'](),_0x7cdf51=_0x16ec1b+_0x25c4e7['top'];_0x7cdf51+_0x16c7c9-$(document)[_0x4d76ef(0x1cb)]()>$(window)[_0x4d76ef(0x216)]()&&(_0x7cdf51-=_0x7cdf51+_0x16c7c9-$(window)[_0x4d76ef(0x216)]()+0x5),_0x7cdf51<0x0&&(_0x7a539c[_0x4d76ef(0x216)](_0x16c7c9+_0x7cdf51),_0x7cdf51=0x0),_0x7a539c[_0x4d76ef(0x24e)]({'top':_0x7cdf51+'px','left':_0x25c4e7[_0x4d76ef(0x1c6)]+'px'}),_0x7a539c['slideDown'](0x64),this['_delay'](function(){const _0x4f8815=_0x4d76ef;_0x127bd0[_0x4f8815(0x180)][_0x4f8815(0x220)](_0x4f8815(0x17c)),$(document)['on'](_0x4f8815(0x207),function(_0x538b04){const _0x3589ec=_0x4f8815;!$(_0x538b04[_0x3589ec(0x24b)])[_0x3589ec(0x1f2)](_0x7a539c)[_0x3589ec(0x136)]&&_0x127bd0[_0x3589ec(0x1fd)](_0x7a539c),$(_0x538b04[_0x3589ec(0x24b)])['closest'](_0x4c1ec0)[_0x3589ec(0x136)]&&(_0x127bd0['disarmClick']=!![],_0x538b04[_0x3589ec(0x16f)]());});});},'_showTypeMenu'(){const _0x141c08=_0x598708,_0xb53b96=this;this[_0x141c08(0x1e0)](_0xb53b96[_0x141c08(0x1d5)],_0xb53b96[_0x141c08(0x1da)]),_0xb53b96['$dropdown'][_0x141c08(0x213)]();const _0x365f9b=_0xb53b96['selectedMenuItem'];var _0x3bfe02=_0xb53b96[_0x141c08(0x1d5)][_0x141c08(0x242)](_0x141c08(0x198)+_0x365f9b+'\x27');setTimeout(function(){const _0x95beae=_0x141c08;_0x3bfe02[_0x95beae(0x24f)](_0x95beae(0x1a0));},0x78);},'_initMenu'(){const _0x50ae71=_0x598708,_0xfac701=this;_0xfac701[_0x50ae71(0x1b0)][_0x50ae71(0x248)](_0x50ae71(0x238),-0x1),_0xfac701[_0x50ae71(0x1b0)]['on'](_0x50ae71(0x15c),function(_0x9ff506){const _0x1a0821=_0x50ae71;_0x9ff506[_0x1a0821(0x16f)]();});_0xfac701[_0x50ae71(0x1d5)]&&_0xfac701[_0x50ae71(0x1d5)]['remove']();const _0x549b0b=[{'label':_0x50ae71(0x249),'value':'t','title':_0x50ae71(0x1a3),'icon':_0x50ae71(0x1cf)},{'label':'msg.','value':'msg','title':_0x50ae71(0x16b),'icon':_0x50ae71(0x14d)},{'label':_0x50ae71(0x1c1),'value':'n','icon':_0x50ae71(0x13e)},{'label':_0x50ae71(0x158),'value':'na','icon':'<i\x20class=\x22fa\x20fa-bookmark\x22/> \x20'},{'label':'NodeId\x20with\x20namespace\x20Urn','value':_0x50ae71(0x18f),'icon':_0x50ae71(0x237)},{'label':'BrowsePath','value':'b','icon':'<i\x20class=\x22fa\x20fa-tag\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/> '},{'label':_0x50ae71(0x1f8),'value':'ab','icon':'<i\x20class=\x22fa\x20fa-bookmark\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/> '}],_0x265fa4=_0x33111(_0xfac701[_0x50ae71(0x149)]['val']()),_0x3b2537=_0x549b0b['find'](_0x135fc5=>_0x135fc5['value']===_0x265fa4);_0xfac701['$selectLabel'][_0x50ae71(0x172)]()['append'](_0x50ae71(0x1ce)+((_0x3b2537===null||_0x3b2537===void 0x0?void 0x0:_0x3b2537[_0x50ae71(0x254)])||'')+_0x50ae71(0x19a)+((_0x3b2537===null||_0x3b2537===void 0x0?void 0x0:_0x3b2537[_0x50ae71(0x15d)])||'')+_0x50ae71(0x1ec)),_0xfac701[_0x50ae71(0x1d7)]=_0x265fa4;const _0x4d2dce=this;_0xfac701[_0x50ae71(0x1d5)]=this[_0x50ae71(0x169)](_0x549b0b,{},_0x22d77d=>{const _0x113627=_0x50ae71,_0x3eedca=_0x2f83f4(_0x22d77d);_0x3eedca&&_0x4d2dce[_0x113627(0x1aa)](_0x3eedca);const _0x1b6cbb=_0x549b0b[_0x113627(0x242)](_0x39882a=>_0x39882a['value']===_0x22d77d);_0xfac701[_0x113627(0x1d7)]=_0x22d77d,_0xfac701[_0x113627(0x20c)][_0x113627(0x172)]()[_0x113627(0x210)](_0x113627(0x1ce)+((_0x1b6cbb===null||_0x1b6cbb===void 0x0?void 0x0:_0x1b6cbb[_0x113627(0x254)])||'')+_0x113627(0x19a)+((_0x1b6cbb===null||_0x1b6cbb===void 0x0?void 0x0:_0x1b6cbb['icon'])||'')+_0x113627(0x1ec));}),_0xfac701[_0x50ae71(0x1d5)]['appendTo'](document[_0x50ae71(0x1de)]),_0xfac701[_0x50ae71(0x1d5)][_0x50ae71(0x213)](),_0xfac701[_0x50ae71(0x1b0)][_0x50ae71(0x152)]();},'mode'(){const _0x11db9a=_0x598708,_0x139ee2=this;return _0x2f83f4(_0x139ee2[_0x11db9a(0x1d7)]);},'_create'(){const _0x2c3757=_0x598708,_0x43956d=this;_0x43956d[_0x2c3757(0x149)]=this['element'],_0x43956d[_0x2c3757(0x149)][_0x2c3757(0x24e)](_0x2c3757(0x19d),_0x2c3757(0x144)),_0x43956d[_0x2c3757(0x23b)]=_0x43956d[_0x2c3757(0x149)][_0x2c3757(0x223)](_0x2c3757(0x1af))[_0x2c3757(0x18a)]()[_0x2c3757(0x220)](_0x2c3757(0x134)),_0x43956d[_0x2c3757(0x1da)]=$(_0x2c3757(0x17d)),_0x43956d[_0x2c3757(0x1da)][_0x2c3757(0x220)](_0x2c3757(0x208)),_0x43956d[_0x2c3757(0x149)][_0x2c3757(0x1f5)](_0x43956d['$combo']),_0x43956d[_0x2c3757(0x139)]=$('<div/>')[_0x2c3757(0x220)]('input-group'),_0x43956d[_0x2c3757(0x1da)][_0x2c3757(0x210)](_0x43956d[_0x2c3757(0x139)]),_0x43956d['$inputGroup']['append'](_0x43956d[_0x2c3757(0x149)]),_0x43956d[_0x2c3757(0x24a)]=$(_0x2c3757(0x1c3)),_0x43956d[_0x2c3757(0x149)][_0x2c3757(0x14a)](_0x43956d[_0x2c3757(0x24a)]),_0x43956d['$toggleTreeBtn']['on'](_0x2c3757(0x153),function(){return _0x2bd42c(this,void 0x0,void 0x0,function*(){const _0x233e30=_0x3bf1;var _0x1e54a9;let _0x409ad8=![],_0x3ee82c;!_0x43956d[_0x233e30(0x173)]['is'](_0x233e30(0x1a5))&&(_0x43956d[_0x233e30(0x137)]['hide'](),_0x3ee82c=yield _0x43956d[_0x233e30(0x229)](),(_0x3ee82c!==_0x43956d[_0x233e30(0x1cc)]||((_0x1e54a9=_0x43956d[_0x233e30(0x1cc)])===null||_0x1e54a9===void 0x0?void 0x0:_0x1e54a9[_0x233e30(0x15a)])!==_0x3ee82c[_0x233e30(0x15a)])&&(yield _0x43956d[_0x233e30(0x155)]()),_0x409ad8=!![]),_0x43956d[_0x233e30(0x173)][_0x233e30(0x21a)](),_0x409ad8&&(yield _0x58ceb5(_0x43956d,_0x3ee82c));});}),_0x43956d[_0x2c3757(0x178)]=$(_0x2c3757(0x140)),_0x43956d[_0x2c3757(0x149)][_0x2c3757(0x14a)](_0x43956d['$verifyBtn']),_0x43956d['$verifyBtn']['on'](_0x2c3757(0x153),()=>{const _0x10641b=_0x2c3757,_0x22e483=_0x43956d[_0x10641b(0x23f)]();if(!_0x22e483)return;this['verify'](_0x22e483);});const _0x5c3b7e=_0x24d57d=>_0x2bd42c(this,void 0x0,void 0x0,function*(){const _0x43855d=_0x2c3757,_0x450079=this,_0x31d81c=_0x450079[_0x43855d(0x23f)]();if(!_0x31d81c)return;const _0x18e0dd=_0x1d6f22(_0x450079),{data:_0x240a12,json:_0x82fe51}=yield _0x23c661(_0x18e0dd,_0x24d57d);if(_0x240a12[_0x43855d(0x154)]!==0xc8)return;if(_0x82fe51[_0x43855d(0x145)][_0x43855d(0x1bb)](/Good/)){const _0x1cf95d=_0x587d50(_0x82fe51,_0x31d81c);_0x450079[_0x43855d(0x149)][_0x43855d(0x1d1)](_0x1cf95d),_0x450079[_0x43855d(0x149)][_0x43855d(0x24f)]('change');}});{_0x43956d[_0x2c3757(0x180)]=$(_0x2c3757(0x1af)),_0x43956d[_0x2c3757(0x149)][_0x2c3757(0x245)](_0x43956d['$uiSelect']),_0x43956d['$selectTrigger']=$(_0x2c3757(0x13a))[_0x2c3757(0x1ab)](_0x43956d[_0x2c3757(0x180)]),$(_0x2c3757(0x218))[_0x2c3757(0x21a)](!![])[_0x2c3757(0x151)](_0x43956d[_0x2c3757(0x1b0)]),_0x43956d[_0x2c3757(0x1b0)]['on'](_0x2c3757(0x153),function(_0x39c29a){const _0x1d8d0f=_0x2c3757;_0x39c29a['preventDefault'](),_0x39c29a['stopPropagation'](),_0x43956d[_0x1d8d0f(0x15f)]();}),_0x43956d[_0x2c3757(0x1b0)]['on'](_0x2c3757(0x1ef),function(_0x3423d8){const _0x51f7b7=_0x2c3757;_0x3423d8['keyCode']===0x28&&_0x43956d[_0x51f7b7(0x15f)](),_0x3423d8[_0x51f7b7(0x1c8)]();})['on'](_0x2c3757(0x1a0),function(){const _0x306988=_0x2c3757;_0x43956d['$uiSelect'][_0x306988(0x220)](_0x306988(0x17c));})['on'](_0x2c3757(0x1f9),function(){const _0x189f29=_0x2c3757;_0x43956d[_0x189f29(0x180)][_0x189f29(0x1a4)]('red-ui-typedInput-focus');}),_0x43956d[_0x2c3757(0x20c)]=$('<span\x20class=\x22red-ui-typedInput-type-label\x22></span>')['appendTo'](_0x43956d['$selectTrigger']);}this['_initMenu']();!_0x43956d[_0x2c3757(0x149)][_0x2c3757(0x248)]('placeholder')&&_0x43956d[_0x2c3757(0x149)]['attr']('placeholder',_0x2c3757(0x163));_0x43956d[_0x2c3757(0x137)]=$(_0x2c3757(0x16d)),_0x43956d['$info'][_0x2c3757(0x213)](),_0x43956d[_0x2c3757(0x1da)]['append'](_0x43956d['$info']),_0x43956d[_0x2c3757(0x173)]=$(_0x2c3757(0x17d))[_0x2c3757(0x220)](_0x2c3757(0x204))[_0x2c3757(0x213)]()['appendTo'](_0x43956d[_0x2c3757(0x1da)]),_0x43956d['$tree']=$(_0x2c3757(0x253))[_0x2c3757(0x151)](_0x43956d[_0x2c3757(0x173)]),this[_0x2c3757(0x155)]();const _0x55326a=(_0x33dad0,_0x5dd9ea)=>{const _0x5efd31=_0x2c3757,_0x18fc81=0x14,_0x158f25=0x14,_0x361fc6=_0x33dad0[_0x5efd31(0x192)](),_0x30a475=_0x5dd9ea;if(_0x30a475[_0x5efd31(0x165)]>=_0x361fc6['left']&&_0x30a475[_0x5efd31(0x165)]<=_0x361fc6[_0x5efd31(0x1c6)]+_0x18fc81&&_0x30a475['pageY']>=_0x361fc6[_0x5efd31(0x1f6)]&&_0x30a475['pageY']<=_0x361fc6[_0x5efd31(0x1f6)]+_0x158f25)return!![];return![];},_0x5c89bf=_0x17c184=>_0x2bd42c(this,void 0x0,void 0x0,function*(){const _0x2f813b=_0x2c3757;if(_0x17c184['hasClass'](_0x2f813b(0x1ed)))_0x1e62ca(_0x43956d,_0x17c184);else{if(_0x17c184[_0x2f813b(0x12d)](_0x2f813b(0x22b)))_0x17c184[_0x2f813b(0x1bf)]('ul')[_0x2f813b(0x21a)](),_0x17c184[_0x2f813b(0x18b)](_0x2f813b(0x252));else{if(_0x17c184[_0x2f813b(0x1bf)]('ul')[_0x2f813b(0x1bf)]()[_0x2f813b(0x136)]>0x0)_0x17c184[_0x2f813b(0x1bf)]('ul')['toggle'](),_0x17c184[_0x2f813b(0x18b)]('expandable\x20expanded');else;}}});_0x43956d[_0x2c3757(0x13f)]['on'](_0x2c3757(0x17e),'li',function(_0x970cf7){const _0x525c03=_0x2c3757;var _0x4b1842,_0x51b48c;_0x970cf7[_0x525c03(0x1c8)]();let _0x516e82=$(this);if(_0x55326a(_0x516e82,_0x970cf7))_0x5c89bf(_0x516e82);else{const _0x338d52=_0x516e82[_0x525c03(0x20b)](_0x525c03(0x148)),_0x59a8e0=_0x516e82[_0x525c03(0x20b)](_0x525c03(0x24d));if(_0x43956d[_0x525c03(0x199)][_0x525c03(0x1a8)]&&!_0x43956d[_0x525c03(0x199)][_0x525c03(0x1a8)](_0x59a8e0))return;_0x43956d[_0x525c03(0x149)][_0x525c03(0x20b)](_0x525c03(0x24d),_0x59a8e0),((_0x4b1842=_0x59a8e0[_0x525c03(0x1e1)])===null||_0x4b1842===void 0x0?void 0x0:_0x4b1842[_0x525c03(0x249)])||((_0x51b48c=_0x59a8e0['browseName'])===null||_0x51b48c===void 0x0?void 0x0:_0x51b48c['name'])||_0x59a8e0[_0x525c03(0x15a)]['toString'](),_0x5c3b7e(_0x338d52),_0x43956d[_0x525c03(0x173)][_0x525c03(0x213)]();}}),_0x43956d[_0x2c3757(0x13f)]['on'](_0x2c3757(0x153),'li',function(_0x51200f){const _0x25bd4e=_0x2c3757;_0x51200f[_0x25bd4e(0x1c8)]();let _0x161f23=$(this);_0x55326a(_0x161f23,_0x51200f)&&_0x5c89bf(_0x161f23),_0x46fe54(_0x43956d,_0x161f23);}),$(document)['on']('click',function(_0x5cdbc1){const _0x4edeb1=_0x2c3757;!$(_0x5cdbc1[_0x4edeb1(0x24b)])[_0x4edeb1(0x1f2)](_0x43956d[_0x4edeb1(0x1da)])[_0x4edeb1(0x136)]&&_0x43956d[_0x4edeb1(0x173)][_0x4edeb1(0x213)]();});}});},_0x1bff4e=()=>{const _0xffd759=_0x2349a0,_0x225886=$(_0xffd759(0x225)),_0x401b6e=_0x225886[_0xffd759(0x1d1)](),_0x28d010=RED[_0xffd759(0x222)][_0xffd759(0x1df)](_0x401b6e);if(!_0x28d010)return undefined;const {endpoint:_0x3719cc,securityMode:_0x2b299a,securityPolicy:_0x146b7d,userIdentityType:_0x3e95a8,credentials:_0x3d2a2d,namespaceAliases:_0xe27ad}=_0x28d010,_0x1f32bb={'endpoint':_0x3719cc,'securityMode':_0x2b299a,'securityPolicy':_0x146b7d,'userIdentityType':_0x3e95a8,'credentials':_0x3d2a2d,'namespaceAliases':_0xe27ad};return _0x1f32bb;},_0x25df0d=()=>{const _0x51a3fb=_0x2349a0,_0x259100=$(_0x51a3fb(0x225)),_0x44082c=_0x259100[_0x51a3fb(0x1d1)](),_0x3dcdc3=_0x1bff4e();if(!_0x3dcdc3)return undefined;const _0x330b26=_0x3dcdc3[_0x51a3fb(0x240)];return Object[_0x51a3fb(0x1e6)]({'namespaceAliases':_0x330b26,'id':_0x44082c},_0x3dcdc3);},_0x1f84f2=()=>{return{'endpointNode':_0x25df0d};},_0x4eaa76=()=>{const _0x590349=_0x2349a0;debugger;const _0x42158c=$(_0x590349(0x1ff));console[_0x590349(0x221)](_0x590349(0x16e),_0x42158c[_0x590349(0x136)]);if(_0x42158c[_0x590349(0x136)]){console[_0x590349(0x221)](_0x590349(0x1d2));const _0x5c2172=$(_0x590349(0x157),{'src':_0x590349(0x176),'scrolling':'no','style':_0x590349(0x1c0),'allowtransparency':_0x590349(0x18c),'width':'180px','height':_0x590349(0x251)});_0x42158c[_0x590349(0x210)](_0x5c2172),_0x5c2172[_0x590349(0x24e)]({'position':_0x590349(0x236),'right':_0x590349(0x1f3),'bottom':'16px'});}};RED['nodes'][_0x2349a0(0x234)](_0x2349a0(0x1f4),{'category':'opcua','color':_0x2349a0(0x1dc),'align':_0x2349a0(0x21f),'icon':_0x2349a0(0x168),'paletteLabel':_0x2349a0(0x12b),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x2349a0(0x23a)},'attributeId':{'value':_0x2349a0(0x217),'required':!![]},'nodeId':{'value':'','required':![]},'outputType':{'value':_0x2349a0(0x217),'required':!![]}},'outputs':0x2,'label'(){return this['name']||'OPCUA\x20Client\x20Read';},'labelStyle'(){const _0x26821f=_0x2349a0;return this[_0x26821f(0x185)]?'node_label_italic':'';},'oneditprepare'(){const _0x239669=_0x2349a0,_0x3f706d=this;_0x2a0e42(),_0x4eaa76(),_0x3f706d[_0x239669(0x1ea)]=0x1;const _0x13c19f=$(_0x239669(0x15e));_0x13c19f[_0x239669(0x1e8)](Object[_0x239669(0x1e6)](Object['assign']({},_0x1f84f2()),{'isSelectable'(_0x17ad60){const _0x360173=_0x239669;return _0x17ad60[_0x360173(0x230)]===_0x360173(0x194);}}));},'oneditsave'(){}});}()));
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgyYmQ0MmMiLCJfMHg0MGU0NTUiLCJfMHgzNzY0OTYiLCJfMHgzZTI4MDQiLCJfMHgzN2ZjNTEiLCJfMHg0YzBhYzQiLCJfMHg1MjRjYzEiLCJfMHgxZDBiYTYiLCJQcm9taXNlIiwiXzB4NDg0YmMzIiwiXzB4MTk2Y2FjIiwiXzB4MjFiYTY1IiwiXzB4MjI0ODcxIiwiXzB4NDhhNmY4IiwiXzB4YzY1YzBkIiwiXzB4M2MxMDIwIiwiXzB4MTZhZTJkIiwiXzB4MWQ1ZDM5IiwiXzB4NGYzZDFlIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NTBlOTYwIiwiXzB4MzVhZWQ4IiwiXzB4MWE4NzIyIiwiXzB4MzMwNWI2IiwiRXJyb3IiLCJfMHhhMjNmZjMiLCJfMHgyZWQ0YjEiLCJfMHg1YjE0NzIiLCJfMHgzNGE3ZTQiLCJfMHg0OWUzMzQiLCJfMHgxZTY1ZDIiLCJfMHg0NDk1ZDciLCJfMHgzNmY5NDYiLCJfMHgzNjA5ZjMiLCJfMHhjYTg1MmIiLCJfMHg1YTdiMWUiLCJfMHgxZTdjOTQiLCJfMHgyZjgzOWYiLCJfMHg0ZmM1YTQiLCJfMHgyZjM2OTIiLCJfMHg0ZWY0MzgiLCJfMHgxODBiNzgiLCJfMHgxYmMzNzEiLCJfMHg2NzM0NWQiLCJfMHg0ZTA0NTUiLCJfMHg0YmY0OTkiLCJfMHgzNTE0Y2EiLCJfMHgxZDUxNDIiLCJlbmRwb2ludE5vZGUiLCJfMHg1NDg5NjYiLCJlbmRwb2ludCIsIl8weDc1ZTBhZCIsImJhc2VVcmwiLCJfMHgxNzY2ODQiLCJfMHg0ODM0NTEiLCJfMHgzMDU0MzAiLCJfMHgxMjJhYjYiLCJfMHgyMDg1NzUiLCJfMHg1OTRiNzciLCJPYmplY3QiLCJfMHgxNWRmNGQiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4NTU3NDg4IiwiXzB4MjE4YjQxIiwiXzB4MzVkNDY5IiwiXzB4MmU0ODNkIiwiXzB4MTFlNWYzIiwiXzB4NDQwNGZiIiwiXzB4MTBjOGNhIiwiXzB4NWVlNDJiIiwiXzB4M2NiYjkyIiwiXzB4NWIyZDJhIiwibm9kZUlkIiwiXzB4NGI5NzJhIiwicm9vdE5vZGVJZCIsIl8weDEzNTNhZiIsImlzVHlwZSIsIl8weDRmMDUxOSIsIl8weDMxYzZhZSIsIl8weDU1YTgzNyIsIl8weDIwMzFkZiIsIl8weDM1YzZiNSIsIl8weDU4N2Q1MCIsIl8weDFmNDk0ZiIsIl8weDNiMGQ3YiIsIl8weDNjZDBkNiIsIl8weDEyZmFkMCIsIl8weDI5Nzg3ZCIsIl8weDQ3ZjFiZSIsIl8weDIwYTQwNSIsIl8weDMzMTExIiwiXzB4NGQ2ZTU0IiwiXzB4MTc0MGQwIiwiXzB4MmY4M2Y0IiwiXzB4NGE2NWU2IiwiXzB4NGI5YjA0IiwiXzB4MjNjNjYxIiwiXzB4M2ZlNTg3IiwiXzB4NDhiZDI3IiwiXzB4ZmY1ZTliIiwiXzB4NGNiYmRhIiwiXzB4NjA2NGYxIiwiXzB4MjZjZDVkIiwiXzB4MjFkZWFmIiwiXzB4MWM0MTIxIiwiXzB4MzRlNGFhIiwiXzB4M2VlNTliIiwiUkVEIiwiXzB4YjU0ZmExIiwiXzB4MTZiNDhiIiwiXzB4NTQ1NTI3IiwiXzB4NGRlOWFmIiwiXzB4MjdjYjRkIiwiXzB4MTJhMTE0IiwiXzB4M2Q4YjM5IiwiXzB4MmYxNTM2IiwiXzB4ZTI3M2IxIiwiXzB4MjE3OTFiIiwiXzB4MTQ4MmNiIiwiXzB4M2U2YTkzIiwiXzB4MmZiZDQxIiwiXzB4M2M0ZTdhIiwiXzB4MjUzODRjIiwianNvbiIsIl8weDU2ZTViOCIsImRhdGEiLCJfMHg2OTBlODYiLCJfMHgxNzIyOGEiLCJfMHgxZTA2OGEiLCJfMHg1N2JjYzIiLCJzZXRUaW1lb3V0IiwiXzB4NTgyMDgyIiwiXzB4MTg4M2I3IiwiXzB4MTQyN2UwIiwiXzB4MWU2YTIyIiwiXzB4ODZjYTUxIiwiXzB4MzExOWI5IiwiXzB4MTJkZDMzIiwiXzB4M2NjMzBlIiwiXzB4M2I2YzBlIiwiXzB4MzYzYzc1IiwiXzB4MmI2Y2RjIiwiXzB4MzEwMDdiIiwiXzB4NTIzOTI4IiwiXzB4M2E2MDhiIiwiXzB4NGRmYThhIiwiXzB4NDY2ZmM3IiwiXzB4MTllZjVjIiwiXzB4MjNjYmFiIiwiXzB4Zjk5YzAxIiwiXzB4MzU1YjdjIiwiXzB4MWFiMTYwIiwiJCIsIl8weDQxNmNlZSIsIl8weDVkNGQyYSIsImljb24iLCJfMHgzYTUyYWMiLCJjb2xvciIsIl8weDc3YjU0YiIsIl8weGQwYTcxNyIsIl8weDNjMTViMCIsIl8weDE5YWJhZCIsIl8weDU2M2NhYiIsIl8weDI2YTcxOSIsIl8weDQ2ZmU1NCIsIl8weDMyMTFjNyIsIl8weDM4NGNmNSIsIl8weDVhMGFjMCIsIl8weDI3OTMxOCIsIl8weDQ3MWFmOSIsIl8weDFhMjA5OCIsIl8weDViMWYwNSIsIl8weDFkMzgwMCIsIl8weDEwNjQwNSIsIl8weDFlNjJjYSIsIl8weDJmMzQyYiIsIl8weDU0OTU2YSIsIl8weDRiNDFhYiIsIl8weGFmMjcyNSIsIl8weDJmYTQ5NiIsIl8weDFiNzY2ZCIsInVuZGVmaW5lZCIsIl8weDJmYTc0YSIsIl8weDU4Y2ViNSIsIl8weDJjMzg5YiIsIl8weDViMGI5MiIsIl8weDZmZTBjNCIsIl8weDg5OTU4YiIsIl8weDUxZDllOSIsIl8weDFkNmYyMiIsIl8weDQyZTQ2NCIsIl8weDRmOGY1MiIsIl8weDJlNDNhNSIsIl8weDI2Njg4OSIsIl8weDEwYzQ5MiIsIl8weDFjMDhlMyIsInJlZmVyZW5jZXMiLCJfMHgzMzY4MDgiLCJfMHhjMWM4MTgiLCJfMHg1YzA0MmUiLCJfMHg0MjZkZWEiLCJfMHgxNTcxNTAiLCJfMHgzNjNhNjYiLCJfMHgzNTk3YWEiLCJfMHgzYjIwODciLCJfMHg0YWY2ZjUiLCJfMHg1NDAxNTciLCJfMHgzMmM5MGUiLCJfMHhhYTBiOGQiLCJfMHgxNzViYjQiLCJfMHg0NjI2MTYiLCJfMHgxMjkxNDUiLCJfMHgyN2UyM2YiLCJfMHgyYTBlNDIiLCJfMHhiYmVlYTQiLCJfMHg1YzhlNjIiLCJfMHg0YTc5YTciLCJfMHgxNjJlNzQiLCJfMHgyZTFmMTMiLCJfMHhhZjNjNTciLCJfMHhmMTcyNjAiLCJfMHhjYTY1NWYiLCJfMHg0YmUyMDgiLCJfMHgxMmJhZTQiLCJfMHgzZjQ3YTkiLCJfMHg1YjAzOTMiLCJfMHgyN2ZkZWQiLCJkb2N1bWVudCIsIl8weDJmNWMwZSIsIl8weDRjZTFiNyIsIl8weGM4MTk0MSIsIl8weDUzOWZmOCIsIl8weGVkMDZhZCIsIl8weDUwODA1YiIsIl8weGE4NDQ5IiwiXzB4NDJkMzRlIiwiXzB4NGVhMjQyIiwiXzB4NTQzMGIzIiwiXzB4MzViNTVkIiwiXzB4MmYyNzYwIiwiXzB4N2E1MzljIiwiXzB4NGMxZWMwIiwiXzB4MTI3YmQwIiwiXzB4MjVjNGU3IiwiXzB4MTZlYzFiIiwiXzB4MTZjN2M5IiwiXzB4N2NkZjUxIiwid2luZG93IiwiXzB4NTM4YjA0IiwiXzB4YjUzYjk2IiwiXzB4MzY1ZjliIiwiXzB4M2JmZTAyIiwiXzB4ZmFjNzAxIiwiXzB4OWZmNTA2IiwiXzB4NTQ5YjBiIiwiXzB4MjY1ZmE0IiwiXzB4M2IyNTM3IiwiXzB4MTM1ZmM1IiwiXzB4NGQyZGNlIiwiXzB4MjJkNzdkIiwiXzB4M2VlZGNhIiwiXzB4MWI2Y2JiIiwiXzB4Mzk4ODJhIiwiXzB4MTM5ZWUyIiwiXzB4NDM5NTZkIiwiXzB4MWU1NGE5IiwiXzB4NDA5YWQ4IiwiXzB4M2VlODJjIiwiXzB4MjJlNDgzIiwiXzB4NWMzYjdlIiwiXzB4MjRkNTdkIiwiXzB4NDUwMDc5IiwiXzB4MzFkODFjIiwiXzB4MThlMGRkIiwiXzB4MjQwYTEyIiwiXzB4ODJmZTUxIiwiXzB4MWNmOTVkIiwiXzB4MzljMjlhIiwiXzB4MzQyM2Q4IiwiXzB4NTUzMjZhIiwiXzB4MzNkYWQwIiwiXzB4NWRkOWVhIiwiXzB4MThmYzgxIiwiXzB4MTU4ZjI1IiwiXzB4MzYxZmM2IiwiXzB4MzBhNDc1IiwiXzB4NWM4OWJmIiwiXzB4MTdjMTg0IiwiXzB4OTcwY2Y3IiwiXzB4NGIxODQyIiwiXzB4NTFiNDhjIiwiXzB4NTE2ZTgyIiwiXzB4MzM4ZDUyIiwiXzB4NTlhOGUwIiwiXzB4NTEyMDBmIiwiXzB4MTYxZjIzIiwiXzB4NWNkYmMxIiwiXzB4MWJmZjRlIiwiXzB4MjI1ODg2IiwiXzB4NDAxYjZlIiwiXzB4MjhkMDEwIiwiXzB4MzcxOWNjIiwic2VjdXJpdHlNb2RlIiwiXzB4MmIyOTlhIiwic2VjdXJpdHlQb2xpY3kiLCJfMHgxNDZiN2QiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4M2U5NWE4IiwiY3JlZGVudGlhbHMiLCJfMHgzZDJhMmQiLCJuYW1lc3BhY2VBbGlhc2VzIiwiXzB4ZTI3YWQiLCJfMHgxZjMyYmIiLCJfMHgyNWRmMGQiLCJfMHgyNTkxMDAiLCJfMHg0NDA4MmMiLCJfMHgzZGNkYzMiLCJfMHgzMzBiMjYiLCJfMHgxZjg0ZjIiLCJfMHg0ZWFhNzYiLCJfMHg0MjE1OGMiLCJfMHg1YzIxNzIiLCJfMHgzZjcwNmQiLCJfMHgxM2MxOWYiLCJfMHgxN2FkNjAiXSwibWFwcGluZ3MiOiI2bkxBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxTQUNyRCxHQUFLLENBQUFILFNBQUEsRUFBTSxDQUFBQSxTQUFBLENBQUlLLE9BQUosQ0FBTixDQUFMLENBQXlCLFNBQVVDLFNBQVYsQ0FBbUJDLFNBQW5CLEMseUJBQzVCLFNBQVNDLFNBQVQsQ0FBbUJDLFNBQW5CLEMseUJBQTRCLEcsQ0FBTUMsU0FBQSxDQUFLVCxTQUFBLEMsZ0JBQUEsRUFBZVEsU0FBZixDQUFMLEMsRUFBK0IsTUFBT0UsU0FBUCxDLENBQVlKLFNBQUEsQ0FBT0ksU0FBUCxDLEdBQzdFLFNBQVNDLFNBQVQsQ0FBa0JDLFNBQWxCLEMseUJBQTJCLEcsQ0FBTUgsU0FBQSxDQUFLVCxTQUFBLEMsZ0JBQUEsRUFBbUJZLFNBQW5CLENBQUwsQyxFQUFtQyxN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Q0FGRixDLE1BSU4sQ0FBTSxDLE9BQUUsQyxFQUFGLENBSkEsQyxVQUtOLENBQVUsQyxPQUFFLEMsRUFBRixDLFVBQWEsQyxJQUFiLEMsTUFBNkIsQyxnQkFBN0IsQ0FMSixDLGFBT04sQ0FBYSxDLE9BQUUsQyxnQkFBRixDLFVBQWtCLEMsSUFBbEIsQ0FQUCxDLFFBUU4sQ0FBUSxDLE9BQUUsQyxFQUFGLEMsVUFBYSxDLEdBQWIsQ0FSRixDLFlBU04sQ0FBWSxDLE9BQUUsQyxnQkFBRixDLFVBQWtCLEMsSUFBbEIsQ0FUTixDQU4rQixDLFNBa0J6QyxDLEdBbEJ5QyxDLE9BbUJ6QyxFLFFBQ1csSyxNQUFBLEcsMkJBcEI4QixDLFlBc0J6QyxFLGtDQUNXLEssZ0JBQUEsRSxtQkFBQSxDLElBdkI4QixDLGVBeUJ6QyxFLDJCQUNVdU4sU0FBQSxDQUFPLEksQ0FDYjdHLFNBQUEsRSxDQUNBMEcsU0FBQSxFLENBQ0FHLFNBQUEsQyxnQkFBQSxFLEdBRkEsQ0FHQSxNQUFNQyxTQUFBLENBQVUzSyxDQUFBLEMsZ0JBQUEsQ0FBaEIsQ0FDQTJLLFNBQUEsQyxnQkFBQSxFQUFvQjFRLE1BQUEsQyxnQkFBQSxFQUFjQSxNQUFBLEMsUUFBQSxFQUFjLEVBQWQsQ0FBa0JxUSxTQUFBLEVBQWxCLENBQWQsQ0FBaUUsQyxjQUFFLENBQWFNLFNBQWIsQyxrQ0FDeEVBLFNBQUEsQyxnQkFBQSxJLGtCQURzRSxDQUFqRSxDQUFwQixDLEVBL0JxQyxDLFlBbUN6QyxFLEVBbkN5QyxDQUE3QyxDLEVBNWdDSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sLCBJdGVyYXRvciAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiRGF0YVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXRleHQtd2lkdGhcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJicm93c2UgZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB3YWxrQmFja3dhcmQgPSAoX2EsIF9iKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIF9iXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCB7IG5vZGVJZCwgcm9vdE5vZGVJZCwgaXNUeXBlIH0pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L3dhbGstYmFja3dhcmRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgcm9vdE5vZGVJZCxcbiAgICAgICAgICAgICAgICBpc1R5cGUsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIGpzb24uYnJvd3NlUGF0aDtcbiAgICB9KTtcbiAgICBjb25zdCBjaG9vc2VOb2RlSWQgPSAoZGF0YSwgbW9kZSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXNDb2RlICE9PSBcIkdvb2RcIikge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGEucmVxdWVzdGVkTm9kZUlkO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSBcImJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5icF9pbmRleGVkO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWRCcm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEuYnBfYWxpYXNlZCB8fCBkYXRhLmJwX2luZGV4ZWQ7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZE5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm5vZGVJZF9hbGlhc2VkIHx8IGRhdGEubm9kZUlkX25zdTtcbiAgICAgICAgICAgIGNhc2UgXCJuc3VOb2RlSURcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5ub2RlSWRfbnN1O1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGNhc2UgXCJub2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5ub2RlSWQ7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IG1ha2VUb29sdGlwID0gKGRhdGEpID0+IHtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzQ29kZSAhPT0gXCJHb29kXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBgc3RhdHVzQ29kZTogJHtkYXRhLnN0YXR1c0NvZGV9YDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxldCBzdHIgPSBbXTtcbiAgICAgICAgICAgIHN0ci5wdXNoKGBub2RlSWQ6ICR7ZGF0YS5ub2RlSWR9YCk7XG4gICAgICAgICAgICBzdHIucHVzaChgYnJvd3NlIHBhdGg6ICR7ZGF0YS5icF9pbmRleGVkfWApO1xuICAgICAgICAgICAgc3RyLnB1c2goYG5vZGUgY2xhc3M6ICR7Tm9kZUNsYXNzW2RhdGEubm9kZUNsYXNzXX1gKTtcbiAgICAgICAgICAgIGlmIChkYXRhLm5vZGVJZF9uc3UpIHtcbiAgICAgICAgICAgICAgICBzdHIucHVzaChgbnN1IG5vZGVJZDogJHtkYXRhLm5vZGVJZF9uc3V9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5ub2RlSWRfYWxpYXNlZCkge1xuICAgICAgICAgICAgICAgIHN0ci5wdXNoKGBhbGlhc2VkIE5vZGVJZDogJHtkYXRhLm5vZGVJZF9hbGlhc2VkfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuYnBfaW5kZXhlZCkge1xuICAgICAgICAgICAgICAgIHN0ci5wdXNoKGBhbGlhc2VkIGJyb3dzZVBhdGg6ICR7ZGF0YS5icF9hbGlhc2VkfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHN0ci5qb2luKFwiXFxuXCIpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBmdW5jdGlvbiBmaWd1cmVPdXRNb2RlKGVuaGFuY2VkTm9kZUlkKSB7XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXm5zdT0vKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwibnN1Tm9kZUlEXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9eKG5zPS4qOyk/KGl8YnxzfGcpPS8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJub2RlSWRcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL15uc2E9LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcImFsaWFzZWROb2RlSWRcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL14oXFwvfFxcLilbMC05XSs6LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcImJyb3dzZVBhdGhcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL14oXFwvfFxcLikuKjovKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiYnJvd3NlUGF0aFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZpZ3VyZU91dE1lblVJdGVtVmFsdWUoc3RyKSB7XG4gICAgICAgIGNvbnN0IG1vZGUgPSBmaWd1cmVPdXRNb2RlKHN0cik7XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSBcIm5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5cIjtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkTm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibmFcIjtcbiAgICAgICAgICAgIGNhc2UgXCJuc3VOb2RlSURcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuc3VcIjtcbiAgICAgICAgICAgIGNhc2UgXCJicm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYlwiO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWRCcm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYWJcIjtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwidFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRvTW9kZSh2KSB7XG4gICAgICAgIGxldCBtb2RlO1xuICAgICAgICBzd2l0Y2ggKHYpIHtcbiAgICAgICAgICAgIGNhc2UgXCJuXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwibm9kZUlkXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwibmFcIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJhbGlhc2VkTm9kZUlkXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwibnN1XCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwibnN1Tm9kZUlEXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiYlwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcImJyb3dzZVBhdGhcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJhYlwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcImFsaWFzZWRCcm93c2VQYXRoXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1vZGU7XG4gICAgfVxuICAgIGNvbnN0IF9jYWxsQ2hlY2tOb2RlSWQgPSAoX2EsIG5vZGVJZF8xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3QgZUlkID0gZW5kcG9pbnROb2RlLmlkO1xuICAgICAgICBjb25zdCBuID0gUkVELm5vZGVzLm5vZGUoZUlkKTtcbiAgICAgICAgY29uc29sZS5sb2cobi5uYW1lc3BhY2VBbGlhc2VzKTtcbiAgICAgICAgbi5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICBjb25zdCBuYW1lc3BhY2VBbGlhc2VzID0gZW5kcG9pbnROb2RlLm5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2VBbGlhc2VzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIHsganNvbiwgZGF0YSB9O1xuICAgIH0pO1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKF9hLCBtb2RlXzEsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBtb2RlXzEsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbW9kZSwgJGlucHV0RWxlbWVudCwgJGluZm8pIHtcbiAgICAgICAgY29uc3QgZW5oYW5jZWROb2RlSWQgPSAkaW5wdXRFbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCB7IGpzb24sIGRhdGEgfSA9IHlpZWxkIF9jYWxsQ2hlY2tOb2RlSWQoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIGVuaGFuY2VkTm9kZUlkKTtcbiAgICAgICAgY29uc3Qgc2V0Tm90aWZpY2F0aW9uID0gKHRleHQsIGNsYXNzTmFtZSkgPT4ge1xuICAgICAgICAgICAgJGluZm8udGV4dCh0ZXh0KS5hZGRDbGFzcyhcInN0ZXJmaXZlLWluZm9cIikuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICRpbmZvLnNob3coKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRpbmZvLnJlbW92ZUNsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgZW5oYW5jZWROb2RlSWQsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvb2x0aXAgPSBtYWtlVG9vbHRpcChqc29uKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LmF0dHIoXCJ0aXRsZVwiLCB0b29sdGlwKTtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZE5vZGVJZCA9IGNob29zZU5vZGVJZChqc29uLCBtb2RlKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChzZWxlY3RlZE5vZGVJZCk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIkdvb2RcIiwgXCJva1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGAke2VuaGFuY2VkTm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBmZXRjaENoaWxkcmVuKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUxKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDIgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTIpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbLi4uYnJvd3NlUmVzdWx0MS5yZWZlcmVuY2VzLCAuLi5icm93c2VSZXN1bHQyLnJlZmVyZW5jZXNdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHRlbXBsYXRlU1QgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc1N1YnR5cGVcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfCBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8IE5vZGVDbGFzcy5EYXRhVHlwZSB8IE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgZnVuY3Rpb24gZmV0Y2hTdWJ0eXBlcygkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlU1QpO1xuICAgICAgICAgICAgcmV0dXJuIGJyb3dzZVJlc3VsdDE7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSB8fCAhcmVmZXJlbmNlLm5vZGVJZCkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgdGl0bGUgPSBgKCR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfSkgJHsoKF9jID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5uYW1lKSB8fCAoKF9kID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QudGV4dCkgfHwgXCJcIn1gO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaSBrZXk9XCIke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX1cIn0+PHNwYW4gY2xhc3M9XCJ0cmVlLXRleHRcIiB0aXRsZT0ke3RpdGxlfT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTwvc3Bhbj48dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBmaW5kRWxlbWVudCA9IChub2RlSWQsICR0cmVlKSA9PiB7XG4gICAgICAgIHJldHVybiAkdHJlZS5maW5kKGBsaVtrZXk9XCIke25vZGVJZH1cIl1gKTtcbiAgICB9O1xuICAgIGNvbnN0IHNlbGVjdFNpbmdsZSA9ICh0aGF0LCAkbGkpID0+IHtcbiAgICAgICAgdGhhdC4kdHJlZS5maW5kKFwibGkgPiAudHJlZS10ZXh0XCIpLnJlbW92ZUNsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgIC8vIGNsZWFyIGFsbCBzZWxlY3RlZCBpdGVtc1xuICAgICAgICAkbGkuZmluZChcIi50cmVlLXRleHQ6Zmlyc3RcIikuYWRkQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICB9O1xuICAgIGNvbnN0IGF1dG9FeHBhbmQgPSAodGhhdCwgYnJvd3NlUGF0aCwgJHRyZWUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAvLyBleHBhbmQgdGhlIHRyZWUgdG8gc2hvdyB0aGUgbm9kZUlkXG4gICAgICAgIGxldCAkY3VycmVudCA9ICR0cmVlLmNoaWxkcmVuKFwiOmZpcnN0XCIpO1xuICAgICAgICBicm93c2VQYXRoLnJlbGF0aXZlUGF0aC5lbGVtZW50cyB8fCBbXTtcbiAgICAgICAgY29uc3Qgbm9kZUlkcyA9IGJyb3dzZVBhdGgubm9kZUlkcyB8fCBbXTtcbiAgICAgICAgaWYgKG5vZGVJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBuIG9mIG5vZGVJZHMpIHtcbiAgICAgICAgICAgIGlmICgkY3VycmVudC5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIGV4cGFuZCBhbmQgc2VsZWN0IHRoZSByaWdodCBlbGVtZW50XG4gICAgICAgICAgICAgICAgeWllbGQgX2V4cGFuZExpKHRoYXQsICRjdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gZmluZEVsZW1lbnQobiwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgaWYgKCRlbGVtZW50Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRjdXJyZW50ID0gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRjdXJyZW50KTtcbiAgICAgICAgc2Nyb2xsVG9MaSh0aGF0LiRkcm9wZG93biwgJGN1cnJlbnQpO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIHNjcm9sbFRvTGkoJGNvbnRhaW5lciwgJHRhcmdldExpKSB7XG4gICAgICAgIC8vIEdldCB0aGUgcG9zaXRpb24gb2YgdGhlIHRhcmdldCBpdGVtIHJlbGF0aXZlIHRvIGl0cyBjb250YWluZXJcbiAgICAgICAgY29uc3QgbGlQb3MgPSAkdGFyZ2V0TGkucG9zaXRpb24oKS50b3A7XG4gICAgICAgIC8vIEdldCB0aGUgY3VycmVudCBzY3JvbGwgcG9zaXRpb24gb2YgdGhlIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBjb250YWluZXJTY3JvbGxUb3AgPSAkY29udGFpbmVyLnNjcm9sbFRvcCgpO1xuICAgICAgICBpZiAoY29udGFpbmVyU2Nyb2xsVG9wID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgcG9zaXRpb24gdG8gc2Nyb2xsIHRvIChjdXJyZW50IHNjcm9sbCArIGl0ZW0ncyBwb3NpdGlvbilcbiAgICAgICAgLy8gQWRqdXN0IHRoaXMgY2FsY3VsYXRpb24gYmFzZWQgb24geW91ciBuZWVkc1xuICAgICAgICBjb25zdCBzY3JvbGxUbyA9IGNvbnRhaW5lclNjcm9sbFRvcCArIGxpUG9zIC0gJGNvbnRhaW5lci5oZWlnaHQoKSAvIDIgKyAkdGFyZ2V0TGkuaGVpZ2h0KCkgLyAyO1xuICAgICAgICAvLyBTY3JvbGwgdGhlIGNvbnRhaW5lciB0byBlbnN1cmUgdGhlIGl0ZW0gaXMgdmlzaWJsZVxuICAgICAgICAkY29udGFpbmVyLmFuaW1hdGUoe1xuICAgICAgICAgICAgc2Nyb2xsVG9wOiBzY3JvbGxUbyxcbiAgICAgICAgfSwgNTAwKTsgLy8gQWRqdXN0IHRoZSBkdXJhdGlvbiAoNTAwbXMpIGFzIG5lZWRlZFxuICAgIH1cbiAgICBjb25zdCByZWFjaFNlbGVjdGlvbiA9ICh0aGF0LCBwYXJlbnROb2RlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gdGhhdC4kaW5wdXQudmFsKCk7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICByb290Tm9kZUlkOiBwYXJlbnROb2RlLm5vZGVJZCxcbiAgICAgICAgICAgIGlzVHlwZTogdGhhdC5vcHRpb25zLmlzVHlwZVJlZiB8fCBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICBjb25zdCBicm93c2VQYXRoID0geWllbGQgd2Fsa0JhY2t3YXJkKGRhdGEsIG9wdGlvbnMpO1xuICAgICAgICBpZiAoIWJyb3dzZVBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB5aWVsZCBhdXRvRXhwYW5kKHRoYXQsIGJyb3dzZVBhdGgsIHRoYXQuJHRyZWUpO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgIC8vIHNvcnQgcmVmZXJlbmNlICAgYnkgYnJvd3NlTmFtZVxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXMuc29ydCgoYSwgYikgPT4geyB2YXIgX2EsIF9iOyByZXR1cm4gKCgoX2EgPSBhLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5uYW1lKSB8fCBcIlwiKS5sb2NhbGVDb21wYXJlKCgoX2IgPSBiLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCBcIlwiKTsgfSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlQ29ubmVjdGlvbih0aGF0KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBmdW5jdGlvbiBfZXhwYW5kTGkodGhhdCwgJGxpKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeWllbGQgX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJGxpLCBmLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWZhdWx0UGFyZW50Tm9kZSA9IHtcbiAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgIH07XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+IGRlZmF1bHRQYXJlbnROb2RlLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Ll9fcGFyZW50Tm9kZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlLmNhbGwodGhhdCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc2MgPSB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gZGVzYztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC5fX3BhcmVudE5vZGUgfHwgZGVmYXVsdFBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFsc28gcmVzZXQgcGFyZW50IG5vZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHRoYXQ7XG4gICAgICAgICAgICAgICAgICAgIGEuX19wYXJlbnROb2RlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSB5aWVsZCB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkobW9kZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICAgICAgaW50ZXJuYWxWZXJpZnkoZGF0YSwgbW9kZSwgdGhhdC4kaW5wdXQsIHRoYXQuJGluZm8pLnRoZW4oKHN1Y2Nlc3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcImlucHV0LWVycm9yXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kY29tYm8ucmVtb3ZlQ2xhc3MoXCJpbnB1dC1lcnJvclwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9oaWRlTWVudShtZW51KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub2ZmKFwibW91c2Vkb3duLnJlZC11aS10eXBlZElucHV0LWNsb3NlLXByb3BlcnR5LXNlbGVjdFwiKTtcbiAgICAgICAgICAgICAgICBtZW51LmhpZGUoKTtcbiAgICAgICAgICAgICAgICBtZW51LmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKG1lbnUub3B0cy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWQgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgbWVudS5maW5kKCdpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0nKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLnByb3AoXCJjaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQucHVzaCgkKHRoaXMpLmRhdGEoXCJ2YWx1ZVwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBtZW51LmNhbGxiYWNrKHNlbGVjdGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoYXQuJGVsZW1lbnREaXYuaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIC8veHggfSBlbHNlIGlmICh0aGlzLiRvcHRpb25TZWxlY3RUcmlnZ2VyLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgLy94eCAgICAgdGhhdC4kb3B0aW9uU2VsZWN0VHJpZ2dlci50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZU1lbnUobWVudU9wdGlvbnMsIG9wdHMsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lbnUgPSAkKFwiPGRpdj5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS10eXBlZElucHV0LW9wdGlvbnMgc3RlcmZpdmUtb25saW5lLW1lbnVcIik7XG4gICAgICAgICAgICAgICAgbWVudS5vcHRzID0gb3B0cztcbiAgICAgICAgICAgICAgICBtZW51LmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICAgICAgICAgICAgbWVudU9wdGlvbnMuZm9yRWFjaCgob3B0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcHQgPSB7IHZhbHVlOiBvcHQsIGxhYmVsOiBvcHQgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgb3AgPSAkKCc8YSBocmVmPVwiI1wiPjwvYT4nKS5hdHRyKFwidmFsdWVcIiwgb3B0LnZhbHVlKS5hcHBlbmRUbyhtZW51KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdC5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AudGV4dChvcHQubGFiZWwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHQudGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wLnByb3AoXCJ0aXRsZVwiLCBvcHQudGl0bGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHQuaWNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdC5pY29uLmluZGV4T2YoXCI8XCIpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChvcHQuaWNvbikucHJlcGVuZFRvKG9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9wdC5pY29uLmluZGV4T2YoXCIvXCIpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCI8aT5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJyZWQtdWktdHlwZWRJbnB1dC1pY29uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBcIm1hc2staW1hZ2U6IHVybChcIiArIG9wdC5pY29uICsgXCIpOyAtd2Via2l0LW1hc2staW1hZ2U6IHVybChcIiArIG9wdC5pY29uICsgXCIpO1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLnByZXBlbmRUbyhvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiPGk+XCIsIHsgY2xhc3M6IFwicmVkLXVpLXR5cGVkSW5wdXQtaWNvbiBcIiArIG9wdC5pY29uIH0pLnByZXBlbmRUbyhvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC5jc3MoeyBwYWRkaW5nTGVmdDogXCIxOHB4XCIgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHQuaWNvbiAmJiAhb3B0LmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC50ZXh0KG9wdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIGNiO1xuICAgICAgICAgICAgICAgICAgICBpZiAob3B0cy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2IgPSAkKCc8aW5wdXQgdHlwZT1cImNoZWNrYm94XCI+JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY3NzKFwicG9pbnRlci1ldmVudHNcIiwgXCJub25lXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmRhdGEoXCJ2YWx1ZVwiLCBvcHQudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByZXBlbmRUbyhvcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAub24oXCJtb3VzZWRvd25cIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgb3Aub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghb3B0cy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKG9wdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5faGlkZU1lbnUobWVudSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYi5wcm9wKFwiY2hlY2tlZFwiLCAhY2IucHJvcChcImNoZWNrZWRcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtZW51LmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwibm9uZVwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG1lbnUub24oXCJrZXlkb3duXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXlDb2RlID09PSA0MCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBET1dOXG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNoaWxkcmVuKFwiOmZvY3VzXCIpLm5leHQoKS50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZXZ0LmtleUNvZGUgPT09IDM4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVQXG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNoaWxkcmVuKFwiOmZvY3VzXCIpLnByZXYoKS50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZXZ0LmtleUNvZGUgPT09IDI3KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBFU0NBUEVcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5faGlkZU1lbnUobWVudSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBtZW51O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRpc2FybUNsaWNrOiBmYWxzZSxcbiAgICAgICAgICAgIF9zaG93TWVudShtZW51LCByZWxhdGl2ZVRvKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlzYXJtQ2xpY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhcm1DbGljayA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB2YXIgcG9zID0gcmVsYXRpdmVUby5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICB2YXIgaGVpZ2h0ID0gcmVsYXRpdmVUby5oZWlnaHQoKTtcbiAgICAgICAgICAgICAgICB2YXIgbWVudUhlaWdodCA9IG1lbnUuaGVpZ2h0KCk7XG4gICAgICAgICAgICAgICAgdmFyIHRvcCA9IGhlaWdodCArIHBvcy50b3A7XG4gICAgICAgICAgICAgICAgaWYgKHRvcCArIG1lbnVIZWlnaHQgLSAkKGRvY3VtZW50KS5zY3JvbGxUb3AoKSA+ICQod2luZG93KS5oZWlnaHQoKSkge1xuICAgICAgICAgICAgICAgICAgICB0b3AgLT0gdG9wICsgbWVudUhlaWdodCAtICQod2luZG93KS5oZWlnaHQoKSArIDU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0b3AgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIG1lbnUuaGVpZ2h0KG1lbnVIZWlnaHQgKyB0b3ApO1xuICAgICAgICAgICAgICAgICAgICB0b3AgPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBtZW51LmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogdG9wICsgXCJweFwiLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBwb3MubGVmdCArIFwicHhcIixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtZW51LnNsaWRlRG93bigxMDApO1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlbGF5KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QuYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1mb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJtb3VzZWRvd24ucmVkLXVpLXR5cGVkSW5wdXQtY2xvc2UtcHJvcGVydHktc2VsZWN0XCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdChtZW51KS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9oaWRlTWVudShtZW51KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKGV2ZW50LnRhcmdldCkuY2xvc2VzdChyZWxhdGl2ZVRvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmRpc2FybUNsaWNrID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfc2hvd1R5cGVNZW51KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dNZW51KHRoYXQuJG1lbnUsIHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdHlwZSA9IHRoYXQuc2VsZWN0ZWRNZW51SXRlbTtcbiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWQgPSB0aGF0LiRtZW51LmZpbmQoXCJbdmFsdWU9J1wiICsgdHlwZSArIFwiJ1wiKTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgIH0sIDEyMCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2luaXRNZW51KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIuYXR0cihcInRhYmluZGV4XCIsIC0xKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLm9uKFwibW91c2Vkb3duLnJlZC11aS10eXBlZElucHV0LWZvY3VzLWJsb2NrXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoYXQuJG1lbnUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kbWVudS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gZmEtaWQtY2FyZFxuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGVMaXN0ID0gW1xuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcInRleHRcIiwgdmFsdWU6IFwidFwiLCB0aXRsZTogXCJWYWx1ZSBpcyBub3QgdmVyaWZpZWRcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtZm9udFwiL2k+ICcgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwibXNnLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwibXNnXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJub2RlIGlkIG9yICBicm93c2UgcGF0aCBjb21lcyBmcm9tIGluamVjdGVkIG1zZyBwYXJhbWV0ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWVudmVsb3BlLW9wZW4tb1wiLz4nLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIk5vZGVJZFwiLCB2YWx1ZTogXCJuXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLXRhZ1wiLz4xICZuYnNwOyAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiQWxpYXNlZCBOb2RlSWRcIiwgdmFsdWU6IFwibmFcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtYm9va21hcmtcIi8+Jm5ic3A7ICcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJOb2RlSWQgd2l0aCBuYW1lc3BhY2UgVXJuXCIsIHZhbHVlOiBcIm5zdVwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1pZC1jYXJkXCIvPiZuYnNwOyAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiQnJvd3NlUGF0aFwiLCB2YWx1ZTogXCJiXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLXRhZ1wiLz48aSBjbGFzcz1cImZhIGZhLWZpZ2h0ZXItamV0XCIvPiZuYnNwOycgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiQWxpYXNlZCBCcm93c2UgUGF0aFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiYWJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWJvb2ttYXJrXCIvPjxpIGNsYXNzPVwiZmEgZmEtZmlnaHRlci1qZXRcIi8+Jm5ic3A7JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGEgPSBmaWd1cmVPdXRNZW5VSXRlbVZhbHVlKHRoYXQuJGlucHV0LnZhbCgpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBlID0gdHlwZUxpc3QuZmluZCgoeCkgPT4geC52YWx1ZSA9PT0gYSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0TGFiZWwuZW1wdHkoKS5hcHBlbmQoYDxzcGFuIHRpdGxlPSR7KGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS50aXRsZSkgfHwgXCJcIn0+Jm5ic3A7ICR7KGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS5pY29uKSB8fCBcIlwifTwvc3Bhbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LnNlbGVjdGVkTWVudUl0ZW0gPSBhO1xuICAgICAgICAgICAgICAgIGNvbnN0IHR0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRtZW51ID0gdGhpcy5fY3JlYXRlTWVudSh0eXBlTGlzdCwge30sICh2KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZGUgPSB0b01vZGUodik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvbiBNZW51IHNlbGVjdGVkICFcbiAgICAgICAgICAgICAgICAgICAgICAgIHR0LnZlcmlmeShtb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gdHlwZUxpc3QuZmluZCgoeCkgPT4geC52YWx1ZSA9PT0gdik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuc2VsZWN0ZWRNZW51SXRlbSA9IHY7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdExhYmVsLmVtcHR5KCkuYXBwZW5kKGA8c3BhbiB0aXRsZT0keyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUudGl0bGUpIHx8IFwiXCJ9PiZuYnNwOyAkeyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUuaWNvbikgfHwgXCJcIn08L3NwYW4+YCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kbWVudS5hcHBlbmRUbyhkb2N1bWVudC5ib2R5KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRtZW51LmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLnNob3coKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtb2RlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHJldHVybiB0b01vZGUodGhhdC5zZWxlY3RlZE1lbnVJdGVtKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmNzcyhcImJvcmRlclwiLCBcIm5vbmVcIik7XG4gICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQuYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRlbGVtZW50RGl2ID0gdGhhdC4kaW5wdXQud3JhcChcIjxkaXY+XCIpLnBhcmVudCgpLmFkZENsYXNzKFwibWFpbi13cmFwcGVyXCIpO1xuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gQ29tYm8gYnJvd3NlclxuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICAvLyB0aGF0LiRjb21iby5hZGRDbGFzcyhcInJlZC11aS10eXBlZElucHV0LWlucHV0LXdyYXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiBhZGQgYnV0dG9uIG9uIHRoZSByaWdodCBzaWRlXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiB0b2dnbGVUcmVlQnRuXG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24gdGl0bGU9XCJvcGVuIE9QQ1VBIEFkZHJlc3NTcGFjZSBCcm93c2VyXCI+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmFmdGVyKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0geWllbGQgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiAmJiAoeWllbGQgcmVhY2hTZWxlY3Rpb24odGhhdCwgcGFyZW50Tm9kZSkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiB2ZXJpZnlCdG5cbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uIHRpdGxlPVwidmVyaWZ5IG5vZGVJZCBvciBicm93c2VQYXRoXCI+PGkgY2xhc3M9XCJmYSBmYS1yZWZyZXNoXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmFmdGVyKHRoYXQuJHZlcmlmeUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RlID0gdGhhdC5tb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KG1vZGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplSW5wdXQgPSAoaW5wdXQpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZGUgPSB0aGF0Lm1vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25uZWN0aW9uRGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGpzb24gfSA9IHlpZWxkIF9jYWxsQ2hlY2tOb2RlSWQoY29ubmVjdGlvbkRhdGEsIGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkTm9kZUlkID0gY2hvb3NlTm9kZUlkKGpzb24sIG1vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKHNlbGVjdGVkTm9kZUlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgICAgICAvLyBjcmVhdGUgdGhlIHByZXBlbmRlZCBidXR0b25cbiAgICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0ID0gJChcIjxkaXY+XCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5iZWZvcmUodGhhdC4kdWlTZWxlY3QpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyID0gJCgnPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCIwXCI+PC9idXR0b24+JykucHJlcGVuZFRvKHRoYXQuJHVpU2VsZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgJCgnPGkgY2xhc3M9XCJyZWQtdWktdHlwZWRJbnB1dC1pY29uIGZhIGZhLWNhcmV0LWRvd25cIj48L2k+JykudG9nZ2xlKHRydWUpLmFwcGVuZFRvKHRoYXQuJHNlbGVjdFRyaWdnZXIpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9zaG93VHlwZU1lbnUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbihcImtleWRvd25cIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXlDb2RlID09PSA0MCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvd25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9zaG93VHlwZU1lbnUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbihcImZvY3VzXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0LmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAub24oXCJibHVyXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhciBvcHQgPSB0aGF0LnR5cGVNYXBbdGhhdC5wcm9wZXJ0eVR5cGVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgKG9wdC5oYXNWYWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0LnJlbW92ZUNsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RMYWJlbCA9ICQoJzxzcGFuIGNsYXNzPVwicmVkLXVpLXR5cGVkSW5wdXQtdHlwZS1sYWJlbFwiPjwvc3Bhbj4nKS5hcHBlbmRUbyh0aGF0LiRzZWxlY3RUcmlnZ2VyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5faW5pdE1lbnUoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIHRlbXBvcmF0eSBpbmZvIHBhbmVsXG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gZHJvcCBkb3duIHRyZWVcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCkuYXBwZW5kVG8odGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKS5hcHBlbmRUbyh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgLy8gdGhhdC4kZHJvcGRvd24uc2hvdygpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbkxlZnRTaXplID0gKCRsaSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkbGkub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2dnbGVFeHBhbnNpb24gPSAoJGxpKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfZXhwYW5kTGkodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImRibGNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplSW5wdXQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIGNvbnRhaW5pbmc6XG4gICAgICogIC0gdGhlIGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LFxuICAgICAqICAtIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICogIC0gY3JlZGVudGlhbHNcbiAgICAgKiAgLSBuYW1lc3BhY2VBbGlhc2VzXG4gICAgICpcbiAgICAgKiBleHRyYWN0ZWQgZnJvbSB0aGUgdWkgd2lkZ2V0ICNub2RlLWlucHV0LWVuZHBvaW50XG4gICAgICovXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBSRUQuKGVuZHBvaW50SWQpO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCBjcmVkZW50aWFscywgbmFtZXNwYWNlQWxpYXNlcyB9ID0gcmVkTm9kZTtcbiAgICAgICAgY29uc3QgcmV0VmFsdWUgPSB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlcyxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHJldFZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5hbWVzcGFjZUFsaWFzZXMgPSBlbmRwb2ludE5yLm5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHsgbmFtZXNwYWNlQWxpYXNlcywgaWQ6IGVuZHBvaW50SWQgfSwgZW5kcG9pbnROcik7XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGluc3RhbGxGZWVkYmFja1dpZGdldCA9ICgpID0+IHtcbiAgICAgICAgZGVidWdnZXI7XG4gICAgICAgIGNvbnN0IHRyYXlDb250ZW50ID0gJChcIi5yZWQtdWktdHJheS1ib2R5XCIpO1xuICAgICAgICBjb25zb2xlLmxvZyhcImluc3RhbGxGZWVkYmFja1dpZGdldCBcIiwgdHJheUNvbnRlbnQubGVuZ3RoKTtcbiAgICAgICAgaWYgKHRyYXlDb250ZW50Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnN0YWxsaW5nIGlmcmFtZVwiKTtcbiAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgaWZyYW1lIGVsZW1lbnRcbiAgICAgICAgICAgIGNvbnN0IGlmcmFtZSA9ICQoXCI8aWZyYW1lPjwvaWZyYW1lPlwiLCB7XG4gICAgICAgICAgICAgICAgc3JjOiBcIi9vcGN1YS1mb3Itbm9kZS1yZWQvc3VwcG9ydC1mcmFtZS5odG1sXCIsXG4gICAgICAgICAgICAgICAgc2Nyb2xsaW5nOiBcIm5vXCIsXG4gICAgICAgICAgICAgICAgc3R5bGU6IFwiYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyOjNweFwiLFxuICAgICAgICAgICAgICAgIGFsbG93dHJhbnNwYXJlbmN5OiBcInRydWVcIixcbiAgICAgICAgICAgICAgICB3aWR0aDogXCIxODBweFwiLFxuICAgICAgICAgICAgICAgIGhlaWdodDogXCIzMHB4XCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgaWZyYW1lIHRvIHRoZSBmZWVkYmFjayBlbGVtZW50XG4gICAgICAgICAgICB0cmF5Q29udGVudC5hcHBlbmQoaWZyYW1lKTtcbiAgICAgICAgICAgIC8vIFBvc2l0aW9uIHRoZSBmZWVkYmFjayBlbGVtZW50IGF0IHRoZSBib3R0b20gcmlnaHQgb2YgdGhlIHRyYXkgY29udGVudFxuICAgICAgICAgICAgaWZyYW1lLmNzcyh7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICAgICAgICByaWdodDogXCIyMHB4XCIsXG4gICAgICAgICAgICAgICAgYm90dG9tOiBcIjE2cHhcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLVJlYWRcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcInJlYWRcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICAvLyBDb21tb25cbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgLy8gZm9yIGFjdGlvbiByZWFkXG4gICAgICAgICAgICBhdHRyaWJ1dGVJZDogeyB2YWx1ZTogXCJWYWx1ZVwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgbm9kZUlkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIG91dHB1dFR5cGU6IHsgdmFsdWU6IFwiVmFsdWVcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIENsaWVudCBSZWFkXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBpbnN0YWxsRmVlZGJhY2tXaWRnZXQoKTtcbiAgICAgICAgICAgIG5vZGUuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIGNvbnN0ICRub2RlSWQgPSAkKFwiI25vZGUtaW5wdXQtbm9kZUlkXCIpO1xuICAgICAgICAgICAgJG5vZGVJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHsgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Client2-Read">
|
11
11
|
<h3>
|