@opcua/for-node-red 2.6.1 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/all.js +1 -1
- package/package.json +2 -2
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.css +1 -1
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +4 -3
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.css +1 -1
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.html +7 -4
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.css +1 -1
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.html +4 -3
- package/source/OpcUa-Client2-ExtensionObject/OpcUa-Client2-ExtensionObject.css +1 -1
- package/source/OpcUa-Client2-ExtensionObject/OpcUa-Client2-ExtensionObject.html +5 -5
- package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.css +1 -1
- package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.html +4 -3
- package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.css +1 -1
- package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.html +4 -3
- package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.css +1 -1
- package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.html +4 -3
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.css +1 -1
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.html +4 -3
- package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.html +3 -2
@@ -1,2 +1,2 @@
|
|
1
|
-
.sterfive-combo-box{position:relative;width:100%}.sterfive-combo-box .sterfive-dropdown{background-color:#fff;border:1px solid #ccc;display:none;left:0;max-height:150px;overflow-y:auto;position:absolute;top:100%;width:100%;z-index:1000}.sterfive-combo-box li:before{content:none}.sterfive-tree li.expandable:before,.sterfive-tree li.no-expandable:before{content:"\f0da";cursor:pointer;font-family:FontAwesome;font-size:
|
1
|
+
.sterfive-combo-box{position:relative;width:100%}.sterfive-combo-box .sterfive-dropdown{background-color:#fff;border:1px solid #ccc;display:none;left:0;max-height:150px;overflow-y:auto;position:absolute;top:100%;width:100%;z-index:1000}.sterfive-combo-box li:before{content:none}.sterfive-tree li.expandable:before,.sterfive-tree li.no-expandable:before{content:"\f0da";cursor:pointer;font-family:FontAwesome;font-size:12pt;font-weight:900;margin-right:5px}.sterfive-tree li.no-expandable:before{opacity:0}.sterfive-tree li.expanded:before{content:"\f0d7";cursor:pointer;font-family:FontAwesome;font-size:12pt;font-weight:900;margin-right:5px}.sterfive-tree li span.selected{border:.5px dotted #33f}.sterfive-tree .fa{color:#333;margin-right:10px}.sterfive-tree ul{list-style:none;padding-inline-start:2%!important}.sterfive-tree li{cursor:pointer;padding:5px}.sterfive-tree{list-style-type:none}.sterfive-tree,.sterfive-tree ol,.sterfive-tree ul{list-style-type:none;margin:0;padding:0}.sterfive-tree li:hover{background-color:#eee}.sterfive-tree li.loading:before{animation:fa-spin 1s linear infinite;content:"\f110";cursor:pointer;font-family:FontAwesome;font-weight:900;margin-right:5px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.sterfive-tree .spinner{animation:spin .7s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:#666;display:inline-block;height:16px;width:16px}.sterfive-info{background-color:#fafad2;border-radius:10px;border-style:groove;display:block;font-size:10pt;margin:5px 0;padding:5px}.sterfive-info .ok{color:green}.sterfive-info .warning{color:darkred}.input-wrapper{border:0 solid #ccc;border-radius:5px;padding:0}.input-group{align-items:center;border:1px solid #ccc;border-radius:5px;display:flex;overflow:hidden}.input-group input{border:none;flex:1;outline:none;padding:8px}.input-group button{background-color:#f1f1f1;border:none;border-left:1px solid #ccc;cursor:pointer;padding:8px 16px}.input-group button:hover{background-color:#ddd}.info-text{color:#777;font-size:12px;margin-left:10px;margin-top:5px}.custom-checkbox{cursor:pointer;display:inline-block;font-family:FontAwesome;font-size:16px;font-weight:900;margin-right:10px;text-align:center;width:1em}.custom-checkbox.unchecked:before{content:"\f096"}.custom-checkbox.checked:before{content:"\f046"}.validate-cancel-buttons{background-color:#fff;position:sticky;right:0;top:0;z-index:1001}.cancel-button,.validate-button{cursor:pointer;font-size:16px;margin:5px}.sterfive-combo-box .sterfive-dropdown{position:relative}.floating-buttons{position:fixed;z-index:1003}
|
2
2
|
/*# sourceMappingURL=OpcUa-Client2-Read.css.map */
|
@@ -1,11 +1,11 @@
|
|
1
1
|
<style>
|
2
|
-
.sterfive-combo-box{position:relative;width:100%}.sterfive-combo-box .sterfive-dropdown{background-color:#fff;border:1px solid #ccc;display:none;left:0;max-height:150px;overflow-y:auto;position:absolute;top:100%;width:100%;z-index:1000}.sterfive-combo-box li:before{content:none}.sterfive-tree li.expandable:before,.sterfive-tree li.no-expandable:before{content:"\f0da";cursor:pointer;font-family:FontAwesome;font-size:
|
2
|
+
.sterfive-combo-box{position:relative;width:100%}.sterfive-combo-box .sterfive-dropdown{background-color:#fff;border:1px solid #ccc;display:none;left:0;max-height:150px;overflow-y:auto;position:absolute;top:100%;width:100%;z-index:1000}.sterfive-combo-box li:before{content:none}.sterfive-tree li.expandable:before,.sterfive-tree li.no-expandable:before{content:"\f0da";cursor:pointer;font-family:FontAwesome;font-size:12pt;font-weight:900;margin-right:5px}.sterfive-tree li.no-expandable:before{opacity:0}.sterfive-tree li.expanded:before{content:"\f0d7";cursor:pointer;font-family:FontAwesome;font-size:12pt;font-weight:900;margin-right:5px}.sterfive-tree li span.selected{border:.5px dotted #33f}.sterfive-tree .fa{color:#333;margin-right:10px}.sterfive-tree ul{list-style:none;padding-inline-start:2%!important}.sterfive-tree li{cursor:pointer;padding:5px}.sterfive-tree{list-style-type:none}.sterfive-tree,.sterfive-tree ol,.sterfive-tree ul{list-style-type:none;margin:0;padding:0}.sterfive-tree li:hover{background-color:#eee}.sterfive-tree li.loading:before{animation:fa-spin 1s linear infinite;content:"\f110";cursor:pointer;font-family:FontAwesome;font-weight:900;margin-right:5px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.sterfive-tree .spinner{animation:spin .7s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:#666;display:inline-block;height:16px;width:16px}.sterfive-info{background-color:#fafad2;border-radius:10px;border-style:groove;display:block;font-size:10pt;margin:5px 0;padding:5px}.sterfive-info .ok{color:green}.sterfive-info .warning{color:darkred}.input-wrapper{border:0 solid #ccc;border-radius:5px;padding:0}.input-group{align-items:center;border:1px solid #ccc;border-radius:5px;display:flex;overflow:hidden}.input-group input{border:none;flex:1;outline:none;padding:8px}.input-group button{background-color:#f1f1f1;border:none;border-left:1px solid #ccc;cursor:pointer;padding:8px 16px}.input-group button:hover{background-color:#ddd}.info-text{color:#777;font-size:12px;margin-left:10px;margin-top:5px}.custom-checkbox{cursor:pointer;display:inline-block;font-family:FontAwesome;font-size:16px;font-weight:900;margin-right:10px;text-align:center;width:1em}.custom-checkbox.unchecked:before{content:"\f096"}.custom-checkbox.checked:before{content:"\f046"}.validate-cancel-buttons{background-color:#fff;position:sticky;right:0;top:0;z-index:1001}.cancel-button,.validate-button{cursor:pointer;font-size:16px;margin:5px}.sterfive-combo-box .sterfive-dropdown{position:relative}.floating-buttons{position:fixed;z-index:1003}
|
3
3
|
/*# sourceMappingURL=OpcUa-Client2-Read.css.map */
|
4
4
|
</style>
|
5
5
|
|
6
6
|
<script type="text/javascript">
|
7
|
-
(function(_0x3c403e,_0x54b7f5){const _0x25a0e5=_0x4261,_0x54f8d2=_0x3c403e();while(!![]){try{const _0x19a0ca=-parseInt(_0x25a0e5(0x197))/0x1+-parseInt(_0x25a0e5(0x189))/0x2+parseInt(_0x25a0e5(0x1c4))/0x3+-parseInt(_0x25a0e5(0x191))/0x4*(-parseInt(_0x25a0e5(0x183))/0x5)+-parseInt(_0x25a0e5(0x1a5))/0x6*(-parseInt(_0x25a0e5(0x193))/0x7)+parseInt(_0x25a0e5(0x20d))/0x8+parseInt(_0x25a0e5(0x186))/0x9;if(_0x19a0ca===_0x54b7f5)break;else _0x54f8d2['push'](_0x54f8d2['shift']());}catch(_0xa0c371){_0x54f8d2['push'](_0x54f8d2['shift']());}}}(_0x3f3e,0xc700c),(function(){'use strict';const _0x4420be=_0x4261;function _0x538667(_0x20d3f5,_0x2ba0e0,_0x608605,_0x28694f){function _0x46f51e(_0x3fe5a7){return _0x3fe5a7 instanceof _0x608605?_0x3fe5a7:new _0x608605(function(_0x4e39d6){_0x4e39d6(_0x3fe5a7);});}return new(_0x608605||(_0x608605=Promise))(function(_0x361c62,_0x5a6b69){function _0x13c878(_0x26507e){const _0x588a15=_0x4261;try{_0x197349(_0x28694f[_0x588a15(0x1ae)](_0x26507e));}catch(_0x4363c7){_0x5a6b69(_0x4363c7);}}function _0x46b386(_0x10a8f6){const _0x54f0e9=_0x4261;try{_0x197349(_0x28694f[_0x54f0e9(0x1f3)](_0x10a8f6));}catch(_0x36d973){_0x5a6b69(_0x36d973);}}function _0x197349(_0x350fc4){const _0x4db28a=_0x4261;_0x350fc4['done']?_0x361c62(_0x350fc4[_0x4db28a(0x1a7)]):_0x46f51e(_0x350fc4[_0x4db28a(0x1a7)])[_0x4db28a(0x1a1)](_0x13c878,_0x46b386);}_0x197349((_0x28694f=_0x28694f['apply'](_0x20d3f5,_0x2ba0e0||[]))['next']());});}typeof SuppressedError===_0x4420be(0x1c8)?SuppressedError:function(_0x5312fc,_0x47e4ee,_0xde2be8){const _0x323bce=_0x4420be;var _0x53dbea=new Error(_0xde2be8);return _0x53dbea[_0x323bce(0x1c7)]=_0x323bce(0x1cb),_0x53dbea[_0x323bce(0x210)]=_0x5312fc,_0x53dbea[_0x323bce(0x1af)]=_0x47e4ee,_0x53dbea;};const _0x325014=_0x4420be(0x196),_0x44c951=_0x4420be(0x1fb),_0x43d70b=_0x4420be(0x18e),_0x4fdf11=_0x4420be(0x1b9),_0x42345d='ns=0;i=34',_0x2232e5=_0x4420be(0x1d5),_0x7851fe=_0x4420be(0x21c);var _0x41c2b4;(function(_0x5c74ba){const _0x42bfe7=_0x4420be;_0x5c74ba[_0x5c74ba['Forward']=0x0]=_0x42bfe7(0x1c5),_0x5c74ba[_0x5c74ba[_0x42bfe7(0x1d2)]=0x1]=_0x42bfe7(0x1d2),_0x5c74ba[_0x5c74ba['Both']=0x2]=_0x42bfe7(0x185),_0x5c74ba[_0x5c74ba['Invalid']=0x3]='Invalid';}(_0x41c2b4||(_0x41c2b4={})));var _0xc080f2;(function(_0x32107f){const _0x3f8e56=_0x4420be;_0x32107f[_0x32107f[_0x3f8e56(0x1e5)]=0x0]='Unspecified',_0x32107f[_0x32107f[_0x3f8e56(0x1e7)]=0x1]=_0x3f8e56(0x1e7),_0x32107f[_0x32107f[_0x3f8e56(0x1ef)]=0x2]=_0x3f8e56(0x1ef),_0x32107f[_0x32107f['Method']=0x4]=_0x3f8e56(0x1b6),_0x32107f[_0x32107f['ObjectType']=0x8]='ObjectType',_0x32107f[_0x32107f['VariableType']=0x10]=_0x3f8e56(0x209),_0x32107f[_0x32107f[_0x3f8e56(0x1d0)]=0x20]=_0x3f8e56(0x1d0),_0x32107f[_0x32107f[_0x3f8e56(0x1df)]=0x40]=_0x3f8e56(0x1df),_0x32107f[_0x32107f[_0x3f8e56(0x208)]=0x80]=_0x3f8e56(0x208);}(_0xc080f2||(_0xc080f2={})));var _0x5c21a4;(function(_0x55ffca){const _0x7bbb22=_0x4420be;_0x55ffca[_0x55ffca[_0x7bbb22(0x1e7)]=0x1]=_0x7bbb22(0x1e7),_0x55ffca[_0x55ffca['Variable']=0x2]=_0x7bbb22(0x1ef),_0x55ffca[_0x55ffca['Method']=0x4]=_0x7bbb22(0x1b6),_0x55ffca[_0x55ffca[_0x7bbb22(0x194)]=0x8]=_0x7bbb22(0x194),_0x55ffca[_0x55ffca['VariableType']=0x10]=_0x7bbb22(0x209),_0x55ffca[_0x55ffca[_0x7bbb22(0x1d0)]=0x20]='ReferenceType',_0x55ffca[_0x55ffca[_0x7bbb22(0x1df)]=0x40]=_0x7bbb22(0x1df),_0x55ffca[_0x55ffca['View']=0x80]='View';}(_0x5c21a4||(_0x5c21a4={})));var _0x48dac3;(function(_0x27aa43){const _0x666f60=_0x4420be;_0x27aa43[_0x27aa43[_0x666f60(0x1d0)]=0x1]=_0x666f60(0x1d0),_0x27aa43[_0x27aa43['IsForward']=0x2]=_0x666f60(0x1b4),_0x27aa43[_0x27aa43['NodeClass']=0x4]=_0x666f60(0x1dd),_0x27aa43[_0x27aa43['BrowseName']=0x8]=_0x666f60(0x1cd),_0x27aa43[_0x27aa43['DisplayName']=0x10]=_0x666f60(0x188),_0x27aa43[_0x27aa43[_0x666f60(0x17e)]=0x20]=_0x666f60(0x17e);}(_0x48dac3||(_0x48dac3={})));function _0x35a7b4(_0x77b4dc){const _0x11d185=_0x4420be;switch(_0x77b4dc){case _0x11d185(0x1cf):return _0x325014;case'HasProperty':return _0x4fdf11;case _0x11d185(0x18f):return _0x43d70b;case _0x11d185(0x1d3):return _0x42345d;case'HasSubtype':return _0x2232e5;case _0x11d185(0x1bd):return _0x7851fe;}}const _0x4fe49f=_0x41693f=>{const _0x1ccca6=_0x4420be;switch(_0x41693f['nodeClass']){case _0x1ccca6(0x1e7):if(_0x41693f[_0x1ccca6(0x1e9)]===_0x325014);if(_0x41693f[_0x1ccca6(0x206)]===_0x44c951||_0x41693f[_0x1ccca6(0x1e9)]==='i=61')return{'icon':'fa-folder','color':_0x1ccca6(0x1ff)};return{'icon':_0x1ccca6(0x20e),'color':'SeaGreen'};case _0x1ccca6(0x1ef):if(_0x41693f[_0x1ccca6(0x1e9)]===_0x43d70b)return{'icon':'fa-list-alt','color':_0x1ccca6(0x1d8)};else return _0x41693f['referenceTypeId']===_0x4fdf11?{'icon':_0x1ccca6(0x1f0),'color':'DodgerBlue'}:{'icon':_0x1ccca6(0x1f0),'color':_0x1ccca6(0x1dc)};case _0x1ccca6(0x1b6):return{'icon':_0x1ccca6(0x182),'color':'SandyBrown'};case'ObjectType':return{'icon':_0x1ccca6(0x20e),'color':_0x1ccca6(0x1de)};case'VariableType':return{'icon':_0x1ccca6(0x203),'color':'DarkOrange'};case'DataType':return{'icon':_0x1ccca6(0x19b),'color':_0x1ccca6(0x1dc)};}return{'icon':_0x1ccca6(0x20a),'color':'grey'};},_0x24bda5=({endpointNode:_0x13a659,endpoint:_0x397229,baseUrl:_0x61cd67},_0x25e1a5,_0x45fd6a)=>_0x538667(void 0x0,void 0x0,void 0x0,function*(){const _0x320e96=_0x4420be,_0x2ef198=_0x61cd67+_0x320e96(0x187),_0x1d34c8=_0x2ef198+_0x320e96(0x20c),_0x3819e2=Object[_0x320e96(0x211)](Object['assign']({},_0x45fd6a),{'nodeId':_0x25e1a5,'resultMask':0x3f}),_0x4e8602=yield fetch(_0x1d34c8,{'method':_0x320e96(0x219),'body':JSON[_0x320e96(0x1d7)]({'endpointNode':_0x13a659,'endpoint':_0x397229,'browseDescription':_0x3819e2}),'headers':{'Content-Type':_0x320e96(0x1b1)}});if(_0x4e8602[_0x320e96(0x1a8)]!==0xc8)return console['log']('fetching\x20failed\x20with\x20error',_0x4e8602[_0x320e96(0x1a8)],_0x4e8602[_0x320e96(0x1c0)]),{'references':[]};console[_0x320e96(0x1ad)](_0x320e96(0x1a3),_0x4e8602[_0x320e96(0x1a8)],_0x4e8602['statusText']);const _0x33d0d2=yield _0x4e8602[_0x320e96(0x18c)](),_0x348879=_0x33d0d2[_0x320e96(0x1fa)][_0x320e96(0x205)]||[];return{'references':_0x348879};}),_0xc15070={'referenceTypeId':_0x35a7b4(_0x4420be(0x1d3)),'includeSubtypes':!![],'browseDirection':_0x41c2b4[_0x4420be(0x1c5)],'nodeClassMask':_0xc080f2[_0x4420be(0x1ef)]|_0xc080f2[_0x4420be(0x1e7)]|_0xc080f2[_0x4420be(0x1b6)],'resultMask':0x3f},_0x24a56a={'referenceTypeId':_0x35a7b4(_0x4420be(0x1cf)),'includeSubtypes':!![],'browseDirection':_0x41c2b4['Forward'],'nodeClassMask':_0xc080f2['Variable']|_0xc080f2['Object']|_0xc080f2['Method'],'resultMask':0x3f},_0x5a3785=({endpointNode:_0x412f51,endpoint:_0x4336ba,baseUrl:_0x3f87eb},_0x1bc39c,_0x134335)=>_0x538667(void 0x0,void 0x0,void 0x0,function*(){const _0x44f039=_0x4420be,_0x284133=_0x3f87eb+_0x44f039(0x187),_0x282974=_0x1bc39c[_0x44f039(0x1f5)](),_0x2645fc=yield fetch(_0x284133+_0x44f039(0x1f4),{'method':'POST','body':JSON[_0x44f039(0x1d7)]({'endpointNode':_0x412f51,'endpoint':_0x4336ba,'nodeId':_0x282974}),'headers':{'Content-Type':'application/json'}}),_0x1d82f3=(_0x4f37b3,_0x24f606)=>{const _0x29d643=_0x44f039;_0x134335[_0x29d643(0x1ce)](_0x4f37b3)['addClass'](_0x29d643(0x180))[_0x29d643(0x195)](_0x24f606),_0x134335['show'](),setTimeout(()=>{const _0x42bfd6=_0x29d643;_0x134335[_0x42bfd6(0x19d)](_0x24f606),_0x134335[_0x42bfd6(0x19e)]();},0xbb8);},_0x3ec162=yield _0x2645fc['json']();_0x2645fc[_0x44f039(0x1a8)]!==0xc8?_0x1d82f3(_0x44f039(0x1b7)+_0x282974,'failure'):_0x3ec162[_0x44f039(0x217)][_0x44f039(0x1ca)](/Good/)?(_0x1bc39c[_0x44f039(0x1f5)](_0x3ec162[_0x44f039(0x1bf)]),_0x1bc39c['trigger'](_0x44f039(0x181)),_0x1d82f3(_0x44f039(0x1a6),'ok')):(_0x1bc39c[_0x44f039(0x1f5)](''+_0x282974),_0x1d82f3(_0x3ec162[_0x44f039(0x217)]+'\x20'+_0x2645fc[_0x44f039(0x1c0)],'failure'));});function _0x29ac13(_0xc2a0e4,_0x8e55f9){return _0x538667(this,void 0x0,void 0x0,function*(){const _0x48e9fd=_0x4261,_0x1e2277=_0xc2a0e4[_0x48e9fd(0x1fc)]('value'),_0x5aa306=yield _0x24bda5(_0x8e55f9,_0x1e2277,_0xc15070),_0x41c620=yield _0x24bda5(_0x8e55f9,_0x1e2277,_0x24a56a);return{'references':[..._0x5aa306[_0x48e9fd(0x205)],..._0x41c620[_0x48e9fd(0x205)]]};});}const _0x45dae0={'referenceTypeId':_0x35a7b4(_0x4420be(0x1ab)),'includeSubtypes':!![],'browseDirection':_0x41c2b4[_0x4420be(0x1c5)],'nodeClassMask':_0xc080f2[_0x4420be(0x1d0)]|_0xc080f2['ObjectType']|_0xc080f2['DataType']|_0xc080f2[_0x4420be(0x209)],'resultMask':0x3f};function _0x3d2ad7(_0x20d491,_0x476277){return _0x538667(this,void 0x0,void 0x0,function*(){const _0x4eb251=_0x4261,_0x5e25e8=_0x20d491[_0x4eb251(0x1fc)]('value'),_0x19c11e=yield _0x24bda5(_0x476277,_0x5e25e8,_0x45dae0);return _0x19c11e;});}const _0x3aeaab=_0x2648d0=>{const _0x24689a=_0x4420be;var _0x17e174,_0x71f921;if(!_0x2648d0){const _0x35e04f=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x35e04f;}const _0x20c71=_0x2648d0[_0x24689a(0x1ec)][_0x24689a(0x1a0)](),_0x3b09dd=((_0x17e174=_0x2648d0['displayName'])===null||_0x17e174===void 0x0?void 0x0:_0x17e174[_0x24689a(0x1ce)])||((_0x71f921=_0x2648d0[_0x24689a(0x1eb)])===null||_0x71f921===void 0x0?void 0x0:_0x71f921['name'])||_0x2648d0[_0x24689a(0x1ec)]['toString'](),{icon:_0x48e1d4,color:_0x1df099}=_0x4fe49f(_0x2648d0),_0xcb9bf7=$(_0x24689a(0x1e2)+_0x48e1d4+_0x24689a(0x1c1)+_0x1df099+_0x24689a(0x1e1)+_0x3b09dd+'<ul></ul></li>');return _0xcb9bf7[_0x24689a(0x195)](_0x24689a(0x1f8)),_0xcb9bf7['data'](_0x24689a(0x1a7),_0x20c71),_0xcb9bf7['data']('reference',_0x2648d0),_0xcb9bf7;},_0x34c977=()=>{const _0x4c6440=_0x4420be;$['widget'](_0x4c6440(0x1d1),{'options':{'endpointNode':()=>({'endpoint':_0x4c6440(0x1a9)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x4c6440(0x1d9)},'nodeClass':'Object','nodeId':_0x4c6440(0x1b8),'displayName':{'text':_0x4c6440(0x1d9)},'typeDefinition':_0x44c951}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x538667(this,void 0x0,void 0x0,function*(){const _0x295a1f=_0x4261,_0x35d7a7=this,_0x3a86cd=typeof _0x35d7a7[_0x295a1f(0x1ea)]['parentNode']==='function'?_0x35d7a7[_0x295a1f(0x1ea)][_0x295a1f(0x18d)]():_0x35d7a7[_0x295a1f(0x1ea)][_0x295a1f(0x18d)];if(_0x3a86cd instanceof Promise)return yield _0x3a86cd;return _0x3a86cd;});},'reset'(){const _0x269825=_0x4c6440,_0x2e9db7=this;_0x2e9db7['$tree'][_0x269825(0x1ee)](),this['resolveParentNode']()[_0x269825(0x1a1)](_0x274a66=>{const _0x2a03be=_0x269825,_0x24538a=_0x3aeaab(_0x274a66);_0x2e9db7[_0x2a03be(0x1ed)][_0x2a03be(0x1ba)](_0x24538a),_0x2e9db7['currentParent']=_0x274a66;});},'verify'(){const _0xce0495=_0x4c6440,_0x40832a=this,_0x50c76c={'baseUrl':_0x40832a[_0xce0495(0x1ea)][_0xce0495(0x1f6)],'endpointNode':typeof _0x40832a[_0xce0495(0x1ea)][_0xce0495(0x1f2)]==='function'?_0x40832a[_0xce0495(0x1ea)]['endpointNode']():_0x40832a[_0xce0495(0x1ea)][_0xce0495(0x1f2)],'endpoint':typeof _0x40832a[_0xce0495(0x1ea)][_0xce0495(0x190)]==='function'?_0x40832a[_0xce0495(0x1ea)][_0xce0495(0x190)]():_0x40832a['options']['endpoint']};_0x5a3785(_0x50c76c,_0x40832a[_0xce0495(0x1f7)],_0x40832a['$info']);},'_create'(){const _0x1111aa=_0x4c6440,_0x10111e=this;function _0x433a46(_0x197a1e,_0x27c038,_0x28f00e){return _0x538667(this,void 0x0,void 0x0,function*(){const _0x1a4150=_0x4261;if(_0x197a1e[_0x1a4150(0x1b3)](_0x1a4150(0x1e6))){console[_0x1a4150(0x1ad)]('already\x20fetched');return;}if(_0x197a1e[_0x1a4150(0x1b3)]('loading')){console['log'](_0x1a4150(0x18a));return;}_0x197a1e['addClass'](_0x1a4150(0x1e3)),_0x197a1e['append'](_0x1a4150(0x201));try{_0x197a1e['children']('ul')[_0x1a4150(0x1ee)]();const {references:_0x580bb7}=yield _0x27c038(_0x197a1e,_0x28f00e);for(const _0x5a420f of _0x580bb7){if(_0x10111e['options'][_0x1a4150(0x215)]&&!_0x10111e[_0x1a4150(0x1ea)][_0x1a4150(0x215)](_0x5a420f))continue;const _0x6a5697=_0x3aeaab(_0x5a420f);_0x197a1e[_0x1a4150(0x218)]('ul')[_0x1a4150(0x1ba)](_0x6a5697);}_0x197a1e[_0x1a4150(0x195)](_0x1a4150(0x1e6));}catch(_0x1e31d6){_0x197a1e['children']('ul')['append']('<li>error\x20'+_0x1e31d6[_0x1a4150(0x21e)]+'</li>'),console['log']('err',_0x1e31d6);}_0x197a1e['find'](_0x1a4150(0x21a))['remove'](),_0x197a1e['removeClass']('loading');});}_0x10111e['$input']=this[_0x1111aa(0x198)],_0x10111e['$combo']=$(_0x1111aa(0x204)),_0x10111e[_0x1111aa(0x1c6)]['addClass']('sterfive-combo-box'),this[_0x1111aa(0x198)]['replaceWith'](_0x10111e['$combo']),_0x10111e[_0x1111aa(0x1e0)]=$(_0x1111aa(0x204))[_0x1111aa(0x195)]('input-group'),_0x10111e[_0x1111aa(0x1c6)][_0x1111aa(0x1ba)](_0x10111e[_0x1111aa(0x1e0)]),_0x10111e[_0x1111aa(0x1e0)][_0x1111aa(0x1ba)](_0x10111e[_0x1111aa(0x1f7)]),_0x10111e[_0x1111aa(0x192)]=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x10111e[_0x1111aa(0x1e0)][_0x1111aa(0x1ba)](_0x10111e['$toggleTreeBtn']),_0x10111e[_0x1111aa(0x192)]['on'](_0x1111aa(0x213),function(){const _0x29f746=_0x1111aa;!_0x10111e['$dropdown']['is'](_0x29f746(0x1c2))&&(_0x10111e['resolveParentNode']()[_0x29f746(0x1a1)](_0x35f2b9=>{const _0x3ee92c=_0x29f746;var _0x46c4b6;(_0x35f2b9!==_0x10111e['currentParent']||((_0x46c4b6=_0x10111e[_0x3ee92c(0x1be)])===null||_0x46c4b6===void 0x0?void 0x0:_0x46c4b6[_0x3ee92c(0x1ec)])!==_0x35f2b9[_0x3ee92c(0x1ec)])&&_0x10111e['reset']();}),_0x10111e['$info'][_0x29f746(0x19e)]()),_0x10111e[_0x29f746(0x214)]['toggle']();}),_0x10111e[_0x1111aa(0x21d)]=$('<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>'),_0x10111e[_0x1111aa(0x1e0)][_0x1111aa(0x1ba)](_0x10111e[_0x1111aa(0x21d)]),_0x10111e[_0x1111aa(0x21d)]['on'](_0x1111aa(0x213),()=>{this['verify']();}),!_0x10111e[_0x1111aa(0x1f7)][_0x1111aa(0x20f)](_0x1111aa(0x1a2))&&_0x10111e[_0x1111aa(0x1f7)]['attr'](_0x1111aa(0x1a2),_0x1111aa(0x21b)),_0x10111e[_0x1111aa(0x184)]=$('<div\x20class=\x22info-text\x22></div>'),_0x10111e[_0x1111aa(0x184)][_0x1111aa(0x19e)](),{'baseUrl':_0x10111e[_0x1111aa(0x1ea)][_0x1111aa(0x1f6)],'endpointNode':typeof _0x10111e[_0x1111aa(0x1ea)][_0x1111aa(0x1f2)]===_0x1111aa(0x1c8)?_0x10111e[_0x1111aa(0x1ea)]['endpointNode']():_0x10111e[_0x1111aa(0x1ea)][_0x1111aa(0x1f2)],'endpoint':typeof _0x10111e[_0x1111aa(0x1ea)]['endpoint']===_0x1111aa(0x1c8)?_0x10111e[_0x1111aa(0x1ea)][_0x1111aa(0x190)]():_0x10111e[_0x1111aa(0x1ea)]['endpoint']},_0x10111e[_0x1111aa(0x214)]=$('<div/>')[_0x1111aa(0x195)]('sterfive-dropdown')[_0x1111aa(0x19e)](),_0x10111e[_0x1111aa(0x1c6)]['append'](_0x10111e[_0x1111aa(0x184)]),_0x10111e[_0x1111aa(0x1c6)][_0x1111aa(0x1ba)](_0x10111e['$dropdown']),_0x10111e[_0x1111aa(0x1ed)]=$(_0x1111aa(0x200))[_0x1111aa(0x1e8)](_0x10111e[_0x1111aa(0x214)]),this[_0x1111aa(0x1db)](),_0x10111e['$tree']['on'](_0x1111aa(0x213),'li',function(_0x188953){const _0x2053ac=_0x1111aa;var _0x10783f,_0x2062d3;_0x188953[_0x2053ac(0x18b)]();let _0x537aac=$(this);const _0x115349=0x14,_0x35bd89=0x14,_0x4ef5b6=$(this)[_0x2053ac(0x1c3)](),_0x128169=_0x188953;if(_0x128169[_0x2053ac(0x1f9)]>=_0x4ef5b6[_0x2053ac(0x20b)]&&_0x128169[_0x2053ac(0x1f9)]<=_0x4ef5b6['left']+_0x115349&&_0x128169[_0x2053ac(0x1d4)]>=_0x4ef5b6[_0x2053ac(0x1aa)]&&_0x128169['pageY']<=_0x4ef5b6[_0x2053ac(0x1aa)]+_0x35bd89){if(_0x537aac[_0x2053ac(0x1b3)](_0x2053ac(0x1f8))){if(_0x537aac[_0x2053ac(0x1b3)]('fetched')){_0x537aac['removeClass'](_0x2053ac(0x1f8))[_0x2053ac(0x195)](_0x2053ac(0x1ac)),_0x537aac['children']('ul')['toggle']();return;}const _0x3029f5={'baseUrl':_0x10111e['options'][_0x2053ac(0x1f6)],'endpointNode':typeof _0x10111e[_0x2053ac(0x1ea)][_0x2053ac(0x1f2)]===_0x2053ac(0x1c8)?_0x10111e['options'][_0x2053ac(0x1f2)]():_0x10111e[_0x2053ac(0x1ea)][_0x2053ac(0x1f2)],'endpoint':typeof _0x10111e[_0x2053ac(0x1ea)]['endpoint']===_0x2053ac(0x1c8)?_0x10111e[_0x2053ac(0x1ea)][_0x2053ac(0x190)]():_0x10111e[_0x2053ac(0x1ea)][_0x2053ac(0x190)]},_0x49341d=!_0x10111e['options'][_0x2053ac(0x1b5)]?_0x29ac13:_0x3d2ad7;_0x433a46(_0x537aac,_0x49341d,_0x3029f5)['then'](()=>{const _0x4a73e1=_0x2053ac;console[_0x4a73e1(0x1ad)](_0x4a73e1(0x202)),console['log']('fetched'),_0x537aac[_0x4a73e1(0x19d)](_0x4a73e1(0x1f8))[_0x4a73e1(0x195)](_0x4a73e1(0x1ac));})[_0x2053ac(0x1bb)](_0x276f27=>{const _0x42da35=_0x2053ac;_0x537aac['removeClass']('expandable')[_0x42da35(0x195)](_0x42da35(0x1ac)),console[_0x42da35(0x1ad)](_0x42da35(0x210),_0x276f27);});}else{if(_0x537aac[_0x2053ac(0x1b3)]('expanded'))_0x537aac[_0x2053ac(0x218)]('ul')[_0x2053ac(0x17f)](),_0x537aac[_0x2053ac(0x1da)](_0x2053ac(0x1fe));else{if(_0x537aac[_0x2053ac(0x218)]('ul')[_0x2053ac(0x218)]()[_0x2053ac(0x1f1)]>0x0)_0x537aac[_0x2053ac(0x218)]('ul')[_0x2053ac(0x17f)](),_0x537aac['toggleClass'](_0x2053ac(0x1fe));else;}}}else{const _0x4018e0=_0x537aac[_0x2053ac(0x1fc)](_0x2053ac(0x1a7)),_0x2042b6=_0x537aac[_0x2053ac(0x1fc)]('reference');if(_0x10111e[_0x2053ac(0x1ea)]['isSelectable']&&!_0x10111e[_0x2053ac(0x1ea)][_0x2053ac(0x1e4)](_0x2042b6))return;_0x10111e['$input'][_0x2053ac(0x1fc)]('reference',_0x2042b6);const _0x4b5f81=((_0x10783f=_0x2042b6['displayName'])===null||_0x10783f===void 0x0?void 0x0:_0x10783f['text'])||((_0x2062d3=_0x2042b6[_0x2053ac(0x1eb)])===null||_0x2062d3===void 0x0?void 0x0:_0x2062d3[_0x2053ac(0x1c7)])||_0x2042b6['nodeId'][_0x2053ac(0x1a0)](),_0x1a0124='['+_0x4b5f81+']('+_0x4018e0+')';_0x10111e[_0x2053ac(0x1f7)][_0x2053ac(0x1f5)](_0x1a0124),_0x10111e[_0x2053ac(0x1f7)][_0x2053ac(0x19c)](_0x2053ac(0x181)),_0x10111e[_0x2053ac(0x214)][_0x2053ac(0x19e)]();}}),$(document)['on'](_0x1111aa(0x213),function(_0x1d318){const _0x5bd8df=_0x1111aa;!$(_0x1d318['target'])['closest'](_0x10111e[_0x5bd8df(0x1c6)])['length']&&_0x10111e[_0x5bd8df(0x214)][_0x5bd8df(0x19e)]();});}});},_0x423109=()=>{const _0x126bf4=_0x4420be,_0x3a1b2=$(_0x126bf4(0x19a)),_0x5cbdef=_0x3a1b2[_0x126bf4(0x1f5)](),_0x23eef0=RED[_0x126bf4(0x1c9)][_0x126bf4(0x1a4)](_0x5cbdef);if(!_0x23eef0)return undefined;const {endpoint:_0x3f0d4b,securityMode:_0x35c4a4,securityPolicy:_0x442aea,userIdentityType:_0x438ace,credentials:_0x440423}=_0x23eef0,_0x807274={'endpoint':_0x3f0d4b,'securityMode':_0x35c4a4,'securityPolicy':_0x442aea,'userIdentityType':_0x438ace,'credentials':_0x440423};return _0x807274;},_0x27660d=()=>{return{'endpointNode':_0x14fd92};},_0x14fd92=()=>{const _0x45a093=_0x4420be,_0x59dd5a=$(_0x45a093(0x19a)),_0x1f4014=_0x59dd5a[_0x45a093(0x1f5)](),_0x284f3a=_0x423109();if(!_0x284f3a)return undefined;return{'id':_0x1f4014};};RED['nodes'][_0x4420be(0x1b2)](_0x4420be(0x207),{'category':_0x4420be(0x199),'color':_0x4420be(0x216),'align':_0x4420be(0x1b0),'icon':_0x4420be(0x1fd),'paletteLabel':_0x4420be(0x1bc),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'attributeId':{'value':_0x4420be(0x1cc),'required':!![]},'nodeId':{'value':'','required':![]},'outputType':{'value':'Value','required':!![]}},'outputs':0x2,'label'(){const _0xc14eb7=_0x4420be;return this[_0xc14eb7(0x1c7)]||_0xc14eb7(0x212);},'labelStyle'(){return this['name']?'node_label_italic':'';},'oneditprepare'(){const _0x10371a=_0x4420be,_0x3f1a53=this;_0x34c977(),_0x3f1a53['inputs']=0x1;const _0x814527=$('#node-input-nodeId');_0x814527[_0x10371a(0x1d6)](Object['assign'](Object[_0x10371a(0x211)]({},_0x27660d()),{'isSelectable'(_0xdf2170){const _0x1df449=_0x10371a;return _0xdf2170[_0x1df449(0x19f)]==='Variable';}}));},'oneditsave'(){}});}()));function _0x4261(_0xdd3100,_0x45e13c){const _0x3f3e00=_0x3f3e();return _0x4261=function(_0x4261f6,_0x1edd30){_0x4261f6=_0x4261f6-0x17e;let _0x32d989=_0x3f3e00[_0x4261f6];return _0x32d989;},_0x4261(_0xdd3100,_0x45e13c);}function _0x3f3e(){const _0x35d00e=['parentNode','ns=0;i=47','HasComponent','endpoint','36LXUYLG','$toggleTreeBtn','6802502QofTLB','ObjectType','addClass','ns=0;i=35','1181716fNBrBF','element','opcua','#node-input-endpoint','fa-text-width','trigger','removeClass','hide','nodeClass','toString','then','placeholder','fetched\x20:\x20','node','6Vvbeaj','Good','value','status','opc.tcp://opcuademo.sterfive.com:26543','top','HasSubtype','expanded','log','next','suppressed','right','application/json','registerType','hasClass','IsForward','isTypeRef','Method','!!failure!!','ns=0;i=85','ns=0;i=46','append','catch','read','HasTypeDefinition','currentParent','nodeAddressString','statusText','\x22\x20style=\x22color:',':visible','offset','2382180qggziD','Forward','$combo','name','function','nodes','match','SuppressedError','Value','BrowseName','text','Organizes','ReferenceType','sterfive.nodeBrowser','Inverse','HasChild','pageY','ns=0;i=45','nodeBrowser','stringify','SteelBlue','Objects','toggleClass','reset','CadetBlue','NodeClass','DarkOrange','DataType','$inputGroup',';\x22></i>\x20','<li><i\x20class=\x22fa\x20','loading','isSelectable','Unspecified','fetched','Object','appendTo','referenceTypeId','options','browseName','nodeId','$tree','empty','Variable','fa-list-alt','length','endpointNode','throw','/checkNodeId','val','baseUrl','$input','expandable','pageX','browseResult','ns=0;i=61','data','../../icons/opcuanodeLogo.png','expandable\x20expanded','rgba(61,\x2060,\x204,\x200.525)','<ul\x20class=\x22sterfive-tree\x22></ul>','<div\x20class=\x22spinner\x22></div>','\x20Fetching\x20done','fa-sliders','<div/>','references','typeDefinition','OpcUa-Client2-Read','View','VariableType','fa-question','left','/browse','6172176nsCvPS','fa-object-group','attr','error','assign','OPCUA\x20Client\x20Read','click','$dropdown','filter','#C0DEED','statusCode','children','POST','.spinner','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','ns=0;i=40','$verifyBtn','message','TypeDefinition','toggle','sterfive-info','change','fa-cog','207465EhGQdz','$info','Both','1616697bPIhRP','/opcua-endpoint2','DisplayName','2187212nGKqgw','already\x20loading','stopPropagation','json'];_0x3f3e=function(){return _0x35d00e;};return _0x3f3e();}
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg1Mzg2NjciLCJfMHgyMGQzZjUiLCJfMHgyYmEwZTAiLCJfMHg2MDg2MDUiLCJfMHgyODY5NGYiLCJfMHg0NmY1MWUiLCJfMHgzZmU1YTciLCJfMHg0ZTM5ZDYiLCJQcm9taXNlIiwiXzB4MzYxYzYyIiwiXzB4NWE2YjY5IiwiXzB4MTNjODc4IiwiXzB4MjY1MDdlIiwiXzB4MTk3MzQ5IiwiXzB4NDM2M2M3IiwiXzB4NDZiMzg2IiwiXzB4MTBhOGY2IiwiXzB4MzZkOTczIiwiXzB4MzUwZmM0IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NTMxMmZjIiwiXzB4NDdlNGVlIiwiXzB4ZGUyYmU4IiwiXzB4NTNkYmVhIiwiRXJyb3IiLCJfMHgzMjUwMTQiLCJfMHg0NGM5NTEiLCJfMHg0M2Q3MGIiLCJfMHg0ZmRmMTEiLCJfMHg0MjM0NWQiLCJfMHgyMjMyZTUiLCJfMHg3ODUxZmUiLCJfMHg0MWMyYjQiLCJfMHg1Yzc0YmEiLCJfMHhjMDgwZjIiLCJfMHgzMjEwN2YiLCJfMHg1YzIxYTQiLCJfMHg1NWZmY2EiLCJfMHg0OGRhYzMiLCJfMHgyN2FhNDMiLCJfMHgzNWE3YjQiLCJfMHg3N2I0ZGMiLCJfMHg0ZmU0OWYiLCJfMHg0MTY5M2YiLCJfMHgyNGJkYTUiLCJlbmRwb2ludE5vZGUiLCJfMHgxM2E2NTkiLCJlbmRwb2ludCIsIl8weDM5NzIyOSIsImJhc2VVcmwiLCJfMHg2MWNkNjciLCJfMHgyNWUxYTUiLCJfMHg0NWZkNmEiLCJfMHgyZWYxOTgiLCJfMHgxZDM0YzgiLCJfMHgzODE5ZTIiLCJPYmplY3QiLCJfMHg0ZTg2MDIiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4MzNkMGQyIiwiXzB4MzQ4ODc5IiwiXzB4YzE1MDcwIiwiXzB4MjRhNTZhIiwiXzB4NWEzNzg1IiwiXzB4NDEyZjUxIiwiXzB4NDMzNmJhIiwiXzB4M2Y4N2ViIiwiXzB4MWJjMzljIiwiXzB4MTM0MzM1IiwiXzB4Mjg0MTMzIiwiXzB4MjgyOTc0IiwiXzB4MjY0NWZjIiwiXzB4MWQ4MmYzIiwiXzB4NGYzN2IzIiwiXzB4MjRmNjA2Iiwic2V0VGltZW91dCIsIl8weDNlYzE2MiIsIl8weDI5YWMxMyIsIl8weGMyYTBlNCIsIl8weDhlNTVmOSIsIl8weDFlMjI3NyIsIl8weDVhYTMwNiIsIl8weDQxYzYyMCIsIl8weDQ1ZGFlMCIsIl8weDNkMmFkNyIsIl8weDIwZDQ5MSIsIl8weDQ3NjI3NyIsIl8weDVlMjVlOCIsIl8weDE5YzExZSIsIl8weDNhZWFhYiIsIl8weDI2NDhkMCIsIl8weDE3ZTE3NCIsIl8weDcxZjkyMSIsIl8weDM1ZTA0ZiIsIiQiLCJfMHgyMGM3MSIsIl8weDNiMDlkZCIsImljb24iLCJfMHg0OGUxZDQiLCJjb2xvciIsIl8weDFkZjA5OSIsIl8weGNiOWJmNyIsIl8weDM0Yzk3NyIsInVuZGVmaW5lZCIsIl8weDM1ZDdhNyIsIl8weDNhODZjZCIsIl8weDJlOWRiNyIsIl8weDI3NGE2NiIsIl8weDI0NTM4YSIsIl8weDQwODMyYSIsIl8weDUwYzc2YyIsIl8weDEwMTExZSIsIl8weDQzM2E0NiIsIl8weDE5N2ExZSIsIl8weDI3YzAzOCIsIl8weDI4ZjAwZSIsInJlZmVyZW5jZXMiLCJfMHg1ODBiYjciLCJfMHg1YTQyMGYiLCJfMHg2YTU2OTciLCJfMHgxZTMxZDYiLCJfMHgzNWYyYjkiLCJfMHg0NmM0YjYiLCJfMHgxODg5NTMiLCJfMHgxMDc4M2YiLCJfMHgyMDYyZDMiLCJfMHg1MzdhYWMiLCJfMHgxMTUzNDkiLCJfMHgzNWJkODkiLCJfMHg0ZWY1YjYiLCJfMHgxMjgxNjkiLCJfMHgzMDI5ZjUiLCJfMHg0OTM0MWQiLCJfMHgyNzZmMjciLCJfMHg0MDE4ZTAiLCJfMHgyMDQyYjYiLCJfMHg0YjVmODEiLCJfMHgxYTAxMjQiLCJkb2N1bWVudCIsIl8weDFkMzE4IiwiXzB4NDIzMTA5IiwiXzB4M2ExYjIiLCJfMHg1Y2JkZWYiLCJfMHgyM2VlZjAiLCJSRUQiLCJfMHgzZjBkNGIiLCJzZWN1cml0eU1vZGUiLCJfMHgzNWM0YTQiLCJzZWN1cml0eVBvbGljeSIsIl8weDQ0MmFlYSIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHg0MzhhY2UiLCJjcmVkZW50aWFscyIsIl8weDQ0MDQyMyIsIl8weDgwNzI3NCIsIl8weDI3NjYwZCIsIl8weDE0ZmQ5MiIsIl8weDU5ZGQ1YSIsIl8weDFmNDAxNCIsIl8weDI4NGYzYSIsIl8weDNmMWE1MyIsIl8weDgxNDUyNyIsIl8weGRmMjE3MCJdLCJtYXBwaW5ncyI6InlpQkFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyxDQUM1QixTQUFTQyxTQUFULENBQW1CQyxTQUFuQixDLHlCQUE0QixHLENBQU1DLFNBQUEsQ0FBS1QsU0FBQSxDLGdCQUFBLEVBQWVRLFNBQWYsQ0FBTCxDLEVBQStCLE1BQU9FLFNBQVAsQyxDQUFZSixTQUFBLENBQU9JLFNBQVAsQyxHQUM3RSxTQUFTQyxTQUFULENBQWtCQyxTQUFsQixDLHlCQUEyQixHLENBQU1ILFNBQUEsQ0FBS1QsU0FBQSxDLGdCQUFBLEVBQW1CWSxTQUFuQixDQUFMLEMsRUFBbUMsTUFBT0MsU0FBUCxDLENBQVlQLFNBQUEsQ0FBT08sU0FBUCxDLEdBQ2hGLFNBQVNKLFNBQVQsQ0FBY0ssU0FBZCxDLHlCQUF3QkEsU0FBQSxDLE1BQUEsRUFBY1QsU0FBQSxDQUFRUyxTQUFBLEMsZ0JBQUEsQ0FBUixDQUFkLENBQXNDYixT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QSxFQUFjLEVBQWQsQ0FBa0JxRyxTQUFBLEVBQWxCLENBQWQsQ0FBaUUsQyxjQUFFLENBQWFPLFNBQWIsQyxrQ0FDeEVBLFNBQUEsQyxnQkFBQSxJLFlBRHNFLENBQWpFLENBQXBCLEMsRUE5QnFDLEMsWUFrQ3pDLEUsRUFsQ3lDLENBQTdDLEMsRUEzZkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiRGF0YVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXRleHQtd2lkdGhcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKGAke3Jvb3R9L2NoZWNrTm9kZUlkYCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKCRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmV0Y2hEYXRhRm9yTm9kZSgkbGksIGYsIGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIgRmV0Y2hpbmcgZG9uZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBjb25zdCBjcmVkZW50aWFscyA9IFJFRC4oZW5kcG9pbnRJZCk7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIGNyZWRlbnRpYWxzIH0gPSByZWROb2RlO1xuICAgICAgICBjb25zdCByZXRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgIH07XG4gICAgICAgIC8vIHh4IGNvbnNvbGUubG9nKFwieHh4XCIsIHJldFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHJldFZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIC8vIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vIGNyZWRlbnRpYWw6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgLy8gdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLVJlYWRcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcInJlYWRcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICAvLyBDb21tb25cbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgLy8gZm9yIGFjdGlvbiByZWFkXG4gICAgICAgICAgICBhdHRyaWJ1dGVJZDogeyB2YWx1ZTogXCJWYWx1ZVwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgbm9kZUlkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIG91dHB1dFR5cGU6IHsgdmFsdWU6IFwiVmFsdWVcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIENsaWVudCBSZWFkXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBub2RlLmlucHV0cyA9IDE7XG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIlZhcmlhYmxlXCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7IH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
|
7
|
+
(function(_0x213077,_0x2f73c4){const _0x623f73=_0x16a8,_0x252299=_0x213077();while(!![]){try{const _0x520bd0=parseInt(_0x623f73(0xcc))/0x1*(parseInt(_0x623f73(0x111))/0x2)+-parseInt(_0x623f73(0xfe))/0x3*(-parseInt(_0x623f73(0x157))/0x4)+-parseInt(_0x623f73(0xd3))/0x5+parseInt(_0x623f73(0xb2))/0x6*(parseInt(_0x623f73(0xc2))/0x7)+parseInt(_0x623f73(0x14f))/0x8+-parseInt(_0x623f73(0x152))/0x9*(parseInt(_0x623f73(0xf8))/0xa)+-parseInt(_0x623f73(0xaa))/0xb;if(_0x520bd0===_0x2f73c4)break;else _0x252299['push'](_0x252299['shift']());}catch(_0x36a196){_0x252299['push'](_0x252299['shift']());}}}(_0x1387,0xccaf6),(function(){'use strict';const _0x2a9036=_0x16a8;function _0x149861(_0x6e1d7e,_0x186ace,_0x3539dc,_0x3f83f9){function _0x58b7dc(_0x4dcdb1){return _0x4dcdb1 instanceof _0x3539dc?_0x4dcdb1:new _0x3539dc(function(_0x3f79ff){_0x3f79ff(_0x4dcdb1);});}return new(_0x3539dc||(_0x3539dc=Promise))(function(_0x1ca005,_0x174121){const _0x4e813e=_0x16a8;function _0x25e04c(_0xeaa1e2){const _0x330faa=_0x16a8;try{_0xb207ee(_0x3f83f9[_0x330faa(0x136)](_0xeaa1e2));}catch(_0x3f6da5){_0x174121(_0x3f6da5);}}function _0x3aa8a3(_0x4b6f87){const _0x42f1c1=_0x16a8;try{_0xb207ee(_0x3f83f9[_0x42f1c1(0x131)](_0x4b6f87));}catch(_0x14d992){_0x174121(_0x14d992);}}function _0xb207ee(_0x5ddf7b){const _0x4f43dd=_0x16a8;_0x5ddf7b[_0x4f43dd(0xee)]?_0x1ca005(_0x5ddf7b[_0x4f43dd(0xce)]):_0x58b7dc(_0x5ddf7b['value'])[_0x4f43dd(0x11c)](_0x25e04c,_0x3aa8a3);}_0xb207ee((_0x3f83f9=_0x3f83f9[_0x4e813e(0x124)](_0x6e1d7e,_0x186ace||[]))['next']());});}typeof SuppressedError===_0x2a9036(0x143)?SuppressedError:function(_0x318cc0,_0x31058e,_0x2f6e7b){const _0x261ef0=_0x2a9036;var _0x422a99=new Error(_0x2f6e7b);return _0x422a99[_0x261ef0(0xd9)]='SuppressedError',_0x422a99[_0x261ef0(0xbb)]=_0x318cc0,_0x422a99['suppressed']=_0x31058e,_0x422a99;};const _0x3a14c5=_0x2a9036(0x147),_0x1cfbe7=_0x2a9036(0x116),_0x442137=_0x2a9036(0x126),_0x1c7c0c=_0x2a9036(0xcb),_0x2bfc71='ns=0;i=34',_0x4808d3=_0x2a9036(0xa2),_0x188270=_0x2a9036(0x15c);var _0x4a37fa;(function(_0x27d88b){const _0x2b1676=_0x2a9036;_0x27d88b[_0x27d88b[_0x2b1676(0xe7)]=0x0]=_0x2b1676(0xe7),_0x27d88b[_0x27d88b[_0x2b1676(0xa5)]=0x1]=_0x2b1676(0xa5),_0x27d88b[_0x27d88b[_0x2b1676(0xac)]=0x2]=_0x2b1676(0xac),_0x27d88b[_0x27d88b['Invalid']=0x3]='Invalid';}(_0x4a37fa||(_0x4a37fa={})));var _0x519629;(function(_0x23fc0b){const _0x398d70=_0x2a9036;_0x23fc0b[_0x23fc0b[_0x398d70(0x10b)]=0x0]=_0x398d70(0x10b),_0x23fc0b[_0x23fc0b[_0x398d70(0x10a)]=0x1]=_0x398d70(0x10a),_0x23fc0b[_0x23fc0b[_0x398d70(0xde)]=0x2]=_0x398d70(0xde),_0x23fc0b[_0x23fc0b[_0x398d70(0xe5)]=0x4]='Method',_0x23fc0b[_0x23fc0b['ObjectType']=0x8]='ObjectType',_0x23fc0b[_0x23fc0b[_0x398d70(0xae)]=0x10]=_0x398d70(0xae),_0x23fc0b[_0x23fc0b[_0x398d70(0x13c)]=0x20]='ReferenceType',_0x23fc0b[_0x23fc0b[_0x398d70(0xa4)]=0x40]='DataType',_0x23fc0b[_0x23fc0b[_0x398d70(0xf0)]=0x80]=_0x398d70(0xf0);}(_0x519629||(_0x519629={})));var _0x17948d;(function(_0x4ffb27){const _0x1fd8dc=_0x2a9036;_0x4ffb27[_0x4ffb27[_0x1fd8dc(0x10a)]=0x1]=_0x1fd8dc(0x10a),_0x4ffb27[_0x4ffb27[_0x1fd8dc(0xde)]=0x2]=_0x1fd8dc(0xde),_0x4ffb27[_0x4ffb27[_0x1fd8dc(0xe5)]=0x4]=_0x1fd8dc(0xe5),_0x4ffb27[_0x4ffb27[_0x1fd8dc(0x13d)]=0x8]='ObjectType',_0x4ffb27[_0x4ffb27[_0x1fd8dc(0xae)]=0x10]='VariableType',_0x4ffb27[_0x4ffb27[_0x1fd8dc(0x13c)]=0x20]='ReferenceType',_0x4ffb27[_0x4ffb27['DataType']=0x40]='DataType',_0x4ffb27[_0x4ffb27['View']=0x80]=_0x1fd8dc(0xf0);}(_0x17948d||(_0x17948d={})));var _0x4a646b;(function(_0x44cdf4){const _0x488802=_0x2a9036;_0x44cdf4[_0x44cdf4[_0x488802(0x13c)]=0x1]=_0x488802(0x13c),_0x44cdf4[_0x44cdf4[_0x488802(0xf6)]=0x2]='IsForward',_0x44cdf4[_0x44cdf4['NodeClass']=0x4]='NodeClass',_0x44cdf4[_0x44cdf4[_0x488802(0x10c)]=0x8]=_0x488802(0x10c),_0x44cdf4[_0x44cdf4[_0x488802(0x12e)]=0x10]=_0x488802(0x12e),_0x44cdf4[_0x44cdf4[_0x488802(0xf4)]=0x20]=_0x488802(0xf4);}(_0x4a646b||(_0x4a646b={})));function _0x4e2761(_0x4ede46){const _0x1de3e9=_0x2a9036;switch(_0x4ede46){case _0x1de3e9(0xb3):return _0x3a14c5;case _0x1de3e9(0xa8):return _0x1c7c0c;case'HasComponent':return _0x442137;case _0x1de3e9(0x146):return _0x2bfc71;case _0x1de3e9(0xb4):return _0x4808d3;case _0x1de3e9(0x135):return _0x188270;}}const _0x3ecef1=_0x246310=>{const _0x441cf8=_0x2a9036;switch(_0x246310[_0x441cf8(0x11a)]){case _0x441cf8(0x10a):if(_0x246310['referenceTypeId']===_0x3a14c5);if(_0x246310[_0x441cf8(0x125)]===_0x1cfbe7||_0x246310[_0x441cf8(0x137)]===_0x441cf8(0xa3))return{'icon':'fa-folder','color':_0x441cf8(0xbc)};return{'icon':_0x441cf8(0xdd),'color':_0x441cf8(0xbd)};case'Variable':if(_0x246310[_0x441cf8(0x137)]===_0x442137)return{'icon':'fa-list-alt','color':'SteelBlue'};else return _0x246310[_0x441cf8(0x137)]===_0x1c7c0c?{'icon':_0x441cf8(0xd8),'color':_0x441cf8(0x13b)}:{'icon':_0x441cf8(0xd8),'color':_0x441cf8(0xcf)};case _0x441cf8(0xe5):return{'icon':_0x441cf8(0xf9),'color':_0x441cf8(0x122)};case _0x441cf8(0x13d):return{'icon':_0x441cf8(0xdd),'color':_0x441cf8(0x101)};case _0x441cf8(0xae):return{'icon':_0x441cf8(0xe8),'color':_0x441cf8(0x101)};case'DataType':return{'icon':_0x441cf8(0x130),'color':_0x441cf8(0xcf)};}return{'icon':_0x441cf8(0xff),'color':_0x441cf8(0xd4)};},_0x5a0ec1=({endpointNode:_0x2c697d,endpoint:_0x5160b7,baseUrl:_0x1398da},_0x122e61,_0x2db5b8)=>_0x149861(void 0x0,void 0x0,void 0x0,function*(){const _0x1cca9a=_0x2a9036,_0x30081d=_0x1398da+_0x1cca9a(0x107),_0x5ec419=_0x30081d+_0x1cca9a(0xc4),_0x3c83fa=Object[_0x1cca9a(0xd6)](Object[_0x1cca9a(0xd6)]({},_0x2db5b8),{'nodeId':_0x122e61,'resultMask':0x3f}),_0x3a0353=yield fetch(_0x5ec419,{'method':_0x1cca9a(0xca),'body':JSON[_0x1cca9a(0xe1)]({'endpointNode':_0x2c697d,'endpoint':_0x5160b7,'browseDescription':_0x3c83fa}),'headers':{'Content-Type':_0x1cca9a(0x10f)}});if(_0x3a0353['status']!==0xc8)return console[_0x1cca9a(0x123)](_0x1cca9a(0xcd),_0x3a0353[_0x1cca9a(0x134)],_0x3a0353[_0x1cca9a(0x115)]),{'references':[]};const _0x13459f=yield _0x3a0353[_0x1cca9a(0xd1)](),_0x1ff51a=_0x13459f[_0x1cca9a(0xa6)][_0x1cca9a(0xf3)]||[];return{'references':_0x1ff51a};}),_0x9ac03e={'referenceTypeId':_0x4e2761('HasChild'),'includeSubtypes':!![],'browseDirection':_0x4a37fa[_0x2a9036(0xe7)],'nodeClassMask':_0x519629[_0x2a9036(0xde)]|_0x519629[_0x2a9036(0x10a)]|_0x519629['Method'],'resultMask':0x3f},_0x5447cd={'referenceTypeId':_0x4e2761('Organizes'),'includeSubtypes':!![],'browseDirection':_0x4a37fa[_0x2a9036(0xe7)],'nodeClassMask':_0x519629[_0x2a9036(0xde)]|_0x519629['Object']|_0x519629['Method'],'resultMask':0x3f},_0x57b321=({endpointNode:_0x45572b,endpoint:_0x91facc,baseUrl:_0x1df5be},{nodeId:_0x4e3b85,rootNodeId:_0xa41a8b,isType:_0x15a302})=>_0x149861(void 0x0,void 0x0,void 0x0,function*(){const _0x5e39b6=_0x2a9036,_0x42cd93=_0x1df5be+'/opcua-endpoint2',_0x1caf08=_0x42cd93+'/walk-backward',_0x38383b=yield fetch(_0x1caf08,{'method':'POST','body':JSON[_0x5e39b6(0xe1)]({'endpointNode':_0x45572b,'endpoint':_0x91facc,'nodeId':_0x4e3b85,'rootNodeId':_0xa41a8b,'isType':_0x15a302}),'headers':{'Content-Type':_0x5e39b6(0x10f)}});if(_0x38383b[_0x5e39b6(0x134)]!==0xc8)return null;const _0x42678c=yield _0x38383b[_0x5e39b6(0xd1)]();return _0x42678c[_0x5e39b6(0xad)];}),_0x5cd037=({endpointNode:_0x2181b7,endpoint:_0x411979,baseUrl:_0x2d7851},_0x2c1765,_0x1a20b1)=>_0x149861(void 0x0,void 0x0,void 0x0,function*(){const _0x517a8c=_0x2a9036,_0x1ce6af=_0x2d7851+_0x517a8c(0x107),_0x4385d4=_0x1ce6af+_0x517a8c(0xe2),_0x769da3=_0x2c1765[_0x517a8c(0xb8)](),_0x1abf27=yield fetch(_0x4385d4,{'method':_0x517a8c(0xca),'body':JSON[_0x517a8c(0xe1)]({'endpointNode':_0x2181b7,'endpoint':_0x411979,'nodeId':_0x769da3}),'headers':{'Content-Type':_0x517a8c(0x10f)}}),_0x1355bf=(_0x13da9c,_0x4e46a6)=>{const _0xcfb956=_0x517a8c;_0x1a20b1[_0xcfb956(0x15b)](_0x13da9c)[_0xcfb956(0xbf)](_0xcfb956(0x11f))[_0xcfb956(0xbf)](_0x4e46a6),_0x1a20b1[_0xcfb956(0x14e)](),setTimeout(()=>{const _0x5a2400=_0xcfb956;_0x1a20b1[_0x5a2400(0xdc)](_0x4e46a6),_0x1a20b1['hide']();},0xbb8);},_0x4ae83c=yield _0x1abf27['json']();_0x1abf27[_0x517a8c(0x134)]!==0xc8?_0x1355bf(_0x517a8c(0xfd)+_0x769da3,_0x517a8c(0x113)):_0x4ae83c[_0x517a8c(0xb9)][_0x517a8c(0x145)](/Good/)?(_0x2c1765[_0x517a8c(0xb8)](_0x4ae83c[_0x517a8c(0xe0)]),_0x2c1765[_0x517a8c(0x139)]('change'),_0x1355bf('Good','ok')):(_0x2c1765['val'](''+_0x769da3),_0x1355bf(_0x4ae83c[_0x517a8c(0xb9)]+'\x20'+_0x1abf27[_0x517a8c(0x115)],_0x517a8c(0x113)));});function _0x406eb3(_0x3bbec6,_0x578faf){return _0x149861(this,void 0x0,void 0x0,function*(){const _0x1ac4b6=_0x16a8,_0x15f78c=_0x3bbec6[_0x1ac4b6(0x11d)](_0x1ac4b6(0xce)),_0x49bd49=yield _0x5a0ec1(_0x578faf,_0x15f78c,_0x9ac03e),_0x221422=yield _0x5a0ec1(_0x578faf,_0x15f78c,_0x5447cd);return{'references':[..._0x49bd49[_0x1ac4b6(0xf3)],..._0x221422['references']]};});}const _0x3fa149={'referenceTypeId':_0x4e2761('HasSubtype'),'includeSubtypes':!![],'browseDirection':_0x4a37fa[_0x2a9036(0xe7)],'nodeClassMask':_0x519629['ReferenceType']|_0x519629[_0x2a9036(0x13d)]|_0x519629[_0x2a9036(0xa4)]|_0x519629[_0x2a9036(0xae)],'resultMask':0x3f};function _0x1d0806(_0x319707,_0x9d55dc){return _0x149861(this,void 0x0,void 0x0,function*(){const _0x121f2d=_0x16a8,_0x4a5066=_0x319707[_0x121f2d(0x11d)](_0x121f2d(0xce)),_0x13fcea=yield _0x5a0ec1(_0x9d55dc,_0x4a5066,_0x3fa149);return _0x13fcea;});}const _0x46fd06=_0xb39902=>{const _0x45e3a4=_0x2a9036;var _0x46cc58,_0x5ae06f,_0x32d0b6,_0x3a5ef2;if(!_0xb39902||!_0xb39902[_0x45e3a4(0xc1)]){const _0x52a66b=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x52a66b;}const _0x4dca65=_0xb39902[_0x45e3a4(0xc1)][_0x45e3a4(0xeb)](),_0x23a3ed=((_0x46cc58=_0xb39902[_0x45e3a4(0x141)])===null||_0x46cc58===void 0x0?void 0x0:_0x46cc58[_0x45e3a4(0x15b)])||((_0x5ae06f=_0xb39902[_0x45e3a4(0x110)])===null||_0x5ae06f===void 0x0?void 0x0:_0x5ae06f['name'])||_0xb39902[_0x45e3a4(0xc1)][_0x45e3a4(0xeb)](),{icon:_0x3e8e65,color:_0x32a9b4}=_0x3ecef1(_0xb39902),_0xcce73a='('+_0xb39902['nodeId'][_0x45e3a4(0xeb)]()+')\x20'+(((_0x32d0b6=_0xb39902[_0x45e3a4(0x110)])===null||_0x32d0b6===void 0x0?void 0x0:_0x32d0b6[_0x45e3a4(0xd9)])||((_0x3a5ef2=_0xb39902[_0x45e3a4(0x141)])===null||_0x3a5ef2===void 0x0?void 0x0:_0x3a5ef2['text'])||''),_0x7034a2=$(_0x45e3a4(0x14a)+_0xb39902['nodeId'][_0x45e3a4(0xeb)]()+'\x22}><span\x20class=\x22tree-text\x22\x20title='+_0xcce73a+'><i\x20class=\x22fa\x20'+_0x3e8e65+_0x45e3a4(0xe3)+_0x32a9b4+_0x45e3a4(0xda)+_0x23a3ed+_0x45e3a4(0xa9));return _0x7034a2[_0x45e3a4(0xbf)]('expandable'),_0x7034a2[_0x45e3a4(0x11d)](_0x45e3a4(0xce),_0x4dca65),_0x7034a2[_0x45e3a4(0x11d)](_0x45e3a4(0x112),_0xb39902),_0x7034a2;},_0x43fd0d=(_0x159e27,_0x29cb03)=>{const _0x478881=_0x2a9036;return _0x29cb03[_0x478881(0x105)](_0x478881(0xfa)+_0x159e27+'\x22]');},_0x1dfab6=(_0xa39b01,_0x1ed08e)=>{const _0x536f0f=_0x2a9036;_0xa39b01[_0x536f0f(0xfc)][_0x536f0f(0x105)]('li\x20>\x20.tree-text')['removeClass'](_0x536f0f(0x13e)),_0x1ed08e[_0x536f0f(0x105)](_0x536f0f(0x132))[_0x536f0f(0xbf)](_0x536f0f(0x13e));},_0xde05eb=(_0x59771b,_0x2be44a,_0x22c4b6)=>_0x149861(void 0x0,void 0x0,void 0x0,function*(){const _0x3a71cb=_0x2a9036;let _0x1d2476=_0x22c4b6['children'](':first');_0x2be44a[_0x3a71cb(0xc8)][_0x3a71cb(0x10d)]||[];const _0x1c78a2=_0x2be44a[_0x3a71cb(0xc5)]||[];if(_0x1c78a2[_0x3a71cb(0xd2)]===0x0)return;for(const _0x22a11a of _0x1c78a2){_0x1d2476[_0x3a71cb(0x118)](_0x3a71cb(0xb5))&&(yield _0x9accd9(_0x59771b,_0x1d2476));const _0x3c6565=_0x43fd0d(_0x22a11a,_0x1d2476);if(_0x3c6565[_0x3a71cb(0xd2)]===0x0)return;_0x1d2476=_0x3c6565;}_0x1dfab6(_0x59771b,_0x1d2476),_0xd626fc(_0x59771b[_0x3a71cb(0xed)],_0x1d2476);});function _0xd626fc(_0x409d9,_0x3255a2){const _0x23cbd1=_0x2a9036,_0x4caffe=_0x3255a2[_0x23cbd1(0x12b)]()[_0x23cbd1(0x117)],_0x497728=_0x409d9[_0x23cbd1(0xef)]();if(_0x497728==undefined)return;const _0x5896ee=_0x497728+_0x4caffe-_0x409d9[_0x23cbd1(0x13f)]()/0x2+_0x3255a2[_0x23cbd1(0x13f)]()/0x2;_0x409d9[_0x23cbd1(0x149)]({'scrollTop':_0x5896ee},0x1f4);}const _0x5cffb4=(_0x3d9b87,_0x13d49f)=>_0x149861(void 0x0,void 0x0,void 0x0,function*(){const _0x4d8266=_0x2a9036,_0x4e7c55=_0x3d9b87['$input'][_0x4d8266(0xb8)](),_0xc473de={'nodeId':_0x4e7c55,'rootNodeId':_0x13d49f[_0x4d8266(0xc1)],'isType':_0x3d9b87[_0x4d8266(0xab)][_0x4d8266(0x106)]||![]},_0xece79d=_0x597a2e(_0x3d9b87),_0x4546ab=yield _0x57b321(_0xece79d,_0xc473de);if(!_0x4546ab)return;yield _0xde05eb(_0x3d9b87,_0x4546ab,_0x3d9b87[_0x4d8266(0xfc)]);});function _0x5d7e96(_0xdb023b,_0x101b0b,_0x268475,_0x135a35){return _0x149861(this,void 0x0,void 0x0,function*(){const _0x4671b7=_0x16a8;if(_0x101b0b[_0x4671b7(0x118)](_0x4671b7(0x121))){console[_0x4671b7(0x123)]('already\x20fetched');return;}if(_0x101b0b[_0x4671b7(0x118)]('loading')){console[_0x4671b7(0x123)]('already\x20loading');return;}_0x101b0b[_0x4671b7(0xbf)](_0x4671b7(0x156)),_0x101b0b[_0x4671b7(0xf7)](_0x4671b7(0xaf));try{_0x101b0b[_0x4671b7(0x11e)]('ul')[_0x4671b7(0xd5)]();const {references:_0x585589}=yield _0x268475(_0x101b0b,_0x135a35);for(const _0x2bdb46 of _0x585589){if(_0xdb023b[_0x4671b7(0xab)][_0x4671b7(0x114)]&&!_0xdb023b[_0x4671b7(0xab)][_0x4671b7(0x114)](_0x2bdb46))continue;const _0x54ce42=_0x46fd06(_0x2bdb46);_0x101b0b[_0x4671b7(0x11e)]('ul')[_0x4671b7(0xf7)](_0x54ce42);}_0x101b0b[_0x4671b7(0xbf)](_0x4671b7(0x121));}catch(_0x6fc21f){_0x101b0b[_0x4671b7(0x11e)]('ul')['append'](_0x4671b7(0x10e)+_0x6fc21f[_0x4671b7(0xbe)]+'</li>'),console[_0x4671b7(0x123)](_0x4671b7(0x14b),_0x6fc21f);}_0x101b0b[_0x4671b7(0x105)](_0x4671b7(0x144))[_0x4671b7(0x142)](),_0x101b0b[_0x4671b7(0xdc)]('loading');});}function _0x597a2e(_0x3c518e){const _0x45bb68=_0x2a9036,_0x72fce4={'baseUrl':_0x3c518e[_0x45bb68(0xab)][_0x45bb68(0x15f)],'endpointNode':typeof _0x3c518e['options'][_0x45bb68(0x13a)]===_0x45bb68(0x143)?_0x3c518e[_0x45bb68(0xab)][_0x45bb68(0x13a)]():_0x3c518e[_0x45bb68(0xab)][_0x45bb68(0x13a)],'endpoint':typeof _0x3c518e[_0x45bb68(0xab)][_0x45bb68(0xb1)]===_0x45bb68(0x143)?_0x3c518e[_0x45bb68(0xab)][_0x45bb68(0xb1)]():_0x3c518e[_0x45bb68(0xab)]['endpoint']};return _0x72fce4;}function _0x9accd9(_0x4de525,_0x57a923){return _0x149861(this,void 0x0,void 0x0,function*(){const _0x21c9a9=_0x16a8;if(_0x57a923['hasClass'](_0x21c9a9(0x121))){_0x57a923[_0x21c9a9(0xdc)](_0x21c9a9(0xb5))[_0x21c9a9(0xbf)](_0x21c9a9(0xa1)),_0x57a923[_0x21c9a9(0x11e)]('ul')[_0x21c9a9(0xba)]();return;}const _0x1dbd8a=_0x597a2e(_0x4de525),_0x21685d=!_0x4de525[_0x21c9a9(0xab)][_0x21c9a9(0x106)]?_0x406eb3:_0x1d0806;try{yield _0x5d7e96(_0x4de525,_0x57a923,_0x21685d,_0x1dbd8a),_0x57a923[_0x21c9a9(0xdc)](_0x21c9a9(0xb5))[_0x21c9a9(0xbf)]('expanded');}catch(_0x35082e){_0x57a923[_0x21c9a9(0xdc)](_0x21c9a9(0xb5))['addClass'](_0x21c9a9(0xa1)),console['log']('error',_0x35082e);}});}const _0x4dd842=()=>{const _0x30c85a=_0x2a9036;$[_0x30c85a(0x159)]('sterfive.nodeBrowser',{'options':{'endpointNode':()=>({'endpoint':_0x30c85a(0xea)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x30c85a(0xb6)},'nodeClass':_0x30c85a(0x10a),'nodeId':_0x30c85a(0x14d),'displayName':{'text':'Objects'},'typeDefinition':_0x1cfbe7}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x149861(this,void 0x0,void 0x0,function*(){const _0x43665c=_0x16a8,_0x38fe13=this;if(!_0x38fe13[_0x43665c(0x12f)]){const _0x201c45=typeof _0x38fe13[_0x43665c(0xab)][_0x43665c(0x15e)]==='function'?_0x38fe13['options'][_0x43665c(0x15e)][_0x43665c(0x11b)](_0x38fe13):_0x38fe13[_0x43665c(0xab)][_0x43665c(0x15e)];if(_0x201c45 instanceof Promise){const _0x3b366d=yield _0x201c45;_0x38fe13[_0x43665c(0x12f)]=_0x3b366d;}else _0x38fe13['__parentNode']=_0x201c45;}return _0x38fe13[_0x43665c(0x12f)];});},'reset'(){return _0x149861(this,void 0x0,void 0x0,function*(){const _0x1a6f00=_0x16a8,_0xbdc157=this,_0x18d436=_0xbdc157;_0x18d436[_0x1a6f00(0x12f)]=undefined,_0xbdc157['$tree']['empty']();const _0x2fa2c6=yield this['resolveParentNode'](),_0x34a622=_0x46fd06(_0x2fa2c6);_0xbdc157[_0x1a6f00(0xfc)][_0x1a6f00(0xf7)](_0x34a622),_0xbdc157[_0x1a6f00(0xf1)]=_0x2fa2c6;});},'verify'(){const _0x301063=_0x30c85a,_0x14dcb4=this,_0x31c720=_0x597a2e(_0x14dcb4);_0x5cd037(_0x31c720,_0x14dcb4[_0x301063(0x154)],_0x14dcb4[_0x301063(0x108)]);},'_create'(){const _0x144523=_0x30c85a,_0x39ef51=this;_0x39ef51[_0x144523(0x154)]=this[_0x144523(0xf5)],_0x39ef51[_0x144523(0xb7)]=$(_0x144523(0x100)),_0x39ef51[_0x144523(0xb7)][_0x144523(0xbf)](_0x144523(0x14c)),this['element'][_0x144523(0xc3)](_0x39ef51[_0x144523(0xb7)]),_0x39ef51[_0x144523(0x133)]=$(_0x144523(0x100))[_0x144523(0xbf)](_0x144523(0xdb)),_0x39ef51[_0x144523(0xb7)][_0x144523(0xf7)](_0x39ef51[_0x144523(0x133)]),_0x39ef51[_0x144523(0x133)][_0x144523(0xf7)](_0x39ef51[_0x144523(0x154)]),_0x39ef51[_0x144523(0x129)]=$(_0x144523(0xc6)),_0x39ef51[_0x144523(0x133)][_0x144523(0xf7)](_0x39ef51[_0x144523(0x129)]),_0x39ef51[_0x144523(0x129)]['on'](_0x144523(0x120),function(){var _0x4ae994;return _0x149861(this,void 0x0,void 0x0,function*(){const _0x1b39bb=_0x16a8;let _0x5380a4=![],_0x1e123b;!_0x39ef51[_0x1b39bb(0xed)]['is'](_0x1b39bb(0x138))&&(_0x39ef51['$info'][_0x1b39bb(0x151)](),_0x1e123b=yield _0x39ef51[_0x1b39bb(0xf2)](),(_0x1e123b!==_0x39ef51[_0x1b39bb(0xf1)]||((_0x4ae994=_0x39ef51[_0x1b39bb(0xf1)])===null||_0x4ae994===void 0x0?void 0x0:_0x4ae994[_0x1b39bb(0xc1)])!==_0x1e123b[_0x1b39bb(0xc1)])&&(yield _0x39ef51[_0x1b39bb(0x153)]()),_0x5380a4=!![]),_0x39ef51[_0x1b39bb(0xed)][_0x1b39bb(0xba)](),_0x5380a4&&(yield _0x5cffb4(_0x39ef51,_0x1e123b));});}),_0x39ef51[_0x144523(0x119)]=$('<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>'),_0x39ef51[_0x144523(0x133)][_0x144523(0xf7)](_0x39ef51[_0x144523(0x119)]),_0x39ef51['$verifyBtn']['on'](_0x144523(0x120),()=>{const _0x313356=_0x144523;this[_0x313356(0x140)]();});!_0x39ef51[_0x144523(0x154)][_0x144523(0x12c)](_0x144523(0x155))&&_0x39ef51[_0x144523(0x154)][_0x144523(0x12c)](_0x144523(0x155),_0x144523(0xfb));_0x39ef51[_0x144523(0x108)]=$(_0x144523(0x102)),_0x39ef51['$info'][_0x144523(0x151)](),_0x39ef51[_0x144523(0xed)]=$('<div/>')['addClass'](_0x144523(0x127))[_0x144523(0x151)](),_0x39ef51['$combo'][_0x144523(0xf7)](_0x39ef51[_0x144523(0x108)]),_0x39ef51[_0x144523(0xb7)]['append'](_0x39ef51[_0x144523(0xed)]),_0x39ef51[_0x144523(0xfc)]=$(_0x144523(0xec))['appendTo'](_0x39ef51[_0x144523(0xed)]),this[_0x144523(0x153)]();const _0x15a4ca=(_0x103f82,_0x3c19b4)=>{const _0x1166c4=_0x144523,_0x4ee5d9=0x14,_0x4dd1a1=0x14,_0x2a9e06=_0x103f82[_0x1166c4(0x103)](),_0x3f29d0=_0x3c19b4;if(_0x3f29d0['pageX']>=_0x2a9e06['left']&&_0x3f29d0[_0x1166c4(0x160)]<=_0x2a9e06[_0x1166c4(0x158)]+_0x4ee5d9&&_0x3f29d0['pageY']>=_0x2a9e06['top']&&_0x3f29d0[_0x1166c4(0x12a)]<=_0x2a9e06[_0x1166c4(0x117)]+_0x4dd1a1)return!![];return![];},_0x3ad0ce=_0x3b3f83=>_0x149861(this,void 0x0,void 0x0,function*(){const _0x3953ff=_0x144523;if(_0x3b3f83['hasClass']('expandable'))_0x9accd9(_0x39ef51,_0x3b3f83);else{if(_0x3b3f83[_0x3953ff(0x118)]('expanded'))_0x3b3f83[_0x3953ff(0x11e)]('ul')[_0x3953ff(0xba)](),_0x3b3f83['toggleClass'](_0x3953ff(0x15d));else{if(_0x3b3f83[_0x3953ff(0x11e)]('ul')[_0x3953ff(0x11e)]()[_0x3953ff(0xd2)]>0x0)_0x3b3f83[_0x3953ff(0x11e)]('ul')[_0x3953ff(0xba)](),_0x3b3f83[_0x3953ff(0x15a)](_0x3953ff(0x15d));else;}}});_0x39ef51[_0x144523(0xfc)]['on'](_0x144523(0xc7),'li',function(_0x273157){const _0x511ee5=_0x144523;var _0x21c42e,_0x498cf8;_0x273157[_0x511ee5(0x150)]();let _0x5909fc=$(this);if(_0x15a4ca(_0x5909fc,_0x273157))_0x3ad0ce(_0x5909fc);else{const _0x4401cc=_0x5909fc[_0x511ee5(0x11d)]('value'),_0x5dec4b=_0x5909fc[_0x511ee5(0x11d)](_0x511ee5(0x112));if(_0x39ef51[_0x511ee5(0xab)][_0x511ee5(0x109)]&&!_0x39ef51[_0x511ee5(0xab)][_0x511ee5(0x109)](_0x5dec4b))return;_0x39ef51[_0x511ee5(0x154)]['data']('reference',_0x5dec4b);const _0x327537=((_0x21c42e=_0x5dec4b[_0x511ee5(0x141)])===null||_0x21c42e===void 0x0?void 0x0:_0x21c42e[_0x511ee5(0x15b)])||((_0x498cf8=_0x5dec4b[_0x511ee5(0x110)])===null||_0x498cf8===void 0x0?void 0x0:_0x498cf8['name'])||_0x5dec4b['nodeId'][_0x511ee5(0xeb)](),_0x52562f='['+_0x327537+']('+_0x4401cc+')';_0x39ef51[_0x511ee5(0x154)][_0x511ee5(0xb8)](_0x52562f),_0x39ef51[_0x511ee5(0x154)][_0x511ee5(0x139)](_0x511ee5(0x128)),_0x39ef51[_0x511ee5(0xed)]['hide']();}}),_0x39ef51[_0x144523(0xfc)]['on'](_0x144523(0x120),'li',function(_0x2eebef){const _0x1c9088=_0x144523;_0x2eebef[_0x1c9088(0x150)]();let _0x504714=$(this);_0x15a4ca(_0x504714,_0x2eebef)&&_0x3ad0ce(_0x504714),_0x1dfab6(_0x39ef51,_0x504714);}),$(document)['on'](_0x144523(0x120),function(_0x110331){const _0x1a8779=_0x144523;!$(_0x110331['target'])['closest'](_0x39ef51['$combo'])['length']&&_0x39ef51[_0x1a8779(0xed)][_0x1a8779(0x151)]();});}});},_0x1e884e=()=>{const _0x260726=_0x2a9036,_0x1df3ed=$('#node-input-endpoint'),_0x3b8f56=_0x1df3ed['val'](),_0x5f3602=RED[_0x260726(0xd0)][_0x260726(0xe4)](_0x3b8f56);if(!_0x5f3602)return undefined;const {endpoint:_0x232f2e,securityMode:_0x78adad,securityPolicy:_0x47d74d,userIdentityType:_0x3fbb39,credentials:_0x4ac44b}=_0x5f3602,_0x14ea63={'endpoint':_0x232f2e,'securityMode':_0x78adad,'securityPolicy':_0x47d74d,'userIdentityType':_0x3fbb39,'credentials':_0x4ac44b};return _0x14ea63;},_0x76facc=()=>{return{'endpointNode':_0x306f54};},_0x306f54=()=>{const _0x5ea6ed=_0x2a9036,_0x580fef=$('#node-input-endpoint'),_0x55c47a=_0x580fef[_0x5ea6ed(0xb8)](),_0x47d050=_0x1e884e();if(!_0x47d050)return undefined;return{'id':_0x55c47a};};RED['nodes']['registerType'](_0x2a9036(0xe9),{'category':_0x2a9036(0x104),'color':_0x2a9036(0xa7),'align':_0x2a9036(0x12d),'icon':_0x2a9036(0xb0),'paletteLabel':'read','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x2a9036(0xc9)},'attributeId':{'value':'Value','required':!![]},'nodeId':{'value':'','required':![]},'outputType':{'value':_0x2a9036(0xdf),'required':!![]}},'outputs':0x2,'label'(){const _0x3a9410=_0x2a9036;return this['name']||_0x3a9410(0x148);},'labelStyle'(){const _0x336689=_0x2a9036;return this[_0x336689(0xd9)]?_0x336689(0xc0):'';},'oneditprepare'(){const _0x1b00e5=_0x2a9036,_0x58733e=this;_0x4dd842(),_0x58733e[_0x1b00e5(0xd7)]=0x1;const _0x1d060e=$(_0x1b00e5(0xe6));_0x1d060e['nodeBrowser'](Object[_0x1b00e5(0xd6)](Object[_0x1b00e5(0xd6)]({},_0x76facc()),{'isSelectable'(_0x246e56){const _0x19dcaf=_0x1b00e5;return _0x246e56[_0x19dcaf(0x11a)]===_0x19dcaf(0xde);}}));},'oneditsave'(){}});}()));function _0x16a8(_0x486f7e,_0x506700){const _0x13871e=_0x1387();return _0x16a8=function(_0x16a86a,_0x58e684){_0x16a86a=_0x16a86a-0xa1;let _0x873b27=_0x13871e[_0x16a86a];return _0x873b27;},_0x16a8(_0x486f7e,_0x506700);}function _0x1387(){const _0x5116e9=['expandable\x20expanded','parentNode','baseUrl','pageX','expanded','ns=0;i=45','i=61','DataType','Inverse','browseResult','#C0DEED','HasProperty','</span><ul></ul></li>','22939488HcTlgS','options','Both','browsePath','VariableType','<div\x20class=\x22spinner\x22></div>','../../icons/opcuanodeLogo.png','endpoint','9257394LeIMvw','Organizes','HasSubtype','expandable','Objects','$combo','val','statusCode','toggle','error','rgba(61,\x2060,\x204,\x200.525)','SeaGreen','message','addClass','node_label_italic','nodeId','7RYpHGT','replaceWith','/browse','nodeIds','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','dblclick','relativePath','OpcUa-Endpoint2','POST','ns=0;i=46','929tjJNeU','fetching\x20failed\x20with\x20error','value','CadetBlue','nodes','json','length','84785paNtPJ','grey','empty','assign','inputs','fa-list-alt','name',';\x22></i>\x20','input-group','removeClass','fa-object-group','Variable','Value','nodeAddressString','stringify','/checkNodeId','\x22\x20style=\x22color:','node','Method','#node-input-nodeId','Forward','fa-sliders','OpcUa-Client2-Read','opc.tcp://opcuademo.sterfive.com:26543','toString','<ul\x20class=\x22sterfive-tree\x22></ul>','$dropdown','done','scrollTop','View','currentParent','resolveParentNode','references','TypeDefinition','element','IsForward','append','6090hQZcLe','fa-cog','li[key=\x22','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','$tree','!!failure!!','3eyNvXk','fa-question','<div/>','DarkOrange','<div\x20class=\x22info-text\x22></div>','offset','opcua','find','isTypeRef','/opcua-endpoint2','$info','isSelectable','Object','Unspecified','BrowseName','elements','<li>error\x20','application/json','browseName','2446GhXQSb','reference','failure','filter','statusText','ns=0;i=61','top','hasClass','$verifyBtn','nodeClass','call','then','data','children','sterfive-info','click','fetched','SandyBrown','log','apply','typeDefinition','ns=0;i=47','sterfive-dropdown','change','$toggleTreeBtn','pageY','position','attr','right','DisplayName','__parentNode','fa-text-width','throw','.tree-text:first','$inputGroup','status','HasTypeDefinition','next','referenceTypeId',':visible','trigger','endpointNode','DodgerBlue','ReferenceType','ObjectType','selected','height','verify','displayName','remove','function','.spinner','match','HasChild','ns=0;i=35','OPCUA\x20Client\x20Read','animate','<li\x20key=\x22','err','sterfive-combo-box','ns=0;i=85','show','930184sbKCQW','stopPropagation','hide','20475LtcVUs','reset','$input','placeholder','loading','6123564niKQkF','left','widget','toggleClass','text','ns=0;i=40'];_0x1387=function(){return _0x5116e9;};return _0x1387();}
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgxNDk4NjEiLCJfMHg2ZTFkN2UiLCJfMHgxODZhY2UiLCJfMHgzNTM5ZGMiLCJfMHgzZjgzZjkiLCJfMHg1OGI3ZGMiLCJfMHg0ZGNkYjEiLCJfMHgzZjc5ZmYiLCJQcm9taXNlIiwiXzB4MWNhMDA1IiwiXzB4MTc0MTIxIiwiXzB4MjVlMDRjIiwiXzB4ZWFhMWUyIiwiXzB4YjIwN2VlIiwiXzB4M2Y2ZGE1IiwiXzB4M2FhOGEzIiwiXzB4NGI2Zjg3IiwiXzB4MTRkOTkyIiwiXzB4NWRkZjdiIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MzE4Y2MwIiwiXzB4MzEwNThlIiwiXzB4MmY2ZTdiIiwiXzB4NDIyYTk5IiwiRXJyb3IiLCJfMHgzYTE0YzUiLCJfMHgxY2ZiZTciLCJfMHg0NDIxMzciLCJfMHgxYzdjMGMiLCJfMHgyYmZjNzEiLCJfMHg0ODA4ZDMiLCJfMHgxODgyNzAiLCJfMHg0YTM3ZmEiLCJfMHgyN2Q4OGIiLCJfMHg1MTk2MjkiLCJfMHgyM2ZjMGIiLCJfMHgxNzk0OGQiLCJfMHg0ZmZiMjciLCJfMHg0YTY0NmIiLCJfMHg0NGNkZjQiLCJfMHg0ZTI3NjEiLCJfMHg0ZWRlNDYiLCJfMHgzZWNlZjEiLCJfMHgyNDYzMTAiLCJfMHg1YTBlYzEiLCJlbmRwb2ludE5vZGUiLCJfMHgyYzY5N2QiLCJlbmRwb2ludCIsIl8weDUxNjBiNyIsImJhc2VVcmwiLCJfMHgxMzk4ZGEiLCJfMHgxMjJlNjEiLCJfMHgyZGI1YjgiLCJfMHgzMDA4MWQiLCJfMHg1ZWM0MTkiLCJfMHgzYzgzZmEiLCJPYmplY3QiLCJfMHgzYTAzNTMiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4MTM0NTlmIiwiXzB4MWZmNTFhIiwiXzB4OWFjMDNlIiwiXzB4NTQ0N2NkIiwiXzB4NTdiMzIxIiwiXzB4NDU1NzJiIiwiXzB4OTFmYWNjIiwiXzB4MWRmNWJlIiwibm9kZUlkIiwiXzB4NGUzYjg1Iiwicm9vdE5vZGVJZCIsIl8weGE0MWE4YiIsImlzVHlwZSIsIl8weDE1YTMwMiIsIl8weDQyY2Q5MyIsIl8weDFjYWYwOCIsIl8weDM4MzgzYiIsIl8weDQyNjc4YyIsIl8weDVjZDAzNyIsIl8weDIxODFiNyIsIl8weDQxMTk3OSIsIl8weDJkNzg1MSIsIl8weDJjMTc2NSIsIl8weDFhMjBiMSIsIl8weDFjZTZhZiIsIl8weDQzODVkNCIsIl8weDc2OWRhMyIsIl8weDFhYmYyNyIsIl8weDEzNTViZiIsIl8weDEzZGE5YyIsIl8weDRlNDZhNiIsInNldFRpbWVvdXQiLCJfMHg0YWU4M2MiLCJfMHg0MDZlYjMiLCJfMHgzYmJlYzYiLCJfMHg1NzhmYWYiLCJfMHgxNWY3OGMiLCJfMHg0OWJkNDkiLCJfMHgyMjE0MjIiLCJfMHgzZmExNDkiLCJfMHgxZDA4MDYiLCJfMHgzMTk3MDciLCJfMHg5ZDU1ZGMiLCJfMHg0YTUwNjYiLCJfMHgxM2ZjZWEiLCJfMHg0NmZkMDYiLCJfMHhiMzk5MDIiLCJfMHg0NmNjNTgiLCJfMHg1YWUwNmYiLCJfMHgzMmQwYjYiLCJfMHgzYTVlZjIiLCJfMHg1MmE2NmIiLCIkIiwiXzB4NGRjYTY1IiwiXzB4MjNhM2VkIiwiaWNvbiIsIl8weDNlOGU2NSIsImNvbG9yIiwiXzB4MzJhOWI0IiwiXzB4Y2NlNzNhIiwiXzB4NzAzNGEyIiwiXzB4NDNmZDBkIiwiXzB4MTU5ZTI3IiwiXzB4MjljYjAzIiwiXzB4MWRmYWI2IiwiXzB4YTM5YjAxIiwiXzB4MWVkMDhlIiwiXzB4ZGUwNWViIiwiXzB4NTk3NzFiIiwiXzB4MmJlNDRhIiwiXzB4MjJjNGI2IiwiXzB4MWQyNDc2IiwiXzB4MWM3OGEyIiwiXzB4MjJhMTFhIiwiXzB4OWFjY2Q5IiwiXzB4M2M2NTY1IiwiXzB4ZDYyNmZjIiwiXzB4NDA5ZDkiLCJfMHgzMjU1YTIiLCJfMHg0Y2FmZmUiLCJfMHg0OTc3MjgiLCJ1bmRlZmluZWQiLCJfMHg1ODk2ZWUiLCJfMHg1Y2ZmYjQiLCJfMHgzZDliODciLCJfMHgxM2Q0OWYiLCJfMHg0ZTdjNTUiLCJfMHhjNDczZGUiLCJfMHhlY2U3OWQiLCJfMHg1OTdhMmUiLCJfMHg0NTQ2YWIiLCJfMHg1ZDdlOTYiLCJfMHhkYjAyM2IiLCJfMHgxMDFiMGIiLCJfMHgyNjg0NzUiLCJfMHgxMzVhMzUiLCJyZWZlcmVuY2VzIiwiXzB4NTg1NTg5IiwiXzB4MmJkYjQ2IiwiXzB4NTRjZTQyIiwiXzB4NmZjMjFmIiwiXzB4M2M1MThlIiwiXzB4NzJmY2U0IiwiXzB4NGRlNTI1IiwiXzB4NTdhOTIzIiwiXzB4MWRiZDhhIiwiXzB4MjE2ODVkIiwiXzB4MzUwODJlIiwiXzB4NGRkODQyIiwiXzB4MzhmZTEzIiwiXzB4MjAxYzQ1IiwiXzB4M2IzNjZkIiwiXzB4YmRjMTU3IiwiXzB4MThkNDM2IiwiXzB4MmZhMmM2IiwiXzB4MzRhNjIyIiwiXzB4MTRkY2I0IiwiXzB4MzFjNzIwIiwiXzB4MzllZjUxIiwiXzB4NGFlOTk0IiwiXzB4NTM4MGE0IiwiXzB4MWUxMjNiIiwiXzB4MTVhNGNhIiwiXzB4MTAzZjgyIiwiXzB4M2MxOWI0IiwiXzB4NGVlNWQ5IiwiXzB4NGRkMWExIiwiXzB4MmE5ZTA2IiwiXzB4M2YyOWQwIiwiXzB4M2FkMGNlIiwiXzB4M2IzZjgzIiwiXzB4MjczMTU3IiwiXzB4MjFjNDJlIiwiXzB4NDk4Y2Y4IiwiXzB4NTkwOWZjIiwiXzB4NDQwMWNjIiwiXzB4NWRlYzRiIiwiXzB4MzI3NTM3IiwiXzB4NTI1NjJmIiwiXzB4MmVlYmVmIiwiXzB4NTA0NzE0IiwiZG9jdW1lbnQiLCJfMHgxMTAzMzEiLCJfMHgxZTg4NGUiLCJfMHgxZGYzZWQiLCJfMHgzYjhmNTYiLCJfMHg1ZjM2MDIiLCJSRUQiLCJfMHgyMzJmMmUiLCJzZWN1cml0eU1vZGUiLCJfMHg3OGFkYWQiLCJzZWN1cml0eVBvbGljeSIsIl8weDQ3ZDc0ZCIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHgzZmJiMzkiLCJjcmVkZW50aWFscyIsIl8weDRhYzQ0YiIsIl8weDE0ZWE2MyIsIl8weDc2ZmFjYyIsIl8weDMwNmY1NCIsIl8weDU4MGZlZiIsIl8weDU1YzQ3YSIsIl8w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LENBQVVoSCxDQUFBLEMsZUFBQSxDQUFoQixDQUNBZ0gsU0FBQSxDLGFBQUEsRUFBb0J6SyxNQUFBLEMsZUFBQSxFQUFjQSxNQUFBLEMsZUFBQSxFQUFjLEVBQWQsQ0FBa0JtSyxTQUFBLEVBQWxCLENBQWQsQ0FBaUUsQyxjQUFFLENBQWFPLFNBQWIsQyxrQ0FDeEVBLFNBQUEsQyxnQkFBQSxJLGlCQURzRSxDQUFqRSxDQUFwQixDLEVBOUJxQyxDLFlBa0N6QyxFLEVBbEN5QyxDQUE3QyxDLEVBeG1CSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJEYXRhVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtdGV4dC13aWR0aFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJicm93c2UgZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB3YWxrQmFja3dhcmQgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIHsgbm9kZUlkLCByb290Tm9kZUlkLCBpc1R5cGUgfSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS93YWxrLWJhY2t3YXJkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgICAgIHJvb3ROb2RlSWQsXG4gICAgICAgICAgICAgICAgaXNUeXBlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiBqc29uLmJyb3dzZVBhdGg7XG4gICAgfSk7XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sICRpbnB1dEVsZW1lbnQsICRpbmZvKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGlmICghcmVmZXJlbmNlIHx8ICFyZWZlcmVuY2Uubm9kZUlkKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IGAoJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9KSAkeygoX2MgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm5hbWUpIHx8ICgoX2QgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC50ZXh0KSB8fCBcIlwifWA7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpIGtleT1cIiR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfVwifT48c3BhbiBjbGFzcz1cInRyZWUtdGV4dFwiIHRpdGxlPSR7dGl0bGV9PjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PC9zcGFuPjx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGZpbmRFbGVtZW50ID0gKG5vZGVJZCwgJHRyZWUpID0+IHtcbiAgICAgICAgcmV0dXJuICR0cmVlLmZpbmQoYGxpW2tleT1cIiR7bm9kZUlkfVwiXWApO1xuICAgIH07XG4gICAgY29uc3Qgc2VsZWN0U2luZ2xlID0gKHRoYXQsICRsaSkgPT4ge1xuICAgICAgICB0aGF0LiR0cmVlLmZpbmQoXCJsaSA+IC50cmVlLXRleHRcIikucmVtb3ZlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgLy8gY2xlYXIgYWxsIHNlbGVjdGVkIGl0ZW1zXG4gICAgICAgICRsaS5maW5kKFwiLnRyZWUtdGV4dDpmaXJzdFwiKS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgIH07XG4gICAgY29uc3QgYXV0b0V4cGFuZCA9ICh0aGF0LCBicm93c2VQYXRoLCAkdHJlZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIGV4cGFuZCB0aGUgdHJlZSB0byBzaG93IHRoZSBub2RlSWRcbiAgICAgICAgbGV0ICRjdXJyZW50ID0gJHRyZWUuY2hpbGRyZW4oXCI6Zmlyc3RcIik7XG4gICAgICAgIGJyb3dzZVBhdGgucmVsYXRpdmVQYXRoLmVsZW1lbnRzIHx8IFtdO1xuICAgICAgICBjb25zdCBub2RlSWRzID0gYnJvd3NlUGF0aC5ub2RlSWRzIHx8IFtdO1xuICAgICAgICBpZiAobm9kZUlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG4gb2Ygbm9kZUlkcykge1xuICAgICAgICAgICAgaWYgKCRjdXJyZW50Lmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gZXhwYW5kIGFuZCBzZWxlY3QgdGhlIHJpZ2h0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICB5aWVsZCBfZXhwYW5kTGkodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBmaW5kRWxlbWVudChuLCAkY3VycmVudCk7XG4gICAgICAgICAgICBpZiAoJGVsZW1lbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGN1cnJlbnQgPSAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICBzY3JvbGxUb0xpKHRoYXQuJGRyb3Bkb3duLCAkY3VycmVudCk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gc2Nyb2xsVG9MaSgkY29udGFpbmVyLCAkdGFyZ2V0TGkpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFyZ2V0IGl0ZW0gcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBsaVBvcyA9ICR0YXJnZXRMaS5wb3NpdGlvbigpLnRvcDtcbiAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclNjcm9sbFRvcCA9ICRjb250YWluZXIuc2Nyb2xsVG9wKCk7XG4gICAgICAgIGlmIChjb250YWluZXJTY3JvbGxUb3AgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiB0byBzY3JvbGwgdG8gKGN1cnJlbnQgc2Nyb2xsICsgaXRlbSdzIHBvc2l0aW9uKVxuICAgICAgICAvLyBBZGp1c3QgdGhpcyBjYWxjdWxhdGlvbiBiYXNlZCBvbiB5b3VyIG5lZWRzXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvID0gY29udGFpbmVyU2Nyb2xsVG9wICsgbGlQb3MgLSAkY29udGFpbmVyLmhlaWdodCgpIC8gMiArICR0YXJnZXRMaS5oZWlnaHQoKSAvIDI7XG4gICAgICAgIC8vIFNjcm9sbCB0aGUgY29udGFpbmVyIHRvIGVuc3VyZSB0aGUgaXRlbSBpcyB2aXNpYmxlXG4gICAgICAgICRjb250YWluZXIuYW5pbWF0ZSh7XG4gICAgICAgICAgICBzY3JvbGxUb3A6IHNjcm9sbFRvLFxuICAgICAgICB9LCA1MDApOyAvLyBBZGp1c3QgdGhlIGR1cmF0aW9uICg1MDBtcykgYXMgbmVlZGVkXG4gICAgfVxuICAgIGNvbnN0IHJlYWNoU2VsZWN0aW9uID0gKHRoYXQsIHBhcmVudE5vZGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBub2RlSWQgPSB0aGF0LiRpbnB1dC52YWwoKTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIHJvb3ROb2RlSWQ6IHBhcmVudE5vZGUubm9kZUlkLFxuICAgICAgICAgICAgaXNUeXBlOiB0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmIHx8IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgIGNvbnN0IGJyb3dzZVBhdGggPSB5aWVsZCB3YWxrQmFja3dhcmQoZGF0YSwgb3B0aW9ucyk7XG4gICAgICAgIGlmICghYnJvd3NlUGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIGF1dG9FeHBhbmQodGhhdCwgYnJvd3NlUGF0aCwgdGhhdC4kdHJlZSk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlQ29ubmVjdGlvbih0aGF0KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBmdW5jdGlvbiBfZXhwYW5kTGkodGhhdCwgJGxpKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeWllbGQgX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJGxpLCBmLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC5fX3BhcmVudE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlLmNhbGwodGhhdCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc2MgPSB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gZGVzYztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC5fX3BhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFsc28gcmVzZXQgcGFyZW50IG5vZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHRoYXQ7XG4gICAgICAgICAgICAgICAgICAgIGEuX19wYXJlbnROb2RlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSB5aWVsZCB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSB5aWVsZCB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uICYmICh5aWVsZCByZWFjaFNlbGVjdGlvbih0aGF0LCBwYXJlbnROb2RlKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1mbGFza1wiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc09uTGVmdFNpemUgPSAoJGxpLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICRsaS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvZ2dsZUV4cGFuc2lvbiA9ICgkbGkpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9leHBhbmRMaSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiZGJsY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBSRUQuKGVuZHBvaW50SWQpO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCBjcmVkZW50aWFscyB9ID0gcmVkTm9kZTtcbiAgICAgICAgY29uc3QgcmV0VmFsdWUgPSB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICB9O1xuICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eFwiLCByZXRWYWx1ZSk7XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICAvLyBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICAvLyBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJOYW1lOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlck5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyBwYXNzd29yZDogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnBhc3N3b3JkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gdXNlckNlcnRpZmljYXRlOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIC8vIHVzZXJQcml2YXRla2V5OiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1SZWFkXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIi4uLy4uL2ljb25zL29wY3Vhbm9kZUxvZ28ucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJyZWFkXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIC8vIGZvciBhY3Rpb24gcmVhZFxuICAgICAgICAgICAgYXR0cmlidXRlSWQ6IHsgdmFsdWU6IFwiVmFsdWVcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBvdXRwdXRUeXBlOiB7IHZhbHVlOiBcIlZhbHVlXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGlucHV0czosXG4gICAgICAgIG91dHB1dHM6IDIsIC8vIDIgb3V0cHV0LCBzZWNvbmQgZm9yIHJhdyBub2RlLW9wY3VhIGRpYWdub3N0aWNzIG9yIG1vcmUgY29tcGxldGUgbWVzc2FnZVxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQSBDbGllbnQgUmVhZFwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Client2-Read">
|
11
11
|
<h3>
|
@@ -145,3 +145,4 @@ will return the following structure:
|
|
145
145
|
- if not specified, the `msg.outputType` attribute will default to `Value`.
|
146
146
|
|
147
147
|
</script>
|
148
|
+
//# sourceMappingURL=OpcUa-Client2-Read.html.map
|
@@ -1,2 +1,2 @@
|
|
1
|
-
.sterfive-combo-box{position:relative;width:100%}.sterfive-combo-box .sterfive-dropdown{background-color:#fff;border:1px solid #ccc;display:none;left:0;max-height:150px;overflow-y:auto;position:absolute;top:100%;width:100%;z-index:1000}.sterfive-combo-box li:before{content:none}.sterfive-tree li.expandable:before,.sterfive-tree li.no-expandable:before{content:"\f0da";cursor:pointer;font-family:FontAwesome;font-size:
|
1
|
+
.sterfive-combo-box{position:relative;width:100%}.sterfive-combo-box .sterfive-dropdown{background-color:#fff;border:1px solid #ccc;display:none;left:0;max-height:150px;overflow-y:auto;position:absolute;top:100%;width:100%;z-index:1000}.sterfive-combo-box li:before{content:none}.sterfive-tree li.expandable:before,.sterfive-tree li.no-expandable:before{content:"\f0da";cursor:pointer;font-family:FontAwesome;font-size:12pt;font-weight:900;margin-right:5px}.sterfive-tree li.no-expandable:before{opacity:0}.sterfive-tree li.expanded:before{content:"\f0d7";cursor:pointer;font-family:FontAwesome;font-size:12pt;font-weight:900;margin-right:5px}.sterfive-tree li span.selected{border:.5px dotted #33f}.sterfive-tree .fa{color:#333;margin-right:10px}.sterfive-tree ul{list-style:none;padding-inline-start:2%!important}.sterfive-tree li{cursor:pointer;padding:5px}.sterfive-tree{list-style-type:none}.sterfive-tree,.sterfive-tree ol,.sterfive-tree ul{list-style-type:none;margin:0;padding:0}.sterfive-tree li:hover{background-color:#eee}.sterfive-tree li.loading:before{animation:fa-spin 1s linear infinite;content:"\f110";cursor:pointer;font-family:FontAwesome;font-weight:900;margin-right:5px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.sterfive-tree .spinner{animation:spin .7s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:#666;display:inline-block;height:16px;width:16px}.sterfive-info{background-color:#fafad2;border-radius:10px;border-style:groove;display:block;font-size:10pt;margin:5px 0;padding:5px}.sterfive-info .ok{color:green}.sterfive-info .warning{color:darkred}.input-wrapper{border:0 solid #ccc;border-radius:5px;padding:0}.input-group{align-items:center;border:1px solid #ccc;border-radius:5px;display:flex;overflow:hidden}.input-group input{border:none;flex:1;outline:none;padding:8px}.input-group button{background-color:#f1f1f1;border:none;border-left:1px solid #ccc;cursor:pointer;padding:8px 16px}.input-group button:hover{background-color:#ddd}.info-text{color:#777;font-size:12px;margin-left:10px;margin-top:5px}.custom-checkbox{cursor:pointer;display:inline-block;font-family:FontAwesome;font-size:16px;font-weight:900;margin-right:10px;text-align:center;width:1em}.custom-checkbox.unchecked:before{content:"\f096"}.custom-checkbox.checked:before{content:"\f046"}.validate-cancel-buttons{background-color:#fff;position:sticky;right:0;top:0;z-index:1001}.cancel-button,.validate-button{cursor:pointer;font-size:16px;margin:5px}.sterfive-combo-box .sterfive-dropdown{position:relative}.floating-buttons{position:fixed;z-index:1003}
|
2
2
|
/*# sourceMappingURL=OpcUa-Client2-Write.css.map */
|