a:3:{s:4:"name";s:12:"blockreferer";s:4:"dirs";a:4:{i:0;s:12:"blockreferer";i:1;s:17:"blockreferer/l10n";i:2;s:20:"blockreferer/l10n/fr";i:3;s:25:"blockreferer/l10n/fr-utf8";}s:5:"files";a:6:{s:30:"blockreferer/l10n/fr/main.lang";s:4884:"O0Jsb2NrIGJ5IFJlZmVyZXIKQmxvY2FnZSBwYXIgUulm6XJlbnQKCjtTdGF0aXN0aWNzClN0YXRpc3RpcXVlcwoKO0Jsb2NrIGFueSB1bmRlc2lyYWJsZSByZWZlcmVycyB0byBhdm9pZCBhc3NvY2lhdGVkIHNwYW0KQmxvcXVlIHRvdXQgculm6XJlbnQgaW5k6XNpcmFibGUgYWZpbiBkJ+l2aXRlciBsZSBzcGFtIGFzc29jaekKCjtDb3VsZCBub3QgY3JlYXRlIEJsb2NrIGJ5IFJlZmVyZXIgZGVkaWNhdGVkIGZvbGRlcgpJbXBvc3NpYmxlIGRlIGNy6WVyIGxlIHLpcGVydG9pcmUgZOlkaekgcG91ciBCbG9jYWdlIHBhciBS6WbpcmVudAoKO1JlZmVyZXJzIGxpc3Qgd2FzIHN1Y2Nlc3NmdWxseSBjb252ZXJ0ZWQuIFlvdSBtYXkgbm93IGRlbGV0ZSB0YWJsZQpMYSBsaXN0ZSBkZXMgculm6XJlbnRzIGEg6XTpIGNvbnZlcnRpZSBhdmVjIHN1Y2Pocy4gVm91cyBwb3V2ZXogbWFpbnRlbmFudCBzdXBwcmltZXIgbGEgdGFibGUKCjtPcHRpb25zIHN1Y2Nlc3NmdWxseSBzYXZlZApPcHRpb25zIHNhdXbpZXMgYXZlYyBzdWNj6HMKCjtSZWZlcmVyIHN1Y2Nlc3NmdWxseSBzYXZlZApS6WbpcmVudCBzYXV26SBhdmVjIHN1Y2PocwoKO1JlZmVyZXJzIHN1Y2Nlc3NmdWxseSBkZWxldGVkClLpZulyZW50cyBzdXBwcmlt6XMgYXZlYyBzdWNj6HMKCjtPcHRpb25zCk9wdGlvbnMKCjtVc2UgcmVndWxhciBleHByZXNzaW9uClV0aWxpc2VyIGRlcyBleHByZXNzaW9ucyBy6Wd1bGnocmVzCgo7Rm9yd2FyZCB2aXNpdG9yIHRvIGl0J3Mgb3duIHJlZmVyZXIgaW5zdGVhZCBvZiBibG9ja2luZyBpdApSZW52b2llIGxlIHZpc2l0ZXVyIHZlcnMgc29uIHByb3ByZSBy6WbpcmVudCBhdSBsaWV1IGRlIGxlIGJsb3F1ZXIKCjtMb2cgYmxvY2tpbmcKU2F1dmVyIGxlIGpvdXJuYWwgZGVzIGJsb2NhZ2VzCgo7VmlldyBsb2cKVm9pciBsZSBqb3VybmFsCgo7VXNlIHBlcnNvbmFsaXplZCBlcnJvciBtZXNzYWdlClV0aWxpc2VyIHVuIG1lc3NhZ2UgZCdlcnJldXIgcGVyc29uYWxpc+kKCjtQZXJzb25hbGl6ZWQgZXJyb3IgbWVzc2FnZSAoSFRNTCkgOgpNZXNzYWdlIGQnZXJyZXVyIHBlcnNvbm5hbGlz6SAoSFRNTCkgOgoKO1RleHQgb2YgdGhlICJBY2Nlc3MgdG8gdGhlIHBhZ2UiIGxpbmsgOgpUZXh0ZSBkdSBsaWVuICJBY2PpZGVyIOAgbGEgcGFnZSIgOgoKO0FkZCBhIG5ldyByZWZlcmVyCkFqb3V0ZXIgdW4gbm91dmVhdSBy6WbpcmVudAoKO1JlZmVyZXIgdG8gYmxvY2sgOgpS6WbpcmVudCDgIGJsb3F1ZXIgOgoKO1NhdmUKU2F1dmVyCgo7QmxvY2tlZCByZWZlcmVyIGxpc3QKTGlzdGUgZGVzIHLpZulyZW50cyBibG9xdelzCgo7UmVmZXJlcgpS6WbpcmVudAoKO05vIHJlZmVyZXIgaXMgYmxvY2tlZCBmb3Igbm93CkF1Y3VuIHLpZulyZW50IG4nZXN0IGJsb3F16SBwb3VyIGwnaW5zdGFudAoKO0RlbGV0ZQpTdXBwcmltZXIKCjtJbnN0YWxsYXRpb24KSW5zdGFsbGF0aW9uCgo7VG8gdXNlIHBsdWdpbiwganVzdCBhZGQgcGFydCBvZiB0aGUgcmVmZXJlciB5b3Ugd2FudCB0byBibG9jazsgaS5lIGFkZCAic29tZWJ1enp3b3JkIiB0byBibG9jayBhbnkgcmVmZXJlciB3aGljaCBoYXZlICJzb21lYnV6endvcmQiIGluLgpQb3VyIHV0aWxpc2VyIGxlIHBsdWdpbiwgYWpvdXRlciBqdXN0ZSB1bmUgcGFydGllIGR1IHLpZulyZW50IHF1ZSB2b3VzIHZvdWxleiBibG9xdWVyOyBwYXIgZXhlbXBsZSBham91dGV6ICJzb21lYnV6endvcmQiIHBvdXIgYmxvcXVlciB0b3V0IHLpZulyZW50IGNvbnRlbmFudCAic29tZWJ1enp3b3JkIi4KCjtpcyBub3QgY2hlY2tlZApuJ2VzdCBwYXMgY29jaOkKCjtZb3UgaGF2ZSB0byB1c2UgcGFydCBvZiByZWZlcmVycywgb3IgdGhlaXIgZnVsbCBhZGRyZXNzLgpWb3VzIGRldmV6IHV0aWxpc2VyIHVuZSBwYXJ0aWUgZGVzIHLpZulyZW50LCBvdSBiaWVuIGxldXIgYWRyZXNzZSBjb21wbOh0ZS4KCjtpcyBjaGVja2VkCmVzdCBjb2No6QoKO1lvdSBoYXZlIHRvIHVzZSByZWd1bGFyIGV4cHJlc3Npb24gKGNhc2UgaW5zZW5zaXRpdmUpLgpWb3VzIGRldmV6IHV0aWxpc2VyIGRlcyBleHByZXNzaW9ucyBy6Wd1bGnocmVzIChpbnNlbnNpYmxlcyDgIGxhIGNhc3NlKS4KCjtJZiB5b3UgbW9kaWZ5IGRpZmZlcmVudCBmb3JtcyBhdCB0aGUgc2FtZSB0aW1lLCBvbmx5IHRoZSBvbmUgeW91IGNob3NlIHRvIHNhdmUgY2hhbmdlcyB3aWxsIGJlIHNhdmVkLgpTaSB2b3VzIG1vZGlmaWV6IHBsdXNpZXVycyBmb3JtdWxhaXJlcyBlbiBt6m1lIHRlbXBzLCBzZXVsIGNlbHVpIHBvdXIgbGVxdWVsIHZvdXMgYXVyZXogY2hvaXNpIGQnZW5yZWdpc3RyZXIgbGVzIGNoYW5nZW1lbnRzIHNlcmEgc2F1dukuCgo7SWYgeW91IHVwZ3JhZGUgZnJvbSB2ZXJzaW9uIDEuMCBvciAxLjEsIHlvdSB3aWxsIGhhdmUgdG8gY29udmVydCB0aGUgcmVmZXJlcnMgbGlzdCB0byB0aGUgbmV3IGZvcm1hdC4KU2kgdm91cyBtZXR0ZXog4CBqb3VyIGRlcHVpcyBsYSB2ZXJzaW9uIDEuMCBvdSAxLjEsIHZvdXMgZGV2ZXogY29udmVydGlyIHZvdHJlIGxpc3RlIGRlcyBy6WbpcmVudHMgYXUgbm91dmVhdSBmb3JtYXQuCgo7Q29udmVydApDb252ZXJ0aXIKCjtDb3VsZCBub3QgY3JlYXRlIHRlbXAgZmlsZQpJbXBvc3NpYmxlIGRlIGNy6WVyIGxlIGZpY2hpZXIgdGVtcG9yYWlyZQoKO0NvdWxkIG5vdCBjb3B5IHRlbXAgZmlsZQpJbXBvc3NpYmxlIGRlIGNvcGllciBsZSBmaWNoaWVyIHRlbXBvcmFpcmUKCjt0byBmaW5hbCBmaWxlCnZlcnMgbGUgZmljaGllciBmaW5hbAoKO0hlbHAKQWlkZQoKO0FsbCBibG9ja2luZ3MgOiBudW1iZXIgb2YgYmxvY2tlZCByZWZlcmVycyBzaW5jZSBiZWdpbm5pbmcgb2YgdGhlIGxvZy4KVG91cyBsZXMgYmxvY2FnZXMgOiBub21icmUgZGUgculm6XJlbnRzIGJsb3F16XMgZGVwdWlzIGxlIGTpYnV0IGRlIGxhIGpvdXJuYWxpc2F0aW9uLgoKO1llYXJseSA6IG51bWJlciBvZiBibG9ja2VkIHJlZmVyZXJzIHNpbmNlIGxhc3QgMzY1IGRheXMuCkFubnVlbGxlcyA6IG5vbWJyZSBkZSBy6WbpcmVudHMgYmxvcXXpcyBkYW5zIGxlcyBkZXJuaWVycyAzNjUgam91cnMuCgo7TW9udGhseSA6IG51bWJlciBvZiBibG9ja2VkIHJlZmVyZXJzIHNpbmNlIGxhc3QgMzAgZGF5cy4KTWVuc3VlbGxlcyA6IG5vbWJyZSBkZSBy6WbpcmVudHMgYmxvcXXpcyBkYW5zIGxlcyBkZXJuaWVycyAzMCBqb3Vycy4KCjtXZWVrbHkgOiBudW1iZXIgb2YgYmxvY2tlZCByZWZlcmVycyBzaW5jZSBsYXN0IDcgZGF5cy4KSGViZG9tYWRhaXJlcyA6IG5vbWJyZSBkZSBy6WbpcmVudHMgYmxvcXXpcyBkYW5zIGxlcyBkZXJuaWVycyA3IGpvdXJzLgoKO0RhaWx5IDogbnVtYmVyIG9mIGJsb2NrZWQgcmVmZXJlcnMgc2luY2UgbGFzdCAyNCBob3Vycy4KSm91cm5hbGnocmVzIDogbm9tYnJlIGRlIHLpZulyZW50cyBibG9xdelzIGRhbnMgbGVzIGRlcm5p6HJlcyAyNCBoZXVyZXMuCgo7VGltZSBzdGF0aXN0aWNzClN0YXRpc3RpcXVlcyB0ZW1wb3JlbGxlcwoKO0FsbCBibG9ja2luZ3MgOgpUb3VzIGxlcyBibG9jYWdlcyA6Cgo7WWVhcmx5IDoKQW5udWVsbGVzIDoKCjtNb250aGx5IDoKTWVuc3VlbGxlcyA6Cgo7V2Vla2x5IDoKSGViZG9tYWRhaXJlcyA6Cgo7RGFpbHkgOgpKb3VybmFsaehyZXMgOgoKO1JlZmVyZXJzIHN0YXRpc3RpY3MKU3RhdGlzdGlxdWVzIHBhciBy6WbpcmVudAo=";s:35:"blockreferer/l10n/fr-utf8/main.lang";s:5004:"O0Jsb2NrIGJ5IFJlZmVyZXIKQmxvY2FnZSBwYXIgUsOpZsOpcmVudAoKO1N0YXRpc3RpY3MKU3RhdGlzdGlxdWVzCgo7QmxvY2sgYW55IHVuZGVzaXJhYmxlIHJlZmVyZXJzIHRvIGF2b2lkIGFzc29jaWF0ZWQgc3BhbQpCbG9xdWUgdG91dCByw6lmw6lyZW50IGluZMOpc2lyYWJsZSBhZmluIGQnw6l2aXRlciBsZSBzcGFtIGFzc29jacOpCgo7Q291bGQgbm90IGNyZWF0ZSBCbG9jayBieSBSZWZlcmVyIGRlZGljYXRlZCBmb2xkZXIKSW1wb3NzaWJsZSBkZSBjcsOpZXIgbGUgcsOpcGVydG9pcmUgZMOpZGnDqSBwb3VyIEJsb2NhZ2UgcGFyIFLDqWbDqXJlbnQKCjtSZWZlcmVycyBsaXN0IHdhcyBzdWNjZXNzZnVsbHkgY29udmVydGVkLiBZb3UgbWF5IG5vdyBkZWxldGUgdGFibGUKTGEgbGlzdGUgZGVzIHLDqWbDqXJlbnRzIGEgw6l0w6kgY29udmVydGllIGF2ZWMgc3VjY8Oocy4gVm91cyBwb3V2ZXogbWFpbnRlbmFudCBzdXBwcmltZXIgbGEgdGFibGUKCjtPcHRpb25zIHN1Y2Nlc3NmdWxseSBzYXZlZApPcHRpb25zIHNhdXbDqWVzIGF2ZWMgc3VjY8OocwoKO1JlZmVyZXIgc3VjY2Vzc2Z1bGx5IHNhdmVkClLDqWbDqXJlbnQgc2F1dsOpIGF2ZWMgc3VjY8OocwoKO1JlZmVyZXJzIHN1Y2Nlc3NmdWxseSBkZWxldGVkClLDqWbDqXJlbnRzIHN1cHByaW3DqXMgYXZlYyBzdWNjw6hzCgo7T3B0aW9ucwpPcHRpb25zCgo7VXNlIHJlZ3VsYXIgZXhwcmVzc2lvbgpVdGlsaXNlciBkZXMgZXhwcmVzc2lvbnMgcsOpZ3VsacOocmVzCgo7Rm9yd2FyZCB2aXNpdG9yIHRvIGl0J3Mgb3duIHJlZmVyZXIgaW5zdGVhZCBvZiBibG9ja2luZyBpdApSZW52b2llIGxlIHZpc2l0ZXVyIHZlcnMgc29uIHByb3ByZSByw6lmw6lyZW50IGF1IGxpZXUgZGUgbGUgYmxvcXVlcgoKO0xvZyBibG9ja2luZwpTYXV2ZXIgbGUgam91cm5hbCBkZXMgYmxvY2FnZXMKCjtWaWV3IGxvZwpWb2lyIGxlIGpvdXJuYWwKCjtVc2UgcGVyc29uYWxpemVkIGVycm9yIG1lc3NhZ2UKVXRpbGlzZXIgdW4gbWVzc2FnZSBkJ2VycmV1ciBwZXJzb25hbGlzw6kKCjtQZXJzb25hbGl6ZWQgZXJyb3IgbWVzc2FnZSAoSFRNTCkgOgpNZXNzYWdlIGQnZXJyZXVyIHBlcnNvbm5hbGlzw6kgKEhUTUwpIDoKCjtUZXh0IG9mIHRoZSAiQWNjZXNzIHRvIHRoZSBwYWdlIiBsaW5rIDoKVGV4dGUgZHUgbGllbiAiQWNjw6lkZXIgw6AgbGEgcGFnZSIgOgoKO0FkZCBhIG5ldyByZWZlcmVyCkFqb3V0ZXIgdW4gbm91dmVhdSByw6lmw6lyZW50Cgo7UmVmZXJlciB0byBibG9jayA6ClLDqWbDqXJlbnQgw6AgYmxvcXVlciA6Cgo7U2F2ZQpTYXV2ZXIKCjtCbG9ja2VkIHJlZmVyZXIgbGlzdApMaXN0ZSBkZXMgcsOpZsOpcmVudHMgYmxvcXXDqXMKCjtSZWZlcmVyClLDqWbDqXJlbnQKCjtObyByZWZlcmVyIGlzIGJsb2NrZWQgZm9yIG5vdwpBdWN1biByw6lmw6lyZW50IG4nZXN0IGJsb3F1w6kgcG91ciBsJ2luc3RhbnQKCjtEZWxldGUKU3VwcHJpbWVyCgo7SW5zdGFsbGF0aW9uCkluc3RhbGxhdGlvbgoKO1RvIHVzZSBwbHVnaW4sIGp1c3QgYWRkIHBhcnQgb2YgdGhlIHJlZmVyZXIgeW91IHdhbnQgdG8gYmxvY2s7IGkuZSBhZGQgInNvbWVidXp6d29yZCIgdG8gYmxvY2sgYW55IHJlZmVyZXIgd2hpY2ggaGF2ZSAic29tZWJ1enp3b3JkIiBpbi4KUG91ciB1dGlsaXNlciBsZSBwbHVnaW4sIGFqb3V0ZXIganVzdGUgdW5lIHBhcnRpZSBkdSByw6lmw6lyZW50IHF1ZSB2b3VzIHZvdWxleiBibG9xdWVyOyBwYXIgZXhlbXBsZSBham91dGV6ICJzb21lYnV6endvcmQiIHBvdXIgYmxvcXVlciB0b3V0IHLDqWbDqXJlbnQgY29udGVuYW50ICJzb21lYnV6endvcmQiLgoKO2lzIG5vdCBjaGVja2VkCm4nZXN0IHBhcyBjb2Now6kKCjtZb3UgaGF2ZSB0byB1c2UgcGFydCBvZiByZWZlcmVycywgb3IgdGhlaXIgZnVsbCBhZGRyZXNzLgpWb3VzIGRldmV6IHV0aWxpc2VyIHVuZSBwYXJ0aWUgZGVzIHLDqWbDqXJlbnQsIG91IGJpZW4gbGV1ciBhZHJlc3NlIGNvbXBsw6h0ZS4KCjtpcyBjaGVja2VkCmVzdCBjb2Now6kKCjtZb3UgaGF2ZSB0byB1c2UgcmVndWxhciBleHByZXNzaW9uIChjYXNlIGluc2Vuc2l0aXZlKS4KVm91cyBkZXZleiB1dGlsaXNlciBkZXMgZXhwcmVzc2lvbnMgcsOpZ3VsacOocmVzIChpbnNlbnNpYmxlcyDDoCBsYSBjYXNzZSkuCgo7SWYgeW91IG1vZGlmeSBkaWZmZXJlbnQgZm9ybXMgYXQgdGhlIHNhbWUgdGltZSwgb25seSB0aGUgb25lIHlvdSBjaG9zZSB0byBzYXZlIGNoYW5nZXMgd2lsbCBiZSBzYXZlZC4KU2kgdm91cyBtb2RpZmlleiBwbHVzaWV1cnMgZm9ybXVsYWlyZXMgZW4gbcOqbWUgdGVtcHMsIHNldWwgY2VsdWkgcG91ciBsZXF1ZWwgdm91cyBhdXJleiBjaG9pc2kgZCdlbnJlZ2lzdHJlciBsZXMgY2hhbmdlbWVudHMgc2VyYSBzYXV2w6kuCgo7SWYgeW91IHVwZ3JhZGUgZnJvbSB2ZXJzaW9uIDEuMCBvciAxLjEsIHlvdSB3aWxsIGhhdmUgdG8gY29udmVydCB0aGUgcmVmZXJlcnMgbGlzdCB0byB0aGUgbmV3IGZvcm1hdC4KU2kgdm91cyBtZXR0ZXogw6Agam91ciBkZXB1aXMgbGEgdmVyc2lvbiAxLjAgb3UgMS4xLCB2b3VzIGRldmV6IGNvbnZlcnRpciB2b3RyZSBsaXN0ZSBkZXMgcsOpZsOpcmVudHMgYXUgbm91dmVhdSBmb3JtYXQuCgo7Q29udmVydApDb252ZXJ0aXIKCjtDb3VsZCBub3QgY3JlYXRlIHRlbXAgZmlsZQpJbXBvc3NpYmxlIGRlIGNyw6llciBsZSBmaWNoaWVyIHRlbXBvcmFpcmUKCjtDb3VsZCBub3QgY29weSB0ZW1wIGZpbGUKSW1wb3NzaWJsZSBkZSBjb3BpZXIgbGUgZmljaGllciB0ZW1wb3JhaXJlCgo7dG8gZmluYWwgZmlsZQp2ZXJzIGxlIGZpY2hpZXIgZmluYWwKCjtIZWxwCkFpZGUKCjtBbGwgYmxvY2tpbmdzIDogbnVtYmVyIG9mIGJsb2NrZWQgcmVmZXJlcnMgc2luY2UgYmVnaW5uaW5nIG9mIHRoZSBsb2cuClRvdXMgbGVzIGJsb2NhZ2VzIDogbm9tYnJlIGRlIHLDqWbDqXJlbnRzIGJsb3F1w6lzIGRlcHVpcyBsZSBkw6lidXQgZGUgbGEgam91cm5hbGlzYXRpb24uCgo7WWVhcmx5IDogbnVtYmVyIG9mIGJsb2NrZWQgcmVmZXJlcnMgc2luY2UgbGFzdCAzNjUgZGF5cy4KQW5udWVsbGVzIDogbm9tYnJlIGRlIHLDqWbDqXJlbnRzIGJsb3F1w6lzIGRhbnMgbGVzIGRlcm5pZXJzIDM2NSBqb3Vycy4KCjtNb250aGx5IDogbnVtYmVyIG9mIGJsb2NrZWQgcmVmZXJlcnMgc2luY2UgbGFzdCAzMCBkYXlzLgpNZW5zdWVsbGVzIDogbm9tYnJlIGRlIHLDqWbDqXJlbnRzIGJsb3F1w6lzIGRhbnMgbGVzIGRlcm5pZXJzIDMwIGpvdXJzLgoKO1dlZWtseSA6IG51bWJlciBvZiBibG9ja2VkIHJlZmVyZXJzIHNpbmNlIGxhc3QgNyBkYXlzLgpIZWJkb21hZGFpcmVzIDogbm9tYnJlIGRlIHLDqWbDqXJlbnRzIGJsb3F1w6lzIGRhbnMgbGVzIGRlcm5pZXJzIDcgam91cnMuCgo7RGFpbHkgOiBudW1iZXIgb2YgYmxvY2tlZCByZWZlcmVycyBzaW5jZSBsYXN0IDI0IGhvdXJzLgpKb3VybmFsacOocmVzIDogbm9tYnJlIGRlIHLDqWbDqXJlbnRzIGJsb3F1w6lzIGRhbnMgbGVzIGRlcm5pw6hyZXMgMjQgaGV1cmVzLgoKO1RpbWUgc3RhdGlzdGljcwpTdGF0aXN0aXF1ZXMgdGVtcG9yZWxsZXMKCjtBbGwgYmxvY2tpbmdzIDoKVG91cyBsZXMgYmxvY2FnZXMgOgoKO1llYXJseSA6CkFubnVlbGxlcyA6Cgo7TW9udGhseSA6Ck1lbnN1ZWxsZXMgOgoKO1dlZWtseSA6CkhlYmRvbWFkYWlyZXMgOgoKO0RhaWx5IDoKSm91cm5hbGnDqHJlcyA6Cgo7UmVmZXJlcnMgc3RhdGlzdGljcwpTdGF0aXN0aXF1ZXMgcGFyIHLDqWbDqXJlbnQKCg==";s:21:"blockreferer/icon.png";s:3164:"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsSAAALEgHS3X78AAAAB3RJTUUH1QgHEhUO7C/oSQAACNJJREFUWMOtl3mMXVUdxz/n3PvefbN1tk47LbVjhy7TFaQ4dBEKLS0KJvKHFiOggkQSMQoVQ4I0iBHRxj8aqAllsygKEwjElmor1JYaqIS1apSuTGGmnZl25nXmvXe3s/lH34wdmFIwnuTk3pxzc7/f8/ud3/IV/G9DfMSe+3/96EzfSkC0TJ/uxXEihAApJUePHDFlcFt+uv8XAQHIZcuXL/ZyuYumB9krJlZkp3vISTiXVVoZp1W+e2Bo/ztR9PpQkvxZx/FbB/bt6wfM2cicjYBcvmrVNOt5t04bV3P1ytqq5gW5wG/IZsgJENphPINKNT19Q7ynQ7Z2neh7IYreTgtDv+g+fHgPoE4j8rEJiAvb2+sbJkz45qyaqjuvGt/QuKyxBuUkyodUWWwcY5MYnWiEMTil8Z3FD1N6i0Pce/xEuK8YP39s8OTdx48d6wTSsntGDe9MJp93wcJ1F9bW3Pb9lom106trSLIZlIO0EGJKETaJMUMxphRiohBdCElLEWmSUOnBUiEzNVbPfUnbablsZm9cKuXHcseHCFzY3t4w74KF61ZPab7lhnPGZyurakg8iYpjTFjCJAkuVVhtscrghMEpizMpTkWYsIQqlfBsymd8n2lGzdzr5GJRUbErLBYLp13SMQnItvnzv714QsOaG5qbsl5lDmsFRAkiUUg0QoGxAictWIdVKcIKPG2QSiOtQSQpphCSRiHTrKXa2ObtWtf5zu3RSpXOREAsX7WqdV5j3W+/M6WptrK6BgP09Pey58Ah9uUH2X9iAK009eOqEcpijcOTFqFSeoqDdA3m6Ts5SCFNqdEKoQwmijhfQleqWvf7mX4Vhm+XL6UdjumR0zs/c+sXxtc11lZWkToHUcKudw7zTtMk5tx+Bw3XXE/HoU46e47jI8kI8CwcHBhgU1cv+5dexsC1N/CHXDUH8kNIY1FOMxhHrJa2qkW4bwGVgD8cAP7w6VesWrWkpbri6mX1tRR8H5MoAp0w5Oe48c67mNrSAouX0DixicfWruU6NLMqK3n16DE29/Xzo2efY/qcuQAsuvpLPLlkETODCnRisEbTiuNzVs48UFv7VT04+Hg5PO0IAS1k+xXjapoTfExisCpBJ6C1xmo1Yqaly1cgpMem23/A5VU5tp8c4tq7fzICDjB+UjNBWxsZ4VHsPIjVilKsWe1JHs5kVyLEszgXAnbYBWJWRfaKtsqMrzNgjcEUE0yaMt4kPPXAr0bd1CWXXsp1P/s5O7MVfG/jQ1z+lS+P7Gmt6di4kZbZcxDNjTgFJrWk1lKvDe2l0kx8f8awGyQg2ubN95oy/vSGXIBKLCZJsUahreWi5sl0797F1qefGUXiklUruefx33DeosWj1h+7/34O7NlD+7RWVClBW4NxDi0EibUsEqIBKSeWA0BIgDAMhe9nJgVWYlKDVSm2FKOVYnxVwC3nz2PzvT9m04YHRoFNmDx55D2OYx5Zv56unX/hu59tJ3u8j0LnEXSSoI3BWktsLfVOj0OIhlEEkjQRILLSA+csLkpw2uBUik4NtUHAja3n8vqjj/Cnjo4xc3fHxo3s37GDry9Zgjh0iL6du4h6elBKYQFjLc5aPCd9IBiuqhJACIFRkdFRgotTnIrBpbg0xCUJulTk2ECeME2ZMGnimASmzphBIY7I79vPyddeI+zuRqUprgw+nP6Mc/b0muDDqXquI51XcTqBDDhtscUI6Xl4nuHfPX1sGSpy/U/vZeEll45J4LIrr+TkwAAP3XEHVw0NUavUKUBjQAiwFgfEEOFc6fRMKAqDg/LcSZO/uCDnT60IAmyaYJMITxsO9J3gqYE8dz7ZwcJLlo0ARlHEv958k+YpU0bWZi9YQKGyki0vv8y0YhGpNU4InHNYIAs87dyxw573DMa8C6TDYWgPGfPmkcEIP0nAWijFEIa8NzTEJd+4kelz54468ab713PfmtvYsXXrqPVrbr6Z82+6ib6aGoQQWOdGmgEBvBQEfRjTPdwjyOES2V8sbNt2sr/PjyKw4JyDJEUby5xFF40AKK154sEHObbnVX64fAW/X7uWjocfHtn3peS8iy9GtrTgVVejywA+8EcpUULswJg+OLU1YgEdx2+9UEr29uZPklUKKSQ2TTFxxF83bxnpNjdt2MBrW7eyur2d+t5ePl8ssvmee9i5bRsOKIUhb73yCnWzZ+NPmoTwfQRQAnb4fgmlngeSYQuI05oQ/5zW1ouX1ddvuatuXGU2lyHtz9N7/Dg7CkUKEyeSOedTtDQ2sqKtjWBggL7du0k6OzlaKPByEODPmUPQ2EhjVRWXT57MwPbtDB48SFZrOqRUv8vlHiUM7wPyZU52VD9QyOePeXV1c6q1njs/FxA7QTaNmCEkc51kYVMTM2pqSDs7GXjjDcIjR1BJQiXQmiTM0po5QcC0ICB+910Khw4h45he4IFsdn+q9XqsfQ+Iyhb4UEPitJ/5+9+kbP10qmdMzWVxVpJGCbpQIM3nCbu6iN5/n/jECbRSOGNwzmGcQxWLRP39xEePUuzuxhWLHHCOdUHQe8K5NSi1FxgcroRjEgiLxWJGyr3/lHLpuFRNnBsEaN8jiWN0qYQuFFBRhNP6VHhZi3YOPUxEa2wU4aUpJ4B1QdDbLcQvSZIdQOFUKvhvIhqrKbVxGOZtNrtzt7UNvVHx3MmeyDTlqrBSnsrrxmC1xhqDtvZUsnEOJwSec6TAc1KqDdns/uPOrSmD54Hwgy26dwZp5aJiseCUeuVwJjvwj1S1nHSucYYnqQ9ySN8Hz0N6HhLwhcD3PLLADud4IpMpvRgEv060Xl82e2Es8LMJE1kmmAMqcg0NX7OZzMplSrVd4Pt1DVLWWGt9Y4xNjIlfT5L+XUL0Rc69SJo+jzHvl0HDsiYYU5yIjyHLvHIeyQE1VXV1s7QQzcLzGoQQOWutMUoVhbU9Kgy7sLavHOdRGVh9lDwTn0CYytPIeOUpT3ObLZ9Sl5/m44jUT6KOh7//4Bx1dz4wzzr+A+Lx4d5sPbyEAAAAAElFTkSuQmCC";s:21:"blockreferer/desc.xml";s:328:"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8cGx1Z2luIG5hbWU9ImJsb2NrcmVmZXJlciIgdmVyc2lvbj0iMS44IiBhY3RpdmU9IjEiPgogIDxhdXRob3I+QXJuYXVkIEJvdWRvdTwvYXV0aG9yPgogIDxsYWJlbD5CbG9jayBieSBSZWZlcmVyPC9sYWJlbD4KICA8ZGVzYz5CbG9jayBhbnkgdW5kZXNpcmFibGUgcmVmZXJlcnMgdG8gYXZvaWQgYXNzb2NpYXRlZCBzcGFtPC9kZXNjPgo8L3BsdWdpbj4K";s:26:"blockreferer/functions.php";s:3812:"PD9waHAKJHJlZmVyZXJzT3B0aW9uc0ZpbGUgPSBEQ19TSEFSRV9ESVIuJy9ibG9ja3JlZmVyZXIvcmVmZXJlcnNfb3B0aW9ucy5waHAnOwokcmVmZXJlcnNMaXN0RmlsZSAgICA9IERDX1NIQVJFX0RJUi4nL2Jsb2NrcmVmZXJlci9yZWZlcmVycy50eHQnOwokcmVmZXJlcnNMb2dGaWxlICAgICA9IERDX1NIQVJFX0RJUi4nL2Jsb2NrcmVmZXJlci9yZWZlcmVyc19sb2cuY3N2JzsKJHJlZmVyZXJzTGlzdEFycmF5ICAgPSBhcnJheSgpOwoKLyogTG9hZCBwcmVmcyBmaWxlICovCmlmIChmaWxlX2V4aXN0cygkcmVmZXJlcnNPcHRpb25zRmlsZSkpCiAgaW5jbHVkZSAkcmVmZXJlcnNPcHRpb25zRmlsZTsKCmlmIChmaWxlX2V4aXN0cygkcmVmZXJlcnNMaXN0RmlsZSkpIHsKICAvKiBMb2FkIHJlZmVyZXJzIGxpc3QgKi8KICAkcmVmZXJlcnNMaXN0QXJyYXkgPSBmaWxlKCRyZWZlcmVyc0xpc3RGaWxlKTsKICAkbG9vcCA9IDA7CiAgd2hpbGUgKCRsb29wIDwgY291bnQoJHJlZmVyZXJzTGlzdEFycmF5KSkgewogICAgJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXSA9IHRyaW0oJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXSk7CiAgICAkbG9vcCsrOwogIH0KCiAgLyogSWYgYSByZWZlcmVyIGlzIHNldCwgYW5kIGlzIG5vdCBhIHBhcnQgb2YgdGhlIFVSTCBvZiB0aGUgYmxvZyAqLwogIGlmIChpc3NldCgkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pICYmIChzdHJzdHIoJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddLCc6Ly8nLiRfU0VSVkVSWydTRVJWRVJfTkFNRSddKSA9PSAiIikpIHsKICAgICRsb29wID0gMDsKICAgIHdoaWxlICgkbG9vcCA8IGNvdW50KCRyZWZlcmVyc0xpc3RBcnJheSkpIHsKICAgICAgLyogSWYgdGhlIHJlZmVyZXIgaXMgaW4gdGhlIGxpc3QgKi8KICAgICAgaWYgKCAoISRvcHRfcmVnZXhwICYmICRyZWZlcmVyc0xpc3RBcnJheVskbG9vcF0gIT0gIiIgJiYgc3Ryc3RyKHN0cnRvbG93ZXIoJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSxzdHJ0b2xvd2VyKCRyZWZlcmVyc0xpc3RBcnJheSBbJGxvb3BdKSkpIHx8ICgkb3B0X3JlZ2V4cCAmJiBlcmVnaSgkcmVmZXJlcnNMaXN0QXJyYXkgWyRsb29wXSwgJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSkgKSB7CiAgICAgICAgaWYgKCRvcHRfZm9yd2FyZCkgewogICAgICAgICAgLyogSWYgcGx1Z2luIGlzIHNldCB0byBmb3J3YXJkIHRoZSByZWZlcmVyIHRvIGl0J3Mgb3duIHJlZmVyZXIgKi8KICAgICAgICAgIGhlYWRlcignTG9jYXRpb246Jy4kX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PScub3B0X2NoYXJzZXQpOwogICAgICAgICAgaGVhZGVyKCdIVFRQLzEuMCA0MDMgRm9yYmlkZGVuJyk7CiAgICAgICAgICBlY2hvICc8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPicuIlxuIjsKICAgICAgICAgIGVjaG8gJzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZnIiIGxhbmc9ImZyIj4nLiJcbiI7CiAgICAgICAgICBlY2hvICc8aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD0nLiRvcHRfY2hhcnNldC4nIiAvPjwvaGVhZD4nLiJcbiI7CiAgICAgICAgICBlY2hvICc8Ym9keT4nOwogICAgICAgICAgaWYgKCEkb3B0X21lc3NhZ2UpIHsKICAgICAgICAgICAgLyogSWYgdGhlIHBsdWdpbiBpcyBub3Qgc2V0IHRvIHVzZSBhIHBlcnNvbmFsaXplZCBlcnJvciBtZXNzYWdlICovCiAgICAgICAgICAgIGVjaG8gJzxoMT40MDMgRm9yYmlkZGVuPC9oMT4nLiJcbiI7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLyogSWYgdGhlIHBsdWdpbiBpcyBzZXQgdG8gdXNlIGEgcGVyc29uYWxpemVkIGVycm9yIG1lc3NhZ2UgKi8KICAgICAgICAgICAgZWNobyAkb3B0X21lc3NhZ2VfdGV4dCAuICc8YnIvPjxici8+Jy4iXG4iOwogICAgICAgICAgICBpZiAoaXNzZXQoJG9wdF9saW5rKSAmJiAkb3B0X2xpbmsgIT0gIiIpIHsKICAgICAgICAgICAgICBlY2hvICc8YSBocmVmPSInLiRfU0VSVkVSWydSRVFVRVNUX1VSSSddLiciPicuJG9wdF9saW5rLic8L2E+Jy4iXG4iOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGVjaG8gJzxhIGhyZWY9IicuJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10uJyI+QWNjZXNzIHRvIHRoZSBwYWdlPC9hPicuIlxuIjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgZWNobyAnPC9ib2R5PjwvaHRtbD4nLiJcbiI7CiAgICAgICAgfQogICAgICAgIC8qIElmIHBsdWdpbiBpcyBzZXQgdG8gbG9nIGJsb2NraW5nICovCiAgICAgICAgaWYgKGlzc2V0KCRvcHRfbG9nKSAmJiAkb3B0X2xvZyAhPSAiIikgewogICAgICAgICAgaWYgKCRmcG9pbnRlciA9IGZvcGVuKCRyZWZlcmVyc0xvZ0ZpbGUsICdhKycpKSB7CiAgICAgICAgICAgIGZ3cml0ZSgkZnBvaW50ZXIsIHRpbWUoKS4nOycuZGF0ZSgiWS1tLWQgSDppOnMiLCB0aW1lKCkpLic7Jy4kX1NFUlZFUlsiUkVNT1RFX0FERFIiXS4nOycuJF9TRVJWRVJbIlJFTU9URV9IT1NUIl0uJzsnLiRfU0VSVkVSWyJIVFRQX1JFRkVSRVIiXS4nOycuJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXS4iXG4iKTsKICAgICAgICAgICAgZmNsb3NlKCRmcG9pbnRlcik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGV4aXQoKTsKICAgICAgfQogICAgICAkbG9vcCsrOwogICAgfQogIH0KfQo/Pgo=";s:22:"blockreferer/index.php";s:18340:"PD9waHAKLyogdXNlZnVsbCB2YXJpYWJsZXMgKi8KJHJlZmVyZXJzT3B0aW9uc0ZpbGUgPSBEQ19TSEFSRV9ESVIuJy9ibG9ja3JlZmVyZXIvcmVmZXJlcnNfb3B0aW9ucy5waHAnOwokcmVmZXJlcnNMaXN0RmlsZSAgICA9IERDX1NIQVJFX0RJUi4nL2Jsb2NrcmVmZXJlci9yZWZlcmVycy50eHQnOwokcmVmZXJlcnNMb2dGaWxlICAgICA9ICcuLi9zaGFyZS9ibG9ja3JlZmVyZXIvcmVmZXJlcnNfbG9nLmNzdic7CiRyZWZlcmVyc0xpc3RBcnJheSAgID0gYXJyYXkoKTsKCmJ1ZmZlcjo6c3RyKCc8aDI+Jy5fXygnQmxvY2sgYnkgUmVmZXJlcicpLic8L2gyPicpOwoKYnVmZmVyOjpzdHIoJzxwPjxhIGhyZWY9InRvb2xzLnBocD9wPWJsb2NrcmVmZXJlciI+Q29uZmlndXJhdGlvbjwvYT4gLSAnKTsKYnVmZmVyOjpzdHIoJzxhIGhyZWY9InRvb2xzLnBocD9wPWJsb2NrcmVmZXJlciZwYWdlPXN0YXRpc3RpY3MiPicuX18oJ1N0YXRpc3RpY3MnKS4nPC9hPjwvcD4nKTsKCmlmICghaXNzZXQoJF9HRVRbJ3BhZ2UnXSkgfHwgJF9HRVRbJ3BhZ2UnXSAhPSAnc3RhdGlzdGljcycpIHsKICAvKioqKiogQ29uZmlndXJhdGlvbiBwYWdlICoqKioqLwoKICAvKiBJbml0IC0gQ3JlYXRlIHBsdWdpbiBkZWRpY2F0ZWQgZm9sZGVyICovCiAgaWYgKCFmaWxlX2V4aXN0cyhEQ19TSEFSRV9ESVIuJy9ibG9ja3JlZmVyZXIvJykpIHsKICAgIHVtYXNrKDAwMCk7CiAgICBpZiAoIW1rZGlyKERDX1NIQVJFX0RJUi4nL2Jsb2NrcmVmZXJlci8nLCAwNzc3KSkgewogICAgICBidWZmZXI6OnN0cignPGg0PicgLiBfXygnQ291bGQgbm90IGNyZWF0ZSBCbG9jayBieSBSZWZlcmVyIGRlZGljYXRlZCBmb2xkZXInKS4gJyAnIC4gRENfU0hBUkVfRElSLicvYmxvY2tyZWZlcmVyLycuICc8L2g0PicpOwogICAgfQogIH0KCiAgLyogSW5pdCAtIENvbnZlcnQgb2xkIGRhdGFiYXNlIHRvIHBsYWluIHRleHQgZmlsZSAqLwogIGlmIChpc3NldCgkX1BPU1RbJ2NvbnZlcnQnXSkgJiYgJF9QT1NUWydjb252ZXJ0J10gIT0gJycpIHsKICAgIGdsb2JhbCAkY29uOwogICAgaWYgKCEkcnMgPSAkY29uLT5zZWxlY3QoJ1NFTEVDVCByZWZlcmVyIEZST00gJy5EQl9QUkVGSVguJ2Jsb2NrcmVmZXJlcicpKSB7CiAgICAgIGJ1ZmZlcjo6c3RyKCc8aDQ+JyAuICRjb24tPmVycm9yKCkgLiAnPC9oND4nKTsKICAgIH0gZWxzZSB7CiAgICAgIHdoaWxlICgkcnMtPmZldGNoKCkpIHsKICAgICAgICBhcnJheV9wdXNoKCRyZWZlcmVyc0xpc3RBcnJheSwgJHJzLT5mKCdyZWZlcmVyJykpOwogICAgICB9CiAgICAgIHNvcnQoJHJlZmVyZXJzTGlzdEFycmF5KTsKICAgICAgaWYgKHNhdmVSZWZlcmVyTGlzdCgkcmVmZXJlcnNMaXN0QXJyYXkpKTsKICAgICAgICBidWZmZXI6OnN0cignPGg0PicgLiBfXygnUmVmZXJlcnMgbGlzdCB3YXMgc3VjY2Vzc2Z1bGx5IGNvbnZlcnRlZC4gWW91IG1heSBub3cgZGVsZXRlIHRhYmxlJykgLiAnICcgLiBEQl9QUkVGSVguJ2Jsb2NrcmVmZXJlcicgLiAnPC9oND4nKTsKICAgIH0KICB9CgogIC8qIEluaXQgLSBMb2FkIHJlZmVyZXJzIGxpc3QgKi8KICBpZiAoZmlsZV9leGlzdHMoJHJlZmVyZXJzTGlzdEZpbGUpKSB7CiAgICAkcmVmZXJlcnNMaXN0QXJyYXkgPSBmaWxlKCRyZWZlcmVyc0xpc3RGaWxlKTsKICAgICRsb29wID0gMDsKICAgIHdoaWxlICgkbG9vcCA8IGNvdW50KCRyZWZlcmVyc0xpc3RBcnJheSkpIHsKICAgICAgJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXSA9IHRyaW0oJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXSk7CiAgICAgICRsb29wKys7CiAgICB9CiAgfQoKICAvKiBBY3Rpb24gLSBTYXZlIG9wdGlvbnMgKi8KICBpZiAoaXNzZXQoJF9QT1NUWydvcHRpb25zJ10pICYmICRfUE9TVFsnb3B0aW9ucyddICE9ICcnKSB7CiAgICBzYXZlT3B0aW9ucygkX1BPU1QpOyAKICB9CgogIC8qIEluaXQgLSBMb2FkIG9wdGlvbnMgZmlsZSAqLwogIGlmIChmaWxlX2V4aXN0cygkcmVmZXJlcnNPcHRpb25zRmlsZSkpCiAgICBpbmNsdWRlICRyZWZlcmVyc09wdGlvbnNGaWxlOwoKICAvKiBBY3Rpb24gLSBTYXZlIG5ldyByZWZlcmVyICovCiAgaWYgKGlzc2V0KCRfUE9TVFsncmVmZXJlciddKSAmJiAkX1BPU1RbJ3JlZmVyZXInXSAhPSAnJykgewogICAgYXJyYXlfcHVzaCgkcmVmZXJlcnNMaXN0QXJyYXksICRfUE9TVFsncmVmZXJlciddKTsKICAgIHNvcnQoJHJlZmVyZXJzTGlzdEFycmF5KTsKICAgIGlmIChzYXZlUmVmZXJlckxpc3QoJHJlZmVyZXJzTGlzdEFycmF5KSk7CiAgICAgIGJ1ZmZlcjo6c3RyKCc8aDQ+JyAuIF9fKCdSZWZlcmVyIHN1Y2Nlc3NmdWxseSBzYXZlZCcpIC4gJzwvaDQ+Jyk7CiAgfQoKICAvKiBBY3Rpb24gLSBEZWxldGUgb2xkIHJlZmVyZXIgKi8KICBpZiAoaXNzZXQoJF9QT1NUWydkZWxldGUnXSkgJiYgJF9QT1NUWydkZWxldGUnXSAhPSAnJykgewogICAgJHBvc3RfY291bnQgPSBjb3VudCgkX1BPU1QpOwogICAgaWYgKCRwb3N0X2NvdW50ID4gMSkgewogICAgICByZXNldCgkX1BPU1QpOwogICAgICAkbG9vcCA9IDA7CiAgICAgIHdoaWxlICgkbG9vcCA8ICRwb3N0X2NvdW50KSB7CiAgICAgICAgJHBvc3RrZXkgPSBrZXkoJF9QT1NUKTsKICAgICAgICBpZiAoc3Vic3RyKCRwb3N0a2V5LCAwLCA1KSA9PSAncmVmaWQnKSB7CiAgICAgICAgICAkcG9zdHZhbHVlID0gY3VycmVudCgkX1BPU1QpOwogICAgICAgICAgJGFycmF5TG9vcCA9IDA7CiAgICAgICAgICB3aGlsZSgkYXJyYXlMb29wIDwgY291bnQoJHJlZmVyZXJzTGlzdEFycmF5KSkgewogICAgICAgICAgICBpZiAoJHJlZmVyZXJzTGlzdEFycmF5WyRhcnJheUxvb3BdID09ICRwb3N0dmFsdWUpIHsKICAgICAgICAgICAgICB1bnNldCgkcmVmZXJlcnNMaXN0QXJyYXlbJGFycmF5TG9vcF0pOwogICAgICAgICAgICAgICRyZWZlcmVyc0xpc3RBcnJheSA9IGFycmF5X21lcmdlKCRyZWZlcmVyc0xpc3RBcnJheSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGFycmF5TG9vcCsrOwogICAgICAgICAgfSAgICAgICAgICAKICAgICAgICB9CiAgICAgICAgJGxvb3ArKzsKICAgICAgICBuZXh0KCRfUE9TVCk7CiAgICAgIH0KICAgICAgaWYgKHNhdmVSZWZlcmVyTGlzdCgkcmVmZXJlcnNMaXN0QXJyYXkpKTsKICAgICAgICBidWZmZXI6OnN0cignPGg0PicgLiBfXygnUmVmZXJlcnMgc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQnKSAuICc8L2g0PicpOwogICAgfQogIH0KCiAgLyogSFRNTCAtIE9wdGlvbnMgKi8KICBidWZmZXI6OnN0cignPGZvcm0gYWN0aW9uPSJ0b29scy5waHA/cD1ibG9ja3JlZmVyZXIiIG1ldGhvZD0icG9zdCI+Jyk7CiAgYnVmZmVyOjpzdHIoJzxmaWVsZHNldD48bGVnZW5kPicgLiBfXygnT3B0aW9ucycpIC4gJzwvbGVnZW5kPicpOwogIGJ1ZmZlcjo6c3RyKCc8cCBjbGFzcz0iZmllbGQiPicpOwogIGJ1ZmZlcjo6c3RyKCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHRpb25zIiB2YWx1ZT0idHJ1ZSI+Jyk7CiAgYnVmZmVyOjpzdHIoJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9Im9wdF9yZWdleHAiIG5hbWU9Im9wdF9yZWdleHAiIHZhbHVlPSJ0cnVlIiAnLigkb3B0X3JlZ2V4cD09dHJ1ZT8nY2hlY2tlZD0iY2hlY2tlZCInOicnKS4nLz4nKTsKICBidWZmZXI6OnN0cihfXygnVXNlIHJlZ3VsYXIgZXhwcmVzc2lvbicpKTsKICBidWZmZXI6OnN0cignPGJyLz4nKTsKICBidWZmZXI6OnN0cignPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0ib3B0X2ZvcndhcmQiIG5hbWU9Im9wdF9mb3J3YXJkIiB2YWx1ZT0idHJ1ZSIgJy4oJG9wdF9mb3J3YXJkPT10cnVlPydjaGVja2VkPSJjaGVja2VkIic6JycpLicvPicpOwogIGJ1ZmZlcjo6c3RyKF9fKCdGb3J3YXJkIHZpc2l0b3IgdG8gaXRcJ3Mgb3duIHJlZmVyZXIgaW5zdGVhZCBvZiBibG9ja2luZyBpdCcpKTsKICBidWZmZXI6OnN0cignPGJyLz4nKTsKICBidWZmZXI6OnN0cignPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0ib3B0X2xvZyIgbmFtZT0ib3B0X2xvZyIgdmFsdWU9InRydWUiICcuKCRvcHRfbG9nPT10cnVlPydjaGVja2VkPSJjaGVja2VkIic6JycpLicvPicpOwogIGJ1ZmZlcjo6c3RyKF9fKCdMb2cgYmxvY2tpbmcnKS4nICcpOwogIGJ1ZmZlcjo6c3RyKCcoPGEgaHJlZj0iJy4kcmVmZXJlcnNMb2dGaWxlLiciPicuX18oJ1ZpZXcgbG9nJykuJzwvYT4pJyk7CiAgYnVmZmVyOjpzdHIoJzxici8+Jyk7CiAgYnVmZmVyOjpzdHIoJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9Im9wdF9tZXNzYWdlIiBuYW1lPSJvcHRfbWVzc2FnZSIgdmFsdWU9InRydWUiICcuKCRvcHRfbWVzc2FnZT09dHJ1ZT8nY2hlY2tlZD0iY2hlY2tlZCInOicnKS4nLz4nKTsKICBidWZmZXI6OnN0cihfXygnVXNlIHBlcnNvbmFsaXplZCBlcnJvciBtZXNzYWdlJykpOwogIGJ1ZmZlcjo6c3RyKCc8YnIvPicpOwogIGJ1ZmZlcjo6c3RyKF9fKCdQZXJzb25hbGl6ZWQgZXJyb3IgbWVzc2FnZSAoSFRNTCkgOicpKTsKICBidWZmZXI6OnN0cignPGJyLz4nKTsKICBidWZmZXI6OnN0cignPHRleHRhcmVhIG5hbWU9Im9wdF9tZXNzYWdlX3RleHQiIGlkPSJvcHRfbWVzc2FnZV90ZXh0IiBjb2xzPSI2MCIgcm93cz0iMTAiPicgLiAkb3B0X21lc3NhZ2VfdGV4dCAuICc8L3RleHRhcmVhPicpOwogIGJ1ZmZlcjo6c3RyKCc8YnIvPicpOwogIGJ1ZmZlcjo6c3RyKF9fKCdUZXh0IG9mIHRoZSAiQWNjZXNzIHRvIHRoZSBwYWdlIiBsaW5rIDonKSk7ICAgICAgICAgICAgICAgICAgICAgCiAgYnVmZmVyOjpzdHIoJzxici8+Jyk7CiAgYnVmZmVyOjpzdHIoJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ib3B0X2xpbmsiIG5hbWU9Im9wdF9saW5rIiB2YWx1ZT0iJy4kb3B0X2xpbmsuJyIgc2l6ZT0iNDAiLz4nKTsKICBidWZmZXI6OnN0cignPC9wPicpOwogIGJ1ZmZlcjo6c3RyKCc8cD4nKTsKICBidWZmZXI6OnN0cignPGlucHV0IHR5cGU9InN1Ym1pdCIgY2xhc3M9InN1Ym1pdCIgdmFsdWU9IicgLiBfXygnU2F2ZScpIC4gJyIgLz4nKTsKICBidWZmZXI6OnN0cignPC9wPicpOwogIGJ1ZmZlcjo6c3RyKCc8L2ZpZWxkc2V0PicpOwogIGJ1ZmZlcjo6c3RyKCc8L2Zvcm0+Jyk7CgogIC8qIEhUTUwgLSBBZGQgYSBuZXcgcmVmZXJlciB0byBibG9jayAqLwogIGJ1ZmZlcjo6c3RyKCc8Zm9ybSBhY3Rpb249InRvb2xzLnBocD9wPWJsb2NrcmVmZXJlciIgbWV0aG9kPSJwb3N0Ij4nKTsKICBidWZmZXI6OnN0cignPGZpZWxkc2V0PjxsZWdlbmQ+JyAuIF9fKCdBZGQgYSBuZXcgcmVmZXJlcicpIC4gJzwvbGVnZW5kPicpOwogIGJ1ZmZlcjo6c3RyKCc8cCBjbGFzcz0iZmllbGQiPicpOwogIGJ1ZmZlcjo6c3RyKCc8bGFiZWwgZm9yPSJyZWZlcmVyIiBjbGFzcz0iZmxvYXQiPicgLiBfXygnUmVmZXJlciB0byBibG9jayA6JykgLiAnPC9sYWJlbD4nKTsKICBidWZmZXI6OnN0cignPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjIwIiBuYW1lPSJyZWZlcmVyIiBpZD0icmVmZXJlciIgLz4nKTsKICBidWZmZXI6OnN0cignJm5ic3A7Jm5ic3A7Jyk7CiAgYnVmZmVyOjpzdHIoJzxpbnB1dCB0eXBlPSJzdWJtaXQiIGNsYXNzPSJzdWJtaXQiIHZhbHVlPSInIC4gX18oJ1NhdmUnKSAuICciIC8+Jyk7CiAgYnVmZmVyOjpzdHIoJzwvcD4nKTsKICBidWZmZXI6OnN0cignPC9maWVsZHNldD4nKTsKICBidWZmZXI6OnN0cignPC9mb3JtPicpOwoKICAvKiBIVE1MIC0gQmxvY2tlZCByZWZlcmVyIGxpc3QgKi8KICBidWZmZXI6OnN0cignPGZvcm0gYWN0aW9uPSJ0b29scy5waHA/cD1ibG9ja3JlZmVyZXIiIG1ldGhvZD0icG9zdCI+Jyk7CiAgYnVmZmVyOjpzdHIoJzxmaWVsZHNldD48bGVnZW5kPicgLiBfXygnQmxvY2tlZCByZWZlcmVyIGxpc3QnKSAuICc8L2xlZ2VuZD4nKTsKICBidWZmZXI6OnN0cignPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVsZXRlIiB2YWx1ZT0idHJ1ZSI+Jyk7CiAgYnVmZmVyOjpzdHIoJzx0YWJsZT48dHI+PHRkIGNvbHNwYW49IjIiPjxiPicgLiBfXygnUmVmZXJlcicpIC4gJzwvYj48L3RkPjwvdHI+Jyk7CiAgaWYoY291bnQoJHJlZmVyZXJzTGlzdEFycmF5KSA8IDEpIHsKICAgIGJ1ZmZlcjo6c3RyKCc8dHI+PHRkIGNvbHNwYW49IjIiPicgLiBfXygnTm8gcmVmZXJlciBpcyBibG9ja2VkIGZvciBub3cnKSAuICc8L3RkPjwvdHI+Jyk7CiAgfSBlbHNlIHsKICAgICRsb29wID0gMDsKICAgIHdoaWxlICgkbG9vcCA8IGNvdW50KCRyZWZlcmVyc0xpc3RBcnJheSkpIHsKICAgICAgYnVmZmVyOjpzdHIoJzx0ciBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjlmMiI+Jyk7CiAgICAgIGJ1ZmZlcjo6c3RyKCc8dGQ+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZWZpZCcuJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXS4nIiB2YWx1ZT0iJy4kcmVmZXJlcnNMaXN0QXJyYXlbJGxvb3BdLiciLz4nKTsKICAgICAgYnVmZmVyOjpzdHIoJzx0ZD4nIC4gJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXSAuICc8L3RkPicpOwogICAgICBidWZmZXI6OnN0cignPC90cj4nKTsKICAgICAgJGxvb3ArKzsKICAgIH0KICB9CiAgYnVmZmVyOjpzdHIoJzwvdGFibGU+Jyk7CiAgYnVmZmVyOjpzdHIoJzxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSInIC4gX18oJ0RlbGV0ZScpIC4gJyIvPicpOwogIGJ1ZmZlcjo6c3RyKCc8L2ZpZWxkc2V0PicpOwogIGJ1ZmZlcjo6c3RyKCc8L2Zvcm0+Jyk7CgogIC8qIEhUTUwgLSBJbnN0YWxsYXRpb24gaGVscCAqLwogIGJ1ZmZlcjo6c3RyKCc8ZmllbGRzZXQ+PGxlZ2VuZD4nIC4gX18oJ0luc3RhbGxhdGlvbicpIC4gJzwvbGVnZW5kPicpOwogIGJ1ZmZlcjo6c3RyKCc8cD4nIC4gX18oJ1RvIHVzZSBwbHVnaW4sIGp1c3QgYWRkIHBhcnQgb2YgdGhlIHJlZmVyZXIgeW91IHdhbnQgdG8gYmxvY2s7IGkuZSBhZGQgInNvbWVidXp6d29yZCIgdG8gYmxvY2sgYW55IHJlZmVyZXIgd2hpY2ggaGF2ZSAic29tZWJ1enp3b3JkIiBpbi4nKSAuICc8L3A+Jyk7CiAgYnVmZmVyOjpzdHIoJzx1bD4nKTsKICBidWZmZXI6OnN0cignPGxpPicgLiAnIicuX18oJ1VzZSByZWd1bGFyIGV4cHJlc3Npb24nKSAuICciICcgLiBfXygnaXMgbm90IGNoZWNrZWQnKSAuICcgOiAnIC5fXygnWW91IGhhdmUgdG8gdXNlIHBhcnQgb2YgcmVmZXJlcnMsIG9yIHRoZWlyIGZ1bGwgYWRkcmVzcy4nKSAuICc8L2xpPicpOwogIGJ1ZmZlcjo6c3RyKCc8bGk+JyAuICciJy5fXygnVXNlIHJlZ3VsYXIgZXhwcmVzc2lvbicpIC4gJyIgJyAuIF9fKCdpcyBjaGVja2VkJykgLiAnIDogJyAuX18oJ1lvdSBoYXZlIHRvIHVzZSByZWd1bGFyIGV4cHJlc3Npb24gKGNhc2UgaW5zZW5zaXRpdmUpLicpIC4gJzwvbGk+Jyk7CiAgYnVmZmVyOjpzdHIoJzwvdWw+Jyk7CiAgYnVmZmVyOjpzdHIoX18oJ0lmIHlvdSBtb2RpZnkgZGlmZmVyZW50IGZvcm1zIGF0IHRoZSBzYW1lIHRpbWUsIG9ubHkgdGhlIG9uZSB5b3UgY2hvc2UgdG8gc2F2ZSBjaGFuZ2VzIHdpbGwgYmUgc2F2ZWQuJykpOwogIGJ1ZmZlcjo6c3RyKCc8aHI+Jyk7CiAgYnVmZmVyOjpzdHIoJzxwPicgLiBfXygnSWYgeW91IHVwZ3JhZGUgZnJvbSB2ZXJzaW9uIDEuMCBvciAxLjEsIHlvdSB3aWxsIGhhdmUgdG8gY29udmVydCB0aGUgcmVmZXJlcnMgbGlzdCB0byB0aGUgbmV3IGZvcm1hdC4nKSAuICc8L3A+Jyk7CiAgYnVmZmVyOjpzdHIoJzxmb3JtIGFjdGlvbj0idG9vbHMucGhwP3A9YmxvY2tyZWZlcmVyIiBtZXRob2Q9InBvc3QiPicpOwogIGJ1ZmZlcjo6c3RyKCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb252ZXJ0IiB2YWx1ZT0idHJ1ZSI+Jyk7CiAgYnVmZmVyOjpzdHIoJzxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSInIC4gX18oJ0NvbnZlcnQnKSAuICciLz4nKTsKICBidWZmZXI6OnN0cignPC9mb3JtPicpOwogIGJ1ZmZlcjo6c3RyKCc8L2ZpZWxkc2V0PicpOwp9IGVsc2UgewovKioqKiogU3RhdGlzdGljcyBwYWdlICoqKioqLwogIAogIC8qIFVzZWZ1bGwgYXJyYXlzIAogICAqICRhcnJheVRpbWUgOiBBcnJheSB3aXRoIHRpbWUgc3RhdGlzdGljcyA6IGxhc3QgMjRoLCB3ZWVrLCBtb250aCwgeWVhcgogICAqICAgICAgICAgICAgICBhbmQgYWxsIHRpbWUuCiAgICogJGFycmF5UmVmZXJlbnQgOiBBcnJheSB3aXRoIHJlZmVyZW50cyBzdGF0aXN0aWNzCiAgICovCgogIC8qIEluaXQgdmFyaWFibGVzICovCiAgJGN1clRpbWUgPSB0aW1lKCk7CgogIC8qIEluaXQgdGltZSBzdGF0aXN0aWNzIGFycmF5ICovCiAgJGFycmF5VGltZSA9IGFycmF5KAogICAgICAgICAgICAgICAgICAgJ2RheScgICA9PiAwLAogICAgICAgICAgICAgICAgICAgJ3dlZWsnICA9PiAwLAogICAgICAgICAgICAgICAgICAgJ21vbnRoJyA9PiAwLAogICAgICAgICAgICAgICAgICAgJ3llYXInICA9PiAwLAogICAgICAgICAgICAgICAgICAgJ2FsbCcgICA9PiAwCiAgICAgICAgICAgICAgICk7CiAgCiAgLyogSW5pdCByZWZlcmVudCBzdGF0aXN0aWNzIGFycmF5ICovCiAgaWYgKGZpbGVfZXhpc3RzKCRyZWZlcmVyc0xpc3RGaWxlKSkgewogICAgJHJlZmVyZXJzTGlzdEFycmF5ID0gZmlsZSgkcmVmZXJlcnNMaXN0RmlsZSk7CiAgICAkbG9vcCA9IDA7CiAgICB3aGlsZSAoJGxvb3AgPCBjb3VudCgkcmVmZXJlcnNMaXN0QXJyYXkpKSB7CiAgICAgICRyZWZlcmVyc0xpc3RBcnJheVskbG9vcF0gPSB0cmltKCRyZWZlcmVyc0xpc3RBcnJheVskbG9vcF0pOwogICAgICAkbG9vcCsrOwogICAgfQogICAgJGFycmF5UmVmZXJlcnMgPSBhcnJheV9mbGlwKCRyZWZlcmVyc0xpc3RBcnJheSk7CiAgICByZXNldCgkYXJyYXlSZWZlcmVycyk7CiAgICAkbG9vcCA9IDA7CiAgICB3aGlsZSAoJGxvb3AgPCBjb3VudCgkYXJyYXlSZWZlcmVycykpIHsKICAgICAgJGFycmF5UmVmZXJlcnNba2V5KCRhcnJheVJlZmVyZXJzKV0gPSAwOwogICAgICBuZXh0KCRhcnJheVJlZmVyZXJzKTsKICAgICAgJGxvb3ArKzsKICAgIH0KICB9IGVsc2UgewogICAgJGFycmF5UmVmZXJlcnMgPSBhcnJheSgpOwogIH0KICAKICAvKiBTdGVwIGZvcndhcmQgbG9nIGZpbGUgdG8gZmlsbCBhcnJheXMgKi8gCiAgaWYgKGZpbGVfZXhpc3RzKCRyZWZlcmVyc0xvZ0ZpbGUpKSB7CiAgICAkZnBvaW50ZXIgPSBmb3BlbigkcmVmZXJlcnNMb2dGaWxlLCAncicpOwogICAgd2hpbGUgKCFmZW9mKCRmcG9pbnRlcikpIHsKICAgICAgdW5zZXQoJGN1ckxpbmUpOwogICAgICB1bnNldCgkbGluZUFycmF5KTsKICAgICAgdW5zZXQoJHRpbWVTdGFtcCk7CiAgICAgIHVuc2V0KCRyZWZlcmVyKTsKICAgICAgJGN1cmxpbmUgPSBmZ2V0cygkZnBvaW50ZXIpOwogICAgICAkbGluZUFycmF5ID0gZXhwbG9kZSgnOycsICRjdXJsaW5lKTsKICAgICAgJHRpbWVTdGFtcCA9ICRsaW5lQXJyYXlbMF07CiAgICAgICRyZWZlcmVyID0gJGxpbmVBcnJheVs1XTsKICAgICAgLyogZmlsbCByZWZlcmVycyBhcnJheSAqLwogICAgICBpZiAodHJpbSgkcmVmZXJlcikgIT0gJycpCiAgICAgICAgJGFycmF5UmVmZXJlcnNbdHJpbSgkcmVmZXJlcildKys7CiAgICAgIC8qIGZpbGwgdGltZSBhcnJheSAqLwogICAgICBpZiAodHJpbSgkdGltZVN0YW1wKSkgewogICAgICAgICRhcnJheVRpbWVbJ2FsbCddKys7CiAgICAgICAgaWYgKCgkdGltZVN0YW1wKzM2MDAqMjQqMzY1KSA+PSAkY3VyVGltZSkKICAgICAgICAgICRhcnJheVRpbWVbJ3llYXInXSsrOwogICAgICAgIGlmICgoJHRpbWVTdGFtcCszNjAwKjI0KjMwKSA+PSAkY3VyVGltZSkKICAgICAgICAgICRhcnJheVRpbWVbJ21vbnRoJ10rKzsKICAgICAgICBpZiAoKCR0aW1lU3RhbXArMzYwMCoyNCo3KSA+PSAkY3VyVGltZSkKICAgICAgICAgICRhcnJheVRpbWVbJ3dlZWsnXSsrOwogICAgICAgIGlmICgoJHRpbWVTdGFtcCszNjAwKjI0KSA+PSAkY3VyVGltZSkKICAgICAgICAgICRhcnJheVRpbWVbJ2RheSddKys7IAogICAgICB9CiAgICB9CiAgICBmY2xvc2UoJGZwb2ludGVyKTsKICB9CgogIC8qIEhUTUwgLSBIZWxwICovCiAgYnVmZmVyOjpzdHIoJzxmaWVsZHNldD48bGVnZW5kPicgLiBfXygnSGVscCcpIC4gJzwvbGVnZW5kPicpOwogIGJ1ZmZlcjo6c3RyKF9fKCdBbGwgYmxvY2tpbmdzIDogbnVtYmVyIG9mIGJsb2NrZWQgcmVmZXJlcnMgc2luY2UgYmVnaW5uaW5nIG9mIHRoZSBsb2cuJykpOwogIGJ1ZmZlcjo6c3RyKCc8YnIvPicpOwogIGJ1ZmZlcjo6c3RyKF9fKCdZZWFybHkgOiBudW1iZXIgb2YgYmxvY2tlZCByZWZlcmVycyBzaW5jZSBsYXN0IDM2NSBkYXlzLicpKTsKICBidWZmZXI6OnN0cignPGJyLz4nKTsKICBidWZmZXI6OnN0cihfXygnTW9udGhseSA6IG51bWJlciBvZiBibG9ja2VkIHJlZmVyZXJzIHNpbmNlIGxhc3QgMzAgZGF5cy4nKSk7CiAgYnVmZmVyOjpzdHIoJzxici8+Jyk7CiAgYnVmZmVyOjpzdHIoX18oJ1dlZWtseSA6IG51bWJlciBvZiBibG9ja2VkIHJlZmVyZXJzIHNpbmNlIGxhc3QgNyBkYXlzLicpKTsKICBidWZmZXI6OnN0cignPGJyLz4nKTsKICBidWZmZXI6OnN0cihfXygnRGFpbHkgOiBudW1iZXIgb2YgYmxvY2tlZCByZWZlcmVycyBzaW5jZSBsYXN0IDI0IGhvdXJzLicpKTsKICBidWZmZXI6OnN0cignPC9maWVsZHNldD4nKTsKCiAgLyogSFRNTCAtIFRpbWUgc3RhdGlzdGljcyAqLwogIGJ1ZmZlcjo6c3RyKCc8ZmllbGRzZXQ+PGxlZ2VuZD4nIC4gX18oJ1RpbWUgc3RhdGlzdGljcycpIC4gJzwvbGVnZW5kPicpOwogIGJ1ZmZlcjo6c3RyKCc8bGFiZWwgZm9yPSJhbGwiIGNsYXNzPSJmbG9hdCI+JyAuIF9fKCdBbGwgYmxvY2tpbmdzIDonKSAuICc8L2xhYmVsPicpOwogIGJ1ZmZlcjo6c3RyKCRhcnJheVRpbWVbJ2FsbCddLic8YnIvPicpOwogIGJ1ZmZlcjo6c3RyKCc8bGFiZWwgZm9yPSJ5ZWFyIiBjbGFzcz0iZmxvYXQiPicgLiBfXygnWWVhcmx5IDonKSAuICc8L2xhYmVsPicpOwogIGJ1ZmZlcjo6c3RyKCRhcnJheVRpbWVbJ3llYXInXS4nPGJyLz4nKTsKICBidWZmZXI6OnN0cignPGxhYmVsIGZvcj0ibW9udGgiIGNsYXNzPSJmbG9hdCI+JyAuIF9fKCdNb250aGx5IDonKSAuICc8L2xhYmVsPicpOwogIGJ1ZmZlcjo6c3RyKCRhcnJheVRpbWVbJ21vbnRoJ10uJzxici8+Jyk7CiAgYnVmZmVyOjpzdHIoJzxsYWJlbCBmb3I9IndlZWsiIGNsYXNzPSJmbG9hdCI+JyAuIF9fKCdXZWVrbHkgOicpIC4gJzwvbGFiZWw+Jyk7CiAgYnVmZmVyOjpzdHIoJGFycmF5VGltZVsnd2VlayddLic8YnIvPicpOwogIGJ1ZmZlcjo6c3RyKCc8bGFiZWwgZm9yPSJkYXkiIGNsYXNzPSJmbG9hdCI+JyAuIF9fKCdEYWlseSA6JykgLiAnPC9sYWJlbD4nKTsKICBidWZmZXI6OnN0cigkYXJyYXlUaW1lWydkYXknXS4nPGJyLz4nKTsKICBidWZmZXI6OnN0cignPC9maWVsZHNldD4nKTsKCiAgLyogSFRNTCAtIFJlZmVyZXIgc3RhdGlzdGljcyAqLwogIGFyc29ydCgkYXJyYXlSZWZlcmVycyk7CiAgJGxvb3AgPSAwOwogIHJlc2V0KCRhcnJheVJlZmVyZXJzKTsKICBidWZmZXI6OnN0cignPGZpZWxkc2V0PjxsZWdlbmQ+JyAuIF9fKCdSZWZlcmVycyBzdGF0aXN0aWNzJykgLiAnPC9sZWdlbmQ+Jyk7CiAgd2hpbGUgKCRsb29wIDwgY291bnQoJGFycmF5UmVmZXJlcnMpKSB7CiAgICBidWZmZXI6OnN0cignPGxhYmVsIGZvcj0iJy5rZXkoJGFycmF5UmVmZXJlcnMpLiciIGNsYXNzPSJmbG9hdCI+Jy5rZXkoJGFycmF5UmVmZXJlcnMpLicgOiA8L2xhYmVsPicpOwogICAgYnVmZmVyOjpzdHIoJGFycmF5UmVmZXJlcnNba2V5KCRhcnJheVJlZmVyZXJzKV0uJzxici8+Jyk7CiAgICBuZXh0KCRhcnJheVJlZmVyZXJzKTsKICAgICRsb29wKys7CiAgfQogIGJ1ZmZlcjo6c3RyKCc8L2ZpZWxkc2V0PicpOwp9CgovKioqKiogRnVuY3Rpb25zIGRlY2xhcmF0aW9uICoqKioqLwpmdW5jdGlvbiBzYXZlUmVmZXJlckxpc3QoJHJlZmVyZXJBcnJheSkgewogICR0bXBSZWZlcmVyc0ZpbGUgPSBkaXJuYW1lKF9fRklMRV9fKS4nL3JlZmVyZXJzLnR4dCc7CiAgJHJlZmVyZXJzRmlsZSA9IERDX1NIQVJFX0RJUi4nL2Jsb2NrcmVmZXJlci9yZWZlcmVycy50eHQnOwoKICBpZiAoISgkZnBvaW50ZXIgPSBmb3BlbigkdG1wUmVmZXJlcnNGaWxlLCAndysnKSkpIHsKICAgIGJ1ZmZlcjo6c3RyKCc8aDQ+JyAuIF9fKCdDb3VsZCBub3QgY3JlYXRlIHRlbXAgZmlsZScpIC4gJyAnIC4gJHRtcFJlZmVyZXJzRmlsZS4gJzwvaDQ+Jyk7CiAgICByZXR1cm4gZmFsc2U7CiAgfSBlbHNlIHsKICAgICRsb29wID0gMDsKICAgIHdoaWxlICgkbG9vcCA8IGNvdW50KCRyZWZlcmVyQXJyYXkpKSB7CiAgICAgIGZ3cml0ZSgkZnBvaW50ZXIsICRyZWZlcmVyQXJyYXlbJGxvb3BdLiJcbiIpOwogICAgICAkbG9vcCsrOwogICAgfQogICAgZmNsb3NlKCRmcG9pbnRlcik7CiAgICBpZiAoIWNvcHkoJHRtcFJlZmVyZXJzRmlsZSwgJHJlZmVyZXJzRmlsZSkpIHsKICAgICAgIGJ1ZmZlcjo6c3RyKCc8aDQ+JyAuIF9fKCdDb3VsZCBub3QgY29weSB0ZW1wIGZpbGUnKSAuICcgJyAuICR0bXBSZWZlcmVyc0ZpbGUuJyAnLiBfXygndG8gZmluYWwgZmlsZScpIC4gJyAnIC4gJHJlZmVyZXJzRmlsZSAuICc8L2g0PicpOwogICAgICAgdW5saW5rKCR0bXBSZWZlcmVyc0ZpbGUpOwogICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSBlbHNlIHsKICAgICAgIHVubGluaygkdG1wUmVmZXJlcnNGaWxlKTsKICAgICAgIHJldHVybiB0cnVlOwogICAgfQogIH0KfQoKZnVuY3Rpb24gc2F2ZU9wdGlvbnMoJiRwb3N0KSB7CiAgJHRtcE9wdGlvbnNGaWxlID0gZGlybmFtZShfX0ZJTEVfXykuJy9yZWZlcmVyc19vcHRpb25zLnBocCc7CiAgJG9wdGlvbnNGaWxlID0gRENfU0hBUkVfRElSLicvYmxvY2tyZWZlcmVyL3JlZmVyZXJzX29wdGlvbnMucGhwJzsKCiAgaWYgKCEoJGZwb2ludGVyID0gZm9wZW4oJHRtcE9wdGlvbnNGaWxlLCAndysnKSkpIHsKICAgIGJ1ZmZlcjo6c3RyKCc8aDQ+JyAuIF9fKCdDb3VsZCBub3QgY3JlYXRlIHRlbXAgZmlsZScpIC4gJyAnIC4gJHRtcE9wdGlvbnNGaWxlLiAnPC9oND4nKTsKICAgIHJldHVybiBmYWxzZTsKICB9IGVsc2UgewogICAgZndyaXRlKCRmcG9pbnRlciwgJzw/cGhwJy4iXG4iKTsKICAgIGZ3cml0ZSgkZnBvaW50ZXIsICckb3B0X2NoYXJzZXQ9IicuZGNfZW5jb2RpbmcuIlwiO1xuIik7CiAgICAkcG9zdGNvdW50ID0gY291bnQoJHBvc3QpOwogICAgJGxvb3AgPSAwOwogICAgcmVzZXQoJHBvc3QpOwogICAgd2hpbGUgKCRsb29wIDwgJHBvc3Rjb3VudCkgewogICAgICAkcG9zdGtleSA9IGtleSgkcG9zdCk7CiAgICAgIGlmICgkcG9zdGtleSAhPSAnb3B0aW9ucycpIHsKICAgICAgICBmd3JpdGUoJGZwb2ludGVyLCAnJCcuJHBvc3RrZXkuJz0iJy5zdHJfcmVwbGFjZSgnIicsJ1wiJyxjdXJyZW50KCRwb3N0KSkuIlwiO1xuIik7CiAgICAgIH0KICAgICAgbmV4dCgkcG9zdCk7CiAgICAgICRsb29wKys7CiAgICB9CiAgICBmd3JpdGUoJGZwb2ludGVyLCAnPz4nKTsKICAgIGZjbG9zZSgkZnBvaW50ZXIpOwogICAgaWYgKCFjb3B5KCR0bXBPcHRpb25zRmlsZSwgJG9wdGlvbnNGaWxlKSkgewogICAgICAgYnVmZmVyOjpzdHIoJzxoND4nIC4gX18oJ0NvdWxkIG5vdCBjb3B5IHRlbXAgZmlsZScpIC4gJyAnIC4gJHRtcE9wdGlvbnNGaWxlLicgJy4gX18oJ3RvIGZpbmFsIGZpbGUnKSAuICcgJyAuICRvcHRpb25zRmlsZSAuICc8L2g0PicpOwogICAgfSBlbHNlIHsKICAgICAgIGJ1ZmZlcjo6c3RyKCc8aDQ+JyAuIF9fKCdPcHRpb25zIHN1Y2Nlc3NmdWxseSBzYXZlZCcpIC4gJzwvaDQ+Jyk7CiAgICB9CiAgICB1bmxpbmsoJHRtcE9wdGlvbnNGaWxlKTsKICB9Cn0KPz4K";}}