@opcua/for-node-red 2.1.8 → 2.2.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opcua/for-node-red",
3
- "version": "2.1.8",
3
+ "version": "2.2.1",
4
4
  "description": "The Node-RED node to communicate via OPC UA, powered NodeOPCUA and developed by Sterfive's team",
5
5
  "repository": {
6
6
  "type": "git",
@@ -4,8 +4,8 @@
4
4
  </style>
5
5
 
6
6
  <script type="text/javascript">
7
- function _0x29e9(){const _0x3316b3=['nodeBrowser','HasChild','text','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','Good','#node-input-resultMask','HasComponent','match','left','apply','catch','replaceWith','json','pageY','expandable','rgba(61,\x2060,\x204,\x200.525)','toString','function','references','sterfive.flagEditor','Invalid','trigger','!!failure!!','selected','<div\x20class=\x22custom-option\x22\x20data-value=\x22','endpoint','fa-cog','reference','OpcUa-Endpoint2','statusCode','show','push','HasTypeDefinition','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','fa-list-alt','already\x20loading','stringify','displayName','sterfive-dropdown','append','target','isSelectable','referenceTypeId','value','grey','<div\x20class=\x22custom-select\x22></div>','browseName','5183810tFhdAO','Unknown\x20bit\x20name','/opcua-endpoint2','data','addClass','\x22\x20style=\x22color:','ns=0;i=35','val','Variable','.custom-option','#node-input-nodeClassMask','suppressed','OpcUa-Client2-Browse','already\x20fetched',':visible','Organizes','closest','number','DodgerBlue','updateValue','trim','resolveParentNode','DisplayName','SuppressedError','opcua','<div/>','sterfive-combo-box','BrowseName','placeholder','each','error','ns=0;i=40','change','reset','ReferenceType\x20|\x20BrowseName\x20|\x20TypeDefinition\x20|\x20DisplayName\x20|\x20NodeClass\x20|\x20IsForward','684767jEiLEa','insertAfter','input-group','fetching\x20failed\x20with\x20error','typeDefinition','$dropdown','namesToBits','DarkOrange','$verifyBtn','fa-object-group','opc.tcp://opcuademo.sterfive.com:26543','expanded','attr','currentParent',';\x22></i>\x20','node_label_italic','pageX','isTypeRef','loading','VariableType','<ul\x20class=\x22sterfive-tree\x22></ul>','/browse','children','<div\x20class=\x22info-text\x22></div>','failure','parentNode','ObjectType','removeClass','5905344MAdwmF','top','TypeDefinition','fa-question','appendTo','split','find','hide','stopPropagation','entries','$toggleTreeBtn','i=31','remove','widget','CadetBlue','baseUrl','$combo','message','Inverse','$input','next','#C0DEED','verify','#node-input-nodeId','filter','replaceChild','$inputGroup','fa-folder','statusText','$info','ns=0;i=85','6736797tplfrJ','117DNwyXc','options','33458HKwPzF','length','sterfive-info','nodeId','offset','assign','nodeClass','name','click','</li>','then','expandable\x20expanded','SandyBrown','Unspecified','Variable\x20|\x20Object\x20|\x20Method\x20|\x20ObjectType\x20|\x20VariableType','</div>','sterfive.nodeBrowser','References','hasClass','939968oRWMGb','status','err','$tree','POST','ns=0;i=34','Method','SeaGreen','DataType','toggle','Forward','fetched','5bQkbGk','IsForward','log','NodeClass','nodes','ReferenceType','/checkNodeId','\x20|\x20','application/json','registerType','flagEditor','inputs','element','i=61','ns=0;i=46','<li>error\x20','1134273gUyuRH','endpointNode','Both','View','map','throw','Object','32jXnzKx'];_0x29e9=function(){return _0x3316b3;};return _0x29e9();}function _0x463f(_0x5f121e,_0x4c1e76){const _0x29e9f9=_0x29e9();return _0x463f=function(_0x463f23,_0x38d275){_0x463f23=_0x463f23-0x65;let _0x14a765=_0x29e9f9[_0x463f23];return _0x14a765;},_0x463f(_0x5f121e,_0x4c1e76);}(function(_0x879db8,_0xcc1255){const _0xe04327=_0x463f,_0x233f96=_0x879db8();while(!![]){try{const _0x35a1f0=parseInt(_0xe04327(0x8a))/0x1+parseInt(_0xe04327(0xc8))/0x2*(parseInt(_0xe04327(0xc6))/0x3)+-parseInt(_0xe04327(0xdb))/0x4+-parseInt(_0xe04327(0xe7))/0x5*(parseInt(_0xe04327(0xa6))/0x6)+-parseInt(_0xe04327(0xf7))/0x7*(-parseInt(_0xe04327(0xfe))/0x8)+-parseInt(_0xe04327(0xc5))/0x9+parseInt(_0xe04327(0x67))/0xa;if(_0x35a1f0===_0xcc1255)break;else _0x233f96['push'](_0x233f96['shift']());}catch(_0x70130c){_0x233f96['push'](_0x233f96['shift']());}}}(_0x29e9,0x82db2),(function(){'use strict';const _0x4eb5bf=_0x463f;function _0x307d0c(_0x4b526d,_0x319164,_0x506bfa,_0x44cb08){function _0x4ddd51(_0x505b0a){return _0x505b0a instanceof _0x506bfa?_0x505b0a:new _0x506bfa(function(_0x338a9b){_0x338a9b(_0x505b0a);});}return new(_0x506bfa||(_0x506bfa=Promise))(function(_0x47da41,_0x52354b){const _0x6b69e5=_0x463f;function _0x51d8ca(_0x38d46f){const _0x374e30=_0x463f;try{_0x31b10c(_0x44cb08[_0x374e30(0xba)](_0x38d46f));}catch(_0x1da4d2){_0x52354b(_0x1da4d2);}}function _0x38a71f(_0x42187c){const _0x2ffb79=_0x463f;try{_0x31b10c(_0x44cb08[_0x2ffb79(0xfc)](_0x42187c));}catch(_0x88caf6){_0x52354b(_0x88caf6);}}function _0x31b10c(_0xcce253){const _0x313621=_0x463f;_0xcce253['done']?_0x47da41(_0xcce253[_0x313621(0x12a)]):_0x4ddd51(_0xcce253[_0x313621(0x12a)])[_0x313621(0xd2)](_0x51d8ca,_0x38a71f);}_0x31b10c((_0x44cb08=_0x44cb08[_0x6b69e5(0x108)](_0x4b526d,_0x319164||[]))[_0x6b69e5(0xba)]());});}typeof SuppressedError===_0x4eb5bf(0x110)?SuppressedError:function(_0xd0be3,_0x3555d3,_0x57dcec){const _0x232b2a=_0x4eb5bf;var _0x1c47a8=new Error(_0x57dcec);return _0x1c47a8['name']=_0x232b2a(0x7e),_0x1c47a8['error']=_0xd0be3,_0x1c47a8[_0x232b2a(0x72)]=_0x3555d3,_0x1c47a8;};const _0x51d3d3=_0x4eb5bf(0x6d),_0xd7c6e4='ns=0;i=61',_0x2d18d5='ns=0;i=47',_0x48e03f=_0x4eb5bf(0xf5),_0x3bd7d7=_0x4eb5bf(0xe0),_0x1261c1='ns=0;i=45',_0x5b1e42=_0x4eb5bf(0x86);var _0x2ece11;(function(_0x4cd42a){const _0x25784d=_0x4eb5bf;_0x4cd42a[_0x4cd42a[_0x25784d(0xe5)]=0x0]='Forward',_0x4cd42a[_0x4cd42a[_0x25784d(0xb8)]=0x1]=_0x25784d(0xb8),_0x4cd42a[_0x4cd42a['Both']=0x2]=_0x25784d(0xf9),_0x4cd42a[_0x4cd42a[_0x25784d(0x113)]=0x3]=_0x25784d(0x113);}(_0x2ece11||(_0x2ece11={})));var _0x596002;(function(_0x410a28){const _0x3dde19=_0x4eb5bf;_0x410a28[_0x410a28[_0x3dde19(0xd5)]=0x0]=_0x3dde19(0xd5),_0x410a28[_0x410a28['Object']=0x1]=_0x3dde19(0xfd),_0x410a28[_0x410a28[_0x3dde19(0x6f)]=0x2]=_0x3dde19(0x6f),_0x410a28[_0x410a28[_0x3dde19(0xe1)]=0x4]=_0x3dde19(0xe1),_0x410a28[_0x410a28['ObjectType']=0x8]=_0x3dde19(0xa4),_0x410a28[_0x410a28['VariableType']=0x10]=_0x3dde19(0x9d),_0x410a28[_0x410a28[_0x3dde19(0xec)]=0x20]=_0x3dde19(0xec),_0x410a28[_0x410a28[_0x3dde19(0xe3)]=0x40]=_0x3dde19(0xe3),_0x410a28[_0x410a28[_0x3dde19(0xfa)]=0x80]=_0x3dde19(0xfa);}(_0x596002||(_0x596002={})));var _0x20a360;(function(_0x64e813){const _0x6672b4=_0x4eb5bf;_0x64e813[_0x64e813[_0x6672b4(0xfd)]=0x1]='Object',_0x64e813[_0x64e813[_0x6672b4(0x6f)]=0x2]=_0x6672b4(0x6f),_0x64e813[_0x64e813[_0x6672b4(0xe1)]=0x4]=_0x6672b4(0xe1),_0x64e813[_0x64e813['ObjectType']=0x8]='ObjectType',_0x64e813[_0x64e813[_0x6672b4(0x9d)]=0x10]=_0x6672b4(0x9d),_0x64e813[_0x64e813[_0x6672b4(0xec)]=0x20]=_0x6672b4(0xec),_0x64e813[_0x64e813['DataType']=0x40]=_0x6672b4(0xe3),_0x64e813[_0x64e813[_0x6672b4(0xfa)]=0x80]=_0x6672b4(0xfa);}(_0x20a360||(_0x20a360={})));function _0x31c061(_0xa72a3d,_0x5d64ba){const _0x34d27b=_0x4eb5bf;if(typeof _0x5d64ba===_0x34d27b(0x78))return _0x5d64ba;const _0x45917a=parseInt(_0x5d64ba,0xa);if(!isNaN(_0x45917a))return _0x45917a;const _0x4cfb2f=_0x5d64ba[_0x34d27b(0xab)](/\||;|,/)[_0x34d27b(0xfb)](_0x577f5d=>_0x577f5d[_0x34d27b(0x7b)]());let _0x32b945=0x0;for(const _0x38820e of _0x4cfb2f){_0x32b945|=_0xa72a3d[_0x38820e];}return _0x32b945;}function _0x2ebd3f(_0x1133f2,_0x58d7a5){const _0x3971d9=_0x4eb5bf;_0x58d7a5=_0x31c061(_0x1133f2,_0x58d7a5);const _0x4fb8df=[];for(const [_0xfdc6c7,_0x3cad3c]of Object[_0x3971d9(0xaf)](_0x1133f2)){typeof _0x58d7a5===_0x3971d9(0x78)&&((_0x58d7a5&_0x3cad3c)===_0x3cad3c&&_0x4fb8df[_0x3971d9(0x11e)](_0xfdc6c7));}return _0x4fb8df['join'](_0x3971d9(0xee));}var _0xae84aa;(function(_0x4933cb){const _0x5d47af=_0x4eb5bf;_0x4933cb[_0x4933cb[_0x5d47af(0xec)]=0x1]=_0x5d47af(0xec),_0x4933cb[_0x4933cb['IsForward']=0x2]=_0x5d47af(0xe8),_0x4933cb[_0x4933cb[_0x5d47af(0xea)]=0x4]=_0x5d47af(0xea),_0x4933cb[_0x4933cb[_0x5d47af(0x82)]=0x8]=_0x5d47af(0x82),_0x4933cb[_0x4933cb[_0x5d47af(0x7d)]=0x10]=_0x5d47af(0x7d),_0x4933cb[_0x4933cb[_0x5d47af(0xa8)]=0x20]=_0x5d47af(0xa8);}(_0xae84aa||(_0xae84aa={})));function _0x4971db(_0x248552){const _0x48e35e=_0x4eb5bf;switch(_0x248552){case _0x48e35e(0x76):return _0x51d3d3;case'HasProperty':return _0x48e03f;case _0x48e35e(0x105):return _0x2d18d5;case _0x48e35e(0x100):return _0x3bd7d7;case'HasSubtype':return _0x1261c1;case _0x48e35e(0x11f):return _0x5b1e42;}}const _0x201c15=_0x44ae51=>{const _0x234e5e=_0x4eb5bf;switch(_0x44ae51[_0x234e5e(0xce)]){case'Object':if(_0x44ae51[_0x234e5e(0x129)]===_0x51d3d3);if(_0x44ae51[_0x234e5e(0x8e)]===_0xd7c6e4||_0x44ae51[_0x234e5e(0x129)]===_0x234e5e(0xf4))return{'icon':_0x234e5e(0xc1),'color':_0x234e5e(0x10e)};return{'icon':_0x234e5e(0x93),'color':_0x234e5e(0xe2)};case _0x234e5e(0x6f):if(_0x44ae51['referenceTypeId']===_0x2d18d5)return{'icon':_0x234e5e(0x121),'color':'SteelBlue'};else return _0x44ae51[_0x234e5e(0x129)]===_0x48e03f?{'icon':'fa-list-alt','color':_0x234e5e(0x79)}:{'icon':_0x234e5e(0x121),'color':_0x234e5e(0xb4)};case'Method':return{'icon':_0x234e5e(0x119),'color':_0x234e5e(0xd4)};case'ObjectType':return{'icon':'fa-object-group','color':_0x234e5e(0x91)};case'VariableType':return{'icon':'fa-sliders','color':_0x234e5e(0x91)};}return{'icon':_0x234e5e(0xa9),'color':_0x234e5e(0x12b)};},_0x50c9f7=({endpointNode:_0x19a6a5,endpoint:_0x1fb237,baseUrl:_0x53a0bd},_0x346b19,_0x4e255e)=>_0x307d0c(void 0x0,void 0x0,void 0x0,function*(){const _0x5af788=_0x4eb5bf,_0x52234b=_0x53a0bd+_0x5af788(0x69),_0x57b23e=_0x52234b+_0x5af788(0x9f),_0x433ce9=Object[_0x5af788(0xcd)](Object[_0x5af788(0xcd)]({},_0x4e255e),{'nodeId':_0x346b19,'resultMask':0x3f}),_0x42b628=yield fetch(_0x57b23e,{'method':_0x5af788(0xdf),'body':JSON[_0x5af788(0x123)]({'endpointNode':_0x19a6a5,'endpoint':_0x1fb237,'browseDescription':_0x433ce9}),'headers':{'Content-Type':_0x5af788(0xef)}});if(_0x42b628[_0x5af788(0xdc)]!==0xc8)return console[_0x5af788(0xe9)](_0x5af788(0x8d),_0x42b628[_0x5af788(0xdc)],_0x42b628[_0x5af788(0xc2)]),{'references':[]};console['log']('fetched\x20:\x20',_0x42b628[_0x5af788(0xdc)],_0x42b628['statusText']);const _0x35cb40=yield _0x42b628[_0x5af788(0x10b)](),_0x4c5fca=_0x35cb40['browseResult'][_0x5af788(0x111)]||[];return{'references':_0x4c5fca};}),_0x3b780={'referenceTypeId':_0x4971db('HasChild'),'includeSubtypes':!![],'browseDirection':_0x2ece11[_0x4eb5bf(0xe5)],'nodeClassMask':_0x596002[_0x4eb5bf(0x6f)]|_0x596002[_0x4eb5bf(0xfd)]|_0x596002['Method'],'resultMask':0x3f},_0x4c15c7={'referenceTypeId':_0x4971db('Organizes'),'includeSubtypes':!![],'browseDirection':_0x2ece11[_0x4eb5bf(0xe5)],'nodeClassMask':_0x596002['Variable']|_0x596002[_0x4eb5bf(0xfd)]|_0x596002['Method'],'resultMask':0x3f},_0x269156=({endpointNode:_0x506e75,endpoint:_0x16e7d7,baseUrl:_0x11e232},_0x35e88b,_0x160538)=>_0x307d0c(void 0x0,void 0x0,void 0x0,function*(){const _0x54f258=_0x4eb5bf,_0xce3c30=_0x11e232+_0x54f258(0x69),_0x4bf627=_0x35e88b[_0x54f258(0x6e)](),_0x5ddbf9=yield fetch(_0xce3c30+_0x54f258(0xed),{'method':_0x54f258(0xdf),'body':JSON[_0x54f258(0x123)]({'endpointNode':_0x506e75,'endpoint':_0x16e7d7,'nodeId':_0x4bf627}),'headers':{'Content-Type':_0x54f258(0xef)}}),_0x5a02e0=(_0x2da0ab,_0x662449)=>{const _0x587268=_0x54f258;_0x160538[_0x587268(0x101)](_0x2da0ab)[_0x587268(0x6b)](_0x587268(0xca))['addClass'](_0x662449),_0x160538[_0x587268(0x11d)](),setTimeout(()=>{_0x160538['removeClass'](_0x662449),_0x160538['hide']();},0xbb8);},_0x5baf0d=yield _0x5ddbf9[_0x54f258(0x10b)]();_0x5ddbf9[_0x54f258(0xdc)]!==0xc8?_0x5a02e0(_0x54f258(0x115)+_0x4bf627,'failure'):_0x5baf0d[_0x54f258(0x11c)][_0x54f258(0x106)](/Good/)?(_0x35e88b[_0x54f258(0x6e)](_0x5baf0d['nodeAddressString']),_0x35e88b[_0x54f258(0x114)](_0x54f258(0x87)),_0x5a02e0(_0x54f258(0x103),'ok')):(_0x35e88b[_0x54f258(0x6e)](''+_0x4bf627),_0x5a02e0(_0x5baf0d[_0x54f258(0x11c)]+'\x20'+_0x5ddbf9['statusText'],_0x54f258(0xa2)));});function _0xe1ee4e(_0x284414,_0x222639){return _0x307d0c(this,void 0x0,void 0x0,function*(){const _0x560b69=_0x463f,_0x2904a3=_0x284414[_0x560b69(0x6a)](_0x560b69(0x12a)),_0x24af79=yield _0x50c9f7(_0x222639,_0x2904a3,_0x3b780),_0x43f12f=yield _0x50c9f7(_0x222639,_0x2904a3,_0x4c15c7);return{'references':[..._0x24af79[_0x560b69(0x111)],..._0x43f12f[_0x560b69(0x111)]]};});}const _0x39fe35={'referenceTypeId':_0x4971db('HasSubtype'),'includeSubtypes':!![],'browseDirection':_0x2ece11[_0x4eb5bf(0xe5)],'nodeClassMask':_0x596002[_0x4eb5bf(0xec)]|_0x596002[_0x4eb5bf(0xa4)]|_0x596002[_0x4eb5bf(0xe3)]|_0x596002[_0x4eb5bf(0x9d)],'resultMask':0x3f};function _0x8256bc(_0x4e9da4,_0x3337e2){return _0x307d0c(this,void 0x0,void 0x0,function*(){const _0x12c4b1=_0x463f,_0x115e4c=_0x4e9da4['data'](_0x12c4b1(0x12a)),_0xffd90b=yield _0x50c9f7(_0x3337e2,_0x115e4c,_0x39fe35);return _0xffd90b;});}const _0x55802c=_0x584095=>{const _0x25889c=_0x4eb5bf;var _0x3cfd04,_0x5da1cb;if(!_0x584095){const _0x57dc01=$(_0x25889c(0x102));return _0x57dc01;}const _0x24f8a5=_0x584095[_0x25889c(0xcb)][_0x25889c(0x10f)](),_0x1e0d48=((_0x3cfd04=_0x584095[_0x25889c(0x124)])===null||_0x3cfd04===void 0x0?void 0x0:_0x3cfd04[_0x25889c(0x101)])||((_0x5da1cb=_0x584095[_0x25889c(0x66)])===null||_0x5da1cb===void 0x0?void 0x0:_0x5da1cb[_0x25889c(0xcf)])||_0x584095[_0x25889c(0xcb)]['toString'](),{icon:_0xd3d2b7,color:_0x2e71ff}=_0x201c15(_0x584095),_0x4730d8=$('<li><i\x20class=\x22fa\x20'+_0xd3d2b7+_0x25889c(0x6c)+_0x2e71ff+_0x25889c(0x98)+_0x1e0d48+'<ul></ul></li>');return _0x4730d8[_0x25889c(0x6b)]('expandable'),_0x4730d8[_0x25889c(0x6a)](_0x25889c(0x12a),_0x24f8a5),_0x4730d8[_0x25889c(0x6a)](_0x25889c(0x11a),_0x584095),_0x4730d8;},_0x42e6d1=()=>{const _0x5a0925=_0x4eb5bf;$[_0x5a0925(0xb3)](_0x5a0925(0xd8),{'options':{'endpointNode':()=>({'endpoint':_0x5a0925(0x94)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':_0x5a0925(0xfd),'nodeId':_0x5a0925(0xc4),'displayName':{'text':'Objects'},'typeDefinition':_0xd7c6e4}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x307d0c(this,void 0x0,void 0x0,function*(){const _0x3615ed=_0x463f,_0x4f87fd=this,_0x453582=typeof _0x4f87fd[_0x3615ed(0xc7)][_0x3615ed(0xa3)]==='function'?_0x4f87fd[_0x3615ed(0xc7)]['parentNode']():_0x4f87fd['options']['parentNode'];if(_0x453582 instanceof Promise)return yield _0x453582;return _0x453582;});},'reset'(){const _0x1dbacd=_0x5a0925,_0x53ed44=this;_0x53ed44['$tree']['empty'](),this['resolveParentNode']()[_0x1dbacd(0xd2)](_0x2e99b2=>{const _0x4f398c=_0x1dbacd,_0xd58a09=_0x55802c(_0x2e99b2);_0x53ed44['$tree'][_0x4f398c(0x126)](_0xd58a09),_0x53ed44[_0x4f398c(0x97)]=_0x2e99b2;});},'verify'(){const _0xccf51c=_0x5a0925,_0x5c6967=this,_0x272424={'baseUrl':_0x5c6967[_0xccf51c(0xc7)][_0xccf51c(0xb5)],'endpointNode':typeof _0x5c6967[_0xccf51c(0xc7)][_0xccf51c(0xf8)]===_0xccf51c(0x110)?_0x5c6967[_0xccf51c(0xc7)][_0xccf51c(0xf8)]():_0x5c6967[_0xccf51c(0xc7)]['endpointNode'],'endpoint':typeof _0x5c6967[_0xccf51c(0xc7)]['endpoint']===_0xccf51c(0x110)?_0x5c6967[_0xccf51c(0xc7)]['endpoint']():_0x5c6967['options']['endpoint']};_0x269156(_0x272424,_0x5c6967['$input'],_0x5c6967[_0xccf51c(0xc3)]);},'_create'(){const _0x4edc17=_0x5a0925,_0x58d2ac=this;function _0x55cccd(_0x49d00e,_0x2ba9cc,_0x18fc8b){return _0x307d0c(this,void 0x0,void 0x0,function*(){const _0x59e142=_0x463f;if(_0x49d00e[_0x59e142(0xda)](_0x59e142(0xe6))){console[_0x59e142(0xe9)](_0x59e142(0x74));return;}if(_0x49d00e['hasClass']('loading')){console[_0x59e142(0xe9)](_0x59e142(0x122));return;}_0x49d00e[_0x59e142(0x6b)](_0x59e142(0x9c)),_0x49d00e['append']('<div\x20class=\x22spinner\x22></div>');try{_0x49d00e[_0x59e142(0xa0)]('ul')['empty']();const {references:_0x35e389}=yield _0x2ba9cc(_0x49d00e,_0x18fc8b);for(const _0xdd9a1a of _0x35e389){if(_0x58d2ac['options'][_0x59e142(0xbe)]&&!_0x58d2ac[_0x59e142(0xc7)][_0x59e142(0xbe)](_0xdd9a1a))continue;const _0x5ea465=_0x55802c(_0xdd9a1a);_0x49d00e[_0x59e142(0xa0)]('ul')[_0x59e142(0x126)](_0x5ea465);}_0x49d00e[_0x59e142(0x6b)](_0x59e142(0xe6));}catch(_0x1066af){_0x49d00e['children']('ul')[_0x59e142(0x126)](_0x59e142(0xf6)+_0x1066af[_0x59e142(0xb7)]+_0x59e142(0xd1)),console[_0x59e142(0xe9)](_0x59e142(0xdd),_0x1066af);}_0x49d00e[_0x59e142(0xac)]('.spinner')[_0x59e142(0xb2)](),_0x49d00e[_0x59e142(0xa5)]('loading');});}_0x58d2ac[_0x4edc17(0xb9)]=this['element'],_0x58d2ac[_0x4edc17(0xb6)]=$(_0x4edc17(0x80)),_0x58d2ac[_0x4edc17(0xb6)][_0x4edc17(0x6b)](_0x4edc17(0x81)),this[_0x4edc17(0xf3)][_0x4edc17(0x10a)](_0x58d2ac[_0x4edc17(0xb6)]),_0x58d2ac[_0x4edc17(0xc0)]=$(_0x4edc17(0x80))[_0x4edc17(0x6b)](_0x4edc17(0x8c)),_0x58d2ac[_0x4edc17(0xb6)][_0x4edc17(0x126)](_0x58d2ac[_0x4edc17(0xc0)]),_0x58d2ac[_0x4edc17(0xc0)]['append'](_0x58d2ac['$input']),_0x58d2ac['$toggleTreeBtn']=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x58d2ac[_0x4edc17(0xc0)]['append'](_0x58d2ac[_0x4edc17(0xb0)]),_0x58d2ac[_0x4edc17(0xb0)]['on'](_0x4edc17(0xd0),function(){const _0x1db3f1=_0x4edc17;!_0x58d2ac[_0x1db3f1(0x8f)]['is'](':visible')&&(_0x58d2ac[_0x1db3f1(0x7c)]()[_0x1db3f1(0xd2)](_0x3408a4=>{const _0x476753=_0x1db3f1;var _0x9cb872;(_0x3408a4!==_0x58d2ac[_0x476753(0x97)]||((_0x9cb872=_0x58d2ac['currentParent'])===null||_0x9cb872===void 0x0?void 0x0:_0x9cb872[_0x476753(0xcb)])!==_0x3408a4['nodeId'])&&_0x58d2ac['reset']();}),_0x58d2ac[_0x1db3f1(0xc3)]['hide']()),_0x58d2ac[_0x1db3f1(0x8f)]['toggle']();}),_0x58d2ac[_0x4edc17(0x92)]=$(_0x4edc17(0x120)),_0x58d2ac[_0x4edc17(0xc0)]['append'](_0x58d2ac[_0x4edc17(0x92)]),_0x58d2ac['$verifyBtn']['on']('click',()=>{const _0x5638b6=_0x4edc17;this[_0x5638b6(0xbc)]();}),!_0x58d2ac[_0x4edc17(0xb9)][_0x4edc17(0x96)]('placeholder')&&_0x58d2ac['$input'][_0x4edc17(0x96)](_0x4edc17(0x83),'enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20'),_0x58d2ac['$info']=$(_0x4edc17(0xa1)),_0x58d2ac[_0x4edc17(0xc3)][_0x4edc17(0xad)](),{'baseUrl':_0x58d2ac[_0x4edc17(0xc7)][_0x4edc17(0xb5)],'endpointNode':typeof _0x58d2ac['options']['endpointNode']===_0x4edc17(0x110)?_0x58d2ac[_0x4edc17(0xc7)][_0x4edc17(0xf8)]():_0x58d2ac[_0x4edc17(0xc7)][_0x4edc17(0xf8)],'endpoint':typeof _0x58d2ac[_0x4edc17(0xc7)][_0x4edc17(0x118)]===_0x4edc17(0x110)?_0x58d2ac[_0x4edc17(0xc7)][_0x4edc17(0x118)]():_0x58d2ac['options'][_0x4edc17(0x118)]},_0x58d2ac[_0x4edc17(0x8f)]=$('<div/>')[_0x4edc17(0x6b)](_0x4edc17(0x125))[_0x4edc17(0xad)](),_0x58d2ac[_0x4edc17(0xb6)][_0x4edc17(0x126)](_0x58d2ac[_0x4edc17(0xc3)]),_0x58d2ac[_0x4edc17(0xb6)][_0x4edc17(0x126)](_0x58d2ac['$dropdown']),_0x58d2ac['$tree']=$(_0x4edc17(0x9e))[_0x4edc17(0xaa)](_0x58d2ac[_0x4edc17(0x8f)]),this[_0x4edc17(0x88)](),_0x58d2ac[_0x4edc17(0xde)]['on'](_0x4edc17(0xd0),'li',function(_0x415349){const _0x1c04ae=_0x4edc17;var _0x9e952f,_0x669273;_0x415349[_0x1c04ae(0xae)]();let _0xfd5504=$(this);const _0x22ca2b=0x14,_0x614804=0x14,_0x565a9e=$(this)[_0x1c04ae(0xcc)](),_0x120aa9=_0x415349;if(_0x120aa9[_0x1c04ae(0x9a)]>=_0x565a9e[_0x1c04ae(0x107)]&&_0x120aa9[_0x1c04ae(0x9a)]<=_0x565a9e[_0x1c04ae(0x107)]+_0x22ca2b&&_0x120aa9[_0x1c04ae(0x10c)]>=_0x565a9e['top']&&_0x120aa9[_0x1c04ae(0x10c)]<=_0x565a9e[_0x1c04ae(0xa7)]+_0x614804){if(_0xfd5504[_0x1c04ae(0xda)](_0x1c04ae(0x10d))){if(_0xfd5504['hasClass'](_0x1c04ae(0xe6))){_0xfd5504['removeClass']('expandable')[_0x1c04ae(0x6b)](_0x1c04ae(0x95)),_0xfd5504[_0x1c04ae(0xa0)]('ul')['toggle']();return;}const _0x497ffc={'baseUrl':_0x58d2ac['options']['baseUrl'],'endpointNode':typeof _0x58d2ac[_0x1c04ae(0xc7)][_0x1c04ae(0xf8)]===_0x1c04ae(0x110)?_0x58d2ac[_0x1c04ae(0xc7)][_0x1c04ae(0xf8)]():_0x58d2ac[_0x1c04ae(0xc7)][_0x1c04ae(0xf8)],'endpoint':typeof _0x58d2ac['options'][_0x1c04ae(0x118)]===_0x1c04ae(0x110)?_0x58d2ac[_0x1c04ae(0xc7)][_0x1c04ae(0x118)]():_0x58d2ac[_0x1c04ae(0xc7)][_0x1c04ae(0x118)]},_0x4381c5=!_0x58d2ac[_0x1c04ae(0xc7)][_0x1c04ae(0x9b)]?_0xe1ee4e:_0x8256bc;_0x55cccd(_0xfd5504,_0x4381c5,_0x497ffc)[_0x1c04ae(0xd2)](()=>{const _0x25a0b8=_0x1c04ae;console['log']('\x20Fetching\x20done'),console[_0x25a0b8(0xe9)](_0x25a0b8(0xe6)),_0xfd5504['removeClass']('expandable')[_0x25a0b8(0x6b)]('expanded');})[_0x1c04ae(0x109)](_0x4104b0=>{const _0xff2f85=_0x1c04ae;_0xfd5504[_0xff2f85(0xa5)](_0xff2f85(0x10d))[_0xff2f85(0x6b)](_0xff2f85(0x95)),console['log'](_0xff2f85(0x85),_0x4104b0);});}else{if(_0xfd5504[_0x1c04ae(0xda)](_0x1c04ae(0x95)))_0xfd5504[_0x1c04ae(0xa0)]('ul')['toggle'](),_0xfd5504['toggleClass'](_0x1c04ae(0xd3));else{if(_0xfd5504[_0x1c04ae(0xa0)]('ul')[_0x1c04ae(0xa0)]()[_0x1c04ae(0xc9)]>0x0)_0xfd5504[_0x1c04ae(0xa0)]('ul')[_0x1c04ae(0xe4)](),_0xfd5504['toggleClass'](_0x1c04ae(0xd3));else;}}}else{const _0x130f4c=_0xfd5504['data'](_0x1c04ae(0x12a)),_0x3f28df=_0xfd5504['data'](_0x1c04ae(0x11a));if(_0x58d2ac[_0x1c04ae(0xc7)][_0x1c04ae(0x128)]&&!_0x58d2ac[_0x1c04ae(0xc7)][_0x1c04ae(0x128)](_0x3f28df))return;_0x58d2ac[_0x1c04ae(0xb9)][_0x1c04ae(0x6a)](_0x1c04ae(0x11a),_0x3f28df);const _0xe9d56c=((_0x9e952f=_0x3f28df[_0x1c04ae(0x124)])===null||_0x9e952f===void 0x0?void 0x0:_0x9e952f[_0x1c04ae(0x101)])||((_0x669273=_0x3f28df[_0x1c04ae(0x66)])===null||_0x669273===void 0x0?void 0x0:_0x669273['name'])||_0x3f28df[_0x1c04ae(0xcb)]['toString'](),_0x271443='['+_0xe9d56c+']('+_0x130f4c+')';_0x58d2ac[_0x1c04ae(0xb9)][_0x1c04ae(0x6e)](_0x271443),_0x58d2ac[_0x1c04ae(0xb9)]['trigger']('change'),_0x58d2ac[_0x1c04ae(0x8f)][_0x1c04ae(0xad)]();}}),$(document)['on'](_0x4edc17(0xd0),function(_0x39d2f7){const _0x4ac9fe=_0x4edc17;!$(_0x39d2f7[_0x4ac9fe(0x127)])[_0x4ac9fe(0x77)](_0x58d2ac[_0x4ac9fe(0xb6)])['length']&&_0x58d2ac[_0x4ac9fe(0x8f)][_0x4ac9fe(0xad)]();});}});},_0x329c05=()=>{const _0x3eb9fe=_0x4eb5bf;$[_0x3eb9fe(0xb3)](_0x3eb9fe(0x112),{'options':{'namesToBits':{},'value':0x0},'_create'(){const _0x547904=_0x3eb9fe,_0x403432=this;_0x403432[_0x547904(0xb9)]=this[_0x547904(0xf3)],_0x403432[_0x547904(0xb6)]=$(_0x547904(0x80)),_0x403432[_0x547904(0xb6)][_0x547904(0x6b)](_0x547904(0x81)),this[_0x547904(0xf3)][0x0]['parentElement'][_0x547904(0xbf)](_0x403432[_0x547904(0xb6)][0x0],this[_0x547904(0xf3)][0x0]),_0x403432[_0x547904(0xc0)]=$(_0x547904(0x80))[_0x547904(0x6b)](_0x547904(0x8c)),_0x403432[_0x547904(0xb6)][_0x547904(0x126)](_0x403432['$inputGroup']),_0x403432[_0x547904(0xc0)][_0x547904(0x126)](_0x403432[_0x547904(0xb9)]),_0x403432[_0x547904(0xb0)]=$('<button><i\x20class=\x22fa\x20fa-eye\x22></i></button>'),_0x403432['$inputGroup'][_0x547904(0x126)](_0x403432[_0x547904(0xb0)]),_0x403432[_0x547904(0xb0)]['on'](_0x547904(0xd0),function(){const _0xd7d444=_0x547904;_0x403432[_0xd7d444(0x8f)][_0xd7d444(0xe4)](),_0x403432['$dropdown']['is'](_0xd7d444(0x75))&&(_0x5ed989(),_0x403432['$combo'][_0xd7d444(0xac)](_0xd7d444(0x70))[_0xd7d444(0x84)](function(){const _0xc2dd93=_0xd7d444;let _0x1e6230=$(this)[_0xc2dd93(0x101)]();const _0x4a84f2=_0x403432[_0xc2dd93(0xc7)][_0xc2dd93(0x90)][_0x1e6230];if(_0x4a84f2===undefined)throw new Error(_0xc2dd93(0x68));(_0x403432[_0xc2dd93(0xc7)]['value']&_0x4a84f2)===_0x4a84f2?$(this)[_0xc2dd93(0x6b)](_0xc2dd93(0x116)):$(this)[_0xc2dd93(0xa5)](_0xc2dd93(0x116));}),_0x403432[_0xd7d444(0x7a)]());}),_0x403432[_0x547904(0x8f)]=$(_0x547904(0x65))[_0x547904(0xad)]()[_0x547904(0x8b)](this[_0x547904(0xf3)]),$[_0x547904(0x84)](this[_0x547904(0xc7)]['namesToBits'],function(_0x581d12){const _0x54295c=_0x547904,_0x47d375=$(_0x54295c(0x117)+_0x581d12+'\x22>'+'<span\x20class=\x22custom-checkbox\x22></span>'+_0x581d12+_0x54295c(0xd7));_0x403432['$dropdown'][_0x54295c(0x126)](_0x47d375);}),_0x403432[_0x547904(0x8f)]['on'](_0x547904(0xd0),_0x547904(0x70),function(){const _0x187278=_0x547904;$(this)['toggleClass']('selected');const _0x46a9d1=$(this)[_0x187278(0x6a)](_0x187278(0x12a));$(this)[_0x187278(0xda)](_0x187278(0x116))?_0xde8ede(_0x46a9d1):_0x251283(_0x46a9d1),_0x403432['updateValue']();}),_0x403432[_0x547904(0xb6)][_0x547904(0x126)](_0x403432[_0x547904(0x8f)]);const _0x5ed989=()=>{const _0x559863=_0x547904,_0x6f01c=this[_0x559863(0xf3)][_0x559863(0x6e)]();_0x403432['options']['value']=_0x31c061(_0x403432['options']['namesToBits'],_0x6f01c);},_0xde8ede=_0x2daa7b=>{const _0x35d060=_0x547904,_0x25554b=_0x403432[_0x35d060(0xc7)][_0x35d060(0x90)][_0x2daa7b];if(_0x25554b===undefined)throw new Error(_0x35d060(0x68));this[_0x35d060(0xc7)][_0x35d060(0x12a)]|=_0x25554b;},_0x251283=_0x53c4e3=>{const _0x1d102a=_0x547904,_0x1ea39d=_0x403432['options'][_0x1d102a(0x90)][_0x53c4e3];if(_0x1ea39d===undefined)throw new Error(_0x1d102a(0x68));this[_0x1d102a(0xc7)][_0x1d102a(0x12a)]&=~_0x1ea39d,this[_0x1d102a(0xf3)][_0x1d102a(0x6e)](_0x2ebd3f(_0x403432[_0x1d102a(0xc7)][_0x1d102a(0x90)],this[_0x1d102a(0xc7)][_0x1d102a(0x12a)]));};_0x5ed989();},'updateValue'(){const _0x4f944c=_0x3eb9fe,_0x56a2c4=this;this['element']['val'](_0x2ebd3f(_0x56a2c4[_0x4f944c(0xc7)][_0x4f944c(0x90)],this[_0x4f944c(0xc7)][_0x4f944c(0x12a)]));},'_destroy'(){const _0x405b7d=_0x3eb9fe,_0x5af84=this;_0x5af84[_0x405b7d(0x8f)][_0x405b7d(0xb2)]();}});};RED[_0x4eb5bf(0xeb)][_0x4eb5bf(0xf0)](_0x4eb5bf(0x73),{'category':_0x4eb5bf(0x7f),'color':_0x4eb5bf(0xbb),'align':'right','icon':'../../icons/opcuanodeLogo.png','paletteLabel':'browse','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x4eb5bf(0x11b)},'nodeId':{'value':'','required':![]},'referenceTypeId':{'value':_0x4eb5bf(0x100),'required':![]},'includeSubtypes':{'value':![],'required':!![]},'browseDirection':{'value':_0x4eb5bf(0xe5),'required':!![]},'nodeClassMask':{'value':_0x4eb5bf(0xd6),'required':![]},'resultMask':{'value':_0x4eb5bf(0x89),'required':![]}},'outputs':0x1,'label'(){const _0x3a2d1c=_0x4eb5bf;return this[_0x3a2d1c(0xcf)]||'OPCUA\x20Browse';},'labelStyle'(){const _0xe42efb=_0x4eb5bf;return this[_0xe42efb(0xcf)]?_0xe42efb(0x99):'';},'oneditprepare'(){const _0x10e345=_0x4eb5bf,_0x4ff00e=this;_0x42e6d1(),_0x329c05(),_0x4ff00e[_0x10e345(0xf2)]=0x1;const _0x2de285=$(_0x10e345(0x71));_0x2de285[_0x10e345(0xf1)]({'namesToBits':{'Object':0x1,'Variable':0x2,'Method':0x4,'ObjectType':0x8,'VariableType':0x10,'ReferenceType':0x20,'DataType':0x40,'View':0x80},'value':0x0});const _0x48874e=$(_0x10e345(0x104));_0x48874e[_0x10e345(0xf1)]({'namesToBits':{'ReferenceType':0x1,'IsForward':0x2,'NodeClass':0x4,'BrowseName':0x8,'DisplayName':0x10,'TypeDefinition':0x20},'value':0x3f});const _0x1002cf=$(_0x10e345(0xbd));_0x1002cf[_0x10e345(0xff)]({'isSelectable'(_0x2be99f){const _0xbd93dc=_0x10e345;return _0x2be99f[_0xbd93dc(0xce)]===_0xbd93dc(0x6f)||_0x2be99f[_0xbd93dc(0xce)]===_0xbd93dc(0xfd);}});const _0x52ab9c={'nodeId':_0x10e345(0xb1),'referenceTypeId':'','browseName':{'namespaceIndex':0x0,'name':_0x10e345(0xd9)},'displayName':{'text':_0x10e345(0xd9)},'nodeClass':_0x10e345(0xec),'typeDefinition':'i=31'},_0x7c1097=$('#node-input-referenceTypeId');_0x7c1097[_0x10e345(0xff)]({'parentNode':()=>_0x52ab9c,'isSelectable'(_0xc3a753){const _0x1e99ee=_0x10e345;return _0xc3a753[_0x1e99ee(0xce)]===_0x1e99ee(0xec);},'isTypeRef':!![]});},'oneditsave'(){}});}()));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgzMDdkMGMiLCJfMHg0YjUyNmQiLCJfMHgzMTkxNjQiLCJfMHg1MDZiZmEiLCJfMHg0NGNiMDgiLCJfMHg0ZGRkNTEiLCJfMHg1MDViMGEiLCJfMHgzMzhhOWIiLCJQcm9taXNlIiwiXzB4NDdkYTQxIiwiXzB4NTIzNTRiIiwiXzB4NTFkOGNhIiwiXzB4MzhkNDZmIiwiXzB4MzFiMTBjIiwiXzB4MWRhNGQyIiwiXzB4MzhhNzFmIiwiXzB4NDIxODdjIiwiXzB4ODhjYWY2IiwiXzB4Y2NlMjUzIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4ZDBiZTMiLCJfMHgzNTU1ZDMiLCJfMHg1N2RjZWMiLCJfMHgxYzQ3YTgiLCJFcnJvciIsIl8weDUxZDNkMyIsIl8weGQ3YzZlNCIsIl8weDJkMThkNSIsIl8weDQ4ZTAzZiIsIl8weDNiZDdkNyIsIl8weDEyNjFjMSIsIl8weDViMWU0MiIsIl8weDJlY2UxMSIsIl8weDRjZDQyYSIsIl8weDU5NjAwMiIsIl8weDQxMGEyOCIsIl8weDIwYTM2MCIsIl8weDY0ZTgxMyIsIl8weDMxYzA2MSIsIl8weGE3MmEzZCIsIl8weDVkNjRiYSIsIl8weDQ1OTE3YSIsInBhcnNlSW50IiwiaXNOYU4iLCJfMHg0Y2ZiMmYiLCJfMHg1NzdmNWQiLCJfMHgzMmI5NDUiLCJfMHgzODgyMGUiLCJfMHgyZWJkM2YiLCJfMHgxMTMzZjIiLCJfMHg1OGQ3YTUiLCJfMHg0ZmI4ZGYiLCJfMHhmZGM2YzciLCJfMHgzY2FkM2MiLCJPYmplY3QiLCJfMHhhZTg0YWEiLCJfMHg0OTMzY2IiLCJfMHg0OTcxZGIiLCJfMHgyNDg1NTIiLCJfMHgyMDFjMTUiLCJfMHg0NGFlNTEiLCJfMHg1MGM5ZjciLCJlbmRwb2ludE5vZGUiLCJfMHgxOWE2YTUiLCJlbmRwb2ludCIsIl8weDFmYjIzNyIsImJhc2VVcmwiLCJfMHg1M2EwYmQiLCJfMHgzNDZiMTkiLCJfMHg0ZTI1NWUiLCJfMHg1MjIzNGIiLCJfMHg1N2IyM2UiLCJfMHg0MzNjZTkiLCJfMHg0MmI2MjgiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4MzVjYjQwIiwiXzB4NGM1ZmNhIiwiXzB4M2I3ODAiLCJfMHg0YzE1YzciLCJfMHgyNjkxNTYiLCJfMHg1MDZlNzUiLCJfMHgxNmU3ZDciLCJfMHgxMWUyMzIiLCJfMHgzNWU4OGIiLCJfMHgxNjA1MzgiLCJfMHhjZTNjMzAiLCJfMHg0YmY2MjciLCJfMHg1ZGRiZjkiLCJfMHg1YTAyZTAiLCJfMHgyZGEwYWIiLCJfMHg2NjI0NDkiLCJzZXRUaW1lb3V0IiwiXzB4NWJhZjBkIiwiXzB4ZTFlZTRlIiwiXzB4Mjg0NDE0IiwiXzB4MjIyNjM5IiwiXzB4MjkwNGEzIiwiXzB4MjRhZjc5IiwiXzB4NDNmMTJmIiwiXzB4MzlmZTM1IiwiXzB4ODI1NmJjIiwiXzB4NGU5ZGE0IiwiXzB4MzMzN2UyIiwiXzB4MTE1ZTRjIiwiXzB4ZmZkOTBiIiwiXzB4NTU4MDJjIiwiXzB4NTg0MDk1IiwiXzB4M2NmZDA0IiwiXzB4NWRhMWNiIiwiXzB4NTdkYzAxIiwiJCIsIl8weDI0ZjhhNSIsIl8weDFlMGQ0OCIsImljb24iLCJfMHhkM2QyYjciLCJjb2xvciIsIl8weDJlNzFmZiIsIl8weDQ3MzBkOCIsIl8weDQyZTZkMSIsInVuZGVmaW5lZCIsIl8weDRmODdmZCIsIl8weDQ1MzU4MiIsIl8weDUzZWQ0NCIsIl8weDJlOTliMiIsIl8weGQ1OGEwOSIsIl8weDVjNjk2NyIsIl8weDI3MjQyNCIsIl8weDU4ZDJhYyIsIl8weDU1Y2NjZCIsIl8weDQ5ZDAwZSIsIl8weDJiYTljYyIsIl8weDE4ZmM4YiIsInJlZmVyZW5jZXMiLCJfMHgzNWUzODkiLCJfMHhkZDlhMWEiLCJfMHg1ZWE0NjUiLCJfMHgxMDY2YWYiLCJfMHgzNDA4YTQiLCJfMHg5Y2I4NzIiLCJfMHg0MTUzNDkiLCJfMHg5ZTk1MmYiLCJfMHg2NjkyNzMiLCJfMHhmZDU1MDQiLCJfMHgyMmNhMmIiLCJfMHg2MTQ4MDQiLCJfMHg1NjVhOWUiLCJfMHgxMjBhYTkiLCJfMHg0OTdmZmMiLCJfMHg0MzgxYzUiLCJfMHg0MTA0YjAiLCJfMHgxMzBmNGMiLCJfMHgzZjI4ZGYiLCJfMHhlOWQ1NmMiLCJfMHgyNzE0NDMiLCJkb2N1bWVudCIsIl8weDM5ZDJmNyIsIl8weDMyOWMwNSIsIl8weDQwMzQzMiIsIl8weDVlZDk4OSIsIl8weDFlNjIzMCIsIl8weDRhODRmMiIsIl8weDU4MWQxMiIsIl8weDQ3ZDM3NSIsIl8weDQ2YTlkMSIsIl8weGRlOGVkZSIsIl8weDI1MTI4MyIsIl8weDZmMDFjIiwiXzB4MmRhYTdiIiwiXzB4MjU1NTRiIiwiXzB4NTNjNGUzIiwiXzB4MWVhMzlkIiwiXzB4NTZhMmM0IiwiXzB4NWFmODQiLCJSRUQiLCJfMHg0ZmYwMGUiLCJfMHgyZGUyODUiLCJfMHg0ODg3NGUiLCJfMHgxMDAyY2YiLCJfMHgyYmU5OWYiLCJfMHg1MmFiOWMiLCJfMHg3YzEwOTciLCJfMHhjM2E3NTMiXSwibWFwcGluZ3MiOiI0dkhBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxTQUNyRCxHQUFLLENBQUFILFNBQUEsRUFBTSxDQUFBQSxTQUFBLENBQUlLLE9BQUosQ0FBTixDQUFMLENBQXlCLFNBQVVDLFNBQVYsQ0FBbUJDLFNBQW5CLEMseUJBQzVCLFNBQVNDLFNBQVQsQ0FBbUJDLFNBQW5CLEMseUJBQTRCLEcsQ0FBTUMsU0FBQSxDQUFLVCxTQUFBLEMsZUFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FB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UlMsQ0FEUyxDLE9BV3RCLEMsR0FYc0IsQ0FBMUIsRUFhQSxNQUFNQyxTQUFBLENBQWNsRSxDQUFBLEMsZ0JBQUEsQ0FBcEIsQ0FDQWtFLFNBQUEsQyxlQUFBLEVBQXVCLEMsYUFDbkIsQ0FBYSxDLGVBQ1QsQyxHQURTLEMsV0FFVCxDLEdBRlMsQyxXQUdULEMsR0FIUyxDLFlBSVQsQyxHQUpTLEMsYUFLVCxDLElBTFMsQyxnQkFNVCxDLElBTlMsQ0FETSxDLE9BU25CLEMsSUFUbUIsQ0FBdkIsRUFXQSxNQUFNQyxTQUFBLENBQVVuRSxDQUFBLEMsZUFBQSxDQUFoQixDQUNBbUUsU0FBQSxDLGVBQUEsRUFBb0IsQyxjQUNoQixDQUFhQyxTQUFiLEMsa0NBQ1dBLFNBQUEsQyxlQUFBLEksZUFBQSxFQUFxQ0EsU0FBQSxDLGVBQUEsSSxpQkFGaEMsQ0FBcEIsRUFLQSxNQUFNQyxTQUFBLENBQXFCLEMsUUFDdkIsQyxlQUR1QixDLGlCQUV2QixDLEVBRnVCLEMsWUFHdkIsQ0FBWSxDLGdCQUFFLEMsR0FBRixDLE1BQXFCLEMsZUFBckIsQ0FIVyxDLGFBSXZCLENBQWEsQyxNQUFFLEMsZUFBRixDQUpVLEMsV0FLdkIsQyxlQUx1QixDLGdCQU12QixDLE1BTnVCLENBQTNCLENBUU1DLFNBQUEsQ0FBbUJ0RSxDQUFBLEMsNkJBQUEsQ0FSekIsQ0FTQXNFLFNBQUEsQyxlQUFBLEVBQTZCLEMsWUFDekIsQ0FBWSxJQUFNRCxTQURPLEMsY0FFekIsQ0FBYUUsU0FBYixDLGtDQUNXQSxTQUFBLEMsZUFBQSxJLGlCQUhjLEMsV0FLekIsQyxJQUx5QixDQUE3QixDLEVBekV1QyxDLFlBaUYzQyxFLEVBakYyQyxDQUEvQyxDLEVBM2tCSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIGZ1bmN0aW9uIGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodHlwZSwgc3RyKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc3RyID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0ckFzTnVtID0gcGFyc2VJbnQoc3RyLCAxMCk7XG4gICAgICAgIGlmICghaXNOYU4oc3RyQXNOdW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyQXNOdW07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmxhZ3MgPSBzdHIuc3BsaXQoL1xcfHw7fCwvKS5tYXAoKGEpID0+IGEudHJpbSgpKTtcbiAgICAgICAgbGV0IHJlc3VsdCA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgZmxhZyBvZiBmbGFncykge1xuICAgICAgICAgICAgcmVzdWx0IHw9IHR5cGVbZmxhZ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29lcmNlRmxhZ01hc2tUb1N0cmluZyh0eXBlLCB2YWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodHlwZSwgdmFsdWUpO1xuICAgICAgICBjb25zdCByID0gW107XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgYml0TWFza10gb2YgT2JqZWN0LmVudHJpZXModHlwZSkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoKHZhbHVlICYgYml0TWFzaykgPT09IGJpdE1hc2spIHtcbiAgICAgICAgICAgICAgICAgICAgci5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByLmpvaW4oXCIgfCBcIik7XG4gICAgfVxuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKGAke3Jvb3R9L2NoZWNrTm9kZUlkYCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKCRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmV0Y2hEYXRhRm9yTm9kZSgkbGksIGYsIGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIgRmV0Y2hpbmcgZG9uZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBkZWNsYXJlRmxhZ0VkaXRvcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5mbGFnRWRpdG9yXCIsIHtcbiAgICAgICAgICAgIC8vIGRlZmF1bHQgb3B0aW9uc1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIG5hbWVzVG9CaXRzOiB7XG4gICAgICAgICAgICAgICAgLy8gQWRkIG1vcmUgbmFtZXMgYW5kIGJpdCB2YWx1ZXNcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gQ3VzdG9tIERyb3Bkb3duXG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFswXS5wYXJlbnRFbGVtZW50LnJlcGxhY2VDaGlsZCh0aGF0LiRjb21ib1swXSwgdGhpcy5lbGVtZW50WzBdKTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICAvLyB0aGUgdG9nZ2xlIHRyZWUgYnV0dG9uOlxuICAgICAgICAgICAgICAgIC8vICAgd2hlbiB3ZSBjbGljayBpdCB0aGUgZHJvcCBkb3duIHBhbmVsIGlzIGRpc3BsYXllZFxuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZXllXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kc2VsZWN0LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVGcm9tSW5wdXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmZpbmQoXCIuY3VzdG9tLW9wdGlvblwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgb3B0aW9uTmFtZSA9ICQodGhpcykudGV4dCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJpdFZhbHVlID0gdGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzW29wdGlvbk5hbWVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiaXRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gYml0IG5hbWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgodGhhdC5vcHRpb25zLnZhbHVlICYgYml0VmFsdWUpID09PSBiaXRWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGhpZGRlbiBzZWxlY3QgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC51cGRhdGVWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gdGhlIGRyb3AgZG93biBwYW5lbFxuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJCgnPGRpdiBjbGFzcz1cImN1c3RvbS1zZWxlY3RcIj48L2Rpdj4nKS5oaWRlKCkuaW5zZXJ0QWZ0ZXIodGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICAkLmVhY2godGhpcy5vcHRpb25zLm5hbWVzVG9CaXRzLCBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkb3B0aW9uID0gJCgnPGRpdiBjbGFzcz1cImN1c3RvbS1vcHRpb25cIiBkYXRhLXZhbHVlPVwiJyArXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdcIj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cImN1c3RvbS1jaGVja2JveFwiPjwvc3Bhbj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCI8L2Rpdj5cIik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmFwcGVuZCgkb3B0aW9uKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyB3aGVuIGEgb3B0aW9ucyBpbiB0aGUgZHJvcCBkb3duIHBhbmVsIGlzIGNsaWNrZWQsXG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24ub24oXCJjbGlja1wiLCBcIi5jdXN0b20tb3B0aW9uXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS50b2dnbGVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICQodGhpcykuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5oYXNDbGFzcyhcInNlbGVjdGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRCaXQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5zZXRCaXQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoYXQudXBkYXRlVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUZyb21JbnB1dCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmVsZW1lbnQudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQub3B0aW9ucy52YWx1ZSA9IGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRCaXQgPSAoYml0TmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiaXQgPSB0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHNbYml0TmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChiaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBiaXQgbmFtZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMudmFsdWUgfD0gYml0O1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgdW5zZXRCaXQgPSAoYml0TmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiaXQgPSB0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHNbYml0TmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChiaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBiaXQgbmFtZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMudmFsdWUgJj0gfmJpdDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnZhbChjb2VyY2VGbGFnTWFza1RvU3RyaW5nKHRoYXQub3B0aW9ucy5uYW1lc1RvQml0cywgdGhpcy5vcHRpb25zLnZhbHVlKSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB1cGRhdGVGcm9tSW5wdXQoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1cGRhdGVWYWx1ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQudmFsKGNvZXJjZUZsYWdNYXNrVG9TdHJpbmcodGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzLCB0aGlzLm9wdGlvbnMudmFsdWUpKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfZGVzdHJveSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5yZW1vdmUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1Ccm93c2VcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcImJyb3dzZVwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICAvLyBmb3IgYWN0aW9uIHJlYWRcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHsgdmFsdWU6IFwiSGFzQ2hpbGRcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHsgdmFsdWU6IGZhbHNlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiB7IHZhbHVlOiBcIkZvcndhcmRcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIG5vZGVDbGFzc01hc2s6IHsgdmFsdWU6IFwiVmFyaWFibGUgfCBPYmplY3QgfCBNZXRob2QgfCBPYmplY3RUeXBlIHwgVmFyaWFibGVUeXBlXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgcmVzdWx0TWFzazogeyB2YWx1ZTogXCJSZWZlcmVuY2VUeXBlIHwgQnJvd3NlTmFtZSB8IFR5cGVEZWZpbml0aW9uIHwgRGlzcGxheU5hbWUgfCBOb2RlQ2xhc3MgfCBJc0ZvcndhcmRcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG91dHB1dHM6IDEsXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIEJyb3dzZVwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgZGVjbGFyZUZsYWdFZGl0b3JXaWRnZXQoKTtcbiAgICAgICAgICAgIG5vZGUuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIGNvbnN0ICRub2RlQ2xhc3NNYXNrID0gJChcIiNub2RlLWlucHV0LW5vZGVDbGFzc01hc2tcIik7XG4gICAgICAgICAgICAkbm9kZUNsYXNzTWFzay5mbGFnRWRpdG9yKHtcbiAgICAgICAgICAgICAgICBuYW1lc1RvQml0czoge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3Q6IDEsXG4gICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlOiAyLFxuICAgICAgICAgICAgICAgICAgICBNZXRob2Q6IDQsXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdFR5cGU6IDgsXG4gICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlVHlwZTogMTYsXG4gICAgICAgICAgICAgICAgICAgIFJlZmVyZW5jZVR5cGU6IDMyLFxuICAgICAgICAgICAgICAgICAgICBEYXRhVHlwZTogNjQsXG4gICAgICAgICAgICAgICAgICAgIFZpZXc6IDEyOCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCAkcmVzdWx0TWFzayA9ICQoXCIjbm9kZS1pbnB1dC1yZXN1bHRNYXNrXCIpO1xuICAgICAgICAgICAgJHJlc3VsdE1hc2suZmxhZ0VkaXRvcih7XG4gICAgICAgICAgICAgICAgbmFtZXNUb0JpdHM6IHtcbiAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlVHlwZTogMSxcbiAgICAgICAgICAgICAgICAgICAgSXNGb3J3YXJkOiAyLFxuICAgICAgICAgICAgICAgICAgICBOb2RlQ2xhc3M6IDQsXG4gICAgICAgICAgICAgICAgICAgIEJyb3dzZU5hbWU6IDgsXG4gICAgICAgICAgICAgICAgICAgIERpc3BsYXlOYW1lOiAxNixcbiAgICAgICAgICAgICAgICAgICAgVHlwZURlZmluaXRpb246IDMyLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IDYzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoe1xuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIlZhcmlhYmxlXCIgfHwgbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZXNOb2RlRGVzYyA9IHtcbiAgICAgICAgICAgICAgICBub2RlSWQ6IFwiaT0zMVwiLFxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZVR5cGVJZDogXCJcIixcbiAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIlJlZmVyZW5jZXNcIiB9LFxuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiUmVmZXJlbmNlc1wiIH0sXG4gICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIlJlZmVyZW5jZVR5cGVcIixcbiAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogXCJpPTMxXCIsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgJHJlZmVyZW5jZVR5cGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1yZWZlcmVuY2VUeXBlSWRcIik7XG4gICAgICAgICAgICAkcmVmZXJlbmNlVHlwZUlkLm5vZGVCcm93c2VyKHtcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiByZWZlcmVuY2VzTm9kZURlc2MsIC8vIFJlZmVyZW5jZXMsXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7IH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
7
+ (function(_0x30e99c,_0x5d0ca9){const _0x4e38b9=_0x1d55,_0xde1ede=_0x30e99c();while(!![]){try{const _0x3a1ada=-parseInt(_0x4e38b9(0x1b6))/0x1*(-parseInt(_0x4e38b9(0x14c))/0x2)+parseInt(_0x4e38b9(0x18b))/0x3+parseInt(_0x4e38b9(0x124))/0x4*(-parseInt(_0x4e38b9(0x198))/0x5)+parseInt(_0x4e38b9(0x1a8))/0x6*(parseInt(_0x4e38b9(0x18c))/0x7)+parseInt(_0x4e38b9(0x11d))/0x8+parseInt(_0x4e38b9(0x16d))/0x9*(-parseInt(_0x4e38b9(0x161))/0xa)+parseInt(_0x4e38b9(0x145))/0xb*(parseInt(_0x4e38b9(0x1b5))/0xc);if(_0x3a1ada===_0x5d0ca9)break;else _0xde1ede['push'](_0xde1ede['shift']());}catch(_0x3f2799){_0xde1ede['push'](_0xde1ede['shift']());}}}(_0x5092,0x9b8aa),(function(){'use strict';const _0x2ab735=_0x1d55;function _0x4e6e3f(_0x392756,_0x1bba21,_0x2bed93,_0x57f73c){function _0x44f5f7(_0x1fccc9){return _0x1fccc9 instanceof _0x2bed93?_0x1fccc9:new _0x2bed93(function(_0x116660){_0x116660(_0x1fccc9);});}return new(_0x2bed93||(_0x2bed93=Promise))(function(_0x31fa1d,_0x1fac9a){const _0x1f5ec3=_0x1d55;function _0x3a2e1b(_0x3673d4){const _0x18f893=_0x1d55;try{_0x1614cc(_0x57f73c[_0x18f893(0x1aa)](_0x3673d4));}catch(_0x2f81e4){_0x1fac9a(_0x2f81e4);}}function _0x5e6ab8(_0x2013d2){const _0x45d657=_0x1d55;try{_0x1614cc(_0x57f73c[_0x45d657(0x16b)](_0x2013d2));}catch(_0x5bdb14){_0x1fac9a(_0x5bdb14);}}function _0x1614cc(_0x4d1a60){const _0x3419ea=_0x1d55;_0x4d1a60[_0x3419ea(0x178)]?_0x31fa1d(_0x4d1a60['value']):_0x44f5f7(_0x4d1a60[_0x3419ea(0x185)])[_0x3419ea(0x1a9)](_0x3a2e1b,_0x5e6ab8);}_0x1614cc((_0x57f73c=_0x57f73c['apply'](_0x392756,_0x1bba21||[]))[_0x1f5ec3(0x1aa)]());});}typeof SuppressedError===_0x2ab735(0x170)?SuppressedError:function(_0x48eba5,_0x7b4af2,_0x152b2e){const _0x31fff7=_0x2ab735;var _0x29c98f=new Error(_0x152b2e);return _0x29c98f[_0x31fff7(0x134)]='SuppressedError',_0x29c98f[_0x31fff7(0x1c8)]=_0x48eba5,_0x29c98f[_0x31fff7(0x1bb)]=_0x7b4af2,_0x29c98f;};const _0x42ca18='ns=0;i=35',_0x2ac00c=_0x2ab735(0x17a),_0x362c49=_0x2ab735(0x153),_0x2bb632='ns=0;i=46',_0x59f24b=_0x2ab735(0x15a),_0x4f76d6=_0x2ab735(0x181),_0x1b99d6=_0x2ab735(0x1af);var _0x458b85;(function(_0x467deb){const _0x13ffcc=_0x2ab735;_0x467deb[_0x467deb[_0x13ffcc(0x1cd)]=0x0]='Forward',_0x467deb[_0x467deb[_0x13ffcc(0x13f)]=0x1]=_0x13ffcc(0x13f),_0x467deb[_0x467deb[_0x13ffcc(0x148)]=0x2]=_0x13ffcc(0x148),_0x467deb[_0x467deb['Invalid']=0x3]=_0x13ffcc(0x14d);}(_0x458b85||(_0x458b85={})));var _0x2f26e7;(function(_0xb4d54c){const _0x1f3c45=_0x2ab735;_0xb4d54c[_0xb4d54c[_0x1f3c45(0x151)]=0x0]=_0x1f3c45(0x151),_0xb4d54c[_0xb4d54c[_0x1f3c45(0x122)]=0x1]='Object',_0xb4d54c[_0xb4d54c[_0x1f3c45(0x12a)]=0x2]=_0x1f3c45(0x12a),_0xb4d54c[_0xb4d54c[_0x1f3c45(0x1c1)]=0x4]=_0x1f3c45(0x1c1),_0xb4d54c[_0xb4d54c[_0x1f3c45(0x1b0)]=0x8]=_0x1f3c45(0x1b0),_0xb4d54c[_0xb4d54c['VariableType']=0x10]=_0x1f3c45(0x175),_0xb4d54c[_0xb4d54c[_0x1f3c45(0x192)]=0x20]=_0x1f3c45(0x192),_0xb4d54c[_0xb4d54c['DataType']=0x40]=_0x1f3c45(0x13e),_0xb4d54c[_0xb4d54c[_0x1f3c45(0x165)]=0x80]=_0x1f3c45(0x165);}(_0x2f26e7||(_0x2f26e7={})));var _0x5f142d;(function(_0x120c34){const _0x3cd07e=_0x2ab735;_0x120c34[_0x120c34['Object']=0x1]='Object',_0x120c34[_0x120c34[_0x3cd07e(0x12a)]=0x2]=_0x3cd07e(0x12a),_0x120c34[_0x120c34[_0x3cd07e(0x1c1)]=0x4]=_0x3cd07e(0x1c1),_0x120c34[_0x120c34[_0x3cd07e(0x1b0)]=0x8]=_0x3cd07e(0x1b0),_0x120c34[_0x120c34[_0x3cd07e(0x175)]=0x10]=_0x3cd07e(0x175),_0x120c34[_0x120c34[_0x3cd07e(0x192)]=0x20]=_0x3cd07e(0x192),_0x120c34[_0x120c34[_0x3cd07e(0x13e)]=0x40]=_0x3cd07e(0x13e),_0x120c34[_0x120c34[_0x3cd07e(0x165)]=0x80]=_0x3cd07e(0x165);}(_0x5f142d||(_0x5f142d={})));function _0x3ecfb9(_0x508552,_0x24a81b){const _0x229a52=_0x2ab735;if(typeof _0x24a81b==='number')return _0x24a81b;const _0x2cb3df=parseInt(_0x24a81b,0xa);if(!isNaN(_0x2cb3df))return _0x2cb3df;const _0x267eef=_0x24a81b[_0x229a52(0x1cb)](/\||;|,/)[_0x229a52(0x138)](_0x37053c=>_0x37053c[_0x229a52(0x12d)]());let _0x1b2d9f=0x0;for(const _0x3d3cc4 of _0x267eef){_0x1b2d9f|=_0x508552[_0x3d3cc4];}return _0x1b2d9f;}function _0x6c3d6(_0x1ff426,_0x414e99){const _0x29f3e8=_0x2ab735;_0x414e99=_0x3ecfb9(_0x1ff426,_0x414e99);const _0xe4c5e8=[];for(const [_0x2e5702,_0x3ac9eb]of Object['entries'](_0x1ff426)){typeof _0x414e99==='number'&&((_0x414e99&_0x3ac9eb)===_0x3ac9eb&&_0xe4c5e8[_0x29f3e8(0x1c9)](_0x2e5702));}return _0xe4c5e8[_0x29f3e8(0x133)](_0x29f3e8(0x188));}var _0x3dcf12;(function(_0x4318bb){const _0x167e91=_0x2ab735;_0x4318bb[_0x4318bb[_0x167e91(0x192)]=0x1]='ReferenceType',_0x4318bb[_0x4318bb['IsForward']=0x2]=_0x167e91(0x130),_0x4318bb[_0x4318bb['NodeClass']=0x4]='NodeClass',_0x4318bb[_0x4318bb['BrowseName']=0x8]=_0x167e91(0x13a),_0x4318bb[_0x4318bb[_0x167e91(0x1ba)]=0x10]=_0x167e91(0x1ba),_0x4318bb[_0x4318bb['TypeDefinition']=0x20]=_0x167e91(0x196);}(_0x3dcf12||(_0x3dcf12={})));function _0x50527f(_0x431db6){const _0x38f5fd=_0x2ab735;switch(_0x431db6){case _0x38f5fd(0x1c7):return _0x42ca18;case _0x38f5fd(0x1a1):return _0x2bb632;case _0x38f5fd(0x1ae):return _0x362c49;case _0x38f5fd(0x19a):return _0x59f24b;case _0x38f5fd(0x150):return _0x4f76d6;case'HasTypeDefinition':return _0x1b99d6;}}const _0x402a5d=_0x41b187=>{const _0x3a230c=_0x2ab735;switch(_0x41b187[_0x3a230c(0x141)]){case _0x3a230c(0x122):if(_0x41b187[_0x3a230c(0x15c)]===_0x42ca18);if(_0x41b187[_0x3a230c(0x191)]===_0x2ac00c||_0x41b187[_0x3a230c(0x15c)]===_0x3a230c(0x15e))return{'icon':'fa-folder','color':_0x3a230c(0x180)};return{'icon':_0x3a230c(0x140),'color':_0x3a230c(0x1ca)};case _0x3a230c(0x12a):if(_0x41b187['referenceTypeId']===_0x362c49)return{'icon':_0x3a230c(0x164),'color':'SteelBlue'};else return _0x41b187['referenceTypeId']===_0x2bb632?{'icon':_0x3a230c(0x164),'color':_0x3a230c(0x125)}:{'icon':_0x3a230c(0x164),'color':_0x3a230c(0x1d4)};case _0x3a230c(0x1c1):return{'icon':'fa-cog','color':_0x3a230c(0x18d)};case _0x3a230c(0x1b0):return{'icon':'fa-object-group','color':_0x3a230c(0x129)};case _0x3a230c(0x175):return{'icon':'fa-sliders','color':_0x3a230c(0x129)};}return{'icon':'fa-question','color':'grey'};},_0x1c8905=({endpointNode:_0x51aac6,endpoint:_0x4dfdfc,baseUrl:_0x112681},_0x2b1ec1,_0xb0fc1e)=>_0x4e6e3f(void 0x0,void 0x0,void 0x0,function*(){const _0x2b890f=_0x2ab735,_0x31eead=_0x112681+_0x2b890f(0x1ac),_0x4719fb=_0x31eead+'/browse',_0x2dbfeb=Object[_0x2b890f(0x19b)](Object['assign']({},_0xb0fc1e),{'nodeId':_0x2b1ec1,'resultMask':0x3f}),_0x3422e9=yield fetch(_0x4719fb,{'method':_0x2b890f(0x13b),'body':JSON['stringify']({'endpointNode':_0x51aac6,'endpoint':_0x4dfdfc,'browseDescription':_0x2dbfeb}),'headers':{'Content-Type':_0x2b890f(0x1c5)}});if(_0x3422e9[_0x2b890f(0x136)]!==0xc8)return console[_0x2b890f(0x193)]('fetching\x20failed\x20with\x20error',_0x3422e9['status'],_0x3422e9['statusText']),{'references':[]};console[_0x2b890f(0x193)](_0x2b890f(0x19d),_0x3422e9[_0x2b890f(0x136)],_0x3422e9[_0x2b890f(0x16f)]);const _0x5a5d2b=yield _0x3422e9[_0x2b890f(0x119)](),_0xf4dbb3=_0x5a5d2b[_0x2b890f(0x12c)][_0x2b890f(0x1a0)]||[];return{'references':_0xf4dbb3};}),_0x497ca2={'referenceTypeId':_0x50527f(_0x2ab735(0x19a)),'includeSubtypes':!![],'browseDirection':_0x458b85[_0x2ab735(0x1cd)],'nodeClassMask':_0x2f26e7[_0x2ab735(0x12a)]|_0x2f26e7[_0x2ab735(0x122)]|_0x2f26e7[_0x2ab735(0x1c1)],'resultMask':0x3f},_0x1ca8c8={'referenceTypeId':_0x50527f(_0x2ab735(0x1c7)),'includeSubtypes':!![],'browseDirection':_0x458b85[_0x2ab735(0x1cd)],'nodeClassMask':_0x2f26e7[_0x2ab735(0x12a)]|_0x2f26e7[_0x2ab735(0x122)]|_0x2f26e7[_0x2ab735(0x1c1)],'resultMask':0x3f},_0x4bcc0d=({endpointNode:_0x14f3a2,endpoint:_0x2f5a75,baseUrl:_0x5d9dfb},_0x2e37fb,_0x19bff2)=>_0x4e6e3f(void 0x0,void 0x0,void 0x0,function*(){const _0x4fbcd9=_0x2ab735,_0x48f964=_0x5d9dfb+'/opcua-endpoint2',_0x190576=_0x2e37fb['val'](),_0x538e9c=yield fetch(_0x48f964+_0x4fbcd9(0x1be),{'method':'POST','body':JSON[_0x4fbcd9(0x187)]({'endpointNode':_0x14f3a2,'endpoint':_0x2f5a75,'nodeId':_0x190576}),'headers':{'Content-Type':_0x4fbcd9(0x1c5)}}),_0x1ab9c6=(_0x34e295,_0x58525a)=>{const _0xf137c8=_0x4fbcd9;_0x19bff2[_0xf137c8(0x1a2)](_0x34e295)[_0xf137c8(0x135)]('sterfive-info')[_0xf137c8(0x135)](_0x58525a),_0x19bff2['show'](),setTimeout(()=>{const _0x58779b=_0xf137c8;_0x19bff2['removeClass'](_0x58525a),_0x19bff2[_0x58779b(0x146)]();},0xbb8);},_0x14841e=yield _0x538e9c[_0x4fbcd9(0x119)]();_0x538e9c['status']!==0xc8?_0x1ab9c6(_0x4fbcd9(0x195)+_0x190576,_0x4fbcd9(0x157)):_0x14841e[_0x4fbcd9(0x143)]['match'](/Good/)?(_0x2e37fb['val'](_0x14841e['nodeAddressString']),_0x2e37fb['trigger'](_0x4fbcd9(0x1ab)),_0x1ab9c6('Good','ok')):(_0x2e37fb[_0x4fbcd9(0x144)](''+_0x190576),_0x1ab9c6(_0x14841e['statusCode']+'\x20'+_0x538e9c[_0x4fbcd9(0x16f)],_0x4fbcd9(0x157)));});function _0x3f622b(_0x34822c,_0x17e16a){return _0x4e6e3f(this,void 0x0,void 0x0,function*(){const _0x3e437d=_0x1d55,_0x45fe82=_0x34822c[_0x3e437d(0x152)]('value'),_0x18764c=yield _0x1c8905(_0x17e16a,_0x45fe82,_0x497ca2),_0x5c8741=yield _0x1c8905(_0x17e16a,_0x45fe82,_0x1ca8c8);return{'references':[..._0x18764c[_0x3e437d(0x1a0)],..._0x5c8741[_0x3e437d(0x1a0)]]};});}const _0x4fdb83={'referenceTypeId':_0x50527f(_0x2ab735(0x150)),'includeSubtypes':!![],'browseDirection':_0x458b85[_0x2ab735(0x1cd)],'nodeClassMask':_0x2f26e7[_0x2ab735(0x192)]|_0x2f26e7[_0x2ab735(0x1b0)]|_0x2f26e7['DataType']|_0x2f26e7[_0x2ab735(0x175)],'resultMask':0x3f};function _0x1a6105(_0x6730,_0x49a465){return _0x4e6e3f(this,void 0x0,void 0x0,function*(){const _0x20c025=_0x1d55,_0x4fdeac=_0x6730[_0x20c025(0x152)](_0x20c025(0x185)),_0x441f62=yield _0x1c8905(_0x49a465,_0x4fdeac,_0x4fdb83);return _0x441f62;});}const _0x1a8344=_0x2b9a4b=>{const _0x28e8a5=_0x2ab735;var _0x6fad,_0x2c79a4;if(!_0x2b9a4b){const _0x4fd215=$(_0x28e8a5(0x112));return _0x4fd215;}const _0x45e31a=_0x2b9a4b[_0x28e8a5(0x1a3)]['toString'](),_0x1fb190=((_0x6fad=_0x2b9a4b[_0x28e8a5(0x137)])===null||_0x6fad===void 0x0?void 0x0:_0x6fad['text'])||((_0x2c79a4=_0x2b9a4b['browseName'])===null||_0x2c79a4===void 0x0?void 0x0:_0x2c79a4[_0x28e8a5(0x134)])||_0x2b9a4b['nodeId'][_0x28e8a5(0x194)](),{icon:_0x1695de,color:_0x3a2e78}=_0x402a5d(_0x2b9a4b),_0x357da3=$(_0x28e8a5(0x154)+_0x1695de+_0x28e8a5(0x1cf)+_0x3a2e78+_0x28e8a5(0x17c)+_0x1fb190+_0x28e8a5(0x182));return _0x357da3[_0x28e8a5(0x135)](_0x28e8a5(0x17e)),_0x357da3[_0x28e8a5(0x152)](_0x28e8a5(0x185),_0x45e31a),_0x357da3[_0x28e8a5(0x152)]('reference',_0x2b9a4b),_0x357da3;},_0x2460fd=()=>{const _0x193e25=_0x2ab735;$['widget'](_0x193e25(0x1b8),{'options':{'endpointNode':()=>({'endpoint':_0x193e25(0x117)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x193e25(0x147)},'nodeClass':'Object','nodeId':_0x193e25(0x1b4),'displayName':{'text':_0x193e25(0x147)},'typeDefinition':_0x2ac00c}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x4e6e3f(this,void 0x0,void 0x0,function*(){const _0x5e4f11=_0x1d55,_0x15ac4a=this,_0x2200ed=typeof _0x15ac4a[_0x5e4f11(0x19c)]['parentNode']===_0x5e4f11(0x170)?_0x15ac4a[_0x5e4f11(0x19c)][_0x5e4f11(0x1d0)]():_0x15ac4a['options']['parentNode'];if(_0x2200ed instanceof Promise)return yield _0x2200ed;return _0x2200ed;});},'reset'(){const _0x1bd982=_0x193e25,_0x1cc3e5=this;_0x1cc3e5['$tree'][_0x1bd982(0x158)](),this[_0x1bd982(0x11e)]()[_0x1bd982(0x1a9)](_0x207698=>{const _0x348ac5=_0x1bd982,_0x134acd=_0x1a8344(_0x207698);_0x1cc3e5['$tree'][_0x348ac5(0x1b7)](_0x134acd),_0x1cc3e5['currentParent']=_0x207698;});},'verify'(){const _0x3d7d39=_0x193e25,_0x5cfb61=this,_0x533f06={'baseUrl':_0x5cfb61[_0x3d7d39(0x19c)][_0x3d7d39(0x199)],'endpointNode':typeof _0x5cfb61[_0x3d7d39(0x19c)][_0x3d7d39(0x118)]==='function'?_0x5cfb61[_0x3d7d39(0x19c)]['endpointNode']():_0x5cfb61[_0x3d7d39(0x19c)][_0x3d7d39(0x118)],'endpoint':typeof _0x5cfb61[_0x3d7d39(0x19c)][_0x3d7d39(0x17f)]===_0x3d7d39(0x170)?_0x5cfb61[_0x3d7d39(0x19c)]['endpoint']():_0x5cfb61[_0x3d7d39(0x19c)]['endpoint']};_0x4bcc0d(_0x533f06,_0x5cfb61[_0x3d7d39(0x171)],_0x5cfb61[_0x3d7d39(0x139)]);},'_create'(){const _0x4e079d=_0x193e25,_0x154451=this;function _0x3564d7(_0x4ad853,_0x407d05,_0x5cc7a9){return _0x4e6e3f(this,void 0x0,void 0x0,function*(){const _0x1dfa11=_0x1d55;if(_0x4ad853['hasClass'](_0x1dfa11(0x11c))){console['log'](_0x1dfa11(0x18f));return;}if(_0x4ad853[_0x1dfa11(0x11b)]('loading')){console[_0x1dfa11(0x193)](_0x1dfa11(0x18e));return;}_0x4ad853[_0x1dfa11(0x135)](_0x1dfa11(0x179)),_0x4ad853['append'](_0x1dfa11(0x160));try{_0x4ad853[_0x1dfa11(0x172)]('ul')[_0x1dfa11(0x158)]();const {references:_0x4caf43}=yield _0x407d05(_0x4ad853,_0x5cc7a9);for(const _0x3d5694 of _0x4caf43){if(_0x154451['options']['filter']&&!_0x154451[_0x1dfa11(0x19c)]['filter'](_0x3d5694))continue;const _0x5e12d8=_0x1a8344(_0x3d5694);_0x4ad853[_0x1dfa11(0x172)]('ul')[_0x1dfa11(0x1b7)](_0x5e12d8);}_0x4ad853['addClass']('fetched');}catch(_0x50214d){_0x4ad853['children']('ul')[_0x1dfa11(0x1b7)](_0x1dfa11(0x15f)+_0x50214d[_0x1dfa11(0x1ad)]+_0x1dfa11(0x1c4)),console[_0x1dfa11(0x193)](_0x1dfa11(0x155),_0x50214d);}_0x4ad853[_0x1dfa11(0x184)](_0x1dfa11(0x132))[_0x1dfa11(0x16c)](),_0x4ad853[_0x1dfa11(0x12b)](_0x1dfa11(0x179));});}_0x154451[_0x4e079d(0x171)]=this[_0x4e079d(0x1d2)],_0x154451['$combo']=$(_0x4e079d(0x1c2)),_0x154451[_0x4e079d(0x13d)][_0x4e079d(0x135)](_0x4e079d(0x167)),this[_0x4e079d(0x1d2)]['replaceWith'](_0x154451[_0x4e079d(0x13d)]),_0x154451[_0x4e079d(0x121)]=$(_0x4e079d(0x1c2))['addClass']('input-group'),_0x154451[_0x4e079d(0x13d)][_0x4e079d(0x1b7)](_0x154451[_0x4e079d(0x121)]),_0x154451[_0x4e079d(0x121)][_0x4e079d(0x1b7)](_0x154451[_0x4e079d(0x171)]),_0x154451['$toggleTreeBtn']=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x154451[_0x4e079d(0x121)][_0x4e079d(0x1b7)](_0x154451[_0x4e079d(0x159)]),_0x154451['$toggleTreeBtn']['on'](_0x4e079d(0x120),function(){const _0x474e11=_0x4e079d;!_0x154451[_0x474e11(0x189)]['is'](':visible')&&(_0x154451[_0x474e11(0x11e)]()[_0x474e11(0x1a9)](_0x12db83=>{const _0x50c09f=_0x474e11;var _0x5b9116;(_0x12db83!==_0x154451[_0x50c09f(0x173)]||((_0x5b9116=_0x154451[_0x50c09f(0x173)])===null||_0x5b9116===void 0x0?void 0x0:_0x5b9116[_0x50c09f(0x1a3)])!==_0x12db83['nodeId'])&&_0x154451[_0x50c09f(0x17d)]();}),_0x154451[_0x474e11(0x139)]['hide']()),_0x154451['$dropdown'][_0x474e11(0x1b2)]();}),_0x154451[_0x4e079d(0x11a)]=$(_0x4e079d(0x1b1)),_0x154451[_0x4e079d(0x121)][_0x4e079d(0x1b7)](_0x154451['$verifyBtn']),_0x154451[_0x4e079d(0x11a)]['on']('click',()=>{const _0x514995=_0x4e079d;this[_0x514995(0x19e)]();}),!_0x154451[_0x4e079d(0x171)][_0x4e079d(0x176)](_0x4e079d(0x1a6))&&_0x154451[_0x4e079d(0x171)][_0x4e079d(0x176)](_0x4e079d(0x1a6),_0x4e079d(0x1cc)),_0x154451[_0x4e079d(0x139)]=$(_0x4e079d(0x116)),_0x154451[_0x4e079d(0x139)][_0x4e079d(0x146)](),{'baseUrl':_0x154451['options'][_0x4e079d(0x199)],'endpointNode':typeof _0x154451[_0x4e079d(0x19c)][_0x4e079d(0x118)]==='function'?_0x154451['options'][_0x4e079d(0x118)]():_0x154451[_0x4e079d(0x19c)][_0x4e079d(0x118)],'endpoint':typeof _0x154451[_0x4e079d(0x19c)][_0x4e079d(0x17f)]===_0x4e079d(0x170)?_0x154451['options']['endpoint']():_0x154451[_0x4e079d(0x19c)][_0x4e079d(0x17f)]},_0x154451[_0x4e079d(0x189)]=$(_0x4e079d(0x1c2))[_0x4e079d(0x135)]('sterfive-dropdown')[_0x4e079d(0x146)](),_0x154451[_0x4e079d(0x13d)]['append'](_0x154451[_0x4e079d(0x139)]),_0x154451['$combo'][_0x4e079d(0x1b7)](_0x154451['$dropdown']),_0x154451[_0x4e079d(0x17b)]=$(_0x4e079d(0x162))[_0x4e079d(0x13c)](_0x154451[_0x4e079d(0x189)]),this['reset'](),_0x154451[_0x4e079d(0x17b)]['on'](_0x4e079d(0x120),'li',function(_0x3183b4){const _0x425307=_0x4e079d;var _0xc7f6ed,_0x122c7f;_0x3183b4[_0x425307(0x19f)]();let _0x1c8c89=$(this);const _0x2717a9=0x14,_0x5e8186=0x14,_0x5afcca=$(this)[_0x425307(0x1b9)](),_0x1fd15f=_0x3183b4;if(_0x1fd15f[_0x425307(0x126)]>=_0x5afcca[_0x425307(0x1bf)]&&_0x1fd15f['pageX']<=_0x5afcca[_0x425307(0x1bf)]+_0x2717a9&&_0x1fd15f['pageY']>=_0x5afcca[_0x425307(0x14f)]&&_0x1fd15f[_0x425307(0x1b3)]<=_0x5afcca[_0x425307(0x14f)]+_0x5e8186){if(_0x1c8c89[_0x425307(0x11b)](_0x425307(0x17e))){if(_0x1c8c89['hasClass'](_0x425307(0x11c))){_0x1c8c89[_0x425307(0x12b)](_0x425307(0x17e))[_0x425307(0x135)]('expanded'),_0x1c8c89[_0x425307(0x172)]('ul')[_0x425307(0x1b2)]();return;}const _0x53553d={'baseUrl':_0x154451['options'][_0x425307(0x199)],'endpointNode':typeof _0x154451[_0x425307(0x19c)]['endpointNode']==='function'?_0x154451['options'][_0x425307(0x118)]():_0x154451[_0x425307(0x19c)][_0x425307(0x118)],'endpoint':typeof _0x154451[_0x425307(0x19c)]['endpoint']===_0x425307(0x170)?_0x154451[_0x425307(0x19c)][_0x425307(0x17f)]():_0x154451[_0x425307(0x19c)][_0x425307(0x17f)]},_0x4fcc65=!_0x154451['options'][_0x425307(0x177)]?_0x3f622b:_0x1a6105;_0x3564d7(_0x1c8c89,_0x4fcc65,_0x53553d)[_0x425307(0x1a9)](()=>{const _0x2a01fd=_0x425307;console[_0x2a01fd(0x193)](_0x2a01fd(0x1d3)),console[_0x2a01fd(0x193)](_0x2a01fd(0x11c)),_0x1c8c89[_0x2a01fd(0x12b)](_0x2a01fd(0x17e))[_0x2a01fd(0x135)](_0x2a01fd(0x1c0));})[_0x425307(0x1bc)](_0x55ae98=>{const _0x462b64=_0x425307;_0x1c8c89[_0x462b64(0x12b)](_0x462b64(0x17e))[_0x462b64(0x135)](_0x462b64(0x1c0)),console[_0x462b64(0x193)](_0x462b64(0x1c8),_0x55ae98);});}else{if(_0x1c8c89[_0x425307(0x11b)](_0x425307(0x1c0)))_0x1c8c89[_0x425307(0x172)]('ul')['toggle'](),_0x1c8c89['toggleClass'](_0x425307(0x197));else{if(_0x1c8c89['children']('ul')[_0x425307(0x172)]()['length']>0x0)_0x1c8c89['children']('ul')['toggle'](),_0x1c8c89[_0x425307(0x11f)](_0x425307(0x197));else;}}}else{const _0x560249=_0x1c8c89[_0x425307(0x152)](_0x425307(0x185)),_0x26966b=_0x1c8c89['data'](_0x425307(0x14e));if(_0x154451[_0x425307(0x19c)]['isSelectable']&&!_0x154451[_0x425307(0x19c)]['isSelectable'](_0x26966b))return;_0x154451['$input'][_0x425307(0x152)]('reference',_0x26966b);const _0x1caa38=((_0xc7f6ed=_0x26966b['displayName'])===null||_0xc7f6ed===void 0x0?void 0x0:_0xc7f6ed['text'])||((_0x122c7f=_0x26966b['browseName'])===null||_0x122c7f===void 0x0?void 0x0:_0x122c7f['name'])||_0x26966b[_0x425307(0x1a3)][_0x425307(0x194)](),_0xa8f9bf='['+_0x1caa38+']('+_0x560249+')';_0x154451[_0x425307(0x171)]['val'](_0xa8f9bf),_0x154451[_0x425307(0x171)]['trigger'](_0x425307(0x1ab)),_0x154451[_0x425307(0x189)]['hide']();}}),$(document)['on']('click',function(_0x4a51e7){const _0x140890=_0x4e079d;!$(_0x4a51e7[_0x140890(0x1a4)])[_0x140890(0x149)](_0x154451[_0x140890(0x13d)])[_0x140890(0x1bd)]&&_0x154451[_0x140890(0x189)]['hide']();});}});},_0x3f21d4=()=>{const _0x21ed4f=_0x2ab735;$[_0x21ed4f(0x156)]('sterfive.flagEditor',{'options':{'namesToBits':{},'value':0x0},'_create'(){const _0x44d4d9=_0x21ed4f,_0x533152=this;_0x533152['$input']=this[_0x44d4d9(0x1d2)],_0x533152[_0x44d4d9(0x13d)]=$(_0x44d4d9(0x1c2)),_0x533152[_0x44d4d9(0x13d)][_0x44d4d9(0x135)](_0x44d4d9(0x167)),this[_0x44d4d9(0x1d2)][0x0][_0x44d4d9(0x142)][_0x44d4d9(0x12f)](_0x533152['$combo'][0x0],this[_0x44d4d9(0x1d2)][0x0]),_0x533152[_0x44d4d9(0x121)]=$(_0x44d4d9(0x1c2))[_0x44d4d9(0x135)]('input-group'),_0x533152['$combo'][_0x44d4d9(0x1b7)](_0x533152['$inputGroup']),_0x533152[_0x44d4d9(0x121)][_0x44d4d9(0x1b7)](_0x533152[_0x44d4d9(0x171)]),_0x533152['$toggleTreeBtn']=$(_0x44d4d9(0x190)),_0x533152['$inputGroup']['append'](_0x533152[_0x44d4d9(0x159)]),_0x533152[_0x44d4d9(0x159)]['on'](_0x44d4d9(0x120),function(){const _0x44c1c6=_0x44d4d9;_0x533152[_0x44c1c6(0x189)][_0x44c1c6(0x1b2)](),_0x533152[_0x44c1c6(0x189)]['is'](':visible')&&(_0x4ddba4(),_0x533152[_0x44c1c6(0x13d)][_0x44c1c6(0x184)](_0x44c1c6(0x169))[_0x44c1c6(0x183)](function(){const _0x1604be=_0x44c1c6;let _0x59f20c=$(this)['text']();const _0x19c4c3=_0x533152[_0x1604be(0x19c)]['namesToBits'][_0x59f20c];if(_0x19c4c3===undefined)throw new Error(_0x1604be(0x123));(_0x533152['options'][_0x1604be(0x185)]&_0x19c4c3)===_0x19c4c3?$(this)[_0x1604be(0x135)](_0x1604be(0x18a)):$(this)[_0x1604be(0x12b)](_0x1604be(0x18a));}),_0x533152[_0x44c1c6(0x12e)]());}),_0x533152[_0x44d4d9(0x189)]=$(_0x44d4d9(0x115))[_0x44d4d9(0x146)]()[_0x44d4d9(0x1ce)](this['element']),$['each'](this[_0x44d4d9(0x19c)][_0x44d4d9(0x1c6)],function(_0x2cef69){const _0x3c0755=_0x44d4d9,_0x155171=$(_0x3c0755(0x16e)+_0x2cef69+'\x22>'+'<span\x20class=\x22custom-checkbox\x22></span>'+_0x2cef69+'</div>');_0x533152[_0x3c0755(0x189)][_0x3c0755(0x1b7)](_0x155171);}),_0x533152[_0x44d4d9(0x189)]['on'](_0x44d4d9(0x120),'.custom-option',function(){const _0x66411d=_0x44d4d9;$(this)[_0x66411d(0x11f)](_0x66411d(0x18a));const _0x571bcb=$(this)[_0x66411d(0x152)](_0x66411d(0x185));$(this)[_0x66411d(0x11b)](_0x66411d(0x18a))?_0x3be54a(_0x571bcb):_0x26ca1c(_0x571bcb),_0x533152[_0x66411d(0x12e)]();}),_0x533152[_0x44d4d9(0x13d)]['append'](_0x533152[_0x44d4d9(0x189)]);const _0x4ddba4=()=>{const _0x483dc2=_0x44d4d9,_0xf9c2d4=this[_0x483dc2(0x1d2)][_0x483dc2(0x144)]();_0x533152['options']['value']=_0x3ecfb9(_0x533152[_0x483dc2(0x19c)][_0x483dc2(0x1c6)],_0xf9c2d4);},_0x3be54a=_0x64d14=>{const _0x57aee9=_0x44d4d9,_0x59d0ac=_0x533152[_0x57aee9(0x19c)][_0x57aee9(0x1c6)][_0x64d14];if(_0x59d0ac===undefined)throw new Error('Unknown\x20bit\x20name');this['options']['value']|=_0x59d0ac;},_0x26ca1c=_0x49f37d=>{const _0x3cba96=_0x44d4d9,_0x5f0382=_0x533152[_0x3cba96(0x19c)][_0x3cba96(0x1c6)][_0x49f37d];if(_0x5f0382===undefined)throw new Error('Unknown\x20bit\x20name');this['options'][_0x3cba96(0x185)]&=~_0x5f0382,this['element'][_0x3cba96(0x144)](_0x6c3d6(_0x533152[_0x3cba96(0x19c)][_0x3cba96(0x1c6)],this['options'][_0x3cba96(0x185)]));};_0x4ddba4();},'updateValue'(){const _0x484b29=_0x21ed4f,_0x37695c=this;this[_0x484b29(0x1d2)][_0x484b29(0x144)](_0x6c3d6(_0x37695c[_0x484b29(0x19c)]['namesToBits'],this[_0x484b29(0x19c)]['value']));},'_destroy'(){const _0x39ee09=_0x21ed4f,_0x348c09=this;_0x348c09[_0x39ee09(0x189)][_0x39ee09(0x16c)]();}});};RED[_0x2ab735(0x1d1)][_0x2ab735(0x14b)](_0x2ab735(0x163),{'category':_0x2ab735(0x1c3),'color':_0x2ab735(0x1a5),'align':_0x2ab735(0x15d),'icon':_0x2ab735(0x114),'paletteLabel':'browse','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x2ab735(0x113)},'nodeId':{'value':'','required':![]},'referenceTypeId':{'value':_0x2ab735(0x19a),'required':![]},'includeSubtypes':{'value':![],'required':!![]},'browseDirection':{'value':_0x2ab735(0x1cd),'required':!![]},'nodeClassMask':{'value':_0x2ab735(0x186),'required':![]},'resultMask':{'value':_0x2ab735(0x174),'required':![]}},'outputs':0x1,'label'(){const _0x4a1c76=_0x2ab735;return this[_0x4a1c76(0x134)]||_0x4a1c76(0x168);},'labelStyle'(){const _0x2ace0c=_0x2ab735;return this[_0x2ace0c(0x134)]?'node_label_italic':'';},'oneditprepare'(){const _0x59e7b8=_0x2ab735,_0x5a56b0=this;_0x2460fd(),_0x3f21d4(),_0x5a56b0[_0x59e7b8(0x128)]=0x1;const _0x3aaebe=$(_0x59e7b8(0x14a));_0x3aaebe[_0x59e7b8(0x16a)]({'namesToBits':{'Object':0x1,'Variable':0x2,'Method':0x4,'ObjectType':0x8,'VariableType':0x10,'ReferenceType':0x20,'DataType':0x40,'View':0x80},'value':0x0});const _0x5d52aa=$(_0x59e7b8(0x166));_0x5d52aa[_0x59e7b8(0x16a)]({'namesToBits':{'ReferenceType':0x1,'IsForward':0x2,'NodeClass':0x4,'BrowseName':0x8,'DisplayName':0x10,'TypeDefinition':0x20},'value':0x3f});const _0x1cc375=$(_0x59e7b8(0x131));_0x1cc375[_0x59e7b8(0x127)]({'isSelectable'(_0x2b848d){const _0x3c50ae=_0x59e7b8;return _0x2b848d[_0x3c50ae(0x141)]===_0x3c50ae(0x12a)||_0x2b848d[_0x3c50ae(0x141)]==='Object';}});const _0x2c9163={'nodeId':'i=31','referenceTypeId':'','browseName':{'namespaceIndex':0x0,'name':'References'},'displayName':{'text':_0x59e7b8(0x15b)},'nodeClass':_0x59e7b8(0x192),'typeDefinition':'i=31'},_0x32b775=$(_0x59e7b8(0x1a7));_0x32b775[_0x59e7b8(0x127)]({'parentNode':()=>_0x2c9163,'isSelectable'(_0x251d38){return _0x251d38['nodeClass']==='ReferenceType';},'isTypeRef':!![]});},'oneditsave'(){}});}()));function _0x1d55(_0x30a45b,_0x33fb89){const _0x5092f9=_0x5092();return _0x1d55=function(_0x1d55c3,_0x275613){_0x1d55c3=_0x1d55c3-0x112;let _0x4ed414=_0x5092f9[_0x1d55c3];return _0x4ed414;},_0x1d55(_0x30a45b,_0x33fb89);}function _0x5092(){const _0x3ee9f4=['pageX','nodeBrowser','inputs','DarkOrange','Variable','removeClass','browseResult','trim','updateValue','replaceChild','IsForward','#node-input-nodeId','.spinner','join','name','addClass','status','displayName','map','$info','BrowseName','POST','appendTo','$combo','DataType','Inverse','fa-object-group','nodeClass','parentElement','statusCode','val','9190841asIIgD','hide','Objects','Both','closest','#node-input-nodeClassMask','registerType','124GHrMUs','Invalid','reference','top','HasSubtype','Unspecified','data','ns=0;i=47','<li><i\x20class=\x22fa\x20','err','widget','failure','empty','$toggleTreeBtn','ns=0;i=34','References','referenceTypeId','right','i=61','<li>error\x20','<div\x20class=\x22spinner\x22></div>','10JmdyBN','<ul\x20class=\x22sterfive-tree\x22></ul>','OpcUa-Client2-Browse','fa-list-alt','View','#node-input-resultMask','sterfive-combo-box','OPCUA\x20Browse','.custom-option','flagEditor','throw','remove','9042039THQJPa','<div\x20class=\x22custom-option\x22\x20data-value=\x22','statusText','function','$input','children','currentParent','ReferenceType\x20|\x20BrowseName\x20|\x20TypeDefinition\x20|\x20DisplayName\x20|\x20NodeClass\x20|\x20IsForward','VariableType','attr','isTypeRef','done','loading','ns=0;i=61','$tree',';\x22></i>\x20','reset','expandable','endpoint','rgba(61,\x2060,\x204,\x200.525)','ns=0;i=45','<ul></ul></li>','each','find','value','Variable\x20|\x20Object\x20|\x20Method\x20|\x20ObjectType\x20|\x20VariableType','stringify','\x20|\x20','$dropdown','selected','1075392VOXwtW','483TZKcJG','SandyBrown','already\x20loading','already\x20fetched','<button><i\x20class=\x22fa\x20fa-eye\x22></i></button>','typeDefinition','ReferenceType','log','toString','!!failure!!','TypeDefinition','expandable\x20expanded','48745YKUJCD','baseUrl','HasChild','assign','options','fetched\x20:\x20','verify','stopPropagation','references','HasProperty','text','nodeId','target','#C0DEED','placeholder','#node-input-referenceTypeId','960hLNJof','then','next','change','/opcua-endpoint2','message','HasComponent','ns=0;i=40','ObjectType','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','toggle','pageY','ns=0;i=85','12ShIzWh','8676WqDRDG','append','sterfive.nodeBrowser','offset','DisplayName','suppressed','catch','length','/checkNodeId','left','expanded','Method','<div/>','opcua','</li>','application/json','namesToBits','Organizes','error','push','SeaGreen','split','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','Forward','insertAfter','\x22\x20style=\x22color:','parentNode','nodes','element','\x20Fetching\x20done','CadetBlue','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','OpcUa-Endpoint2','../../icons/opcuanodeLogo.png','<div\x20class=\x22custom-select\x22></div>','<div\x20class=\x22info-text\x22></div>','opc.tcp://opcuademo.sterfive.com:26543','endpointNode','json','$verifyBtn','hasClass','fetched','2544232ybkojn','resolveParentNode','toggleClass','click','$inputGroup','Object','Unknown\x20bit\x20name','172oOfwtR','DodgerBlue'];_0x5092=function(){return _0x3ee9f4;};return _0x5092();}
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0ZTZlM2YiLCJfMHgzOTI3NTYiLCJfMHgxYmJhMjEiLCJfMHgyYmVkOTMiLCJfMHg1N2Y3M2MiLCJfMHg0NGY1ZjciLCJfMHgxZmNjYzkiLCJfMHgxMTY2NjAiLCJQcm9taXNlIiwiXzB4MzFmYTFkIiwiXzB4MWZhYzlhIiwiXzB4M2EyZTFiIiwiXzB4MzY3M2Q0IiwiXzB4MTYxNGNjIiwiXzB4MmY4MWU0IiwiXzB4NWU2YWI4IiwiXzB4MjAxM2QyIiwiXzB4NWJkYjE0IiwiXzB4NGQxYTYwIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NDhlYmE1IiwiXzB4N2I0YWYyIiwiXzB4MTUyYjJlIiwiXzB4MjljOThmIiwiRXJyb3IiLCJfMHg0MmNhMTgiLCJfMHgyYWMwMGMiLCJfMHgzNjJjNDkiLCJfMHgyYmI2MzIiLCJfMHg1OWYyNGIiLCJfMHg0Zjc2ZDYiLCJfMHgxYjk5ZDYiLCJfMHg0NThiODUiLCJfMHg0NjdkZWIiLCJfMHgyZjI2ZTciLCJfMHhiNGQ1NGMiLCJfMHg1ZjE0MmQiLCJfMHgxMjBjMzQiLCJfMHgzZWNmYjkiLCJfMHg1MDg1NTIiLCJfMHgyNGE4MWIiLCJfMHgyY2IzZGYiLCJwYXJzZUludCIsImlzTmFOIiwiXzB4MjY3ZWVmIiwiXzB4MzcwNTNjIiwiXzB4MWIyZDlmIiwiXzB4M2QzY2M0IiwiXzB4NmMzZDYiLCJfMHgxZmY0MjYiLCJfMHg0MTRlOTkiLCJfMHhlNGM1ZTgiLCJfMHgyZTU3MDIiLCJfMHgzYWM5ZWIiLCJPYmplY3QiLCJfMHgzZGNmMTIiLCJfMHg0MzE4YmIiLCJfMHg1MDUyN2YiLCJfMHg0MzFkYjYiLCJfMHg0MDJhNWQiLCJfMHg0MWIxODciLCJfMHgxYzg5MDUiLCJlbmRwb2ludE5vZGUiLCJfMHg1MWFhYzYiLCJlbmRwb2ludCIsIl8weDRkZmRmYyIsImJhc2VVcmwiLCJfMHgxMTI2ODEiLCJfMHgyYjFlYzEiLCJfMHhiMGZjMWUiLCJfMHgzMWVlYWQiLCJfMHg0NzE5ZmIiLCJfMHgyZGJmZWIiLCJfMHgzNDIyZTkiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4NWE1ZDJiIiwiXzB4ZjRkYmIzIiwiXzB4NDk3Y2EyIiwiXzB4MWNhOGM4IiwiXzB4NGJjYzBkIiwiXzB4MTRmM2EyIiwiXzB4MmY1YTc1IiwiXzB4NWQ5ZGZiIiwiXzB4MmUzN2ZiIiwiXzB4MTliZmYyIiwiXzB4NDhmOTY0IiwiXzB4MTkwNTc2IiwiXzB4NTM4ZTljIiwiXzB4MWFiOWM2IiwiXzB4MzRlMjk1IiwiXzB4NTg1MjVhIiwic2V0VGltZW91dCIsIl8weDE0ODQxZSIsIl8weDNmNjIyYiIsIl8weDM0ODIyYyIsIl8weDE3ZTE2YSIsIl8weDQ1ZmU4MiIsIl8weDE4NzY0YyIsIl8weDVjODc0MSIsIl8weDRmZGI4MyIsIl8weDFhNjEwNSIsIl8weDY3MzAiLCJfMHg0OWE0NjUiLCJfMHg0ZmRlYWMiLCJfMHg0NDFmNjIiLCJfMHgxYTgzNDQiLCJfMHgyYjlhNGIiLCJfMHg2ZmFkIiwiXzB4MmM3OWE0IiwiXzB4NGZkMjE1IiwiJCIsIl8weDQ1ZTMxYSIsIl8weDFmYjE5MCIsImljb24iLCJfMHgxNjk1ZGUiLCJjb2xvciIsIl8weDNhMmU3OCIsIl8weDM1N2RhMyIsIl8weDI0NjBmZCIsInVuZGVmaW5lZCIsIl8weDE1YWM0YSIsIl8weDIyMDBlZCIsIl8weDFjYzNlNSIsIl8weDIwNzY5OCIsIl8weDEzNGFjZCIsIl8weDVjZmI2MSIsIl8weDUzM2YwNiIsIl8weDE1NDQ1MSIsIl8weDM1NjRkNyIsIl8weDRhZDg1MyIsIl8weDQwN2QwNSIsIl8weDVjYzdhOSIsInJlZmVyZW5jZXMiLCJfMHg0Y2FmNDMiLCJfMHgzZDU2OTQiLCJfMHg1ZTEyZDgiLCJfMHg1MDIxNGQiLCJfMHgxMmRiODMiLCJfMHg1YjkxMTYiLCJfMHgzMTgzYjQiLCJfMHhjN2Y2ZWQiLCJfMHgxMjJjN2YiLCJfMHgxYzhjODkiLCJfMHgyNzE3YTkiLCJfMHg1ZTgxODYiLCJfMHg1YWZjY2EiLCJfMHgxZmQxNWYiLCJfMHg1MzU1M2QiLCJfMHg0ZmNjNjUiLCJfMHg1NWFlOTgiLCJfMHg1NjAyNDkiLCJfMHgyNjk2NmIiLCJfMHgxY2FhMzgiLCJfMHhhOGY5YmYiLCJkb2N1bWVudCIsIl8weDRhNTFlNyIsIl8weDNmMjFkNCIsIl8weDUzMzE1MiIsIl8weDRkZGJhNCIsIl8weDU5ZjIwYyIsIl8weDE5YzRjMyIsIl8weDJjZWY2OSIsIl8weDE1NTE3MSIsIl8weDU3MWJjYiIsIl8weDNiZTU0YSIsIl8weDI2Y2ExYyIsIl8weGY5YzJkNCIsIl8weDY0ZDE0IiwiXzB4NTlkMGFjIiwiXzB4NDlmMzdkIiwiXzB4NWYwMzgyIiwiXzB4Mzc2OTVjIiwiXzB4MzQ4YzA5IiwiUkVEIiwiXzB4NWE1NmIwIiwiXzB4M2FhZWJlIiwiXzB4NWQ1MmFhIiwiXzB4MWNjMzc1IiwiXzB4MmI4NDhkIiwiXzB4MmM5MTYzIiwiXzB4MzJiNzc1IiwiXzB4MjUxZDM4Il0sIm1hcHBpbmdzIjoiMG9CQUFBLENBQUMsVSxDQUNHLGEsd0JBbUJBLFNBQVNBLFNBQVQsQ0FBbUJDLFNBQW5CLENBQTRCQyxTQUE1QixDQUF3Q0MsU0FBeEMsQ0FBMkNDLFNBQTNDLEMsQ0FDSSxTQUFTQyxTQUFULENBQWVDLFNBQWYsQyxRQUErQkEsU0FBQSxZQUFpQkgsU0FBakIsQ0FBcUJHLFNBQXJCLENBQTZCLElBQUlILFNBQUosQ0FBTSxTQUFVSSxTQUFWLEMsQ0FBcUJBLFNBQUEsQ0FBUUQsU0FBUixDLEVBQTNCLEMsU0FDckQsR0FBSyxDQUFBSCxTQUFBLEVBQU0sQ0FBQUEsU0FBQSxDQUFJSyxPQUFKLENBQU4sQ0FBTCxDQUF5QixTQUFVQyxTQUFWLENBQW1CQyxTQUFuQixDLHlCQUM1QixTQUFTQyxTQUFULENBQW1CQyxTQUFuQixDLHlCQUE0QixHLENBQU1DLFNBQUEsQ0FBS1QsU0FBQSxDLGdCQUFBLEVBQWVRLFNBQWYsQ0FBTCxDLEVBQStCLE1BQU9FLFNBQVAsQyxDQUFZSixTQUFBLENBQU9JLFNBQVAsQyxHQUM3RSxTQUFTQyxTQUFULENBQWtCQyxTQUFsQixDLHlCQUEyQixHLENBQU1ILFNBQUEsQ0FBS1QsU0FBQSxDLGdCQUFBLEVBQW1CWSxTQUFuQixDQUFMLEMsRUFBbUMsTUFBT0MsU0FBUCxDLENBQVlQLFNBQUEsQ0FBT08sU0FBUCxDLEdBQ2hGLFNBQVNKLFNBQVQsQ0FBY0ssU0FBZCxDLHlCQUF3QkEsU0FBQSxDLGdCQUFBLEVBQWNULFNBQUEsQ0FBUVMsU0FBQSxDLE9BQUEsQ0FBUixDQUFkLENBQXNDYixTQUFBLENBQU1hLFNBQUEsQyxnQkFBQSxDQUFOLEUsZ0JBQUEsRUFBeUJQLFNBQXpCLENBQW9DSSxTQUFwQyxDLEVBQzlERixTQUFBLENBQU0sQ0FBQVQsU0FBQSxDQUFZQSxTQUFBLEMsT0FBQSxFQUFnQkgsU0FBaEIsQ0FBeUJDLFNBQUEsRUFBYyxFQUF2QyxDQUFaLENBQUQsQyxnQkFBQSxHQUFMLEMsRUFKRyxDLEVBUVgsT0FBT2lCLGVBQVAsRyxnQkFBQSxDQUF3Q0EsZUFBeEMsQ0FBMEQsU0FBVUMsU0FBVixDQUFpQkMsU0FBakIsQ0FBNkJDLFNBQTdCLEMsMkJBQ3RELElBQUlDLFNBQUEsQ0FBSSxJQUFJQyxLQUFKLENBQVVGLFNBQVYsQ0FBUixDLE9BQ09DLFNBQUEsQyxnQkFBQSxFLGlCQUFBLENBQTRCQSxTQUFBLEMsZ0JBQUEsRUFBVUgsU0FBdEMsQ0FBNkNHLFNBQUEsQyxnQkFBQSxFQUFlRixTQUE1RCxDQUF3RUUsUyxFQUZuRixDQUtBLE1BQU1FLFNBQUEsQyxXQUFOLENBQ01DLFNBQUEsQyxnQkFETixDQUVNQyxTQUFBLEMsZ0JBRk4sQ0FHTUMsU0FBQSxDLFdBSE4sQ0FJTUMsU0FBQSxDLGdCQUpOLENBS01DLFNBQUEsQyxnQkFMTixDQU1NQyxTQUFBLEMsZ0JBTk4sQ0FRQSxJQUFJQyxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxnQkFBQSxFLEdBQWhCLEUsVUFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLGdCQUFBLEUsR0FBaEIsRSxpQkFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLGdCQUFBLEUsR0FBaEIsRSxpQkFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLFNBQUEsRSxHQUFoQixFLGtCQUpKLENBS0dELFNBQUEsRUFBb0IsQ0FBQUEsU0FBQSxDQUFrQixFQUFsQixDQUx2QixHQU1BLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLFNBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGNBQUEsRSxJQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxVQUFBLEUsSUFBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxrQkFUSixDQVVHRCxTQUFBLEVBQWMsQ0FBQUEsU0FBQSxDQUFZLEVBQVosQ0FWakIsR0FXQSxJQUFJRSxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBY0EsU0FBQSxDLFFBQUEsRSxHQUFkLEUsU0FDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsa0JBUkosQ0FTR0QsU0FBQSxFQUFrQixDQUFBQSxTQUFBLENBQWdCLEVBQWhCLENBVHJCLEdBVUEsU0FBU0UsU0FBVCxDQUFnQ0MsU0FBaEMsQ0FBc0NDLFNBQXRDLEMsOEJBQ1EsT0FBT0EsU0FBUCxHLGdCQUNPQSxTLENBRVgsTUFBTUMsU0FBQSxDQUFXQyxRQUFBLENBQVNGLFNBQVQsQyxHQUFBLENBQWpCLEMsR0FDSSxDQUFDRyxLQUFBLENBQU1GLFNBQU4sQyxRQUNNQSxTLENBRVgsTUFBTUcsU0FBQSxDQUFRSixTQUFBLEMsZ0JBQUEsRUFBVSxRQUFWLEUsZ0JBQUEsRUFBeUJLLFNBQUQsRUFBT0EsU0FBQSxDLGdCQUFBLEdBQS9CLENBQWQsQ0FDQSxJQUFJQyxTQUFBLEMsR0FBSixDQUNBLFVBQVdDLFNBQVgsSUFBbUJILFNBQW5CLEMsQ0FDSUUsU0FBQSxFQUFVUCxTQUFBLENBQUtRLFNBQUwsQyxTQUVQRCxTLEVBRVgsU0FBU0UsUUFBVCxDQUFnQ0MsU0FBaEMsQ0FBc0NDLFNBQXRDLEMsMkJBQ0lBLFNBQUEsQ0FBUVosU0FBQSxDQUF1QlcsU0FBdkIsQ0FBNkJDLFNBQTdCLENBQVIsQ0FDQSxNQUFNQyxTQUFBLENBQUksRUFBVixDQUNBLFVBQVcsQ0FBQ0MsU0FBRCxDQUFNQyxTQUFOLENBQVgsR0FBNkJDLE1BQUEsQyxTQUFBLEVBQWVMLFNBQWYsQ0FBN0IsQyxDQUNRLE9BQU9DLFNBQVAsRyxXQUNLLENBQUFBLFNBQUEsQ0FBUUcsU0FBUixDQUFELEdBQXNCQSxTLEVBQ3RCRixTQUFBLEMsZ0JBQUEsRUFBT0MsU0FBUCxDLFVBSUxELFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsRUFFWCxJQUFJSSxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsR0FBWCxFLGdCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxXQUFBLEUsR0FBWCxFLGlCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxXQUFBLEUsR0FBWCxFLFlBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLFlBQUEsRSxHQUFYLEUsaUJBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsSUFBWCxFLGlCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxnQkFBQSxFLElBQVgsRSxrQkFOSixDQU9HRCxTQUFBLEVBQWUsQ0FBQUEsU0FBQSxDQUFhLEVBQWIsQ0FQbEIsR0FTQSxTQUFTRSxTQUFULENBQXVCQyxTQUF2QixDLDJCQUNJLE9BQVFBLFNBQVIsRUFDSSxLLGdCQUFBLENBQ0ksT0FBT2pDLFNBQVAsQ0FDSixLLGdCQUFBLENBQ0ksT0FBT0csU0FBUCxDQUNKLEssZ0JBQUEsQ0FDSSxPQUFPRCxTQUFQLENBQ0osSyxnQkFBQSxDQUNJLE9BQU9FLFNBQVAsQ0FDSixLLGdCQUFBLENBQ0ksT0FBT0MsU0FBUCxDQUNKLEksbUJBQUEsQ0FDSSxPQUFPQyxTQUFQLENBWlIsQyxDQWdCSixNQUFNNEIsU0FBQSxDQUFXQyxTQUFELEUsMkJBQ1osT0FBUUEsU0FBQSxDLGdCQUFBLENBQVIsRUFDSSxLLGdCQUFBLEMsR0FDUUEsU0FBQSxDLGdCQUFBLElBQThCbkMsUyxLQUM5Qm1DLFNBQUEsQyxnQkFBQSxJQUE2QmxDLFNBQTdCLEVBQTJDa0MsU0FBQSxDLGdCQUFBLEksdUJBQ3BDLEMsTUFBRSxDLFdBQUYsQyxPQUFxQixDLGdCQUFyQixDLENBRVgsTUFBTyxDLE1BQUUsQyxnQkFBRixDLE9BQTJCLEMsZ0JBQTNCLENBQVAsQ0FDSixLLGdCQUFBLEMsR0FDUUEsU0FBQSxDLGlCQUFBLElBQThCakMsUyxPQUN2QixDLE1BQUUsQyxnQkFBRixDLE9BQXVCLEMsV0FBdkIsQyxhQUVGaUMsU0FBQSxDLGlCQUFBLElBQThCaEMsUyxDQUM1QixDLE1BQUUsQyxnQkFBRixDLE9BQXVCLEMsZ0JBQXZCLEMsQ0FHQSxDLE1BQUUsQyxnQkFBRixDLE9BQXVCLEMsZ0JBQXZCLEMsQ0FFZixLLGdCQUFBLENBQ0ksTUFBTyxDLE1BQUUsQyxRQUFGLEMsT0FBa0IsQyxnQkFBbEIsQ0FBUCxDQUNKLEssZ0JBQUEsQ0FDSSxNQUFPLEMsTUFBRSxDLGlCQUFGLEMsT0FBMkIsQyxnQkFBM0IsQ0FBUCxDQUNKLEssZ0JBQUEsQ0FDSSxNQUFPLEMsTUFBRSxDLFlBQUYsQyxPQUFzQixDLGdCQUF0QixDQUFQLENBdEJSLEMsTUF3Qk8sQyxNQUFFLEMsYUFBRixDLE9BQXVCLEMsTUFBdkIsQyxFQXpCWCxDQTRCTWlDLFNBQUEsQ0FBUyxDQUFDLENBQUVDLFlBQUEsQ0FBQUMsU0FBRixDQUFnQkMsUUFBQSxDQUFBQyxTQUFoQixDQUEwQkMsT0FBQSxDQUFBQyxTQUExQixDQUFELENBQXNDQyxTQUF0QyxDQUE4Q0MsU0FBOUMsR0FBMkRyRSxTQUFBLENBQVUsSyxHQUFWLENBQWtCLEssR0FBbEIsQ0FBMEIsSyxHQUExQixDQUFrQyxXLDJCQUNsR3NFLFNBQUEsQ0FBVUgsUyxrQkFDVkksU0FBQSxDQUFTRCxTLFdBQ1RFLFNBQUEsQ0FBb0JsQixNQUFBLEMsZ0JBQUEsRUFBY0EsTUFBQSxDLFFBQUEsRUFBYyxFQUFkLENBQWtCZSxTQUFsQixDQUFkLENBQTJDLEMsUUFBRSxDQUFBRCxTQUFGLEMsWUFBVSxDLElBQVYsQ0FBM0MsQyxDQUNwQkssU0FBQSxDQUFPLE1BQU1DLEtBQUEsQ0FBTUgsU0FBTixDQUFXLEMsUUFDMUIsQyxnQkFEMEIsQyxNQUUxQixDQUFNSSxJQUFBLEMsV0FBQSxFQUFlLEMsY0FDakIsQ0FBQVosU0FEaUIsQyxVQUVqQixDQUFBRSxTQUZpQixDLG1CQUdqQixDQUFBTyxTQUhpQixDQUFmLENBRm9CLEMsU0FPMUIsQ0FBUyxDLGNBQUUsQyxnQkFBRixDQVBpQixDQUFYLEMsSUFTZkMsU0FBQSxDLGdCQUFBLEksWUFDQUcsT0FBQSxDLGdCQUFBLEUscUNBQUEsQ0FBMENILFNBQUEsQyxRQUFBLENBQTFDLENBQXVEQSxTQUFBLEMsWUFBQSxDQUF2RCxDLENBQ08sQyxZQUFFLENBQVksRUFBZCxDLENBRVhHLE9BQUEsQyxnQkFBQSxFLGdCQUFBLENBQTBCSCxTQUFBLEMsZ0JBQUEsQ0FBMUIsQ0FBdUNBLFNBQUEsQyxnQkFBQSxDQUF2QyxFQUNBLE1BQU1JLFNBQUEsQ0FBVyxNQUFNSixTQUFBLEMsZ0JBQUEsR0FBdkIsQ0FDTUssU0FBQSxDQUFhRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUFvQyxFQUR2RCxDLE1BRU8sQyxZQUFFLENBQUFDLFNBQUYsQyxFQXBCK0QsQ0E1QjFFLENBbURNQyxTQUFBLENBQVksQyxpQkFDZCxDQUFpQnRCLFNBQUEsQyxnQkFBQSxDQURILEMsaUJBRWQsQyxJQUZjLEMsaUJBR2QsQ0FBaUJ6QixTQUFBLEMsZ0JBQUEsQ0FISCxDLGVBSWQsQ0FBZUUsU0FBQSxDLGdCQUFBLEVBQXFCQSxTQUFBLEMsZ0JBQUEsQ0FBckIsQ0FBd0NBLFNBQUEsQyxnQkFBQSxDQUp6QyxDLFlBVWQsQyxJQVZjLENBbkRsQixDQStETThDLFNBQUEsQ0FBWSxDLGlCQUNkLENBQWlCdkIsU0FBQSxDLGdCQUFBLENBREgsQyxpQkFFZCxDLElBRmMsQyxpQkFHZCxDQUFpQnpCLFNBQUEsQyxnQkFBQSxDQUhILEMsZUFJZCxDQUFlRSxTQUFBLEMsZ0JBQUEsRUFBcUJBLFNBQUEsQyxnQkFBQSxDQUFyQixDQUF3Q0EsU0FBQSxDLGdCQUFBLENBSnpDLEMsWUFVZCxDLElBVmMsQ0EvRGxCLENBMkVNK0MsU0FBQSxDQUFpQixDQUFDLENBQUVuQixZQUFBLENBQUFvQixTQUFGLENBQWdCbEIsUUFBQSxDQUFBbUIsU0FBaEIsQ0FBMEJqQixPQUFBLENBQUFrQixTQUExQixDQUFELENBQXNDQyxTQUF0QyxDQUFxREMsU0FBckQsR0FBK0R0RixTQUFBLENBQVUsSyxHQUFWLENBQWtCLEssR0FBbEIsQ0FBMEIsSyxHQUExQixDQUFrQyxXLDJCQUM5R3VGLFNBQUEsQ0FBVUgsUyxvQkFDVkksU0FBQSxDQUFTSCxTQUFBLEMsS0FBQSxHLENBQ1RJLFNBQUEsQ0FBTyxNQUFNZixLQUFBLENBQVNhLFMsaUJBQVQsQ0FBNkIsQyxRQUM1QyxDLE1BRDRDLEMsTUFFNUMsQ0FBTVosSUFBQSxDLGdCQUFBLEVBQWUsQyxjQUNqQixDQUFBTyxTQURpQixDLFVBRWpCLENBQUFDLFNBRmlCLEMsUUFHakIsQ0FBQUssU0FIaUIsQ0FBZixDQUZzQyxDLFNBTzVDLENBQVMsQyxjQUFFLEMsZ0JBQUYsQ0FQbUMsQ0FBN0IsQyxDQVNiRSxTQUFBLENBQWtCLENBQUNDLFNBQUQsQ0FBT0MsU0FBUCxHLDJCQUNwQk4sU0FBQSxDLGdCQUFBLEVBQVdLLFNBQVgsRSxnQkFBQSxFLGVBQUEsRSxnQkFBQSxFQUFvREMsU0FBcEQsQyxDQUNBTixTQUFBLEMsTUFBQSxHLENBQ0FPLFVBQUEsQ0FBVyxJLDJCQUNQUCxTQUFBLEMsYUFBQSxFQUFrQk0sU0FBbEIsQyxDQUNBTixTQUFBLEMsZ0JBQUEsRyxFQUZKLEMsS0FBQSxDLEdBS0VRLFNBQUEsQ0FBUSxNQUFNTCxTQUFBLEMsZ0JBQUEsRyxDQUNoQkEsU0FBQSxDLFFBQUEsSSxLQUVBQyxTQUFBLEMsZ0JBQWdCLENBQWdCRixTQUFoQyxDLGdCQUFBLEMsQ0FHSU0sU0FBQSxDLGdCQUFBLEUsT0FBQSxFQUFzQixNQUF0QixDLEVBRUFULFNBQUEsQyxLQUFBLEVBQWtCUyxTQUFBLEMsbUJBQUEsQ0FBbEIsQyxDQUNBVCxTQUFBLEMsU0FBQSxFLGdCQUFBLEMsQ0FDQUssU0FBQSxDLE1BQUEsQyxJQUFBLEMsR0FHQUwsU0FBQSxDLGdCQUFBLEUsR0FBcUJHLFNBQXJCLEMsQ0FDQUUsU0FBQSxDQUFtQkksU0FBQSxDLFlBQUEsQyxRQUFtQkwsU0FBQSxDLGdCQUFBLENBQXRDLEMsZ0JBQUEsQyxHQWxDMEUsQ0EzRXRGLENBaUhBLFNBQVNNLFNBQVQsQ0FBdUJDLFNBQXZCLENBQThCQyxTQUE5QixDLFFBQ1dqRyxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDN0JrRyxTQUFBLENBQVNGLFNBQUEsQyxnQkFBQSxFLE9BQUEsQyxDQUNURyxTQUFBLENBQWdCLE1BQU10QyxTQUFBLENBQU9vQyxTQUFQLENBQWFDLFNBQWIsQ0FBcUJuQixTQUFyQixDLENBQ3RCcUIsU0FBQSxDQUFnQixNQUFNdkMsU0FBQSxDQUFPb0MsU0FBUCxDQUFhQyxTQUFiLENBQXFCbEIsU0FBckIsQyxPQUNyQixDLFlBQ0gsQ0FBWSxDQUFDLEdBQUdtQixTQUFBLEMsZ0JBQUEsQ0FBSixDQUE4QixHQUFHQyxTQUFBLEMsZ0JBQUEsQ0FBakMsQ0FEVCxDLEVBSkosQyxFQVNYLE1BQU1DLFNBQUEsQ0FBYSxDLGlCQUNmLENBQWlCNUMsU0FBQSxDLGdCQUFBLENBREYsQyxpQkFFZixDLElBRmUsQyxpQkFHZixDQUFpQnpCLFNBQUEsQyxnQkFBQSxDQUhGLEMsZUFJZixDQUFlRSxTQUFBLEMsZ0JBQUEsRUFBMEJBLFNBQUEsQyxnQkFBQSxDQUExQixDQUFpREEsU0FBQSxDLFVBQUEsQ0FBakQsQ0FBc0VBLFNBQUEsQyxnQkFBQSxDQUp0RSxDLFlBS2YsQyxJQUxlLENBQW5CLENBT0EsU0FBU29FLFNBQVQsQ0FBdUJDLE9BQXZCLENBQThCQyxTQUE5QixDLFFBQ1d4RyxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDN0J5RyxTQUFBLENBQVNGLE9BQUEsQyxnQkFBQSxFLGdCQUFBLEMsQ0FDVEcsU0FBQSxDQUFnQixNQUFNN0MsU0FBQSxDQUFPMkMsU0FBUCxDQUFhQyxTQUFiLENBQXFCSixTQUFyQixDLFFBQ3JCSyxTLEVBSEosQyxFQU1YLE1BQU1DLFNBQUEsQ0FBZUMsU0FBRCxFLDJCQUNoQixJQUFJQyxPQUFKLENBQVFDLFNBQVIsQyxHQUNJLENBQUNGLFMsRUFDRCxNQUFNRyxTQUFBLENBQVdDLENBQUEsQyxnQkFBQSxDQUFqQixDLE9BQ09ELFMsRUFFWCxNQUFNRSxTQUFBLENBQUlMLFNBQUEsQyxnQkFBQSxFLFVBQUEsR0FBVixDQUNNTSxTQUFBLENBQUssQ0FBQyxDQUFBTCxPQUFBLENBQUtELFNBQUEsQyxnQkFBQSxDQUFMLENBQUQsR0FBaUMsSUFBakMsRUFBeUNDLE9BQUEsR0FBTyxLLEdBQWhELENBQXlELEssR0FBekQsQ0FBa0VBLE9BQUEsQyxNQUFBLENBQWxFLENBQUQsRUFBZ0YsQ0FBQyxDQUFBQyxTQUFBLENBQUtGLFNBQUEsQyxZQUFBLENBQUwsQ0FBRCxHQUFnQyxJQUFoQyxFQUF3Q0UsU0FBQSxHQUFPLEssR0FBL0MsQ0FBd0QsSyxHQUF4RCxDQUFpRUEsU0FBQSxDLGdCQUFBLENBQWpFLENBQWhGLEVBQTZKRixTQUFBLEMsUUFBQSxFLGdCQUFBLEdBRHZLLENBRU0sQ0FBRU8sSUFBQSxDQUFBQyxTQUFGLENBQVFDLEtBQUEsQ0FBQUMsU0FBUixFQUFrQjNELFNBQUEsQ0FBUWlELFNBQVIsQ0FGeEIsQ0FHTVcsU0FBQSxDQUFXUCxDQUFBLEMsaUJBQXNCSSxTLGtCQUFzQkUsUyxrQkFBZ0JKLFMsaUJBQTVELENBSGpCLEMsT0FJQUssU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUF1Qk4sU0FBdkIsQyxDQUNBTSxTQUFBLEMsZ0JBQUEsRSxXQUFBLENBQTJCWCxTQUEzQixDLENBQ09XLFMsRUFiWCxDQWVNQyxTQUFBLENBQTJCLEksMkJBUTdCUixDQUFBLEMsUUFBQSxFLGdCQUFBLENBQWlDLEMsU0FFN0IsQ0FBUyxDLGNBQ0wsQ0FBYyxLQUFPLEMsVUFBRSxDLGdCQUFGLENBQVAsQ0FEVCxDLFVBRUwsQ0FBVSxJQUFNUyxTQUZYLEMsWUFHTCxDQUFZLEtBQU8sQyxZQUNmLENBQVksQyxnQkFBRSxDLEdBQUYsQyxNQUFxQixDLGdCQUFyQixDQURHLEMsV0FFZixDLFFBRmUsQyxRQUdmLEMsZ0JBSGUsQyxhQUlmLENBQWEsQyxNQUFFLEMsZ0JBQUYsQ0FKRSxDLGdCQUtmLENBQWdCL0YsU0FMRCxDQUFQLENBSFAsQyxRQVVMLENBQVEsSSxJQVZILEMsU0FXTCxDLEVBWEssQyxXQVlMLEMsR0FaSyxDQUZvQixDLG1CQWdCN0IsRSxRQUNXMUIsU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcseUJBQzdCMEgsU0FBQSxDQUFPLEksQ0FDUEMsU0FBQSxDQUFJLE9BQU9ELFNBQUEsQyxnQkFBQSxFLFlBQUEsQ0FBUCxHLGdCQUFBLENBQWdEQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUFoRCxDQUE0RUEsU0FBQSxDLFNBQUEsRSxZQUFBLEMsSUFDbEZDLFNBQUEsWUFBYW5ILE8sUUFDTixNQUFNbUgsUyxRQUVWQSxTLEVBTkosQyxFQWpCa0IsQyxPQTBCN0IsRSwyQkFDVUMsU0FBQSxDQUFPLEksQ0FDYkEsU0FBQSxDLE9BQUEsRSxnQkFBQSxHLENBQ0EsSyxnQkFBQSxJLGdCQUFBLEVBQStCQyxTQUFELEUsMkJBQ3BCQyxTQUFBLENBQVduQixTQUFBLENBQVlrQixTQUFaLEMsQ0FDakJELFNBQUEsQyxPQUFBLEUsZ0JBQUEsRUFBa0JFLFNBQWxCLEMsQ0FDQUYsU0FBQSxDLGVBQUEsRUFBcUJDLFMsRUFIekIsQyxFQTdCeUIsQyxRQW1DN0IsRSwyQkFDVUUsU0FBQSxDQUFPLEksQ0FFUEMsU0FBQSxDQUFPLEMsU0FDVCxDQUFTRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQURBLEMsY0FFVCxDQUFjLE9BQU9BLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQVAsRyxVQUFBLENBQWtEQSxTQUFBLEMsZ0JBQUEsRSxjQUFBLEdBQWxELENBQWdGQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUZyRixDLFVBR1QsQ0FBVSxPQUFPQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFQLEcsZ0JBQUEsQ0FBOENBLFNBQUEsQyxnQkFBQSxFLFVBQUEsR0FBOUMsQ0FBd0VBLFNBQUEsQyxnQkFBQSxFLFVBQUEsQ0FIekUsQyxDQUtiOUMsU0FBQSxDQUFlK0MsU0FBZixDQUFxQkQsU0FBQSxDLGdCQUFBLENBQXJCLENBQWtDQSxTQUFBLEMsZ0JBQUEsQ0FBbEMsQyxFQTNDeUIsQyxTQTZDN0IsRSwyQkFDVUUsU0FBQSxDQUFPLEksQ0FDYixTQUFTQyxTQUFULENBQTJCQyxTQUEzQixDQUFrQ0MsU0FBbEMsQ0FBNkNDLFNBQTdDLEMsUUFDV3JJLFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLDRCQUMvQm1JLFNBQUEsQyxVQUFBLEUsZ0JBQUEsQyxFQUNBdkQsT0FBQSxDLEtBQUEsRSxnQkFBQSxFQUNBLE8sSUFFQXVELFNBQUEsQyxnQkFBQSxFLFNBQUEsQyxFQUNBdkQsT0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFDQSxPLENBRUp1RCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLENBQ0FBLFNBQUEsQyxRQUFBLEUsZ0JBQUEsQ0FEQSxDQUVBLEcsQ0FDSUEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLElBQ0EsTUFBTSxDQUFFRyxVQUFBLENBQUFDLFNBQUYsRUFBaUIsTUFBTUgsU0FBQSxDQUFVRCxTQUFWLENBQWlCRSxTQUFqQixDQUE3QixDQUNBLFVBQVdHLFNBQVgsSUFBd0JELFNBQXhCLEMsSUFDUU4sU0FBQSxDLFNBQUEsRSxRQUFBLEdBQXVCLENBQUNBLFNBQUEsQyxnQkFBQSxFLFFBQUEsRUFBb0JPLFNBQXBCLEMsQ0FDeEIsU0FFSixNQUFNQyxTQUFBLENBQVc5QixTQUFBLENBQVk2QixTQUFaLENBQWpCLENBQ0FMLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxFQUE0Qk0sU0FBNUIsQyxFQUVKTixTQUFBLEMsVUFBQSxFLFNBQUEsQyxFQUVKLE1BQU9PLFNBQVAsQyxDQUNJUCxTQUFBLEMsVUFBQSxFLElBQUEsRSxnQkFBQSxFLGlCQUF5Q08sU0FBQSxDLGdCQUFBLEMsaUJBQXpDLEMsQ0FDQTlELE9BQUEsQyxnQkFBQSxFLGdCQUFBLENBQW1COEQsU0FBbkIsQyxFQUVKUCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEcsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxFQTVCRyxDLEVBK0JYRixTQUFBLEMsZ0JBQUEsRUFBYyxLLGdCQUFBLEMsQ0FDZEEsU0FBQSxDLFFBQUEsRUFBY2pCLENBQUEsQyxnQkFBQSxDLENBQ2RpQixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEMsQ0FDQSxLLGdCQUFBLEUsYUFBQSxFQUF5QkEsU0FBQSxDLGdCQUFBLENBQXpCLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEVBQW1CakIsQ0FBQSxDLGdCQUFBLEUsVUFBQSxFLGFBQUEsQyxDQUNuQmlCLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQW1CQSxTQUFBLEMsZ0JBQUEsQ0FBbkIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUF3QkEsU0FBQSxDLGdCQUFBLENBQXhCLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEVBQXNCakIsQ0FBQSxDLDREQUFBLEMsQ0FDdEJpQixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUF3QkEsU0FBQSxDLGdCQUFBLENBQXhCLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLENBQWdDLFUsMkJBQ3hCLENBQUNBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxVQUFBLEMsR0FFREEsU0FBQSxDLGdCQUFBLEksZ0JBQUEsRUFBK0JVLFNBQUQsRSwyQkFDMUIsSUFBSUMsU0FBSixDQUNJLENBQUFELFNBQUEsR0FBZVYsU0FBQSxDLGdCQUFBLENBQWYsRUFBc0MsQ0FBQyxDQUFBVyxTQUFBLENBQUtYLFNBQUEsQyxnQkFBQSxDQUFMLENBQUQsR0FBOEIsSUFBOUIsRUFBc0NXLFNBQUEsR0FBTyxLLEdBQTdDLENBQXNELEssR0FBdEQsQ0FBK0RBLFNBQUEsQyxnQkFBQSxDQUEvRCxDQUFELEdBQStFRCxTQUFBLEMsUUFBQSxDQUFwSCxDLEVBQ0FWLFNBQUEsQyxnQkFBQSxHLEVBSFIsQyxDQU1BQSxTQUFBLEMsZ0JBQUEsRSxNQUFBLEcsRUFFSkEsU0FBQSxDLFdBQUEsRSxnQkFBQSxHLEVBWEosQyxDQWFBQSxTQUFBLEMsZ0JBQUEsRUFBa0JqQixDQUFBLEMsZ0JBQUEsQyxDQUNsQmlCLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXdCQSxTQUFBLEMsWUFBQSxDQUF4QixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxPQUFBLENBQTRCLEksMkJBQ3hCLEssZ0JBQUEsRyxFQURKLEMsQ0FHSSxDQUFDQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEMsRUFDREEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLGdCQUFBLEMsQ0FFSkEsU0FBQSxDLGdCQUFBLEVBQWFqQixDQUFBLEMsZ0JBQUEsQyxDQUNiaUIsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxDQUVDLEMsU0FDRyxDQUFTQSxTQUFBLEMsU0FBQSxFLGdCQUFBLENBRFosQyxjQUVHLENBQWMsT0FBT0EsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBUCxHLFVBQUEsQ0FBa0RBLFNBQUEsQyxTQUFBLEUsZ0JBQUEsR0FBbEQsQ0FBZ0ZBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBRmpHLEMsVUFHRyxDQUFVLE9BQU9BLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQVAsRyxnQkFBQSxDQUE4Q0EsU0FBQSxDLFNBQUEsRSxVQUFBLEdBQTlDLENBQXdFQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUhyRixDLENBS0RBLFNBQUEsQyxnQkFBQSxFQUFpQmpCLENBQUEsQyxnQkFBQSxFLGdCQUFBLEUsbUJBQUEsRSxnQkFBQSxHLENBQ2pCaUIsU0FBQSxDLGdCQUFBLEUsUUFBQSxFQUFtQkEsU0FBQSxDLGdCQUFBLENBQW5CLEMsQ0FDQUEsU0FBQSxDLFFBQUEsRSxnQkFBQSxFQUFtQkEsU0FBQSxDLFdBQUEsQ0FBbkIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRUFBYWpCLENBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQThDaUIsU0FBQSxDLGdCQUFBLENBQTlDLEMsQ0FDYixLLE9BQUEsRyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsQyxJQUFBLENBQTZCLFNBQVVZLFNBQVYsQywyQkFDekIsSUFBSUMsU0FBSixDQUFRQyxTQUFSLENBQ0FGLFNBQUEsQyxnQkFBQSxJQUNBLElBQUlHLFNBQUEsQ0FBTWhDLENBQUEsQ0FBRSxJQUFGLENBQVYsQ0FDQSxNQUFNaUMsU0FBQSxDLElBQU4sQ0FDTUMsU0FBQSxDLElBRE4sQ0FFTUMsU0FBQSxDQUFhbkMsQ0FBQSxDQUFFLElBQUYsRSxnQkFBQSxHQUZuQixDQUdNb0MsU0FBQSxDQUFJUCxTQUhWLEMsR0FJSU8sU0FBQSxDLGdCQUFBLEdBQVdELFNBQUEsQyxnQkFBQSxDQUFYLEVBQ0FDLFNBQUEsQyxPQUFBLEdBQVdELFNBQUEsQyxnQkFBQSxFQUFrQkYsU0FEN0IsRUFFQUcsU0FBQSxDLE9BQUEsR0FBV0QsU0FBQSxDLGdCQUFBLENBRlgsRUFHQUMsU0FBQSxDLGdCQUFBLEdBQVdELFNBQUEsQyxnQkFBQSxFQUFpQkQsUyxLQUN4QkYsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxLQUNJQSxTQUFBLEMsVUFBQSxFLGdCQUFBLEMsRUFDQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxFLFVBQUEsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsR0FEQSxDQUVBLE8sQ0FHSixNQUFNSyxTQUFBLENBQU8sQyxTQUNULENBQVNwQixTQUFBLEMsU0FBQSxFLGdCQUFBLENBREEsQyxjQUVULENBQWMsT0FBT0EsU0FBQSxDLGdCQUFBLEUsY0FBQSxDQUFQLEcsVUFBQSxDQUNSQSxTQUFBLEMsU0FBQSxFLGdCQUFBLEdBRFEsQ0FFUkEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FKRyxDLFVBS1QsQ0FBVSxPQUFPQSxTQUFBLEMsZ0JBQUEsRSxVQUFBLENBQVAsRyxnQkFBQSxDQUE4Q0EsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsR0FBOUMsQ0FBd0VBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBTHpFLENBQWIsQ0FPTXFCLFNBQUEsQ0FBSSxDQUFDckIsU0FBQSxDLFNBQUEsRSxnQkFBQSxDQUFELENBQTBCbEMsU0FBMUIsQ0FBMENPLFNBUHBELENBUUE0QixTQUFBLENBQWtCYyxTQUFsQixDQUF1Qk0sU0FBdkIsQ0FBMEJELFNBQTFCLEUsZ0JBQUEsRUFDVSxJLDJCQUNOekUsT0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUNBQSxPQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLENBRUFvRSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQyxFQUxKLEUsZ0JBQUEsRUFPWU8sU0FBRCxFLDJCQUNQUCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQyxDQUNBcEUsT0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBcUIyRSxTQUFyQixDLEVBVEosQyxVQVlLUCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLENBRUxBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxRQUFBLEcsQ0FFQUEsU0FBQSxDLGFBQUEsRSxnQkFBQSxDLFNBRUtBLFNBQUEsQyxVQUFBLEUsSUFBQSxFLGdCQUFBLEksUUFBQSxFLElBQ0xBLFNBQUEsQyxVQUFBLEUsSUFBQSxFLFFBQUEsRyxDQUVBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLGNBS0osTUFBTVEsU0FBQSxDQUFRUixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFkLENBQ01TLFNBQUEsQ0FBWVQsU0FBQSxDLE1BQUEsRSxnQkFBQSxDQURsQixDLEdBRUlmLFNBQUEsQyxnQkFBQSxFLGNBQUEsR0FBNkIsQ0FBQ0EsU0FBQSxDLGdCQUFBLEUsY0FBQSxFQUEwQndCLFNBQTFCLEMsQ0FDOUIsT0FFSnhCLFNBQUEsQyxRQUFBLEUsZ0JBQUEsRSxXQUFBLENBQThCd0IsU0FBOUIsRUFDQSxNQUFNQyxTQUFBLENBQWUsQ0FBQyxDQUFBWixTQUFBLENBQUtXLFNBQUEsQyxhQUFBLENBQUwsQ0FBRCxHQUFpQyxJQUFqQyxFQUF5Q1gsU0FBQSxHQUFPLEssR0FBaEQsQ0FBeUQsSyxHQUF6RCxDQUFrRUEsU0FBQSxDLE1BQUEsQ0FBbEUsQ0FBRCxFQUFnRixDQUFDLENBQUFDLFNBQUEsQ0FBS1UsU0FBQSxDLFlBQUEsQ0FBTCxDQUFELEdBQWdDLElBQWhDLEVBQXdDVixTQUFBLEdBQU8sSyxHQUEvQyxDQUF3RCxLLEdBQXhELENBQWlFQSxTQUFBLEMsTUFBQSxDQUFqRSxDQUFoRixFQUE2SlUsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsR0FBakwsQ0FDTUUsU0FBQSxDLElBQVlELFMsTUFBZ0JGLFMsSUFEbEMsQ0FFQXZCLFNBQUEsQyxnQkFBQSxFLEtBQUEsRUFBZ0IwQixTQUFoQixDLENBQ0ExQixTQUFBLEMsZ0JBQUEsRSxTQUFBLEUsZ0JBQUEsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxNQUFBLEcsR0EvRFIsQyxDQWtFQWpCLENBQUEsQ0FBRTRDLFFBQUYsRSxJQUFBLEUsT0FBQSxDQUF3QixTQUFVQyxTQUFWLEMsMkJBRWhCLENBQUM3QyxDQUFBLENBQUU2QyxTQUFBLEMsZ0JBQUEsQ0FBRixFLGdCQUFBLEVBQXdCNUIsU0FBQSxDLGdCQUFBLENBQXhCLEUsZ0JBQUEsQyxFQUNEQSxTQUFBLEMsZ0JBQUEsRSxNQUFBLEcsRUFIUixDLEVBNUx5QixDQUFqQyxDLEVBdkJKLENBNk5NNkIsU0FBQSxDQUEwQixJLDJCQUM1QjlDLENBQUEsQyxnQkFBQSxFLHFCQUFBLENBQWdDLEMsU0FFNUIsQ0FBUyxDLGFBQ0wsQ0FBYSxFQURSLEMsT0FJTCxDLEdBSkssQ0FGbUIsQyxTQVE1QixFLDJCQUNVK0MsU0FBQSxDQUFPLEksQ0FFYkEsU0FBQSxDLFFBQUEsRUFBYyxLLGdCQUFBLEMsQ0FDZEEsU0FBQSxDLGdCQUFBLEVBQWMvQyxDQUFBLEMsZ0JBQUEsQyxDQUNkK0MsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLENBQ0EsSyxnQkFBQSxFLEdBQUEsRSxnQkFBQSxFLGdCQUFBLEVBQTJDQSxTQUFBLEMsUUFBQSxFLEdBQUEsQ0FBM0MsQ0FBMkQsSyxnQkFBQSxFLEdBQUEsQ0FBM0QsQyxDQUVBQSxTQUFBLEMsZ0JBQUEsRUFBbUIvQyxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGFBQUEsQyxDQUNuQitDLFNBQUEsQyxRQUFBLEUsZ0JBQUEsRUFBbUJBLFNBQUEsQyxhQUFBLENBQW5CLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBd0JBLFNBQUEsQyxnQkFBQSxDQUF4QixDLENBR0FBLFNBQUEsQyxnQkFBQSxFQUFzQi9DLENBQUEsQyxnQkFBQSxDLENBQ3RCK0MsU0FBQSxDLGFBQUEsRSxRQUFBLEVBQXdCQSxTQUFBLEMsZ0JBQUEsQ0FBeEIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsQ0FBZ0MsVSwyQkFDNUJBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEcsQ0FDSUEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLFVBQUEsQyxHQUVBQyxTQUFBLEUsQ0FDQUQsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEVBQXdDLFUsMkJBQ3BDLElBQUlFLFNBQUEsQ0FBYWpELENBQUEsQ0FBRSxJQUFGLEUsTUFBQSxHQUFqQixDQUNBLE1BQU1rRCxTQUFBLENBQVdILFNBQUEsQyxnQkFBQSxFLGFBQUEsRUFBeUJFLFNBQXpCLENBQWpCLEMsR0FDSUMsU0FBQSxHQUFhekMsUyxDQUNiLE1BQU0sSUFBSWpHLEtBQUosQyxnQkFBQSxDQUFOLENBRUMsQ0FBQXVJLFNBQUEsQyxTQUFBLEUsZ0JBQUEsRUFBcUJHLFNBQXJCLENBQUQsR0FBb0NBLFMsQ0FDcENsRCxDQUFBLENBQUUsSUFBRixFLGdCQUFBLEUsZ0JBQUEsQyxDQUdBQSxDQUFBLENBQUUsSUFBRixFLGdCQUFBLEUsZ0JBQUEsQyxFQVZSLEMsQ0FjQStDLFNBQUEsQyxnQkFBQSxHLEdBbkJSLEMsQ0F1QkFBLFNBQUEsQyxnQkFBQSxFQUFpQi9DLENBQUEsQyxnQkFBQSxFLGdCQUFBLEksZ0JBQUEsRUFBMEQsSyxTQUFBLENBQTFELEMsQ0FDakJBLENBQUEsQyxNQUFBLEVBQU8sSyxnQkFBQSxFLGdCQUFBLENBQVAsQ0FBaUMsU0FBVW1ELFNBQVYsQywyQkFDdkJDLFNBQUEsQ0FBVXBELENBQUEsQyxnQkFBRSxDQUNkbUQsU0FEYyxDLE9BQUEsQyxnREFBQSxDQUlkQSxTQUpjLEMsUUFBRixDLENBTWhCSixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFzQkssU0FBdEIsQyxFQVBKLEMsQ0FVQUwsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLEMsZ0JBQUEsQ0FBNkMsVSwyQkFDekMvQyxDQUFBLENBQUUsSUFBRixFLGdCQUFBLEUsZ0JBQUEsRUFDQSxNQUFNcUQsU0FBQSxDQUFRckQsQ0FBQSxDQUFFLElBQUYsRSxnQkFBQSxFLGdCQUFBLENBQWQsQ0FDSUEsQ0FBQSxDQUFFLElBQUYsRSxnQkFBQSxFLGdCQUFBLEMsQ0FDQXNELFNBQUEsQ0FBT0QsU0FBUCxDLENBR0FFLFNBQUEsQ0FBU0YsU0FBVCxDLENBRUpOLFNBQUEsQyxnQkFBQSxHLEVBVEosQyxDQVdBQSxTQUFBLEMsZ0JBQUEsRSxRQUFBLEVBQW1CQSxTQUFBLEMsZ0JBQUEsQ0FBbkIsQ0F6REEsQ0EwREEsTUFBTUMsU0FBQSxDQUFrQixJLDJCQUNkUSxTQUFBLENBQVEsSyxnQkFBQSxFLGdCQUFBLEcsQ0FDZFQsU0FBQSxDLFNBQUEsRSxPQUFBLEVBQXFCekgsU0FBQSxDQUF1QnlILFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQXZCLENBQWlEUyxTQUFqRCxDLEVBRnpCLENBSU1GLFNBQUEsQ0FBVUcsUUFBRCxFLDJCQUNMQyxTQUFBLENBQU1YLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXlCVSxRQUF6QixDLElBQ1JDLFNBQUEsR0FBUWpELFMsQ0FDUixNQUFNLElBQUlqRyxLQUFKLEMsd0JBQUEsQ0FBTixDQUVKLEssU0FBQSxFLE9BQUEsR0FBc0JrSixTLEVBVDFCLENBV01ILFNBQUEsQ0FBWUksU0FBRCxFLDJCQUNQQyxTQUFBLENBQU1iLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXlCWSxTQUF6QixDLElBQ1JDLFNBQUEsR0FBUW5ELFMsQ0FDUixNQUFNLElBQUlqRyxLQUFKLEMsd0JBQUEsQ0FBTixDQUVKLEssU0FBQSxFLGdCQUFBLEdBQXNCLENBQUNvSixTLENBQ3ZCLEssU0FBQSxFLGdCQUFBLEVBQWlCNUgsUUFBQSxDQUF1QitHLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQXZCLENBQWlELEssU0FBQSxFLGdCQUFBLENBQWpELENBQWpCLEMsRUFqQkosQ0FtQkFDLFNBQUEsRSxFQXhGd0IsQyxhQTBGNUIsRSwyQkFDVWEsU0FBQSxDQUFPLEksQ0FDYixLLGdCQUFBLEUsZ0JBQUEsRUFBaUI3SCxRQUFBLENBQXVCNkgsU0FBQSxDLGdCQUFBLEUsYUFBQSxDQUF2QixDQUFpRCxLLGdCQUFBLEUsT0FBQSxDQUFqRCxDQUFqQixDLEVBNUZ3QixDLFVBOEY1QixFLDJCQUNVQyxTQUFBLENBQU8sSSxDQUNiQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLEVBaEd3QixDQUFoQyxDLEVBOU5KLENBbVVBQyxHQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLENBQStDLEMsVUFDM0MsQyxnQkFEMkMsQyxPQUUzQyxDLGdCQUYyQyxDLE9BRzNDLEMsZ0JBSDJDLEMsTUFJM0MsQyxnQkFKMkMsQyxjQUszQyxDLFFBTDJDLEMsVUFNM0MsQ0FBVSxDLFFBQ04sQ0FBUSxDLE9BQUUsQyxHQUFGLENBREYsQyxRQUVOLENBQVEsQyxPQUFFLEMsR0FBRixDQUZGLEMsTUFJTixDQUFNLEMsT0FBRSxDLEVBQUYsQ0FKQSxDLFVBS04sQ0FBVSxDLE9BQUUsQyxFQUFGLEMsVUFBYSxDLElBQWIsQyxNQUE2QixDLGdCQUE3QixDQUxKLEMsUUFPTixDQUFRLEMsT0FBRSxDLEVBQUYsQyxVQUFhLEMsR0FBYixDQVBGLEMsaUJBUU4sQ0FBaUIsQyxPQUFFLEMsZ0JBQUYsQyxVQUFxQixDLEdBQXJCLENBUlgsQyxpQkFTTixDQUFpQixDLE9BQUUsQyxHQUFGLEMsVUFBZ0IsQyxJQUFoQixDQVRYLEMsaUJBVU4sQ0FBaUIsQyxPQUFFLEMsZ0JBQUYsQyxVQUFvQixDLElBQXBCLENBVlgsQyxlQVdOLENBQWUsQyxPQUFFLEMsZ0JBQUYsQyxVQUFtRSxDLEdBQW5FLENBWFQsQyxZQVlOLENBQVksQyxPQUFFLEMsZ0JBQUYsQyxVQUE4RixDLEdBQTlGLENBWk4sQ0FOaUMsQyxTQW9CM0MsQyxHQXBCMkMsQyxPQXFCM0MsRSxrQ0FDVyxLLGdCQUFBLEcsa0JBdEJnQyxDLFlBd0IzQyxFLGtDQUNXLEssZ0JBQUEsRSxtQkFBQSxDLElBekJnQyxDLGVBMkIzQyxFLDJCQUNVQyxTQUFBLENBQU8sSSxDQUNieEQsU0FBQSxFLENBQ0FzQyxTQUFBLEUsQ0FDQWtCLFNBQUEsQyxnQkFBQSxFLEdBRkEsQ0FHQSxNQUFNQyxTQUFBLENBQWlCakUsQ0FBQSxDLGdCQUFBLENBQXZCLENBQ0FpRSxTQUFBLEMsZ0JBQUEsRUFBMEIsQyxhQUN0QixDQUFhLEMsUUFDVCxDLEdBRFMsQyxVQUVULEMsR0FGUyxDLFFBR1QsQyxHQUhTLEMsWUFJVCxDLEdBSlMsQyxjQUtULEMsSUFMUyxDLGVBTVQsQyxJQU5TLEMsVUFPVCxDLElBUFMsQyxNQVFULEMsSUFSUyxDQURTLEMsT0FXdEIsQyxHQVhzQixDQUExQixFQWFBLE1BQU1DLFNBQUEsQ0FBY2xFLENBQUEsQyxnQkFBQSxDQUFwQixDQUNBa0UsU0FBQSxDLGdCQUFBLEVBQXVCLEMsYUFDbkIsQ0FBYSxDLGVBQ1QsQyxHQURTLEMsV0FFVCxDLEdBRlMsQyxXQUdULEMsR0FIUyxDLFlBSVQsQyxHQUpTLEMsYUFLVCxDLElBTFMsQyxnQkFNVCxDLElBTlMsQ0FETSxDLE9BU25CLEMsSUFUbUIsQ0FBdkIsRUFXQSxNQUFNQyxTQUFBLENBQVVuRSxDQUFBLEMsZ0JBQUEsQ0FBaEIsQ0FDQW1FLFNBQUEsQyxnQkFBQSxFQUFvQixDLGNBQ2hCLENBQWFDLFNBQWIsQyxrQ0FDV0EsU0FBQSxDLGdCQUFBLEksZ0JBQUEsRUFBcUNBLFNBQUEsQyxnQkFBQSxJLFVBRmhDLENBQXBCLEVBS0EsTUFBTUMsU0FBQSxDQUFxQixDLFFBQ3ZCLEMsTUFEdUIsQyxpQkFFdkIsQyxFQUZ1QixDLFlBR3ZCLENBQVksQyxnQkFBRSxDLEdBQUYsQyxNQUFxQixDLFlBQXJCLENBSFcsQyxhQUl2QixDQUFhLEMsTUFBRSxDLGdCQUFGLENBSlUsQyxXQUt2QixDLGdCQUx1QixDLGdCQU12QixDLE1BTnVCLENBQTNCLENBUU1DLFNBQUEsQ0FBbUJ0RSxDQUFBLEMsZ0JBQUEsQ0FSekIsQ0FTQXNFLFNBQUEsQyxnQkFBQSxFQUE2QixDLFlBQ3pCLENBQVksSUFBTUQsU0FETyxDLGNBRXpCLENBQWFFLFNBQWIsQyxRQUNXQSxTQUFBLEMsV0FBQSxJLGlCQUhjLEMsV0FLekIsQyxJQUx5QixDQUE3QixDLEVBekV1QyxDLFlBaUYzQyxFLEVBakYyQyxDQUEvQyxDLEVBM2tCSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIGZ1bmN0aW9uIGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodHlwZSwgc3RyKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc3RyID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0ckFzTnVtID0gcGFyc2VJbnQoc3RyLCAxMCk7XG4gICAgICAgIGlmICghaXNOYU4oc3RyQXNOdW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyQXNOdW07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmxhZ3MgPSBzdHIuc3BsaXQoL1xcfHw7fCwvKS5tYXAoKGEpID0+IGEudHJpbSgpKTtcbiAgICAgICAgbGV0IHJlc3VsdCA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgZmxhZyBvZiBmbGFncykge1xuICAgICAgICAgICAgcmVzdWx0IHw9IHR5cGVbZmxhZ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29lcmNlRmxhZ01hc2tUb1N0cmluZyh0eXBlLCB2YWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodHlwZSwgdmFsdWUpO1xuICAgICAgICBjb25zdCByID0gW107XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgYml0TWFza10gb2YgT2JqZWN0LmVudHJpZXModHlwZSkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoKHZhbHVlICYgYml0TWFzaykgPT09IGJpdE1hc2spIHtcbiAgICAgICAgICAgICAgICAgICAgci5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByLmpvaW4oXCIgfCBcIik7XG4gICAgfVxuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKGAke3Jvb3R9L2NoZWNrTm9kZUlkYCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKCRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmV0Y2hEYXRhRm9yTm9kZSgkbGksIGYsIGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIgRmV0Y2hpbmcgZG9uZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBkZWNsYXJlRmxhZ0VkaXRvcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5mbGFnRWRpdG9yXCIsIHtcbiAgICAgICAgICAgIC8vIGRlZmF1bHQgb3B0aW9uc1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIG5hbWVzVG9CaXRzOiB7XG4gICAgICAgICAgICAgICAgLy8gQWRkIG1vcmUgbmFtZXMgYW5kIGJpdCB2YWx1ZXNcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gQ3VzdG9tIERyb3Bkb3duXG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFswXS5wYXJlbnRFbGVtZW50LnJlcGxhY2VDaGlsZCh0aGF0LiRjb21ib1swXSwgdGhpcy5lbGVtZW50WzBdKTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICAvLyB0aGUgdG9nZ2xlIHRyZWUgYnV0dG9uOlxuICAgICAgICAgICAgICAgIC8vICAgd2hlbiB3ZSBjbGljayBpdCB0aGUgZHJvcCBkb3duIHBhbmVsIGlzIGRpc3BsYXllZFxuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZXllXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kc2VsZWN0LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVGcm9tSW5wdXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmZpbmQoXCIuY3VzdG9tLW9wdGlvblwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgb3B0aW9uTmFtZSA9ICQodGhpcykudGV4dCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJpdFZhbHVlID0gdGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzW29wdGlvbk5hbWVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiaXRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gYml0IG5hbWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgodGhhdC5vcHRpb25zLnZhbHVlICYgYml0VmFsdWUpID09PSBiaXRWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGhpZGRlbiBzZWxlY3QgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC51cGRhdGVWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gdGhlIGRyb3AgZG93biBwYW5lbFxuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJCgnPGRpdiBjbGFzcz1cImN1c3RvbS1zZWxlY3RcIj48L2Rpdj4nKS5oaWRlKCkuaW5zZXJ0QWZ0ZXIodGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICAkLmVhY2godGhpcy5vcHRpb25zLm5hbWVzVG9CaXRzLCBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkb3B0aW9uID0gJCgnPGRpdiBjbGFzcz1cImN1c3RvbS1vcHRpb25cIiBkYXRhLXZhbHVlPVwiJyArXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdcIj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cImN1c3RvbS1jaGVja2JveFwiPjwvc3Bhbj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCI8L2Rpdj5cIik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmFwcGVuZCgkb3B0aW9uKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyB3aGVuIGEgb3B0aW9ucyBpbiB0aGUgZHJvcCBkb3duIHBhbmVsIGlzIGNsaWNrZWQsXG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24ub24oXCJjbGlja1wiLCBcIi5jdXN0b20tb3B0aW9uXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS50b2dnbGVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICQodGhpcykuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5oYXNDbGFzcyhcInNlbGVjdGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRCaXQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5zZXRCaXQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoYXQudXBkYXRlVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUZyb21JbnB1dCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmVsZW1lbnQudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQub3B0aW9ucy52YWx1ZSA9IGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRCaXQgPSAoYml0TmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiaXQgPSB0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHNbYml0TmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChiaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBiaXQgbmFtZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMudmFsdWUgfD0gYml0O1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgdW5zZXRCaXQgPSAoYml0TmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiaXQgPSB0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHNbYml0TmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChiaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBiaXQgbmFtZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMudmFsdWUgJj0gfmJpdDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnZhbChjb2VyY2VGbGFnTWFza1RvU3RyaW5nKHRoYXQub3B0aW9ucy5uYW1lc1RvQml0cywgdGhpcy5vcHRpb25zLnZhbHVlKSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB1cGRhdGVGcm9tSW5wdXQoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1cGRhdGVWYWx1ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQudmFsKGNvZXJjZUZsYWdNYXNrVG9TdHJpbmcodGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzLCB0aGlzLm9wdGlvbnMudmFsdWUpKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfZGVzdHJveSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5yZW1vdmUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1Ccm93c2VcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcImJyb3dzZVwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICAvLyBmb3IgYWN0aW9uIHJlYWRcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHsgdmFsdWU6IFwiSGFzQ2hpbGRcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHsgdmFsdWU6IGZhbHNlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiB7IHZhbHVlOiBcIkZvcndhcmRcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIG5vZGVDbGFzc01hc2s6IHsgdmFsdWU6IFwiVmFyaWFibGUgfCBPYmplY3QgfCBNZXRob2QgfCBPYmplY3RUeXBlIHwgVmFyaWFibGVUeXBlXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgcmVzdWx0TWFzazogeyB2YWx1ZTogXCJSZWZlcmVuY2VUeXBlIHwgQnJvd3NlTmFtZSB8IFR5cGVEZWZpbml0aW9uIHwgRGlzcGxheU5hbWUgfCBOb2RlQ2xhc3MgfCBJc0ZvcndhcmRcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG91dHB1dHM6IDEsXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIEJyb3dzZVwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgZGVjbGFyZUZsYWdFZGl0b3JXaWRnZXQoKTtcbiAgICAgICAgICAgIG5vZGUuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIGNvbnN0ICRub2RlQ2xhc3NNYXNrID0gJChcIiNub2RlLWlucHV0LW5vZGVDbGFzc01hc2tcIik7XG4gICAgICAgICAgICAkbm9kZUNsYXNzTWFzay5mbGFnRWRpdG9yKHtcbiAgICAgICAgICAgICAgICBuYW1lc1RvQml0czoge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3Q6IDEsXG4gICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlOiAyLFxuICAgICAgICAgICAgICAgICAgICBNZXRob2Q6IDQsXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdFR5cGU6IDgsXG4gICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlVHlwZTogMTYsXG4gICAgICAgICAgICAgICAgICAgIFJlZmVyZW5jZVR5cGU6IDMyLFxuICAgICAgICAgICAgICAgICAgICBEYXRhVHlwZTogNjQsXG4gICAgICAgICAgICAgICAgICAgIFZpZXc6IDEyOCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCAkcmVzdWx0TWFzayA9ICQoXCIjbm9kZS1pbnB1dC1yZXN1bHRNYXNrXCIpO1xuICAgICAgICAgICAgJHJlc3VsdE1hc2suZmxhZ0VkaXRvcih7XG4gICAgICAgICAgICAgICAgbmFtZXNUb0JpdHM6IHtcbiAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlVHlwZTogMSxcbiAgICAgICAgICAgICAgICAgICAgSXNGb3J3YXJkOiAyLFxuICAgICAgICAgICAgICAgICAgICBOb2RlQ2xhc3M6IDQsXG4gICAgICAgICAgICAgICAgICAgIEJyb3dzZU5hbWU6IDgsXG4gICAgICAgICAgICAgICAgICAgIERpc3BsYXlOYW1lOiAxNixcbiAgICAgICAgICAgICAgICAgICAgVHlwZURlZmluaXRpb246IDMyLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IDYzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoe1xuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIlZhcmlhYmxlXCIgfHwgbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZXNOb2RlRGVzYyA9IHtcbiAgICAgICAgICAgICAgICBub2RlSWQ6IFwiaT0zMVwiLFxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZVR5cGVJZDogXCJcIixcbiAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIlJlZmVyZW5jZXNcIiB9LFxuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiUmVmZXJlbmNlc1wiIH0sXG4gICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIlJlZmVyZW5jZVR5cGVcIixcbiAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogXCJpPTMxXCIsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgJHJlZmVyZW5jZVR5cGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1yZWZlcmVuY2VUeXBlSWRcIik7XG4gICAgICAgICAgICAkcmVmZXJlbmNlVHlwZUlkLm5vZGVCcm93c2VyKHtcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiByZWZlcmVuY2VzTm9kZURlc2MsIC8vIFJlZmVyZW5jZXMsXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7IH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Client2-Browse">
11
11
  <style>