@opcua/for-node-red 3.6.0 → 3.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,8 +4,8 @@
4
4
  </style>
5
5
 
6
6
  <script type="text/javascript">
7
- function _0x4523(){const _0x491e88=['subscribe-button','<input/>','Slow\x20Subscription','http://opcfoundation.org/DI/','licence-widget','password','\x20for\x20more\x20information.','7CKjFwe','disabled','src','\x20It\x20will\x20expire\x20in\x20','subscriptions','\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.̀','.input-isDefault','items','licenceInfo','/opcua-for-node-red','-failure','70%','Your\x20license\x20is\x20currently\x20invalid.','<a\x20href=\x22mailto:support@sterfive.com\x22\x20subject=\x22@opcua/for-node-red\x20support\x20request\x22>mailto:support@sterfive.com</a>','.input-requestedPublishingInterval','#node-config-input-endpoint',':checked','Fast\x20Subscription','Anonymous','editableList','.section-userIdentityType-UserName','#goto-config','then','catch','assign','<button/>','http://opcfoundation.org/UA/','css','class','The\x20Trial\x20will\x20expire\x20in\x20','apply','installFeedbackWidget\x20','append','AUTHORIZED','readonly','Your\x20licence\x20is\x20valid.','attr','.section-userIdentityType-Certificate','script','3237785cdaosN','.input-name','Licence\x20has\x20expired','registerType','Subscribe','#subscription-template','html','.node-input-alias-alias','20px','.red-ui-tray-body','config','</p>','#node-input-receiveBufferSize','open','result','sterfive.licenceWidget','message','180px','removeClass','nodes','-pending','#section-Advanced','Namespace\x20Aliases','map','/licenceInfo','licenceWidget','#node-input-maxChunkCount','checked','node-input-alias-alias','clone','.input-maxNotificationsPerPublish','createElement','#node-config-input-password','#node-config-input-userName','addClass','requestedLifetimeCount','status','None','create','139038qHGeJR','userIdentityType','<span>','element','data-i','head','.subscription-id','/opcua-for-node-red/test-connection','show','typedInput','TRIAL','<stripe-pricing-table/>','stringify','-messages','log','#node-config-input-securityMode','height:\x20100%\x20!important;','licence-widget-details','fa\x20fa-check-circle','isDefault','#node-config-input-securityPolicy','licence-widget-','/opcua-for-node-red/extract-namespace-aliases','.input-requestedLifetimeCount','suppressed','SignAndEncrypt','#node-config-input-userCertificate','1870290Jttbja','push','\x20-\x20','toISOString','#test-connection','btn\x20btn-primary','<br>','#node-config-endpoint-tabs-content','replace','addTab','length','securityMode','.section-securityPolicy','name','connection','baseUrl','#node-input-useTransport','licence-widget-icon','#toggleAdvancedSection','#node-config-input-pkiName','\x20to\x20acquire\x20a\x20license.','<iframe></iframe>','namespaceUri','margin-top:\x2020px;','#node-input-sendBufferSize','#node-config-input-name','endpoint-tab-subscriptions','internal\x20error\x20','split','json','protocol','label','#section-TransportSettings','#node-config-input-useTransport','Default\x20Subscription','invalid\x20userIdentityType\x20','requestedMaxKeepAliveCount','next','click','value','<p>','tabs','width','OpcUa-Endpoint2','#node-config-input-userIdentityType','node-input-alias-namespace-uri','opc.tcp:','each','endpoint-tab-namespace-aliases','#editable-list-aliases-container','POST','hide','836980ResKSe','onPremiseServerHost','Certificate','publishingEnabled','opcua\x20endpoint','text','#extract-aliases','EXPIRED','FAILED','https://js.stripe.com/v3/pricing-table.js','alias','widget','licenceType','fa\x20fa-exclamation-circle','150px','removeAttr','/opcua-for-node-red/client_certificate.json','maxNotificationsPerPublish','.node-input-alias-namespace-uri','24bueENi','join','background-color:transparent;overflow:hidden;border:3px','prop','node-config-endpoint-tabs','<a\x20href=\x22https://www.sterfive.com/opcua/for-node-red\x22\x20target=”_blank”>Sterfive\x27s\x20website\x20</a>','namespaceAliases','25%','Testing\x20Connection\x20...','Please\x20contact\x20','endpoint-tab-connection','find','err','1399107Sbzece','260px','opc.tcp://opcuademo.sterfive.com:26543/UA/SampleServer','auto','template','parameters','UserName','FREEWARE','Subscriptions','style','prctbl_1OJt49BCNccbzsVzkaANOgFL','/opcua-for-node-red/config','\x20days.\x0aBuy\x20online\x20and\x20visit\x20','statusText','appendTo','publishable-key','done','7342TfBTfK','type','isArray','change','#subscriptions-container','absolute','val','node-input-alias-index','application/json','toString','addItem','.input-requestedMaxKeepAliveCount','.input-priority','_blank','2166597esURUO','daysLeft'];_0x4523=function(){return _0x491e88;};return _0x4523();}function _0x5195(_0x8378b3,_0x4be2ab){const _0x452374=_0x4523();return _0x5195=function(_0x5195e1,_0x37ce2c){_0x5195e1=_0x5195e1-0x1b6;let _0x4980ed=_0x452374[_0x5195e1];return _0x4980ed;},_0x5195(_0x8378b3,_0x4be2ab);}(function(_0x51b3fc,_0x54e918){const _0x247453=_0x5195,_0x2a9f41=_0x51b3fc();while(!![]){try{const _0x4f72ac=parseInt(_0x247453(0x237))/0x1+-parseInt(_0x247453(0x1d2))/0x2+-parseInt(_0x247453(0x1c1))/0x3+-parseInt(_0x247453(0x286))/0x4+parseInt(_0x247453(0x210))/0x5+-parseInt(_0x247453(0x252))/0x6*(parseInt(_0x247453(0x1e9))/0x7)+parseInt(_0x247453(0x299))/0x8*(parseInt(_0x247453(0x1e0))/0x9);if(_0x4f72ac===_0x54e918)break;else _0x2a9f41['push'](_0x2a9f41['shift']());}catch(_0x1f6835){_0x2a9f41['push'](_0x2a9f41['shift']());}}}(_0x4523,0x7e6a2),(function(){'use strict';const _0x19c88d=_0x5195;function _0xcaa6bd(_0x2b49be,_0x3378ea,_0x36e9cf,_0x2ba0ca){function _0x4d087c(_0x230b42){return _0x230b42 instanceof _0x36e9cf?_0x230b42:new _0x36e9cf(function(_0x2abf31){_0x2abf31(_0x230b42);});}return new(_0x36e9cf||(_0x36e9cf=Promise))(function(_0x439e3f,_0x133e6b){const _0x49598e=_0x5195;function _0x21f176(_0x16eb41){try{_0x3f8b78(_0x2ba0ca['next'](_0x16eb41));}catch(_0x5be6c4){_0x133e6b(_0x5be6c4);}}function _0x16c29d(_0xadaa93){try{_0x3f8b78(_0x2ba0ca['throw'](_0xadaa93));}catch(_0x1c3757){_0x133e6b(_0x1c3757);}}function _0x3f8b78(_0x3b8728){const _0x585be5=_0x5195;_0x3b8728[_0x585be5(0x1d1)]?_0x439e3f(_0x3b8728[_0x585be5(0x279)]):_0x4d087c(_0x3b8728[_0x585be5(0x279)])['then'](_0x21f176,_0x16c29d);}_0x3f8b78((_0x2ba0ca=_0x2ba0ca[_0x49598e(0x207)](_0x2b49be,_0x3378ea||[]))[_0x49598e(0x277)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0x4ed675,_0x51239b,_0x56f530){const _0x2d270b=_0x5195;var _0x5f2526=new Error(_0x56f530);return _0x5f2526[_0x2d270b(0x25f)]='SuppressedError',_0x5f2526['error']=_0x4ed675,_0x5f2526[_0x2d270b(0x24f)]=_0x51239b,_0x5f2526;};function _0x407c3a(_0x57a598,_0x43f8ce,_0x49d911,_0x54777b){const _0x112b82=_0x5195,_0x235597=$('#'+_0x57a598+'-success'),_0x383559=$('#'+_0x57a598+_0x112b82(0x1f3)),_0x3a86a1=$('#'+_0x57a598+_0x112b82(0x224)),_0xe99f51=$('#'+_0x57a598+_0x112b82(0x244));let _0x4a800a=![];_0x235597['hide'](),_0x383559[_0x112b82(0x285)](),_0x3a86a1[_0x112b82(0x285)](),_0x43f8ce['on'](_0x112b82(0x278),()=>{const _0x165b16=_0x112b82;if(_0x4a800a)return;_0x4a800a=!![],_0x3a86a1[_0x165b16(0x222)](_0x165b16(0x285)),_0x3a86a1[_0x165b16(0x216)](_0x165b16(0x1bc)),_0x235597[_0x165b16(0x232)]('hide'),_0x383559[_0x165b16(0x232)](_0x165b16(0x285)),_0xe99f51[_0x165b16(0x216)]('');const {body:_0x2dca24,url:_0x2d1545}=_0x49d911();fetch(_0x2d1545,{'method':_0x165b16(0x284),'headers':{'Content-Type':_0x165b16(0x1da)},'body':JSON[_0x165b16(0x243)](_0x2dca24)})[_0x165b16(0x1ff)](_0x28b9f5=>_0x28b9f5[_0x165b16(0x26f)]())['then'](_0x4ee3a3=>{const _0x3fbe89=_0x165b16;_0x4a800a=![],_0x3a86a1[_0x3fbe89(0x285)](),console[_0x3fbe89(0x245)](JSON['stringify'](_0x4ee3a3,null,'\x20'));if(_0x4ee3a3[_0x3fbe89(0x21e)]==='ok')_0x235597[_0x3fbe89(0x222)](_0x3fbe89(0x285)),_0x383559[_0x3fbe89(0x232)]('hide'),_0xe99f51[_0x3fbe89(0x216)](_0x4ee3a3[_0x3fbe89(0x220)][_0x3fbe89(0x25a)]('\x0a',_0x3fbe89(0x258)));else{const _0x393983=_0x4c98cf=>!_0x4c98cf?'':_0x4c98cf[_0x3fbe89(0x26e)]('\x0a')[_0x3fbe89(0x227)](_0x13699e=>_0x3fbe89(0x27a)+_0x13699e+_0x3fbe89(0x21b))[_0x3fbe89(0x29a)]('\x0a'),_0x46c60f=_0x5a7711=>Array[_0x3fbe89(0x1d4)](_0x5a7711)?_0x5a7711[_0x3fbe89(0x227)](_0x393983)[_0x3fbe89(0x29a)]('\x0a'):_0x393983(_0x5a7711);_0x235597[_0x3fbe89(0x232)](_0x3fbe89(0x285)),_0x383559[_0x3fbe89(0x222)](_0x3fbe89(0x285)),_0xe99f51[_0x3fbe89(0x216)](_0x46c60f(_0x4ee3a3[_0x3fbe89(0x220)])+_0x46c60f(_0x4ee3a3['extra'])),_0x54777b(new Error(_0x4ee3a3['result']),_0x4ee3a3);}})[_0x165b16(0x200)](_0x29e8bf=>{const _0x3a1bb0=_0x165b16;_0x4a800a=![],_0x3a86a1[_0x3a1bb0(0x232)](_0x3a1bb0(0x285)),_0x235597['addClass']('hide'),_0x383559['removeClass'](_0x3a1bb0(0x285)),_0xe99f51[_0x3a1bb0(0x216)](_0x3a1bb0(0x26d)+_0x29e8bf[_0x3a1bb0(0x220)]),console[_0x3a1bb0(0x245)](_0x3a1bb0(0x1c0),_0x29e8bf);});});}const _0x521a86=_0x19c88d(0x1cb),_0x16bb8a='pk_live_51HsE1sBCNccbzsVzt7zaq2uv20pkryWllAzvZgZd5AhwFI9A3qBIeOJvJwQF08lDoLpFqLjwmyA79wnPnYLsvKjt009f00VpCW';function _0x33fd4b(){return _0xcaa6bd(this,arguments,void 0x0,function*(_0x4f4b99=''){const _0x8e0866=_0x5195,_0x414bc9=_0x4f4b99+_0x8e0866(0x1f2),_0x7f1d80=_0x414bc9+_0x8e0866(0x228),_0x5783a3=yield fetch(_0x7f1d80,{'method':_0x8e0866(0x284),'headers':{'Content-Type':_0x8e0866(0x1da)}}),_0x1fe688=new Date()[_0x8e0866(0x255)]();if(_0x5783a3[_0x8e0866(0x234)]!==0xc8)return console[_0x8e0866(0x245)]('fetching\x20failed\x20with\x20error',_0x5783a3['status'],_0x5783a3[_0x8e0866(0x1ce)]),{'status':_0x8e0866(0x28e),'type':'FREEWARE','licenceInfo':{'expiryDate':_0x1fe688}};const _0x245e56=yield _0x5783a3[_0x8e0866(0x26f)]();return _0x245e56;});}const _0x44b2de=()=>{const _0xc99ab5=_0x19c88d;$[_0xc99ab5(0x291)](_0xc99ab5(0x21f),{'options':{'baseUrl':''},'_create'(){const _0x11e6a6=_0xc99ab5,_0x6904f3=this,_0x3e3861=_0x11e6a6(0x1f6),_0x6d760=_0x11e6a6(0x1b9);_0x33fd4b(_0x6904f3[_0x11e6a6(0x261)])[_0x11e6a6(0x1ff)](_0x630313=>{const _0x53982d=_0x11e6a6;let _0x2abc8f='',_0x33a4bc='',_0xead660='';const _0x55d3a5=_0x630313[_0x53982d(0x234)],_0x11650c=_0x630313[_0x53982d(0x1e1)];switch(_0x55d3a5){case _0x53982d(0x20a):_0x2abc8f=_0x53982d(0x249);switch(_0x630313[_0x53982d(0x1d3)]){case _0x53982d(0x241):{_0x33a4bc='Trial\x20licence',_0xead660=_0x53982d(0x206)+_0x11650c+_0x53982d(0x1cd)+_0x6d760+_0x53982d(0x266);break;}case'PROFESSIONAL':_0x33a4bc=_0x53982d(0x20c);_0x11650c<0x5a&&_0x11650c>=0x0&&(_0x33a4bc+=_0x53982d(0x1ec)+_0x11650c+'\x20days.');_0xead660=_0x630313[_0x53982d(0x1f1)][_0x53982d(0x292)]+_0x53982d(0x254)+(_0x630313[_0x53982d(0x1f1)][_0x53982d(0x287)]||'');break;case _0x53982d(0x1c8):_0x33a4bc='Freeware\x20licence',_0xead660='This\x20is\x20a\x20freeware\x20licence,\x20and\x20have\x20some\x20limitations.\x0a'+_0x6d760+_0x53982d(0x1e8);break;}break;case'EXPIRED':_0x2abc8f='fa\x20fa-calendar-time',_0x33a4bc=_0x53982d(0x212),_0xead660='Your\x20license\x20has\x20expired.\x20Please\x20contact\x20our\x20support\x20team\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.';break;case'FAILED':default:_0x2abc8f=_0x53982d(0x293),_0x33a4bc=_0x53982d(0x1f5),_0xead660=_0x53982d(0x1bd)+_0x3e3861+_0x53982d(0x1ee);break;}this[_0x53982d(0x23a)]['addClass'](_0x53982d(0x1e6)),this[_0x53982d(0x23a)][_0x53982d(0x232)](_0x53982d(0x24c)+_0x55d3a5),this['element'][_0x53982d(0x209)]($(_0x53982d(0x239))[_0x53982d(0x232)](_0x53982d(0x263))[_0x53982d(0x209)]($('<i>')[_0x53982d(0x232)](_0x2abc8f))),this[_0x53982d(0x23a)][_0x53982d(0x209)]($('<span>')[_0x53982d(0x232)]('licence-widget-msg')[_0x53982d(0x28b)](_0x33a4bc)),this[_0x53982d(0x23a)][_0x53982d(0x209)]($(_0x53982d(0x258))),this[_0x53982d(0x23a)]['append']($(_0x53982d(0x239))['addClass'](_0x53982d(0x248))[_0x53982d(0x209)](_0xead660));if(_0x55d3a5===_0x53982d(0x28d)||_0x55d3a5==='FAILED'||_0x630313[_0x53982d(0x1d3)]==='FREEWARE'||_0x630313[_0x53982d(0x1d3)]===_0x53982d(0x241)){const _0x8c3554=$(_0x53982d(0x202));_0x8c3554[_0x53982d(0x20d)]('id',_0x53982d(0x1e2)),_0x8c3554[_0x53982d(0x20d)](_0x53982d(0x205),_0x53982d(0x257)),_0x8c3554[_0x53982d(0x20d)](_0x53982d(0x1ca),_0x53982d(0x269)),_0x8c3554[_0x53982d(0x28b)](_0x53982d(0x214)),this['element']['append'](_0x8c3554);const _0x24aa64=document[_0x53982d(0x22f)](_0x53982d(0x20f));_0x24aa64[_0x53982d(0x1eb)]=_0x53982d(0x28f),_0x24aa64['async']=!![],$(_0x53982d(0x23c))[_0x53982d(0x209)](_0x24aa64);const _0x47a3d9=$(_0x53982d(0x242));_0x47a3d9['attr']('pricing-table-id',_0x521a86),_0x47a3d9[_0x53982d(0x20d)](_0x53982d(0x1d0),_0x16bb8a),_0x47a3d9[_0x53982d(0x20d)](_0x53982d(0x1ca),'height:\x20100%;max-height:\x20100%;'),_0x47a3d9['hide'](),this['element'][_0x53982d(0x209)](_0x47a3d9),_0x8c3554['on'](_0x53982d(0x278),()=>{const _0x516875=_0x53982d;_0x47a3d9['show'](),_0x8c3554[_0x516875(0x285)](),this[_0x516875(0x23a)][_0x516875(0x20d)](_0x516875(0x1ca),_0x516875(0x247));});}})['catch'](_0x2a25e7=>{const _0x16e007=_0x11e6a6;console[_0x16e007(0x245)](_0x2a25e7);});}});},_0x23c3ed=()=>{const _0x150d29=_0x19c88d,_0x13f171=$(_0x150d29(0x219));console[_0x150d29(0x245)](_0x150d29(0x208),_0x13f171[_0x150d29(0x25c)]);if(_0x13f171[_0x150d29(0x25c)]){console[_0x150d29(0x245)]('installing\x20iframe');const _0x3d7b62=$(_0x150d29(0x267),{'src':'/opcua-for-node-red/support-frame.html','scrolling':'no','style':_0x150d29(0x1b6),'allowtransparency':'true','width':_0x150d29(0x221),'height':'30px'});_0x13f171[_0x150d29(0x209)](_0x3d7b62),_0x3d7b62[_0x150d29(0x204)]({'position':_0x150d29(0x1d7),'right':_0x150d29(0x218),'bottom':'16px'});}};_0x44b2de();function _0x570126(_0x20b652){const _0x2aec49=_0x19c88d;let _0x3e2b68;try{_0x3e2b68=new URL(_0x20b652);}catch(_0x314289){return![];}return _0x3e2b68[_0x2aec49(0x270)]===_0x2aec49(0x280);}const _0x2ce9a9={'publishingEnabled':!![],'requestedLifetimeCount':0x3e8,'requestedMaxKeepAliveCount':0xa,'requestedPublishingInterval':0x3e8,'maxNotificationsPerPublish':0x0,'priority':0x64};RED[_0x19c88d(0x223)][_0x19c88d(0x213)](_0x19c88d(0x27d),{'category':_0x19c88d(0x21a),'paletteLabel':_0x19c88d(0x28a),'defaults':{'name':{'value':''},'endpoint':{'value':_0x19c88d(0x1c3),'required':!![],'validate':_0x570126},'securityMode':{'value':_0x19c88d(0x235)},'securityPolicy':{'value':_0x19c88d(0x235),'validate':_0x80a2a9=>{if(!_0x80a2a9)return![];return!![];}},'userIdentityType':{'value':'Anonymous'},'pkiName':{'value':'','validate':_0x3eb331=>!_0x3eb331||_0x3eb331['match'](/[0-9a-zA-Z]*/)?!![]:![]},'useTransport':{'value':![],'required':![]},'maxChunkCount':{'value':0x1,'required':![]},'maxMessageSize':{'value':0x2000,'required':![]},'receiveBufferSize':{'value':0x2000,'required':![]},'sendBufferSize':{'value':0x2000,'required':![]},'subscriptions':{'value':[{'id':'s1','name':_0x19c88d(0x274),'isDefault':!![],'parameters':Object[_0x19c88d(0x201)]({},_0x2ce9a9)},{'id':'s2','name':_0x19c88d(0x1e4),'isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0x64,'requestedMaxKeepAliveCount':0x3,'requestedPublishingInterval':0x1388,'maxNotificationsPerPublish':0x64,'priority':0xa}},{'id':'s3','name':_0x19c88d(0x1fa),'isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0xfa0,'requestedMaxKeepAliveCount':0x32,'requestedPublishingInterval':0xfa,'maxNotificationsPerPublish':0x64,'priority':0xc8}}],'required':![]},'namespaceAliases':{'value':[{'alias':'ua','namespaceUri':_0x19c88d(0x203),'isWellKnown':!![],'isDefault':!![]},{'alias':'di','namespaceUri':_0x19c88d(0x1e5),'isWellKnown':!![],'isDefault':!![]}],'required':![]}},'credentials':{'userName':{'type':_0x19c88d(0x28b)},'password':{'type':_0x19c88d(0x1e7)},'userCertificate':{'type':_0x19c88d(0x28b)},'userPrivatekey':{'type':_0x19c88d(0x1e7)}},'label':function(){const _0x274c31=_0x19c88d;return this[_0x274c31(0x25f)]||this['endpoint']||'invalid\x20endpoint';},'oneditsave'(){const _0x4d1ce5=_0x19c88d,_0x5e80d3=$(_0x4d1ce5(0x24b)),_0x2bd8f6=$('#node-config-input-securityMode');_0x5e80d3[_0x4d1ce5(0x1d8)]()===_0x4d1ce5(0x235)&&_0x2bd8f6[_0x4d1ce5(0x28b)]('None');{const _0x22bb9f=$(_0x4d1ce5(0x1d6))[_0x4d1ce5(0x1fc)](_0x4d1ce5(0x1f0)),_0x3c48a6=[],_0x5c6732=_0x1c814a=>_0x1c814a;_0x22bb9f['each'](function(_0x1ee129,_0x54a312){const _0x1f02ba=_0x4d1ce5,_0x589adc=$(this),_0x2a9510={'id':'s'+_0x1ee129,'name':_0x589adc[_0x1f02ba(0x1bf)](_0x1f02ba(0x211))['val'](),'isDefault':!!_0x589adc[_0x1f02ba(0x1bf)](_0x1f02ba(0x1ef))[_0x1f02ba(0x1d8)](),'parameters':{'publishingEnabled':!!_0x589adc['find']('.input-publishingEnabled')['is'](_0x1f02ba(0x1f9)),'requestedLifetimeCount':_0x5c6732(_0x589adc[_0x1f02ba(0x1bf)](_0x1f02ba(0x24e))[_0x1f02ba(0x1d8)]()),'requestedMaxKeepAliveCount':_0x5c6732(_0x589adc[_0x1f02ba(0x1bf)](_0x1f02ba(0x1dd))['val']()),'requestedPublishingInterval':_0x5c6732(_0x589adc[_0x1f02ba(0x1bf)](_0x1f02ba(0x1f7))['val']()),'maxNotificationsPerPublish':_0x5c6732(_0x589adc['find']('.input-maxNotificationsPerPublish')[_0x1f02ba(0x1d8)]()),'priority':_0x5c6732(_0x589adc[_0x1f02ba(0x1bf)]('.input-priority')[_0x1f02ba(0x1d8)]())}};_0x2a9510[_0x1f02ba(0x1c6)][_0x1f02ba(0x289)]=!![],_0x2a9510[_0x1f02ba(0x24a)]&&_0x2a9510['id']==='s0'&&(_0x2a9510[_0x1f02ba(0x25f)]=_0x1f02ba(0x274)),_0x3c48a6[_0x1f02ba(0x253)](_0x2a9510);}),this[_0x4d1ce5(0x1ed)]=_0x3c48a6;}{const _0x4589cc=$(_0x4d1ce5(0x283))[_0x4d1ce5(0x1fc)](_0x4d1ce5(0x1f0)),_0x3a5dfd=[];_0x4589cc[_0x4d1ce5(0x281)](function(_0x14f62f,_0x1a16aa){const _0x11965f=_0x4d1ce5,_0x50a43e=$(this),_0x4a3ba7={'namespaceUri':_0x50a43e['find'](_0x11965f(0x298))[_0x11965f(0x1d8)](),'alias':_0x50a43e[_0x11965f(0x1bf)](_0x11965f(0x217))[_0x11965f(0x1d8)]()};_0x3a5dfd[_0x11965f(0x253)](_0x4a3ba7);}),this[_0x4d1ce5(0x1ba)]=_0x3a5dfd;}},'oneditprepare'(){const _0x329732=_0x19c88d,_0x3f7ba7=this;_0x23c3ed();const _0x374b9f=RED[_0x329732(0x27b)][_0x329732(0x236)]({'id':_0x329732(0x1b8),'onchange':function(_0x401dcc){const _0xad4ba3=_0x329732;$(_0xad4ba3(0x259))['children']()[_0xad4ba3(0x285)](),$('#'+_0x401dcc['id'])[_0xad4ba3(0x23f)]();}});_0x374b9f[_0x329732(0x25b)]({'id':_0x329732(0x1be),'label':'Connection'},0x0),_0x374b9f[_0x329732(0x25b)]({'id':_0x329732(0x26c),'label':_0x329732(0x1c9)},0x1),_0x374b9f[_0x329732(0x25b)]({'id':_0x329732(0x282),'label':_0x329732(0x226)},0x2),setTimeout(function(){_0x374b9f['resize']();},0x0);{const _0x3159f4=_0x2e5900=>{const _0x794116=_0x329732;switch(_0x2e5900){case null:case undefined:case'':case _0x794116(0x235):$('.section-securityPolicy')[_0x794116(0x285)]();break;case'Sign':case _0x794116(0x250):{const _0x2ada41=$(_0x794116(0x25e));(_0x2ada41[_0x794116(0x1d8)]()===_0x794116(0x235)||_0x2ada41[_0x794116(0x1d8)]()==='')&&_0x2ada41['val']('Basic256Sha256'),$(_0x794116(0x25e))[_0x794116(0x23f)]();}break;default:console[_0x794116(0x245)]('invalid\x20securityMode\x20'+_0x2e5900);}};_0x3159f4(_0x3f7ba7[_0x329732(0x25d)]);const _0x347c18=$('#node-config-input-securityMode');_0x347c18['on'](_0x329732(0x1d5),()=>{const _0x43a7e4=_0x329732,_0x15047d=_0x347c18[_0x43a7e4(0x1d8)]();_0x3159f4(_0x15047d);});}const _0x3d44c0=$('#licenceWidget');_0x3d44c0[_0x329732(0x229)]({'baseUrl':''});{const _0x1aabce=$(_0x329732(0x1fd)),_0x5cba1c=$(_0x329732(0x20e)),_0x5084ae=_0x24d3d8=>{const _0x39f827=_0x329732;_0x24d3d8=_0x24d3d8||_0x39f827(0x1fb);switch(_0x24d3d8){case'Anonymous':$('#node-config-input-userName')[_0x39f827(0x1d8)](''),$('#node-config-input-password')[_0x39f827(0x1d8)](''),_0x1aabce[_0x39f827(0x285)](),_0x5cba1c['hide']();break;case _0x39f827(0x1c7):_0x1aabce['show'](),_0x5cba1c[_0x39f827(0x285)]();break;case _0x39f827(0x288):$(_0x39f827(0x231))[_0x39f827(0x1d8)](''),$(_0x39f827(0x230))[_0x39f827(0x1d8)](''),_0x5cba1c[_0x39f827(0x23f)](),_0x1aabce[_0x39f827(0x285)]();break;default:console[_0x39f827(0x245)](_0x39f827(0x275)+_0x24d3d8);}};_0x5084ae(_0x3f7ba7[_0x329732(0x238)]);const _0x3b84b0=$('#node-config-input-userIdentityType');_0x3b84b0['on'](_0x329732(0x1d5),()=>{const _0x349920=_0x329732,_0x5ab993=_0x3b84b0[_0x349920(0x1d8)]();_0x5084ae(_0x5ab993);});}{$(_0x329732(0x225))[_0x329732(0x285)](),$(_0x329732(0x264))[_0x329732(0x1b7)](_0x329732(0x22b),![]),$(_0x329732(0x264))['on'](_0x329732(0x1d5),function(){const _0x21f981=_0x329732;$(this)['prop'](_0x21f981(0x22b))?$('#section-Advanced')[_0x21f981(0x23f)]():$(_0x21f981(0x225))[_0x21f981(0x285)]();});}const _0x5294cf=$('#node-config-input-useTransport')[_0x329732(0x1b7)](_0x329732(0x22b));_0x5294cf?$(_0x329732(0x272))[_0x329732(0x23f)]():$(_0x329732(0x272))[_0x329732(0x285)]();$(_0x329732(0x273))['on']('change',function(){const _0x2efe27=_0x329732;$(this)[_0x2efe27(0x1b7)](_0x2efe27(0x22b))?$(_0x2efe27(0x272))[_0x2efe27(0x23f)]():$(_0x2efe27(0x272))[_0x2efe27(0x285)]();});{$('#checkCertificate')['on'](_0x329732(0x278),()=>_0xcaa6bd(this,void 0x0,void 0x0,function*(){const _0xcf525a=_0x329732,_0x39d2d8=yield fetch(_0xcf525a(0x296)),_0x2e9f01=yield _0x39d2d8['json'](),_0x35a453=JSON[_0xcf525a(0x243)](_0x2e9f01,null,'\x20');alert(_0x35a453);}));}$(_0x329732(0x1fe))['on'](_0x329732(0x278),()=>_0xcaa6bd(this,void 0x0,void 0x0,function*(){const _0x241621=_0x329732;window[_0x241621(0x21d)](_0x241621(0x1cc),_0x241621(0x1df));}));function _0x5530d2(){const _0xb9ca38=_0x329732;var _0x5d2549;return{'id':_0x3f7ba7['id'],'endpoint':$(_0xb9ca38(0x1f8))[_0xb9ca38(0x1d8)](),'name':$(_0xb9ca38(0x26b))[_0xb9ca38(0x1d8)](),'pkiName':(_0x5d2549=$(_0xb9ca38(0x265)))===null||_0x5d2549===void 0x0?void 0x0:_0x5d2549[_0xb9ca38(0x1d8)](),'securityMode':$(_0xb9ca38(0x246))[_0xb9ca38(0x1d8)](),'securityPolicy':$('#node-config-input-securityPolicy')[_0xb9ca38(0x1d8)](),'userIdentityType':$(_0xb9ca38(0x27e))['val'](),'userName':$(_0xb9ca38(0x231))[_0xb9ca38(0x1d8)](),'password':$(_0xb9ca38(0x230))[_0xb9ca38(0x1d8)](),'userCertificate':$(_0xb9ca38(0x251))[_0xb9ca38(0x1d8)](),'userPrivatekey':$('#node-config-input-userPrivatekey')[_0xb9ca38(0x1d8)](),'certificate':$('#node-input-certificate')[_0xb9ca38(0x1d8)](),'useTransport':$(_0xb9ca38(0x262))[_0xb9ca38(0x1b7)](_0xb9ca38(0x22b)),'maxChunkCount':$(_0xb9ca38(0x22a))[_0xb9ca38(0x1d8)](),'maxMessageSize':$('#node-input-maxMessageSize')[_0xb9ca38(0x1d8)](),'receiveBufferSize':$(_0xb9ca38(0x21c))['val'](),'sendBufferSize':$(_0xb9ca38(0x26a))[_0xb9ca38(0x1d8)]()};}{_0x407c3a(_0x329732(0x260),$(_0x329732(0x256)),()=>({'url':_0x329732(0x23e),'body':{'endpointNode':_0x5530d2()}}),()=>{});}{const _0x25e4d2=(_0x41e131,_0x2172d0)=>{const _0x34544c=_0x329732;var _0x285264=_0x41e131[_0x34544c(0x27c)]()||0x64;_0x41e131['find'](_0x34544c(0x271))[_0x34544c(0x240)]('width',_0x285264-0xf);},_0x4cd150=$(_0x329732(0x1d6))[_0x329732(0x204)]({'min-height':'150px','min-width':_0x329732(0x1c2)})[_0x329732(0x1fc)]({'addItem':(_0x19694c,_0x11bf9a,_0x3f3fe7)=>{const _0x15db2b=_0x329732,_0x41a923=_0x3f3fe7,_0x5136ce=$(_0x15db2b(0x215))[_0x15db2b(0x22d)]()[_0x15db2b(0x1cf)](_0x19694c);_0x5136ce[_0x15db2b(0x295)]('id')[_0x15db2b(0x222)](_0x15db2b(0x285))[_0x15db2b(0x222)](_0x15db2b(0x1c5))[_0x15db2b(0x20d)](_0x15db2b(0x23b),_0x11bf9a),_0x5136ce[_0x15db2b(0x1bf)](_0x15db2b(0x211))[_0x15db2b(0x1d8)](_0x41a923[_0x15db2b(0x25f)]),_0x5136ce[_0x15db2b(0x1bf)](_0x15db2b(0x1f7))['val'](_0x41a923[_0x15db2b(0x1c6)]['requestedPublishingInterval']),_0x5136ce[_0x15db2b(0x1bf)](_0x15db2b(0x1dd))['val'](_0x41a923['parameters'][_0x15db2b(0x276)]),_0x5136ce['find']('.input-requestedLifetimeCount')[_0x15db2b(0x1d8)](_0x41a923['parameters'][_0x15db2b(0x233)]),_0x5136ce[_0x15db2b(0x1bf)](_0x15db2b(0x22e))['val'](_0x41a923['parameters'][_0x15db2b(0x297)]||0x0),_0x5136ce[_0x15db2b(0x1bf)](_0x15db2b(0x1de))[_0x15db2b(0x1d8)](_0x41a923[_0x15db2b(0x1c6)]['priority']||0x0),_0x5136ce['find'](_0x15db2b(0x23d))[_0x15db2b(0x28b)](''+_0x11bf9a),_0x41a923[_0x15db2b(0x24a)]&&_0x5136ce[_0x15db2b(0x1bf)](_0x15db2b(0x211))[_0x15db2b(0x1b7)](_0x15db2b(0x20b),!![]),_0x5136ce[_0x15db2b(0x1bf)](_0x15db2b(0x1ef))[_0x15db2b(0x1b7)](_0x15db2b(0x22b),_0x41a923[_0x15db2b(0x24a)]),_0x41a923['isDefault']&&(_0x19694c[_0x15db2b(0x1bf)]('.red-ui-editableList-item-remove')[_0x15db2b(0x232)](_0x15db2b(0x285)),setTimeout(()=>_0x5136ce[_0x15db2b(0x1bf)](_0x15db2b(0x1ef))[_0x15db2b(0x1b7)](_0x15db2b(0x1ea),!![]),0xa));},'removable':!![],'resizeItem':_0x25e4d2}),_0x1c73d5=()=>{const _0x5810d0=_0x329732,_0x418284=_0x3f7ba7[_0x5810d0(0x1ed)]||[];_0x418284['length']===0x0&&_0x418284[_0x5810d0(0x253)]({'id':'s1','name':_0x5810d0(0x274),'isDefault':!![],'parameters':Object[_0x5810d0(0x201)]({},_0x2ce9a9)});_0x4cd150[_0x5810d0(0x1fc)]('empty');for(const _0x14aa88 of _0x418284){_0x4cd150[_0x5810d0(0x1fc)](_0x5810d0(0x1dc),_0x14aa88);}};_0x1c73d5();}{function _0x3dc459(_0x4f59eb,_0x52fd78,_0x1414c5){const _0x47c24d=_0x329732,_0x34402a=_0x1414c5,_0x53a2c6=$('<div\x20class=\x22alias-entry\x22>')['appendTo'](_0x4f59eb);$(_0x47c24d(0x1e3),{'class':_0x47c24d(0x1d9),'type':_0x47c24d(0x28b)})['val'](_0x1414c5[_0x47c24d(0x290)]||'')[_0x47c24d(0x204)]({'width':'5%'})[_0x47c24d(0x1cf)](_0x53a2c6)[_0x47c24d(0x1d8)](_0x52fd78[_0x47c24d(0x1db)]()),$(_0x47c24d(0x1e3),{'class':_0x47c24d(0x22c),'type':'text'})[_0x47c24d(0x1d8)](_0x1414c5[_0x47c24d(0x290)]||'')['css']({'width':_0x47c24d(0x1bb)})[_0x47c24d(0x1cf)](_0x53a2c6)['val'](_0x34402a[_0x47c24d(0x290)]),$(_0x47c24d(0x1e3),{'class':_0x47c24d(0x27f),'type':_0x47c24d(0x28b)})[_0x47c24d(0x1d8)](_0x1414c5[_0x47c24d(0x268)]||'')[_0x47c24d(0x204)]({'width':_0x47c24d(0x1f4)})[_0x47c24d(0x1cf)](_0x53a2c6)[_0x47c24d(0x1d8)](_0x34402a['namespaceUri']);}const _0x3bccc5=$(_0x329732(0x283))[_0x329732(0x204)]({'min-height':_0x329732(0x294),'min-width':'260px'})[_0x329732(0x1fc)]({'addButton':![],'removable':![],'height':_0x329732(0x1c4),'scrollOnAdd':![],'addItem'(_0x48176a,_0x2f6e2b,_0x131564){_0x3dc459(_0x48176a,_0x2f6e2b,_0x131564);}});function _0x5803d9(){const _0x2bff57=_0x329732;_0x3bccc5[_0x2bff57(0x1fc)](_0x2bff57(0x1f0)),_0x3bccc5[_0x2bff57(0x1fc)]('empty');for(const _0x54296c of _0x3f7ba7[_0x2bff57(0x1ba)]||[]){_0x3bccc5['editableList']('addItem',_0x54296c);}}{$(_0x329732(0x28c))['on']('click',()=>_0xcaa6bd(this,void 0x0,void 0x0,function*(){const _0x16d753=_0x329732,_0x7dace={'endpointNode':_0x5530d2(),'namespaceAliases':_0x3f7ba7['namespaceAliases']||[]},_0x353136=yield fetch(_0x16d753(0x24d),{'method':_0x16d753(0x284),'headers':{'Content-Type':_0x16d753(0x1da)},'body':JSON[_0x16d753(0x243)](_0x7dace)}),_0x3b7dfa=yield _0x353136[_0x16d753(0x26f)](),_0x2d096f=_0x3b7dfa['namespaceAliases'];console[_0x16d753(0x245)](_0x16d753(0x1ba),_0x2d096f),Array[_0x16d753(0x1d4)](_0x2d096f)&&(_0x3f7ba7[_0x16d753(0x1ba)]=_0x2d096f,_0x5803d9());})),_0x3f7ba7[_0x329732(0x1ba)]=_0x3f7ba7[_0x329732(0x1ba)]||[{'alias':'ua','namespaceUri':_0x329732(0x203),'isWellKnown':!![],'isDefault':!![]}];}_0x5803d9();}}});}()));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHhjYWE2YmQiLCJfMHgyYjQ5YmUiLCJfMHgzMzc4ZWEiLCJfMHgzNmU5Y2YiLCJfMHgyYmEwY2EiLCJfMHg0ZDA4N2MiLCJfMHgyMzBiNDIiLCJfMHgyYWJmMzEiLCJQcm9taXNlIiwiXzB4NDM5ZTNmIiwiXzB4MTMzZTZiIiwiXzB4MjFmMTc2IiwiXzB4MTZlYjQxIiwiXzB4M2Y4Yjc4IiwiXzB4NWJlNmM0IiwiXzB4MTZjMjlkIiwiXzB4YWRhYTkzIiwiXzB4MWMzNzU3IiwiXzB4M2I4NzI4IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NGVkNjc1IiwiXzB4NTEyMzliIiwiXzB4NTZmNTMwIiwiXzB4NWYyNTI2IiwiRXJyb3IiLCJfMHg0MDdjM2EiLCJfMHg1N2E1OTgiLCJfMHg0M2Y4Y2UiLCJfMHg0OWQ5MTEiLCJfMHg1NDc3N2IiLCJfMHgyMzU1OTciLCIkIiwiXzB4MzgzNTU5IiwiXzB4M2E4NmExIiwiXzB4ZTk5ZjUxIiwiXzB4NGE4MDBhIiwiYm9keSIsIl8weDJkY2EyNCIsInVybCIsIl8weDJkMTU0NSIsImZldGNoIiwiSlNPTiIsIl8weDI4YjlmNSIsIl8weDRlZTNhMyIsImNvbnNvbGUiLCJfMHgzOTM5ODMiLCJfMHg0Yzk4Y2YiLCJfMHgxMzY5OWUiLCJfMHg0NmM2MGYiLCJfMHg1YTc3MTEiLCJBcnJheSIsIl8weDI5ZThiZiIsIl8weDUyMWE4NiIsIl8weDE2YmI4YSIsIl8weDMzZmQ0YiIsImFyZ3VtZW50cyIsIl8weDRmNGI5OSIsIl8weDQxNGJjOSIsIl8weDdmMWQ4MCIsIl8weDU3ODNhMyIsIl8weDFmZTY4OCIsIkRhdGUiLCJfMHgyNDVlNTYiLCJfMHg0NGIyZGUiLCJfMHg2OTA0ZjMiLCJfMHgzZTM4NjEiLCJfMHg2ZDc2MCIsIl8weDYzMDMxMyIsIl8weDJhYmM4ZiIsIl8weDMzYTRiYyIsIl8weGVhZDY2MCIsIl8weDU1ZDNhNSIsIl8weDExNjUwYyIsIl8weDhjMzU1NCIsIl8weDI0YWE2NCIsImRvY3VtZW50IiwiXzB4NDdhM2Q5IiwiXzB4MmEyNWU3IiwiXzB4MjNjM2VkIiwiXzB4MTNmMTcxIiwiXzB4M2Q3YjYyIiwiXzB4NTcwMTI2IiwiXzB4MjBiNjUyIiwiXzB4M2UyYjY4IiwiVVJMIiwiXzB4MzE0Mjg5IiwiXzB4MmNlOWE5IiwiUkVEIiwiXzB4ODBhMmE5IiwiXzB4M2ViMzMxIiwiT2JqZWN0IiwiXzB4NWU4MGQzIiwiXzB4MmJkOGY2IiwiXzB4MjJiYjlmIiwiXzB4M2M0OGE2IiwiXzB4NWM2NzMyIiwiXzB4MWM4MTRhIiwiXzB4MWVlMTI5IiwiXzB4NTRhMzEyIiwiXzB4NTg5YWRjIiwiXzB4MmE5NTEwIiwiXzB4NDU4OWNjIiwiXzB4M2E1ZGZkIiwiXzB4MTRmNjJmIiwiXzB4MWExNmFhIiwiXzB4NTBhNDNlIiwiXzB4NGEzYmE3IiwiXzB4M2Y3YmE3IiwiXzB4Mzc0YjlmIiwiXzB4NDAxZGNjIiwic2V0VGltZW91dCIsIl8weDMxNTlmNCIsIl8weDJlNTkwMCIsInVuZGVmaW5lZCIsIl8weDJhZGE0MSIsIl8weDM0N2MxOCIsIl8weDE1MDQ3ZCIsIl8weDNkNDRjMCIsIl8weDFhYWJjZSIsIl8weDVjYmExYyIsIl8weDUwODRhZSIsIl8weDI0ZDNkOCIsIl8weDNiODRiMCIsIl8weDVhYjk5MyIsIl8weDUyOTRjZiIsIl8weDM5ZDJkOCIsIl8weDJlOWYwMSIsIl8weDM1YTQ1MyIsImFsZXJ0Iiwid2luZG93IiwiXzB4NTUzMGQyIiwiXzB4NWQyNTQ5IiwiXzB4MjVlNGQyIiwiXzB4NDFlMTMxIiwiXzB4MjE3MmQwIiwiXzB4Mjg1MjY0IiwiXzB4NGNkMTUwIiwiXzB4MTk2OTRjIiwiXzB4MTFiZjlhIiwiXzB4M2YzZmU3IiwiXzB4NDFhOTIzIiwiXzB4NTEzNmNlIiwiXzB4MWM3M2Q1IiwiXzB4NDE4Mjg0IiwiXzB4MTRhYTg4IiwiXzB4M2RjNDU5IiwiXzB4NGY1OWViIiwiXzB4NTJmZDc4IiwiXzB4MTQxNGM1IiwiXzB4MzQ0MDJhIiwiXzB4NTNhMmM2IiwiXzB4M2JjY2M1IiwiXzB4NDgxNzZhIiwiXzB4MmY2ZTJiIiwiXzB4MTMxNTY0IiwiXzB4NTgwM2Q5IiwiXzB4NTQyOTZjIiwiXzB4N2RhY2UiLCJfMHgzNTMxMzYiLCJfMHgzYjdkZmEiLCJfMHgyZDA5NmYiXSwibWFwcGluZ3MiOiJ3dUtBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxTQUNyRCxHQUFLLENBQUFILFNBQUEsRUFBTSxDQUFBQSxTQUFBLENBQUlLLE9BQUosQ0FBTixDQUFMLENBQXlCLFNBQVVDLFNBQVYsQ0FBbUJDLFNBQW5CLEMseUJBQzVCLFNBQVNDLFNBQVQsQ0FBbUJDLFNBQW5CLEMsQ0FBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxNQUFBLEVBQWVRLFNBQWYsQ0FBTCxDLEVBQStCLE1BQU9FLFNBQVAsQyxDQUFZSixTQUFBLENBQU9JLFNBQVAsQyxHQUM3RSxTQUFTQyxTQUFULENBQWtCQyxTQUFsQixDLENBQTJCLEcsQ0FBTUgsU0FBQSxDQUFLVCxTQUFBLEMsT0FBQSxFQUFtQlksU0FBbkIsQ0FBTCxDLEVBQW1DLE1BQU9DLFNBQVAsQyxDQUFZUCxTQUFBLENBQU9PLFNBQVAsQyxHQUNoRixTQUFTSixTQUFULENBQWNLLFNBQWQsQyx5QkFBd0JBLFNBQUEsQyxnQkFBQSxFQUFjVCxTQUFBLENBQVFTLFNBQUEsQyxnQkFBQSxDQUFSLENBQWQsQ0FBc0NiLFNBQUEsQ0FBTWEsU0FBQSxDLGdCQUFBLENBQU4sRSxNQUFBLEVBQXlCUCxTQUF6QixDQUFvQ0ksU0FBcEMsQyxFQUM5REYsU0FBQSxDQUFNLENBQUFULFNBQUEs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QUFPLE1BQU10SCxLQUFBLEMsZ0JBQUEsQ0FBdUQsQyxRQUN0RSxDLGdCQURzRSxDLFNBRXRFLENBQVMsQyxjQUFFLEMsZ0JBQUYsQ0FGNkQsQyxNQUd0RSxDQUFNQyxJQUFBLEMsZ0JBQUEsRUFBZW9ILFFBQWYsQ0FIZ0UsQ0FBdkQsQyxDQUtiRSxTQUFBLENBQU8sTUFBTUQsU0FBQSxDLGdCQUFBLEcsQ0FDYkUsU0FBQSxDQUFtQkQsU0FBQSxDLGtCQUFBLEMsQ0FDekJuSCxPQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFnQ29ILFNBQWhDLEMsQ0FDSTlHLEtBQUEsQyxnQkFBQSxFQUFjOEcsU0FBZCxDLEdBQ0FyRCxTQUFBLEMsZ0JBQUEsRUFBd0JxRCxTLENBQ3hCTCxTQUFBLEUsR0FmZ0MsQ0FBeEMsQyxDQWtCQWhELFNBQUEsQyxnQkFBQSxFQUF3QkEsU0FBQSxDLGdCQUFBLEdBQXlCLENBQzdDLEMsT0FDSSxDLElBREosQyxjQUVJLEMsZ0JBRkosQyxhQUdJLEMsSUFISixDLFdBSUksQyxJQUpKLENBRDZDLEMsRUFTckRnRCxTQUFBLEUsR0F4ZDhCLENBQTFDLEMsRUFoUUosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCwgSXRlcmF0b3IgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBtYW5hZ2VBUElDYWxsKHByZWZpeCwgYnRuLCBmdW5jLCBvblJlc3VsdCkge1xuICAgICAgICBjb25zdCBzdWNjZXNzSWNvbiA9ICQoYCMke3ByZWZpeH0tc3VjY2Vzc2ApO1xuICAgICAgICBjb25zdCBmYWlsdXJlSWNvbiA9ICQoYCMke3ByZWZpeH0tZmFpbHVyZWApO1xuICAgICAgICBjb25zdCBwZW5kaW5nSWNvbiA9ICQoYCMke3ByZWZpeH0tcGVuZGluZ2ApO1xuICAgICAgICBjb25zdCBtZXNzYWdlcyA9ICQoYCMke3ByZWZpeH0tbWVzc2FnZXNgKTtcbiAgICAgICAgbGV0IGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgc3VjY2Vzc0ljb24uaGlkZSgpO1xuICAgICAgICBmYWlsdXJlSWNvbi5oaWRlKCk7XG4gICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgYnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvblBlbmRpbmcpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IHRydWU7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5odG1sKFwiVGVzdGluZyBDb25uZWN0aW9uIC4uLlwiKTtcbiAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJcIik7XG4gICAgICAgICAgICBjb25zdCB7IGJvZHksIHVybCB9ID0gZnVuYygpO1xuICAgICAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHh4eFwiLCBib2R5KTtcbiAgICAgICAgICAgIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4gZGF0YS5qc29uKCkpXG4gICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIFwiIFwiKSk7XG4gICAgICAgICAgICAgICAgaWYgKGpzb24ucmVzdWx0ID09PSBcIm9rXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoanNvbi5tZXNzYWdlLnJlcGxhY2UoXCJcXG5cIiwgXCI8YnI+XCIpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0ID0gKHN0cikgPT4gIXN0clxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHN0clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdChcIlxcblwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGEpID0+IGA8cD4ke2F9PC9wPmApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0MiA9IChzdHIpID0+IChBcnJheS5pc0FycmF5KHN0cikgPyBzdHIubWFwKGFkYXB0KS5qb2luKFwiXFxuXCIpIDogYWRhcHQoc3RyKSk7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKGFkYXB0Mihqc29uLm1lc3NhZ2UpICsgYWRhcHQyKGpzb24uZXh0cmEpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobmV3IEVycm9yKGpzb24ucmVzdWx0KSwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKFwiaW50ZXJuYWwgZXJyb3IgXCIgKyBlcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmljaW5nVGFibGVJZCA9IFwicHJjdGJsXzFPSnQ0OUJDTmNjYnpzVnprYUFOT2dGTFwiO1xuICAgIGNvbnN0IHB1Ymxpc2hhYmxlS2V5ID0gXCJwa19saXZlXzUxSHNFMXNCQ05jY2J6c1Z6dDd6YXEydXYyMHBrcnlXbGxBenZaZ1pkNUFod0ZJOUEzcUJJZU9Kdkp3UUYwOGxEb0xwRnFMandteUE3OXduUG5ZTHN2S2p0MDA5ZjAwVnBDV1wiO1xuICAgIGZ1bmN0aW9uIGZldGNoTGljZW5jZUluZm8oKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgYXJndW1lbnRzLCB2b2lkIDAsIGZ1bmN0aW9uKiAoYmFzZVVybCA9IFwiXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vbGljZW5jZUluZm9gO1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0dXM6IFwiRkFJTEVEXCIsIHR5cGU6IFwiRlJFRVdBUkVcIiwgbGljZW5jZUluZm86IHsgZXhwaXJ5RGF0ZTogdG9kYXkgfSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QganNvbiA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICAgICAgcmV0dXJuIGpzb247XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWNsYXJlTGljZW5jZVdpZGdldCA9ICgpID0+IHtcbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5saWNlbmNlV2lkZ2V0XCIsIHtcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFjdExpbmsgPSBgPGEgaHJlZj1cIm1haWx0bzpzdXBwb3J0QHN0ZXJmaXZlLmNvbVwiIHN1YmplY3Q9XCJAb3BjdWEvZm9yLW5vZGUtcmVkIHN1cHBvcnQgcmVxdWVzdFwiPm1haWx0bzpzdXBwb3J0QHN0ZXJmaXZlLmNvbTwvYT5gO1xuICAgICAgICAgICAgICAgIGNvbnN0IHdlYnNpdGVMaW5rID0gYDxhIGhyZWY9XCJodHRwczovL3d3dy5zdGVyZml2ZS5jb20vb3BjdWEvZm9yLW5vZGUtcmVkXCIgdGFyZ2V0PeKAnV9ibGFua+KAnT5TdGVyZml2ZSdzIHdlYnNpdGUgPC9hPmA7XG4gICAgICAgICAgICAgICAgZmV0Y2hMaWNlbmNlSW5mbyh0aGF0LmJhc2VVcmwpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChqc29uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpY29uID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1zZyA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGxldCBkZXRhaWxzID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0ganNvbi5zdGF0dXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRheUxlZnQgPSBqc29uLmRheXNMZWZ0O1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkFVVEhPUklaRURcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJmYSBmYS1jaGVjay1jaXJjbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGpzb24udHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiVFJJQUxcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gXCJUcmlhbCBsaWNlbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzID0gYFRoZSBUcmlhbCB3aWxsIGV4cGlyZSBpbiAke2RheUxlZnR9IGRheXMuXFxuQnV5IG9ubGluZSBhbmQgdmlzaXQgJHt3ZWJzaXRlTGlua30gdG8gYWNxdWlyZSBhIGxpY2Vuc2UuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJQUk9GRVNTSU9OQUxcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IGBZb3VyIGxpY2VuY2UgaXMgdmFsaWQuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXlMZWZ0IDwgOTAgJiYgZGF5TGVmdCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnICs9IGAgSXQgd2lsbCBleHBpcmUgaW4gJHtkYXlMZWZ0fSBkYXlzLmA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkZXRhaWxzID0gYCR7d2Vic2l0ZUxpbmt9PGJyPiR7Y29udGFjdExpbmt9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBqc29uLmxpY2VuY2VJbmZvLmxpY2VuY2VUeXBlICsgXCIgLSBcIiArIChqc29uLmxpY2VuY2VJbmZvLm9uUHJlbWlzZVNlcnZlckhvc3QgfHwgXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkZSRUVXQVJFXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIkZyZWV3YXJlIGxpY2VuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgVGhpcyBpcyBhIGZyZWV3YXJlIGxpY2VuY2UsIGFuZCBoYXZlIHNvbWUgbGltaXRhdGlvbnMuXFxuJHt3ZWJzaXRlTGlua30gZm9yIG1vcmUgaW5mb3JtYXRpb24uYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJFWFBJUkVEXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbiA9IFwiZmEgZmEtY2FsZW5kYXItdGltZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiTGljZW5jZSBoYXMgZXhwaXJlZFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIllvdXIgbGljZW5zZSBoYXMgZXhwaXJlZC4gUGxlYXNlIGNvbnRhY3Qgb3VyIHN1cHBvcnQgdGVhbSBvciB2aXNpdCBvdXIgd2Vic2l0ZSB0byByZW5ldyB5b3VyIGxpY2Vuc2UgYW5kIHJlZ2FpbiBhY2Nlc3MgdG8gb3VyIHNlcnZpY2VzLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkZBSUxFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJmYSBmYS1leGNsYW1hdGlvbi1jaXJjbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIllvdXIgbGljZW5zZSBpcyBjdXJyZW50bHkgaW52YWxpZC5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzID0gYFBsZWFzZSBjb250YWN0ICR7Y29udGFjdExpbmt9IG9yIHZpc2l0IG91ciB3ZWJzaXRlIHRvIHJlbmV3IHlvdXIgbGljZW5zZSBhbmQgcmVnYWluIGFjY2VzcyB0byBvdXIgc2VydmljZXMuzIBgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8qKiAqL1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLmVsZW1lbnQudGV4dChcIkxpY2VuY2UgXCIgKyBKU09OLnN0cmluZ2lmeShqc29uKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0XCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1cIiArIHN0YXR1cyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxzcGFuPlwiKS5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LWljb25cIikuYXBwZW5kKCQoXCI8aT5cIikuYWRkQ2xhc3MoaWNvbikpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPHNwYW4+XCIpLmFkZENsYXNzKFwibGljZW5jZS13aWRnZXQtbXNnXCIpLnRleHQobXNnKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKCQoXCI8c3Bhbj5cIikuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1kZXRhaWxzXCIpLmFwcGVuZChkZXRhaWxzKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT09IFwiRVhQSVJFRFwiIHx8IHN0YXR1cyA9PT0gXCJGQUlMRURcIiB8fCBqc29uLnR5cGUgPT09IFwiRlJFRVdBUkVcIiB8fCBqc29uLnR5cGUgPT09IFwiVFJJQUxcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaWJlQnV0dG9uID0gJChcIjxidXR0b24vPlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi5hdHRyKFwiaWRcIiwgXCJzdWJzY3JpYmUtYnV0dG9uXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJjbGFzc1wiLCBcImJ0biBidG4tcHJpbWFyeVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi5hdHRyKFwic3R5bGVcIiwgXCJtYXJnaW4tdG9wOiAyMHB4O1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi50ZXh0KFwiU3Vic2NyaWJlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZChzdWJzY3JpYmVCdXR0b24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldCBhdHRyaWJ1dGVzIGZvciB0aGUgc2NyaXB0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdC5zcmMgPSBcImh0dHBzOi8vanMuc3RyaXBlLmNvbS92My9wcmljaW5nLXRhYmxlLmpzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHQuYXN5bmMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBzY3JpcHQgZWxlbWVudCB0byB0aGUgaGVhZCAob3IgYm9keSkgb2YgdGhlIGRvY3VtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAkKFwiaGVhZFwiKS5hcHBlbmQoc2NyaXB0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cmlwZVByaWNpbmdUYWJsZSA9ICQoXCI8c3RyaXBlLXByaWNpbmctdGFibGUvPlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldCBhdHRyaWJ1dGVzIGZvciB0aGUgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJwcmljaW5nLXRhYmxlLWlkXCIsIHByaWNpbmdUYWJsZUlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5hdHRyKFwicHVibGlzaGFibGUta2V5XCIsIHB1Ymxpc2hhYmxlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5hdHRyKFwic3R5bGVcIiwgXCJoZWlnaHQ6IDEwMCU7bWF4LWhlaWdodDogMTAwJTtcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpcGVQcmljaW5nVGFibGUuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZChzdHJpcGVQcmljaW5nVGFibGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXR0cihcInN0eWxlXCIsIFwiaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGluc3RhbGxGZWVkYmFja1dpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLy8gcmV0dXJuO1xuICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgY29uc3QgdHJheUNvbnRlbnQgPSAkKFwiLnJlZC11aS10cmF5LWJvZHlcIik7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiaW5zdGFsbEZlZWRiYWNrV2lkZ2V0IFwiLCB0cmF5Q29udGVudC5sZW5ndGgpO1xuICAgICAgICBpZiAodHJheUNvbnRlbnQubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImluc3RhbGxpbmcgaWZyYW1lXCIpO1xuICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBpZnJhbWUgZWxlbWVudFxuICAgICAgICAgICAgY29uc3QgaWZyYW1lID0gJChcIjxpZnJhbWU+PC9pZnJhbWU+XCIsIHtcbiAgICAgICAgICAgICAgICBzcmM6IFwiL29wY3VhLWZvci1ub2RlLXJlZC9zdXBwb3J0LWZyYW1lLmh0bWxcIixcbiAgICAgICAgICAgICAgICBzY3JvbGxpbmc6IFwibm9cIixcbiAgICAgICAgICAgICAgICBzdHlsZTogXCJiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O292ZXJmbG93OmhpZGRlbjtib3JkZXI6M3B4XCIsXG4gICAgICAgICAgICAgICAgYWxsb3d0cmFuc3BhcmVuY3k6IFwidHJ1ZVwiLFxuICAgICAgICAgICAgICAgIHdpZHRoOiBcIjE4MHB4XCIsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcIjMwcHhcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBpZnJhbWUgdG8gdGhlIGZlZWRiYWNrIGVsZW1lbnRcbiAgICAgICAgICAgIHRyYXlDb250ZW50LmFwcGVuZChpZnJhbWUpO1xuICAgICAgICAgICAgLy8gUG9zaXRpb24gdGhlIGZlZWRiYWNrIGVsZW1lbnQgYXQgdGhlIGJvdHRvbSByaWdodCBvZiB0aGUgdHJheSBjb250ZW50XG4gICAgICAgICAgICBpZnJhbWUuY3NzKHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiBcIjIwcHhcIixcbiAgICAgICAgICAgICAgICBib3R0b206IFwiMTZweFwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZGVjbGFyZUxpY2VuY2VXaWRnZXQoKTtcbiAgICBmdW5jdGlvbiBpc1ZhbGlkT1BDX1VBX1VSSShzdHIpIHtcbiAgICAgICAgbGV0IHVybDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHVybCA9IG5ldyBVUkwoc3RyKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoXykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1cmwucHJvdG9jb2wgPT09IFwib3BjLnRjcDpcIjtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFN1YnNjcmlwdGlvblBhcmFtZXRlcnMgPSB7XG4gICAgICAgIHB1Ymxpc2hpbmdFbmFibGVkOiB0cnVlLFxuICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiAxMDAwLFxuICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogMTAsIC8vIGV2ZXJ5IDEwIHNlY29uZHNcbiAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiAxMDAwLFxuICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogMCxcbiAgICAgICAgcHJpb3JpdHk6IDEwMCxcbiAgICB9O1xuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1FbmRwb2ludDJcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJjb25maWdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcIm9wY3VhIGVuZHBvaW50XCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzL1VBL1NhbXBsZVNlcnZlclwiLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiBpc1ZhbGlkT1BDX1VBX1VSSSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBTZWN1cml0eSBNb2RlXG4gICAgICAgICAgICBzZWN1cml0eU1vZGU6IHsgdmFsdWU6IFwiTm9uZVwiIH0sXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIk5vbmVcIixcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZTogeyB2YWx1ZTogXCJBbm9ueW1vdXNcIiB9LFxuICAgICAgICAgICAgcGtpTmFtZTogeyB2YWx1ZTogXCJcIiwgdmFsaWRhdGU6ICh2YWx1ZSkgPT4gKCF2YWx1ZSB8fCB2YWx1ZS5tYXRjaCgvWzAtOWEtekEtWl0qLykgPyB0cnVlIDogZmFsc2UpIH0sXG4gICAgICAgICAgICAvLyB0byB1c2Ugd2hlbiB1c2VySWRlbnRpdHlUeXBlIGlzIFVzZXJOYW1lXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgLy8gICAgIHVzZXJOYW1lOiB7IHZhbHVlOiBcIlwiLCB0eXBlOiBcInRleHRcIiB9LFxuICAgICAgICAgICAgLy8gICAgIHBhc3N3b3JkOiB7IHZhbHVlOiBcIlwiLCB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgICAgIC8vICAgICAvLyB0byB1c2Ugd2hlbiB1c2VySWRlbnRpdHlUeXBlIGlzIENlcnRpZmljYXRlXG4gICAgICAgICAgICAvLyAgICAgdXNlckNlcnRpZmljYXRlOiB7IHZhbHVicm93c2VQYXRoZTogXCJcIiwgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIC8vICAgICB1c2VyUHJpdmF0ZWtleTogeyB2YWx1ZTogXCJcIiAsIHR5cGU6IFwicGFzc3dvcmRcIn0sXG4gICAgICAgICAgICAvLyB9IGFzIGFueSAvKiBjaXJjdW12ZW50IGEgYnVnIGluIG5vZGUtcmVkICovLFxuICAgICAgICAgICAgLy8gdXNlcm5hbWVcbiAgICAgICAgICAgIHVzZVRyYW5zcG9ydDogeyB2YWx1ZTogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgbWF4Q2h1bmtDb3VudDogeyB2YWx1ZTogMSwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBtYXhNZXNzYWdlU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sIC8vIHNob3VsZCBiZSBhdCBsZWFzdCA4MTkyXG4gICAgICAgICAgICByZWNlaXZlQnVmZmVyU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBzZW5kQnVmZmVyU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGVmYXVsdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTdWJzY3JpcHRpb25QYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2xvdyBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50OiAzLCAvLyBldmVyeSAxNSBzZWNvbmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiA1MDAwLCAvL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRmFzdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogNDAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogNTAsIC8vIGV2ZXJ5IDEyLjUgc2Vjb25kc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogMjUwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDIwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlczoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcInVhXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVcmk6IFwiaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL1VBL1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNXZWxsS25vd246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcImRpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVcmk6IFwiaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL0RJL1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNXZWxsS25vd246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgdXNlck5hbWU6IHsgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiB7IHR5cGU6IFwicGFzc3dvcmRcIiB9LFxuICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlOiB7IHR5cGU6IFwidGV4dFwiIH0sXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleTogeyB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWw6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgdGhpcy5lbmRwb2ludCB8fCBcImludmFsaWQgZW5kcG9pbnRcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IF9zZWN1cml0eVBvbGljeSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlQb2xpY3lcIik7XG4gICAgICAgICAgICBjb25zdCBfc2VjdXJpdHlNb2RlID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eU1vZGVcIik7XG4gICAgICAgICAgICBpZiAoX3NlY3VyaXR5UG9saWN5LnZhbCgpID09PSBcIk5vbmVcIikge1xuICAgICAgICAgICAgICAgIF9zZWN1cml0eU1vZGUudGV4dChcIk5vbmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAoKCgoKCgoKCgoIHJldHJpZXZlIHN1YnNjcmlwdGlvbiBkYXRhICkpKSkpKSkpKSlcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25JdGVtcyA9ICQoXCIjc3Vic2NyaXB0aW9ucy1jb250YWluZXJcIikuZWRpdGFibGVMaXN0KFwiaXRlbXNcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgcyA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IG4gPSAoeCkgPT4geDtcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25JdGVtcy5lYWNoKGZ1bmN0aW9uIChpbmRleCwgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInNcIiArIGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZS5maW5kKFwiLmlucHV0LW5hbWVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6ICEhZS5maW5kKFwiLmlucHV0LWlzRGVmYXVsdFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoaW5nRW5hYmxlZDogISFlLmZpbmQoXCIuaW5wdXQtcHVibGlzaGluZ0VuYWJsZWRcIikuaXMoXCI6Y2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiBuKGUuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRMaWZldGltZUNvdW50XCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnRcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsXCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogbihlLmZpbmQoXCIuaW5wdXQtbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2hcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5OiBuKGUuZmluZChcIi5pbnB1dC1wcmlvcml0eVwiKS52YWwoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAvLyBmb3JjZSB0byBiZSB0cnVlXG4gICAgICAgICAgICAgICAgICAgIGEucGFyYW1ldGVycy5wdWJsaXNoaW5nRW5hYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhLmlzRGVmYXVsdCAmJiBhLmlkID09PSBcInMwXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vcm1hbGl6ZSBkZWZhdWx0IHN1YnNjcmlwdGlvbiBuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICBhLm5hbWUgPSBcIkRlZmF1bHQgU3Vic2NyaXB0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcy5wdXNoKGEpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAoKCgoKCgoKCgoIHJldHJpZXZlIG5hbWVzcGFjZSBhbGlhcyBkYXRhICkpKSkpKSkpKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIGFsaWFzZXNcbiAgICAgICAgICAgICAgICBjb25zdCBhbGlhc0l0ZW1zID0gJChcIiNlZGl0YWJsZS1saXN0LWFsaWFzZXMtY29udGFpbmVyXCIpLmVkaXRhYmxlTGlzdChcIml0ZW1zXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IFtdO1xuICAgICAgICAgICAgICAgIGFsaWFzSXRlbXMuZWFjaChmdW5jdGlvbiAoaW5kZXgsIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZDogXCJzXCIgKyBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZVVyaTogZS5maW5kKFwiLm5vZGUtaW5wdXQtYWxpYXMtbmFtZXNwYWNlLXVyaVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBlLmZpbmQoXCIubm9kZS1pbnB1dC1hbGlhcy1hbGlhc1wiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgdG1wLnB1c2goYSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5uYW1lc3BhY2VBbGlhc2VzID0gdG1wO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBpbnN0YWxsRmVlZGJhY2tXaWRnZXQoKTtcbiAgICAgICAgICAgIGNvbnN0IHRhYnMgPSBSRUQudGFicy5jcmVhdGUoe1xuICAgICAgICAgICAgICAgIGlkOiBcIm5vZGUtY29uZmlnLWVuZHBvaW50LXRhYnNcIixcbiAgICAgICAgICAgICAgICBvbmNoYW5nZTogZnVuY3Rpb24gKHRhYikge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWVuZHBvaW50LXRhYnMtY29udGVudFwiKS5jaGlsZHJlbigpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNcIiArIHRhYi5pZCkuc2hvdygpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRhYnMuYWRkVGFiKHtcbiAgICAgICAgICAgICAgICBpZDogXCJlbmRwb2ludC10YWItY29ubmVjdGlvblwiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIkNvbm5lY3Rpb25cIixcbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgdGFicy5hZGRUYWIoe1xuICAgICAgICAgICAgICAgIGlkOiBcImVuZHBvaW50LXRhYi1zdWJzY3JpcHRpb25zXCIsXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiU3Vic2NyaXB0aW9uc1wiLFxuICAgICAgICAgICAgfSwgMSk7XG4gICAgICAgICAgICB0YWJzLmFkZFRhYih7XG4gICAgICAgICAgICAgICAgaWQ6IFwiZW5kcG9pbnQtdGFiLW5hbWVzcGFjZS1hbGlhc2VzXCIsXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiTmFtZXNwYWNlIEFsaWFzZXNcIixcbiAgICAgICAgICAgIH0sIDIpO1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdGFicy5yZXNpemUoKTtcbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBTZWN1cml0eSBjb250cm9sc1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVTZWN1cml0eUNvbnRyb2wgPSAoc2VjdXJpdHlNb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc2VjdXJpdHlNb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIG51bGw6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJOb25lXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIi5zZWN0aW9uLXNlY3VyaXR5UG9saWN5XCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJTaWduXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiU2lnbkFuZEVuY3J5cHRcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwID0gJChcIi5zZWN0aW9uLXNlY3VyaXR5UG9saWN5XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3AudmFsKCkgPT09IFwiTm9uZVwiIHx8IHNwLnZhbCgpID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcC52YWwoXCJCYXNpYzI1NlNoYTI1NlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiLnNlY3Rpb24tc2VjdXJpdHlQb2xpY3lcIikuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnZhbGlkIHNlY3VyaXR5TW9kZSBcIiArIHNlY3VyaXR5TW9kZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHVwZGF0ZVNlY3VyaXR5Q29udHJvbChub2RlLnNlY3VyaXR5TW9kZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgX3NlY3VyaXR5TW9kZSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlNb2RlXCIpO1xuICAgICAgICAgICAgICAgIF9zZWN1cml0eU1vZGUub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdTZWN1cml0eU1vZGUgPSBfc2VjdXJpdHlNb2RlLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTZWN1cml0eUNvbnRyb2wobmV3U2VjdXJpdHlNb2RlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxpY2VuY2VXaWRnZXQgPSAkKFwiI2xpY2VuY2VXaWRnZXRcIik7XG4gICAgICAgICAgICBsaWNlbmNlV2lkZ2V0LmxpY2VuY2VXaWRnZXQoe1xuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgdGhlIFVzZXIgSWRlbnRpdHkgQ29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXV0aFJvdyA9ICQoXCIuc2VjdGlvbi11c2VySWRlbnRpdHlUeXBlLVVzZXJOYW1lXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlcnRSb3cgPSAkKFwiLnNlY3Rpb24tdXNlcklkZW50aXR5VHlwZS1DZXJ0aWZpY2F0ZVwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVJZGVudGl0eUNvbnRyb2xzID0gKHVzZXJJZGVudGl0eVR5cGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSA9IHVzZXJJZGVudGl0eVR5cGUgfHwgXCJBbm9ueW1vdXNcIjtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh1c2VySWRlbnRpdHlUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQW5vbnltb3VzXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VyTmFtZVwiKS52YWwoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1pbnB1dC1wYXNzd29yZFwiKS52YWwoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFJvdy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydFJvdy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiVXNlck5hbWVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoUm93LnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0Um93LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJDZXJ0aWZpY2F0ZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlck5hbWVcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtcGFzc3dvcmRcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRSb3cuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImludmFsaWQgdXNlcklkZW50aXR5VHlwZSBcIiArIHVzZXJJZGVudGl0eVR5cGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB1cGRhdGVJZGVudGl0eUNvbnRyb2xzKG5vZGUudXNlcklkZW50aXR5VHlwZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgX3VzZXJJZGVudGl0eVR5cGUgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJJZGVudGl0eVR5cGVcIik7XG4gICAgICAgICAgICAgICAgX3VzZXJJZGVudGl0eVR5cGUub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdJZGVudGl0eVR5cGUgPSBfdXNlcklkZW50aXR5VHlwZS52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlSWRlbnRpdHlDb250cm9scyhuZXdJZGVudGl0eVR5cGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBhZHZhbmNlZCBjb250cm9sc1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tQWR2YW5jZWRcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICQoXCIjdG9nZ2xlQWR2YW5jZWRTZWN0aW9uXCIpLnByb3AoXCJjaGVja2VkXCIsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAkKFwiI3RvZ2dsZUFkdmFuY2VkU2VjdGlvblwiKS5vbihcImNoYW5nZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLnByb3AoXCJjaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY2hlY2tib3ggaXMgY2hlY2tlZCwgc2hvdyB0aGUgZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tQWR2YW5jZWRcIikuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBoaWRlIGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tQWR2YW5jZWRcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB1c2VUcmFuc3BvcnRTZXR0aW5nID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VUcmFuc3BvcnRcIikucHJvcChcImNoZWNrZWRcIik7XG4gICAgICAgICAgICBpZiAodXNlVHJhbnNwb3J0U2V0dGluZykge1xuICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1UcmFuc3BvcnRTZXR0aW5nc1wiKS5zaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tVHJhbnNwb3J0U2V0dGluZ3NcIikuaGlkZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VUcmFuc3BvcnRcIikub24oXCJjaGFuZ2VcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLnByb3AoXCJjaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjaGVja2JveCBpcyBjaGVja2VkLCBzaG93IHRoZSBkaXZcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVRyYW5zcG9ydFNldHRpbmdzXCIpLnNob3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgaGlkZSBpdFxuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tVHJhbnNwb3J0U2V0dGluZ3NcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGNoZWNrQ2VydGlmaWNhdGVcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJChcIiNjaGVja0NlcnRpZmljYXRlXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2goXCIvb3BjdWEtZm9yLW5vZGUtcmVkL2NsaWVudF9jZXJ0aWZpY2F0ZS5qc29uXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmZvID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHQgPSBKU09OLnN0cmluZ2lmeShpbmZvLCBudWxsLCBcIiBcIik7XG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0KHQpO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgY29uZmlnIGJ1dHRvblxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgICQoXCIjZ290by1jb25maWdcIikub24oXCJjbGlja1wiLCAoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oXCIvb3BjdWEtZm9yLW5vZGUtcmVkL2NvbmZpZ1wiLCBcIl9ibGFua1wiKTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGV4dHJhY3RFbmRwb2ludERhdGEoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBub2RlLmlkLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1lbmRwb2ludFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1uYW1lXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBwa2lOYW1lOiAoX2EgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXBraU5hbWVcIikpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgc2VjdXJpdHlNb2RlOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5TW9kZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3k6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlQb2xpY3lcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlcklkZW50aXR5VHlwZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgdXNlck5hbWU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlck5hbWVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXBhc3N3b3JkXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlckNlcnRpZmljYXRlXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICB1c2VyUHJpdmF0ZWtleTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VyUHJpdmF0ZWtleVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgLy8vIG5vdCB0ZXN0ZWQgeWV0IC4uLjpcbiAgICAgICAgICAgICAgICAgICAgY2VydGlmaWNhdGU6ICQoXCIjbm9kZS1pbnB1dC1jZXJ0aWZpY2F0ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgdXNlVHJhbnNwb3J0OiAkKFwiI25vZGUtaW5wdXQtdXNlVHJhbnNwb3J0XCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICBtYXhDaHVua0NvdW50OiAkKFwiI25vZGUtaW5wdXQtbWF4Q2h1bmtDb3VudFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgbWF4TWVzc2FnZVNpemU6ICQoXCIjbm9kZS1pbnB1dC1tYXhNZXNzYWdlU2l6ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgcmVjZWl2ZUJ1ZmZlclNpemU6ICQoXCIjbm9kZS1pbnB1dC1yZWNlaXZlQnVmZmVyU2l6ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgc2VuZEJ1ZmZlclNpemU6ICQoXCIjbm9kZS1pbnB1dC1zZW5kQnVmZmVyU2l6ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSB0aGUgVGVzdCBidXR0b25cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbWFuYWdlQVBJQ2FsbChcImNvbm5lY3Rpb25cIiwgJChcIiN0ZXN0LWNvbm5lY3Rpb25cIiksICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIHVybDogXCIvb3BjdWEtZm9yLW5vZGUtcmVkL3Rlc3QtY29ubmVjdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IGV4dHJhY3RFbmRwb2ludERhdGEoKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSwgKCkgPT4geyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyAgSW5zdGFsbCBzdWJzY3JpcHRpb25zIExpc3QgbWFuYWdlbWVudFxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNpemVUb3BpY3MgPSAodG9waWMsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXdXaWR0aCA9IHRvcGljLndpZHRoKCkgfHwgMTAwO1xuICAgICAgICAgICAgICAgICAgICB0b3BpYy5maW5kKFwibGFiZWxcIikudHlwZWRJbnB1dChcIndpZHRoXCIsIG5ld1dpZHRoIC0gMTUpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uTGlzdCA9ICQoXCIjc3Vic2NyaXB0aW9ucy1jb250YWluZXJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IFwibWluLWhlaWdodFwiOiBcIjE1MHB4XCIsIFwibWluLXdpZHRoXCI6IFwiMjYwcHhcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuZWRpdGFibGVMaXN0KHtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXRlbTogKGNvbnRhaW5lciwgaW5kZXgsIGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IF9kYXRhID0gZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSAkKFwiI3N1YnNjcmlwdGlvbi10ZW1wbGF0ZVwiKS5jbG9uZSgpLmFwcGVuZFRvKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHIoXCJpZFwiKS5yZW1vdmVDbGFzcyhcImhpZGVcIikucmVtb3ZlQ2xhc3MoXCJ0ZW1wbGF0ZVwiKS5hdHRyKFwiZGF0YS1pXCIsIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1uYW1lXCIpLnZhbChfZGF0YS5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRQdWJsaXNoaW5nSW50ZXJ2YWxcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudFwiKS52YWwoX2RhdGEucGFyYW1ldGVycy5yZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTGlmZXRpbWVDb3VudFwiKS52YWwoX2RhdGEucGFyYW1ldGVycy5yZXF1ZXN0ZWRMaWZldGltZUNvdW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1tYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaFwiKS52YWwoX2RhdGEucGFyYW1ldGVycy5tYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaCB8fCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1wcmlvcml0eVwiKS52YWwoX2RhdGEucGFyYW1ldGVycy5wcmlvcml0eSB8fCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5zdWJzY3JpcHRpb24taWRcIikudGV4dChcIlwiICsgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9kYXRhLmlzRGVmYXVsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1uYW1lXCIpLnByb3AoXCJyZWFkb25seVwiLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1pc0RlZmF1bHRcIikucHJvcChcImNoZWNrZWRcIiwgX2RhdGEuaXNEZWZhdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IGRlZmF1bHQgc3Vic2NyaXB0aW9uIGNhbm5vdCBiZSBhY2NpZGVudGFsbHkgcmVtb3ZlZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9kYXRhLmlzRGVmYXVsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5maW5kKFwiLnJlZC11aS1lZGl0YWJsZUxpc3QtaXRlbS1yZW1vdmVcIikuYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZWxlbWVudC5maW5kKFwiLmlucHV0LWlzRGVmYXVsdFwiKS5wcm9wKFwiZGlzYWJsZWRcIiwgdHJ1ZSksIDEwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgLy8gc29ydGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHJlbW92YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgcmVzaXplSXRlbTogcmVzaXplVG9waWNzLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGxTdWJzY3JpcHRpb25zID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25zID0gbm9kZS5zdWJzY3JpcHRpb25zIHx8IFtdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3Vic2NyaXB0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkZCBtaXNzaW5nIGRlZmF1bHQgc3Vic2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInMxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJEZWZhdWx0IFN1YnNjcmlwdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U3Vic2NyaXB0aW9uUGFyYW1ldGVycyksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25MaXN0LmVkaXRhYmxlTGlzdChcImVtcHR5XCIpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzdWJzY3JpcHRpb24uaXNEZWZhdWx0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25MaXN0LmVkaXRhYmxlTGlzdChcImFkZEl0ZW1cIiwgc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZmlsbFN1YnNjcmlwdGlvbnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyAgSW5zdGFsbCBuYW1lc3BhY2UgYWxpYXMgTGlzdCBtYW5hZ2VtZW50XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGFkZEFsaWFzQ3RybChjb250YWluZXIsIGluZGV4LCBhcmcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGFyZztcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm93ID0gJCgnPGRpdiBjbGFzcz1cImFsaWFzLWVudHJ5XCI+JykuYXBwZW5kVG8oY29udGFpbmVyKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29udGFpbmVyLmRhdGEoXCJkYXRhXCIsIGFyZyk7XG4gICAgICAgICAgICAgICAgICAgICQoXCI8aW5wdXQvPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJub2RlLWlucHV0LWFsaWFzLWluZGV4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLmFsaWFzIHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiNSVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKHJvdylcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoaW5kZXgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCI8aW5wdXQvPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJub2RlLWlucHV0LWFsaWFzLWFsaWFzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLmFsaWFzIHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiMjUlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhyb3cpXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGRhdGEuYWxpYXMpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiPGlucHV0Lz5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibm9kZS1pbnB1dC1hbGlhcy1uYW1lc3BhY2UtdXJpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLm5hbWVzcGFjZVVyaSB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjcwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8ocm93KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbChkYXRhLm5hbWVzcGFjZVVyaSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGFsaWFzZXNMaXN0ID0gJChcIiNlZGl0YWJsZS1saXN0LWFsaWFzZXMtY29udGFpbmVyXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyBcIm1pbi1oZWlnaHRcIjogXCIxNTBweFwiLCBcIm1pbi13aWR0aFwiOiBcIjI2MHB4XCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgICAgIGFkZEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHJlbW92YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbE9uQWRkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgYWRkSXRlbShjb250YWluZXIsIGksIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZEFsaWFzQ3RybChjb250YWluZXIsIGksIGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGZpbGxOYW1lc3BhY2VBbGlhc2VzKCkge1xuICAgICAgICAgICAgICAgICAgICBhbGlhc2VzTGlzdC5lZGl0YWJsZUxpc3QoXCJpdGVtc1wiKTtcbiAgICAgICAgICAgICAgICAgICAgYWxpYXNlc0xpc3QuZWRpdGFibGVMaXN0KFwiZW1wdHlcIik7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYWxpYXMgb2Ygbm9kZS5uYW1lc3BhY2VBbGlhc2VzIHx8IFtdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzTGlzdC5lZGl0YWJsZUxpc3QoXCJhZGRJdGVtXCIsIGFsaWFzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBCdXR0b25cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjZXh0cmFjdC1hbGlhc2VzXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IGV4dHJhY3RFbmRwb2ludERhdGEoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VBbGlhc2VzOiBub2RlLm5hbWVzcGFjZUFsaWFzZXMgfHwgW10sXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKFwiL29wY3VhLWZvci1ub2RlLXJlZC9leHRyYWN0LW5hbWVzcGFjZS1hbGlhc2VzXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShvcHRpb25zKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5mbyA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmFtZXNwYWNlQWxpYXNlcyA9IGluZm8ubmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibmFtZXNwYWNlQWxpYXNlc1wiLCBuYW1lc3BhY2VBbGlhc2VzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG5hbWVzcGFjZUFsaWFzZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5uYW1lc3BhY2VBbGlhc2VzID0gbmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsTmFtZXNwYWNlQWxpYXNlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUubmFtZXNwYWNlQWxpYXNlcyA9IG5vZGUubmFtZXNwYWNlQWxpYXNlcyB8fCBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXM6IFwidWFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVcmk6IFwiaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL1VBL1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzV2VsbEtub3duOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZpbGxOYW1lc3BhY2VBbGlhc2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
7
+ function _0x1a4c(){const _0x1cc507=['#node-config-input-useTransport','daysLeft','This\x20is\x20a\x20freeware\x20licence,\x20and\x20have\x20some\x20limitations.\x0a','/opcua-for-node-red/extract-namespace-aliases','/opcua-for-node-red/config','Your\x20license\x20is\x20currently\x20invalid.','apply','done','endpoint-tab-subscriptions','isDefault','function','FREEWARE','/opcua-for-node-red/support-frame.html','change','\x20days.','createElement','auto','node-input-alias-index','addTab','empty','err','UserName','statusText','#node-config-input-userName','class','hide','config','\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.̀','licenceType','password','connection','maxNotificationsPerPublish','height:\x20100%\x20!important;','Basic256Sha256','alias','true','<br>','#test-connection','namespaceUri','Certificate','#goto-config','assign','pk_live_51HsE1sBCNccbzsVzt7zaq2uv20pkryWllAzvZgZd5AhwFI9A3qBIeOJvJwQF08lDoLpFqLjwmyA79wnPnYLsvKjt009f00VpCW','catch','10359WLFZpO','Default\x20Subscription','invalid\x20securityMode\x20','val','/licenceInfo','click','http://opcfoundation.org/UA/','subscribe-button','stringify','http://opcfoundation.org/DI/','map','removeClass','#node-config-input-userIdentityType','margin-top:\x2020px;','typedInput','Fast\x20Subscription','2109546fqfyVM','next','prctbl_1OJt49BCNccbzsVzkaANOgFL','The\x20Trial\x20will\x20expire\x20in\x20','803488OIaKvt','\x20days.\x0aBuy\x20online\x20and\x20visit\x20','node-input-alias-namespace-uri','log','SignAndEncrypt','#node-input-receiveBufferSize','.red-ui-editableList-item-remove','_blank','FAILED','\x20to\x20acquire\x20a\x20license.','script','parameters','data-i','licenceWidget','node-input-alias-alias','toString','Your\x20licence\x20is\x20valid.','<div\x20class=\x22alias-entry\x22>','licenceInfo','#node-config-input-securityPolicy','tabs','each','30px','16px','.section-securityPolicy','head',':checked','opc.tcp://opcuademo.sterfive.com:26543/UA/SampleServer','node-config-endpoint-tabs','.input-requestedPublishingInterval','#node-config-input-endpoint','.input-isDefault','opc.tcp:','append','securityMode','8397KZjpEP','Testing\x20Connection\x20...','match','3106272RZHfhp','Trial\x20licence','widget','status','throw','#node-input-maxMessageSize','suppressed','isArray','260px','EXPIRED','appendTo','style','-pending','#editable-list-aliases-container','.input-requestedLifetimeCount','180px','.red-ui-tray-body','registerType','create','namespaceAliases','opcua\x20endpoint','result','TRIAL','then','Namespace\x20Aliases','4940EMKfNz','show','find','#node-config-input-userCertificate','#section-Advanced','requestedLifetimeCount','application/json','35SOUfvh','150px','70%','\x20for\x20more\x20information.','type','element','height:\x20100%;max-height:\x20100%;','Freeware\x20licence','template','#subscriptions-container','priority','#node-config-input-name','-failure','installing\x20iframe','Anonymous','#node-config-input-securityMode','nodes','20px','items','publishingEnabled','value','#checkCertificate','subscriptions','<a\x20href=\x22https://www.sterfive.com/opcua/for-node-red\x22\x20target=”_blank”>Sterfive\x27s\x20website\x20</a>','44HGuNrH','prop','https://js.stripe.com/v3/pricing-table.js','.node-input-alias-namespace-uri','#node-config-input-pkiName','endpoint-tab-namespace-aliases','invalid\x20userIdentityType\x20','<input/>','fetching\x20failed\x20with\x20error','licence-widget-icon','PROFESSIONAL','<span>','html','\x20-\x20','push','.subscription-id','onPremiseServerHost','None','endpoint-tab-connection','.input-priority','#node-input-useTransport','internal\x20error\x20','Your\x20license\x20has\x20expired.\x20Please\x20contact\x20our\x20support\x20team\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.','publishable-key','checked','.input-name','json','#node-input-sendBufferSize','addClass','message','open','134356FmeVyX','#toggleAdvancedSection','css','#node-config-input-password','148720QoJMoD','disabled','.input-requestedMaxKeepAliveCount','userIdentityType','replace','<button/>','fa\x20fa-exclamation-circle','requestedPublishingInterval','readonly','clone','.input-publishingEnabled','.input-maxNotificationsPerPublish','width','#section-TransportSettings','Licence\x20has\x20expired','Subscriptions','name','attr','installFeedbackWidget\x20','resize','absolute','Slow\x20Subscription','.node-input-alias-alias','background-color:transparent;overflow:hidden;border:3px','Please\x20contact\x20','join','fa\x20fa-calendar-time','-messages','length','editableList','<stripe-pricing-table/>','removeAttr','POST','pricing-table-id','text','endpoint'];_0x1a4c=function(){return _0x1cc507;};return _0x1a4c();}function _0x42a2(_0x26882d,_0x566cf6){const _0x1a4cd9=_0x1a4c();return _0x42a2=function(_0x42a2d1,_0x47b7bd){_0x42a2d1=_0x42a2d1-0x12d;let _0x10456c=_0x1a4cd9[_0x42a2d1];return _0x10456c;},_0x42a2(_0x26882d,_0x566cf6);}(function(_0x358427,_0x2d5b0c){const _0x33864e=_0x42a2,_0x27524f=_0x358427();while(!![]){try{const _0x3a16ab=parseInt(_0x33864e(0x15b))/0x1+-parseInt(_0x33864e(0x138))/0x2*(-parseInt(_0x33864e(0x1e2))/0x3)+-parseInt(_0x33864e(0x157))/0x4*(parseInt(_0x33864e(0x205))/0x5)+parseInt(_0x33864e(0x1bb))/0x6+parseInt(_0x33864e(0x1bf))/0x7+parseInt(_0x33864e(0x1e5))/0x8+parseInt(_0x33864e(0x1ab))/0x9*(-parseInt(_0x33864e(0x1fe))/0xa);if(_0x3a16ab===_0x2d5b0c)break;else _0x27524f['push'](_0x27524f['shift']());}catch(_0x492a86){_0x27524f['push'](_0x27524f['shift']());}}}(_0x1a4c,0x3fc78),(function(){'use strict';const _0x202af3=_0x42a2;function _0x992585(_0x570da5,_0x1ed407,_0x511a6a,_0x5cbc72){function _0x408442(_0x3646b0){return _0x3646b0 instanceof _0x511a6a?_0x3646b0:new _0x511a6a(function(_0x2369b4){_0x2369b4(_0x3646b0);});}return new(_0x511a6a||(_0x511a6a=Promise))(function(_0x56df03,_0x28aa03){const _0x37fd7c=_0x42a2;function _0x2d5369(_0x1d2583){const _0x25f4da=_0x42a2;try{_0x3320aa(_0x5cbc72[_0x25f4da(0x1bc)](_0x1d2583));}catch(_0x579b50){_0x28aa03(_0x579b50);}}function _0x522973(_0x642aed){const _0x92b8a8=_0x42a2;try{_0x3320aa(_0x5cbc72[_0x92b8a8(0x1e9)](_0x642aed));}catch(_0x145462){_0x28aa03(_0x145462);}}function _0x3320aa(_0x56c3b3){const _0x98b7d4=_0x42a2;_0x56c3b3[_0x98b7d4(0x186)]?_0x56df03(_0x56c3b3[_0x98b7d4(0x134)]):_0x408442(_0x56c3b3[_0x98b7d4(0x134)])[_0x98b7d4(0x1fc)](_0x2d5369,_0x522973);}_0x3320aa((_0x5cbc72=_0x5cbc72[_0x37fd7c(0x185)](_0x570da5,_0x1ed407||[]))[_0x37fd7c(0x1bc)]());});}typeof SuppressedError===_0x202af3(0x189)?SuppressedError:function(_0x16826f,_0x4c624a,_0x13d28f){const _0x1076c5=_0x202af3;var _0x118cbc=new Error(_0x13d28f);return _0x118cbc[_0x1076c5(0x16b)]='SuppressedError',_0x118cbc['error']=_0x16826f,_0x118cbc[_0x1076c5(0x1eb)]=_0x4c624a,_0x118cbc;};function _0x2a8244(_0x24701d,_0x555f57,_0x45f96c,_0x39c24d){const _0x159998=_0x202af3,_0x3deae8=$('#'+_0x24701d+'-success'),_0xc4c5bc=$('#'+_0x24701d+_0x159998(0x211)),_0x140164=$('#'+_0x24701d+_0x159998(0x1f1)),_0x26877b=$('#'+_0x24701d+_0x159998(0x176));let _0x4a79ac=![];_0x3deae8[_0x159998(0x198)](),_0xc4c5bc[_0x159998(0x198)](),_0x140164['hide'](),_0x555f57['on'](_0x159998(0x1b0),()=>{const _0x2a83a7=_0x159998;if(_0x4a79ac)return;_0x4a79ac=!![],_0x140164['removeClass'](_0x2a83a7(0x198)),_0x140164[_0x2a83a7(0x144)](_0x2a83a7(0x1e3)),_0x3deae8['addClass'](_0x2a83a7(0x198)),_0xc4c5bc[_0x2a83a7(0x154)](_0x2a83a7(0x198)),_0x26877b[_0x2a83a7(0x144)]('');const {body:_0x37e995,url:_0x4c5699}=_0x45f96c();fetch(_0x4c5699,{'method':'POST','headers':{'Content-Type':_0x2a83a7(0x204)},'body':JSON[_0x2a83a7(0x1b3)](_0x37e995)})[_0x2a83a7(0x1fc)](_0x4beb49=>_0x4beb49[_0x2a83a7(0x152)]())[_0x2a83a7(0x1fc)](_0x3a1c9b=>{const _0xc3c629=_0x2a83a7;_0x4a79ac=![],_0x140164['hide'](),console[_0xc3c629(0x1c2)](JSON['stringify'](_0x3a1c9b,null,'\x20'));if(_0x3a1c9b[_0xc3c629(0x1fa)]==='ok')_0x3deae8['removeClass'](_0xc3c629(0x198)),_0xc4c5bc[_0xc3c629(0x154)](_0xc3c629(0x198)),_0x26877b[_0xc3c629(0x144)](_0x3a1c9b[_0xc3c629(0x155)][_0xc3c629(0x15f)]('\x0a',_0xc3c629(0x1a3)));else{const _0x1c9636=_0x43cc73=>!_0x43cc73?'':_0x43cc73['split']('\x0a')[_0xc3c629(0x1b5)](_0x3ce07b=>'<p>'+_0x3ce07b+'</p>')['join']('\x0a'),_0x1420f1=_0x2adf77=>Array[_0xc3c629(0x1ec)](_0x2adf77)?_0x2adf77[_0xc3c629(0x1b5)](_0x1c9636)[_0xc3c629(0x174)]('\x0a'):_0x1c9636(_0x2adf77);_0x3deae8[_0xc3c629(0x154)](_0xc3c629(0x198)),_0xc4c5bc[_0xc3c629(0x1b6)](_0xc3c629(0x198)),_0x26877b[_0xc3c629(0x144)](_0x1420f1(_0x3a1c9b[_0xc3c629(0x155)])+_0x1420f1(_0x3a1c9b['extra'])),_0x39c24d(new Error(_0x3a1c9b[_0xc3c629(0x1fa)]),_0x3a1c9b);}})[_0x2a83a7(0x1aa)](_0x362a4c=>{const _0x41b5a4=_0x2a83a7;_0x4a79ac=![],_0x140164[_0x41b5a4(0x154)]('hide'),_0x3deae8[_0x41b5a4(0x154)]('hide'),_0xc4c5bc[_0x41b5a4(0x1b6)]('hide'),_0x26877b[_0x41b5a4(0x144)](_0x41b5a4(0x14d)+_0x362a4c[_0x41b5a4(0x155)]),console[_0x41b5a4(0x1c2)](_0x41b5a4(0x193),_0x362a4c);});});}const _0x239a83=_0x202af3(0x1bd),_0x2c0f14=_0x202af3(0x1a9);function _0x5b3d9a(){return _0x992585(this,arguments,void 0x0,function*(_0x1c0966=''){const _0x4fc0e3=_0x42a2,_0x1da6e3=_0x1c0966+'/opcua-for-node-red',_0x3cfa81=_0x1da6e3+_0x4fc0e3(0x1af),_0x33ee51=yield fetch(_0x3cfa81,{'method':'POST','headers':{'Content-Type':_0x4fc0e3(0x204)}}),_0x1997d9=new Date()['toISOString']();if(_0x33ee51[_0x4fc0e3(0x1e8)]!==0xc8)return console[_0x4fc0e3(0x1c2)](_0x4fc0e3(0x140),_0x33ee51[_0x4fc0e3(0x1e8)],_0x33ee51[_0x4fc0e3(0x195)]),{'status':_0x4fc0e3(0x1c7),'type':_0x4fc0e3(0x18a),'licenceInfo':{'expiryDate':_0x1997d9}};const _0x5f49c9=yield _0x33ee51[_0x4fc0e3(0x152)]();return _0x5f49c9;});}const _0x44e41a=()=>{const _0x5310bb=_0x202af3;$[_0x5310bb(0x1e7)]('sterfive.licenceWidget',{'options':{'baseUrl':''},'_create'(){const _0x4e7268=_0x5310bb,_0x13d6fd=this,_0x306bc8='<a\x20href=\x22mailto:support@sterfive.com\x22\x20subject=\x22@opcua/for-node-red\x20support\x20request\x22>mailto:support@sterfive.com</a>',_0x4a74e4=_0x4e7268(0x137);_0x5b3d9a(_0x13d6fd['baseUrl'])[_0x4e7268(0x1fc)](_0x49ec31=>{const _0x5bcfb4=_0x4e7268;let _0x3dfaa1='',_0x1a2d6a='',_0x3bd671='';const _0x5f0225=_0x49ec31[_0x5bcfb4(0x1e8)],_0x1247fc=_0x49ec31[_0x5bcfb4(0x180)];switch(_0x5f0225){case'AUTHORIZED':_0x3dfaa1='fa\x20fa-check-circle';switch(_0x49ec31[_0x5bcfb4(0x209)]){case _0x5bcfb4(0x1fb):{_0x1a2d6a=_0x5bcfb4(0x1e6),_0x3bd671=_0x5bcfb4(0x1be)+_0x1247fc+_0x5bcfb4(0x1c0)+_0x4a74e4+_0x5bcfb4(0x1c8);break;}case _0x5bcfb4(0x142):_0x1a2d6a=_0x5bcfb4(0x1cf);_0x1247fc<0x5a&&_0x1247fc>=0x0&&(_0x1a2d6a+='\x20It\x20will\x20expire\x20in\x20'+_0x1247fc+_0x5bcfb4(0x18d));_0x3bd671=_0x49ec31[_0x5bcfb4(0x1d1)][_0x5bcfb4(0x19b)]+_0x5bcfb4(0x145)+(_0x49ec31['licenceInfo'][_0x5bcfb4(0x148)]||'');break;case _0x5bcfb4(0x18a):_0x1a2d6a=_0x5bcfb4(0x20c),_0x3bd671=_0x5bcfb4(0x181)+_0x4a74e4+_0x5bcfb4(0x208);break;}break;case _0x5bcfb4(0x1ee):_0x3dfaa1=_0x5bcfb4(0x175),_0x1a2d6a=_0x5bcfb4(0x169),_0x3bd671=_0x5bcfb4(0x14e);break;case _0x5bcfb4(0x1c7):default:_0x3dfaa1=_0x5bcfb4(0x161),_0x1a2d6a=_0x5bcfb4(0x184),_0x3bd671=_0x5bcfb4(0x173)+_0x306bc8+_0x5bcfb4(0x19a);break;}this[_0x5bcfb4(0x20a)][_0x5bcfb4(0x154)]('licence-widget'),this[_0x5bcfb4(0x20a)][_0x5bcfb4(0x154)]('licence-widget-'+_0x5f0225),this[_0x5bcfb4(0x20a)][_0x5bcfb4(0x1e0)]($('<span>')[_0x5bcfb4(0x154)](_0x5bcfb4(0x141))[_0x5bcfb4(0x1e0)]($('<i>')[_0x5bcfb4(0x154)](_0x3dfaa1))),this[_0x5bcfb4(0x20a)][_0x5bcfb4(0x1e0)]($(_0x5bcfb4(0x143))[_0x5bcfb4(0x154)]('licence-widget-msg')['text'](_0x1a2d6a)),this['element'][_0x5bcfb4(0x1e0)]($(_0x5bcfb4(0x1a3))),this['element'][_0x5bcfb4(0x1e0)]($(_0x5bcfb4(0x143))[_0x5bcfb4(0x154)]('licence-widget-details')['append'](_0x3bd671));if(_0x5f0225==='EXPIRED'||_0x5f0225===_0x5bcfb4(0x1c7)||_0x49ec31['type']===_0x5bcfb4(0x18a)||_0x49ec31[_0x5bcfb4(0x209)]===_0x5bcfb4(0x1fb)){const _0x35e743=$(_0x5bcfb4(0x160));_0x35e743['attr']('id',_0x5bcfb4(0x1b2)),_0x35e743[_0x5bcfb4(0x16c)](_0x5bcfb4(0x197),'btn\x20btn-primary'),_0x35e743[_0x5bcfb4(0x16c)](_0x5bcfb4(0x1f0),_0x5bcfb4(0x1b8)),_0x35e743['text']('Subscribe'),this[_0x5bcfb4(0x20a)][_0x5bcfb4(0x1e0)](_0x35e743);const _0x208dec=document[_0x5bcfb4(0x18e)](_0x5bcfb4(0x1c9));_0x208dec['src']=_0x5bcfb4(0x13a),_0x208dec['async']=!![],$(_0x5bcfb4(0x1d8))[_0x5bcfb4(0x1e0)](_0x208dec);const _0xcc7219=$(_0x5bcfb4(0x179));_0xcc7219[_0x5bcfb4(0x16c)](_0x5bcfb4(0x17c),_0x239a83),_0xcc7219[_0x5bcfb4(0x16c)](_0x5bcfb4(0x14f),_0x2c0f14),_0xcc7219[_0x5bcfb4(0x16c)]('style',_0x5bcfb4(0x20b)),_0xcc7219[_0x5bcfb4(0x198)](),this['element'][_0x5bcfb4(0x1e0)](_0xcc7219),_0x35e743['on']('click',()=>{const _0x111b9f=_0x5bcfb4;_0xcc7219['show'](),_0x35e743['hide'](),this['element']['attr']('style',_0x111b9f(0x19f));});}})['catch'](_0x32a838=>{console['log'](_0x32a838);});}});},_0x3f3943=()=>{const _0xcccd52=_0x202af3,_0x4933c3=$(_0xcccd52(0x1f5));console[_0xcccd52(0x1c2)](_0xcccd52(0x16d),_0x4933c3[_0xcccd52(0x177)]);if(_0x4933c3['length']){console['log'](_0xcccd52(0x12d));const _0x144586=$('<iframe></iframe>',{'src':_0xcccd52(0x18b),'scrolling':'no','style':_0xcccd52(0x172),'allowtransparency':_0xcccd52(0x1a2),'width':_0xcccd52(0x1f4),'height':_0xcccd52(0x1d5)});_0x4933c3['append'](_0x144586),_0x144586[_0xcccd52(0x159)]({'position':_0xcccd52(0x16f),'right':_0xcccd52(0x131),'bottom':_0xcccd52(0x1d6)});}};_0x44e41a();function _0x4099a6(_0x149ffb){const _0x1d7195=_0x202af3;let _0x1de49a;try{_0x1de49a=new URL(_0x149ffb);}catch(_0x513bca){return![];}return _0x1de49a['protocol']===_0x1d7195(0x1df);}const _0xa4a72a={'publishingEnabled':!![],'requestedLifetimeCount':0x3e8,'requestedMaxKeepAliveCount':0xa,'requestedPublishingInterval':0x3e8,'maxNotificationsPerPublish':0x0,'priority':0x64};RED[_0x202af3(0x130)][_0x202af3(0x1f6)]('OpcUa-Endpoint2',{'category':_0x202af3(0x199),'paletteLabel':_0x202af3(0x1f9),'defaults':{'name':{'value':''},'endpoint':{'value':_0x202af3(0x1da),'required':!![],'validate':_0x4099a6},'securityMode':{'value':_0x202af3(0x149)},'securityPolicy':{'value':_0x202af3(0x149),'validate':_0x2db048=>{if(!_0x2db048)return![];return!![];}},'userIdentityType':{'value':_0x202af3(0x12e)},'pkiName':{'value':'','validate':_0x34adba=>!_0x34adba||_0x34adba[_0x202af3(0x1e4)](/[0-9a-zA-Z]*/)?!![]:![]},'useTransport':{'value':![],'required':![]},'maxChunkCount':{'value':0x1,'required':![]},'maxMessageSize':{'value':0x2000,'required':![]},'receiveBufferSize':{'value':0x2000,'required':![]},'sendBufferSize':{'value':0x2000,'required':![]},'subscriptions':{'value':[{'id':'s1','name':_0x202af3(0x1ac),'isDefault':!![],'parameters':Object[_0x202af3(0x1a8)]({},_0xa4a72a)},{'id':'s2','name':_0x202af3(0x170),'isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0x64,'requestedMaxKeepAliveCount':0x3,'requestedPublishingInterval':0x1388,'maxNotificationsPerPublish':0x64,'priority':0xa}},{'id':'s3','name':_0x202af3(0x1ba),'isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0xfa0,'requestedMaxKeepAliveCount':0x32,'requestedPublishingInterval':0xfa,'maxNotificationsPerPublish':0x64,'priority':0xc8}}],'required':![]},'namespaceAliases':{'value':[{'alias':'ua','namespaceUri':_0x202af3(0x1b1),'isWellKnown':!![],'isDefault':!![]},{'alias':'di','namespaceUri':_0x202af3(0x1b4),'isWellKnown':!![],'isDefault':!![]}],'required':![]}},'credentials':{'userName':{'type':_0x202af3(0x17d)},'password':{'type':_0x202af3(0x19c)},'userCertificate':{'type':_0x202af3(0x17d)},'userPrivatekey':{'type':_0x202af3(0x19c)}},'label':function(){const _0x21b219=_0x202af3;return this[_0x21b219(0x16b)]||this[_0x21b219(0x17e)]||'invalid\x20endpoint';},'oneditsave'(){const _0x1ec725=_0x202af3,_0x38b50f=$(_0x1ec725(0x1d2)),_0x1b6cfc=$('#node-config-input-securityMode');_0x38b50f['val']()===_0x1ec725(0x149)&&_0x1b6cfc[_0x1ec725(0x17d)](_0x1ec725(0x149));{const _0x5c9f26=$(_0x1ec725(0x20e))[_0x1ec725(0x178)](_0x1ec725(0x132)),_0x536da1=[],_0x26c649=_0x284c66=>_0x284c66;_0x5c9f26[_0x1ec725(0x1d4)](function(_0x5b2ded,_0x3eb6ec){const _0xfce80b=_0x1ec725,_0x460572=$(this),_0x23b542={'id':'s'+_0x5b2ded,'name':_0x460572[_0xfce80b(0x200)](_0xfce80b(0x151))[_0xfce80b(0x1ae)](),'isDefault':!!_0x460572[_0xfce80b(0x200)](_0xfce80b(0x1de))[_0xfce80b(0x1ae)](),'parameters':{'publishingEnabled':!!_0x460572[_0xfce80b(0x200)](_0xfce80b(0x165))['is'](_0xfce80b(0x1d9)),'requestedLifetimeCount':_0x26c649(_0x460572[_0xfce80b(0x200)](_0xfce80b(0x1f3))[_0xfce80b(0x1ae)]()),'requestedMaxKeepAliveCount':_0x26c649(_0x460572['find'](_0xfce80b(0x15d))[_0xfce80b(0x1ae)]()),'requestedPublishingInterval':_0x26c649(_0x460572[_0xfce80b(0x200)]('.input-requestedPublishingInterval')[_0xfce80b(0x1ae)]()),'maxNotificationsPerPublish':_0x26c649(_0x460572[_0xfce80b(0x200)](_0xfce80b(0x166))[_0xfce80b(0x1ae)]()),'priority':_0x26c649(_0x460572['find']('.input-priority')[_0xfce80b(0x1ae)]())}};_0x23b542['parameters'][_0xfce80b(0x133)]=!![],_0x23b542[_0xfce80b(0x188)]&&_0x23b542['id']==='s0'&&(_0x23b542[_0xfce80b(0x16b)]='Default\x20Subscription'),_0x536da1['push'](_0x23b542);}),this['subscriptions']=_0x536da1;}{const _0x1cac6f=$('#editable-list-aliases-container')[_0x1ec725(0x178)](_0x1ec725(0x132)),_0x2d5cff=[];_0x1cac6f[_0x1ec725(0x1d4)](function(_0x308566,_0x411b24){const _0x120dff=_0x1ec725,_0x24f0d6=$(this),_0x477162={'namespaceUri':_0x24f0d6['find'](_0x120dff(0x13b))[_0x120dff(0x1ae)](),'alias':_0x24f0d6[_0x120dff(0x200)](_0x120dff(0x171))[_0x120dff(0x1ae)]()};_0x2d5cff[_0x120dff(0x146)](_0x477162);}),this[_0x1ec725(0x1f8)]=_0x2d5cff;}},'oneditprepare'(){const _0x450082=_0x202af3,_0x4e6bc5=this;_0x3f3943();const _0xda004d=RED[_0x450082(0x1d3)][_0x450082(0x1f7)]({'id':_0x450082(0x1db),'onchange':function(_0x23f265){const _0x41e6a2=_0x450082;$('#node-config-endpoint-tabs-content')['children']()[_0x41e6a2(0x198)](),$('#'+_0x23f265['id'])['show']();}});_0xda004d['addTab']({'id':_0x450082(0x14a),'label':'Connection'},0x0),_0xda004d[_0x450082(0x191)]({'id':_0x450082(0x187),'label':_0x450082(0x16a)},0x1),_0xda004d['addTab']({'id':_0x450082(0x13d),'label':_0x450082(0x1fd)},0x2),setTimeout(function(){const _0x15da8b=_0x450082;_0xda004d[_0x15da8b(0x16e)]();},0x0);{const _0x4aebf4=_0xacc6b2=>{const _0x51e0be=_0x450082;switch(_0xacc6b2){case null:case undefined:case'':case _0x51e0be(0x149):$(_0x51e0be(0x1d7))[_0x51e0be(0x198)]();break;case'Sign':case _0x51e0be(0x1c3):{const _0x52c74a=$(_0x51e0be(0x1d7));(_0x52c74a[_0x51e0be(0x1ae)]()===_0x51e0be(0x149)||_0x52c74a[_0x51e0be(0x1ae)]()==='')&&_0x52c74a[_0x51e0be(0x1ae)](_0x51e0be(0x1a0)),$(_0x51e0be(0x1d7))['show']();}break;default:console[_0x51e0be(0x1c2)](_0x51e0be(0x1ad)+_0xacc6b2);}};_0x4aebf4(_0x4e6bc5[_0x450082(0x1e1)]);const _0x1801d1=$(_0x450082(0x12f));_0x1801d1['on'](_0x450082(0x18c),()=>{const _0x27e643=_0x1801d1['val']();_0x4aebf4(_0x27e643);});}const _0xd0c750=$('#licenceWidget');_0xd0c750[_0x450082(0x1cc)]({'baseUrl':''});{const _0x5c0353=$('.section-userIdentityType-UserName'),_0x3d763e=$('.section-userIdentityType-Certificate'),_0x3d464e=_0x397031=>{const _0x3f4647=_0x450082;_0x397031=_0x397031||'Anonymous';switch(_0x397031){case _0x3f4647(0x12e):$(_0x3f4647(0x196))[_0x3f4647(0x1ae)](''),$(_0x3f4647(0x15a))[_0x3f4647(0x1ae)](''),_0x5c0353['hide'](),_0x3d763e['hide']();break;case _0x3f4647(0x194):_0x5c0353[_0x3f4647(0x1ff)](),_0x3d763e['hide']();break;case _0x3f4647(0x1a6):$('#node-config-input-userName')[_0x3f4647(0x1ae)](''),$('#node-config-input-password')[_0x3f4647(0x1ae)](''),_0x3d763e[_0x3f4647(0x1ff)](),_0x5c0353[_0x3f4647(0x198)]();break;default:console[_0x3f4647(0x1c2)](_0x3f4647(0x13e)+_0x397031);}};_0x3d464e(_0x4e6bc5[_0x450082(0x15e)]);const _0x163567=$(_0x450082(0x1b7));_0x163567['on'](_0x450082(0x18c),()=>{const _0x201b7c=_0x163567['val']();_0x3d464e(_0x201b7c);});}{$(_0x450082(0x202))['hide'](),$(_0x450082(0x158))[_0x450082(0x139)](_0x450082(0x150),![]),$(_0x450082(0x158))['on'](_0x450082(0x18c),function(){const _0x44d71b=_0x450082;$(this)[_0x44d71b(0x139)](_0x44d71b(0x150))?$(_0x44d71b(0x202))[_0x44d71b(0x1ff)]():$(_0x44d71b(0x202))[_0x44d71b(0x198)]();});}const _0x22a744=$(_0x450082(0x17f))['prop'](_0x450082(0x150));_0x22a744?$(_0x450082(0x168))[_0x450082(0x1ff)]():$(_0x450082(0x168))[_0x450082(0x198)]();$('#node-config-input-useTransport')['on'](_0x450082(0x18c),function(){const _0x3ea6be=_0x450082;$(this)[_0x3ea6be(0x139)](_0x3ea6be(0x150))?$(_0x3ea6be(0x168))['show']():$('#section-TransportSettings')[_0x3ea6be(0x198)]();});{$(_0x450082(0x135))['on']('click',()=>_0x992585(this,void 0x0,void 0x0,function*(){const _0x113ebe=_0x450082,_0x21ddcb=yield fetch('/opcua-for-node-red/client_certificate.json'),_0x191003=yield _0x21ddcb['json'](),_0x3a2461=JSON[_0x113ebe(0x1b3)](_0x191003,null,'\x20');alert(_0x3a2461);}));}$(_0x450082(0x1a7))['on'](_0x450082(0x1b0),()=>_0x992585(this,void 0x0,void 0x0,function*(){const _0x23c2d7=_0x450082;window[_0x23c2d7(0x156)](_0x23c2d7(0x183),_0x23c2d7(0x1c6));}));function _0x2ca24b(){const _0x5acc9e=_0x450082;var _0x11fbca;return{'id':_0x4e6bc5['id'],'endpoint':$(_0x5acc9e(0x1dd))['val'](),'name':$(_0x5acc9e(0x210))[_0x5acc9e(0x1ae)](),'pkiName':(_0x11fbca=$(_0x5acc9e(0x13c)))===null||_0x11fbca===void 0x0?void 0x0:_0x11fbca[_0x5acc9e(0x1ae)](),'securityMode':$(_0x5acc9e(0x12f))[_0x5acc9e(0x1ae)](),'securityPolicy':$(_0x5acc9e(0x1d2))[_0x5acc9e(0x1ae)](),'userIdentityType':$(_0x5acc9e(0x1b7))[_0x5acc9e(0x1ae)](),'userName':$(_0x5acc9e(0x196))['val'](),'password':$(_0x5acc9e(0x15a))['val'](),'userCertificate':$(_0x5acc9e(0x201))[_0x5acc9e(0x1ae)](),'userPrivatekey':$('#node-config-input-userPrivatekey')['val'](),'certificate':$('#node-input-certificate')[_0x5acc9e(0x1ae)](),'useTransport':$(_0x5acc9e(0x14c))[_0x5acc9e(0x139)](_0x5acc9e(0x150)),'maxChunkCount':$('#node-input-maxChunkCount')['val'](),'maxMessageSize':$(_0x5acc9e(0x1ea))[_0x5acc9e(0x1ae)](),'receiveBufferSize':$(_0x5acc9e(0x1c4))[_0x5acc9e(0x1ae)](),'sendBufferSize':$(_0x5acc9e(0x153))[_0x5acc9e(0x1ae)]()};}{_0x2a8244(_0x450082(0x19d),$(_0x450082(0x1a4)),()=>({'url':'/opcua-for-node-red/test-connection','body':{'endpointNode':_0x2ca24b()}}),()=>{});}{const _0x53ae7f=(_0x413bdb,_0x553733)=>{const _0x9689e8=_0x450082;var _0x477bb5=_0x413bdb[_0x9689e8(0x167)]()||0x64;_0x413bdb[_0x9689e8(0x200)]('label')[_0x9689e8(0x1b9)](_0x9689e8(0x167),_0x477bb5-0xf);},_0x59be8a=$(_0x450082(0x20e))[_0x450082(0x159)]({'min-height':'150px','min-width':'260px'})[_0x450082(0x178)]({'addItem':(_0x2e3d72,_0x4c284d,_0x3a5c8d)=>{const _0x32943b=_0x450082,_0x53655f=_0x3a5c8d,_0x4cd209=$('#subscription-template')[_0x32943b(0x164)]()[_0x32943b(0x1ef)](_0x2e3d72);_0x4cd209[_0x32943b(0x17a)]('id')['removeClass'](_0x32943b(0x198))[_0x32943b(0x1b6)](_0x32943b(0x20d))['attr'](_0x32943b(0x1cb),_0x4c284d),_0x4cd209[_0x32943b(0x200)](_0x32943b(0x151))['val'](_0x53655f[_0x32943b(0x16b)]),_0x4cd209[_0x32943b(0x200)](_0x32943b(0x1dc))[_0x32943b(0x1ae)](_0x53655f['parameters'][_0x32943b(0x162)]),_0x4cd209[_0x32943b(0x200)](_0x32943b(0x15d))[_0x32943b(0x1ae)](_0x53655f[_0x32943b(0x1ca)]['requestedMaxKeepAliveCount']),_0x4cd209[_0x32943b(0x200)](_0x32943b(0x1f3))['val'](_0x53655f[_0x32943b(0x1ca)][_0x32943b(0x203)]),_0x4cd209[_0x32943b(0x200)]('.input-maxNotificationsPerPublish')[_0x32943b(0x1ae)](_0x53655f['parameters'][_0x32943b(0x19e)]||0x0),_0x4cd209[_0x32943b(0x200)](_0x32943b(0x14b))[_0x32943b(0x1ae)](_0x53655f['parameters'][_0x32943b(0x20f)]||0x0),_0x4cd209[_0x32943b(0x200)](_0x32943b(0x147))[_0x32943b(0x17d)](''+_0x4c284d),_0x53655f[_0x32943b(0x188)]&&_0x4cd209['find'](_0x32943b(0x151))[_0x32943b(0x139)](_0x32943b(0x163),!![]),_0x4cd209['find'](_0x32943b(0x1de))[_0x32943b(0x139)](_0x32943b(0x150),_0x53655f[_0x32943b(0x188)]),_0x53655f['isDefault']&&(_0x2e3d72[_0x32943b(0x200)](_0x32943b(0x1c5))[_0x32943b(0x154)]('hide'),setTimeout(()=>_0x4cd209[_0x32943b(0x200)](_0x32943b(0x1de))['prop'](_0x32943b(0x15c),!![]),0xa));},'removable':!![],'resizeItem':_0x53ae7f}),_0x20ba61=()=>{const _0x5d2628=_0x450082,_0x4b20d8=_0x4e6bc5[_0x5d2628(0x136)]||[];_0x4b20d8['length']===0x0&&_0x4b20d8[_0x5d2628(0x146)]({'id':'s1','name':_0x5d2628(0x1ac),'isDefault':!![],'parameters':Object[_0x5d2628(0x1a8)]({},_0xa4a72a)});_0x59be8a[_0x5d2628(0x178)](_0x5d2628(0x192));for(const _0x21cf20 of _0x4b20d8){_0x59be8a[_0x5d2628(0x178)]('addItem',_0x21cf20);}};_0x20ba61();}{function _0x55b564(_0x52cfc2,_0x3d55ff,_0x12283d){const _0x3e0420=_0x450082,_0x2883bd=_0x12283d,_0x5d85c6=$(_0x3e0420(0x1d0))[_0x3e0420(0x1ef)](_0x52cfc2);$('<input/>',{'class':_0x3e0420(0x190),'type':'text'})['val'](_0x12283d[_0x3e0420(0x1a1)]||'')[_0x3e0420(0x159)]({'width':'5%'})[_0x3e0420(0x1ef)](_0x5d85c6)['val'](_0x3d55ff[_0x3e0420(0x1ce)]()),$(_0x3e0420(0x13f),{'class':_0x3e0420(0x1cd),'type':_0x3e0420(0x17d)})['val'](_0x12283d[_0x3e0420(0x1a1)]||'')['css']({'width':'25%'})[_0x3e0420(0x1ef)](_0x5d85c6)[_0x3e0420(0x1ae)](_0x2883bd[_0x3e0420(0x1a1)]),$(_0x3e0420(0x13f),{'class':_0x3e0420(0x1c1),'type':_0x3e0420(0x17d)})[_0x3e0420(0x1ae)](_0x12283d[_0x3e0420(0x1a5)]||'')['css']({'width':_0x3e0420(0x207)})[_0x3e0420(0x1ef)](_0x5d85c6)[_0x3e0420(0x1ae)](_0x2883bd[_0x3e0420(0x1a5)]);}const _0xa31ae4=$(_0x450082(0x1f2))[_0x450082(0x159)]({'min-height':_0x450082(0x206),'min-width':_0x450082(0x1ed)})['editableList']({'addButton':![],'removable':![],'height':_0x450082(0x18f),'scrollOnAdd':![],'addItem'(_0x5b3709,_0xc1fbfe,_0x312319){_0x55b564(_0x5b3709,_0xc1fbfe,_0x312319);}});function _0x5c0965(){const _0x4d2304=_0x450082;_0xa31ae4[_0x4d2304(0x178)](_0x4d2304(0x132)),_0xa31ae4[_0x4d2304(0x178)]('empty');for(const _0x180505 of _0x4e6bc5['namespaceAliases']||[]){_0xa31ae4[_0x4d2304(0x178)]('addItem',_0x180505);}}{$('#extract-aliases')['on'](_0x450082(0x1b0),()=>_0x992585(this,void 0x0,void 0x0,function*(){const _0x3e4adb=_0x450082,_0x3a8f97={'endpointNode':_0x2ca24b(),'namespaceAliases':_0x4e6bc5[_0x3e4adb(0x1f8)]||[]},_0x1524ef=yield fetch(_0x3e4adb(0x182),{'method':_0x3e4adb(0x17b),'headers':{'Content-Type':_0x3e4adb(0x204)},'body':JSON[_0x3e4adb(0x1b3)](_0x3a8f97)}),_0x305ac4=yield _0x1524ef[_0x3e4adb(0x152)](),_0x3ec437=_0x305ac4['namespaceAliases'];console[_0x3e4adb(0x1c2)]('namespaceAliases',_0x3ec437),Array[_0x3e4adb(0x1ec)](_0x3ec437)&&(_0x4e6bc5[_0x3e4adb(0x1f8)]=_0x3ec437,_0x5c0965());})),_0x4e6bc5['namespaceAliases']=_0x4e6bc5[_0x450082(0x1f8)]||[{'alias':'ua','namespaceUri':_0x450082(0x1b1),'isWellKnown':!![],'isDefault':!![]}];}_0x5c0965();}}});}()));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg5OTI1ODUiLCJfMHg1NzBkYTUiLCJfMHgxZWQ0MDciLCJfMHg1MTFhNmEiLCJfMHg1Y2JjNzIiLCJfMHg0MDg0NDIiLCJfMHgzNjQ2YjAiLCJfMHgyMzY5YjQiLCJQcm9taXNlIiwiXzB4NTZkZjAzIiwiXzB4MjhhYTAzIiwiXzB4MmQ1MzY5IiwiXzB4MWQyNTgzIiwiXzB4MzMyMGFhIiwiXzB4NTc5YjUwIiwiXzB4NTIyOTczIiwiXzB4NjQyYWVkIiwiXzB4MTQ1NDYyIiwiXzB4NTZjM2IzIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MTY4MjZmIiwiXzB4NGM2MjRhIiwiXzB4MTNkMjhmIiwiXzB4MTE4Y2JjIiwiRXJyb3IiLCJfMHgyYTgyNDQiLCJfMHgyNDcwMWQiLCJfMHg1NTVmNTciLCJfMHg0NWY5NmMiLCJfMHgzOWMyNGQiLCJfMHgzZGVhZTgiLCIkIiwiXzB4YzRjNWJjIiwiXzB4MTQwMTY0IiwiXzB4MjY4NzdiIiwiXzB4NGE3OWFjIiwiYm9keSIsIl8weDM3ZTk5NSIsInVybCIsIl8weDRjNTY5OSIsImZldGNoIiwiSlNPTiIsIl8weDRiZWI0OSIsIl8weDNhMWM5YiIsImNvbnNvbGUiLCJfMHgxYzk2MzYiLCJfMHg0M2NjNzMiLCJfMHgzY2UwN2IiLCJfMHgxNDIwZjEiLCJfMHgyYWRmNzciLCJBcnJheSIsIl8weDM2MmE0YyIsIl8weDIzOWE4MyIsIl8weDJjMGYxNCIsIl8weDViM2Q5YSIsImFyZ3VtZW50cyIsIl8weDFjMDk2NiIsIl8weDFkYTZlMyIsIl8weDNjZmE4MSIsIl8weDMzZWU1MSIsIl8weDE5OTdkOSIsIkRhdGUiLCJfMHg1ZjQ5YzkiLCJfMHg0NGU0MWEiLCJfMHgxM2Q2ZmQiLCJfMHgzMDZiYzgiLCJfMHg0YTc0ZTQiLCJfMHg0OWVjMzEiLCJfMHgzZGZhYTEiLCJfMHgxYTJkNmEiLCJfMHgzYmQ2NzEiLCJfMHg1ZjAyMjUiLCJfMHgxMjQ3ZmMiLCJfMHgzNWU3NDMiLCJfMHgyMDhkZWMiLCJkb2N1bWVudCIsIl8weGNjNzIxOSIsIl8weDMyYTgzOCIsIl8weDNmMzk0MyIsIl8weDQ5MzNjMyIsIl8weDE0NDU4NiIsIl8weDQwOTlhNiIsIl8weDE0OWZmYiIsIl8weDFkZTQ5YSIsIlVSTCIsIl8weDUxM2JjYSIsIl8weGE0YTcyYSIsIlJFRCIsIl8weDJkYjA0OCIsIl8weDM0YWRiYSIsIk9iamVjdCIsIl8weDM4YjUwZiIsIl8weDFiNmNmYyIsIl8weDVjOWYyNiIsIl8weDUzNmRhMSIsIl8weDI2YzY0OSIsIl8weDI4NGM2NiIsIl8weDViMmRlZCIsIl8weDNlYjZlYyIsIl8weDQ2MDU3MiIsIl8weDIzYjU0MiIsIl8weDFjYWM2ZiIsIl8weDJkNWNmZiIsIl8weDMwODU2NiIsIl8weDQxMWIyNCIsIl8weDI0ZjBkNiIsIl8weDQ3NzE2MiIsIl8weDRlNmJjNSIsIl8weGRhMDA0ZCIsIl8weDIzZjI2NSIsInNldFRpbWVvdXQiLCJfMHg0YWViZjQiLCJfMHhhY2M2YjIiLCJ1bmRlZmluZWQiLCJfMHg1MmM3NGEiLCJfMHgxODAxZDEiLCJfMHgyN2U2NDMiLCJfMHhkMGM3NTAiLCJfMHg1YzAzNTMiLCJfMHgzZDc2M2UiLCJfMHgzZDQ2NGUiLCJfMHgzOTcwMzEiLCJfMHgxNjM1NjciLCJfMHgyMDFiN2MiLCJfMHgyMmE3NDQiLCJfMHgyMWRkY2IiLCJfMHgxOTEwMDMiLCJfMHgzYTI0NjEiLCJhbGVydCIsIndpbmRvdyIsIl8weDJjYTI0YiIsIl8weDExZmJjYSIsIl8weDUzYWU3ZiIsIl8weDQxM2JkYiIsIl8weDU1MzczMyIsIl8weDQ3N2JiNSIsIl8weDU5YmU4YSIsIl8weDJlM2Q3MiIsIl8weDRjMjg0ZCIsIl8weDNhNWM4ZCIsIl8weDUzNjU1ZiIsIl8weDRjZDIwOSIsIl8weDIwYmE2MSIsIl8weDRiMjBkOCIsIl8weDIxY2YyMCIsIl8weDU1YjU2NCIsIl8weDUyY2ZjMiIsIl8weDNkNTVmZiIsIl8weDEyMjgzZCIsIl8weDI4ODNiZCIsIl8weDVkODVjNiIsIl8weGEzMWFlNCIsIl8weDViMzcwOSIsIl8weGMxZmJmZSIsIl8weDMxMjMxOSIsIl8weDVjMDk2NSIsIl8weDE4MDUwNSIsIl8weDNhOGY5NyIsIl8weDE1MjRlZiIsIl8weDMwNWFjNCIsIl8weDNlYzQzNyJdLCJtYXBwaW5ncyI6IjY4S0FBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyx5QkFBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyx5QkFBMkIsRyxDQUFNSCxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFtQlksU0FBbkIsQ0FBTCxDLEVBQW1DLE1BQU9DLFNBQVAsQyxDQUFZUCxTQUFBLENBQU9PLFNBQVAsQyxHQUNoRixTQUFTSixTQUFULENBQWNLLFNBQWQsQyx5QkFBd0JBLFNBQUEsQyxnQkFBQSxFQUFjVCxTQUFBLENBQVFTLFNBQUEsQyxnQkFBQSxDQUFSLENBQWQsQ0FBc0NiLFNBQUEsQ0FBTWEsU0FBQSxDLGdCQUFBLENBQU4sRSxnQkFBQSxFQUF5QlAsU0FBekIsQ0FBb0NJLFNBQXBDLEMsRUFDOURGLFNBQUEsQ0FBTSxDQUFB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LENBQU8sTUFBTXRILEtBQUEsQyxnQkFBQSxDQUF1RCxDLFFBQ3RFLEMsZ0JBRHNFLEMsU0FFdEUsQ0FBUyxDLGNBQUUsQyxnQkFBRixDQUY2RCxDLE1BR3RFLENBQU1DLElBQUEsQyxnQkFBQSxFQUFlb0gsU0FBZixDQUhnRSxDQUF2RCxDLENBS2JFLFNBQUEsQ0FBTyxNQUFNRCxTQUFBLEMsZ0JBQUEsRyxDQUNiRSxTQUFBLENBQW1CRCxTQUFBLEMsa0JBQUEsQyxDQUN6Qm5ILE9BQUEsQyxnQkFBQSxFLGtCQUFBLENBQWdDb0gsU0FBaEMsQyxDQUNJOUcsS0FBQSxDLGdCQUFBLEVBQWM4RyxTQUFkLEMsR0FDQXJELFNBQUEsQyxnQkFBQSxFQUF3QnFELFMsQ0FDeEJMLFNBQUEsRSxHQWZnQyxDQUF4QyxDLENBa0JBaEQsU0FBQSxDLGtCQUFBLEVBQXdCQSxTQUFBLEMsZ0JBQUEsR0FBeUIsQ0FDN0MsQyxPQUNJLEMsSUFESixDLGNBRUksQyxnQkFGSixDLGFBR0ksQyxJQUhKLEMsV0FJSSxDLElBSkosQ0FENkMsQyxFQVNyRGdELFNBQUEsRSxHQXhkOEIsQ0FBMUMsQyxFQWhRSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sLCBJdGVyYXRvciAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIG1hbmFnZUFQSUNhbGwocHJlZml4LCBidG4sIGZ1bmMsIG9uUmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NJY29uID0gJChgIyR7cHJlZml4fS1zdWNjZXNzYCk7XG4gICAgICAgIGNvbnN0IGZhaWx1cmVJY29uID0gJChgIyR7cHJlZml4fS1mYWlsdXJlYCk7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdJY29uID0gJChgIyR7cHJlZml4fS1wZW5kaW5nYCk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gJChgIyR7cHJlZml4fS1tZXNzYWdlc2ApO1xuICAgICAgICBsZXQgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICBzdWNjZXNzSWNvbi5oaWRlKCk7XG4gICAgICAgIGZhaWx1cmVJY29uLmhpZGUoKTtcbiAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICBidG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uUGVuZGluZylcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLmh0bWwoXCJUZXN0aW5nIENvbm5lY3Rpb24gLi4uXCIpO1xuICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcIlwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYm9keSwgdXJsIH0gPSBmdW5jKCk7XG4gICAgICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eHh4XCIsIGJvZHkpO1xuICAgICAgICAgICAgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBkYXRhLmpzb24oKSlcbiAgICAgICAgICAgICAgICAudGhlbigoanNvbikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgXCIgXCIpKTtcbiAgICAgICAgICAgICAgICBpZiAoanNvbi5yZXN1bHQgPT09IFwib2tcIikge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChqc29uLm1lc3NhZ2UucmVwbGFjZShcIlxcblwiLCBcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQgPSAoc3RyKSA9PiAhc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoYSkgPT4gYDxwPiR7YX08L3A+YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQyID0gKHN0cikgPT4gKEFycmF5LmlzQXJyYXkoc3RyKSA/IHN0ci5tYXAoYWRhcHQpLmpvaW4oXCJcXG5cIikgOiBhZGFwdChzdHIpKTtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoYWRhcHQyKGpzb24ubWVzc2FnZSkgKyBhZGFwdDIoanNvbi5leHRyYSkpO1xuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdChuZXcgRXJyb3IoanNvbi5yZXN1bHQpLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJpbnRlcm5hbCBlcnJvciBcIiArIGVyci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHByaWNpbmdUYWJsZUlkID0gXCJwcmN0YmxfMU9KdDQ5QkNOY2NienNWemthQU5PZ0ZMXCI7XG4gICAgY29uc3QgcHVibGlzaGFibGVLZXkgPSBcInBrX2xpdmVfNTFIc0Uxc0JDTmNjYnpzVnp0N3phcTJ1djIwcGtyeVdsbEF6dlpnWmQ1QWh3Rkk5QTNxQkllT0p2SndRRjA4bERvTHBGcUxqd215QTc5d25QbllMc3ZLanQwMDlmMDBWcENXXCI7XG4gICAgZnVuY3Rpb24gZmV0Y2hMaWNlbmNlSW5mbygpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCBhcmd1bWVudHMsIHZvaWQgMCwgZnVuY3Rpb24qIChiYXNlVXJsID0gXCJcIikge1xuICAgICAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9saWNlbmNlSW5mb2A7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgICAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogXCJGQUlMRURcIiwgdHlwZTogXCJGUkVFV0FSRVwiLCBsaWNlbmNlSW5mbzogeyBleHBpcnlEYXRlOiB0b2RheSB9IH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBqc29uID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgICAgICByZXR1cm4ganNvbjtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGRlY2xhcmVMaWNlbmNlV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLmxpY2VuY2VXaWRnZXRcIiwge1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBjb250YWN0TGluayA9IGA8YSBocmVmPVwibWFpbHRvOnN1cHBvcnRAc3RlcmZpdmUuY29tXCIgc3ViamVjdD1cIkBvcGN1YS9mb3Itbm9kZS1yZWQgc3VwcG9ydCByZXF1ZXN0XCI+bWFpbHRvOnN1cHBvcnRAc3RlcmZpdmUuY29tPC9hPmA7XG4gICAgICAgICAgICAgICAgY29uc3Qgd2Vic2l0ZUxpbmsgPSBgPGEgaHJlZj1cImh0dHBzOi8vd3d3LnN0ZXJmaXZlLmNvbS9vcGN1YS9mb3Itbm9kZS1yZWRcIiB0YXJnZXQ94oCdX2JsYW5r4oCdPlN0ZXJmaXZlJ3Mgd2Vic2l0ZSA8L2E+YDtcbiAgICAgICAgICAgICAgICBmZXRjaExpY2VuY2VJbmZvKHRoYXQuYmFzZVVybClcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGljb24gPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbXNnID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRldGFpbHMgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXMgPSBqc29uLnN0YXR1cztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF5TGVmdCA9IGpzb24uZGF5c0xlZnQ7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQVVUSE9SSVpFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24gPSBcImZhIGZhLWNoZWNrLWNpcmNsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoanNvbi50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJUUklBTFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIlRyaWFsIGxpY2VuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgVGhlIFRyaWFsIHdpbGwgZXhwaXJlIGluICR7ZGF5TGVmdH0gZGF5cy5cXG5CdXkgb25saW5lIGFuZCB2aXNpdCAke3dlYnNpdGVMaW5rfSB0byBhY3F1aXJlIGEgbGljZW5zZS5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlBST0ZFU1NJT05BTFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gYFlvdXIgbGljZW5jZSBpcyB2YWxpZC5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRheUxlZnQgPCA5MCAmJiBkYXlMZWZ0ID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgKz0gYCBJdCB3aWxsIGV4cGlyZSBpbiAke2RheUxlZnR9IGRheXMuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRldGFpbHMgPSBgJHt3ZWJzaXRlTGlua308YnI+JHtjb250YWN0TGlua31gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9IGpzb24ubGljZW5jZUluZm8ubGljZW5jZVR5cGUgKyBcIiAtIFwiICsgKGpzb24ubGljZW5jZUluZm8ub25QcmVtaXNlU2VydmVySG9zdCB8fCBcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiRlJFRVdBUkVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiRnJlZXdhcmUgbGljZW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9IGBUaGlzIGlzIGEgZnJlZXdhcmUgbGljZW5jZSwgYW5kIGhhdmUgc29tZSBsaW1pdGF0aW9ucy5cXG4ke3dlYnNpdGVMaW5rfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkVYUElSRURcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJmYSBmYS1jYWxlbmRhci10aW1lXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gXCJMaWNlbmNlIGhhcyBleHBpcmVkXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiWW91ciBsaWNlbnNlIGhhcyBleHBpcmVkLiBQbGVhc2UgY29udGFjdCBvdXIgc3VwcG9ydCB0ZWFtIG9yIHZpc2l0IG91ciB3ZWJzaXRlIHRvIHJlbmV3IHlvdXIgbGljZW5zZSBhbmQgcmVnYWluIGFjY2VzcyB0byBvdXIgc2VydmljZXMuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiRkFJTEVEXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24gPSBcImZhIGZhLWV4Y2xhbWF0aW9uLWNpcmNsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiWW91ciBsaWNlbnNlIGlzIGN1cnJlbnRseSBpbnZhbGlkLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgUGxlYXNlIGNvbnRhY3QgJHtjb250YWN0TGlua30gb3IgdmlzaXQgb3VyIHdlYnNpdGUgdG8gcmVuZXcgeW91ciBsaWNlbnNlIGFuZCByZWdhaW4gYWNjZXNzIHRvIG91ciBzZXJ2aWNlcy7MgGA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLyoqICovXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuZWxlbWVudC50ZXh0KFwiTGljZW5jZSBcIiArIEpTT04uc3RyaW5naWZ5KGpzb24pKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZENsYXNzKFwibGljZW5jZS13aWRnZXRcIik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LVwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPHNwYW4+XCIpLmFkZENsYXNzKFwibGljZW5jZS13aWRnZXQtaWNvblwiKS5hcHBlbmQoJChcIjxpPlwiKS5hZGRDbGFzcyhpY29uKSkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKCQoXCI8c3Bhbj5cIikuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1tc2dcIikudGV4dChtc2cpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPGJyPlwiKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxzcGFuPlwiKS5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LWRldGFpbHNcIikuYXBwZW5kKGRldGFpbHMpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gXCJFWFBJUkVEXCIgfHwgc3RhdHVzID09PSBcIkZBSUxFRFwiIHx8IGpzb24udHlwZSA9PT0gXCJGUkVFV0FSRVwiIHx8IGpzb24udHlwZSA9PT0gXCJUUklBTFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpYmVCdXR0b24gPSAkKFwiPGJ1dHRvbi8+XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJpZFwiLCBcInN1YnNjcmliZS1idXR0b25cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24uYXR0cihcImNsYXNzXCIsIFwiYnRuIGJ0bi1wcmltYXJ5XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJzdHlsZVwiLCBcIm1hcmdpbi10b3A6IDIwcHg7XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLnRleHQoXCJTdWJzY3JpYmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKHN1YnNjcmliZUJ1dHRvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2V0IGF0dHJpYnV0ZXMgZm9yIHRoZSBzY3JpcHQgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0LnNyYyA9IFwiaHR0cHM6Ly9qcy5zdHJpcGUuY29tL3YzL3ByaWNpbmctdGFibGUuanNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIHNjcmlwdCBlbGVtZW50IHRvIHRoZSBoZWFkIChvciBib2R5KSBvZiB0aGUgZG9jdW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICQoXCJoZWFkXCIpLmFwcGVuZChzY3JpcHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaXBlUHJpY2luZ1RhYmxlID0gJChcIjxzdHJpcGUtcHJpY2luZy10YWJsZS8+XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2V0IGF0dHJpYnV0ZXMgZm9yIHRoZSBlbGVtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpcGVQcmljaW5nVGFibGUuYXR0cihcInByaWNpbmctdGFibGUtaWRcIiwgcHJpY2luZ1RhYmxlSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJwdWJsaXNoYWJsZS1rZXlcIiwgcHVibGlzaGFibGVLZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJzdHlsZVwiLCBcImhlaWdodDogMTAwJTttYXgtaGVpZ2h0OiAxMDAlO1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKHN0cmlwZVByaWNpbmdUYWJsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hdHRyKFwic3R5bGVcIiwgXCJoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaW5zdGFsbEZlZWRiYWNrV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvLyByZXR1cm47XG4gICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICBjb25zdCB0cmF5Q29udGVudCA9ICQoXCIucmVkLXVpLXRyYXktYm9keVwiKTtcbiAgICAgICAgY29uc29sZS5sb2coXCJpbnN0YWxsRmVlZGJhY2tXaWRnZXQgXCIsIHRyYXlDb250ZW50Lmxlbmd0aCk7XG4gICAgICAgIGlmICh0cmF5Q29udGVudC5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW5zdGFsbGluZyBpZnJhbWVcIik7XG4gICAgICAgICAgICAvLyBDcmVhdGUgdGhlIGlmcmFtZSBlbGVtZW50XG4gICAgICAgICAgICBjb25zdCBpZnJhbWUgPSAkKFwiPGlmcmFtZT48L2lmcmFtZT5cIiwge1xuICAgICAgICAgICAgICAgIHNyYzogXCIvb3BjdWEtZm9yLW5vZGUtcmVkL3N1cHBvcnQtZnJhbWUuaHRtbFwiLFxuICAgICAgICAgICAgICAgIHNjcm9sbGluZzogXCJub1wiLFxuICAgICAgICAgICAgICAgIHN0eWxlOiBcImJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlcjozcHhcIixcbiAgICAgICAgICAgICAgICBhbGxvd3RyYW5zcGFyZW5jeTogXCJ0cnVlXCIsXG4gICAgICAgICAgICAgICAgd2lkdGg6IFwiMTgwcHhcIixcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiMzBweFwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBBcHBlbmQgdGhlIGlmcmFtZSB0byB0aGUgZmVlZGJhY2sgZWxlbWVudFxuICAgICAgICAgICAgdHJheUNvbnRlbnQuYXBwZW5kKGlmcmFtZSk7XG4gICAgICAgICAgICAvLyBQb3NpdGlvbiB0aGUgZmVlZGJhY2sgZWxlbWVudCBhdCB0aGUgYm90dG9tIHJpZ2h0IG9mIHRoZSB0cmF5IGNvbnRlbnRcbiAgICAgICAgICAgIGlmcmFtZS5jc3Moe1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgICAgICAgcmlnaHQ6IFwiMjBweFwiLFxuICAgICAgICAgICAgICAgIGJvdHRvbTogXCIxNnB4XCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBkZWNsYXJlTGljZW5jZVdpZGdldCgpO1xuICAgIGZ1bmN0aW9uIGlzVmFsaWRPUENfVUFfVVJJKHN0cikge1xuICAgICAgICBsZXQgdXJsO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdXJsID0gbmV3IFVSTChzdHIpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChfKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVybC5wcm90b2NvbCA9PT0gXCJvcGMudGNwOlwiO1xuICAgIH1cbiAgICBjb25zdCBkZWZhdWx0U3Vic2NyaXB0aW9uUGFyYW1ldGVycyA9IHtcbiAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgIHJlcXVlc3RlZExpZmV0aW1lQ291bnQ6IDEwMDAsXG4gICAgICAgIHJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50OiAxMCwgLy8gZXZlcnkgMTAgc2Vjb25kc1xuICAgICAgICByZXF1ZXN0ZWRQdWJsaXNoaW5nSW50ZXJ2YWw6IDEwMDAsXG4gICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiAwLFxuICAgICAgICBwcmlvcml0eTogMTAwLFxuICAgIH07XG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUVuZHBvaW50MlwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcImNvbmZpZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwib3BjdWEgZW5kcG9pbnRcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDMvVUEvU2FtcGxlU2VydmVyXCIsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGU6IGlzVmFsaWRPUENfVUFfVVJJLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIFNlY3VyaXR5IE1vZGVcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZTogeyB2YWx1ZTogXCJOb25lXCIgfSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5OiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiTm9uZVwiLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlOiB7IHZhbHVlOiBcIkFub255bW91c1wiIH0sXG4gICAgICAgICAgICBwa2lOYW1lOiB7IHZhbHVlOiBcIlwiLCB2YWxpZGF0ZTogKHZhbHVlKSA9PiAoIXZhbHVlIHx8IHZhbHVlLm1hdGNoKC9bMC05YS16QS1aXSovKSA/IHRydWUgOiBmYWxzZSkgfSxcbiAgICAgICAgICAgIC8vIHRvIHVzZSB3aGVuIHVzZXJJZGVudGl0eVR5cGUgaXMgVXNlck5hbWVcbiAgICAgICAgICAgIC8vIGNyZWRlbnRpYWxzOiB7XG4gICAgICAgICAgICAvLyAgICAgdXNlck5hbWU6IHsgdmFsdWU6IFwiXCIsIHR5cGU6IFwidGV4dFwiIH0sXG4gICAgICAgICAgICAvLyAgICAgcGFzc3dvcmQ6IHsgdmFsdWU6IFwiXCIsIHR5cGU6IFwicGFzc3dvcmRcIiB9LFxuICAgICAgICAgICAgLy8gICAgIC8vIHRvIHVzZSB3aGVuIHVzZXJJZGVudGl0eVR5cGUgaXMgQ2VydGlmaWNhdGVcbiAgICAgICAgICAgIC8vICAgICB1c2VyQ2VydGlmaWNhdGU6IHsgdmFsdWJyb3dzZVBhdGhlOiBcIlwiLCB0eXBlOiBcInRleHRcIiB9LFxuICAgICAgICAgICAgLy8gICAgIHVzZXJQcml2YXRla2V5OiB7IHZhbHVlOiBcIlwiICwgdHlwZTogXCJwYXNzd29yZFwifSxcbiAgICAgICAgICAgIC8vIH0gYXMgYW55IC8qIGNpcmN1bXZlbnQgYSBidWcgaW4gbm9kZS1yZWQgKi8sXG4gICAgICAgICAgICAvLyB1c2VybmFtZVxuICAgICAgICAgICAgdXNlVHJhbnNwb3J0OiB7IHZhbHVlOiBmYWxzZSwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBtYXhDaHVua0NvdW50OiB7IHZhbHVlOiAxLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIG1heE1lc3NhZ2VTaXplOiB7IHZhbHVlOiA4MTkyLCByZXF1aXJlZDogZmFsc2UgfSwgLy8gc2hvdWxkIGJlIGF0IGxlYXN0IDgxOTJcbiAgICAgICAgICAgIHJlY2VpdmVCdWZmZXJTaXplOiB7IHZhbHVlOiA4MTkyLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIHNlbmRCdWZmZXJTaXplOiB7IHZhbHVlOiA4MTkyLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJzMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJEZWZhdWx0IFN1YnNjcmlwdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczogT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFN1YnNjcmlwdGlvblBhcmFtZXRlcnMpLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJzMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTbG93IFN1YnNjcmlwdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoaW5nRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnQ6IDMsIC8vIGV2ZXJ5IDE1IHNlY29uZHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRQdWJsaXNoaW5nSW50ZXJ2YWw6IDUwMDAsIC8vXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2g6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eTogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJzM1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJGYXN0IFN1YnNjcmlwdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoaW5nRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiA0MDAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50OiA1MCwgLy8gZXZlcnkgMTIuNSBzZWNvbmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiAyNTAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2g6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eTogMjAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuYW1lc3BhY2VBbGlhc2VzOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXM6IFwidWFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZVVyaTogXCJodHRwOi8vb3BjZm91bmRhdGlvbi5vcmcvVUEvXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1dlbGxLbm93bjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXM6IFwiZGlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZVVyaTogXCJodHRwOi8vb3BjZm91bmRhdGlvbi5vcmcvREkvXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1dlbGxLbm93bjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzOiB7XG4gICAgICAgICAgICB1c2VyTmFtZTogeyB0eXBlOiBcInRleHRcIiB9LFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHsgdHlwZTogXCJwYXNzd29yZFwiIH0sXG4gICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGU6IHsgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIHVzZXJQcml2YXRla2V5OiB7IHR5cGU6IFwicGFzc3dvcmRcIiB9LFxuICAgICAgICB9LFxuICAgICAgICBsYWJlbDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCB0aGlzLmVuZHBvaW50IHx8IFwiaW52YWxpZCBlbmRwb2ludFwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkge1xuICAgICAgICAgICAgY29uc3QgX3NlY3VyaXR5UG9saWN5ID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eVBvbGljeVwiKTtcbiAgICAgICAgICAgIGNvbnN0IF9zZWN1cml0eU1vZGUgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5TW9kZVwiKTtcbiAgICAgICAgICAgIGlmIChfc2VjdXJpdHlQb2xpY3kudmFsKCkgPT09IFwiTm9uZVwiKSB7XG4gICAgICAgICAgICAgICAgX3NlY3VyaXR5TW9kZS50ZXh0KFwiTm9uZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vICgoKCgoKCgoKCggcmV0cmlldmUgc3Vic2NyaXB0aW9uIGRhdGEgKSkpKSkpKSkpKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbkl0ZW1zID0gJChcIiNzdWJzY3JpcHRpb25zLWNvbnRhaW5lclwiKS5lZGl0YWJsZUxpc3QoXCJpdGVtc1wiKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzID0gW107XG4gICAgICAgICAgICAgICAgY29uc3QgbiA9ICh4KSA9PiB4O1xuICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbkl0ZW1zLmVhY2goZnVuY3Rpb24gKGluZGV4LCBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwic1wiICsgaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBlLmZpbmQoXCIuaW5wdXQtbmFtZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogISFlLmZpbmQoXCIuaW5wdXQtaXNEZWZhdWx0XCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hpbmdFbmFibGVkOiAhIWUuZmluZChcIi5pbnB1dC1wdWJsaXNoaW5nRW5hYmxlZFwiKS5pcyhcIjpjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZExpZmV0aW1lQ291bnQ6IG4oZS5maW5kKFwiLmlucHV0LXJlcXVlc3RlZExpZmV0aW1lQ291bnRcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50OiBuKGUuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudFwiKS52YWwoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiBuKGUuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRQdWJsaXNoaW5nSW50ZXJ2YWxcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiBuKGUuZmluZChcIi5pbnB1dC1tYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaFwiKS52YWwoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IG4oZS5maW5kKFwiLmlucHV0LXByaW9yaXR5XCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIC8vIGZvcmNlIHRvIGJlIHRydWVcbiAgICAgICAgICAgICAgICAgICAgYS5wYXJhbWV0ZXJzLnB1Ymxpc2hpbmdFbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEuaXNEZWZhdWx0ICYmIGEuaWQgPT09IFwiczBcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm9ybWFsaXplIGRlZmF1bHQgc3Vic2NyaXB0aW9uIG5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIGEubmFtZSA9IFwiRGVmYXVsdCBTdWJzY3JpcHRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzLnB1c2goYSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vICgoKCgoKCgoKCggcmV0cmlldmUgbmFtZXNwYWNlIGFsaWFzIGRhdGEgKSkpKSkpKSkpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLy8gYWxpYXNlc1xuICAgICAgICAgICAgICAgIGNvbnN0IGFsaWFzSXRlbXMgPSAkKFwiI2VkaXRhYmxlLWxpc3QtYWxpYXNlcy1jb250YWluZXJcIikuZWRpdGFibGVMaXN0KFwiaXRlbXNcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgdG1wID0gW107XG4gICAgICAgICAgICAgICAgYWxpYXNJdGVtcy5lYWNoKGZ1bmN0aW9uIChpbmRleCwgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlkOiBcInNcIiArIGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlVXJpOiBlLmZpbmQoXCIubm9kZS1pbnB1dC1hbGlhcy1uYW1lc3BhY2UtdXJpXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXM6IGUuZmluZChcIi5ub2RlLWlucHV0LWFsaWFzLWFsaWFzXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB0bXAucHVzaChhKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLm5hbWVzcGFjZUFsaWFzZXMgPSB0bXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGluc3RhbGxGZWVkYmFja1dpZGdldCgpO1xuICAgICAgICAgICAgY29uc3QgdGFicyA9IFJFRC50YWJzLmNyZWF0ZSh7XG4gICAgICAgICAgICAgICAgaWQ6IFwibm9kZS1jb25maWctZW5kcG9pbnQtdGFic1wiLFxuICAgICAgICAgICAgICAgIG9uY2hhbmdlOiBmdW5jdGlvbiAodGFiKSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctZW5kcG9pbnQtdGFicy1jb250ZW50XCIpLmNoaWxkcmVuKCkuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI1wiICsgdGFiLmlkKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGFicy5hZGRUYWIoe1xuICAgICAgICAgICAgICAgIGlkOiBcImVuZHBvaW50LXRhYi1jb25uZWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiQ29ubmVjdGlvblwiLFxuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB0YWJzLmFkZFRhYih7XG4gICAgICAgICAgICAgICAgaWQ6IFwiZW5kcG9pbnQtdGFiLXN1YnNjcmlwdGlvbnNcIixcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJTdWJzY3JpcHRpb25zXCIsXG4gICAgICAgICAgICB9LCAxKTtcbiAgICAgICAgICAgIHRhYnMuYWRkVGFiKHtcbiAgICAgICAgICAgICAgICBpZDogXCJlbmRwb2ludC10YWItbmFtZXNwYWNlLWFsaWFzZXNcIixcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJOYW1lc3BhY2UgQWxpYXNlc1wiLFxuICAgICAgICAgICAgfSwgMik7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0YWJzLnJlc2l6ZSgpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIFNlY3VyaXR5IGNvbnRyb2xzXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVNlY3VyaXR5Q29udHJvbCA9IChzZWN1cml0eU1vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChzZWN1cml0eU1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgbnVsbDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIk5vbmVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiLnNlY3Rpb24tc2VjdXJpdHlQb2xpY3lcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlNpZ25cIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJTaWduQW5kRW5jcnlwdFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3AgPSAkKFwiLnNlY3Rpb24tc2VjdXJpdHlQb2xpY3lcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzcC52YWwoKSA9PT0gXCJOb25lXCIgfHwgc3AudmFsKCkgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwLnZhbChcIkJhc2ljMjU2U2hhMjU2XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIuc2VjdGlvbi1zZWN1cml0eVBvbGljeVwiKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImludmFsaWQgc2VjdXJpdHlNb2RlIFwiICsgc2VjdXJpdHlNb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdXBkYXRlU2VjdXJpdHlDb250cm9sKG5vZGUuc2VjdXJpdHlNb2RlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBfc2VjdXJpdHlNb2RlID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eU1vZGVcIik7XG4gICAgICAgICAgICAgICAgX3NlY3VyaXR5TW9kZS5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1NlY3VyaXR5TW9kZSA9IF9zZWN1cml0eU1vZGUudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVNlY3VyaXR5Q29udHJvbChuZXdTZWN1cml0eU1vZGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbGljZW5jZVdpZGdldCA9ICQoXCIjbGljZW5jZVdpZGdldFwiKTtcbiAgICAgICAgICAgIGxpY2VuY2VXaWRnZXQubGljZW5jZVdpZGdldCh7XG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSB0aGUgVXNlciBJZGVudGl0eSBDb250cm9sc1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdXRoUm93ID0gJChcIi5zZWN0aW9uLXVzZXJJZGVudGl0eVR5cGUtVXNlck5hbWVcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgY2VydFJvdyA9ICQoXCIuc2VjdGlvbi11c2VySWRlbnRpdHlUeXBlLUNlcnRpZmljYXRlXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUlkZW50aXR5Q29udHJvbHMgPSAodXNlcklkZW50aXR5VHlwZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlID0gdXNlcklkZW50aXR5VHlwZSB8fCBcIkFub255bW91c1wiO1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHVzZXJJZGVudGl0eVR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJBbm9ueW1vdXNcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJOYW1lXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXBhc3N3b3JkXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoUm93LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0Um93LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJVc2VyTmFtZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhSb3cuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkNlcnRpZmljYXRlXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VyTmFtZVwiKS52YWwoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1pbnB1dC1wYXNzd29yZFwiKS52YWwoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydFJvdy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFJvdy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW52YWxpZCB1c2VySWRlbnRpdHlUeXBlIFwiICsgdXNlcklkZW50aXR5VHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHVwZGF0ZUlkZW50aXR5Q29udHJvbHMobm9kZS51c2VySWRlbnRpdHlUeXBlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBfdXNlcklkZW50aXR5VHlwZSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlcklkZW50aXR5VHlwZVwiKTtcbiAgICAgICAgICAgICAgICBfdXNlcklkZW50aXR5VHlwZS5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0lkZW50aXR5VHlwZSA9IF91c2VySWRlbnRpdHlUeXBlLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVJZGVudGl0eUNvbnRyb2xzKG5ld0lkZW50aXR5VHlwZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIGFkdmFuY2VkIGNvbnRyb2xzXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1BZHZhbmNlZFwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgJChcIiN0b2dnbGVBZHZhbmNlZFNlY3Rpb25cIikucHJvcChcImNoZWNrZWRcIiwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICQoXCIjdG9nZ2xlQWR2YW5jZWRTZWN0aW9uXCIpLm9uKFwiY2hhbmdlXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykucHJvcChcImNoZWNrZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjaGVja2JveCBpcyBjaGVja2VkLCBzaG93IHRoZSBkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1BZHZhbmNlZFwiKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIGhpZGUgaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1BZHZhbmNlZFwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHVzZVRyYW5zcG9ydFNldHRpbmcgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZVRyYW5zcG9ydFwiKS5wcm9wKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgIGlmICh1c2VUcmFuc3BvcnRTZXR0aW5nKSB7XG4gICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVRyYW5zcG9ydFNldHRpbmdzXCIpLnNob3coKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1UcmFuc3BvcnRTZXR0aW5nc1wiKS5oaWRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZVRyYW5zcG9ydFwiKS5vbihcImNoYW5nZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCQodGhpcykucHJvcChcImNoZWNrZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGNoZWNrYm94IGlzIGNoZWNrZWQsIHNob3cgdGhlIGRpdlxuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tVHJhbnNwb3J0U2V0dGluZ3NcIikuc2hvdygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBoaWRlIGl0XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1UcmFuc3BvcnRTZXR0aW5nc1wiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gY2hlY2tDZXJ0aWZpY2F0ZVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAkKFwiI2NoZWNrQ2VydGlmaWNhdGVcIikub24oXCJjbGlja1wiLCAoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaChcIi9vcGN1YS1mb3Itbm9kZS1yZWQvY2xpZW50X2NlcnRpZmljYXRlLmpzb25cIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZm8gPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdCA9IEpTT04uc3RyaW5naWZ5KGluZm8sIG51bGwsIFwiIFwiKTtcbiAgICAgICAgICAgICAgICAgICAgYWxlcnQodCk7XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBjb25maWcgYnV0dG9uXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgJChcIiNnb3RvLWNvbmZpZ1wiKS5vbihcImNsaWNrXCIsICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cub3BlbihcIi9vcGN1YS1mb3Itbm9kZS1yZWQvY29uZmlnXCIsIFwiX2JsYW5rXCIpO1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgZnVuY3Rpb24gZXh0cmFjdEVuZHBvaW50RGF0YSgpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IG5vZGUuaWQsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiAkKFwiI25vZGUtY29uZmlnLWlucHV0LWVuZHBvaW50XCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LW5hbWVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHBraU5hbWU6IChfYSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtcGtpTmFtZVwiKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBzZWN1cml0eU1vZGU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlNb2RlXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBzZWN1cml0eVBvbGljeTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eVBvbGljeVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VySWRlbnRpdHlUeXBlXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICB1c2VyTmFtZTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VyTmFtZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtcGFzc3dvcmRcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VyQ2VydGlmaWNhdGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHVzZXJQcml2YXRla2V5OiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJQcml2YXRla2V5XCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAvLy8gbm90IHRlc3RlZCB5ZXQgLi4uOlxuICAgICAgICAgICAgICAgICAgICBjZXJ0aWZpY2F0ZTogJChcIiNub2RlLWlucHV0LWNlcnRpZmljYXRlXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICB1c2VUcmFuc3BvcnQ6ICQoXCIjbm9kZS1pbnB1dC11c2VUcmFuc3BvcnRcIikucHJvcChcImNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgIG1heENodW5rQ291bnQ6ICQoXCIjbm9kZS1pbnB1dC1tYXhDaHVua0NvdW50XCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBtYXhNZXNzYWdlU2l6ZTogJChcIiNub2RlLWlucHV0LW1heE1lc3NhZ2VTaXplXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICByZWNlaXZlQnVmZmVyU2l6ZTogJChcIiNub2RlLWlucHV0LXJlY2VpdmVCdWZmZXJTaXplXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBzZW5kQnVmZmVyU2l6ZTogJChcIiNub2RlLWlucHV0LXNlbmRCdWZmZXJTaXplXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIHRoZSBUZXN0IGJ1dHRvblxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBtYW5hZ2VBUElDYWxsKFwiY29ubmVjdGlvblwiLCAkKFwiI3Rlc3QtY29ubmVjdGlvblwiKSwgKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcIi9vcGN1YS1mb3Itbm9kZS1yZWQvdGVzdC1jb25uZWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZXh0cmFjdEVuZHBvaW50RGF0YSgpLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLCAoKSA9PiB7IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vICBJbnN0YWxsIHN1YnNjcmlwdGlvbnMgTGlzdCBtYW5hZ2VtZW50XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc2l6ZVRvcGljcyA9ICh0b3BpYywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG5ld1dpZHRoID0gdG9waWMud2lkdGgoKSB8fCAxMDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcGljLmZpbmQoXCJsYWJlbFwiKS50eXBlZElucHV0KFwid2lkdGhcIiwgbmV3V2lkdGggLSAxNSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25MaXN0ID0gJChcIiNzdWJzY3JpcHRpb25zLWNvbnRhaW5lclwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgXCJtaW4taGVpZ2h0XCI6IFwiMTUwcHhcIiwgXCJtaW4td2lkdGhcIjogXCIyNjBweFwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgICAgICBhZGRJdGVtOiAoY29udGFpbmVyLCBpbmRleCwgZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgX2RhdGEgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9ICQoXCIjc3Vic2NyaXB0aW9uLXRlbXBsYXRlXCIpLmNsb25lKCkuYXBwZW5kVG8oY29udGFpbmVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cihcImlkXCIpLnJlbW92ZUNsYXNzKFwiaGlkZVwiKS5yZW1vdmVDbGFzcyhcInRlbXBsYXRlXCIpLmF0dHIoXCJkYXRhLWlcIiwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LW5hbWVcIikudmFsKF9kYXRhLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LXJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbFwiKS52YWwoX2RhdGEucGFyYW1ldGVycy5yZXF1ZXN0ZWRQdWJsaXNoaW5nSW50ZXJ2YWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LXJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50XCIpLnZhbChfZGF0YS5wYXJhbWV0ZXJzLnJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRMaWZldGltZUNvdW50XCIpLnZhbChfZGF0YS5wYXJhbWV0ZXJzLnJlcXVlc3RlZExpZmV0aW1lQ291bnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LW1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoXCIpLnZhbChfZGF0YS5wYXJhbWV0ZXJzLm1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoIHx8IDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LXByaW9yaXR5XCIpLnZhbChfZGF0YS5wYXJhbWV0ZXJzLnByaW9yaXR5IHx8IDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLnN1YnNjcmlwdGlvbi1pZFwiKS50ZXh0KFwiXCIgKyBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2RhdGEuaXNEZWZhdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LW5hbWVcIikucHJvcChcInJlYWRvbmx5XCIsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LWlzRGVmYXVsdFwiKS5wcm9wKFwiY2hlY2tlZFwiLCBfZGF0YS5pc0RlZmF1bHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgZGVmYXVsdCBzdWJzY3JpcHRpb24gY2Fubm90IGJlIGFjY2lkZW50YWxseSByZW1vdmVkXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2RhdGEuaXNEZWZhdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmZpbmQoXCIucmVkLXVpLWVkaXRhYmxlTGlzdC1pdGVtLXJlbW92ZVwiKS5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtZW50LmZpbmQoXCIuaW5wdXQtaXNEZWZhdWx0XCIpLnByb3AoXCJkaXNhYmxlZFwiLCB0cnVlKSwgMTApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAvLyBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICByZXNpemVJdGVtOiByZXNpemVUb3BpY3MsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsbFN1YnNjcmlwdGlvbnMgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbnMgPSBub2RlLnN1YnNjcmlwdGlvbnMgfHwgW107XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdWJzY3JpcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWRkIG1pc3NpbmcgZGVmYXVsdCBzdWJzY3JpcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkRlZmF1bHQgU3Vic2NyaXB0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTdWJzY3JpcHRpb25QYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbkxpc3QuZWRpdGFibGVMaXN0KFwiZW1wdHlcIik7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN1YnNjcmlwdGlvbi5pc0RlZmF1bHQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbkxpc3QuZWRpdGFibGVMaXN0KFwiYWRkSXRlbVwiLCBzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBmaWxsU3Vic2NyaXB0aW9ucygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vICBJbnN0YWxsIG5hbWVzcGFjZSBhbGlhcyBMaXN0IG1hbmFnZW1lbnRcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gYWRkQWxpYXNDdHJsKGNvbnRhaW5lciwgaW5kZXgsIGFyZykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXJnO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByb3cgPSAkKCc8ZGl2IGNsYXNzPVwiYWxpYXMtZW50cnlcIj4nKS5hcHBlbmRUbyhjb250YWluZXIpO1xuICAgICAgICAgICAgICAgICAgICAvLyBjb250YWluZXIuZGF0YShcImRhdGFcIiwgYXJnKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIjxpbnB1dC8+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm5vZGUtaW5wdXQtYWxpYXMtaW5kZXhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbChhcmcuYWxpYXMgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCI1JVwiIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8ocm93KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbChpbmRleC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIjxpbnB1dC8+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm5vZGUtaW5wdXQtYWxpYXMtYWxpYXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbChhcmcuYWxpYXMgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCIyNSVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKHJvdylcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoZGF0YS5hbGlhcyk7XG4gICAgICAgICAgICAgICAgICAgICQoXCI8aW5wdXQvPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJub2RlLWlucHV0LWFsaWFzLW5hbWVzcGFjZS11cmlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbChhcmcubmFtZXNwYWNlVXJpIHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiNzAlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhyb3cpXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGRhdGEubmFtZXNwYWNlVXJpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgYWxpYXNlc0xpc3QgPSAkKFwiI2VkaXRhYmxlLWxpc3QtYWxpYXNlcy1jb250YWluZXJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IFwibWluLWhlaWdodFwiOiBcIjE1MHB4XCIsIFwibWluLXdpZHRoXCI6IFwiMjYwcHhcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuZWRpdGFibGVMaXN0KHtcbiAgICAgICAgICAgICAgICAgICAgYWRkQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsT25BZGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBhZGRJdGVtKGNvbnRhaW5lciwgaSwgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWRkQWxpYXNDdHJsKGNvbnRhaW5lciwgaSwgaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gZmlsbE5hbWVzcGFjZUFsaWFzZXMoKSB7XG4gICAgICAgICAgICAgICAgICAgIGFsaWFzZXNMaXN0LmVkaXRhYmxlTGlzdChcIml0ZW1zXCIpO1xuICAgICAgICAgICAgICAgICAgICBhbGlhc2VzTGlzdC5lZGl0YWJsZUxpc3QoXCJlbXB0eVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBhbGlhcyBvZiBub2RlLm5hbWVzcGFjZUFsaWFzZXMgfHwgW10pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzZXNMaXN0LmVkaXRhYmxlTGlzdChcImFkZEl0ZW1cIiwgYWxpYXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIEJ1dHRvblxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNleHRyYWN0LWFsaWFzZXNcIikub24oXCJjbGlja1wiLCAoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZXh0cmFjdEVuZHBvaW50RGF0YSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZUFsaWFzZXM6IG5vZGUubmFtZXNwYWNlQWxpYXNlcyB8fCBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2goXCIvb3BjdWEtZm9yLW5vZGUtcmVkL2V4dHJhY3QtbmFtZXNwYWNlLWFsaWFzZXNcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmZvID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuYW1lc3BhY2VBbGlhc2VzID0gaW5mby5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJuYW1lc3BhY2VBbGlhc2VzXCIsIG5hbWVzcGFjZUFsaWFzZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobmFtZXNwYWNlQWxpYXNlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLm5hbWVzcGFjZUFsaWFzZXMgPSBuYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGxOYW1lc3BhY2VBbGlhc2VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5uYW1lc3BhY2VBbGlhc2VzID0gbm9kZS5uYW1lc3BhY2VBbGlhc2VzIHx8IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlhczogXCJ1YVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZVVyaTogXCJodHRwOi8vb3BjZm91bmRhdGlvbi5vcmcvVUEvXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNXZWxsS25vd246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZmlsbE5hbWVzcGFjZUFsaWFzZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Endpoint2">
11
11
  <div id="licenceWidget"></div>