Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@FGFW
Last active March 10, 2017 09:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save FGFW/7949fa503c16c46ef4c0b5b854fd696e to your computer and use it in GitHub Desktop.
Save FGFW/7949fa503c16c46ef4c0b5b854fd696e to your computer and use it in GitHub Desktop.
BCN5.2
-----BEGIN CERTIFICATE-----
MT4xLyogOjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6
Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Og0KOjogIGJjbiA1LjIgIGJ5
IGJhaWxvbmczNjAgQHd3dy5iYXRob21lLm5ldA0KOjogyte3orzmuPzQwrXY1rc6
aHR0cDovL3d3dy5iYXRob21lLm5ldC90aHJlYWQtMzIzMjItMS0xLmh0bWwNCjo6
DQo6OiDKudPDyrHH672rYmNuLmJhdLfFyOvIztLi0ru49lBBVEjW0LXExL/CvNLU
seO199PDDQo6OiC1q8fryLexo2Jjbi5iYXTTtdPQuMPEv8K8tcS2wdC0yKjP3ijS
8rTL1+66w7K70qrRodTxc3lzdGVtMzIpDQo6OiC9qNLp0MK9qNK7uPbEv8K816i5
qWJjbi5iYXTKudPDLNTZvavV4rj2xL/CvMztvNO1vVBBVEjW0A0KOjoNCjo6ILv5
sb7Tw7eoOg0KOjogICDPwtTYOiBiY24gY29tbWFuZCBmaWxlbmFtZSBbdjp2ZXJz
aW9uXSBbL2ZdIFsvbzpwYXRoXQ0KOjogICAgILTTQmF0Y2gtQ07Jz8/C1NjWuLao
tcS12sj9t70NCjo6ICAgICAgY29tbWFuZA0KOjogICAgICAgILmp0aE6Z2V0LXRv
b2wgZ2V0IGd0IGRvd24NCjo6ICAgICAgICDHsMj9uPbQp7n7tcjNrCzX7rrz0ru4
9rXE0Ke5+7XIzazT2mdldC10b29sIC9mDQo6OiAgICAgIGZpbGVuYW1lDQo6OiAg
ICAgICAg0/vPwtTYtcS12sj9t73D+7PGDQo6OiAgICAgICi/ydGhKXY6dmVyc2lv
bg0KOjogICAgICAgINP7z8LU2LXEtdrI/be9sOaxviix3MPiz8LU2MSsyM+w5rG+
KQ0KOjogICAgICAov8nRoSkvZg0KOjogICAgICAgILy0yrm12sj9t73S0bTm1NrS
ss/C1NgstcjNrNPaZG93bg0KOjogICAgICAov8nRoSkvbzpwYXRoDQo6OiAgICAg
ICAgz8LU2LW91ri2qMS/wrwscGF0aM6qJy0n1PLPwtTYtb21scewxL/CvA0KOjog
ICAgICDA/TpiY24gZ2V0IHNlZCB2OjQuMC43IC9mDQo6OiAgICAgICAgIGJjbiBn
ZXQgY2FwaQ0KOjogICAgICAgICBiY24gZ2V0IHNlZCAiL286TmV3IEZvbGRlciIN
Cjo6ICAgICAgICAgYmNuIGdldCBzZWQgL286LQ0KOjoNCjo6ICAgyb6z/TogYmNu
IGNvbW1hbmQgZmlsZW5hbWUNCjo6ICAgICC002Jjbi5iYXTL+bSmtcTEv8K81tDJ
vrP90ru49s7EvP4ovNApDQo6OiAgICAgIGNvbW1hbmQ6DQo6OiAgICAgICAguanR
oTpkZWwtdG9vbCBkZWwgZHQNCjo6ICAgICAgZmlsZW5hbWU6DQo6OiAgICAgICAg
INP7yb6z/bXEzsS8/ii80CnD+7PGLLK7vNO689e61PLJvrP9y/nT0M/gudjOxLz+
KLzQKQ0KOjogICAgICDA/TpiY24gZGVsIGNhcGkucmFyDQo6OiAgICAgICAgIGJj
biBkZWwgY2FwaQ0KOjoNCjo6ICAgsunV0jogYmNuIGNvbW1hbmQga2V5d29yZCBb
Y29sOmxlbmd0aF0gLi4uDQo6OiAgICAguPm+3bnYvPy0yrLp1dK12sj9t70NCjo6
ICAgICAgY29tbWFuZDoNCjo6ICAgICAgICAguanRoTpmaW5kLXRvb2wgZmluZCBm
dA0KOjogICAgICBrZXl3b3JkOg0KOjogICAgICAgICDQ6NKqsunV0rXEudi8/NfW
LLvhsbux4NLrzqpKU2NyaXB01f3U8rHttO/KvQ0KOjogICAgICAov8nRoSljb2w6
bGVuZ3RoDQo6OiAgICAgICAgILmp0aE6bmFtZSB2ZXIgaW5mbyBzaXplDQo6OiAg
ICAgICAgINa4tqjK5LP2wdC1xL/ttsgsv8nWuLaotuC49g0KOjogICAgICAgICBs
ZW5ndGix7cq+uMPB0LXEv+22yCzOqjDKsdTy0v6y2LjDwdANCjo6ICAgICAgICAg
xKzIz7/ttshuYW1lOjE0IHZlcjoxMiBpbmZvOjM4IHNpemU6OA0KOjogICAgICDA
/TpiY24gZmluZCDV/dTyDQo6OiAgICAgICAgIGJjbiBmaW5kIMzmu7sgdmVyOjAg
aW5mbzo1MA0KOjogICAgICAgICBiY24gZmluZCAiXnNlZCAiDQo6Og0KOjogzOHK
vjq/ydLU09K8/NDeuMTUtMLrwLS78bXDuPy437XEv8m2qNbG0NQNCjo6DQo6OiBC
YXRjaC1DTs/uxL+6z9f31d8NCjo6ILjEvfjT686su6SjuiBDckxmLCBiYWlsb25n
MzYwLCBCYXRjaGVyDQo6OiDNxrz2us29qNLpo7ogdGVtcGxpbnNoaSwg0sDJvb7T
LCB0aWdlcnBvd2VyDQoNCjorIDUuMg0KOisgINDeuLS4/NDCYmNuyrG/ycTcs/bP
1rXEtO3O8w0KOisNCjorIDUuMQ0KOisgINDeuLTBy8XQts9saXN0yrG85MqxtcTC
37yttO3O8w0KOisgINDeuLTBy2ZpbmQgcmVtyrGz9s/WtcS07c7zDQo6KyAg1Pa8
08HLRWFzeVVTZcSjyr0NCjorICDU9rzTwcsvZr+qudgNCjorICDU9rzTwcsvb7+q
udgNCjorICDM4bjfwcu2qNbG0NQNCjorDQo6KyA1LjANCjorICDW2NC0wcu0+sLr
LMq508NiYXQvSnO77LHgLL32saPB9MHLZ2V0LXRvb2wsZmluZC10b29sLGRlbC10
b29sDQo6KyAg1PbHv8HLZmluZC10b29stcS5psTcDQo6Kw0KOisgNC4xLjINCjor
ICDQ3ri0wctHZXQtVG9vbLbByKGyu7W91+7Qwmxpc3S1xM7KzOINCjorICDQ3ri0
wctHZXQtVXBkYXRlveLRucqxxL/CvLK7ttS1xM7KzOINCjorDQo6KyA0LjEuMQ0K
OisgINDeuLTBy7K/t9ZidWcNCjorICDQ3rjEwcu12sj9t73B0LHttcS78cih1LQN
Cg0KQGVjaG8gb2ZmDQoNCnNldCAiRWFzeVVzZT1mYWxzZSIgICAgLy9FYXN5VXNl
vau12rb+uPayzsr9tbGzybXayP23vc/C1NgsyOe5+8O709DV0rW91ri2qLXayP23
vdTyu+HWtNDQZmluZC10b29sDQoNCm1kICIlfmRwMCR0ZXN0QWRtaW4kIiAyPm51
bA0KaWYgbm90IGV4aXN0ICIlfmRwMCR0ZXN0QWRtaW4kIiAoDQogICAgZWNobyBi
Y26yu77fsbjL+dTaxL/CvLXE0LTI68ioz94hID4mMg0KICAgIGV4aXQgL2IgMQ0K
KSBlbHNlIHJkICIlfmRwMCR0ZXN0QWRtaW4kIg0KDQpzZXRsb2NhbCBlbmFibGVk
ZWxheWVkZXhwYW5zaW9uDQoNCnNldCAvYSBuYW1lPTE0LHZlcj0xMixpbmZvPTM4
LHNpemU9OA0Kc2V0IGNtZExpc3Q9Z2V0LXRvb2wgZGVsLXRvb2wgZmluZC10b29s
DQpzZXQgZ2V0LXRvb2w9Z2V0LXRvb2wgZ3QgZ2V0DQpzZXQgZGVsLXRvb2w9ZGVs
LXRvb2wgZHQgZGVsDQpzZXQgZmluZC10b29sPWZpbmQtdG9vbCBmdCBmaW5kDQpz
ZXQgY292ZXI9ZmFsc2UNCg0KZm9yICUlaiBpbiAoIiV+MyIgIiV+NCIgIiV+NSIg
IiV+NiIpIGRvICgNCiAgICBpZiAvaSBub3QgIiUlfmoiPT0iL2YiICgNCiAgICAg
ICAgZm9yIC9mICJ0b2tlbnM9MSwqIGRlbGltcz06IiAlJWsgaW4gKCIlJX5qIikg
ZG8gc2V0ICUlaz0lJWwNCiAgICApIGVsc2Ugc2V0IGNvdmVyPXRydWUNCikNCg0K
aWYgL2kgIiVFYXN5VXNlJSI9PSJ0cnVlIiAoDQogICAgY3NjcmlwdCAvbm9sb2dv
IC9lOmpzY3JpcHQgIiV+ZjAiIC9mdW5jOmdldC10b29sIC9uYW1lOiV+MSAiL3Zl
cjoldiUiIC9jb3ZlcjpmYWxzZSAvY29sczolbmFtZSUtJXZlciUtJWluZm8lLSVz
aXplJSAiL3BhdGg6JS9vJSIgL2Vhc3l1c2U6dHJ1ZXxtb3JlDQogICAgZ290byA6
RVhJVA0KKQ0KDQppZiAvaSAiJX4xIj09ImRvd24iICgNCiAgICBzZXQgY21kPWdl
dC10b29sDQogICAgc2V0IGNvdmVyPWZhbHNlDQopIGVsc2UgKA0KICAgIGZvciAl
JWkgaW4gKCVjbWRMaXN0JSkgZG8gKA0KICAgICAgICBmb3IgJSVqIGluICghJSVp
ISkgZG8gKA0KICAgICAgICAgICAgaWYgL2kgIiUlaiI9PSIlfjEiIHNldCBjbWQ9
JSVpDQogICAgICAgICkNCiAgICApDQopDQoNCmlmICIlY21kJSI9PSIiICgNCiAg
ICBlY2hvIMP8we6yu7Tm1NpeXiEgPiYyDQogICAgZmluZHN0ciAiXjo6IiAiJX5m
MCJ8bW9yZQ0KICAgIGVuZGxvY2FsJmV4aXQgL2IgMQ0KKSBlbHNlIGlmICIlY21k
JSI9PSJkZWwtdG9vbCIgKA0KICAgIHJkIC9zIC9xICIlfmRwMCV+MiIgMj5udWwN
CiAgICBkZWwgIiV+ZHAwJX4yLmV4ZSIsIiV+ZHAwJX4yLioiIDI+bnVsDQogICAg
ZWNobyDS0cm+s/0NCiAgICBlbmRsb2NhbCZleGl0IC9iIDANCikNCg0KaWYgIiVj
bWQlIj09ImZpbmQtdG9vbCIgKA0KICAgIGNzY3JpcHQgICAgL25vbG9nbyAvZTpq
c2NyaXB0ICIlfmYwIiAvZnVuYzpmaW5kLXRvb2wgIi9rZXl3b3JkOiV+MiIgL2Nv
bHM6JW5hbWUlLSV2ZXIlLSVpbmZvJS0lc2l6ZSUgIi9wYXRoOiUvbyUiIHxtb3Jl
DQopIGVsc2UgKA0KICAgIGNzY3JpcHQgL25vbG9nbyAvZTpqc2NyaXB0ICIlfmYw
IiAvZnVuYzolY21kJSAvbmFtZTolfjIgIi92ZXI6JXYlIiAvY292ZXI6JWNvdmVy
JSAiL3BhdGg6JS9vJSINCiAgICBnb3RvIDpFWElUDQopDQoNCjpFWElUDQplbmRs
b2NhbCZleGl0IC9iICVlcnJvcmxldmVsJQ0KKi8NCnRyeSB7DQogICAgdmFyIERv
d25Nb2RlID0gJyc7ICAgICAgIC8vz8LU2Le9yr0swfS/1dTyyrnTw8TavajPwtTY
Lr/J0tTKudPDxuTL+7XayP23vSzA/Tond2dldCAtcSAiJFVSTCIgLU8gIiRTYXZl
UGF0aCInDQogICAgdmFyIFVSQVJNb2RlID0gJ3VucmFyIHggLW8rIC15ICIkRmls
ZSIgIiRTYXZlUGF0aCInOyAgLy+94tG5t73KvSzErMjPyrnTw3VucmFyveLRuQ0K
DQogICAgdmFyIFdTaGVsbCAgPSBuZXcgQWN0aXZlWE9iamVjdCgnV1NjcmlwdC5T
aGVsbCcpOw0KICAgIHZhciBGU08gICAgID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1Nj
cmlwdGluZy5GaWxlU3lzdGVtT2JqZWN0Jyk7DQogICAgdmFyIFhNTEhUVFAgPSBu
ZXcgQWN0aXZlWE9iamVjdCgnTWljcm9zb2Z0LlhNTEhUVFAnKTsNCiAgICB2YXIg
QURPICAgICA9IG5ldyBBY3RpdmVYT2JqZWN0KCdBRE9EQi5TdHJlYW0nKTsNCiAg
ICB2YXIgQXJndiAgICA9IFdTY3JpcHQuQXJndW1lbnRzLk5hbWVkOw0KICAgIHZh
ciBiY25QYXRoID0gRlNPLkdldEZpbGUoV1NjcmlwdC5TY3JpcHRGdWxsTmFtZSku
UGFyZW50Rm9sZGVyLlBhdGggKyAnXFwnOyAvL7XayP23vbTmt8W12Na3LMSsyM/O
qmJjbi5iYXTL+bSmxL/CvA0KICAgIHZhciBTYXZQYXRoID0gQXJndi5JdGVtKCdw
YXRoJykgPT0gJycgPyBiY25QYXRoIDogKEFyZ3YuSXRlbSgncGF0aCcpID09ICct
JyA/IFdTaGVsbC5DdXJyZW50RGlyZWN0b3J5ICsgJ1xcJyA6IEFyZ3YuSXRlbSgn
cGF0aCcpLnJlcGxhY2UoL1xcJC8sICcnKSArICdcXCcpOw0KICAgIHZhciBob3N0
ICAgID0gJ2h0dHA6Ly9iYXRjaC1jbi5xaW5pdWRuLmNvbSc7DQoNCiAgICBpZiAo
IShGU08uRmlsZUV4aXN0cyhiY25QYXRoICsgJ3Rvb2wuQHZlcnNpb24udHh0Jykg
JiYgQ2hlY2tMaXN0RGF0ZSgpKSkgew0KICAgICAgICBkb3dubG9hZCgnL2xpc3Qv
dG9vbC5AdmVyc2lvbi50eHQnLCBiY25QYXRoKTsNCiAgICB9DQoNCiAgICBzd2l0
Y2ggKEFyZ3YuSXRlbSgnZnVuYycpKSB7DQogICAgICAgIGNhc2UgJ2dldC10b29s
JzoNCiAgICAgICAgICAgIGdldF90b29sKEFyZ3YuSXRlbSgnbmFtZScpLCBBcmd2
Lkl0ZW0oJ3ZlcicpLCBBcmd2Lkl0ZW0oJ2NvdmVyJykpOw0KICAgICAgICAgICAg
YnJlYWs7DQogICAgICAgIGNhc2UgJ2ZpbmQtdG9vbCc6DQogICAgICAgICAgICB2
YXIgY29scyA9IEFyZ3YuSXRlbSgnY29scycpLnNwbGl0KCctJyk7DQogICAgICAg
ICAgICBmaW5kX3Rvb2woQXJndi5JdGVtKCdrZXl3b3JkJyksIGNvbHNbMF0sIGNv
bHNbMV0sIGNvbHNbMl0sIGNvbHNbM10pOw0KICAgICAgICAgICAgYnJlYWs7DQog
ICAgfQ0KICAgIFdTY3JpcHQuUXVpdCgwKTsNCn0gY2F0Y2ggKGUpIHsNCiAgICBX
U2NyaXB0LlN0ZEVyci5Xcml0ZUxpbmUoJ0pTY3JpcHTUy9DQyrG07c7zOicgKyBl
Lm1lc3NhZ2UpOw0KICAgIFdTY3JpcHQuUXVpdCgxKTsNCn0NCg0KZnVuY3Rpb24g
Z2V0X3Rvb2woZmlsZU5hbWUsIGZpbGVWZXIsIGNvdmVyTW9kZSkNCnsNCiAgICB2
YXIgbGlzdCAgICAgPSBGU08uT3BlblRleHRGaWxlKGJjblBhdGggKyAndG9vbC5A
dmVyc2lvbi50eHQnLCAxKS5SZWFkQWxsKCk7DQogICAgdmFyIGZ1bGxOYW1lID0g
bGlzdC5tYXRjaChuZXcgUmVnRXhwKCdeJyArIGZpbGVOYW1lICsgJyhcXC5bYS16
XSsgfCApQD9bXiBdKyBbXiBdKyBbXiBdKycsICdtZ2knKSk7DQoNCiAgICBpZiAo
IShmdWxsTmFtZSBpbnN0YW5jZW9mIEFycmF5KSkgew0KICAgICAgICBXU2NyaXB0
LlN0ZEVyci5Xcml0ZUxpbmUoJ8601dK1vcalxeS1xLXayP23vSEnKTsNCiAgICAg
ICAgaWYgKEFyZ3YuSXRlbSgnZWFzeXVzZScpID09ICd0cnVlJykgew0KICAgICAg
ICAgICAgdmFyIGNvbHMgPSBBcmd2Lkl0ZW0oJ2NvbHMnKS5zcGxpdCgnLScpOw0K
ICAgICAgICAgICAgZmluZF90b29sKGZpbGVOYW1lLCBjb2xzWzBdLCBjb2xzWzFd
LCBjb2xzWzJdLCBjb2xzWzNdKTsNCiAgICAgICAgfQ0KICAgICAgICBXU2NyaXB0
LlF1aXQoMSk7DQogICAgfQ0KDQogICAgdmFyIHZlciwgbmFtZSwgc2l6ZSwgaW5m
bywgd2l0aFZlcjsNCiAgICBpZiAoZmlsZVZlciA9PSAnJykgeyAgLy/Du9PQ1ri2
qLDmsb4s1PLPwtTYsOaxvrrFx7DT0CdAJ7XEKM3GvPaw5ikNCiAgICAgICAgaW5m
byAgICA9IGZ1bGxOYW1lLmpvaW4oJ1xuJykubWF0Y2goL14uK0AuKyQvbSlbMF07
DQogICAgICAgIHdpdGhWZXIgPSBmdWxsTmFtZS5sZW5ndGggPT0gMSA/IGZhbHNl
IDogdHJ1ZTsNCg0KICAgIH0gZWxzZSB7ICAgICAgICAgICAgIC8v1ri2qMHLsOax
vrrFDQogICAgICAgIGluZm8gPSBmdWxsTmFtZS5qb2luKCdcbicpLm1hdGNoKG5l
dyBSZWdFeHAoJ14uKycgKyBmaWxlVmVyICsgJy4rJCcsICdtaScpKTsNCiAgICAg
ICAgaWYgKCEoaW5mbyBpbnN0YW5jZW9mIEFycmF5KSkgew0KICAgICAgICAgICAg
V1NjcmlwdC5TdGRFcnIuV3JpdGVMaW5lKCfOtNXStb3GpcXktcS12sj9t70hJyk7
DQogICAgICAgICAgICBpZiAoQXJndi5JdGVtKCdlYXN5dXNlJykgPT0gJ3RydWUn
KSB7DQogICAgICAgICAgICAgICAgdmFyIGNvbHMgPSBBcmd2Lkl0ZW0oJ2NvbHMn
KS5zcGxpdCgnLScpOw0KICAgICAgICAgICAgICAgIGZpbmRfdG9vbChmaWxlTmFt
ZSwgY29sc1swXSwgY29sc1sxXSwgY29sc1syXSwgY29sc1szXSk7DQogICAgICAg
ICAgICB9DQogICAgICAgICAgICBXU2NyaXB0LlF1aXQoMSk7DQogICAgICAgIH0N
CiAgICAgICAgaW5mbyA9IGluZm9bMF07DQogICAgICAgIHdpdGhWZXIgPSB0cnVl
Ow0KICAgIH0NCg0KICAgIG5hbWUgPSBpbmZvLm1hdGNoKC9bXiBdKy8gKTtpbmZv
ID0gaW5mby5yZXBsYWNlKC9bXiBdKy8sICcnKTsNCiAgICB2ZXIgID0gaW5mby5t
YXRjaCgvW15AIF0rLyk7DQogICAgc2l6ZSA9IGluZm8ubWF0Y2goL1xkKyg/PUJ5
dGVzKS8pOw0KDQogICAgaWYgKCEvXC5bXi9dKyQvLnRlc3QobmFtZSkpIHsNCiAg
ICAgICAgbmFtZSArPSAnLmV4ZSc7DQogICAgfQ0KDQogICAgaWYgKGNvdmVyTW9k
ZSA9PSAnZmFsc2UnKSB7IA0KICAgICAgICBpZiAoRlNPLkZpbGVFeGlzdHMoU2F2
UGF0aCArIG5hbWUpICYmIEZTTy5HZXRGaWxlKFNhdlBhdGggKyBuYW1lKS5TaXpl
ID09IHNpemUpIHsNCiAgICAgICAgICAgIFdTY3JpcHQuU3RkRXJyLldyaXRlTGlu
ZSgnuMO12sj9t73S0bTm1NosyOe5+8jU0OjSqs/C1NjH68q508MvZrLOyv0nKTsN
CiAgICAgICAgICAgIFdTY3JpcHQuUXVpdCgxKTsNCiAgICAgICAgfQ0KICAgIH0N
Cg0KICAgIGZ1bGxOYW1lID0gKHdpdGhWZXIgPyB2ZXIgKyAnLycgOiAnJykgKyBu
YW1lOw0KDQogICAgV1NjcmlwdC5TdGRPdXQuV3JpdGVMaW5lKCfD+7PGOicgKyBu
YW1lICsgJyCw5rG+OicgKyB2ZXIgKyAnILTz0KE6JyAgKyAoc2l6ZSAvIDEwMjQp
LnRvRml4ZWQoMSkgKyAnS0InKTsNCiAgICBXU2NyaXB0LlN0ZE91dC5Xcml0ZSgn
z8LU2NbQLi4uJyk7DQogICAgZG93bmxvYWQoJy90b29sLycgKyBmdWxsTmFtZSwg
U2F2UGF0aCk7DQogICAgaWYgKEZTTy5HZXRGaWxlKFNhdlBhdGggKyBuYW1lKS5T
aXplID09IHNpemUpIHsNCiAgICAgICAgV1NjcmlwdC5TdGRPdXQuV3JpdGVMaW5l
KCfPwtTYzeqxzyEnKTsNCiAgICB9IGVsc2Ugew0KICAgICAgICBXU2NyaXB0LlN0
ZEVyci5Xcml0ZUxpbmUoJ8/C1NjKp7DcIScpOw0KICAgICAgICBXU2NyaXB0LlN0
ZEVyci5Xcml0ZUxpbmUoJ1VSTDonICsgaG9zdCArICcvdG9vbC8nICsgZnVsbE5h
bWUpOw0KICAgICAgICBXU2NyaXB0LlF1aXQoMSk7DQogICAgfQ0KDQogICAgaWYg
KC9cLnJhciQvLnRlc3QobmFtZSkpIHsNCiAgICAgICAgV1NjcmlwdC5TdGRPdXQu
V3JpdGUoJ73i0bnW0C4uLicpOw0KICAgICAgICB1bnJhcihuYW1lKTsNCiAgICAg
ICAgV1NjcmlwdC5TdGRPdXQuV3JpdGVMaW5lKCe94tG5zeqxzyEnKTsNCiAgICB9
DQp9DQoNCmZ1bmN0aW9uIGZpbmRfdG9vbChrZXl3b3JkLCBuYW1lbCwgdmVybCwg
aW5mb2wsIHNpemVsKQ0Kew0KICAgIHZhciBmaWxlID0gRlNPLk9wZW5UZXh0Rmls
ZShiY25QYXRoICsgJ3Rvb2wuQHZlcnNpb24udHh0JywgMSk7DQogICAgdmFyIHBh
dCAgPSBuZXcgUmVnRXhwKGtleXdvcmQsICdpJyk7DQogICAgd2hpbGUgKCFmaWxl
LkF0RW5kT2ZTdHJlYW0pIHsNCiAgICAgICAgdmFyIGxpbmUgPSBmaWxlLlJlYWRM
aW5lKCkucmVwbGFjZSgvQC8sICcnKS5yZXBsYWNlKC9ecmVtIC4rJC9pbSwgJycp
Ow0KICAgICAgICBpZiAocGF0LnRlc3QobGluZSkpIHsNCiAgICAgICAgICAgIHZh
ciBuYW1lID0gbGluZS5tYXRjaCgvW14uIF0rLylbMF07bGluZSA9IGxpbmUucmVw
bGFjZSgvW14gXSsvLCAnJyk7DQogICAgICAgICAgICB2YXIgdmVyICA9IGxpbmUu
bWF0Y2goL1teIF0rLylbMF0gO2xpbmUgPSBsaW5lLnJlcGxhY2UoL1teIF0rLywg
JycpOw0KICAgICAgICAgICAgdmFyIGluZm8gPSBsaW5lLm1hdGNoKC9bXiBdKy8p
WzBdIDtsaW5lID0gbGluZS5yZXBsYWNlKC9bXiBdKy8sICcnKTsNCiAgICAgICAg
ICAgIHZhciBzaXplID0gbGluZS5tYXRjaCgvXGQrLylbMF07DQogICAgICAgICAg
ICBXU2NyaXB0LlN0ZE91dC5Xcml0ZUxpbmUoY3V0U3RyKG5hbWUsIG5hbWVsKSAr
IGN1dFN0cih2ZXIsIHZlcmwpICsgY3V0U3RyKGluZm8sIGluZm9sKSArIGN1dFN0
cigoc2l6ZSAvIDEwMjQpLnRvRml4ZWQoMSkgKyAnS0InLCBzaXplbCkpOw0KICAg
ICAgICB9DQogICAgfQ0KDQp9DQoNCmZ1bmN0aW9uIGN1dFN0cihzdHIsIG1heCkg
Ly+92Mih0ru2qNfWvdq1xNfWt/u0riwgsrvX47K5v9W48SyzrLn908MnLi4uJ73Y
ts8NCnsNCiAgICBpZiAobWF4ID09IDApIHsNCiAgICAgICAgcmV0dXJuICdcYic7
IC8vz/uz/dW8zru1xL/VuPENCiAgICB9DQogICAgdmFyIGwgPSAwLCBpLCBqLCBz
cGFjZSA9ICcgJzsNCiAgICB2YXIgc3RybCA9IHN0ci5sZW5ndGgsIHN0cmwyID0g
MDsNCg0KICAgIGZvciAoaSA9IDA7IGkgPCBzdHJsOyBpKyspIHsNCiAgICAgICAg
dmFyIGMgPSBzdHIuY2hhckNvZGVBdChpKTsNCiAgICAgICAgc3RybDIgKz0gKChj
ID49IDB4MDAwMSAmJiBjIDw9IDB4MDA3ZSkgfHwgKDB4ZmY2MCA8PSBjICYmIGMg
PD0gMHhjZmY5ZikpID8gMSA6IDI7DQogICAgfQ0KDQogICAgbWF4ID0gc3RybDIg
PiBtYXggPyBtYXggLSAzIDogbWF4OyAvL86qJy4uLifUpMH0v9W85A0KICAgIGZv
ciAoaSA9IDA7IGkgPCBzdHJsICYmIGwgPCBtYXg7IGkrKykgew0KICAgICAgICB2
YXIgYyA9IHN0ci5jaGFyQ29kZUF0KGkpOw0KICAgICAgICBsICs9ICgoYyA+PSAw
eDAwMDEgJiYgYyA8PSAweDAwN2UpIHx8ICgweGZmNjAgPD0gYyAmJiBjIDw9IDB4
Y2ZmOWYpKSA/IDEgOiAyOw0KICAgIH0NCiAgICBmb3IgKGogPSAwOyBqIDwgbWF4
IC0gbCArIDE7IGorKykgew0KICAgICAgICBzcGFjZSArPSAnICc7DQogICAgfQ0K
ICAgIHJldHVybiBzdHIuc3Vic3RyKDAsIGkpICsgKHN0cmwyID4gbWF4ID8gJy4u
LicgOiAnJykgKyBzcGFjZTsNCn0NCg0KZnVuY3Rpb24gdW5yYXIoZmlsZU5hbWUp
IHsNCiAgICBpZiAoL3VucmFyLy50ZXN0KFVSQVJNb2RlKSAmJiAhRlNPLkZpbGVF
eGlzdHMoYmNuUGF0aCArICd1bnJhci5leGUnKSkgew0KICAgICAgICBkb3dubG9h
ZCgnL3Rvb2wvdW5yYXIuZXhlJywgYmNuUGF0aCk7DQogICAgfQ0KICAgIFdTaGVs
bC5SdW4oVVJBUk1vZGUucmVwbGFjZSgvXCRGaWxlLywgU2F2UGF0aCArIGZpbGVO
YW1lKS5yZXBsYWNlKC9cJFNhdmVQYXRoLywgU2F2UGF0aCksIDAsIHRydWUpOw0K
fQ0KDQpmdW5jdGlvbiBkb3dubG9hZChVUkwsIGRvd25QYXRoKQ0Kew0KICAgIHZh
ciBTYXZlUGF0aCA9IGRvd25QYXRoICsgVVJMLm1hdGNoKC9bXi9dKyQvKTsNCiAg
ICB2YXIgRG93blVSTCAgPSBob3N0ICsgVVJMICsgJz8nICsgTWF0aC5yYW5kb20o
KTsNCg0KICAgIGlmIChEb3duTW9kZSA9PSAnJykgew0KICAgICAgICBYTUxIVFRQ
Lk9wZW4oJ0dFVCcsIERvd25VUkwsIDApOw0KICAgICAgICBYTUxIVFRQLlNlbmQo
KTsNCiAgICAgICAgQURPLk1vZGUgPSAzOw0KICAgICAgICBBRE8uVHlwZSA9IDE7
DQogICAgICAgIEFETy5PcGVuKCk7DQogICAgICAgIEFETy5Xcml0ZShYTUxIVFRQ
LlJlc3BvbnNlQm9keSk7DQogICAgICAgIEFETy5TYXZlVG9GaWxlKFNhdmVQYXRo
LCAyKTsNCiAgICAgICAgQURPLkNsb3NlKCk7DQogICAgfSBlbHNlIHsNCiAgICAg
ICAgV1NoZWxsLlJ1bihEb3duTW9kZS5yZXBsYWNlKC9cJFVSTC8sIERvd25VUkwp
LnJlcGxhY2UoL1wkU2F2ZVBhdGgvLCBTYXZlUGF0aCksIDAsIHRydWUpOw0KICAg
IH0NCn0NCg0KZnVuY3Rpb24gQ2hlY2tMaXN0RGF0ZSgpIC8vuPm+3XRpbWUudHh0
z9TKvrXEyc+0zrj80MLKsbzkvva2qMrHt/G4/NDCbGlzdA0Kew0KICAgIFhNTEhU
VFAuT3BlbignR0VUJywgaG9zdCArICcvbGlzdC90aW1lLnR4dD8nICsgTWF0aC5y
YW5kb20oKSwgMCk7DQogICAgWE1MSFRUUC5TZW5kKCk7DQogICAgQURPLk1vZGUg
PSAzOw0KICAgIEFETy5UeXBlID0gMTsNCiAgICBBRE8uT3BlbigpOw0KICAgIEFE
Ty5Xcml0ZShYTUxIVFRQLlJlc3BvbnNlQm9keSk7DQogICAgQURPLlBvc2l0aW9u
ID0gMDsNCiAgICBBRE8uVHlwZSAgICAgPSAyOw0KICAgIEFETy5DaGFyU2V0ICA9
ICdHQjIzMTInOw0KICAgIHZhciBzdHIgPSBBRE8uUmVhZFRleHQoKS5yZXBsYWNl
KC9bXjAtOV0vZywgJycpOw0KICAgIHZhciBVcGRhdGVUaW1lID0gRGF0ZS5wYXJz
ZShuZXcgRGF0ZShzdHIuc3Vic3RyKDAsNCksIHN0ci5zdWJzdHIoNCwyKSwgc3Ry
LnN1YnN0cig2LDIpLCBzdHIuc3Vic3RyKDgsMiksIHN0ci5zdWJzdHIoMTIsMiks
IHN0ci5zdWJzdHIoMTQsMikpKTsNCiAgICBBRE8uQ2xvc2UoKTsNCiAgICBpZiAo
VXBkYXRlVGltZSA+IERhdGUucGFyc2UoRlNPLkdldEZpbGUoYmNuUGF0aCArICd0
b29sLkB2ZXJzaW9uLnR4dCcpLkRhdGVDcmVhdGVkKSkgew0KICAgICAgICByZXR1
cm4gZmFsc2U7DQogICAgfSBlbHNlIHsNCiAgICAgICAgcmV0dXJuIHRydWU7DQog
ICAgfQ0KfQ0K
-----END CERTIFICATE-----
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment