wao 0.15.1 → 0.15.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/armem-base.js +3 -6
- package/esm/armem-base.js +1 -2
- package/package.json +1 -1
- package/cjs/lua/aos1.js +0 -1
- package/cjs/lua/aos1.wasm +0 -0
- package/esm/lua/aos1.js +0 -1
- package/esm/lua/aos1.wasm +0 -0
package/cjs/lua/aos1.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default "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fzYCGAJAIAAoAhAiAyACKAIUSARAQZ0EEB4gAigCMCEEDAELQYYNEB4gAiAAKAIIKAI0IAIoAjAgAkEUakEEQf////8HQbcTEH8iBDYCMCAAKAIQIQMLQbMKEB4gBCADQQJ0aiABNgIAAkAgACgCECIDIAIoAhhIBEBBnQQQHiACKAI4IQEMAQtBhg0QHiACIAAoAggoAjQgAigCOCACQRhqQQRB/////wdBtxMQfyIBNgI4IAAoAhAhAwtBmg0QHiABIANBAnRqIAAoAggoAgg2AgAgACAAKAIQIgBBAWo2AhAgAAuEDAIFfw9+Qc8TEB4jAEHgAGsiBSQAIARC////////P4MhDCACIASFQoCAgICAgICAgH+DIQogAkL///////8/gyINQiCIIQ4gBEIwiKdB//8BcSEHAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEBBiQMQHiAHQf//AWtBgYB+Sw0BC0GYBxAeIAFQIAJC////////////AIMiC0KAgICAgIDA//8AVCALQoCAgICAgMD//wBRG0UEQEHTAxAeIAJCgICAgICAIIQhCgwCC0GYBxAeIANQIARC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRG0UEQEHDBRAeIARCgICAgICAIIQhCiADIQEMAgtB1AMQHiABIAtCgICAgICAwP//AIWEUARAQaYDEB4gAiADhFAEQEGnAxAeQoCAgICAgOD//wAhCkIAIQEMAwtBzAQQHiAKQoCAgICAgMD//wCEIQpCACEBDAILQdQDEB4gAyACQoCAgICAgMD//wCFhFAEQEGPBhAeIAEgC4QhAkIAIQEgAlAEQEGuAhAeQoCAgICAgOD//wAhCgwDC0HTAxAeIApCgICAgICAwP//AIQhCgwCC0GmAxAeIAEgC4RQBEBBrgIQHkIAIQEMAgtBpgMQHiACIAOEUARAQa4CEB5CACEBDAILQYICEB4gC0L///////8/WARAQbYWEB4gBUHQAGogASANIAEgDSANUCIGG3kgBkEGdK18pyIGQQ9rEFRBECAGayEGIAUpA1giDUIgiCEOIAUpA1AhAQtB2wIQHiACQv///////z9WDQBBnxYQHiAFQUBrIAMgDCADIAwgDFAiCBt5IAhBBnStfKciCEEPaxBUIAYgCGtB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QAJAIAEoAghBA0YEQEGVBRAeIAUgASsDADkDCAwBC0HaBBAeIAEgBUEIahCHAUUNAQtB+gIQHiACKAIIQQNGBEBBlQUQHiAFIAIrAwA5AwgMBAtBrQQQHiACIAVBCGoQhwENAwtBnwQQHiAAIAEgAkGNHxDHAgALQZ8EEB4gACABIAJBqh8QxwIAC0HTAxAeIAVBEGokAA8LQZEGEB4jAEEQayIDJAACQCABKAIIQRNGBEBBlQUQHiADIAEpAwA3AwgMAQtBtAcQHiACIAEgASADQQhqQQAQRhshAgtB4QcQHiADIAAgAhDJAjYCACAAQacdIAMQPQALgAsCBH4Ef0HzDRAeIwBB8ABrIgokACAEQv///////////wCDIQUCQAJAIAFQIgkgAkL///////////8AgyIGQoCAgICAgMD//wB9QoCAgICAgMCAgH9UIAZQG0UEQEHFBxAeIANCAFIgBUKAgICAgIDA//8AfSIIQoCAgICAgMCAgH9WIAhCgICAgICAwICAf1EbDQELQcUFEB4gCSAGQoCAgICAgMD//wBUIAZCgICAgICAwP//AFEbRQRAQcMFEB4gAkKAgICAgIAghCEEIAEhAwwCC0HyBRAeIANQIAVCgICAgICAwP//AFQgBUKAgICAgIDA//8AURtFBEBB0wMQHiAEQoCAgICAgCCEIQQMAgtB1AMQHiABIAZCgICAgICAwP//AIWEUARAQbkOEB5CgICAgICA4P//ACACIAEgA4UgAiAEhUKAgICAgICAgIB/hYRQIgkbIQRCACABIAkbIQMMAgtBrQQQHiADIAVCgICAgICAwP//AIWEUA0BQaYDEB4gASAGhFAEQEGABBAeIAMgBYRCAFINAkHfBxAeIAEgA4MhAyACIASDIQQMAgtBrAQQHiADIAWEUEUNAEGVBRAeIAEhAyACIQQMAQtB0hwQHiADIAEgASADVCAFIAZWIAUgBlEbIgwbIQUgBCACIAwbIghC////////P4MhBiACIAQgDBsiB0IwiKdB//8BcSELIAhCMIinQf//AXEiCUUEQEH6FBAeIApB4ABqIAUgBiAFIAYgBlAiCRt5IAlBBnStfKciCUEPaxBUIAopA2ghBiAKKQNgIQVBECAJayEJC0H3CBAeIAEgAyAMGyEDIAdC////////P4MhBCALRQRAQfoUEB4g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HiACIANBBHRqIARBBHRqIQJBn8QAIQQMBAtBywQQHiADKAIAQRBqIQUMAQtBvhAQHiADKAIQIQUgAygCACgCACgCDCIBIAIgAygCFCABKAIwa0ECdUEBaxC5ASIEDQELQfEDEB4gAyAAKAIURgR/QdsCEB4gAEEMagVBywIQHiADKAIMC0HMBBAeIQNBACEBIAJBAEwNAkGsBxAeQeDBACEEIAMoAgAgBWtBBHUgAkgNAgtB4gQQHiACQQR0IAVqQRBrIQILQYkQEB4gACgCDCIBIAIpAwA3AwAgASACKQMINwMIIAAgACgCDEEQajYCDCAEIQELQfoCEB4gAC0ACEEBRgRAQbUQEB4gACgCFCICKAIcIQQgAiACKAIAIAAoAiAiAGs2AhwgAiAAIARqNgIAC0HTARAeIAELmAQCAn4Cf0GSCBAeIwBBIGsiBCQAAkAgAUL///////////8AgyIDQoCAgICAgMCAPH0gA0KAgICAgIDA/8MAfVQEQEHFBxAeIAFCBIYgAEI8iIQhAyAAQv//////////D4MiAEKBgICAgICAgAhaBEBB0wMQHiADQoGAgICAgICAwAB8IQIMAgtB+QQQHiADQoCAgICAgICAQH0hAiAAQoCAgICAgICACFINAUH4BBAeIAIgA0IBg3whAgwBC0HyBRAeIABQIANCgICAgICAwP//AFQgA0KAgICAgIDA//8AURtFBEBBrgYQHiABQgSGIABCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQdQDEB5CgICAgICAgPj/ACECIANC////////v//DAFYNAEGQBRAeQgAhAiADQjCIpyIFQZH3AEkNAEHnGhAeIARBEGogACABQv///////z+DQoCAgICAgMAAhCICIAVBgfcAaxBUIAQgACACQYH4ACAFaxClASAEKQMIQgSGIAQpAwAiAEI8iIQhAiAEKQMQIAQpAxiEQgBSrSAAQv//////////D4OEIgBCgYCAgICAgIAIWgRAQdMDEB4gAkIBfCECDAELQdsCEB4gAEKAgICAgICAgAhSDQBBngQQHiACQgGDIAJ8IQILQcQFEB4gBEEgaiQAIAIgAUKAgICAgICAgIB/g4S/CxAAQf8DEB4gACABEM8CEA8LqAEBA39B1AcQHkHcjRRB3I0UKAIAQQFqIgU2AgAgACAFNgIAIAMEQEHcABAeA0BB2gUQHiACIARBA3RqIgYoAgBFBEBBoQ4QHiAGIAU2AgAgAiAEQQN0aiIAIAE2AgQgAEEANgIIIAMQASACDwtB+AQQHiAEQQFqIgQgA0cNAAsLQdcMEB4gACABIAIgA0EEdEEIchDTAiADQQF0IgAQzQIhASAAEAEgAQvyAgECf0G3BhAeIAAoAhAhA0F/IQQCQAJAAkACQAJAAkACQAJAAkACQAJAIAEOCgABAgMEBQYHCQgJC0GnAxAeIANBADoAP0EADwtB+gQQHiADQQAQnwEgA0EBOgA/QQAPC0GJAxAeIABBABC+AkEADwtBhgYQHiADKAIMIAMoAghqQQp2DwtB8AUQHiADKAIMIAMoAghqQf8HcQ8LQdoGEB4gAy0APyEBIANBAToAPyACRQRAQcIHEB4gA0HAcxCfASAAEEMgAyABOgA/DAULQZUKEB4gAyADKAIMIAJBCnRqIgIQnwEgACgCECgCDEEASgRAQa0CEB4gABBDC0HDBRAeIAMgAToAPyACQQBKDQRBtgEQHkEADwtB/QcQHiADKAJwIQAgAyACNgJwIAAPC0GcChAeIAMoAnQhACADIAJBKCACQShKGzYCdCAADwtBwwMQHiADLQA/IQQLQa0CEB4gBA8LQfkCEB4gAy0APUEHRgspAEGCAhAeQdSNFCgCAEUEQEG9BBAeQdiNFCABNgIAQdSNFCAANgIACwvEEAIFfw5+QZMSEB4jAEHQAmsiBSQAIARC////////P4MhCiACQv///////z+DIQwgAiAEhUKAgICAgICAgIB/gyENIARCMIinQf//AXEhCAJAAkAgAkIwiKdB//8BcSIJQf//AWtBgoB+TwRAQYkDEB4gCEH//wFrQYGAfksNAQtBmAcQHiABUCACQv///////////wCDIg9CgICAgICAwP//AFQgD0KAgICAgIDA//8AURtFBEBB0wMQHiACQoCAgICAgCCEIQ0MAgtBmAcQHiADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEBBwwUQHiAEQoCAgICAgCCEIQ0gAyEBDAILQdQDEB4gASAPQoCAgICAgMD//wCFhFAEQEHUAxAeIAMgAkKAgICAgIDA//8AhYRQBEBBpwMQHkIAIQFCgICAgICA4P//ACENDAMLQcwEEB4gDUKAgICAgIDA//8AhCENQgAhAQwCC0HUAxAeIAMgAkKAgICAgIDA//8AhYRQBEBBrgIQHkIAIQEMAgtBpgMQHiABIA+EUARAQeEHEB5CgICAgICA4P//ACANIAIgA4RQGyENQgAhAQwCC0GmAxAeIAIgA4RQBEBBzAQQHiANQoCAgICAgMD//wCEIQ1CACEBDAILQYICEB4gD0L///////8/WARAQfoUEB4gBUHAAmogASAMIAEgDCAMUCIGG3kgBkEGdK18pyIGQQ9rEFRBECAGayEGIAUpA8gCIQwgBSkDwAIhAQtB2wIQHiACQv///////z9WDQBBnxYQHiAFQbACaiADIAogAyAKIApQIgcbeSAHQQZ0rXynIgdBD2sQVCAGIAdqQRBrIQYgBSkDuAIhCiAFKQOwAiEDC0G87AEQHiAFQaACaiAKQoCAgICAgMAAhCISQg+GIANCMYiEIgJCAEKAgICAsOa8gvUAIAJ9IgRCABBTIAVBkAJqQgAgBSkDqAJ9QgAgBEIAEFMgBUGAAmogBSkDmAJCAYYgBSkDkAJCP4iEIgRCACACQgAQUyAFQfABaiAEQgBCACAFKQOIAn1CABBTIAVB4AFqIAUpA/gBQgGGIAUpA/ABQj+IhCIEQgAgAkIAEFMgBUHQAWogBEIAQgAgBSkD6AF9QgAQUyAFQcABaiAFKQPYAUIBhiAFKQPQAUI/iIQiBEIAIAJCABBTIAVBsAFqIARCAEIAIAUpA8gBfUIAEFMgBUGgAWogAkIAIAUpA7gBQgGGIAUpA7ABQj+IhEIBfSICQgAQUyAFQZABaiADQg+GQgAgAkIAEFMgBUHwAGogAkIAQgAgBSkDqAEgBSkDoAEiDyAFKQOYAXwiBCAPVK18IARCAVatfH1CABBTIAVBgAFqQgEgBH1CACACQgAQUyAGIAkgCGtqIQYCfyAFKQNwIhBCAYYiFCAFKQOIASIOQgGGIAUpA4ABQj+IhHwiC0Ln7AB9IhVCIIgiAiAMQoCAgICAgMAAhCIWQgGGIAFCP4iEIgxCIIgiBH4iESABQgGGIg9CIIgiCiALIBVWrSALIBRUrSAFKQN4QgGGIBBCP4iEIA5CP4h8fHxCAX0iEEIgiCILfnwiDiARVK0gDiAOIBBC/////w+DIhAgDEL/////D4MiFH58Ig5WrXwgBCALfnwgBCAQfiITIAsgFH58IhEgE1StQiCGIBFCIIiEfCAOIA4gEUIghnwiDlatfCAOIA4gFUL/////D4MiFSAUfiITIAIgCn58IhEgE1StIBEgESAQIA9C/v///w+DIhN+fCIRVq18fCIOVq18IA4gBCAVfiIXIAsgE358IgQgAiAUfnwiCyAKIBB+fCIQQiCIIAsgEFatIAQgF1StIAQgC1atfHxCIIaEfCIEIA5UrXwgBCARIAIgE34iAiAKIBV+fCIKQiCIIAIgClatQiCGhHwiAiARVK0gAiAQQiCGfCACVK18fCICIARUrXwiBEL/////////AFgEQEHtEhAeIAVB0ABqIAIgBCADIBIQUyABQjGGIAUpA1h9IAUpA1AiAUIAUq19IQtCACABfSEKIAZB/v8AagwBC0HUGhAeIAVB4ABqIARCP4YgAkIBiIQiAiAEQgGIIgQgAyASEFMgAUIwhiAFKQNofSAFKQNgIgxCAFKtfSELQgAgDH0hCiABIQ8gFiEMIAZB//8AagtBggIQHiIGQf//AU4EQEHMBBAeIA1CgICAgICAwP//AIQhDUIAIQEMAQtBgwIQHgJ+IAZBAEoEQEGVCxAeIAtCAYYgCkI/iIQhCyAEQv///////z+DIAatQjCGhCEMIApCAYYMAQtBggIQHiAGQY9/TARAQa4CEB5CACEBDAILQfwlEB4gBUFAayACIARBASAGaxClASAFQTBqIA8gDCAGQfAAahBUIAVBIGogAyASIAUpA0AiAiAFKQNIIgwQUyAFKQM4IAUpAyhCAYYgBSkDICIBQj+IhH0gBSkDMCIEIAFCAYYiAVStfSELIAQgAX0LQcPAABAeIQQgBUEQaiADIBJCA0IAEFMgBSADIBJCBUIAEFMgDCACIAIgAyACQgGDIgEgBHwiA1QgCyABIANWrXwiASASViABIBJRG618IgJWrXwiBCACIAIgBEKAgICAgIDA//8AVCADIAUpAxBWIAEgBSkDGCIEViABIARRG3GtfCICVq18IgQgAiAEQoCAgICAgMD//wBUIAMgBSkDAFYgASAFKQMIIgNWIAEgA1Ebca18IgEgAlStfCANhCENC0HJCBAeIAAgATcDACAAIA03AwggBUHQAmokAAv2AQIBfwJ+Qb8IEB5BfyEDAkAgAEIAUiABQv//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//////8/gyAGQfgAaiAHcq1CMIaEQgBCgICAgICAwMM/EDUgBSkDSCECIAUpA0AhBAwBC0GHBhAeIAlC////////P4MgBiAHcq1CMIaEIQILQckIEB4gACAENwMAIAAgAjcDCCAFQYABaiQAC+wCAQF/QZkFEB4jAEHQAGsiBCQAAkAgA0GAgAFOBEBBxAsQHiAEQSBqIAEgAkIAQoCAgICAgID//wAQNSAEKQMoIQIgBCkDICEBIANB//8BSQRAQdMDEB4gA0H//wBrIQMMAgtBtA8QHiAEQRBqIAEgAkIAQoCAgICAgID//wAQNSADQf3/AiADQf3/AkgbQf7/AWshAyAEKQMYIQIgBCkDECEBDAELQdsCEB4gA0GBgH9KDQBBxAsQHiAEQUBrIAEgAkIAQoCAgICAgIA5EDUgBCkDSCECIAQpA0AhASADQfSAfksEQEHTAxAeIANBjf8AaiEDDAELQdoOEB4gBEEwaiABIAJCAEKAgICAgICAORA1IANB6IF9IANB6IF9ShtBmv4BaiEDIAQpAzghAiAEKQMwIQELQeYPEB4gBCABIAJCACADQf//AGqtQjCGEDUgACAEKQMINwMIIAAgBCkDADcDACAEQdAAaiQACzoAQcsLEB4gACABNwMAIAAgAkL///////8/gyAEQjCIp0GAgAJxIAJCMIinQf//AXFyrUIwhoQ3AwgL+gEBA39B3AYQHiMAQSBrIgMkAAJAAkAgASwAACICBEBBpQMQHiABLQABDQELQfcEEB4gACACEOEBIQEMAQtBkAYQHiADQQBBIBCCARogAS0AACICBEBB3AAQHgNAQYsQEB4gAyACQQN2QRxxaiIEIAQoAgBBASACdHI2AgAgAS0AASECIAFBAWohASACDQALC0HCBRAeIAAiAS0AACICRQ0AQdwAEB4DQEGlBxAeIAMgAkEDdkEccWooAgAgAnZBAXENAUGzBxAeIAEtAAEhAiABQQFqIQEgAg0ACwtBnAoQHiADQSBqJAAgACABIABraiIAQQAgAC0AABsLlwEBA39BgQIQHiACRQRAQbYBEB5BAA8LQcsEEB4CQCAALQAAIgNFDQBB3AAQHgNAQcsEEB4CQCABLQAAIgVFDQBBygYQHiACQQFrIgJFIAMgBUdyDQBB0QkQHiABQQFqIQEgAC0AASEDIABBAWohACAD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An4gAEECECkiAUIAUwRAQdwCEB5CACABQmFUDQFBvAUQHhogAkL/////D4NCACABfYgMAQtB2wUQHkIAIAIgAYZC/////w+DIAFCH1YbC0G2ARAeECRBAQtaAQJ+QbYJEB4gAEECECkhAiAAQQEQKUL/////D4MhASAAIAKnQR9xIgAEfkH2BhAeIAEgAK2GIAFBICAAa62IhAVB0wEQHiABC0HkARAeQv////8PgxAkQQELnAEBA35B5AkQHiAAQQEQKSEDIABBAhApIQEgAEEDQgEQQCECIAFCAFMEQEGnAxAeIABBAkHcKRAlGgtBggIQHiACQgBXBEBBpwMQHiAAQQNBxSkQJRoLQacDEB4gASACfEIhWQRAQacDEB4gAEGcEEEAECEaC0HUBxAeIABC/v///x8gAkIBfYZCf4UgA0L/////D4MgAYiDECRBAQtnAgN/AX5BxQUQHkEBIQEgACAAEDEiAkEASgR/QdUBEB5CfyEEA0BBxwwQHiAAIAEQKSAEgyEEIAEgAkchAyABQQFqIQEgAw0AC0HbAhAeIASnQQBHBUHTARAeIAELQbYBEB4QRUEBC2YCA38BfkHFBRAeQQEhASAAIAAQMSICQQBKBH5B3AAQHgNAQccMEB4gACABECkgBIUhBCABIAJHIQMgAUEBaiEBIAMNAAtB2wIQHiAEQv////8PgwVB0wEQHiAEC0G2ARAeECRBAQtmAgN/AX5BxQUQHkEBIQEgACAAEDEiAkEASgR+QdwAEB4DQEHHDBAeIAAgARApIASEIQQgASACRyEDIAFBAWohASADDQALQdsCEB4gBEL/////D4MFQdMBEB4gBAtBtgEQHhAkQQELHQBB3QQQHiAAIABBARApQn+FQv////8PgxAkQQELbgIDfwF+QcUFEB5BASEBIAAgABAxIgJBAEwEfkG2ARAeQv////8PBUHVARAeQn8hBANAQccMEB4gACABECkgBIMhBCABIAJHIQMgAUEBaiEBIAMNAAtBgQIQHiAEQv////8PgwtBtgEQHhAkQQELswEBA35BxwkQHiAAQQEQKSECIAACfiACQoCAgIAIg0IAUiAAQQIQKSIBQgBZcUUEQEGgBBAeQgAgAX0hAyABQgBVBEBB3AIQHkIAIANCYVQNAkGOBRAeGiACQv////8PgyABiAwCC0G1BhAeQgAg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gAEgCEGsAyABQZABaiABQYABahBzIQQgAEF+EB8LQYYHEB4gASABKALAASAEajYCwAEgBkEBagtB2gIQHiIGSw0ACwtBtQMQHiABQbgBahBhDAELQYYHEB4gASACNgIAIABB1MgAIAEQISEJC0HxAxAeIAFB4CFqJAAgCQsOAEGuAhAeIABBARD/AgsSAEGeBBAeIAMgASACEJoBQQALvAUBBX9B5BEQHiMAQZAgayIDJABBASEFIABBAhBgIQIgAEEBQQYQTCAAQQEQHyAAIAMQbQJAIAAoAgwiBEEIaygCAEHGAEYEf0HX6AAQHiAEQRBrKAIAKAIMIQQjAEEgayIBJAAgASACNgIMIAEgAzYCCCABQeQANgIEIAEgADYCACABIABB4ztBBCADQeQAEQMAIgI2AhAgAUHTADoAGAJAIAINAEGu2AAQHiABIAAgAUEYakEBIANB5AARAwAiAjYCECABQQA6ABggAg0AQb3WABAeIAEgACABQRhqQQEgA0HkABEDACICNgIQIAINAEGJ1wAQHiABIABBuc0AQQYgA0HkABEDACICNgIQIAFBBDoAGCACDQBBrtgAEB4gASAAIAFBGGpBASADQeQAEQMAIgI2AhAgAUEEOgAYIAINAEGu2AAQHiABIAAgAUEYakEBIANB5AARAwAiAjYCECABQQQ6ABggAg0AQa7YABAeIAEgACABQRhqQQEgA0HkABEDACICNgIQIAFBCDoAGCACDQBBrtgAEB4gASAAIAFBGGpBASADQeQAEQMAIgI2AhAgAUEIOgAYIAINAEGu2AAQHiABIAAgAUEYakEBIANB5AARAwAiAjYCECABQvisATcDGCACDQBBrtgAEB4gASAAIAFBGGpBCCADQeQAEQMAIgI2AhAgAUKAgICAgIDKu8AANwMYIAINAEGd2gAQHiABIAAgAUEYakEIIANB5AARAwAiAjYCECABIAQoAgw6ABggAg0AQfPTABAeIAEgACABQRhqQQEgA0HkABEDADYCEAtB/gkQHiAEQQAgARDEAiABKAIQIQIgAUEgaiQAIAIFQdwAEB5BAQtB3AAQHgRAQYEEEB4gAEG/HEEAECEhBQwBC0GtAhAeIAMQYQtB8QMQHiADQZAgaiQAIAULHgBBhAQQHiAAQQAQjAJBtK4TKAIAQQNBC0EBEIUCC5oBAgV/AX5B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AUEANgLYBCABQQA2AsgEIAFBADYCuAQgAUEANgKoBCABQQA2ApgEIAFBADYCiAQgAUEANgL4AyABQQA2AugDIAFBADYC2AMgAUEANgLIAyABQQA2ArgDIAFBADYCqAMgAUEANgKYAyABQQA2AogDIAFBADYC+AIgAUEANgLoAiABQQA2AtgCIAFBADYCyAIgAUEANgK4AiABQQA2AqgCIAFBADYCmAIgAUEANgKIAiABQQA2AvgBIAFBADYC6AEgAUEANgLYASABQQA2AsgBIAFBADYCuAEgAUEANgKoASABQQA2ApgBIAFBADYCiAEgAUEANgJ4IAFBADYCaCABQQA2AlggAUEANgJIIAFBADYCOCABQQA2AiggAUEANgIYIABBADsBViAAQgA3AjwgACABQbAEajYCHCAAIAE2AjQgACABQRBqNgIMIAFBADYCCCAAIABBNGo2AhQgACABQdACajYCOCAAELEBIQEgBkHFADYCMCAGIAE2AiggACABQQJBABCzASADQcgANgIIIAMgADYCACAAIAFCASADEM4BIAAQsQEhAiADQcUANgIIIAMgAjYCACAAIAFCAiADEM4BIAAoAhAhAiAAQYABEKoCIAIgAEGvCEEREEEiATYChAEgACABEIECIAIoAoQBIQEDQEHRDBAeIAIgBEEDdCIHaiIIIAE2ApACIAggATYCjAIgBEEBciIFQTVHBEBB4B0QHiACQYwCaiIIIAVBA3RqIgUgATYCBCAFIAE2AgAgCCAHQRByaiIFIAE2AgQgBSABNgIAIAggB0EYcmoiByABNgIEIAcgATYCACAEQQRqIQQMAQsLQdUBEB5BACEBA0BBiRUQHiAAIAFBAnQiAkGgihJqKAIAEGMhBCAAKAIQIAJqIAQ2AogBIAAgACgCECACaigCiAEQgQIgAUEBaiIBQRhHDQALQfsEEB5BACEBIAAgAEH1PEEEEEEQgQIDQEHnDRAeIAAgACABQQJ0QeCHEmooAgAQYyICEIECIAIgAUEBaiIBOgAGIAFBFkcNAAtBtQcQHiAGQQE6AD8gBkEAEMICNgKAASADQRBqJAALFgBBzAQQHiAAIAAoAgxBIGtBABCiAQupAgECf0HjBRAeIwBBEGsiAyQAQbCuEygCACICBH9BrQIQHiACBUHpBhAeQbCuExCLAyICNgIAIAIQogMaQbCuEygCAAtBuwMQHkGILxCeAgJAAn9BsK4TKAIAQX8QKEEGRwRAQZECEB5BuC0Q6AJBwc0ADAELQcoHEB5BsK4TKAIAIAAQI0GwrhMoAgAgARAjQbCuEygCAEECQQFBAEEAQQAQvwEEQEGpBxAeQYgdEOgCIANBsK4TKAIAQX9BABAsNgIAQdXMACADEOkCQcHNAAwBC0HdAhAeQbCuEygCAEF/EJ0BRQRAQa4CEB5Bwc0AIQIMAgtBsAIQHkGwrhMoAgBBf0EAECwLQacDEB4hAkGwrhMoAgBBABAfC0HxAxAeIANBEGokACACCwvAnBPQAQBBgAgLwUUucHJldHR5AGludGVydmFsIGlzIGVtcHR5AGluZmluaXR5AGdldHJlZ2lzdHJ5AG5vdCBlbm91Z2ggbWVtb3J5AG1vbmV0YXJ5AGJpbmFyeQBhdHRlbXB0IHRvIHlpZWxkIGFjcm9zcyBhIEMtY2FsbCBib3VuZGFyeQAuc3RyaW5naWZ5AC5jcnlwdG8udXRpbC5hcnJheQB5ZGF5AHdkYXkAYUFiQmNDZERlRmdHaEhJam1NbnByUlN0VHVVVndXeFh5WXpaJXx8RWNFQ0V4RVhFeUVZT2RPZU9IT0lPbU9NT1NPdU9VT1ZPd09XT3kALmNyeXB0by5jaXBoZXIubm9yeAAweCVsbHgAcGF0dGVybiB0b28gY29tcGxleAAuY3J5cHRvLnV0aWwuaGV4AF9fbmV3aW5kZXgAX19pbmRleABpbnZhbGlkIHVwdmFsdWUgaW5kZXgAbWF4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAX19wb3cAaW50ZWdlciBvdmVyZmxvdwBDIHN0YWNrIG92ZXJmbG93AHN0cmluZyBsZW5ndGggb3ZlcmZsb3cAdGFibGUgb3ZlcmZsb3cAdW5zaWduZWQgb3ZlcmZsb3cAZ2V0ZW52AF9faWRpdgBfX2RpdgBmbG5TdHUAdGV4dABuZXh0AF9JT19vdXRwdXQAX0lPX2lucHV0AHN0ZG91dABidGVzdABpc2RzdABzcXJ0AHNvcnQAZGF0YSBzdHJpbmcgdG9vIHNob3J0AGFzc2VydABpbnNlcnQAcmVzdGFydABfX2Jub3QAY291bnQAU2xudABwcmludABjb2RlcG9pbnQALmJpbnQAYWJzZW50AGNvbW1lbnQAY29uc3RhbnQALmRlZmF1bHQAX19sdABleGl0AC5jcnlwdG8uZGlnZXN0LmluaXQALmNyeXB0by5jaXBoZXIuaW5pdAAuY3J5cHRvLmluaXQALmNyeXB0by51dGlsLmluaXQALmNyeXB0by5rZGYuaW5pdAAuY3J5cHRvLm1hYy5pbml0AC5jcnlwdG8udXRpbC5iaXQAYXJzaGlmdABsc2hpZnQAcmF3c2V0AG9mZnNldAByYXdnZXQAY29sbGVjdABzZWxlY3QAZXh0cmFjdABidABmbG9hdAB2YXJpYWJsZS1sZW5ndGggZm9ybWF0AGludmFsaWQgZm9ybWF0AG5hbWV3aGF0AHJlcGVhdABfX2NvbmNhdABzaXplX3QAKnQAc3RhdHVzAC5jcnlwdG8uY2lwaGVyLm1vcnVzAHRvbyBtYW55IGFyZ3VtZW50cwB3cm9uZyBudW1iZXIgb2YgYXJndW1lbnRzAGNvbnN0YW50cwB0b28gbWFueSByZXN1bHRzAHRyeWluZyB0byBhY2Nlc3Mgbm9uLWV4aXN0ZW50IGJpdHMALnByb2Nlc3MAX19pcGFpcnMAX19wYWlycwBmdW5jdGlvbiBvciBleHByZXNzaW9uIG5lZWRzIHRvbyBtYW55IHJlZ2lzdGVycwAuaGFuZGxlcnMAc2VhcmNoZXJzAG51cHMAbGFiZWxzL2dvdG9zAHN0cmluZyBjb250YWlucyB6ZXJvcwBhY29zAHRvbyBtYW55IG5lc3RlZCBmdW5jdGlvbnMAbnBhcmFtcwAudXRpbHMALmhhbmRsZXJzLXV0aWxzAEMgbGV2ZWxzAHRvbyBtYW55IHVwdmFsdWVzAGF0dGVtcHQgdG8gY29tcGFyZSB0d28gJXMgdmFsdWVzAHRvbyBtYW55IGNhcHR1cmVzAGNvcmUgYW5kIGxpYnJhcnkgaGF2ZSBpbmNvbXBhdGlibGUgbnVtZXJpYyB0eXBlcwBhY3RpdmVsaW5lcwBjaHVuayBoYXMgdG9vIG1hbnkgbGluZXMAbG9jYWwgdmFyaWFibGVzAG9wY29kZXMALmNyeXB0by5jaXBoZXIuYWVzAHRpbWUgb3V0LW9mLWJvdW5kcwBwb3NpdGlvbiBvdXQgb2YgYm91bmRzAGFicwAlcyVzAGF0dGVtcHQgdG8gJXMgYSAlcyB2YWx1ZSVzAGx1YW9wZW5fJXMAQCVzAD4lcwBtb2R1bGUgJyVzJyBub3QgZm91bmQ6JXMAJXMgZXhwZWN0ZWQsIGdvdCAlcwAlcyBuZWFyICVzAHRvbyBtYW55ICVzIChsaW1pdCBpcyAlZCkgaW4gJXMAYXR0ZW1wdCB0byBjb21wYXJlICVzIHdpdGggJXMAY2Fubm90ICVzICVzOiAlcwAlczolZDogJXMAZXJyb3IgbG9hZGluZyBtb2R1bGUgJyVzJyBmcm9tIGZpbGUgJyVzJzoKCSVzAGhvdXIAY3VyAC5jcnlwdG8uY2lwaGVyLm1vZGUuY3RyAHN0ZGVycgBfX2J4b3IAZm9yIGl0ZXJhdG9yAHN5bnRheCBlcnJvcgBmbG9vcgBmb3IAX19ib3IAX19zaHIAbG93ZXIAaW52YWxpZCBsb25nIHN0cmluZyBkZWxpbWl0ZXIAdXBwZXIAbWF4aW50ZWdlcgB0b2ludGVnZXIAbWluaW50ZWdlcgBvYmplY3QgbGVuZ3RoIGlzIG5vdCBhbiBpbnRlZ2VyAGZpZWxkICclcycgaXMgbm90IGFuIGludGVnZXIAbHVhX0ludGVnZXIAJWQtYnl0ZSBpbnRlZ2VyIGRvZXMgbm90IGZpdCBpbnRvIEx1YSBJbnRlZ2VyAHRvbnVtYmVyAG1hbGZvcm1lZCBudW1iZXIAJ2ZvcicgbGltaXQgbXVzdCBiZSBhIG51bWJlcgAnZm9yJyBzdGVwIG11c3QgYmUgYSBudW1iZXIAJ2ZvcicgaW5pdGlhbCB2YWx1ZSBtdXN0IGJlIGEgbnVtYmVyAGx1YV9OdW1iZXIAY2hhcgB5ZWFyAF9fZXEAZnJleHAAbGRleHAAc3RvcAAnX19uZXdpbmRleCcgY2hhaW4gdG9vIGxvbmc7IHBvc3NpYmxlIGxvb3AAJ19faW5kZXgnIGNoYWluIHRvbyBsb25nOyBwb3NzaWJsZSBsb29wADwlcz4gYXQgbGluZSAlZCBub3QgaW5zaWRlIGEgbG9vcAAuZHVtcABzdGVwAHJlcAB3cmFwAFBwACVzOiAlcABwcm90bwBnb3RvAC91c3IvbG9jYWwvbGliL2x1YS81LjMvPy5zbzsvdXNyL2xvY2FsL2xpYi9sdWEvNS4zL2xvYWRhbGwuc287Li8/LnNvAC5jcnlwdG8ucGFkZGluZy56ZXJvAGF0dGVtcHQgdG8gZGl2aWRlIGJ5IHplcm8Abm8AaW8AZ2V0aW5mbwBkbwBhbwByZXR1cm4AY2hhcnBhdHRlcm4AbWlzc2luZyAnWycgYWZ0ZXIgJyUlZicgaW4gcGF0dGVybgBqc29uAGludmFsaWQgb3B0aW9uAEluc3RydWN0aW9uAG1haW4gZnVuY3Rpb24AdW5hYmxlIHRvIGR1bXAgZ2l2ZW4gZnVuY3Rpb24AY2Fubm90IHVzZSAnLi4uJyBvdXRzaWRlIGEgdmFyYXJnIGZ1bmN0aW9uAGZhaWxlZCB0byBjYWxsIGhhbmRsZSBmdW5jdGlvbgBudW1iZXIlcyBoYXMgbm8gaW50ZWdlciByZXByZXNlbnRhdGlvbgBudW1iZXIgaGFzIG5vIGludGVnZXIgcmVwcmVzZW50YXRpb24AdGltZSByZXN1bHQgY2Fubm90IGJlIHJlcHJlc2VudGVkIGluIHRoaXMgaW5zdGFsbGF0aW9uAGR5bmFtaWMgbGlicmFyaWVzIG5vdCBlbmFibGVkOyBjaGVjayB5b3VyIEx1YSBpbnN0YWxsYXRpb24Abm90IGVub3VnaCBtZW1vcnkgZm9yIGJ1ZmZlciBhbGxvY2F0aW9uAHBlcmZvcm0gYml0d2lzZSBvcGVyYXRpb24gb24AcGVyZm9ybSBhcml0aG1ldGljIG9uAGFzaW4AdXB2YWx1ZWpvaW4AbWluAD1zdGRpbgBtYWluAGZsb2F0IGZvcm1hdCBtaXNtYXRjaCBpbgBlbmRpYW5uZXNzIG1pc21hdGNoIGluAHZlcnNpb24gbWlzbWF0Y2ggaW4AJXMgc2l6ZSBtaXNtYXRjaCBpbgBwb3BlbgByZW9wZW4AcmF3bGVuAF9fbGVuAHRoZW4AYXRhbgBuYW4AYm9vbGVhbgBmYWlsZWQgdG8gYm9vdCBsdWEgcnVudGltZVxuAHZhbHVlIGhhcyBubyBsaXRlcmFsIGZvcm0AcmFuZG9tAF9fdW5tAC5jcnlwdG8udXRpbC5zdHJlYW0Ac2V0c3RlcG11bABfX211bAB1bmV4cGVjdGVkIHN5bWJvbABmdWxsAHhwY2FsbABpc3RhaWxjYWxsAF9fY2FsbAB0YWlsIGNhbGwAdW50aWwAdGFibGUgaW5kZXggaXMgbmlsAGNlaWwAX19zaGwALmV2YWwAcmF3ZXF1YWwAbm9ybWFsAHNldGxvY2FsAGdldGxvY2FsAGdsb2JhbABTbABzZXRob29rAGdldGhvb2sAZXh0ZXJuYWwgaG9vawBtYWluIGNodW5rACVzOiAlcyBwcmVjb21waWxlZCBjaHVuawBzZWVrAGNsb2NrAHRvbyBtYW55IHJlc3VsdHMgdG8gdW5wYWNrAHRyYWNlYmFjawBicmVhawBwaQBtb250aABzZWFyY2hwYXRoAGNwYXRoAG1hdGgAZmx1c2gAY29zaABzaW5oAHRhbmgAZ21hdGNoAGRlYnVnAGlzdmFyYXJnAGxvZwBsZXhpY2FsIGVsZW1lbnQgdG9vIGxvbmcAY29udHJvbCBzdHJ1Y3R1cmUgdG9vIGxvbmcAc3RyaW5nIHNsaWNlIHRvbyBsb25nAGludmFsaWQgb3JkZXIgZnVuY3Rpb24gZm9yIHNvcnRpbmcAX190b3N0cmluZwBiaW5hcnkgc3RyaW5nAGludmFsaWQgdXNlIG9mICclYycgaW4gcmVwbGFjZW1lbnQgc3RyaW5nAGZpbmFsIHBvc2l0aW9uIG91dCBvZiBzdHJpbmcAaW5pdGlhbCBwb3NpdGlvbiBvdXQgb2Ygc3RyaW5nAHVuZmluaXNoZWQgc3RyaW5nAHJlYWRlciBmdW5jdGlvbiBtdXN0IHJldHVybiBhIHN0cmluZwAnX190b3N0cmluZycgbXVzdCByZXR1cm4gYSBzdHJpbmcAJ3BhY2thZ2UuJXMnIG11c3QgYmUgYSBzdHJpbmcAaXNydW5uaW5nAGVycm9yIGluIGVycm9yIGhhbmRsaW5nAGNvbmZpZwBhcnJheSB0b28gYmlnAG1lbW9yeSBhbGxvY2F0aW9uIGVycm9yOiBibG9jayB0b28gYmlnAGRlZwAlLjE0ZwBzZXR2YnVmAGdldCBsZW5ndGggb2YAaW5mAHNlbGYAZWxzZWlmAG1vZGYAdmVyc2lvbiBtaXNtYXRjaDogYXBwLiBuZWVkcyAlZiwgTHVhIGNvcmUgcHJvdmlkZXMgJWYAcGFja3NpemUAc3RyaW5nIGxlbmd0aCBkb2VzIG5vdCBmaXQgaW4gZ2l2ZW4gc2l6ZQBzdHJpbmcgbG9uZ2VyIHRoYW4gZ2l2ZW4gc2l6ZQByZW1vdmUAdG9vIG1hbnkgZWxlbWVudHMgdG8gbW92ZQB3aWR0aCBtdXN0IGJlIHBvc2l0aXZlAGZpZWxkIGNhbm5vdCBiZSBuZWdhdGl2ZQB0cnVlAHNldHVzZXJ2YWx1ZQBnZXR1c2VydmFsdWUAc2V0dXB2YWx1ZQBnZXR1cHZhbHVlAG5vIHZhbHVlAC5jcnlwdG8udXRpbC5xdWV1ZQBpbml0aWFsIHBvc2l0aW9uIGlzIGEgY29udGludWF0aW9uIGJ5dGUAZXhlY3V0ZQB3cml0ZQBycm90YXRlAGxyb3RhdGUAY29uY2F0ZW5hdGUAY29sbGF0ZQBjcmVhdGUAZGF0ZQBzZXRwYXVzZQByZXZlcnNlAGNsb3NlAGVsc2UAZmFsc2UAaW52YWxpZCBwYXR0ZXJuIGNhcHR1cmUAdW5maW5pc2hlZCBjYXB0dXJlAHJlcXVpcmUAY3R5cGUAY2Fubm90IHJlc3VtZSBub24tc3VzcGVuZGVkIGNvcm91dGluZQBjYW5ub3QgcmVzdW1lIGRlYWQgY29yb3V0aW5lAGF0dGVtcHQgdG8geWllbGQgZnJvbSBvdXRzaWRlIGEgY29yb3V0aW5lAGN1cnJlbnRsaW5lAHRvbyBtYW55IGFyZ3VtZW50cyB0byByZXN1bWUAdG9vIG1hbnkgcmVzdWx0cyB0byByZXN1bWUAZnVuY3Rpb24gaGFuZGxlIGlzIG5vdCBkZWZpbmVkIGdsb2JhbHkgaW4gbHVhIHJ1bnRpbWUAZGlmZnRpbWUAdG1wbmFtZQByZW5hbWUAdW5hYmxlIHRvIGdlbmVyYXRlIGEgdW5pcXVlIGZpbGVuYW1lAF9fbmFtZQB3aGlsZQB0bXBmaWxlAGRvZmlsZQBsb2FkZmlsZQBjYW5ub3QgY2xvc2Ugc3RhbmRhcmQgZmlsZQBhdHRlbXB0IHRvIHVzZSBhIGNsb3NlZCBmaWxlAGhhbmRsZQBzZXRtZXRhdGFibGUAZ2V0bWV0YXRhYmxlAF9fbWV0YXRhYmxlAGNhbm5vdCBjaGFuZ2UgYSBwcm90ZWN0ZWQgbWV0YXRhYmxlAGZpZWxkICclcycgbWlzc2luZyBpbiBkYXRlIHRhYmxlACdwYWNrYWdlLnNlYXJjaGVycycgbXVzdCBiZSBhIHRhYmxlAGlzeWllbGRhYmxlAHNldGxvY2FsZQBfX2xlAGh1Z2UAZm9ybWF0IHJlc3VsdCB0b28gbGFyZ2UAYnVmZmVyIHRvbyBsYXJnZQBpbnRlcnZhbCB0b28gbGFyZ2UAcmVzdWx0aW5nIHN0cmluZyB0b28gbGFyZ2UAVVRGLTggdmFsdWUgdG9vIGxhcmdlAGRlY2ltYWwgZXNjYXBlIHRvbyBsYXJnZQBub3QgYW4gaW50ZWdlciBpbiBwcm9wZXIgcmFuZ2UAaW5kZXggb3V0IG9mIHJhbmdlAHBvc2l0aW9uIG91dCBvZiByYW5nZQBsZXZlbCBvdXQgb2YgcmFuZ2UAdmFsdWUgb3V0IG9mIHJhbmdlAGJhc2Ugb3V0IG9mIHJhbmdlAG5vIG1lc3NhZ2UAcGFja2FnZQBjb2xsZWN0Z2FyYmFnZQBfX21vZGUAaW52YWxpZCBtb2RlAGludmFsaWQgVVRGLTggY29kZQBzb3VyY2UAaW52YWxpZCBlc2NhcGUgc2VxdWVuY2UALmNoYW5jZQByZXBsYWNlAEVlAGZtb2QAX19tb2QAbWV0YW1ldGhvZABkZXN0aW5hdGlvbiB3cmFwIGFyb3VuZABmaWVsZCAnJXMnIGlzIG91dC1vZi1ib3VuZABmaW5kAGVuZABfX2JhbmQAJWxsZAB5aWVsZABmaWVsZAB1cHZhbHVlaWQAJ3BvcGVuJyBub3Qgc3VwcG9ydGVkAGNvcnJ1cHRlZABtdWx0aXBsZSBMdWEgVk1zIGRldGVjdGVkAGhleGFkZWNpbWFsIGRpZ2l0IGV4cGVjdGVkAGZ1bmN0aW9uIGFyZ3VtZW50cyBleHBlY3RlZAAlcyBleHBlY3RlZABMdWEgZnVuY3Rpb24gZXhwZWN0ZWQAdGFibGUgb3Igc3RyaW5nIGV4cGVjdGVkAHZhbHVlIGV4cGVjdGVkAHN0cmluZy9mdW5jdGlvbi90YWJsZSBleHBlY3RlZABuaWwgb3IgdGFibGUgZXhwZWN0ZWQAdGhyZWFkIGV4cGVjdGVkACc9JyBvciAnaW4nIGV4cGVjdGVkADxuYW1lPiBvciAnLi4uJyBleHBlY3RlZAB0cnVuY2F0ZWQAZmlsZSBpcyBhbHJlYWR5IGNsb3NlZABzdGFuZGFyZCAlcyBmaWxlIGlzIGNsb3NlZABsYXN0bGluZWRlZmluZWQAcmFuZG9tc2VlZABzdXNwZW5kZWQAbG9hZGVkAF9fYWRkAHJhZABwcmVsb2FkAHRocmVhZABkZWFkAFwlMDNkAFwlZABpbnZhbGlkIGNhcHR1cmUgaW5kZXggJSUlZABmdW5jdGlvbiBhdCBsaW5lICVkAG5vIHZpc2libGUgbGFiZWwgJyVzJyBmb3IgPGdvdG8+IGF0IGxpbmUgJWQAbGFiZWwgJyVzJyBhbHJlYWR5IGRlZmluZWQgb24gbGluZSAlZABzaG9ydF9zcmMAZnVuYwBudW1lcmljAF9fZ2MAc2VjAC5jcnlwdG8uY2lwaGVyLm1vZGUuY2JjAC5jcnlwdG8uY2lwaGVyLmlzc2FjAC5jcnlwdG8ubWFjLmhtYWMAJWMAZ3N1YgBfX3N1YgByYgBsb2FkbGliAC5jcnlwdG8uY2lwaGVyLm1vZGUub2ZiAC5jcnlwdG8uY2lwaGVyLm1vZGUuY2ZiAC5jcnlwdG8uY2lwaGVyLm1vZGUuZWNiAC5jcnlwdG8uZGlnZXN0LmJsYWtlMmIAcndhAC91c3IvbG9jYWwvc2hhcmUvbHVhLzUuMy8/Lmx1YTsvdXNyL2xvY2FsL3NoYXJlL2x1YS81LjMvPy9pbml0Lmx1YTsvdXNyL2xvY2FsL2xpYi9sdWEvNS4zLz8ubHVhOy91c3IvbG9jYWwvbGliL2x1YS81LjMvPy9pbml0Lmx1YTsuLz8ubHVhOy4vPy9pbml0Lmx1YQAbTHVhAGxpZ2h0IHVzZXJkYXRhACVhAG5vdCBhAF9fbHVhX3dlYmFzc2VtYmx5X18AaW50ZWdyYWwgc2l6ZSAoJWQpIG91dCBvZiBsaW1pdHMgWzEsJWRdAD1bQ10ACglubyBmaWVsZCBwYWNrYWdlLnByZWxvYWRbJyVzJ10AIl0AeFgATFVBQk9YAFBPU0lYAF9FTlYATFVBX05PRU5WACVVAEdNVABwUAAueFhuTgB0YWJsZSBpbmRleCBpcyBOYU4AX1ZFUlNJT04ATkFOAExDX0FMTAAlSQBMVUFfUEFUSABMVUFfQ1BBVEgAX0cATEFORwBJTkYAZUUAX0xPQURFRABfUFJFTE9BRABDAD0/ADxpbnRlZ2VyPgA8bnVtYmVyPgA8c3RyaW5nPgA8ZW9mPgA8bmFtZT4APFwlZD4AZnVuY3Rpb24gPCVzOiVkPgA+PgB+PQA+PQA9PQA8PQA8PAA7OwA7ATsACgklczoAc3RhY2sgdHJhY2ViYWNrOgAlZDoAOjoALTAxMjM0NTY3ODkAdXRmOAAuY3J5cHRvLmNpcGhlci5hZXMxMjgAQy5VVEYtOAAuY3J5cHRvLmNpcGhlci5hZXMyNTYALmNyeXB0by5kaWdlc3Quc2hhMl8yNTYALmNyeXB0by5kaWdlc3QubWQ1AC5jcnlwdG8uZGlnZXN0Lm1kNAAuYmFzZTY0AC5jcnlwdG8uZGlnZXN0LnNoYTMAXzVfMwBMdWEgNS4zAGF0YW4yAC5jcnlwdG8ua2RmLnBia2RmMgAuY3J5cHRvLmRpZ2VzdC5tZDIALmNyeXB0by5jaXBoZXIuYWVzMTkyAGJpdDMyAC5jcnlwdG8uZGlnZXN0LnNoYTJfNTEyAGZvcm1hdCBhc2tzIGZvciBhbGlnbm1lbnQgbm90IHBvd2VyIG9mIDIALmNyeXB0by5kaWdlc3Quc2hhMQBsb2cxMAAvLwBfRy4ACgkuLi4AXiQqKz8uKFslLQB3KwAtKwBGSUxFKgAoKnRlbXBvcmFyeSkAKGZvciBpbmRleCkAKGZvciBsaW1pdCkAaW52YWxpZCBmb3JtYXQgKHJlcGVhdGVkIGZsYWdzKQBzdGFjayBvdmVyZmxvdyAoJXMpAGNhbGxpbmcgJyVzJyBvbiBiYWQgc2VsZiAoJXMpAGVycm9yIGluIF9fZ2MgbWV0YW1ldGhvZCAoJXMpAGJhZCBhcmd1bWVudCAjJWQgKCVzKQBiYWQgYXJndW1lbnQgIyVkIHRvICclcycgKCVzKQBjYW5ub3Qgb3BlbiBmaWxlICclcycgKCVzKQBpbnZhbGlkIHJlcGxhY2VtZW50IHZhbHVlIChhICVzKQAoZm9yIGdlbmVyYXRvcikAKGZvciBzdGVwKQBmaWxlICglcCkAKGZvciBjb250cm9sKQAobnVsbCkAKCp2YXJhcmcpAGludmFsaWQgZm9ybWF0ICh3aWR0aCBvciBwcmVjaXNpb24gdG9vIGxvbmcpAChlcnJvciBvYmplY3QgaXMgYSAlcyB2YWx1ZSkAKGZvciBzdGF0ZSkAKCpubyBuYW1lKQA9KGRlYnVnIGNvbW1hbmQpAGZpbGUgKGNsb3NlZCkAPShsb2FkKQB0b28gbWFueSAlcyAobGltaXQgaXMgJWQpACVzIGV4cGVjdGVkICh0byBjbG9zZSAlcyBhdCBsaW5lICVkKQB1bmZpbmlzaGVkIGxvbmcgJXMgKHN0YXJ0aW5nIGF0IGxpbmUgJWQpAAoJKC4uLnRhaWwgY2FsbHMuLi4pAGF0dGVtcHQgdG8gbG9hZCBhICVzIGNodW5rIChtb2RlIGlzICclcycpACAoJXMgJyVzJykAbWFsZm9ybWVkIHBhdHRlcm4gKG1pc3NpbmcgYXJndW1lbnRzIHRvICclJWInKQBtYWxmb3JtZWQgcGF0dGVybiAobWlzc2luZyAnXScpAG1hbGZvcm1lZCBwYXR0ZXJuIChlbmRzIHdpdGggJyUlJykAbWlzc2luZyAnfScAbWlzc2luZyAneycAaW52YWxpZCBrZXkgdG8gJ25leHQnAHdyb25nIG51bWJlciBvZiBhcmd1bWVudHMgdG8gJ2luc2VydCcAJ3Rvc3RyaW5nJyBtdXN0IHJldHVybiBhIHN0cmluZyB0byAncHJpbnQnAGludmFsaWQgb3B0aW9uICclJSVjJyB0byAnZm9ybWF0JwBpbnZhbGlkIHZhbHVlICglcykgYXQgaW5kZXggJWQgaW4gdGFibGUgZm9yICdjb25jYXQnACVzICclcycAaW52YWxpZCBvcHRpb24gJyVzJwBmdW5jdGlvbiAnJXMnADxnb3RvICVzPiBhdCBsaW5lICVkIGp1bXBzIGludG8gdGhlIHNjb3BlIG9mIGxvY2FsICclcycACglubyBmaWxlICclcycACglubyBtb2R1bGUgJyVzJyBpbiBmaWxlICclcycAaW52YWxpZCBjb252ZXJzaW9uIHNwZWNpZmllciAnJSUlcycAaW52YWxpZCBvcHRpb24gJyUlJWMnIHRvICdsdWFfcHVzaGZzdHJpbmcnAG1pc3Npbmcgc2l6ZSBmb3IgZm9ybWF0IG9wdGlvbiAnYycAaW52YWxpZCBmb3JtYXQgb3B0aW9uICclYycAaW52YWxpZCBuZXh0IG9wdGlvbiBmb3Igb3B0aW9uICdYJwBhdHRlbXB0IHRvIHBlcmZvcm0gJ24lJTAnACUAW3N0cmluZyAiAGludGVycnVwdGVkIQBhc3NlcnRpb24gZmFpbGVkIQAgaW4gAGx1YV9kZWJ1Zz4gACVzOiVkOiAAIAwKDQkLAGNvbnQKAGVycm9yOiAlcwoALwo7Cj8KIQotCgBQQU5JQzogdW5wcm90ZWN0ZWQgZXJyb3IgaW4gY2FsbCB0byBMdWEgQVBJICglcykKAGVycm9yIG9uIGx1YUxfbG9hZGJ1ZmZlcigpCgAZkw0KGgoAAQBB0M0AC7cPLS0gVGhpcyBzY3JpcHQgaXMgYnJpZGdlIHByb2dyYW0gZm9yIFdBU00KbG9jYWwgYXJncyA9IHsuLi59CmxvY2FsIGx1YV9idW5kbGUgPSBhcmdzWzFdCgptYXRoLnJhbmRvbSA9IGZ1bmN0aW9uKCkKICAgIHJldHVybiAwLjUgLS0gUmVwbGFjZSB3aXRoIGFueSB2YWx1ZSB5b3Ugd2FudAplbmQKLS0gSW5saW5lIGxvYWRlcgotLSBJbiBXQVNNIEx1YSwgYWxsIEx1YSBzY3JpcHRlZCB3aWxsIGJlIGNvbXBpbGVkIGFzIGJ5dGUgc3RyaW5nIGFuZCBzZXQgdG8gbHVhX2J1bmRsZSB0YWJsZS4KLS0gVGhlbiwgdGhpcyBsb2FkZXIgd2lsbCByZXNvbHZlIGJ5IG1vZHVsZSBuYW1lIGFuZCBldmFsdWF0ZSBpdC4KbG9jYWwgZnVuY3Rpb24gX2lubGluZV9sb2FkZXIobmFtZSkKICAgIGxvY2FsIG1vZCA9IGx1YV9idW5kbGVbbmFtZV0gb3IgbHVhX2J1bmRsZVtuYW1lIC4uICcuaW5pdCddCiAgICBpZiBub3QgbW9kIHRoZW4gcmV0dXJuICgibW9kdWxlICVzIG5vdCBmb3VuZCIpOmZvcm1hdChuYW1lKSBlbmQKICAgIGlmIHR5cGUobW9kKSA9PSAnc3RyaW5nJyB0aGVuCiAgICAgICAgbG9jYWwgY2h1bmssIGVyciA9IGxvYWQobW9kLCBuYW1lKQogICAgICAgIGlmIGNodW5rIHRoZW4KICAgICAgICAgICAgcmV0dXJuIGNodW5rCiAgICAgICAgZWxzZQogICAgICAgICAgICBlcnJvcigoImVycm9yIGxvYWRpbmcgbW9kdWxlICVzOiAlcyIpOmZvcm1hdChuYW1lLCBlcnIpLCAwKQogICAgICAgIGVuZAogICAgZWxzZWlmIHR5cGUobW9kKSA9PSAnZnVuY3Rpb24nIHRoZW4KICAgICAgICByZXR1cm4gbW9kCiAgICBlbmQKZW5kCgp0YWJsZS5pbnNlcnQocGFja2FnZS5sb2FkZXJzIG9yIHBhY2thZ2Uuc2VhcmNoZXJzLCAyLCBfaW5saW5lX2xvYWRlcikKCi0tIFRoZSBfX2x1YV93ZWJhc3NlbWJseV9fIG1vZHVsZSB3aWxsIGJlIGluamVjdCB2aWEgQyBwcm9ncmFtLgpsb2NhbCBtYWluID0gX2lubGluZV9sb2FkZXIoJ19fbHVhX3dlYmFzc2VtYmx5X18nKQptYWluKCkKCi0tIEV4cG9ydCBmdW5jdGlvbiBjYWxsIHdyYXBwZXIKLS0gZnVuY3Rpb24gbHVhX2NhbGwoZnVuY3Rpb25fbmFtZSwgLi4uKQotLSAgIGZvciBrLCB2IGluIHBhaXJzKGV4cG9ydHMpIGRvCi0tICAgICBwcmludChrKQotLSAgIGVuZAotLSAgIHByaW50KGV4cG9ydHNbJ2hlbGxvX3dvcmxkJ10pCi0tICAgcHJpbnQoI2Z1bmN0aW9uX25hbWUpCi0tICAgcHJpbnQoZnVuY3Rpb25fbmFtZSA9PSAnaGVsbG9fd29ybGQnKQotLSAgIHByaW50KGZ1bmN0aW9uX25hbWUgPT0gJ2hlbGxvX3dvcmxkJykKLS0gICBwcmludCh0eXBlKGZ1bmN0aW9uX25hbWUpKQotLSAKLS0gICBsb2NhbCBtb2QgPSBleHBvcnRzW2Z1bmN0aW9uX25hbWVdCi0tICAgaWYgbm90IG1vZCB0aGVuCi0tICAgICBwcmludCgoIk1vZHVsZSAlcyBpc24ndCBleHBvcnRlZCIpOmZvcm1hdChmdW5jdGlvbl9uYW1lKSkKLS0gICAgIHJldHVybgotLSAgIGVsc2VpZiB0eXBlKG1vZCkgfj0gJ3RhYmxlJyB0aGVuCi0tICAgICBwcmludCgoIk1vZHVsZSAlcyBleHBvcnRlZCBidXQgbm90IGFuIHRhYmxlIik6Zm9ybWF0KGZ1bmN0aW9uX25hbWUpKQotLSAgICAgcmV0dXJuCi0tICAgZW5kCi0tIAotLSAgIGxvY2FsIGZuID0gbW9kLmZuCi0tICAgaWYgbm90IGZuIHRoZW4KLS0gICAgIHByaW50KCgiTW9kdWxlICVzLmZuIGlzIG5vdCBkZWZpbmVkIik6Zm9ybWF0KGZ1bmN0aW9uX25hbWUpKQotLSAgICAgcmV0dXJuCi0tICAgZWxzZWlmIHR5cGUoZm4pIH49ICdmdW5jdGlvbicgdGhlbgotLSAgICAgcHJpbnQoKCJNb2R1bGUgJXMuZm4gaXMgbm90IGEgZnVuY3Rpb24iKTpmb3JtYXQoZnVuY3Rpb25fbmFtZSkpCi0tICAgICByZXR1cm4KLS0gICBlbmQKLS0gICAtLSBDYWxsIGV4cG9ydGVkIGZ1bmN0aW9uCi0tICAgbG9jYWwgYXJndW1lbnRzID0ge3NlbGVjdCgxLCAuLi4pfQotLSAgIHJldHVybiBmbih0YWJsZS51bnBhY2soYXJndW1lbnRzKSkKLS0gZW5kCgBBkN0AC+NBbG9jYWwganNvbiA9IHJlcXVpcmUgImpzb24iCmxvY2FsIHByb2Nlc3MgPSByZXF1aXJlICIucHJvY2VzcyIKYW8gPSByZXF1aXJlICJhbyIKCmZ1bmN0aW9uIGhhbmRsZShtc2dKU09OLCBhb0pTT04pCiAgICAtLSBkZWNvZGUgaW5wdXRzCiAgICBsb2NhbCBtc2cgPSBqc29uLmRlY29kZShtc2dKU09OKQogICAgbG9jYWwgZW52ID0ganNvbi5kZWNvZGUoYW9KU09OKQogICAgYW8uaW5pdChlbnYpCiAgICAtLSByZWxvY2F0ZSBjdXN0b20gdGFncyB0byByb290IG1lc3NhZ2UKICAgIG1zZyA9IGFvLm5vcm1hbGl6ZShtc2cpCiAgICAtLSBoYW5kbGUgcHJvY2VzcwogICAgLS0KICAgIC0tIFRoZSBwcm9jZXNzIG1heSB0aHJvdyBhbiBlcnJvciwgZWl0aGVyIGludGVudGlvbmFsbHkgb3IgdW5pbnRlbnRpb25hbGx5CiAgICAtLSBTbyB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gY2F0Y2ggdGhlc2UgdW5oYW5kbGVkIGVycm9ycyBhbmQgYnViYmxlIHRoZW0KICAgIC0tIGFjcm9zcyB0aGUgaW50ZXJvcCB3aXRoIHNvbWUgaW5kaWNhdGlvbiB0aGF0IGl0IHdhcyB1bmhhbmRsZWQKICAgIC0tCiAgICAtLSBUbyBkbyB0aGlzLCB3ZSB3cmFwIHRoZSBwcm9jZXNzLmhhbmRsZSB3aXRoIHBjYWxsKCksIGFuZCByZXR1cm4gYm90aCB0aGUgc3RhdHVzCiAgICAtLSBhbmQgcmVzcG9uc2UgYXMgSlNPTi4gVGhlIGNhbGxlciBjYW4gZXhhbWluZSB0aGUgc3RhdHVzIGJvb2xlYW4gYW5kIGRlY2lkZSBob3cgdG8KICAgIC0tIGhhbmRsZSB0aGUgZXJyb3IKICAgIC0tCiAgICAtLSBTZWUgcGNhbGwgaHR0cHM6Ly93d3cubHVhLm9yZy9waWwvOC40Lmh0bWwKICAgIGxvY2FsIHN0YXR1cywgcmVzcG9uc2UgPSBwY2FsbChmdW5jdGlvbigpCiAgICAgICAgcmV0dXJuIChwcm9jZXNzLmhhbmRsZShtc2csIGFvKSkKICAgIGVuZCkKCiAgICAtLSBlbmNvZGUgb3V0cHV0CiAgICBsb2NhbCByZXNwb25zZUpTT04gPSBqc29uLmVuY29kZSh7b2sgPSBzdGF0dXMsIHJlc3BvbnNlID0gcmVzcG9uc2V9KQogICAgcmV0dXJuIHJlc3BvbnNlSlNPTgplbmQKAAAAAAAtLVtbCgoKCiBiYXNlNjQgLS0gdjEuNS4zIHB1YmxpYyBkb21haW4gTHVhIGJhc2U2NCBlbmNvZGVyL2RlY29kZXIKCiBubyB3YXJyYW50eSBpbXBsaWVkOyB1c2UgYXQgeW91ciBvd24gcmlzawoKCgogTmVlZHMgYml0MzIuZXh0cmFjdCBmdW5jdGlvbi4gSWYgbm90IHByZXNlbnQgaXQncyBpbXBsZW1lbnRlZCB1c2luZyBCaXRPcAoKIG9yIEx1YSA1LjMgbmF0aXZlIGJpdCBvcGVyYXRvcnMuIEZvciBMdWEgNS4xIGZhbGxiYWNrcyB0byBwdXJlIEx1YQoKIGltcGxlbWVudGF0aW9uIGluc3BpcmVkIGJ5IFJpY2kgTGFrZSdzIHBvc3Q6CgogICBodHRwOi8vcmljaWxha2UuYmxvZ3Nwb3QuY28udWsvMjAwNy8xMC9pdGVyYXRpbmctYml0cy1pbi1sdWEuaHRtbAoKCgogYXV0aG9yOiBJbHlhIEtvbGJpbiAoaXNrb2xiaW5AZ21haWwuY29tKQoKIHVybDogZ2l0aHViLmNvbS9pc2tvbGJpbi9sYmFzZTY0CgoKCiBDT01QQVRJQklMSVRZCgoKCiBMdWEgNS4xKywgTHVhSklUCgoKCiBMSUNFTlNFCgoKCiBTZWUgZW5kIG9mIGZpbGUgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCgoKCi0tXV0KCgoKCgpsb2NhbCBiYXNlNjQgPSB7fQoKCgpsb2NhbCBleHRyYWN0ID0gX0cuYml0MzIgYW5kIF9HLmJpdDMyLmV4dHJhY3QgLS0gTHVhIDUuMi9MdWEgNS4zIGluIGNvbXBhdGliaWxpdHkgbW9kZQoKaWYgbm90IGV4dHJhY3QgdGhlbgoKCWlmIF9HLmJpdCB0aGVuIC0tIEx1YUpJVAoKCQlsb2NhbCBzaGwsIHNociwgYmFuZCA9IF9HLmJpdC5sc2hpZnQsIF9HLmJpdC5yc2hpZnQsIF9HLmJpdC5iYW5kCgoJCWV4dHJhY3QgPSBmdW5jdGlvbiggdiwgZnJvbSwgd2lkdGggKQoKCQkJcmV0dXJuIGJhbmQoIHNociggdiwgZnJvbSApLCBzaGwoIDEsIHdpZHRoICkgLSAxICkKCgkJZW5kCgoJZWxzZWlmIF9HLl9WRVJTSU9OID09ICJMdWEgNS4xIiB0aGVuCgoJCWV4dHJhY3QgPSBmdW5jdGlvbiggdiwgZnJvbSwgd2lkdGggKQoKCQkJbG9jYWwgdyA9IDAKCgkJCWxvY2FsIGZsYWcgPSAyXmZyb20KCgkJCWZvciBpID0gMCwgd2lkdGgtMSBkbwoKCQkJCWxvY2FsIGZsYWcyID0gZmxhZyArIGZsYWcKCgkJCQlpZiB2ICUgZmxhZzIgPj0gZmxhZyB0aGVuCgoJCQkJCXcgPSB3ICsgMl5pCgoJCQkJZW5kCgoJCQkJZmxhZyA9IGZsYWcyCgoJCQllbmQKCgkJCXJldHVybiB3CgoJCWVuZAoKCWVsc2UgLS0gTHVhIDUuMysKCgkJZXh0cmFjdCA9IGxvYWRbW3JldHVybiBmdW5jdGlvbiggdiwgZnJvbSwgd2lkdGggKQoKCQkJcmV0dXJuICggdiA+PiBmcm9tICkgJiAoKDEgPDwgd2lkdGgpIC0gMSkKCgkJZW5kXV0oKQoKCWVuZAoKZW5kCgoKCgoKZnVuY3Rpb24gYmFzZTY0Lm1ha2VlbmNvZGVyKCBzNjIsIHM2Mywgc3BhZCApCgoJbG9jYWwgZW5jb2RlciA9IHt9CgoJZm9yIGI2NGNvZGUsIGNoYXIgaW4gcGFpcnN7WzBdPSdBJywnQicsJ0MnLCdEJywnRScsJ0YnLCdHJywnSCcsJ0knLCdKJywKCgkJJ0snLCdMJywnTScsJ04nLCdPJywnUCcsJ1EnLCdSJywnUycsJ1QnLCdVJywnVicsJ1cnLCdYJywnWScsCgoJCSdaJywnYScsJ2InLCdjJywnZCcsJ2UnLCdmJywnZycsJ2gnLCdpJywnaicsJ2snLCdsJywnbScsJ24nLAoKCQknbycsJ3AnLCdxJywncicsJ3MnLCd0JywndScsJ3YnLCd3JywneCcsJ3knLCd6JywnMCcsJzEnLCcyJywKCgkJJzMnLCc0JywnNScsJzYnLCc3JywnOCcsJzknLHM2MiBvciAnKycsczYzIG9yJy8nLHNwYWQgb3InPSd9IGRvCgoJCWVuY29kZXJbYjY0Y29kZV0gPSBjaGFyOmJ5dGUoKQoKCWVuZAoKCXJldHVybiBlbmNvZGVyCgplbmQKCgoKZnVuY3Rpb24gYmFzZTY0Lm1ha2VkZWNvZGVyKCBzNjIsIHM2Mywgc3BhZCApCgoJbG9jYWwgZGVjb2RlciA9IHt9CgoJZm9yIGI2NGNvZGUsIGNoYXJjb2RlIGluIHBhaXJzKCBiYXNlNjQubWFrZWVuY29kZXIoIHM2MiwgczYzLCBzcGFkICkpIGRvCgoJCWRlY29kZXJbY2hhcmNvZGVdID0gYjY0Y29kZQoKCWVuZAoKCXJldHVybiBkZWNvZGVyCgplbmQKCgoKbG9jYWwgREVGQVVMVF9FTkNPREVSID0gYmFzZTY0Lm1ha2VlbmNvZGVyKCkKCmxvY2FsIERFRkFVTFRfREVDT0RFUiA9IGJhc2U2NC5tYWtlZGVjb2RlcigpCgoKCmxvY2FsIGNoYXIsIGNvbmNhdCA9IHN0cmluZy5jaGFyLCB0YWJsZS5jb25jYXQKCgoKZnVuY3Rpb24gYmFzZTY0LmVuY29kZSggc3RyLCBlbmNvZGVyLCB1c2VjYWNoaW5nICkKCgllbmNvZGVyID0gZW5jb2RlciBvciBERUZBVUxUX0VOQ09ERVIKCglsb2NhbCB0LCBrLCBuID0ge30sIDEsICNzdHIKCglsb2NhbCBsYXN0biA9IG4gJSAzCgoJbG9jYWwgY2FjaGUgPSB7fQoKCWZvciBpID0gMSwgbi1sYXN0biwgMyBkbwoKCQlsb2NhbCBhLCBiLCBjID0gc3RyOmJ5dGUoIGksIGkrMiApCgoJCWxvY2FsIHYgPSBhKjB4MTAwMDAgKyBiKjB4MTAwICsgYwoKCQlsb2NhbCBzCgoJCWlmIHVzZWNhY2hpbmcgdGhlbgoKCQkJcyA9IGNhY2hlW3ZdCgoJCQlpZiBub3QgcyB0aGVuCgoJCQkJcyA9IGNoYXIoZW5jb2RlcltleHRyYWN0KHYsMTgsNildLCBlbmNvZGVyW2V4dHJhY3QodiwxMiw2KV0sIGVuY29kZXJbZXh0cmFjdCh2LDYsNildLCBlbmNvZGVyW2V4dHJhY3QodiwwLDYpXSkKCgkJCQljYWNoZVt2XSA9IHMKCgkJCWVuZAoKCQllbHNlCgoJCQlzID0gY2hhcihlbmNvZGVyW2V4dHJhY3QodiwxOCw2KV0sIGVuY29kZXJbZXh0cmFjdCh2LDEyLDYpXSwgZW5jb2RlcltleHRyYWN0KHYsNiw2KV0sIGVuY29kZXJbZXh0cmFjdCh2LDAsNildKQoKCQllbmQKCgkJdFtrXSA9IHMKCgkJayA9IGsgKyAxCgoJZW5kCgoJaWYgbGFzdG4gPT0gMiB0aGVuCgoJCWxvY2FsIGEsIGIgPSBzdHI6Ynl0ZSggbi0xLCBuICkKCgkJbG9jYWwgdiA9IGEqMHgxMDAwMCArIGIqMHgxMDAKCgkJdFtrXSA9IGNoYXIoZW5jb2RlcltleHRyYWN0KHYsMTgsNildLCBlbmNvZGVyW2V4dHJhY3QodiwxMiw2KV0sIGVuY29kZXJbZXh0cmFjdCh2LDYsNildLCBlbmNvZGVyWzY0XSkKCgllbHNlaWYgbGFzdG4gPT0gMSB0aGVuCgoJCWxvY2FsIHYgPSBzdHI6Ynl0ZSggbiApKjB4MTAwMDAKCgkJdFtrXSA9IGNoYXIoZW5jb2RlcltleHRyYWN0KHYsMTgsNildLCBlbmNvZGVyW2V4dHJhY3QodiwxMiw2KV0sIGVuY29kZXJbNjRdLCBlbmNvZGVyWzY0XSkKCgllbmQKCglyZXR1cm4gY29uY2F0KCB0ICkKCmVuZAoKCgpmdW5jdGlvbiBiYXNlNjQuZGVjb2RlKCBiNjQsIGRlY29kZXIsIHVzZWNhY2hpbmcgKQoKCWRlY29kZXIgPSBkZWNvZGVyIG9yIERFRkFVTFRfREVDT0RFUgoKCWxvY2FsIHBhdHRlcm4gPSAnW14ldyUrJS8lPV0nCgoJaWYgZGVjb2RlciB0aGVuCgoJCWxvY2FsIHM2MiwgczYzCgoJCWZvciBjaGFyY29kZSwgYjY0Y29kZSBpbiBwYWlycyggZGVjb2RlciApIGRvCgoJCQlpZiBiNjRjb2RlID09IDYyIHRoZW4gczYyID0gY2hhcmNvZGUKCgkJCWVsc2VpZiBiNjRjb2RlID09IDYzIHRoZW4gczYzID0gY2hhcmNvZGUKCgkJCWVuZAoKCQllbmQKCgkJcGF0dGVybiA9ICgnW14lJXclJSVzJSUlcyUlPV0nKTpmb3JtYXQoIGNoYXIoczYyKSwgY2hhcihzNjMpICkKCgllbmQKCgliNjQgPSBiNjQ6Z3N1YiggcGF0dGVybiwgJycgKQoKCWxvY2FsIGNhY2hlID0gdXNlY2FjaGluZyBhbmQge30KCglsb2NhbCB0LCBrID0ge30sIDEKCglsb2NhbCBuID0gI2I2NAoKCWxvY2FsIHBhZGRpbmcgPSBiNjQ6c3ViKC0yKSA9PSAnPT0nIGFuZCAyIG9yIGI2NDpzdWIoLTEpID09ICc9JyBhbmQgMSBvciAwCgoJZm9yIGkgPSAxLCBwYWRkaW5nID4gMCBhbmQgbi00IG9yIG4sIDQgZG8KCgkJbG9jYWwgYSwgYiwgYywgZCA9IGI2NDpieXRlKCBpLCBpKzMgKQoKCQlsb2NhbCBzCgoJCWlmIHVzZWNhY2hpbmcgdGhlbgoKCQkJbG9jYWwgdjAgPSBhKjB4MTAwMDAwMCArIGIqMHgxMDAwMCArIGMqMHgxMDAgKyBkCgoJCQlzID0gY2FjaGVbdjBdCgoJCQlpZiBub3QgcyB0aGVuCgoJCQkJbG9jYWwgdiA9IGRlY29kZXJbYV0qMHg0MDAwMCArIGRlY29kZXJbYl0qMHgxMDAwICsgZGVjb2RlcltjXSoweDQwICsgZGVjb2RlcltkXQoKCQkJCXMgPSBjaGFyKCBleHRyYWN0KHYsMTYsOCksIGV4dHJhY3Qodiw4LDgpLCBleHRyYWN0KHYsMCw4KSkKCgkJCQljYWNoZVt2MF0gPSBzCgoJCQllbmQKCgkJZWxzZQoKCQkJbG9jYWwgdiA9IGRlY29kZXJbYV0qMHg0MDAwMCArIGRlY29kZXJbYl0qMHgxMDAwICsgZGVjb2RlcltjXSoweDQwICsgZGVjb2RlcltkXQoKCQkJcyA9IGNoYXIoIGV4dHJhY3QodiwxNiw4KSwgZXh0cmFjdCh2LDgsOCksIGV4dHJhY3QodiwwLDgpKQoKCQllbmQKCgkJdFtrXSA9IHMKCgkJayA9IGsgKyAxCgoJZW5kCgoJaWYgcGFkZGluZyA9PSAxIHRoZW4KCgkJbG9jYWwgYSwgYiwgYyA9IGI2NDpieXRlKCBuLTMsIG4tMSApCgoJCWxvY2FsIHYgPSBkZWNvZGVyW2FdKjB4NDAwMDAgKyBkZWNvZGVyW2JdKjB4MTAwMCArIGRlY29kZXJbY10qMHg0MAoKCQl0W2tdID0gY2hhciggZXh0cmFjdCh2LDE2LDgpLCBleHRyYWN0KHYsOCw4KSkKCgllbHNlaWYgcGFkZGluZyA9PSAyIHRoZW4KCgkJbG9jYWwgYSwgYiA9IGI2NDpieXRlKCBuLTMsIG4tMiApCgoJCWxvY2FsIHYgPSBkZWNvZGVyW2FdKjB4NDAwMDAgKyBkZWNvZGVyW2JdKjB4MTAwMAoKCQl0W2tdID0gY2hhciggZXh0cmFjdCh2LDE2LDgpKQoKCWVuZAoKCXJldHVybiBjb25jYXQoIHQgKQoKZW5kCgoKCnJldHVybiBiYXNlNjQKCgoKLS1bWwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpUaGlzIHNvZnR3YXJlIGlzIGF2YWlsYWJsZSB1bmRlciAyIGxpY2Vuc2VzIC0tIGNob29zZSB3aGljaGV2ZXIgeW91IHByZWZlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQUxURVJOQVRJVkUgQSAtIE1JVCBMaWNlbnNlCgpDb3B5cmlnaHQgKGMpIDIwMTggSWx5YSBLb2xiaW4KClBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YKCnRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluCgp0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvCgp1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcwoKb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvCgpzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgpUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKCmNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgoKSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCgpGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKCkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKCkxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCgpPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQoKU09GVFdBUkUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkFMVEVSTkFUSVZFIEIgLSBQdWJsaWMgRG9tYWluICh3d3cudW5saWNlbnNlLm9yZykKClRoaXMgaXMgZnJlZSBhbmQgdW5lbmN1bWJlcmVkIHNvZnR3YXJlIHJlbGVhc2VkIGludG8gdGhlIHB1YmxpYyBkb21haW4uCgpBbnlvbmUgaXMgZnJlZSB0byBjb3B5LCBtb2RpZnksIHB1Ymxpc2gsIHVzZSwgY29tcGlsZSwgc2VsbCwgb3IgZGlzdHJpYnV0ZSB0aGlzCgpzb2Z0d2FyZSwgZWl0aGVyIGluIHNvdXJjZSBjb2RlIGZvcm0gb3IgYXMgYSBjb21waWxlZCBiaW5hcnksIGZvciBhbnkgcHVycG9zZSwKCmNvbW1lcmNpYWwgb3Igbm9uLWNvbW1lcmNpYWwsIGFuZCBieSBhbnkgbWVhbnMuCgpJbiBqdXJpc2RpY3Rpb25zIHRoYXQgcmVjb2duaXplIGNvcHlyaWdodCBsYXdzLCB0aGUgYXV0aG9yIG9yIGF1dGhvcnMgb2YgdGhpcwoKc29mdHdhcmUgZGVkaWNhdGUgYW55IGFuZCBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZSBzb2Z0d2FyZSB0byB0aGUgcHVibGljCgpkb21haW4uIFdlIG1ha2UgdGhpcyBkZWRpY2F0aW9uIGZvciB0aGUgYmVuZWZpdCBvZiB0aGUgcHVibGljIGF0IGxhcmdlIGFuZCB0bwoKdGhlIGRldHJpbWVudCBvZiBvdXIgaGVpcnMgYW5kIHN1Y2Nlc3NvcnMuIFdlIGludGVuZCB0aGlzIGRlZGljYXRpb24gdG8gYmUgYW4KCm92ZXJ0IGFjdCBvZiByZWxpbnF1aXNobWVudCBpbiBwZXJwZXR1aXR5IG9mIGFsbCBwcmVzZW50IGFuZCBmdXR1cmUgcmlnaHRzIHRvCgp0aGlzIHNvZnR3YXJlIHVuZGVyIGNvcHlyaWdodCBsYXcuCgpUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgoKSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCgpGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKCkFVVEhPUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOCgpBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OCgpXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLS1dXQBBgJ8BC6OUAy0tW1stLQoKbHVhLWJpbnQgLSB2MC41LjEgLSAyNi9KdW4vMjAyMwoKRWR1YXJkbyBCYXJ0IC0gZWR1YjRydEBnbWFpbC5jb20KCmh0dHBzOi8vZ2l0aHViLmNvbS9lZHViYXJ0L2x1YS1iaW50CgoKClNtYWxsIHBvcnRhYmxlIGFyYml0cmFyeS1wcmVjaXNpb24gaW50ZWdlciBhcml0aG1ldGljIGxpYnJhcnkgaW4gcHVyZSBMdWEgZm9yCgpjb21wdXRpbmcgd2l0aCBsYXJnZSBpbnRlZ2Vycy4KCgoKRGlmZmVyZW50IGZyb20gbW9zdCBhcmJpdHJhcnktcHJlY2lzaW9uIGludGVnZXIgbGlicmFyaWVzIGluIHB1cmUgTHVhIG91dCB0aGVyZSB0aGlzIG9uZQoKdXNlcyBhbiBhcnJheSBvZiBsdWEgaW50ZWdlcnMgYXMgdW5kZXJseWluZyBkYXRhLXR5cGUgaW4gaXRzIGltcGxlbWVudGF0aW9uIGluc3RlYWQgb2YKCnVzaW5nIHN0cmluZ3Mgb3IgbGFyZ2UgdGFibGVzLCB0aGlzIG1ha2UgaXQgZWZmaWNpZW50IGZvciB3b3JraW5nIHdpdGggZml4ZWQgd2lkdGggaW50ZWdlcnMKCmFuZCB0byBtYWtlIGJpdHdpc2Ugb3BlcmF0aW9ucy4KCgoKIyMgRGVzaWduIGdvYWxzCgoKClRoZSBtYWluIGRlc2lnbiBnb2FsIG9mIHRoaXMgbGlicmFyeSBpcyB0byBiZSBzbWFsbCwgY29ycmVjdCwgc2VsZiBjb250YWluZWQgYW5kIHVzZSBmZXcKCnJlc291cmNlcyB3aGlsZSByZXRhaW5pbmcgYWNjZXB0YWJsZSBwZXJmb3JtYW5jZSBhbmQgZmVhdHVyZSBjb21wbGV0ZW5lc3MuCgoKClRoZSBsaWJyYXJ5IGlzIGRlc2lnbmVkIHRvIGZvbGxvdyByZWNlbnQgTHVhIGludGVnZXIgc2VtYW50aWNzLCB0aGlzIG1lYW5zIHRoYXQKCmludGVnZXIgb3ZlcmZsb3cgd2FycHMgYXJvdW5kLAoKc2lnbmVkIGludGVnZXJzIGFyZSBpbXBsZW1lbnRlZCB1c2luZyB0d28tY29tcGxlbWVudCBhcml0aG1ldGljIHJ1bGVzLAoKaW50ZWdlciBkaXZpc2lvbiBvcGVyYXRpb25zIHJvdW5kcyB0b3dhcmRzIG1pbnVzIGluZmluaXR5LAoKYW55IG1peGVkIG9wZXJhdGlvbnMgd2l0aCBmbG9hdCBudW1iZXJzIHByb21vdGVzIHRoZSB2YWx1ZSB0byBhIGZsb2F0LAoKYW5kIHRoZSB1c3VhbCBkaXZpc2lvbi9wb3dlciBvcGVyYXRpb24gYWx3YXlzIHByb21vdGVzIHRvIGZsb2F0cy4KCgoKVGhlIGxpYnJhcnkgaXMgZGVzaWduZWQgdG8gYmUgcG9zc2libGUgdG8gd29yayB3aXRoIG9ubHkgdW5zaWduZWQgaW50ZWdlciBhcml0aG1ldGljCgp3aGVuIHVzaW5nIHRoZSBwcm9wZXIgbWV0aG9kcy4KCgoKQWxsIHRoZSBsdWEgYXJpdGhtZXRpYyBvcGVyYXRvcnMgKCssIC0sICosIC8vLCAvLCAlKSBhbmQgYml0d2lzZSBvcGVyYXRvcnMgKCYsIHwsIH4sIDw8LCA+PikKCmFyZSBpbXBsZW1lbnRlZCBhcyBtZXRhbWV0aG9kcy4KCgoKVGhlIGludGVnZXIgc2l6ZSBtdXN0IGJlIGZpeGVkIGluIGFkdmFuY2UgYW5kIHRoZSBsaWJyYXJ5IGlzIGRlc2lnbmVkIHRvIGJlIG1vcmUgZWZmaWNpZW50IHdoZW4KCndvcmtpbmcgd2l0aCBpbnRlZ2VycyBvZiBzaXplcyBiZXR3ZWVuIDY0LTQwOTYgYml0cy4gSWYgeW91IG5lZWQgdG8gd29yayB3aXRoIHJlYWxseSBodWdlIG51bWJlcnMKCndpdGhvdXQgc2l6ZSByZXN0cmljdGlvbnMgdGhlbiB1c2UgYW5vdGhlciBsaWJyYXJ5LiBUaGlzIGNob2ljZSBoYXMgYmVlbiBtYWRlIHRvIGhhdmUgbW9yZSBlZmZpY2llbmN5CgppbiB0aGF0IHNwZWNpZmljIHNpemUgcmFuZ2UuCgoKCiMjIFVzYWdlCgoKCkZpcnN0IG9uIHlvdSBzaG91bGQgcmVxdWlyZSB0aGUgYmludCBmaWxlIGluY2x1ZGluZyBob3cgbWFueSBiaXRzIHRoZSBiaW50IG1vZHVsZSB3aWxsIHdvcmsgd2l0aCwKCmJ5IGNhbGxpbmcgdGhlIHJldHVybmVkIGZ1bmN0aW9uIGZyb20gdGhlIHJlcXVpcmUsIGZvciBleGFtcGxlOgoKCgpgYGBsdWEKCmxvY2FsIGJpbnQgPSByZXF1aXJlICdiaW50JygxMDI0KQoKYGBgCgoKCkZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGl0cyBhcmd1bWVudHMgc2VlIEB7bmV3bW9kdWxlfS4KClRoZW4gd2hlbiB5b3UgbmVlZCBjcmVhdGUgYSBiaW50LCB5b3UgY2FuIHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnM6CgoKCiogQHtiaW50LmZyb211aW50ZWdlcn0gKGNvbnZlcnQgZnJvbSBsdWEgaW50ZWdlcnMsIGJ1dCByZWFkIGFzIHVuc2lnbmVkIGludGVnZXIpCgoqIEB7YmludC5mcm9taW50ZWdlcn0gKGNvbnZlcnQgZnJvbSBsdWEgaW50ZWdlcnMsIHByZXNlcnZpbmcgdGhlIHNpZ24pCgoqIEB7YmludC5mcm9tYmFzZX0gKGNvbnZlcnQgZnJvbSBhcmJpdHJhcnkgYmFzZXMsIGxpa2UgaGV4YWRlY2ltYWwpCgoqIEB7YmludC5mcm9tc3RyaW5nfSAoY29udmVydCBmcm9tIGFyYml0cmFyeSBzdHJpbmcsIHN1cHBvcnQgYmluYXJ5L2hleGFkZWNpbWFsL2RlY2ltYWwpCgoqIEB7YmludC50cnVuY30gKGNvbnZlcnQgZnJvbSBsdWEgbnVtYmVycywgdHJ1bmNhdGluZyB0aGUgZnJhY3Rpb25hbCBwYXJ0KQoKKiBAe2JpbnQubmV3fSAoY29udmVydCBmcm9tIGFueXRoaW5nLCBhc3NlcnRzIG9uIGludmFsaWQgaW50ZWdlcnMpCgoqIEB7YmludC50b2JpbnR9IChjb252ZXJ0IGZyb20gYW55dGhpbmcsIHJldHVybnMgbmlsIG9uIGludmFsaWQgaW50ZWdlcnMpCgoqIEB7YmludC5wYXJzZX0gKGNvbnZlcnQgZnJvbSBhbnl0aGluZywgcmV0dXJucyBhIGx1YSBudW1iZXIgYXMgZmFsbGJhY2spCgoqIEB7YmludC56ZXJvfQoKKiBAe2JpbnQub25lfQoKKiBgYmludGAKCgoKWW91IGNhbiBhbHNvIGNhbGwgYGJpbnRgIGFzIGl0IGlzIGFuIGFsaWFzIHRvIGBiaW50Lm5ld2AuCgpJbiBkb3VidCB1c2UgQHtiaW50Lm5ld30gdG8gY3JlYXRlIGEgbmV3IGJpbnQuCgoKClRoZW4geW91IGNhbiB1c2UgYWxsIHRoZSB1c3VhbCBsdWEgbnVtZXJpYyBvcGVyYXRpb25zIG9uIGl0LAoKYWxsIHRoZSBhcml0aG1ldGljIG1ldGFtZXRob2RzIGFyZSBpbXBsZW1lbnRlZC4KCldoZW4geW91IGFyZSBkb25lIGNvbXB1dGluZyBhbmQgbmVlZCB0byBnZXQgdGhlIHJlc3VsdCwKCmdldCB0aGUgb3V0cHV0IGZyb20gb25lIG9mIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zOgoKCgoqIEB7YmludC50b3VpbnRlZ2VyfSAoY29udmVydCB0byBhIGx1YSBpbnRlZ2VyLCB3cmFwcyBhcm91bmQgYXMgYW4gdW5zaWduZWQgaW50ZWdlcikKCiogQHtiaW50LnRvaW50ZWdlcn0gKGNvbnZlcnQgdG8gYSBsdWEgaW50ZWdlciwgd3JhcHMgYXJvdW5kLCBwcmVzZXJ2ZXMgdGhlIHNpZ24pCgoqIEB7YmludC50b251bWJlcn0gKGNvbnZlcnQgdG8gbHVhIGZsb2F0LCBsb3NpbmcgcHJlY2lzaW9uKQoKKiBAe2JpbnQudG9iYXNlfSAoY29udmVydCB0byBhIHN0cmluZyBpbiBhbnkgYmFzZSkKCiogQHtiaW50Ll9fdG9zdHJpbmd9IChjb252ZXJ0IHRvIGEgc3RyaW5nIGluIGJhc2UgMTApCgoKClRvIG91dHB1dCBhIHZlcnkgbGFyZ2UgaW50ZWdlciB3aXRoIG5vIGxvc3MgeW91IHByb2JhYmx5IHdhbnQgdG8gdXNlIEB7YmludC50b2Jhc2V9CgpvciBjYWxsIGB0b3N0cmluZ2AgdG8gZ2V0IGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uLgoKCgojIyBQcmVjYXV0aW9ucwoKCgpBbGwgbGlicmFyeSBmdW5jdGlvbnMgY2FuIGJlIG1peGVkIHdpdGggbHVhIG51bWJlcnMsCgp0aGlzIG1ha2VzIGVhc3kgdG8gbWl4IG9wZXJhdGlvbnMgYmV0d2VlbiBiaW50cyBhbmQgbHVhIG51bWJlcnMsCgpob3dldmVyIHRoZSB1c2VyIHNob3VsZCB0YWtlIGNhcmUgaW4gc29tZSBzaXR1YXRpb25zOgoKCgoqIERvbid0IG1peCBpbnRlZ2VycyBhbmQgZmxvYXQgb3BlcmF0aW9ucyBpZiB5b3Ugd2FudCB0byB3b3JrIHdpdGggaW50ZWdlcnMgb25seS4KCiogRG9uJ3QgdXNlIHRoZSByZWd1bGFyIGVxdWFsIG9wZXJhdG9yICgnPT0nKSB0byBjb21wYXJlIHZhbHVlcyBmcm9tIHRoaXMgbGlicmFyeSwKCnVubGVzcyB5b3Uga25vdyBpbiBhZHZhbmNlIHRoYXQgYm90aCB2YWx1ZXMgYXJlIG9mIHRoZSBzYW1lIHByaW1pdGl2ZSB0eXBlLAoKb3RoZXJ3aXNlIGl0IHdpbGwgYWx3YXlzIHJldHVybiBmYWxzZSwgdXNlIEB7YmludC5lcX0gdG8gYmUgc2FmZS4KCiogRG9uJ3QgcGFzcyBmcmFjdGlvbmFsIG51bWJlcnMgdG8gZnVuY3Rpb25zIHRoYXQgYW4gaW50ZWdlciBpcyBleHBlY3RlZAoKKiBEb24ndCBtaXggb3BlcmF0aW9ucyBiZXR3ZWVuIGJpbnQgY2xhc3NlcyB3aXRoIGRpZmZlcmVudCBzaXplcyBhcyB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQsIHRoaXMKCndpbGwgdGhyb3cgYXNzZXJ0aW9ucy4KCiogUmVtZW1iZXIgdGhhdCBjYXN0aW5nIGJhY2sgdG8gbHVhIGludGVnZXJzIG9yIG51bWJlcnMgcHJlY2lzaW9uIGNhbiBiZSBsb3N0LgoKKiBGb3IgZGl2aWRpbmcgd2hpbGUgcHJlc2VydmluZyBpbnRlZ2VycyB1c2UgdGhlIEB7YmludC5fX2lkaXZ9ICh0aGUgJy8vJyBvcGVyYXRvcikuCgoqIEZvciBkb2luZyBwb3dlciBvcGVyYXRpb24gcHJlc2VydmluZyBpbnRlZ2VycyB1c2UgdGhlIEB7YmludC5pcG93fSBmdW5jdGlvbi4KCiogQ29uZmlndXJlIHRoZSBwcm9wZXIgaW50ZWdlciBzaXplIHlvdSBpbnRlbmQgdG8gd29yayB3aXRoLCBvdGhlcndpc2UgbGFyZ2UgaW50ZWdlcnMgbWF5IHdyYXAgYXJvdW5kLgoKCgpdXQoKCgotLSBSZXR1cm5zIG51bWJlciBvZiBiaXRzIG9mIHRoZSBpbnRlcm5hbCBsdWEgaW50ZWdlciB0eXBlLgoKbG9jYWwgZnVuY3Rpb24gbHVhaW50ZWdlcl9iaXRzaXplKCkKCiAgbG9jYWwgbiwgaSA9IC0xLCAwCgogIHJlcGVhdAoKICAgIG4sIGkgPSBuID4+IDE2LCBpICsgMTYKCiAgdW50aWwgbj09MAoKICByZXR1cm4gaQoKZW5kCgoKCmxvY2FsIG1hdGhfdHlwZSA9IG1hdGgudHlwZQoKbG9jYWwgbWF0aF9mbG9vciA9IG1hdGguZmxvb3IKCmxvY2FsIG1hdGhfYWJzID0gbWF0aC5hYnMKCmxvY2FsIG1hdGhfY2VpbCA9IG1hdGguY2VpbAoKbG9jYWwgbWF0aF9tb2RmID0gbWF0aC5tb2RmCgpsb2NhbCBtYXRoX21pbmludGVnZXIgPSBtYXRoLm1pbmludGVnZXIKCmxvY2FsIG1hdGhfbWF4aW50ZWdlciA9IG1hdGgubWF4aW50ZWdlcgoKbG9jYWwgbWF0aF9tYXggPSBtYXRoLm1heAoKbG9jYWwgbWF0aF9taW4gPSBtYXRoLm1pbgoKbG9jYWwgc3RyaW5nX2Zvcm1hdCA9IHN0cmluZy5mb3JtYXQKCmxvY2FsIHRhYmxlX2luc2VydCA9IHRhYmxlLmluc2VydAoKbG9jYWwgdGFibGVfY29uY2F0ID0gdGFibGUuY29uY2F0Cgpsb2NhbCB0YWJsZV91bnBhY2sgPSB0YWJsZS51bnBhY2sKCgoKbG9jYWwgbWVtbyA9IHt9CgoKCi0tLSBDcmVhdGUgYSBuZXcgYmludCBtb2R1bGUgcmVwcmVzZW50aW5nIGludGVnZXJzIG9mIHRoZSBkZXNpcmVkIGJpdCBzaXplLgoKLS0gVGhpcyBpcyB0aGUgcmV0dXJuZWQgZnVuY3Rpb24gd2hlbiBgcmVxdWlyZSAnYmludCdgIGlzIGNhbGxlZC4KCi0tIEBmdW5jdGlvbiBuZXdtb2R1bGUKCi0tIEBwYXJhbSBiaXRzIE51bWJlciBvZiBiaXRzIGZvciB0aGUgaW50ZWdlciByZXByZXNlbnRhdGlvbiwgbXVzdCBiZSBtdWx0aXBsZSBvZiB3b3JkYml0cyBhbmQKCi0tIGF0IGxlYXN0IDY0LgoKLS0gQHBhcmFtW29wdF0gd29yZGJpdHMgTnVtYmVyIG9mIHRoZSBiaXRzIGZvciB0aGUgaW50ZXJuYWwgd29yZCwKCi0tIGRlZmF1bHRzIHRvIGhhbGYgb2YgTHVhJ3MgaW50ZWdlciBzaXplLgoKbG9jYWwgZnVuY3Rpb24gbmV3bW9kdWxlKGJpdHMsIHdvcmRiaXRzKQoKCgpsb2NhbCBpbnRiaXRzID0gbHVhaW50ZWdlcl9iaXRzaXplKCkKCmJpdHMgPSBiaXRzIG9yIDI1NgoKd29yZGJpdHMgPSB3b3JkYml0cyBvciAoaW50Yml0cyAvLyAyKQoKCgotLSBNZW1vaXplIGJpbnQgbW9kdWxlcwoKbG9jYWwgbWVtb2luZGV4ID0gYml0cyAqIDY0ICsgd29yZGJpdHMKCmlmIG1lbW9bbWVtb2luZGV4XSB0aGVuCgogIHJldHVybiBtZW1vW21lbW9pbmRleF0KCmVuZAoKCgotLSBWYWxpZGF0ZQoKYXNzZXJ0KGJpdHMgJSB3b3JkYml0cyA9PSAwLCAnYml0c2l6ZSBpcyBub3QgbXVsdGlwbGUgb2Ygd29yZCBiaXRzaXplJykKCmFzc2VydCgyKndvcmRiaXRzIDw9IGludGJpdHMsICd3b3JkIGJpdHNpemUgbXVzdCBiZSBoYWxmIG9mIHRoZSBsdWEgaW50ZWdlciBiaXRzaXplJykKCmFzc2VydChiaXRzID49IDY0LCAnYml0c2l6ZSBtdXN0IGJlID49IDY0JykKCmFzc2VydCh3b3JkYml0cyA+PSA4LCAnd29yZGJpdHMgbXVzdCBiZSBhdCBsZWFzdCA4JykKCmFzc2VydChiaXRzICUgOCA9PSAwLCAnYml0c2l6ZSBtdXN0IGJlIG11bHRpcGxlIG9mIDgnKQoKCgotLSBDcmVhdGUgYmludCBtb2R1bGUKCmxvY2FsIGJpbnQgPSB7fQoKYmludC5fX2luZGV4ID0gYmludAoKCgotLS0gTnVtYmVyIG9mIGJpdHMgcmVwcmVzZW50aW5nIGEgYmludCBpbnN0YW5jZS4KCmJpbnQuYml0cyA9IGJpdHMKCgoKLS0gQ29uc3RhbnRzIHVzZWQgaW50ZXJuYWxseQoKbG9jYWwgQklOVF9CSVRTID0gYml0cwoKbG9jYWwgQklOVF9CWVRFUyA9IGJpdHMgLy8gOAoKbG9jYWwgQklOVF9XT1JEQklUUyA9IHdvcmRiaXRzCgpsb2NhbCBCSU5UX1NJWkUgPSBCSU5UX0JJVFMgLy8gQklOVF9XT1JEQklUUwoKbG9jYWwgQklOVF9XT1JETUFYID0gKDEgPDwgQklOVF9XT1JEQklUUykgLSAxCgpsb2NhbCBCSU5UX1dPUkRNU0IgPSAoMSA8PCAoQklOVF9XT1JEQklUUyAtIDEpKQoKbG9jYWwgQklOVF9MRVBBQ0tGTVQgPSAnPCcuLignSScuLih3b3JkYml0cyAvLyA4KSk6cmVwKEJJTlRfU0laRSkKCmxvY2FsIEJJTlRfTUFUSE1JTklOVEVHRVIsIEJJTlRfTUFUSE1BWElOVEVHRVIKCmxvY2FsIEJJTlRfTUlOSU5URUdFUgoKCgotLS0gQ3JlYXRlIGEgbmV3IGJpbnQgd2l0aCAwIHZhbHVlLgoKZnVuY3Rpb24gYmludC56ZXJvKCkKCiAgbG9jYWwgeCA9IHNldG1ldGF0YWJsZSh7fSwgYmludCkKCiAgZm9yIGk9MSxCSU5UX1NJWkUgZG8KCiAgICB4W2ldID0gMAoKICBlbmQKCiAgcmV0dXJuIHgKCmVuZAoKbG9jYWwgYmludF96ZXJvID0gYmludC56ZXJvCgoKCi0tLSBDcmVhdGUgYSBuZXcgYmludCB3aXRoIDEgdmFsdWUuCgpmdW5jdGlvbiBiaW50Lm9uZSgpCgogIGxvY2FsIHggPSBzZXRtZXRhdGFibGUoe30sIGJpbnQpCgogIHhbMV0gPSAxCgogIGZvciBpPTIsQklOVF9TSVpFIGRvCgogICAgeFtpXSA9IDAKCiAgZW5kCgogIHJldHVybiB4CgplbmQKCmxvY2FsIGJpbnRfb25lID0gYmludC5vbmUKCgoKLS0gQ29udmVydCBhIHZhbHVlIHRvIGEgbHVhIGludGVnZXIgd2l0aG91dCBsb3NpbmcgcHJlY2lzaW9uLgoKbG9jYWwgZnVuY3Rpb24gdG9pbnRlZ2VyKHgpCgogIHggPSB0b251bWJlcih4KQoKICBsb2NhbCB0eSA9IG1hdGhfdHlwZSh4KQoKICBpZiB0eSA9PSAnZmxvYXQnIHRoZW4KCiAgICBsb2NhbCBmbG9vcnggPSBtYXRoX2Zsb29yKHgpCgogICAgaWYgZmxvb3J4ID09IHggdGhlbgoKICAgICAgeCA9IGZsb29yeAoKICAgICAgdHkgPSBtYXRoX3R5cGUoeCkKCiAgICBlbmQKCiAgZW5kCgogIGlmIHR5ID09ICdpbnRlZ2VyJyB0aGVuCgogICAgcmV0dXJuIHgKCiAgZW5kCgplbmQKCgoKLS0tIENyZWF0ZSBhIGJpbnQgZnJvbSBhbiB1bnNpZ25lZCBpbnRlZ2VyLgoKLS0gVHJlYXRzIHNpZ25lZCBpbnRlZ2VycyBhcyBhbiB1bnNpZ25lZCBpbnRlZ2VyLgoKLS0gQHBhcmFtIHggQSB2YWx1ZSB0byBpbml0aWFsaXplIGZyb20gY29udmVydGlibGUgdG8gYSBsdWEgaW50ZWdlci4KCi0tIEByZXR1cm4gQSBuZXcgYmludCBvciBuaWwgaW4gY2FzZSB0aGUgaW5wdXQgY2Fubm90IGJlIHJlcHJlc2VudGVkIGJ5IGFuIGludGVnZXIuCgotLSBAc2VlIGJpbnQuZnJvbWludGVnZXIKCmZ1bmN0aW9uIGJpbnQuZnJvbXVpbnRlZ2VyKHgpCgogIHggPSB0b2ludGVnZXIoeCkKCiAgaWYgeCB0aGVuCgogICAgaWYgeCA9PSAxIHRoZW4KCiAgICAgIHJldHVybiBiaW50X29uZSgpCgogICAgZWxzZWlmIHggPT0gMCB0aGVuCgogICAgICByZXR1cm4gYmludF96ZXJvKCkKCiAgICBlbmQKCiAgICBsb2NhbCBuID0gc2V0bWV0YXRhYmxlKHt9LCBiaW50KQoKICAgIGZvciBpPTEsQklOVF9TSVpFIGRvCgogICAgICBuW2ldID0geCAmIEJJTlRfV09SRE1BWAoKICAgICAgeCA9IHggPj4gQklOVF9XT1JEQklUUwoKICAgIGVuZAoKICAgIHJldHVybiBuCgogIGVuZAoKZW5kCgpsb2NhbCBiaW50X2Zyb211aW50ZWdlciA9IGJpbnQuZnJvbXVpbnRlZ2VyCgoKCi0tLSBDcmVhdGUgYSBiaW50IGZyb20gYSBzaWduZWQgaW50ZWdlci4KCi0tIEBwYXJhbSB4IEEgdmFsdWUgdG8gaW5pdGlhbGl6ZSBmcm9tIGNvbnZlcnRpYmxlIHRvIGEgbHVhIGludGVnZXIuCgotLSBAcmV0dXJuIEEgbmV3IGJpbnQgb3IgbmlsIGluIGNhc2UgdGhlIGlucHV0IGNhbm5vdCBiZSByZXByZXNlbnRlZCBieSBhbiBpbnRlZ2VyLgoKLS0gQHNlZSBiaW50LmZyb211aW50ZWdlcgoKZnVuY3Rpb24gYmludC5mcm9taW50ZWdlcih4KQoKICB4ID0gdG9pbnRlZ2VyKHgpCgogIGlmIHggdGhlbgoKICAgIGlmIHggPT0gMSB0aGVuCgogICAgICByZXR1cm4gYmludF9vbmUoKQoKICAgIGVsc2VpZiB4ID09IDAgdGhlbgoKICAgICAgcmV0dXJuIGJpbnRfemVybygpCgogICAgZW5kCgogICAgbG9jYWwgbmVnID0gZmFsc2UKCiAgICBpZiB4IDwgMCB0aGVuCgogICAgICB4ID0gbWF0aF9hYnMoeCkKCiAgICAgIG5lZyA9IHRydWUKCiAgICBlbmQKCiAgICBsb2NhbCBuID0gc2V0bWV0YXRhYmxlKHt9LCBiaW50KQoKICAgIGZvciBpPTEsQklOVF9TSVpFIGRvCgogICAgICBuW2ldID0geCAmIEJJTlRfV09SRE1BWAoKICAgICAgeCA9IHggPj4gQklOVF9XT1JEQklUUwoKICAgIGVuZAoKICAgIGlmIG5lZyB0aGVuCgogICAgICBuOl91bm0oKQoKICAgIGVuZAoKICAgIHJldHVybiBuCgogIGVuZAoKZW5kCgpsb2NhbCBiaW50X2Zyb21pbnRlZ2VyID0gYmludC5mcm9taW50ZWdlcgoKCgpsb2NhbCBiYXNlc3RlcHMgPSB7fQoKCgotLSBDb21wdXRlIHRoZSByZWFkIHN0ZXAgZm9yIGZyb21iYXNlIGZ1bmN0aW9uCgpsb2NhbCBmdW5jdGlvbiBnZXRiYXNlc3RlcChiYXNlKQoKICBsb2NhbCBzdGVwID0gYmFzZXN0ZXBzW2Jhc2VdCgogIGlmIHN0ZXAgdGhlbgoKICAgIHJldHVybiBzdGVwCgogIGVuZAoKICBzdGVwID0gMAoKICBsb2NhbCBkbWF4ID0gMQoKICBsb2NhbCBsaW1pdCA9IG1hdGhfbWF4aW50ZWdlciAvLyBiYXNlCgogIHJlcGVhdAoKICAgIHN0ZXAgPSBzdGVwICsgMQoKICAgIGRtYXggPSBkbWF4ICogYmFzZQoKICB1bnRpbCBkbWF4ID49IGxpbWl0CgogIGJhc2VzdGVwc1tiYXNlXSA9IHN0ZXAKCiAgcmV0dXJuIHN0ZXAKCmVuZAoKCgotLSBDb21wdXRlIHBvd2VyIHdpdGggbHVhIGludGVnZXJzLgoKbG9jYWwgZnVuY3Rpb24gaXBvdyh5LCB4LCBuKQoKICBpZiBuID09IDEgdGhlbgoKICAgIHJldHVybiB5ICogeAoKICBlbHNlaWYgbiAmIDEgPT0gMCB0aGVuIC0tZXZlbgoKICAgIHJldHVybiBpcG93KHksIHggKiB4LCBuIC8vIDIpCgogIGVuZAoKICByZXR1cm4gaXBvdyh4ICogeSwgeCAqIHgsIChuLTEpIC8vIDIpCgplbmQKCgoKLS0tIENyZWF0ZSBhIGJpbnQgZnJvbSBhIHN0cmluZyBvZiB0aGUgZGVzaXJlZCBiYXNlLgoKLS0gQHBhcmFtIHMgVGhlIHN0cmluZyB0byBiZSBjb252ZXJ0ZWQgZnJvbSwKCi0tIG11c3QgaGF2ZSBvbmx5IGFscGhhbnVtZXJpYyBhbmQgJystJyBjaGFyYWN0ZXJzLgoKLS0gQHBhcmFtW29wdF0gYmFzZSBCYXNlIHRoYXQgdGhlIG51bWJlciBpcyByZXByZXNlbnRlZCwgZGVmYXVsdHMgdG8gMTAuCgotLSBNdXN0IGJlIGF0IGxlYXN0IDIgYW5kIGF0IG1vc3QgMzYuCgotLSBAcmV0dXJuIEEgbmV3IGJpbnQgb3IgbmlsIGluIGNhc2UgdGhlIGNvbnZlcnNpb24gZmFpbGVkLgoKZnVuY3Rpb24gYmludC5mcm9tYmFzZShzLCBiYXNlKQoKICBpZiB0eXBlKHMpIH49ICdzdHJpbmcnIHRoZW4KCiAgICByZXR1cm4KCiAgZW5kCgogIGJhc2UgPSBiYXNlIG9yIDEwCgogIGlmIG5vdCAoYmFzZSA+PSAyIGFuZCBiYXNlIDw9IDM2KSB0aGVuCgogICAgLS0gbnVtYmVyIGJhc2UgaXMgdG9vIGxhcmdlCgogICAgcmV0dXJuCgogIGVuZAoKICBsb2NhbCBzdGVwID0gZ2V0YmFzZXN0ZXAoYmFzZSkKCiAgaWYgI3MgPCBzdGVwIHRoZW4KCiAgICAtLSBzdHJpbmcgaXMgc21hbGwsIHVzZSB0b251bWJlciAoZmFzdGVyKQoKICAgIHJldHVybiBiaW50X2Zyb21pbnRlZ2VyKHRvbnVtYmVyKHMsIGJhc2UpKQoKICBlbmQKCiAgbG9jYWwgc2lnbiwgaW50ID0gczpsb3dlcigpOm1hdGNoKCdeKFsrLV0/KSgldyspJCcpCgogIGlmIG5vdCAoc2lnbiBhbmQgaW50KSB0aGVuCgogICAgLS0gaW52YWxpZCBpbnRlZ2VyIHN0cmluZyByZXByZXNlbnRhdGlvbgoKICAgIHJldHVybgoKICBlbmQKCiAgbG9jYWwgbiA9IGJpbnRfemVybygpCgogIGZvciBpPTEsI2ludCxzdGVwIGRvCgogICAgbG9jYWwgcGFydCA9IGludDpzdWIoaSxpK3N0ZXAtMSkKCiAgICBsb2NhbCBkID0gdG9udW1iZXIocGFydCwgYmFzZSkKCiAgICBpZiBub3QgZCB0aGVuCgogICAgICAtLSBpbnZhbGlkIGludGVnZXIgc3RyaW5nIHJlcHJlc2VudGF0aW9uCgogICAgICByZXR1cm4KCiAgICBlbmQKCiAgICBpZiBpID4gMSB0aGVuCgogICAgICBuID0gbiAqIGlwb3coMSwgYmFzZSwgI3BhcnQpCgogICAgZW5kCgogICAgaWYgZCB+PSAwIHRoZW4KCiAgICAgIG46X2FkZChkKQoKICAgIGVuZAoKICBlbmQKCiAgaWYgc2lnbiA9PSAnLScgdGhlbgoKICAgIG46X3VubSgpCgogIGVuZAoKICByZXR1cm4gbgoKZW5kCgpsb2NhbCBiaW50X2Zyb21iYXNlID0gYmludC5mcm9tYmFzZQoKCgotLS0gQ3JlYXRlIGEgbmV3IGJpbnQgZnJvbSBhIHN0cmluZy4KCi0tIFRoZSBzdHJpbmcgY2FuIGJ5IGEgZGVjaW1hbCBudW1iZXIsIGJpbmFyeSBudW1iZXIgcHJlZml4ZWQgd2l0aCAnMGInIG9yIGhleGFkZWNpbWFsIG51bWJlciBwcmVmaXhlZCB3aXRoICcweCcuCgotLSBAcGFyYW0gcyBBIHN0cmluZyBjb252ZXJ0aWJsZSB0byBhIGJpbnQuCgotLSBAcmV0dXJuIEEgbmV3IGJpbnQgb3IgbmlsIGluIGNhc2UgdGhlIGNvbnZlcnNpb24gZmFpbGVkLgoKLS0gQHNlZSBiaW50LmZyb21iYXNlCgpmdW5jdGlvbiBiaW50LmZyb21zdHJpbmcocykKCiAgaWYgdHlwZShzKSB+PSAnc3RyaW5nJyB0aGVuCgogICAgcmV0dXJuCgogIGVuZAoKICBpZiBzOmZpbmQoJ15bKy1dP1swLTldKyQnKSB0aGVuCgogICAgcmV0dXJuIGJpbnRfZnJvbWJhc2UocywgMTApCgogIGVsc2VpZiBzOmZpbmQoJ15bKy1dPzBbeFhdWzAtOWEtZkEtRl0rJCcpIHRoZW4KCiAgICByZXR1cm4gYmludF9mcm9tYmFzZShzOmdzdWIoJzBbeFhdJywgJycsIDEpLCAxNikKCiAgZWxzZWlmIHM6ZmluZCgnXlsrLV0/MFtiQl1bMDFdKyQnKSB0aGVuCgogICAgcmV0dXJuIGJpbnRfZnJvbWJhc2Uoczpnc3ViKCcwW2JCXScsICcnLCAxKSwgMikKCiAgZW5kCgplbmQKCmxvY2FsIGJpbnRfZnJvbXN0cmluZyA9IGJpbnQuZnJvbXN0cmluZwoKCgotLS0gQ3JlYXRlIGEgbmV3IGJpbnQgZnJvbSBhIGJ1ZmZlciBvZiBsaXR0bGUtZW5kaWFuIGJ5dGVzLgoKLS0gQHBhcmFtIGJ1ZmZlciBCdWZmZXIgb2YgYnl0ZXMsIGV4dHJhIGJ5dGVzIGFyZSB0cmltbWVkIGZyb20gdGhlIHJpZ2h0LCBtaXNzaW5nIGJ5dGVzIGFyZSBwYWRkZWQgdG8gdGhlIHJpZ2h0LgoKLS0gQHJhaXNlIEFuIGFzc2VydCBpcyB0aHJvd24gaW4gY2FzZSBidWZmZXIgaXMgbm90IGFuIHN0cmluZy4KCi0tIEByZXR1cm4gQSBiaW50LgoKZnVuY3Rpb24gYmludC5mcm9tbGUoYnVmZmVyKQoKICBhc3NlcnQodHlwZShidWZmZXIpID09ICdzdHJpbmcnLCAnYnVmZmVyIGlzIG5vdCBhIHN0cmluZycpCgogIGlmICNidWZmZXIgPiBCSU5UX0JZVEVTIHRoZW4gLS0gdHJpbSBleHRyYSBieXRlcyBmcm9tIHRoZSByaWdodAoKICAgIGJ1ZmZlciA9IGJ1ZmZlcjpzdWIoMSwgQklOVF9CWVRFUykKCiAgZWxzZWlmICNidWZmZXIgPCBCSU5UX0JZVEVTIHRoZW4gLS0gYWRkIG1pc3NpbmcgYnl0ZXMgdG8gdGhlIHJpZ2h0CgogICAgYnVmZmVyID0gYnVmZmVyLi4oJ1x4MDAnKTpyZXAoQklOVF9CWVRFUyAtICNidWZmZXIpCgogIGVuZAoKICByZXR1cm4gc2V0bWV0YXRhYmxlKHtCSU5UX0xFUEFDS0ZNVDp1bnBhY2soYnVmZmVyKX0sIGJpbnQpCgplbmQKCgoKLS0tIENyZWF0ZSBhIG5ldyBiaW50IGZyb20gYSBidWZmZXIgb2YgYmlnLWVuZGlhbiBieXRlcy4KCi0tIEBwYXJhbSBidWZmZXIgQnVmZmVyIG9mIGJ5dGVzLCBleHRyYSBieXRlcyBhcmUgdHJpbW1lZCBmcm9tIHRoZSBsZWZ0LCBtaXNzaW5nIGJ5dGVzIGFyZSBwYWRkZWQgdG8gdGhlIGxlZnQuCgotLSBAcmFpc2UgQW4gYXNzZXJ0IGlzIHRocm93biBpbiBjYXNlIGJ1ZmZlciBpcyBub3QgYW4gc3RyaW5nLgoKLS0gQHJldHVybiBBIGJpbnQuCgpmdW5jdGlvbiBiaW50LmZyb21iZShidWZmZXIpCgogIGFzc2VydCh0eXBlKGJ1ZmZlcikgPT0gJ3N0cmluZycsICdidWZmZXIgaXMgbm90IGEgc3RyaW5nJykKCiAgaWYgI2J1ZmZlciA+IEJJTlRfQllURVMgdGhlbiAtLSB0cmltIGV4dHJhIGJ5dGVzIGZyb20gdGhlIGxlZnQKCiAgICBidWZmZXIgPSBidWZmZXI6c3ViKC1CSU5UX0JZVEVTLCAjYnVmZmVyKQoKICBlbHNlaWYgI2J1ZmZlciA8IEJJTlRfQllURVMgdGhlbiAtLSBhZGQgbWlzc2luZyBieXRlcyB0byB0aGUgbGVmdAoKICAgIGJ1ZmZlciA9ICgnXHgwMCcpOnJlcChCSU5UX0JZVEVTIC0gI2J1ZmZlcikuLmJ1ZmZlcgoKICBlbmQKCiAgcmV0dXJuIHNldG1ldGF0YWJsZSh7QklOVF9MRVBBQ0tGTVQ6dW5wYWNrKGJ1ZmZlcjpyZXZlcnNlKCkpfSwgYmludCkKCmVuZAoKCgotLS0gQ3JlYXRlIGEgbmV3IGJpbnQgZnJvbSBhIHZhbHVlLgoKLS0gQHBhcmFtIHggQSB2YWx1ZSBjb252ZXJ0aWJsZSB0byBhIGJpbnQgKHN0cmluZywgbnVtYmVyIG9yIGFub3RoZXIgYmludCkuCgotLSBAcmV0dXJuIEEgbmV3IGJpbnQsIGd1YXJhbnRlZWQgdG8gYmUgYSBuZXcgcmVmZXJlbmNlIGluIGNhc2UgbmVlZGVkLgoKLS0gQHJhaXNlIEFuIGFzc2VydCBpcyB0aHJvd24gaW4gY2FzZSB4IGlzIG5vdCBjb252ZXJ0aWJsZSB0byBhIGJpbnQuCgotLSBAc2VlIGJpbnQudG9iaW50CgotLSBAc2VlIGJpbnQucGFyc2UKCmZ1bmN0aW9uIGJpbnQubmV3KHgpCgogIGlmIGdldG1ldGF0YWJsZSh4KSB+PSBiaW50IHRoZW4KCiAgICBsb2NhbCB0eSA9IHR5cGUoeCkKCiAgICBpZiB0eSA9PSAnbnVtYmVyJyB0aGVuCgogICAgICB4ID0gYmludF9mcm9taW50ZWdlcih4KQoKICAgIGVsc2VpZiB0eSA9PSAnc3RyaW5nJyB0aGVuCgogICAgICB4ID0gYmludF9mcm9tc3RyaW5nKHgpCgogICAgZW5kCgogICAgYXNzZXJ0KHgsICd2YWx1ZSBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgYnkgYSBiaW50JykKCiAgICByZXR1cm4geAoKICBlbmQKCiAgLS0gcmV0dXJuIGEgY2xvbmUKCiAgbG9jYWwgbiA9IHNldG1ldGF0YWJsZSh7fSwgYmludCkKCiAgZm9yIGk9MSxCSU5UX1NJWkUgZG8KCiAgICBuW2ldID0geFtpXQoKICBlbmQKCiAgcmV0dXJuIG4KCmVuZAoKbG9jYWwgYmludF9uZXcgPSBiaW50Lm5ldwoKCgotLS0gQ29udmVydCBhIHZhbHVlIHRvIGEgYmludCBpZiBwb3NzaWJsZS4KCi0tIEBwYXJhbSB4IEEgdmFsdWUgdG8gYmUgY29udmVydGVkIChzdHJpbmcsIG51bWJlciBvciBhbm90aGVyIGJpbnQpLgoKLS0gQHBhcmFtW29wdF0gY2xvbmUgQSBib29sZWFuIHRoYXQgdGVsbHMgaWYgYSBuZXcgYmludCByZWZlcmVuY2Ugc2hvdWxkIGJlIHJldHVybmVkLgoKLS0gRGVmYXVsdHMgdG8gZmFsc2UuCgotLSBAcmV0dXJuIEEgYmludCBvciBuaWwgaW4gY2FzZSB0aGUgY29udmVyc2lvbiBmYWlsZWQuCgotLSBAc2VlIGJpbnQubmV3CgotLSBAc2VlIGJpbnQucGFyc2UKCmZ1bmN0aW9uIGJpbnQudG9iaW50KHgsIGNsb25lKQoKICBpZiBnZXRtZXRhdGFibGUoeCkgPT0gYmludCB0aGVuCgogICAgaWYgbm90IGNsb25lIHRoZW4KCiAgICAgIHJldHVybiB4CgogICAgZW5kCgogICAgLS0gcmV0dXJuIGEgY2xvbmUKCiAgICBsb2NhbCBuID0gc2V0bWV0YXRhYmxlKHt9LCBiaW50KQoKICAgIGZvciBpPTEsQklOVF9TSVpFIGRvCgogICAgICBuW2ldID0geFtpXQoKICAgIGVuZAoKICAgIHJldHVybiBuCgogIGVuZAoKICBsb2NhbCB0eSA9IHR5cGUoeCkKCiAgaWYgdHkgPT0gJ251bWJlcicgdGhlbgoKICAgIHJldHVybiBiaW50X2Zyb21pbnRlZ2VyKHgpCgogIGVsc2VpZiB0eSA9PSAnc3RyaW5nJyB0aGVuCgogICAgcmV0dXJuIGJpbnRfZnJvbXN0cmluZyh4KQoKICBlbmQKCmVuZAoKbG9jYWwgdG9iaW50ID0gYmludC50b2JpbnQKCgoKLS0tIENvbnZlcnQgYSB2YWx1ZSB0byBhIGJpbnQgaWYgcG9zc2libGUgb3RoZXJ3aXNlIHRvIGEgbHVhIG51bWJlci4KCi0tIFVzZWZ1bCB0byBwcmVwYXJlIHZhbHVlcyB0aGF0IHlvdSBhcmUgdW5zdXJlIGlmIGl0J3MgZ29pbmcgdG8gYmUgYW4gaW50ZWdlciBvciBmbG9hdC4KCi0tIEBwYXJhbSB4IEEgdmFsdWUgdG8gYmUgY29udmVydGVkIChzdHJpbmcsIG51bWJlciBvciBhbm90aGVyIGJpbnQpLgoKLS0gQHBhcmFtW29wdF0gY2xvbmUgQSBib29sZWFuIHRoYXQgdGVsbHMgaWYgYSBuZXcgYmludCByZWZlcmVuY2Ugc2hvdWxkIGJlIHJldHVybmVkLgoKLS0gRGVmYXVsdHMgdG8gZmFsc2UuCgotLSBAcmV0dXJuIEEgYmludCBvciBhIGx1YSBudW1iZXIgb3IgbmlsIGluIGNhc2UgdGhlIGNvbnZlcnNpb24gZmFpbGVkLgoKLS0gQHNlZSBiaW50Lm5ldwoKLS0gQHNlZSBiaW50LnRvYmludAoKZnVuY3Rpb24gYmludC5wYXJzZSh4LCBjbG9uZSkKCiAgbG9jYWwgaSA9IHRvYmludCh4LCBjbG9uZSkKCiAgaWYgaSB0aGVuCgogICAgcmV0dXJuIGkKCiAgZW5kCgogIHJldHVybiB0b251bWJlcih4KQoKZW5kCgpsb2NhbCBiaW50X3BhcnNlID0gYmludC5wYXJzZQoKCgotLS0gQ29udmVydCBhIGJpbnQgdG8gYW4gdW5zaWduZWQgaW50ZWdlci4KCi0tIE5vdGUgdGhhdCBsYXJnZSB1bnNpZ25lZCBpbnRlZ2VycyBtYXkgYmUgcmVwcmVzZW50ZWQgYXMgbmVnYXRpdmVzIGluIGx1YSBpbnRlZ2Vycy4KCi0tIE5vdGUgdGhhdCBsdWEgY2Fubm90IHJlcHJlc2VudCB2YWx1ZXMgbGFyZ2VyIHRoYW4gNjQgYml0cywKCi0tIGluIHRoYXQgY2FzZSBpbnRlZ2VyIHZhbHVlcyB3cmFwIGFyb3VuZC4KCi0tIEBwYXJhbSB4IEEgYmludCBvciBhIG51bWJlciB0byBiZSBjb252ZXJ0ZWQgaW50byBhbiB1bnNpZ25lZCBpbnRlZ2VyLgoKLS0gQHJldHVybiBBbiBpbnRlZ2VyIG9yIG5pbCBpbiBjYXNlIHRoZSBpbnB1dCBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgYnkgYW4gaW50ZWdlci4KCi0tIEBzZWUgYmludC50b2ludGVnZXIKCmZ1bmN0aW9uIGJpbnQudG91aW50ZWdlcih4KQoKICBpZiBnZXRtZXRhdGFibGUoeCkgPT0gYmludCB0aGVuCgogICAgbG9jYWwgbiA9IDAKCiAgICBmb3IgaT0xLEJJTlRfU0laRSBkbwoKICAgICAgbiA9IG4gfCAoeFtpXSA8PCAoQklOVF9XT1JEQklUUyAqIChpIC0gMSkpKQoKICAgIGVuZAoKICAgIHJldHVybiBuCgogIGVuZAoKICByZXR1cm4gdG9pbnRlZ2VyKHgpCgplbmQKCgoKLS0tIENvbnZlcnQgYSBiaW50IHRvIGEgc2lnbmVkIGludGVnZXIuCgotLSBJdCB3b3JrcyBieSB0YWtpbmcgYWJzb2x1dGUgdmFsdWVzIHRoZW4gYXBwbHlpbmcgdGhlIHNpZ24gYml0IGluIGNhc2UgbmVlZGVkLgoKLS0gTm90ZSB0aGF0IGx1YSBjYW5ub3QgcmVwcmVzZW50IHZhbHVlcyBsYXJnZXIgdGhhbiA2NCBiaXRzLAoKLS0gaW4gdGhhdCBjYXNlIGludGVnZXIgdmFsdWVzIHdyYXAgYXJvdW5kLgoKLS0gQHBhcmFtIHggQSBiaW50IG9yIHZhbHVlIHRvIGJlIGNvbnZlcnRlZCBpbnRvIGFuIHVuc2lnbmVkIGludGVnZXIuCgotLSBAcmV0dXJuIEFuIGludGVnZXIgb3IgbmlsIGluIGNhc2UgdGhlIGlucHV0IGNhbm5vdCBiZSByZXByZXNlbnRlZCBieSBhbiBpbnRlZ2VyLgoKLS0gQHNlZSBiaW50LnRvdWludGVnZXIKCmZ1bmN0aW9uIGJpbnQudG9pbnRlZ2VyKHgpCgogIGlmIGdldG1ldGF0YWJsZSh4KSA9PSBiaW50IHRoZW4KCiAgICBsb2NhbCBuID0gMAoKICAgIGxvY2FsIG5lZyA9IHg6aXNuZWcoKQoKICAgIGlmIG5lZyB0aGVuCgogICAgICB4ID0gLXgKCiAgICBlbmQKCiAgICBmb3IgaT0xLEJJTlRfU0laRSBkbwoKICAgICAgbiA9IG4gfCAoeFtpXSA8PCAoQklOVF9XT1JEQklUUyAqIChpIC0gMSkpKQoKICAgIGVuZAoKICAgIGlmIG5lZyB0aGVuCgogICAgICBuID0gLW4KCiAgICBlbmQKCiAgICByZXR1cm4gbgoKICBlbmQKCiAgcmV0dXJuIHRvaW50ZWdlcih4KQoKZW5kCgpsb2NhbCBiaW50X3RvaW50ZWdlciA9IGJpbnQudG9pbnRlZ2VyCgoKCmxvY2FsIGZ1bmN0aW9uIGJpbnRfYXNzZXJ0X3RvaW50ZWdlcih4KQoKICB4ID0gYmludF90b2ludGVnZXIoeCkKCiAgaWYgbm90IHggdGhlbgoKICAgIGVycm9yKCd2YWx1ZSBoYXMgbm8gaW50ZWdlciByZXByZXNlbnRhdGlvbicpCgogIGVuZAoKICByZXR1cm4geAoKZW5kCgoKCi0tLSBDb252ZXJ0IGEgYmludCB0byBhIGx1YSBmbG9hdCBpbiBjYXNlIGludGVnZXIgd291bGQgd3JhcCBhcm91bmQgb3IgbHVhIGludGVnZXIgb3RoZXJ3aXNlLgoKLS0gRGlmZmVyZW50IGZyb20gQHtiaW50LnRvaW50ZWdlcn0gdGhlIG9wZXJhdGlvbiBkb2VzIG5vdCB3cmFwIGFyb3VuZCBpbnRlZ2VycywKCi0tIGJ1dCBkaWdpdHMgcHJlY2lzaW9uIGFyZSBsb3N0IGluIHRoZSBwcm9jZXNzIG9mIGNvbnZlcnRpbmcgdG8gYSBmbG9hdC4KCi0tIEBwYXJhbSB4IEEgYmludCBvciB2YWx1ZSB0byBiZSBjb252ZXJ0ZWQgaW50byBhIGx1YSBudW1iZXIuCgotLSBAcmV0dXJuIEEgbHVhIG51bWJlciBvciBuaWwgaW4gY2FzZSB0aGUgaW5wdXQgY2Fubm90IGJlIHJlcHJlc2VudGVkIGJ5IGEgbnVtYmVyLgoKLS0gQHNlZSBiaW50LnRvaW50ZWdlcgoKZnVuY3Rpb24gYmludC50b251bWJlcih4KQoKICBpZiBnZXRtZXRhdGFibGUoeCkgPT0gYmludCB0aGVuCgogICAgaWYgeCA8PSBCSU5UX01BVEhNQVhJTlRFR0VSIGFuZCB4ID49IEJJTlRfTUFUSE1JTklOVEVHRVIgdGhlbgoKICAgICAgcmV0dXJuIHg6dG9pbnRlZ2VyKCkKCiAgICBlbmQKCiAgICByZXR1cm4gdG9udW1iZXIodG9zdHJpbmcoeCkpCgogIGVuZAoKICByZXR1cm4gdG9udW1iZXIoeCkKCmVuZAoKbG9jYWwgYmludF90b251bWJlciA9IGJpbnQudG9udW1iZXIKCgoKLS0gQ29tcHV0ZSBiYXNlIGxldHRlcnMgdG8gdXNlIGluIGJpbnQudG9iYXNlCgpsb2NhbCBCQVNFX0xFVFRFUlMgPSB7fQoKZG8KCiAgZm9yIGk9MSwzNiBkbwoKICAgIEJBU0VfTEVUVEVSU1tpLTFdID0gKCcwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonKTpzdWIoaSxpKQoKICBlbmQKCmVuZAoKCgotLS0gQ29udmVydCBhIGJpbnQgdG8gYSBzdHJpbmcgaW4gdGhlIGRlc2lyZWQgYmFzZS4KCi0tIEBwYXJhbSB4IFRoZSBiaW50IHRvIGJlIGNvbnZlcnRlZCBmcm9tLgoKLS0gQHBhcmFtW29wdF0gYmFzZSBCYXNlIHRvIGJlIHJlcHJlc2VudGVkLCBkZWZhdWx0cyB0byAxMC4KCi0tIE11c3QgYmUgYXQgbGVhc3QgMiBhbmQgYXQgbW9zdCAzNi4KCi0tIEBwYXJhbVtvcHRdIHVuc2lnbmVkIFdoZXRoZXIgdG8gb3V0cHV0IGFzIGFuIHVuc2lnbmVkIGludGVnZXIuCgotLSBEZWZhdWx0cyB0byBmYWxzZSBmb3IgYmFzZSAxMCBhbmQgdHJ1ZSBmb3Igb3RoZXJzLgoKLS0gV2hlbiB1bnNpZ25lZCBpcyBmYWxzZSB0aGUgc3ltYm9sICctJyBpcyBwcmVwZW5kZWQgaW4gbmVnYXRpdmUgdmFsdWVzLgoKLS0gQHJldHVybiBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGlucHV0LgoKLS0gQHJhaXNlIEFuIGFzc2VydCBpcyB0aHJvd24gaW4gY2FzZSB0aGUgYmFzZSBpcyBpbnZhbGlkLgoKZnVuY3Rpb24gYmludC50b2Jhc2UoeCwgYmFzZSwgdW5zaWduZWQpCgogIHggPSB0b2JpbnQoeCkKCiAgaWYgbm90IHggdGhlbgoKICAgIC0tIHggaXMgYSBmcmFjdGlvbmFsIGZsb2F0IG9yIHNvbWV0aGluZyBlbHNlCgogICAgcmV0dXJuCgogIGVuZAoKICBiYXNlID0gYmFzZSBvciAxMAoKICBpZiBub3QgKGJhc2UgPj0gMiBhbmQgYmFzZSA8PSAzNikgdGhlbgoKICAgIC0tIG51bWJlciBiYXNlIGlzIHRvbyBsYXJnZQoKICAgIHJldHVybgoKICBlbmQKCiAgaWYgdW5zaWduZWQgPT0gbmlsIHRoZW4KCiAgICB1bnNpZ25lZCA9IGJhc2Ugfj0gMTAKCiAgZW5kCgogIGxvY2FsIGlzeG5lZyA9IHg6aXNuZWcoKQoKICBpZiAoYmFzZSA9PSAxMCBhbmQgbm90IHVuc2lnbmVkKSBvciAoYmFzZSA9PSAxNiBhbmQgdW5zaWduZWQgYW5kIG5vdCBpc3huZWcpIHRoZW4KCiAgICBpZiB4IDw9IEJJTlRfTUFUSE1BWElOVEVHRVIgYW5kIHggPj0gQklOVF9NQVRITUlOSU5URUdFUiB0aGVuCgogICAgICAtLSBpbnRlZ2VyIGlzIHNtYWxsLCB1c2UgdG9zdHJpbmcgb3Igc3RyaW5nLmZvcm1hdCAoZmFzdGVyKQoKICAgICAgbG9jYWwgbiA9IHg6dG9pbnRlZ2VyKCkKCiAgICAgIGlmIGJhc2UgPT0gMTAgdGhlbgoKICAgICAgICByZXR1cm4gdG9zdHJpbmcobikKCiAgICAgIGVsc2VpZiB1bnNpZ25lZCB0aGVuCgogICAgICAgIHJldHVybiBzdHJpbmdfZm9ybWF0KCcleCcsIG4pCgogICAgICBlbmQKCiAgICBlbmQKCiAgZW5kCgogIGxvY2FsIHNzID0ge30KCiAgbG9jYWwgbmVnID0gbm90IHVuc2lnbmVkIGFuZCBpc3huZWcKCiAgeCA9IG5lZyBhbmQgeDphYnMoKSBvciBiaW50X25ldyh4KQoKICBsb2NhbCB4aXN6ZXJvID0geDppc3plcm8oKQoKICBpZiB4aXN6ZXJvIHRoZW4KCiAgICByZXR1cm4gJzAnCgogIGVuZAoKICAtLSBjYWxjdWxhdGUgYmFzZXBvdwoKICBsb2NhbCBzdGVwID0gMAoKICBsb2NhbCBiYXNlcG93ID0gMQoKICBsb2NhbCBsaW1pdCA9IChCSU5UX1dPUkRNU0IgLSAxKSAvLyBiYXNlCgogIHJlcGVhdAoKICAgIHN0ZXAgPSBzdGVwICsgMQoKICAgIGJhc2Vwb3cgPSBiYXNlcG93ICogYmFzZQoKICB1bnRpbCBiYXNlcG93ID49IGxpbWl0CgogIC0tIHNlcmlhbGl6ZSBiYXNlIGRpZ2l0cwoKICBsb2NhbCBzaXplID0gQklOVF9TSVpFCgogIGxvY2FsIHhkLCBjYXJyeSwgZAoKICByZXBlYXQKCiAgICAtLSBzaW5nbGUgd29yZCBkaXZpc2lvbgoKICAgIGNhcnJ5ID0gMAoKICAgIHhpc3plcm8gPSB0cnVlCgogICAgZm9yIGk9c2l6ZSwxLC0xIGRvCgogICAgICBjYXJyeSA9IGNhcnJ5IHwgeFtpXQoKICAgICAgZCwgeGQgPSBjYXJyeSAvLyBiYXNlcG93LCBjYXJyeSAlIGJhc2Vwb3cKCiAgICAgIGlmIHhpc3plcm8gYW5kIGQgfj0gMCB0aGVuCgogICAgICAgIHNpemUgPSBpCgogICAgICAgIHhpc3plcm8gPSBmYWxzZQoKICAgICAgZW5kCgogICAgICB4W2ldID0gZAoKICAgICAgY2FycnkgPSB4ZCA8PCBCSU5UX1dPUkRCSVRTCgogICAgZW5kCgogICAgLS0gZGlnaXQgZGl2aXNpb24KCiAgICBmb3IgXz0xLHN0ZXAgZG8KCiAgICAgIHhkLCBkID0geGQgLy8gYmFzZSwgeGQgJSBiYXNlCgogICAgICBpZiB4aXN6ZXJvIGFuZCB4ZCA9PSAwIGFuZCBkID09IDAgdGhlbgoKICAgICAgICAtLSBzdG9wIG9uIGxlYWRpbmcgemVyb3MKCiAgICAgICAgYnJlYWsKCiAgICAgIGVuZAoKICAgICAgdGFibGVfaW5zZXJ0KHNzLCAxLCBCQVNFX0xFVFRFUlNbZF0pCgogICAgZW5kCgogIHVudGlsIHhpc3plcm8KCiAgaWYgbmVnIHRoZW4KCiAgICB0YWJsZV9pbnNlcnQoc3MsIDEsICctJykKCiAgZW5kCgogIHJldHVybiB0YWJsZV9jb25jYXQoc3MpCgplbmQKCgoKbG9jYWwgZnVuY3Rpb24gYmludF9hc3NlcnRfY29udmVydCh4KQoKICByZXR1cm4gYXNzZXJ0KHRvYmludCh4KSwgJ3ZhbHVlIGhhcyBub3QgaW50ZWdlciByZXByZXNlbnRhdGlvbicpCgplbmQKCgoKLS0tIENvbnZlcnQgYSBiaW50IHRvIGEgYnVmZmVyIG9mIGxpdHRsZS1lbmRpYW4gYnl0ZXMuCgotLSBAcGFyYW0geCBBIGJpbnQgb3IgbHVhIGludGVnZXIuCgotLSBAcGFyYW1bb3B0XSB0cmltIElmIHRydWUsIHplcm8gYnl0ZXMgb24gdGhlIHJpZ2h0IGFyZSB0cmltbWVkLgoKLS0gQHJldHVybiBBIGJ1ZmZlciBvZiBieXRlcyByZXByZXNlbnRpbmcgdGhlIGlucHV0LgoKLS0gQHJhaXNlIEFzc2VydHMgaW4gY2FzZSBpbnB1dCBpcyBub3QgY29udmVydGlibGUgdG8gYW4gaW50ZWdlci4KCmZ1bmN0aW9uIGJpbnQudG9sZSh4LCB0cmltKQoKICB4ID0gYmludF9hc3NlcnRfY29udmVydCh4KQoKICBsb2NhbCBzID0gQklOVF9MRVBBQ0tGTVQ6cGFjayh0YWJsZV91bnBhY2soeCkpCgogIGlmIHRyaW0gdGhlbgoKICAgIHMgPSBzOmdzdWIoJ1x4MDArJCcsICcnKQoKICAgIGlmIHMgPT0gJycgdGhlbgoKICAgICAgcyA9ICdceDAwJwoKICAgIGVuZAoKICBlbmQKCiAgcmV0dXJuIHMKCmVuZAoKCgotLS0gQ29udmVydCBhIGJpbnQgdG8gYSBidWZmZXIgb2YgYmlnLWVuZGlhbiBieXRlcy4KCi0tIEBwYXJhbSB4IEEgYmludCBvciBsdWEgaW50ZWdlci4KCi0tIEBwYXJhbVtvcHRdIHRyaW0gSWYgdHJ1ZSwgemVybyBieXRlcyBvbiB0aGUgbGVmdCBhcmUgdHJpbW1lZC4KCi0tIEByZXR1cm4gQSBidWZmZXIgb2YgYnl0ZXMgcmVwcmVzZW50aW5nIHRoZSBpbnB1dC4KCi0tIEByYWlzZSBBc3NlcnRzIGluIGNhc2UgaW5wdXQgaXMgbm90IGNvbnZlcnRpYmxlIHRvIGFuIGludGVnZXIuCgpmdW5jdGlvbiBiaW50LnRvYmUoeCwgdHJpbSkKCiAgeCA9IGJpbnRfYXNzZXJ0X2NvbnZlcnQoeCkKCiAgbG9jYWwgcyA9IEJJTlRfTEVQQUNLRk1UOnBhY2sodGFibGVfdW5wYWNrKHgpKTpyZXZlcnNlKCkKCiAgaWYgdHJpbSB0aGVuCgogICAgcyA9IHM6Z3N1YignXlx4MDArJywgJycpCgogICAgaWYgcyA9PSAnJyB0aGVuCgogICAgICBzID0gJ1x4MDAnCgogICAgZW5kCgogIGVuZAoKICByZXR1cm4gcwoKZW5kCgoKCi0tLSBDaGVjayBpZiBhIG51bWJlciBpcyAwIGNvbnNpZGVyaW5nIGJpbnRzLgoKLS0gQHBhcmFtIHggQSBiaW50IG9yIGEgbHVhIG51bWJlci4KCmZ1bmN0aW9uIGJpbnQuaXN6ZXJvKHgpCgogIGlmIGdldG1ldGF0YWJsZSh4KSA9PSBiaW50IHRoZW4KCiAgICBmb3IgaT0xLEJJTlRfU0laRSBkbwoKICAgICAgaWYgeFtpXSB+PSAwIHRoZW4KCiAgICAgICAgcmV0dXJuIGZhbHNlCgogICAgICBlbmQKCiAgICBlbmQKCiAgICByZXR1cm4gdHJ1ZQoKICBlbmQKCiAgcmV0dXJuIHggPT0gMAoKZW5kCgoKCi0tLSBDaGVjayBpZiBhIG51bWJlciBpcyAxIGNvbnNpZGVyaW5nIGJpbnRzLgoKLS0gQHBhcmFtIHggQSBiaW50IG9yIGEgbHVhIG51bWJlci4KCmZ1bmN0aW9uIGJpbnQuaXNvbmUoeCkKCiAgaWYgZ2V0bWV0YXRhYmxlKHgpID09IGJpbnQgdGhlbgoKICAgIGlmIHhbMV0gfj0gMSB0aGVuCgogICAgICByZXR1cm4gZmFsc2UKCiAgICBlbmQKCiAgICBmb3IgaT0yLEJJTlRfU0laRSBkbwoKICAgICAgaWYgeFtpXSB+PSAwIHRoZW4KCiAgICAgICAgcmV0dXJuIGZhbHNlCgogICAgICBlbmQKCiAgICBlbmQKCiAgICByZXR1cm4gdHJ1ZQoKICBlbmQKCiAgcmV0dXJuIHggPT0gMQoKZW5kCgoKCi0tLSBDaGVjayBpZiBhIG51bWJlciBpcyAtMSBjb25zaWRlcmluZyBiaW50cy4KCi0tIEBwYXJhbSB4IEEgYmludCBvciBhIGx1YSBudW1iZXIuCgpmdW5jdGlvbiBiaW50LmlzbWludXNvbmUoeCkKCiAgaWYgZ2V0bWV0YXRhYmxlKHgpID09IGJpbnQgdGhlbgoKICAgIGZvciBpPTEsQklOVF9TSVpFIGRvCgogICAgICBpZiB4W2ldIH49IEJJTlRfV09SRE1BWCB0aGVuCgogICAgICAgIHJldHVybiBmYWxzZQoKICAgICAgZW5kCgogICAgZW5kCgogICAgcmV0dXJuIHRydWUKCiAgZW5kCgogIHJldHVybiB4ID09IC0xCgplbmQKCmxvY2FsIGJpbnRfaXNtaW51c29uZSA9IGJpbnQuaXNtaW51c29uZQoKCgotLS0gQ2hlY2sgaWYgdGhlIGlucHV0IGlzIGEgYmludC4KCi0tIEBwYXJhbSB4IEFueSBsdWEgdmFsdWUuCgpmdW5jdGlvbiBiaW50LmlzYmludCh4KQoKICByZXR1cm4gZ2V0bWV0YXRhYmxlKHgpID09IGJpbnQKCmVuZAoKCgotLS0gQ2hlY2sgaWYgdGhlIGlucHV0IGlzIGEgbHVhIGludGVnZXIgb3IgYSBiaW50LgoKLS0gQHBhcmFtIHggQW55IGx1YSB2YWx1ZS4KCmZ1bmN0aW9uIGJpbnQuaXNpbnRlZ3JhbCh4KQoKICByZXR1cm4gZ2V0bWV0YXRhYmxlKHgpID09IGJpbnQgb3IgbWF0aF90eXBlKHgpID09ICdpbnRlZ2VyJwoKZW5kCgoKCi0tLSBDaGVjayBpZiB0aGUgaW5wdXQgaXMgYSBiaW50IG9yIGEgbHVhIG51bWJlci4KCi0tIEBwYXJhbSB4IEFueSBsdWEgdmFsdWUuCgpmdW5jdGlvbiBiaW50LmlzbnVtZXJpYyh4KQoKICByZXR1cm4gZ2V0bWV0YXRhYmxlKHgpID09IGJpbnQgb3IgdHlwZSh4KSA9PSAnbnVtYmVyJwoKZW5kCgoKCi0tLSBHZXQgdGhlIG51bWJlciB0eXBlIG9mIHRoZSBpbnB1dCAoYmludCwgaW50ZWdlciBvciBmbG9hdCkuCgotLSBAcGFyYW0geCBBbnkgbHVhIHZhbHVlLgoKLS0gQHJldHVybiBSZXR1cm5zICJiaW50IiBmb3IgYmludHMsICJpbnRlZ2VyIiBmb3IgbHVhIGludGVnZXJzLAoKLS0gImZsb2F0IiBmcm9tIGx1YSBmbG9hdHMgb3IgbmlsIG90aGVyd2lzZS4KCmZ1bmN0aW9uIGJpbnQudHlwZSh4KQoKICBpZiBnZXRtZXRhdGFibGUoeCkgPT0gYmludCB0aGVuCgogICAgcmV0dXJuICdiaW50JwoKICBlbmQKCiAgcmV0dXJuIG1hdGhfdHlwZSh4KQoKZW5kCgoKCi0tLSBDaGVjayBpZiBhIG51bWJlciBpcyBuZWdhdGl2ZSBjb25zaWRlcmluZyBiaW50cy4KCi0tIFplcm8gaXMgZ3VhcmFudGVlZCB0byBuZXZlciBiZSBuZWdhdGl2ZSBmb3IgYmludHMuCgotLSBAcGFyYW0geCBBIGJpbnQgb3IgYSBsdWEgbnVtYmVyLgoKZnVuY3Rpb24gYmludC5pc25lZyh4KQoKICBpZiBnZXRtZXRhdGFibGUoeCkgPT0gYmludCB0aGVuCgogICAgcmV0dXJuIHhbQklOVF9TSVpFXSAmIEJJTlRfV09SRE1TQiB+PSAwCgogIGVuZAoKICByZXR1cm4geCA8IDAKCmVuZAoKbG9jYWwgYmludF9pc25lZyA9IGJpbnQuaXNuZWcKCgoKLS0tIENoZWNrIGlmIGEgbnVtYmVyIGlzIHBvc2l0aXZlIGNvbnNpZGVyaW5nIGJpbnRzLgoKLS0gQHBhcmFtIHggQSBiaW50IG9yIGEgbHVhIG51bWJlci4KCmZ1bmN0aW9uIGJpbnQuaXNwb3MoeCkKCiAgaWYgZ2V0bWV0YXRhYmxlKHgpID09IGJpbnQgdGhlbgoKICAgIHJldHVybiBub3QgeDppc25lZygpIGFuZCBub3QgeDppc3plcm8oKQoKICBlbmQKCiAgcmV0dXJuIHggPiAwCgplbmQKCgoKLS0tIENoZWNrIGlmIGEgbnVtYmVyIGlzIGV2ZW4gY29uc2lkZXJpbmcgYmludHMuCgotLSBAcGFyYW0geCBBIGJpbnQgb3IgYSBsdWEgbnVtYmVyLgoKZnVuY3Rpb24gYmludC5pc2V2ZW4oeCkKCiAgaWYgZ2V0bWV0YXRhYmxlKHgpID09IGJpbnQgdGhlbgoKICAgIHJldHVybiB4WzFdICYgMSA9PSAwCgogIGVuZAoKICByZXR1cm4gbWF0aF9hYnMoeCkgJSAyID09IDAKCmVuZAoKCgotLS0gQ2hlY2sgaWYgYSBudW1iZXIgaXMgb2RkIGNvbnNpZGVyaW5nIGJpbnRzLgoKLS0gQHBhcmFtIHggQSBiaW50IG9yIGEgbHVhIG51bWJlci4KCmZ1bmN0aW9uIGJpbnQuaXNvZGQoeCkKCiAgaWYgZ2V0bWV0YXRhYmxlKHgpID09IGJpbnQgdGhlbgoKICAgIHJldHVybiB4WzFdICYgMSA9PSAxCgogIGVuZAoKICByZXR1cm4gbWF0aF9hYnMoeCkgJSAyID09IDEKCmVuZAoKCgotLS0gQ3JlYXRlIGEgbmV3IGJpbnQgd2l0aCB0aGUgbWF4aW11bSBwb3NzaWJsZSBpbnRlZ2VyIHZhbHVlLgoKZnVuY3Rpb24gYmludC5tYXhpbnRlZ2VyKCkKCiAgbG9jYWwgeCA9IHNldG1ldGF0YWJsZSh7fSwgYmludCkKCiAgZm9yIGk9MSxCSU5UX1NJWkUtMSBkbwoKICAgIHhbaV0gPSBCSU5UX1dPUkRNQVgKCiAgZW5kCgogIHhbQklOVF9TSVpFXSA9IEJJTlRfV09SRE1BWCB+IEJJTlRfV09SRE1TQgoKICByZXR1cm4geAoKZW5kCgoKCi0tLSBDcmVhdGUgYSBuZXcgYmludCB3aXRoIHRoZSBtaW5pbXVtIHBvc3NpYmxlIGludGVnZXIgdmFsdWUuCgpmdW5jdGlvbiBiaW50Lm1pbmludGVnZXIoKQoKICBsb2NhbCB4ID0gc2V0bWV0YXRhYmxlKHt9LCBiaW50KQoKICBmb3IgaT0xLEJJTlRfU0laRS0xIGRvCgogICAgeFtpXSA9IDAKCiAgZW5kCgogIHhbQklOVF9TSVpFXSA9IEJJTlRfV09SRE1TQgoKICByZXR1cm4geAoKZW5kCgoKCi0tLSBCaXR3aXNlIGxlZnQgc2hpZnQgYSBiaW50IGluIG9uZSBiaXQgKGluLXBsYWNlKS4KCmZ1bmN0aW9uIGJpbnQ6X3NobG9uZSgpCgogIGxvY2FsIHdvcmRiaXRzbTEgPSBCSU5UX1dPUkRCSVRTIC0gMQoKICBmb3IgaT1CSU5UX1NJWkUsMiwtMSBkbwoKICAgIHNlbGZbaV0gPSAoKHNlbGZbaV0gPDwgMSkgfCAoc2VsZltpLTFdID4+IHdvcmRiaXRzbTEpKSAmIEJJTlRfV09SRE1BWAoKICBlbmQKCiAgc2VsZlsxXSA9IChzZWxmWzFdIDw8IDEpICYgQklOVF9XT1JETUFYCgogIHJldHVybiBzZWxmCgplbmQKCgoKLS0tIEJpdHdpc2UgcmlnaHQgc2hpZnQgYSBiaW50IGluIG9uZSBiaXQgKGluLXBsYWNlKS4KCmZ1bmN0aW9uIGJpbnQ6X3Nocm9uZSgpCgogIGxvY2FsIHdvcmRiaXRzbTEgPSBCSU5UX1dPUkRCSVRTIC0gMQoKICBmb3IgaT0xLEJJTlRfU0laRS0xIGRvCgogICAgc2VsZltpXSA9ICgoc2VsZltpXSA+PiAxKSB8IChzZWxmW2krMV0gPDwgd29yZGJpdHNtMSkpICYgQklOVF9XT1JETUFYCgogIGVuZAoKICBzZWxmW0JJTlRfU0laRV0gPSBzZWxmW0JJTlRfU0laRV0gPj4gMQoKICByZXR1cm4gc2VsZgoKZW5kCgoKCi0tIEJpdHdpc2UgbGVmdCBzaGlmdCB3b3JkcyBvZiBhIGJpbnQgKGluLXBsYWNlKS4gVXNlZCBvbmx5IGludGVybmFsbHkuCgpmdW5jdGlvbiBiaW50Ol9zaGx3b3JkcyhuKQoKICBmb3IgaT1CSU5UX1NJWkUsbisxLC0xIGRvCgogICAgc2VsZltpXSA9IHNlbGZbaSAtIG5dCgogIGVuZAoKICBmb3IgaT0xLG4gZG8KCiAgICBzZWxmW2ldID0gMAoKICBlbmQKCiAgcmV0dXJuIHNlbGYKCmVuZAoKCgotLSBCaXR3aXNlIHJpZ2h0IHNoaWZ0IHdvcmRzIG9mIGEgYmludCAoaW4tcGxhY2UpLiBVc2VkIG9ubHkgaW50ZXJuYWxseS4KCmZ1bmN0aW9uIGJpbnQ6X3NocndvcmRzKG4pCgogIGlmIG4gPCBCSU5UX1NJWkUgdGhlbgoKICAgIGZvciBpPTEsQklOVF9TSVpFLW4gZG8KCiAgICAgIHNlbGZbaV0gPSBzZWxmW2kgKyBuXQoKICAgIGVuZAoKICAgIGZvciBpPUJJTlRfU0laRS1uKzEsQklOVF9TSVpFIGRvCgogICAgICBzZWxmW2ldID0gMAoKICAgIGVuZAoKICBlbHNlCgogICAgZm9yIGk9MSxCSU5UX1NJWkUgZG8KCiAgICAgIHNlbGZbaV0gPSAwCgogICAgZW5kCgogIGVuZAoKICByZXR1cm4gc2VsZgoKZW5kCgoKCi0tLSBJbmNyZW1lbnQgYSBiaW50IGJ5IG9uZSAoaW4tcGxhY2UpLgoKZnVuY3Rpb24gYmludDpfaW5jKCkKCiAgZm9yIGk9MSxCSU5UX1NJWkUgZG8KCiAgICBsb2NhbCB0bXAgPSBzZWxmW2ldCgogICAgbG9jYWwgdiA9ICh0bXAgKyAxKSAmIEJJTlRfV09SRE1BWAoKICAgIHNlbGZbaV0gPSB2CgogICAgaWYgdiA+IHRtcCB0aGVuCgogICAgICBicmVhawoKICAgIGVuZAoKICBlbmQKCiAgcmV0dXJuIHNlbGYKCmVuZAoKCgotLS0gSW5jcmVtZW50IGEgbnVtYmVyIGJ5IG9uZSBjb25zaWRlcmluZyBiaW50cy4KCi0tIEBwYXJhbSB4IEEgYmludCBvciBhIGx1YSBudW1iZXIgdG8gaW5jcmVtZW50LgoKZnVuY3Rpb24gYmludC5pbmMoeCkKCiAgbG9jYWwgaXggPSB0b2JpbnQoeCwgdHJ1ZSkKCiAgaWYgaXggdGhlbgoKICAgIHJldHVybiBpeDpfaW5jKCkKCiAgZW5kCgogIHJldHVybiB4ICsgMQoKZW5kCgoKCi0tLSBEZWNyZW1lbnQgYSBiaW50IGJ5IG9uZSAoaW4tcGxhY2UpLgoKZnVuY3Rpb24gYmludDpfZGVjKCkKCiAgZm9yIGk9MSxCSU5UX1NJWkUgZG8KCiAgICBsb2NhbCB0bXAgPSBzZWxmW2ldCgogICAgbG9jYWwgdiA9ICh0bXAgLSAxKSAmIEJJTlRfV09SRE1BWAoKICAgIHNlbGZbaV0gPSB2CgogICAgaWYgdiA8PSB0bXAgdGhlbgoKICAgICAgYnJlYWsKCiAgICBlbmQKCiAgZW5kCgogIHJldHVybiBzZWxmCgplbmQKCgoKLS0tIERlY3JlbWVudCBhIG51bWJlciBieSBvbmUgY29uc2lkZXJpbmcgYmludHMuCgotLSBAcGFyYW0geCBBIGJpbnQgb3IgYSBsdWEgbnVtYmVyIHRvIGRlY3JlbWVudC4KCmZ1bmN0aW9uIGJpbnQuZGVjKHgpCgogIGxvY2FsIGl4ID0gdG9iaW50KHgsIHRydWUpCgogIGlmIGl4IHRoZW4KCiAgICByZXR1cm4gaXg6X2RlYygpCgogIGVuZAoKICByZXR1cm4geCAtIDEKCmVuZAoKCgotLS0gQXNzaWduIGEgYmludCB0byBhIG5ldyB2YWx1ZSAoaW4tcGxhY2UpLgoKLS0gQHBhcmFtIHkgQSB2YWx1ZSB0byBiZSBjb3BpZWQgZnJvbS4KCi0tIEByYWlzZSBBc3NlcnRzIGluIGNhc2UgaW5wdXRzIGFyZSBub3QgY29udmVydGlibGUgdG8gaW50ZWdlcnMuCgpmdW5jdGlvbiBiaW50Ol9hc3NpZ24oeSkKCiAgeSA9IGJpbnRfYXNzZXJ0X2NvbnZlcnQoeSkKCiAgZm9yIGk9MSxCSU5UX1NJWkUgZG8KCiAgICBzZWxmW2ldID0geVtpXQoKICBlbmQKCiAgcmV0dXJuIHNlbGYKCmVuZAoKCgotLS0gVGFrZSBhYnNvbHV0ZSBvZiBhIGJpbnQgKGluLXBsYWNlKS4KCmZ1bmN0aW9uIGJpbnQ6X2FicygpCgogIGlmIHNlbGY6aXNuZWcoKSB0aGVuCgogICAgc2VsZjpfdW5tKCkKCiAgZW5kCgogIHJldHVybiBzZWxmCgplbmQKCgoKLS0tIFRha2UgYWJzb2x1dGUgb2YgYSBudW1iZXIgY29uc2lkZXJpbmcgYmludHMuCgotLSBAcGFyYW0geCBBIGJpbnQgb3IgYSBsdWEgbnVtYmVyIHRvIHRha2UgdGhlIGFic29sdXRlLgoKZnVuY3Rpb24gYmludC5hYnMoeCkKCiAgbG9jYWwgaXggPSB0b2JpbnQoeCwgdHJ1ZSkKCiAgaWYgaXggdGhlbgoKICAgIHJldHVybiBpeDpfYWJzKCkKCiAgZW5kCgogIHJldHVybiBtYXRoX2Ficyh4KQoKZW5kCgpsb2NhbCBiaW50X2FicyA9IGJpbnQuYWJzCgoKCi0tLSBUYWtlIHRoZSBmbG9vciBvZiBhIG51bWJlciBjb25zaWRlcmluZyBiaW50cy4KCi0tIEBwYXJhbSB4IEEgYmludCBvciBhIGx1YSBudW1iZXIgdG8gcGVyZm9ybSB0aGUgZmxvb3Igb3BlcmF0aW9uLgoKZnVuY3Rpb24gYmludC5mbG9vcih4KQoKICBpZiBnZXRtZXRhdGFibGUoeCkgPT0gYmludCB0aGVuCgogICAgcmV0dXJuIGJpbnRfbmV3KHgpCgogIGVuZAoKICByZXR1cm4gYmludF9uZXcobWF0aF9mbG9vcih0b251bWJlcih4KSkpCgplbmQKCgoKLS0tIFRha2UgY2VpbCBvZiBhIG51bWJlciBjb25zaWRlcmluZyBiaW50cy4KCi0tIEBwYXJhbSB4IEEgYmludCBvciBhIGx1YSBudW1iZXIgdG8gcGVyZm9ybSB0aGUgY2VpbCBvcGVyYXRpb24uCgpmdW5jdGlvbiBiaW50LmNlaWwoeCkKCiAgaWYgZ2V0bWV0YXRhYmxlKHgpID09IGJpbnQgdGhlbgoKICAgIHJldHVybiBiaW50X25ldyh4KQoKICBlbmQKCiAgcmV0dXJuIGJpbnRfbmV3KG1hdGhfY2VpbCh0b251bWJlcih4KSkpCgplbmQKCgoKLS0tIFdyYXAgYXJvdW5kIGJpdHMgb2YgYW4gaW50ZWdlciAoZGlzY2FyZGluZyBsZWZ0IGJpdHMpIGNvbnNpZGVyaW5nIGJpbnRzLgoKLS0gQHBhcmFtIHggQSBiaW50IG9yIGEgbHVhIGludGVnZXIuCgotLSBAcGFyYW0geSBOdW1iZXIgb2YgcmlnaHQgYml0cyB0byBwcmVzZXJ2ZS4KCmZ1bmN0aW9uIGJpbnQuYndyYXAoeCwgeSkKCiAgeCA9IGJpbnRfYXNzZXJ0X2NvbnZlcnQoeCkKCiAgaWYgeSA8PSAwIHRoZW4KCiAgICByZXR1cm4gYmludF96ZXJvKCkKCiAgZWxzZWlmIHkgPCBCSU5UX0JJVFMgdGhlbgoKICAgIHJldHVybiB4ICYgKGJpbnRfb25lKCkgPDwgeSk6X2RlYygpCgogIGVuZAoKICByZXR1cm4gYmludF9uZXcoeCkKCmVuZAoKCgotLS0gUm90YXRlIGxlZnQgaW50ZWdlciB4IGJ5IHkgYml0cyBjb25zaWRlcmluZyBiaW50cy4KCi0tIEBwYXJhbSB4IEEgYmludCBvciBhIGx1YSBpbnRlZ2VyLgoKLS0gQHBhcmFtIHkgTnVtYmVyIG9mIGJpdHMgdG8gcm90YXRlLgoKZnVuY3Rpb24gYmludC5icm9sKHgsIHkpCgogIHgsIHkgPSBiaW50X2Fzc2VydF9jb252ZXJ0KHgpLCBiaW50X2Fzc2VydF90b2ludGVnZXIoeSkKCiAgaWYgeSA+IDAgdGhlbgoKICAgIHJldHVybiAoeCA8PCB5KSB8ICh4ID4+IChCSU5UX0JJVFMgLSB5KSkKCiAgZWxzZWlmIHkgPCAwIHRoZW4KCiAgICBpZiB5IH49IG1hdGhfbWluaW50ZWdlciB0aGVuCgogICAgICByZXR1cm4geDpicm9yKC15KQoKICAgIGVsc2UKCiAgICAgIHg6YnJvcigtKHkrMSkpCgogICAgICB4OmJyb3IoMSkKCiAgICBlbmQKCiAgZW5kCgogIHJldHVybiB4CgplbmQKCgoKLS0tIFJvdGF0ZSByaWdodCBpbnRlZ2VyIHggYnkgeSBiaXRzIGNvbnNpZGVyaW5nIGJpbnRzLgoKLS0gQHBhcmFtIHggQSBiaW50IG9yIGEgbHVhIGludGVnZXIuCgotLSBAcGFyYW0geSBOdW1iZXIgb2YgYml0cyB0byByb3RhdGUuCgpmdW5jdGlvbiBiaW50LmJyb3IoeCwgeSkKCiAgeCwgeSA9IGJpbnRfYXNzZXJ0X2NvbnZlcnQoeCksIGJpbnRfYXNzZXJ0X3RvaW50ZWdlcih5KQoKICBpZiB5ID4gMCB0aGVuCgogICAgcmV0dXJuICh4ID4+IHkpIHwgKHggPDwgKEJJTlRfQklUUyAtIHkpKQoKICBlbHNlaWYgeSA8IDAgdGhlbgoKICAgIGlmIHkgfj0gbWF0aF9taW5pbnRlZ2VyIHRoZW4KCiAgICAgIHJldHVybiB4OmJyb2woLXkpCgogICAgZWxzZQoKICAgICAgeDpicm9sKC0oeSsxKSkKCiAgICAgIHg6YnJvbCgxKQoKICAgIGVuZAoKICBlbmQKCiAgcmV0dXJuIHgKCmVuZAoKCgotLS0gVHJ1bmNhdGUgYSBudW1iZXIgdG8gYSBiaW50LgoKLS0gRmxvYXRzIG51bWJlcnMgYXJlIHRydW5jYXRlZCwgdGhhdCBpcywgdGhlIGZyYWN0aW9uYWwgcG9ydCBpcyBkaXNjYXJkZWQuCgotLSBAcGFyYW0geCBBIG51bWJlciB0byB0cnVuY2F0ZS4KCi0tIEByZXR1cm4gQSBuZXcgYmludCBvciBuaWwgaW4gY2FzZSB0aGUgaW5wdXQgZG9lcyBub3QgZml0IGluIGEgYmludCBvciBpcyBub3QgYSBudW1iZXIuCgpmdW5jdGlvbiBiaW50LnRydW5jKHgpCgogIGlmIGdldG1ldGF0YWJsZSh4KSB+PSBiaW50IHRoZW4KCiAgICB4ID0gdG9udW1iZXIoeCkKCiAgICBpZiB4IHRoZW4KCiAgICAgIGxvY2FsIHR5ID0gbWF0aF90eXBlKHgpCgogICAgICBpZiB0eSA9PSAnZmxvYXQnIHRoZW4KCiAgICAgICAgLS0gdHJ1bmNhdGUgdG8gaW50ZWdlcgoKICAgICAgICB4ID0gbWF0aF9tb2RmKHgpCgogICAgICBlbmQKCiAgICAgIHJldHVybiBiaW50X2Zyb21pbnRlZ2VyKHgpCgogICAgZW5kCgogICAgcmV0dXJuCgogIGVuZAoKICByZXR1cm4gYmludF9uZXcoeCkKCmVuZAoKCgotLS0gVGFrZSBtYXhpbXVtIGJldHdlZW4gdHdvIG51bWJlcnMgY29uc2lkZXJpbmcgYmludHMuCgotLSBAcGFyYW0geCBBIGJpbnQgb3IgbHVhIG51bWJlciB0byBjb21wYXJlLgoKLS0gQHBhcmFtIHkgQSBiaW50IG9yIGx1YSBudW1iZXIgdG8gY29tcGFyZS4KCi0tIEByZXR1cm4gQSBiaW50IG9yIGEgbHVhIG51bWJlci4gR3VhcmFudGVlcyB0byByZXR1cm4gYSBuZXcgYmludCBmb3IgaW50ZWdlciB2YWx1ZXMuCgpmdW5jdGlvbiBiaW50Lm1heCh4LCB5KQoKICBsb2NhbCBpeCwgaXkgPSB0b2JpbnQoeCksIHRvYmludCh5KQoKICBpZiBpeCBhbmQgaXkgdGhlbgoKICAgIHJldHVybiBiaW50X25ldyhpeCA+IGl5IGFuZCBpeCBvciBpeSkKCiAgZW5kCgogIHJldHVybiBiaW50X3BhcnNlKG1hdGhfbWF4KHgsIHkpKQoKZW5kCgoKCi0tLSBUYWtlIG1pbmltdW0gYmV0d2VlbiB0d28gbnVtYmVycyBjb25zaWRlcmluZyBiaW50cy4KCi0tIEBwYXJhbSB4IEEgYmludCBvciBsdWEgbnVtYmVyIHRvIGNvbXBhcmUuCgotLSBAcGFyYW0geSBBIGJpbnQgb3IgbHVhIG51bWJlciB0byBjb21wYXJlLgoKLS0gQHJldHVybiBBIGJpbnQgb3IgYSBsdWEgbnVtYmVyLiBHdWFyYW50ZWVzIHRvIHJldHVybiBhIG5ldyBiaW50IGZvciBpbnRlZ2VyIHZhbHVlcy4KCmZ1bmN0aW9uIGJpbnQubWluKHgsIHkpCgogIGxvY2FsIGl4LCBpeSA9IHRvYmludCh4KSwgdG9iaW50KHkpCgogIGlmIGl4IGFuZCBpeSB0aGVuCgogICAgcmV0dXJuIGJpbnRfbmV3KGl4IDwgaXkgYW5kIGl4IG9yIGl5KQoKICBlbmQKCiAgcmV0dXJuIGJpbnRfcGFyc2UobWF0aF9taW4oeCwgeSkpCgplbmQKCgoKLS0tIEFkZCBhbiBpbnRlZ2VyIHRvIGEgYmludCAoaW4tcGxhY2UpLgoKLS0gQHBhcmFtIHkgQW4gaW50ZWdlciB0byBiZSBhZGRlZC4KCi0tIEByYWlzZSBBc3NlcnRzIGluIGNhc2UgaW5wdXRzIGFyZSBub3QgY29udmVydGlibGUgdG8gaW50ZWdlcnMuCgpmdW5jdGlvbiBiaW50Ol9hZGQoeSkKCiAgeSA9IGJpbnRfYXNzZXJ0X2NvbnZlcnQoeSkKCiAgbG9jYWwgY2FycnkgPSAwCgogIGZvciBpPTEsQklOVF9TSVpFIGRvCgogICAgbG9jYWwgdG1wID0gc2VsZltpXSArIHlbaV0gKyBjYXJyeQoKICAgIGNhcnJ5ID0gdG1wID4+IEJJTlRfV09SREJJVFMKCiAgICBzZWxmW2ldID0gdG1wICYgQklOVF9XT1JETUFYCgogIGVuZAoKICByZXR1cm4gc2VsZgoKZW5kCgoKCi0tLSBBZGQgdHdvIG51bWJlcnMgY29uc2lkZXJpbmcgYmludHMuCgotLSBAcGFyYW0geCBBIGJpbnQgb3IgYSBsdWEgbnVtYmVyIHRvIGJlIGFkZGVkLgoKLS0gQHBhcmFtIHkgQSBiaW50IG9yIGEgbHVhIG51bWJlciB0byBiZSBhZGRlZC4KCmZ1bmN0aW9uIGJpbnQuX19hZGQoeCwgeSkKCiAgbG9jYWwgaXgsIGl5ID0gdG9iaW50KHgpLCB0b2JpbnQoeSkKCiAgaWYgaXggYW5kIGl5IHRoZW4KCiAgICBsb2NhbCB6ID0gc2V0bWV0YXRhYmxlKHt9LCBiaW50KQoKICAgIGxvY2FsIGNhcnJ5ID0gMAoKICAgIGZvciBpPTEsQklOVF9TSVpFIGRvCgogICAgICBsb2NhbCB0bXAgPSBpeFtpXSArIGl5W2ldICsgY2FycnkKCiAgICAgIGNhcnJ5ID0gdG1wID4+IEJJTlRfV09SREJJVFMKCiAgICAgIHpbaV0gPSB0bXAgJiBCSU5UX1dPUkRNQVgKCiAgICBlbmQKCiAgICByZXR1cm4gegoKICBlbmQKCiAgcmV0dXJuIGJpbnRfdG9udW1iZXIoeCkgKyBiaW50X3RvbnVtYmVyKHkpCgplbmQKCgoKLS0tIFN1YnRyYWN0IGFuIGludGVnZXIgZnJvbSBhIGJpbnQgKGluLXBsYWNlKS4KCi0tIEBwYXJhbSB5IEFuIGludGVnZXIgdG8gc3VidHJhY3QuCgotLSBAcmFpc2UgQXNzZXJ0cyBpbiBjYXNlIGlucHV0cyBhcmUgbm90IGNvbnZlcnRpYmxlIHRvIGludGVnZXJzLgoKZnVuY3Rpb24gYmludDpfc3ViKHkpCgogIHkgPSBiaW50X2Fzc2VydF9jb252ZXJ0KHkpCgogIGxvY2FsIGJvcnJvdyA9IDAKCiAgbG9jYWwgd29yZG1heHAxID0gQklOVF9XT1JETUFYICsgMQoKICBmb3IgaT0xLEJJTlRfU0laRSBkbwoKICAgIGxvY2FsIHJlcyA9IHNlbGZbaV0gKyB3b3JkbWF4cDEgLSB5W2ldIC0gYm9ycm93CgogICAgc2VsZltpXSA9IHJlcyAmIEJJTlRfV09SRE1BWAoKICAgIGJvcnJvdyA9IChyZXMgPj4gQklOVF9XT1JEQklUUykgfiAxCgogIGVuZAoKICByZXR1cm4gc2VsZgoKZW5kCgoKCi0tLSBTdWJ0cmFjdCB0d28gbnVtYmVycyBjb25zaWRlcmluZyBiaW50cy4KCi0tIEBwYXJhbSB4IEEgYmludCBvciBhIGx1YSBudW1iZXIgdG8gYmUgc3VidHJhY3RlZCBmcm9tLgoKLS0gQHBhcmFtIHkgQSBiaW50IG9yIGEgbHVhIG51bWJlciB0byBzdWJ0cmFjdC4KCmZ1bmN0aW9uIGJpbnQuX19zdWIoeCwgeSkKCiAgbG9jYWwgaXgsIGl5ID0gdG9iaW50KHgpLCB0b2JpbnQoeSkKCiAgaWYgaXggYW5kIGl5IHRoZW4KCiAgICBsb2NhbCB6ID0gc2V0bWV0YXRhYmxlKHt9LCBiaW50KQoKICAgIGxvY2FsIGJvcnJvdyA9IDAKCiAgICBsb2NhbCB3b3JkbWF4cDEgPSBCSU5UX1dPUkRNQVggKyAxCgogICAgZm9yIGk9MSxCSU5UX1NJWkUgZG8KCiAgICAgIGxvY2FsIHJlcyA9IGl4W2ldICsgd29yZG1heHAxIC0gaXlbaV0gLSBib3Jyb3cKCiAgICAgIHpbaV0gPSByZXMgJiBCSU5UX1dPUkRNQVgKCiAgICAgIGJvcnJvdyA9IChyZXMgPj4gQklOVF9XT1JEQklUUykgfiAxCgogICAgZW5kCgogICAgcmV0dXJuIHoKCiAgZW5kCgogIHJldHVybiBiaW50X3RvbnVtYmVyKHgpIC0gYmludF90b251bWJlcih5KQoKZW5kCgoKCi0tLSBNdWx0aXBseSB0d28gbnVtYmVycyBjb25zaWRlcmluZyBiaW50cy4KCi0tIEBwYXJhbSB4IEEgYmludCBvciBhIGx1YSBudW1iZXIgdG8gbXVsdGlwbHkuCgotLSBAcGFyYW0geSBBIGJpbnQgb3IgYSBsdWEgbnVtYmVyIHRvIG11bHRpcGx5LgoKZnVuY3Rpb24gYmludC5fX211bCh4LCB5KQoKICBsb2NhbCBpeCwgaXkgPSB0b2JpbnQoeCksIHRvYmludCh5KQoKICBpZiBpeCBhbmQgaXkgdGhlbgoKICAgIGxvY2FsIHogPSBiaW50X3plcm8oKQoKICAgIGxvY2FsIHNpemVwMSA9IEJJTlRfU0laRSsxCgogICAgbG9jYWwgcyA9IHNpemVwMQoKICAgIGxvY2FsIGUgPSAwCgogICAgZm9yIGk9MSxCSU5UX1NJWkUgZG8KCiAgICAgIGlmIGl4W2ldIH49IDAgb3IgaXlbaV0gfj0gMCB0aGVuCgogICAgICAgIGUgPSBtYXRoX21heChlLCBpKQoKICAgICAgICBzID0gbWF0aF9taW4ocywgaSkKCiAgICAgIGVuZAoKICAgIGVuZAoKICAgIGZvciBpPXMsZSBkbwoKICAgICAgZm9yIGo9cyxtYXRoX21pbihzaXplcDEtaSxlKSBkbwoKICAgICAgICBsb2NhbCBhID0gaXhbaV0gKiBpeVtqXQoKICAgICAgICBpZiBhIH49IDAgdGhlbgoKICAgICAgICAgIGxvY2FsIGNhcnJ5ID0gMAoKICAgICAgICAgIGZvciBrPWkrai0xLEJJTlRfU0laRSBkbwoKICAgICAgICAgICAgbG9jYWwgdG1wID0geltrXSArIChhICYgQklOVF9XT1JETUFYKSArIGNhcnJ5CgogICAgICAgICAgICBjYXJyeSA9IHRtcCA+PiBCSU5UX1dPUkRCSVRTCgogICAgICAgICAgICB6W2tdID0gdG1wICYgQklOVF9XT1JETUFYCgogICAgICAgICAgICBhID0gYSA+PiBCSU5UX1dPUkRCSVRTCgogICAgICAgICAgZW5kCgogICAgICAgIGVuZAoKICAgICAgZW5kCgogICAgZW5kCgogICAgcmV0dXJuIHoKCiAgZW5kCgogIHJldHVybiBiaW50X3RvbnVtYmVyKHgpICogYmludF90b251bWJlcih5KQoKZW5kCgoKCi0tLSBDaGVjayBpZiBiaW50cyBhcmUgZXF1YWwuCgotLSBAcGFyYW0geCBBIGJpbnQgdG8gY29tcGFyZS4KCi0tIEBwYXJhbSB5IEEgYmludCB0byBjb21wYXJlLgoKZnVuY3Rpb24gYmludC5fX2VxKHgsIHkpCgogIGZvciBpPTEsQklOVF9TSVpFIGRvCgogICAgaWYgeFtpXSB+PSB5W2ldIHRoZW4KCiAgICAgIHJldHVybiBmYWxzZQoKICAgIGVuZAoKICBlbmQKCiAgcmV0dXJuIHRydWUKCmVuZAoKCgotLS0gQ2hlY2sgaWYgbnVtYmVycyBhcmUgZXF1YWwgY29uc2lkZXJpbmcgYmludHMuCgotLSBAcGFyYW0geCBBIGJpbnQgb3IgbHVhIG51bWJlciB0byBjb21wYXJlLgoKLS0gQHBhcmFtIHkgQSBiaW50IG9yIGx1YSBudW1iZXIgdG8gY29tcGFyZS4KCmZ1bmN0aW9uIGJpbnQuZXEoeCwgeSkKCiAgbG9jYWwgaXgsIGl5ID0gdG9iaW50KHgpLCB0b2JpbnQoeSkKCiAgaWYgaXggYW5kIGl5IHRoZW4KCiAgICByZXR1cm4gaXggPT0gaXkKCiAgZW5kCgogIHJldHVybiB4ID09IHkKCmVuZAoKbG9jYWwgYmludF9lcSA9IGJpbnQuZXEKCgoKbG9jYWwgZnVuY3Rpb24gZmluZGxlZnRiaXQoeCkKCiAgZm9yIGk9QklOVF9TSVpFLDEsLTEgZG8KCiAgICBsb2NhbCB2ID0geFtpXQoKICAgIGlmIHYgfj0gMCB0aGVuCgogICAgICBsb2NhbCBqID0gMAoKICAgICAgcmVwZWF0CgogICAgICAgIHYgPSB2ID4+IDEKCiAgICAgICAgaiA9IGogKyAxCgogICAgICB1bnRpbCB2ID09IDAKCiAgICAgIHJldHVybiAoaS0xKSpCSU5UX1dPUkRCSVRTICsgaiAtIDEsIGkKCiAgICBlbmQKCiAgZW5kCgplbmQKCgoKLS0gU2luZ2xlIHdvcmQgZGl2aXNpb24gbW9kdWx1cwoKbG9jYWwgZnVuY3Rpb24gc3VkaXZtb2QobnVtZSwgZGVubykKCiAgbG9jYWwgcmVtYQoKICBsb2NhbCBjYXJyeSA9IDAKCiAgZm9yIGk9QklOVF9TSVpFLDEsLTEgZG8KCiAgICBjYXJyeSA9IGNhcnJ5IHwgbnVtZVtpXQoKICAgIG51bWVbaV0gPSBjYXJyeSAvLyBkZW5vCgogICAgcmVtYSA9IGNhcnJ5ICUgZGVubwoKICAgIGNhcnJ5ID0gcmVtYSA8PCBCSU5UX1dPUkRCSVRTCgogIGVuZAoKICByZXR1cm4gcmVtYQoKZW5kCgoKCi0tLSBQZXJmb3JtIHVuc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9uIGJldHdlZW4gdHdvIGludGVnZXJzIGNvbnNpZGVyaW5nIGJpbnRzLgoKLS0gVGhpcyBpcyBlZmZlY3RpdmVseSB0aGUgc2FtZSBvZiBAe2JpbnQudWRpdn0gYW5kIEB7YmludC51bW9kfS4KCi0tIEBwYXJhbSB4IFRoZSBudW1lcmF0b3IsIG11c3QgYmUgYSBiaW50IG9yIGEgbHVhIGludGVnZXIuCgotLSBAcGFyYW0geSBUaGUgZGVub21pbmF0b3IsIG11c3QgYmUgYSBiaW50IG9yIGEgbHVhIGludGVnZXIuCgotLSBAcmV0dXJuIFRoZSBxdW90aWVudCBmb2xsb3dpbmcgdGhlIHJlbWFpbmRlciwgYm90aCBiaW50cy4KCi0tIEByYWlzZSBBc3NlcnRzIG9uIGF0dGVtcHQgdG8gZGl2aWRlIGJ5IHplcm8KCi0tIG9yIGlmIGlucHV0cyBhcmUgbm90IGNvbnZlcnRpYmxlIHRvIGludGVnZXJzLgoKLS0gQHNlZSBiaW50LnVkaXYKCi0tIEBzZWUgYmludC51bW9kCgpmdW5jdGlvbiBiaW50LnVkaXZtb2QoeCwgeSkKCiAgbG9jYWwgbnVtZSA9IGJpbnRfbmV3KHgpCgogIGxvY2FsIGRlbm8gPSBiaW50X2Fzc2VydF9jb252ZXJ0KHkpCgogIC0tIGNvbXB1dGUgaWYgaGlnaCBiaXRzIG9mIGRlbm9taW5hdG9yIGFyZSBhbGwgemVyb3MKCiAgbG9jYWwgaXNoaWdoemVybyA9IHRydWUKCiAgZm9yIGk9MixCSU5UX1NJWkUgZG8KCiAgICBpZiBkZW5vW2ldIH49IDAgdGhlbgoKICAgICAgaXNoaWdoemVybyA9IGZhbHNlCgogICAgICBicmVhawoKICAgIGVuZAoKICBlbmQKCiAgaWYgaXNoaWdoemVybyB0aGVuCgogICAgLS0gdHJ5IHRvIGRpdmlkZSBieSBhIHNpbmdsZSB3b3JkIChvcHRpbWl6YXRpb24pCgogICAgbG9jYWwgbG93ID0gZGVub1sxXQoKICAgIGFzc2VydChsb3cgfj0gMCwgJ2F0dGVtcHQgdG8gZGl2aWRlIGJ5IHplcm8nKQoKICAgIGlmIGxvdyA9PSAxIHRoZW4KCiAgICAgIC0tIGRlbm9taW5hdG9yIGlzIG9uZQoKICAgICAgcmV0dXJuIG51bWUsIGJpbnRfemVybygpCgogICAgZWxzZWlmIGxvdyA8PSAoQklOVF9XT1JETVNCIC0gMSkgdGhlbgoKICAgICAgLS0gY2FuIGRvIHNpbmdsZSB3b3JkIGRpdmlzaW9uCgogICAgICBsb2NhbCByZW1hID0gc3VkaXZtb2QobnVtZSwgbG93KQoKICAgICAgcmV0dXJuIG51bWUsIGJpbnRfZnJvbXVpbnRlZ2VyKHJlbWEpCgogICAgZW5kCgogIGVuZAoKICBpZiBudW1lOnVsdChkZW5vKSB0aGVuCgogICAgLS0gZGVub21pbmF0b3IgaXMgZ3JlYXRlciB0aGFuIG51bWVyYXRvcgoKICAgIHJldHVybiBiaW50X3plcm8oKSwgbnVtZQoKICBlbmQKCiAgLS0gYWxpZ24gbGVmdG1vc3QgZGlnaXRzIGluIG51bWVyYXRvciBhbmQgZGVub21pbmF0b3IKCiAgbG9jYWwgZGVub2xiaXQgPSBmaW5kbGVmdGJpdChkZW5vKQoKICBsb2NhbCBudW1lbGJpdCwgbnVtZXNpemUgPSBmaW5kbGVmdGJpdChudW1lKQoKICBsb2NhbCBiaXQgPSBudW1lbGJpdCAtIGRlbm9sYml0CgogIGRlbm8gPSBkZW5vIDw8IGJpdAoKICBsb2NhbCB3b3JkbWF4cDEgPSBCSU5UX1dPUkRNQVggKyAxCgogIGxvY2FsIHdvcmRiaXRzbTEgPSBCSU5UX1dPUkRCSVRTIC0gMQoKICBsb2NhbCBkZW5vc2l6ZSA9IG51bWVzaXplCgogIGxvY2FsIHF1b3QgPSBiaW50X3plcm8oKQoKICB3aGlsZSBiaXQgPj0gMCBkbwoKICAgIC0tIGNvbXB1dGUgZGVub21pbmF0b3IgPD0gbnVtZXJhdG9yCgogICAgbG9jYWwgbGUgPSB0cnVlCgogICAgbG9jYWwgc2l6ZSA9IG1hdGhfbWF4KG51bWVzaXplLCBkZW5vc2l6ZSkKCiAgICBmb3IgaT1zaXplLDEsLTEgZG8KCiAgICAgIGxvY2FsIGEsIGIgPSBkZW5vW2ldLCBudW1lW2ldCgogICAgICBpZiBhIH49IGIgdGhlbgoKICAgICAgICBsZSA9IGEgPCBiCgogICAgICAgIGJyZWFrCgogICAgICBlbmQKCiAgICBlbmQKCiAgICAtLSBpZiB0aGUgcG9ydGlvbiBvZiB0aGUgbnVtZXJhdG9yIGFib3ZlIHRoZSBkZW5vbWluYXRvciBpcyBncmVhdGVyIG9yIGVxdWFsIHRoYW4gdG8gdGhlIGRlbm9taW5hdG9yCgogICAgaWYgbGUgdGhlbgoKICAgICAgLS0gc3VidHJhY3QgZGVub21pbmF0b3IgZnJvbSB0aGUgcG9ydGlvbiBvZiB0aGUgbnVtZXJhdG9yCgogICAgICBsb2NhbCBib3Jyb3cgPSAwCgogICAgICBmb3IgaT0xLHNpemUgZG8KCiAgICAgICAgbG9jYWwgcmVzID0gbnVtZVtpXSArIHdvcmRtYXhwMSAtIGRlbm9baV0gLSBib3Jyb3cKCiAgICAgICAgbnVtZVtpXSA9IHJlcyAmIEJJTlRfV09SRE1BWAoKICAgICAgICBib3Jyb3cgPSAocmVzID4+IEJJTlRfV09SREJJVFMpIH4gMQoKICAgICAgZW5kCgogICAgICAtLSBjb25jYXRlbmF0ZSAxIHRvIHRoZSByaWdodCBiaXQgb2YgdGhlIHF1b3RpZW50CgogICAgICBsb2NhbCBpID0gKGJpdCAvLyBCSU5UX1dPUkRCSVRTKSArIDEKCiAgICAgIHF1b3RbaV0gPSBxdW90W2ldIHwgKDEgPDwgKGJpdCAlIEJJTlRfV09SREJJVFMpKQoKICAgIGVuZAoKICAgIC0tIHNoaWZ0IHJpZ2h0IHRoZSBkZW5vbWluYXRvciBpbiBvbmUgYml0CgogICAgZm9yIGk9MSxkZW5vc2l6ZS0xIGRvCgogICAgICBkZW5vW2ldID0gKChkZW5vW2ldID4+IDEpIHwgKGRlbm9baSsxXSA8PCB3b3JkYml0c20xKSkgJiBCSU5UX1dPUkRNQVgKCiAgICBlbmQKCiAgICBsb2NhbCBsYXN0ZGVub3dvcmQgPSBkZW5vW2Rlbm9zaXplXSA+PiAxCgogICAgZGVub1tkZW5vc2l6ZV0gPSBsYXN0ZGVub3dvcmQKCiAgICAtLSByZWNhbGN1bGF0ZSBkZW5vbWluYXRvciBzaXplIChvcHRpbWl6YXRpb24pCgogICAgaWYgbGFzdGRlbm93b3JkID09IDAgdGhlbgoKICAgICAgd2hpbGUgZGVub1tkZW5vc2l6ZV0gPT0gMCBkbwoKICAgICAgICBkZW5vc2l6ZSA9IGRlbm9zaXplIC0gMQoKICAgICAgZW5kCgogICAgICBpZiBkZW5vc2l6ZSA9PSAwIHRoZW4KCiAgICAgICAgYnJlYWsKCiAgICAgIGVuZAoKICAgIGVuZAoKICAgIC0tIGRlY3JlbWVudCBjdXJyZW50IHNldCBiaXQgZm9yIHRoZSBxdW90aWVudAoKICAgIGJpdCA9IGJpdCAtIDEKCiAgZW5kCgogIC0tIHRoZSByZW1haW5pbmcgbnVtZXJhdG9yIGlzIHRoZSByZW1haW5kZXIKCiAgcmV0dXJuIHF1b3QsIG51bWUKCmVuZAoKbG9jYWwgYmludF91ZGl2bW9kID0gYmludC51ZGl2bW9kCgoKCi0tLSBQZXJmb3JtIHVuc2lnbmVkIGRpdmlzaW9uIGJldHdlZW4gdHdvIGludGVnZXJzIGNvbnNpZGVyaW5nIGJpbnRzLgoKLS0gQHBhcmFtIHggVGhlIG51bWVyYXRvciwgbXVzdCBiZSBhIGJpbnQgb3IgYSBsdWEgaW50ZWdlci4KCi0tIEBwYXJhbSB5IFRoZSBkZW5vbWluYXRvciwgbXVzdCBiZSBhIGJpbnQgb3IgYSBsdWEgaW50ZWdlci4KCi0tIEByZXR1cm4gVGhlIHF1b3RpZW50LCBhIGJpbnQuCgotLSBAcmFpc2UgQXNzZXJ0cyBvbiBhdHRlbXB0IHRvIGRpdmlkZSBieSB6ZXJvCgotLSBvciBpZiBpbnB1dHMgYXJlIG5vdCBjb252ZXJ0aWJsZSB0byBpbnRlZ2Vycy4KCmZ1bmN0aW9uIGJpbnQudWRpdih4LCB5KQoKICByZXR1cm4gKGJpbnRfdWRpdm1vZCh4LCB5KSkKCmVuZAoKCgotLS0gUGVyZm9ybSB1bnNpZ25lZCBpbnRlZ2VyIG1vZHVsbyBvcGVyYXRpb24gYmV0d2VlbiB0d28gaW50ZWdlcnMgY29uc2lkZXJpbmcgYmludHMuCgotLSBAcGFyYW0geCBUaGUgbnVtZXJhdG9yLCBtdXN0IGJlIGEgYmludCBvciBhIGx1YSBpbnRlZ2VyLgoKLS0gQHBhcmFtIHkgVGhlIGRlbm9taW5hdG9yLCBtdXN0IGJlIGEgYmludCBvciBhIGx1YSBpbnRlZ2VyLgoKLS0gQHJldHVybiBUaGUgcmVtYWluZGVyLCBhIGJpbnQuCgotLSBAcmFpc2UgQXNzZXJ0cyBvbiBhdHRlbXB0IHRvIGRpdmlkZSBieSB6ZXJvCgotLSBvciBpZiB0aGUgaW5wdXRzIGFyZSBub3QgY29udmVydGlibGUgdG8gaW50ZWdlcnMuCgpmdW5jdGlvbiBiaW50LnVtb2QoeCwgeSkKCiAgbG9jYWwgXywgcmVtYSA9IGJpbnRfdWRpdm1vZCh4LCB5KQoKICByZXR1cm4gcmVtYQoKZW5kCgpsb2NhbCBiaW50X3Vtb2QgPSBiaW50LnVtb2QKCgoKLS0tIFBlcmZvcm0gaW50ZWdlciB0cnVuY2F0ZSBkaXZpc2lvbiBhbmQgbW9kdWxvIG9wZXJhdGlvbiBiZXR3ZWVuIHR3byBudW1iZXJzIGNvbnNpZGVyaW5nIGJpbnRzLgoKLS0gVGhpcyBpcyBlZmZlY3RpdmVseSB0aGUgc2FtZSBvZiBAe2JpbnQudGRpdn0gYW5kIEB7YmludC50bW9kfS4KCi0tIEBwYXJhbSB4IFRoZSBudW1lcmF0b3IsIGEgYmludCBvciBsdWEgbnVtYmVyLgoKLS0gQHBhcmFtIHkgVGhlIGRlbm9taW5hdG9yLCBhIGJpbnQgb3IgbHVhIG51bWJlci4KCi0tIEByZXR1cm4gVGhlIHF1b3RpZW50IGZvbGxvd2luZyB0aGUgcmVtYWluZGVyLCBib3RoIGJpbnQgb3IgbHVhIG51bWJlci4KCi0tIEByYWlzZSBBc3NlcnRzIG9uIGF0dGVtcHQgdG8gZGl2aWRlIGJ5IHplcm8gb3Igb24gZGl2aXNpb24gb3ZlcmZsb3cuCgotLSBAc2VlIGJpbnQudGRpdgoKLS0gQHNlZSBiaW50LnRtb2QKCmZ1bmN0aW9uIGJpbnQudGRpdm1vZCh4LCB5KQoKICBsb2NhbCBheCwgYXkgPSBiaW50X2Ficyh4KSwgYmludF9hYnMoeSkKCiAgbG9jYWwgaXgsIGl5ID0gdG9iaW50KGF4KSwgdG9iaW50KGF5KQoKICBsb2NhbCBxdW90LCByZW1hCgogIGlmIGl4IGFuZCBpeSB0aGVuCgogICAgYXNzZXJ0KG5vdCAoYmludF9lcSh4LCBCSU5UX01JTklOVEVHRVIpIGFuZCBiaW50X2lzbWludXNvbmUoeSkpLCAnZGl2aXNpb24gb3ZlcmZsb3cnKQoKICAgIHF1b3QsIHJlbWEgPSBiaW50X3VkaXZtb2QoaXgsIGl5KQoKICBlbHNlCgogICAgcXVvdCwgcmVtYSA9IGF4IC8vIGF5LCBheCAlIGF5CgogIGVuZAoKICBsb2NhbCBpc3huZWcsIGlzeW5lZyA9IGJpbnRfaXNuZWcoeCksIGJpbnRfaXNuZWcoeSkKCiAgaWYgaXN4bmVnIH49IGlzeW5lZyB0aGVuCgogICAgcXVvdCA9IC1xdW90CgogIGVuZAoKICBpZiBpc3huZWcgdGhlbgoKICAgIHJlbWEgPSAtcmVtYQoKICBlbmQKCiAgcmV0dXJuIHF1b3QsIHJlbWEKCmVuZAoKbG9jYWwgYmludF90ZGl2bW9kID0gYmludC50ZGl2bW9kCgoKCi0tLSBQZXJmb3JtIHRydW5jYXRlIGRpdmlzaW9uIGJldHdlZW4gdHdvIG51bWJlcnMgY29uc2lkZXJpbmcgYmludHMuCgotLSBUcnVuY2F0ZSBkaXZpc2lvbiBpcyBhIGRpdmlzaW9uIHRoYXQgcm91bmRzIHRoZSBxdW90aWVudCB0b3dhcmRzIHplcm8uCgotLSBAcGFyYW0geCBUaGUgbnVtZXJhdG9yLCBhIGJpbnQgb3IgbHVhIG51bWJlci4KCi0tIEBwYXJhbSB5IFRoZSBkZW5vbWluYXRvciwgYSBiaW50IG9yIGx1YSBudW1iZXIuCgotLSBAcmV0dXJuIFRoZSBxdW90aWVudCwgYSBiaW50IG9yIGx1YSBudW1iZXIuCgotLSBAcmFpc2UgQXNzZXJ0cyBvbiBhdHRlbXB0IHRvIGRpdmlkZSBieSB6ZXJvIG9yIG9uIGRpdmlzaW9uIG92ZXJmbG93LgoKZnVuY3Rpb24gYmludC50ZGl2KHgsIHkpCgogIHJldHVybiAoYmludF90ZGl2bW9kKHgsIHkpKQoKZW5kCgoKCi0tLSBQZXJmb3JtIGludGVnZXIgdHJ1bmNhdGUgbW9kdWxvIG9wZXJhdGlvbiBiZXR3ZWVuIHR3byBudW1iZXJzIGNvbnNpZGVyaW5nIGJpbnRzLgoKLS0gVGhlIG9wZXJhdGlvbiBpcyBkZWZpbmVkIGFzIHRoZSByZW1haW5kZXIgb2YgdGhlIHRydW5jYXRlIGRpdmlzaW9uCgotLSAoZGl2aXNpb24gdGhhdCByb3VuZHMgdGhlIHF1b3RpZW50IHRvd2FyZHMgemVybykuCgotLSBAcGFyYW0geCBUaGUgbnVtZXJhdG9yLCBhIGJpbnQgb3IgbHVhIG51bWJlci4KCi0tIEBwYXJhbSB5IFRoZSBkZW5vbWluYXRvciwgYSBiaW50IG9yIGx1YSBudW1iZXIuCgotLSBAcmV0dXJuIFRoZSByZW1haW5kZXIsIGEgYmludCBvciBsdWEgbnVtYmVyLgoKLS0gQHJhaXNlIEFzc2VydHMgb24gYXR0ZW1wdCB0byBkaXZpZGUgYnkgemVybyBvciBvbiBkaXZpc2lvbiBvdmVyZmxvdy4KCmZ1bmN0aW9uIGJpbnQudG1vZCh4LCB5KQoKICBsb2NhbCBfLCByZW1hID0gYmludF90ZGl2bW9kKHgsIHkpCgogIHJldHVybiByZW1hCgplbmQKCgoKLS0tIFBlcmZvcm0gaW50ZWdlciBmbG9vciBkaXZpc2lvbiBhbmQgbW9kdWxvIG9wZXJhdGlvbiBiZXR3ZWVuIHR3byBudW1iZXJzIGNvbnNpZGVyaW5nIGJpbnRzLgoKLS0gVGhpcyBpcyBlZmZlY3RpdmVseSB0aGUgc2FtZSBvZiBAe2JpbnQuX19pZGl2fSBhbmQgQHtiaW50Ll9fbW9kfS4KCi0tIEBwYXJhbSB4IFRoZSBudW1lcmF0b3IsIGEgYmludCBvciBsdWEgbnVtYmVyLgoKLS0gQHBhcmFtIHkgVGhlIGRlbm9taW5hdG9yLCBhIGJpbnQgb3IgbHVhIG51bWJlci4KCi0tIEByZXR1cm4gVGhlIHF1b3RpZW50IGZvbGxvd2luZyB0aGUgcmVtYWluZGVyLCBib3RoIGJpbnQgb3IgbHVhIG51bWJlci4KCi0tIEByYWlzZSBBc3NlcnRzIG9uIGF0dGVtcHQgdG8gZGl2aWRlIGJ5IHplcm8uCgotLSBAc2VlIGJpbnQuX19pZGl2CgotLSBAc2VlIGJpbnQuX19tb2QKCmZ1bmN0aW9uIGJpbnQuaWRpdm1vZCh4LCB5KQoKICBsb2NhbCBpeCwgaXkgPSB0b2JpbnQoeCksIHRvYmludCh5KQoKICBpZiBpeCBhbmQgaXkgdGhlbgoKICAgIGxvY2FsIGlzbnVtZW5lZyA9IGl4W0JJTlRfU0laRV0gJiBCSU5UX1dPUkRNU0Igfj0gMAoKICAgIGxvY2FsIGlzZGVub25lZyA9IGl5W0JJTlRfU0laRV0gJiBCSU5UX1dPUkRNU0Igfj0gMAoKICAgIGlmIGlzbnVtZW5lZyB0aGVuCgogICAgICBpeCA9IC1peAoKICAgIGVuZAoKICAgIGlmIGlzZGVub25lZyB0aGVuCgogICAgICBpeSA9IC1peQoKICAgIGVuZAoKICAgIGxvY2FsIHF1b3QsIHJlbWEgPSBiaW50X3VkaXZtb2QoaXgsIGl5KQoKICAgIGlmIGlzbnVtZW5lZyB+PSBpc2Rlbm9uZWcgdGhlbgoKICAgICAgcXVvdDpfdW5tKCkKCiAgICAgIC0tIHJvdW5kIHF1b3RpZW50IHRvd2FyZHMgbWludXMgaW5maW5pdHkKCiAgICAgIGlmIG5vdCByZW1hOmlzemVybygpIHRoZW4KCiAgICAgICAgcXVvdDpfZGVjKCkKCiAgICAgICAgLS0gYWRqdXN0IHRoZSByZW1haW5kZXIKCiAgICAgICAgaWYgaXNudW1lbmVnIGFuZCBub3QgaXNkZW5vbmVnIHRoZW4KCiAgICAgICAgICByZW1hOl91bm0oKTpfYWRkKHkpCgogICAgICAgIGVsc2VpZiBpc2Rlbm9uZWcgYW5kIG5vdCBpc251bWVuZWcgdGhlbgoKICAgICAgICAgIHJlbWE6X2FkZCh5KQoKICAgICAgICBlbmQKCiAgICAgIGVuZAoKICAgIGVsc2VpZiBpc251bWVuZWcgdGhlbgoKICAgICAgLS0gYWRqdXN0IHRoZSByZW1haW5kZXIKCiAgICAgIHJlbWE6X3VubSgpCgogICAgZW5kCgogICAgcmV0dXJuIHF1b3QsIHJlbWEKCiAgZW5kCgogIGxvY2FsIG54LCBueSA9IGJpbnRfdG9udW1iZXIoeCksIGJpbnRfdG9udW1iZXIoeSkKCiAgcmV0dXJuIG54IC8vIG55LCBueCAlIG55CgplbmQKCmxvY2FsIGJpbnRfaWRpdm1vZCA9IGJpbnQuaWRpdm1vZAoKCgotLS0gUGVyZm9ybSBmbG9vciBkaXZpc2lvbiBiZXR3ZWVuIHR3byBudW1iZXJzIGNvbnNpZGVyaW5nIGJpbnRzLgoKLS0gRmxvb3IgZGl2aXNpb24gaXMgYSBkaXZpc2lvbiB0aGF0IHJvdW5kcyB0aGUgcXVvdGllbnQgdG93YXJkcyBtaW51cyBpbmZpbml0eSwKCi0tIHJlc3VsdGluZyBpbiB0aGUgZmxvb3Igb2YgdGhlIGRpdmlzaW9uIG9mIGl0cyBvcGVyYW5kcy4KCi0tIEBwYXJhbSB4IFRoZSBudW1lcmF0b3IsIGEgYmludCBvciBsdWEgbnVtYmVyLgoKLS0gQHBhcmFtIHkgVGhlIGRlbm9taW5hdG9yLCBhIGJpbnQgb3IgbHVhIG51bWJlci4KCi0tIEByZXR1cm4gVGhlIHF1b3RpZW50LCBhIGJpbnQgb3IgbHVhIG51bWJlci4KCi0tIEByYWlzZSBBc3NlcnRzIG9uIGF0dGVtcHQgdG8gZGl2aWRlIGJ5IHplcm8uCgpmdW5jdGlvbiBiaW50Ll9faWRpdih4LCB5KQoKICBsb2NhbCBpeCwgaXkgPSB0b2JpbnQoeCksIHRvYmludCh5KQoKICBpZiBpeCBhbmQgaXkgdGhlbgoKICAgIGxvY2FsIGlzbnVtZW5lZyA9IGl4W0JJTlRfU0laRV0gJiBCSU5UX1dPUkRNU0Igfj0gMAoKICAgIGxvY2FsIGlzZGVub25lZyA9IGl5W0JJTlRfU0laRV0gJiBCSU5UX1dPUkRNU0Igfj0gMAoKICAgIGlmIGlzbnVtZW5lZyB0aGVuCgogICAgICBpeCA9IC1peAoKICAgIGVuZAoKICAgIGlmIGlzZGVub25lZyB0aGVuCgogICAgICBpeSA9IC1peQoKICAgIGVuZAoKICAgIGxvY2FsIHF1b3QsIHJlbWEgPSBiaW50X3VkaXZtb2QoaXgsIGl5KQoKICAgIGlmIGlzbnVtZW5lZyB+PSBpc2Rlbm9uZWcgdGhlbgoKICAgICAgcXVvdDpfdW5tKCkKCiAgICAgIC0tIHJvdW5kIHF1b3RpZW50IHRvd2FyZHMgbWludXMgaW5maW5pdHkKCiAgICAgIGlmIG5vdCByZW1hOmlzemVybygpIHRoZW4KCiAgICAgICAgcXVvdDpfZGVjKCkKCiAgICAgIGVuZAoKICAgIGVuZAoKICAgIHJldHVybiBxdW90LCByZW1hCgogIGVuZAoKICByZXR1cm4gYmludF90b251bWJlcih4KSAvLyBiaW50X3RvbnVtYmVyKHkpCgplbmQKCgoKLS0tIFBlcmZvcm0gZGl2aXNpb24gYmV0d2VlbiB0d28gbnVtYmVycyBjb25zaWRlcmluZyBiaW50cy4KCi0tIFRoaXMgYWx3YXlzIGNhc3RzIGlucHV0cyB0byBmbG9hdHMsIGZvciBpbnRlZ2VyIGRpdmlzaW9uIG9ubHkgdXNlIEB7YmludC5fX2lkaXZ9LgoKLS0gQHBhcmFtIHggVGhlIG51bWVyYXRvciwgYSBiaW50IG9yIGx1YSBudW1iZXIuCgotLSBAcGFyYW0geSBUaGUgZGVub21pbmF0b3IsIGEgYmludCBvciBsdWEgbnVtYmVyLgoKLS0gQHJldHVybiBUaGUgcXVvdGllbnQsIGEgbHVhIG51bWJlci4KCmZ1bmN0aW9uIGJpbnQuX19kaXYoeCwgeSkKCiAgcmV0dXJuIGJpbnRfdG9udW1iZXIoeCkgLyBiaW50X3RvbnVtYmVyKHkpCgplbmQKCgoKLS0tIFBlcmZvcm0gaW50ZWdlciBmbG9vciBtb2R1bG8gb3BlcmF0aW9uIGJldHdlZW4gdHdvIG51bWJlcnMgY29uc2lkZXJpbmcgYmludHMuCgotLSBUaGUgb3BlcmF0aW9uIGlzIGRlZmluZWQgYXMgdGhlIHJlbWFpbmRlciBvZiB0aGUgZmxvb3IgZGl2aXNpb24KCi0tIChkaXZpc2lvbiB0aGF0IHJvdW5kcyB0aGUgcXVvdGllbnQgdG93YXJkcyBtaW51cyBpbmZpbml0eSkuCgotLSBAcGFyYW0geCBUaGUgbnVtZXJhdG9yLCBhIGJpbnQgb3IgbHVhIG51bWJlci4KCi0tIEBwYXJhbSB5IFRoZSBkZW5vbWluYXRvciwgYSBiaW50IG9yIGx1YSBudW1iZXIuCgotLSBAcmV0dXJuIFRoZSByZW1haW5kZXIsIGEgYmludCBvciBsdWEgbnVtYmVyLgoKLS0gQHJhaXNlIEFzc2VydHMgb24gYXR0ZW1wdCB0byBkaXZpZGUgYnkgemVyby4KCmZ1bmN0aW9uIGJpbnQuX19tb2QoeCwgeSkKCiAgbG9jYWwgXywgcmVtYSA9IGJpbnRfaWRpdm1vZCh4LCB5KQoKICByZXR1cm4gcmVtYQoKZW5kCgoKCi0tLSBQZXJmb3JtIGludGVnZXIgcG93ZXIgYmV0d2VlbiB0d28gaW50ZWdlcnMgY29uc2lkZXJpbmcgYmludHMuCgotLSBJZiB5IGlzIG5lZ2F0aXZlIHRoZW4gcG93IGlzIHBlcmZvcm1lZCBhcyBhbiB1bnNpZ25lZCBpbnRlZ2VyLgoKLS0gQHBhcmFtIHggVGhlIGJhc2UsIGFuIGludGVnZXIuCgotLSBAcGFyYW0geSBUaGUgZXhwb25lbnQsIGFuIGludGVnZXIuCgotLSBAcmV0dXJuIFRoZSByZXN1bHQgb2YgdGhlIHBvdyBvcGVyYXRpb24sIGEgYmludC4KCi0tIEByYWlzZSBBc3NlcnRzIGluIGNhc2UgaW5wdXRzIGFyZSBub3QgY29udmVydGlibGUgdG8gaW50ZWdlcnMuCgotLSBAc2VlIGJpbnQuX19wb3cKCi0tIEBzZWUgYmludC51cG93bW9kCgpmdW5jdGlvbiBiaW50Lmlwb3coeCwgeSkKCiAgeSA9IGJpbnRfYXNzZXJ0X2NvbnZlcnQoeSkKCiAgaWYgeTppc3plcm8oKSB0aGVuCgogICAgcmV0dXJuIGJpbnRfb25lKCkKCiAgZWxzZWlmIHk6aXNvbmUoKSB0aGVuCgogICAgcmV0dXJuIGJpbnRfbmV3KHgpCgogIGVuZAoKICAtLSBjb21wdXRlIGV4cG9uZW50aWF0aW9uIGJ5IHNxdWFyaW5nCgogIHgsIHkgPSBiaW50X25ldyh4KSwgIGJpbnRfbmV3KHkpCgogIGxvY2FsIHogPSBiaW50X29uZSgpCgogIHJlcGVhdAoKICAgIGlmIHk6aXNldmVuKCkgdGhlbgoKICAgICAgeCA9IHggKiB4CgogICAgICB5Ol9zaHJvbmUoKQoKICAgIGVsc2UKCiAgICAgIHogPSB4ICogegoKICAgICAgeCA9IHggKiB4CgogICAgICB5Ol9kZWMoKTpfc2hyb25lKCkKCiAgICBlbmQKCiAgdW50aWwgeTppc29uZSgpCgogIHJldHVybiB4ICogegoKZW5kCgoKCi0tLSBQZXJmb3JtIGludGVnZXIgcG93ZXIgYmV0d2VlbiB0d28gdW5zaWduZWQgaW50ZWdlcnMgb3ZlciBhIG1vZHVsdXMgY29uc2lkZXJpbmcgYmludHMuCgotLSBAcGFyYW0geCBUaGUgYmFzZSwgYW4gaW50ZWdlci4KCi0tIEBwYXJhbSB5IFRoZSBleHBvbmVudCwgYW4gaW50ZWdlci4KCi0tIEBwYXJhbSBtIFRoZSBtb2R1bHVzLCBhbiBpbnRlZ2VyLgoKLS0gQHJldHVybiBUaGUgcmVzdWx0IG9mIHRoZSBwb3cgb3BlcmF0aW9uLCBhIGJpbnQuCgotLSBAcmFpc2UgQXNzZXJ0cyBpbiBjYXNlIGlucHV0cyBhcmUgbm90IGNvbnZlcnRpYmxlIHRvIGludGVnZXJzLgoKLS0gQHNlZSBiaW50Ll9fcG93CgotLSBAc2VlIGJpbnQuaXBvdwoKZnVuY3Rpb24gYmludC51cG93bW9kKHgsIHksIG0pCgogIG0gPSBiaW50X2Fzc2VydF9jb252ZXJ0KG0pCgogIGlmIG06aXNvbmUoKSB0aGVuCgogICAgcmV0dXJuIGJpbnRfemVybygpCgogIGVuZAoKICB4LCB5ID0gYmludF9uZXcoeCksICBiaW50X25ldyh5KQoKICBsb2NhbCB6ID0gYmludF9vbmUoKQoKICB4ID0gYmludF91bW9kKHgsIG0pCgogIHdoaWxlIG5vdCB5OmlzemVybygpIGRvCgogICAgaWYgeTppc29kZCgpIHRoZW4KCiAgICAgIHogPSBiaW50X3Vtb2Qoeip4LCBtKQoKICAgIGVuZAoKICAgIHk6X3Nocm9uZSgpCgogICAgeCA9IGJpbnRfdW1vZCh4KngsIG0pCgogIGVuZAoKICByZXR1cm4gegoKZW5kCgoKCi0tLSBQZXJmb3JtIG51bWVyaWMgcG93ZXIgYmV0d2VlbiB0d28gbnVtYmVycyBjb25zaWRlcmluZyBiaW50cy4KCi0tIFRoaXMgYWx3YXlzIGNhc3RzIGlucHV0cyB0byBmbG9hdHMsIGZvciBpbnRlZ2VyIHBvd2VyIG9ubHkgdXNlIEB7YmludC5pcG93fS4KCi0tIEBwYXJhbSB4IFRoZSBiYXNlLCBhIGJpbnQgb3IgbHVhIG51bWJlci4KCi0tIEBwYXJhbSB5IFRoZSBleHBvbmVudCwgYSBiaW50IG9yIGx1YSBudW1iZXIuCgotLSBAcmV0dXJuIFRoZSByZXN1bHQgb2YgdGhlIHBvdyBvcGVyYXRpb24sIGEgbHVhIG51bWJlci4KCi0tIEBzZWUgYmludC5pcG93CgpmdW5jdGlvbiBiaW50Ll9fcG93KHgsIHkpCgogIHJldHVybiBiaW50X3RvbnVtYmVyKHgpIF4gYmludF90b251bWJlcih5KQoKZW5kCgoKCi0tLSBCaXR3aXNlIGxlZnQgc2hpZnQgaW50ZWdlcnMgY29uc2lkZXJpbmcgYmludHMuCgotLSBAcGFyYW0geCBBbiBpbnRlZ2VyIHRvIHBlcmZvcm0gdGhlIGJpdHdpc2Ugc2hpZnQuCgotLSBAcGFyYW0geSBBbiBpbnRlZ2VyIHdpdGggdGhlIG51bWJlciBvZiBiaXRzIHRvIHNoaWZ0LgoKLS0gQHJldHVybiBUaGUgcmVzdWx0IG9mIHNoaWZ0IG9wZXJhdGlvbiwgYSBiaW50LgoKLS0gQHJhaXNlIEFzc2VydHMgaW4gY2FzZSBpbnB1dHMgYXJlIG5vdCBjb252ZXJ0aWJsZSB0byBpbnRlZ2Vycy4KCmZ1bmN0aW9uIGJpbnQuX19zaGwoeCwgeSkKCiAgeCwgeSA9IGJpbnRfbmV3KHgpLCBiaW50X2Fzc2VydF90b2ludGVnZXIoeSkKCiAgaWYgeSA9PSBtYXRoX21pbmludGVnZXIgb3IgbWF0aF9hYnMoeSkgPj0gQklOVF9CSVRTIHRoZW4KCiAgICByZXR1cm4gYmludF96ZXJvKCkKCiAgZW5kCgogIGlmIHkgPCAwIHRoZW4KCiAgICByZXR1cm4geCA+PiAteQoKICBlbmQKCiAgbG9jYWwgbnZhbHMgPSB5IC8vIEJJTlRfV09SREJJVFMKCiAgaWYgbnZhbHMgfj0gMCB0aGVuCgogICAgeDpfc2hsd29yZHMobnZhbHMpCgogICAgeSA9IHkgLSBudmFscyAqIEJJTlRfV09SREJJVFMKCiAgZW5kCgogIGlmIHkgfj0gMCB0aGVuCgogICAgbG9jYWwgd29yZGJpdHNteSA9IEJJTlRfV09SREJJVFMgLSB5CgogICAgZm9yIGk9QklOVF9TSVpFLDIsLTEgZG8KCiAgICAgIHhbaV0gPSAoKHhbaV0gPDwgeSkgfCAoeFtpLTFdID4+IHdvcmRiaXRzbXkpKSAmIEJJTlRfV09SRE1BWAoKICAgIGVuZAoKICAgIHhbMV0gPSAoeFsxXSA8PCB5KSAmIEJJTlRfV09SRE1BWAoKICBlbmQKCiAgcmV0dXJuIHgKCmVuZAoKCgotLS0gQml0d2lzZSByaWdodCBzaGlmdCBpbnRlZ2VycyBjb25zaWRlcmluZyBiaW50cy4KCi0tIEBwYXJhbSB4IEFuIGludGVnZXIgdG8gcGVyZm9ybSB0aGUgYml0d2lzZSBzaGlmdC4KCi0tIEBwYXJhbSB5IEFuIGludGVnZXIgd2l0aCB0aGUgbnVtYmVyIG9mIGJpdHMgdG8gc2hpZnQuCgotLSBAcmV0dXJuIFRoZSByZXN1bHQgb2Ygc2hpZnQgb3BlcmF0aW9uLCBhIGJpbnQuCgotLSBAcmFpc2UgQXNzZXJ0cyBpbiBjYXNlIGlucHV0cyBhcmUgbm90IGNvbnZlcnRpYmxlIHRvIGludGVnZXJzLgoKZnVuY3Rpb24gYmludC5fX3Nocih4LCB5KQoKICB4LCB5ID0gYmludF9uZXcoeCksIGJpbnRfYXNzZXJ0X3RvaW50ZWdlcih5KQoKICBpZiB5ID09IG1hdGhfbWluaW50ZWdlciBvciBtYXRoX2Ficyh5KSA+PSBCSU5UX0JJVFMgdGhlbgoKICAgIHJldHVybiBiaW50X3plcm8oKQoKICBlbmQKCiAgaWYgeSA8IDAgdGhlbgoKICAgIHJldHVybiB4IDw8IC15CgogIGVuZAoKICBsb2NhbCBudmFscyA9IHkgLy8gQklOVF9XT1JEQklUUwoKICBpZiBudmFscyB+PSAwIHRoZW4KCiAgICB4Ol9zaHJ3b3JkcyhudmFscykKCiAgICB5ID0geSAtIG52YWxzICogQklOVF9XT1JEQklUUwoKICBlbmQKCiAgaWYgeSB+PSAwIHRoZW4KCiAgICBsb2NhbCB3b3JkYml0c215ID0gQklOVF9XT1JEQklUUyAtIHkKCiAgICBmb3IgaT0xLEJJTlRfU0laRS0xIGRvCgogICAgICB4W2ldID0gKCh4W2ldID4+IHkpIHwgKHhbaSsxXSA8PCB3b3JkYml0c215KSkgJiBCSU5UX1dPUkRNQVgKCiAgICBlbmQKCiAgICB4W0JJTlRfU0laRV0gPSB4W0JJTlRfU0laRV0gPj4geQoKICBlbmQKCiAgcmV0dXJuIHgKCmVuZAoKCgotLS0gQml0d2lzZSBBTkQgYmludHMgKGluLXBsYWNlKS4KCi0tIEBwYXJhbSB5IEFuIGludGVnZXIgdG8gcGVyZm9ybSBiaXR3aXNlIEFORC4KCi0tIEByYWlzZSBBc3NlcnRzIGluIGNhc2UgaW5wdXRzIGFyZSBub3QgY29udmVydGlibGUgdG8gaW50ZWdlcnMuCgpmdW5jdGlvbiBiaW50Ol9iYW5kKHkpCgogIHkgPSBiaW50X2Fzc2VydF9jb252ZXJ0KHkpCgogIGZvciBpPTEsQklOVF9TSVpFIGRvCgogICAgc2VsZltpXSA9IHNlbGZbaV0gJiB5W2ldCgogIGVuZAoKICByZXR1cm4gc2VsZgoKZW5kCgoKCi0tLSBCaXR3aXNlIEFORCB0d28gaW50ZWdlcnMgY29uc2lkZXJpbmcgYmludHMuCgotLSBAcGFyYW0geCBBbiBpbnRlZ2VyIHRvIHBlcmZvcm0gYml0d2lzZSBBTkQuCgotLSBAcGFyYW0geSBBbiBpbnRlZ2VyIHRvIHBlcmZvcm0gYml0d2lzZSBBTkQuCgotLSBAcmFpc2UgQXNzZXJ0cyBpbiBjYXNlIGlucHV0cyBhcmUgbm90IGNvbnZlcnRpYmxlIHRvIGludGVnZXJzLgoKZnVuY3Rpb24gYmludC5fX2JhbmQoeCwgeSkKCiAgcmV0dXJuIGJpbnRfbmV3KHgpOl9iYW5kKHkpCgplbmQKCgoKLS0tIEJpdHdpc2UgT1IgYmludHMgKGluLXBsYWNlKS4KCi0tIEBwYXJhbSB5IEFuIGludGVnZXIgdG8gcGVyZm9ybSBiaXR3aXNlIE9SLgoKLS0gQHJhaXNlIEFzc2VydHMgaW4gY2FzZSBpbnB1dHMgYXJlIG5vdCBjb252ZXJ0aWJsZSB0byBpbnRlZ2Vycy4KCmZ1bmN0aW9uIGJpbnQ6X2Jvcih5KQoKICB5ID0gYmludF9hc3NlcnRfY29udmVydCh5KQoKICBmb3IgaT0xLEJJTlRfU0laRSBkbwoKICAgIHNlbGZbaV0gPSBzZWxmW2ldIHwgeVtpXQoKICBlbmQKCiAgcmV0dXJuIHNlbGYKCmVuZAoKCgotLS0gQml0d2lzZSBPUiB0d28gaW50ZWdlcnMgY29uc2lkZXJpbmcgYmludHMuCgotLSBAcGFyYW0geCBBbiBpbnRlZ2VyIHRvIHBlcmZvcm0gYml0d2lzZSBPUi4KCi0tIEBwYXJhbSB5IEFuIGludGVnZXIgdG8gcGVyZm9ybSBiaXR3aXNlIE9SLgoKLS0gQHJhaXNlIEFzc2VydHMgaW4gY2FzZSBpbnB1dHMgYXJlIG5vdCBjb252ZXJ0aWJsZSB0byBpbnRlZ2Vycy4KCmZ1bmN0aW9uIGJpbnQuX19ib3IoeCwgeSkKCiAgcmV0dXJuIGJpbnRfbmV3KHgpOl9ib3IoeSkKCmVuZAoKCgotLS0gQml0d2lzZSBYT1IgYmludHMgKGluLXBsYWNlKS4KCi0tIEBwYXJhbSB5IEFuIGludGVnZXIgdG8gcGVyZm9ybSBiaXR3aXNlIFhPUi4KCi0tIEByYWlzZSBBc3NlcnRzIGluIGNhc2UgaW5wdXRzIGFyZSBub3QgY29udmVydGlibGUgdG8gaW50ZWdlcnMuCgpmdW5jdGlvbiBiaW50Ol9ieG9yKHkpCgogIHkgPSBiaW50X2Fzc2VydF9jb252ZXJ0KHkpCgogIGZvciBpPTEsQklOVF9TSVpFIGRvCgogICAgc2VsZltpXSA9IHNlbGZbaV0gfiB5W2ldCgogIGVuZAoKICByZXR1cm4gc2VsZgoKZW5kCgoKCi0tLSBCaXR3aXNlIFhPUiB0d28gaW50ZWdlcnMgY29uc2lkZXJpbmcgYmludHMuCgotLSBAcGFyYW0geCBBbiBpbnRlZ2VyIHRvIHBlcmZvcm0gYml0d2lzZSBYT1IuCgotLSBAcGFyYW0geSBBbiBpbnRlZ2VyIHRvIHBlcmZvcm0gYml0d2lzZSBYT1IuCgotLSBAcmFpc2UgQXNzZXJ0cyBpbiBjYXNlIGlucHV0cyBhcmUgbm90IGNvbnZlcnRpYmxlIHRvIGludGVnZXJzLgoKZnVuY3Rpb24gYmludC5fX2J4b3IoeCwgeSkKCiAgcmV0dXJuIGJpbnRfbmV3KHgpOl9ieG9yKHkpCgplbmQKCgoKLS0tIEJpdHdpc2UgTk9UIGEgYmludCAoaW4tcGxhY2UpLgoKZnVuY3Rpb24gYmludDpfYm5vdCgpCgogIGZvciBpPTEsQklOVF9TSVpFIGRvCgogICAgc2VsZltpXSA9ICh+c2VsZltpXSkgJiBCSU5UX1dPUkRNQVgKCiAgZW5kCgogIHJldHVybiBzZWxmCgplbmQKCgoKLS0tIEJpdHdpc2UgTk9UIGEgYmludC4KCi0tIEBwYXJhbSB4IEFuIGludGVnZXIgdG8gcGVyZm9ybSBiaXR3aXNlIE5PVC4KCi0tIEByYWlzZSBBc3NlcnRzIGluIGNhc2UgaW5wdXRzIGFyZSBub3QgY29udmVydGlibGUgdG8gaW50ZWdlcnMuCgpmdW5jdGlvbiBiaW50Ll9fYm5vdCh4KQoKICBsb2NhbCB5ID0gc2V0bWV0YXRhYmxlKHt9LCBiaW50KQoKICBmb3IgaT0xLEJJTlRfU0laRSBkbwoKICAgIHlbaV0gPSAofnhbaV0pICYgQklOVF9XT1JETUFYCgogIGVuZAoKICByZXR1cm4geQoKZW5kCgoKCi0tLSBOZWdhdGUgYSBiaW50IChpbi1wbGFjZSkuIFRoaXMgZWZmZWN0aXZlbHkgYXBwbGllcyB0d28ncyBjb21wbGVtZW50cy4KCmZ1bmN0aW9uIGJpbnQ6X3VubSgpCgogIHJldHVybiBzZWxmOl9ibm90KCk6X2luYygpCgplbmQKCgoKLS0tIE5lZ2F0ZSBhIGJpbnQuIFRoaXMgZWZmZWN0aXZlbHkgYXBwbGllcyB0d28ncyBjb21wbGVtZW50cy4KCi0tIEBwYXJhbSB4IEEgYmludCB0byBwZXJmb3JtIG5lZ2F0aW9uLgoKZnVuY3Rpb24gYmludC5fX3VubSh4KQoKICByZXR1cm4gKH54KTpfaW5jKCkKCmVuZAoKCgotLS0gQ29tcGFyZSBpZiBpbnRlZ2VyIHggaXMgbGVzcyB0aGFuIHkgY29uc2lkZXJpbmcgYmludHMgKHVuc2lnbmVkIHZlcnNpb24pLgoKLS0gQHBhcmFtIHggTGVmdCBpbnRlZ2VyIHRvIGNvbXBhcmUuCgotLSBAcGFyYW0geSBSaWdodCBpbnRlZ2VyIHRvIGNvbXBhcmUuCgotLSBAcmFpc2UgQXNzZXJ0cyBpbiBjYXNlIGlucHV0cyBhcmUgbm90IGNvbnZlcnRpYmxlIHRvIGludGVnZXJzLgoKLS0gQHNlZSBiaW50Ll9fbHQKCmZ1bmN0aW9uIGJpbnQudWx0KHgsIHkpCgogIHgsIHkgPSBiaW50X2Fzc2VydF9jb252ZXJ0KHgpLCBiaW50X2Fzc2VydF9jb252ZXJ0KHkpCgogIGZvciBpPUJJTlRfU0laRSwxLC0xIGRvCgogICAgbG9jYWwgYSwgYiA9IHhbaV0sIHlbaV0KCiAgICBpZiBhIH49IGIgdGhlbgoKICAgICAgcmV0dXJuIGEgPCBiCgogICAgZW5kCgogIGVuZAoKICByZXR1cm4gZmFsc2UKCmVuZAoKCgotLS0gQ29tcGFyZSBpZiBiaW50IHggaXMgbGVzcyBvciBlcXVhbCB0aGFuIHkgY29uc2lkZXJpbmcgYmludHMgKHVuc2lnbmVkIHZlcnNpb24pLgoKLS0gQHBhcmFtIHggTGVmdCBpbnRlZ2VyIHRvIGNvbXBhcmUuCgotLSBAcGFyYW0geSBSaWdodCBpbnRlZ2VyIHRvIGNvbXBhcmUuCgotLSBAcmFpc2UgQXNzZXJ0cyBpbiBjYXNlIGlucHV0cyBhcmUgbm90IGNvbnZlcnRpYmxlIHRvIGludGVnZXJzLgoKLS0gQHNlZSBiaW50Ll9fbGUKCmZ1bmN0aW9uIGJpbnQudWxlKHgsIHkpCgogIHgsIHkgPSBiaW50X2Fzc2VydF9jb252ZXJ0KHgpLCBiaW50X2Fzc2VydF9jb252ZXJ0KHkpCgogIGZvciBpPUJJTlRfU0laRSwxLC0xIGRvCgogICAgbG9jYWwgYSwgYiA9IHhbaV0sIHlbaV0KCiAgICBpZiBhIH49IGIgdGhlbgoKICAgICAgcmV0dXJuIGEgPCBiCgogICAgZW5kCgogIGVuZAoKICByZXR1cm4gdHJ1ZQoKZW5kCgoKCi0tLSBDb21wYXJlIGlmIG51bWJlciB4IGlzIGxlc3MgdGhhbiB5IGNvbnNpZGVyaW5nIGJpbnRzIGFuZCBzaWducy4KCi0tIEBwYXJhbSB4IExlZnQgdmFsdWUgdG8gY29tcGFyZSwgYSBiaW50IG9yIGx1YSBudW1iZXIuCgotLSBAcGFyYW0geSBSaWdodCB2YWx1ZSB0byBjb21wYXJlLCBhIGJpbnQgb3IgbHVhIG51bWJlci4KCi0tIEBzZWUgYmludC51bHQKCmZ1bmN0aW9uIGJpbnQuX19sdCh4LCB5KQoKICBsb2NhbCBpeCwgaXkgPSB0b2JpbnQoeCksIHRvYmludCh5KQoKICBpZiBpeCBhbmQgaXkgdGhlbgoKICAgIGxvY2FsIHhuZWcgPSBpeFtCSU5UX1NJWkVdICYgQklOVF9XT1JETVNCIH49IDAKCiAgICBsb2NhbCB5bmVnID0gaXlbQklOVF9TSVpFXSAmIEJJTlRfV09SRE1TQiB+PSAwCgogICAgaWYgeG5lZyA9PSB5bmVnIHRoZW4KCiAgICAgIGZvciBpPUJJTlRfU0laRSwxLC0xIGRvCgogICAgICAgIGxvY2FsIGEsIGIgPSBpeFtpXSwgaXlbaV0KCiAgICAgICAgaWYgYSB+PSBiIHRoZW4KCiAgICAgICAgICByZXR1cm4gYSA8IGIKCiAgICAgICAgZW5kCgogICAgICBlbmQKCiAgICAgIHJldHVybiBmYWxzZQoKICAgIGVuZAoKICAgIHJldHVybiB4bmVnIGFuZCBub3QgeW5lZwoKICBlbmQKCiAgcmV0dXJuIGJpbnRfdG9udW1iZXIoeCkgPCBiaW50X3RvbnVtYmVyKHkpCgplbmQKCgoKLS0tIENvbXBhcmUgaWYgbnVtYmVyIHggaXMgbGVzcyBvciBlcXVhbCB0aGFuIHkgY29uc2lkZXJpbmcgYmludHMgYW5kIHNpZ25zLgoKLS0gQHBhcmFtIHggTGVmdCB2YWx1ZSB0byBjb21wYXJlLCBhIGJpbnQgb3IgbHVhIG51bWJlci4KCi0tIEBwYXJhbSB5IFJpZ2h0IHZhbHVlIHRvIGNvbXBhcmUsIGEgYmludCBvciBsdWEgbnVtYmVyLgoKLS0gQHNlZSBiaW50LnVsZQoKZnVuY3Rpb24gYmludC5fX2xlKHgsIHkpCgogIGxvY2FsIGl4LCBpeSA9IHRvYmludCh4KSwgdG9iaW50KHkpCgogIGlmIGl4IGFuZCBpeSB0aGVuCgogICAgbG9jYWwgeG5lZyA9IGl4W0JJTlRfU0laRV0gJiBCSU5UX1dPUkRNU0Igfj0gMAoKICAgIGxvY2FsIHluZWcgPSBpeVtCSU5UX1NJWkVdICYgQklOVF9XT1JETVNCIH49IDAKCiAgICBpZiB4bmVnID09IHluZWcgdGhlbgoKICAgICAgZm9yIGk9QklOVF9TSVpFLDEsLTEgZG8KCiAgICAgICAgbG9jYWwgYSwgYiA9IGl4W2ldLCBpeVtpXQoKICAgICAgICBpZiBhIH49IGIgdGhlbgoKICAgICAgICAgIHJldHVybiBhIDwgYgoKICAgICAgICBlbmQKCiAgICAgIGVuZAoKICAgICAgcmV0dXJuIHRydWUKCiAgICBlbmQKCiAgICByZXR1cm4geG5lZyBhbmQgbm90IHluZWcKCiAgZW5kCgogIHJldHVybiBiaW50X3RvbnVtYmVyKHgpIDw9IGJpbnRfdG9udW1iZXIoeSkKCmVuZAoKCgotLS0gQ29udmVydCBhIGJpbnQgdG8gYSBzdHJpbmcgb24gYmFzZSAxMC4KCi0tIEBzZWUgYmludC50b2Jhc2UKCmZ1bmN0aW9uIGJpbnQ6X190b3N0cmluZygpCgogIHJldHVybiBzZWxmOnRvYmFzZSgxMCkKCmVuZAoKCgotLSBBbGxvdyBjcmVhdGluZyBiaW50cyBieSBjYWxsaW5nIGJpbnQgaXRzZWxmCgpzZXRtZXRhdGFibGUoYmludCwgewoKICBfX2NhbGwgPSBmdW5jdGlvbihfLCB4KQoKICAgIHJldHVybiBiaW50X25ldyh4KQoKICBlbmQKCn0pCgoKCkJJTlRfTUFUSE1JTklOVEVHRVIsIEJJTlRfTUFUSE1BWElOVEVHRVIgPSBiaW50X25ldyhtYXRoLm1pbmludGVnZXIpLCBiaW50X25ldyhtYXRoLm1heGludGVnZXIpCgpCSU5UX01JTklOVEVHRVIgPSBiaW50Lm1pbmludGVnZXIoKQoKbWVtb1ttZW1vaW5kZXhdID0gYmludAoKCgpyZXR1cm4gYmludAoKCgplbmQKCgoKcmV0dXJuIG5ld21vZHVsZQBBsLMEC8EZbG9jYWwgTiA9IDYyNAoKbG9jYWwgTSA9IDM5NwoKbG9jYWwgTUFUUklYX0EgPSAweDk5MDhiMGRmCgpsb2NhbCBVUFBFUl9NQVNLID0gMHg4MDAwMDAwMAoKbG9jYWwgTE9XRVJfTUFTSyA9IDB4N2ZmZmZmZmYKCgoKLS0gaW5pdGlhbGl6ZXMgbXRbTl0gd2l0aCBhIHNlZWQKCmxvY2FsIGZ1bmN0aW9uIGluaXRfZ2VucmFuZChvLCBzKQoKICAgIG8ubXRbMF0gPSBzICYgMHhmZmZmZmZmZgoKICAgIGZvciBpID0gMSwgTiAtIDEgZG8KCiAgICAgICAgby5tdFtpXSA9ICgxODEyNDMzMjUzICogKG8ubXRbaSAtIDFdIH4gKG8ubXRbaSAtIDFdID4+IDMwKSkpICsgaQoKICAgICAgICAtLSBTZWUgS251dGggVEFPQ1AgVm9sMi4gM3JkIEVkLiBQLjEwNiBmb3IgbXVsdGlwbGllci4KCiAgICAgICAgLS0gSW4gdGhlIHByZXZpb3VzIHZlcnNpb25zLCBNU0JzIG9mIHRoZSBzZWVkIGFmZmVjdAoKICAgICAgICAtLSBvbmx5IE1TQnMgb2YgdGhlIGFycmF5IG10W10uCgogICAgICAgIC0tIDIwMDIvMDEvMDkgbW9kaWZpZWQgYnkgTWFrb3RvIE1hdHN1bW90bwoKICAgICAgICBvLm10W2ldID0gby5tdFtpXSAmIDB4ZmZmZmZmZmYKCiAgICAgICAgLS0gZm9yID4zMiBiaXQgbWFjaGluZXMKCiAgICBlbmQKCiAgICBvLm10aSA9IE4KCmVuZAoKCgotLSBnZW5lcmF0ZXMgYSByYW5kb20gbnVtYmVyIG9uIFswLDB4ZmZmZmZmZmZdLWludGVydmFsCgpsb2NhbCBmdW5jdGlvbiBnZW5yYW5kX2ludDMyKG8pCgogICAgbG9jYWwgeQoKICAgIGxvY2FsIG1hZzAxID0ge30gLS0gbWFnMDFbeF0gPSB4ICogTUFUUklYX0EgIGZvciB4PTAsMQoKICAgIG1hZzAxWzBdID0gMHgwCgogICAgbWFnMDFbMV0gPSBNQVRSSVhfQQoKICAgIGlmIG8ubXRpID49IE4gdGhlbiAgLS0gZ2VuZXJhdGUgTiB3b3JkcyBhdCBvbmUgdGltZQoKICAgICAgICBpZiBvLm10aSA9PSBOICsgMSB0aGVuIC0tIGlmIGluaXRfZ2VucmFuZCgpIGhhcyBub3QgYmVlbiBjYWxsZWQsCgogICAgICAgICAgICBpbml0X2dlbnJhbmQobywgNTQ4OSkgICAtLSBhIGRlZmF1bHQgaW5pdGlhbCBzZWVkIGlzIHVzZWQKCiAgICAgICAgZW5kCgogICAgICAgIGZvciBrayA9IDAsIE4gLSBNIC0gMSBkbwoKICAgICAgICAgICAgeSA9IChvLm10W2trXSAmIFVQUEVSX01BU0spIHwgKG8ubXRba2sgKyAxXSAmIExPV0VSX01BU0spCgogICAgICAgICAgICBvLm10W2trXSA9IG8ubXRba2sgKyBNXSB+ICh5ID4+IDEpIH4gbWFnMDFbeSAmIDB4MV0KCiAgICAgICAgZW5kCgogICAgICAgIGZvciBrayA9IE4gLSBNLCBOIC0gMiBkbwoKICAgICAgICAgICAgeSA9IChvLm10W2trXSAmIFVQUEVSX01BU0spIHwgKG8ubXRba2sgKyAxXSAmIExPV0VSX01BU0spCgogICAgICAgICAgICBvLm10W2trXSA9IG8ubXRba2sgKyAoTSAtIE4pXSB+ICh5ID4+IDEpIH4gbWFnMDFbeSAmIDB4MV0KCiAgICAgICAgZW5kCgogICAgICAgIHkgPSAoby5tdFtOIC0gMV0gJiBVUFBFUl9NQVNLKSB8IChvLm10WzBdICYgTE9XRVJfTUFTSykKCiAgICAgICAgby5tdFtOIC0gMV0gPSBvLm10W00gLSAxXSB+ICh5ID4+IDEpIH4gbWFnMDFbeSAmIDB4MV0KCgoKICAgICAgICBvLm10aSA9IDAKCiAgICBlbmQKCgoKICAgIHkgPSBvLm10W28ubXRpXQoKICAgIG8ubXRpID0gby5tdGkgKyAxCgoKCiAgICAtLSBUZW1wZXJpbmcKCiAgICB5ID0geSB+ICh5ID4+IDExKQoKICAgIHkgPSB5IH4gKCh5IDw8IDcpICYgMHg5ZDJjNTY4MCkKCiAgICB5ID0geSB+ICgoeSA8PCAxNSkgJiAweGVmYzYwMDAwKQoKICAgIHkgPSB5IH4gKHkgPj4gMTgpCgoKCiAgICByZXR1cm4geQoKZW5kCgoKCmxvY2FsIE1lcnNlbm5lVHdpc3RlciA9IHt9CgpNZXJzZW5uZVR3aXN0ZXIubXQgPSB7fQoKTWVyc2VubmVUd2lzdGVyLm10aSA9IE4gKyAxCgoKCgoKbG9jYWwgUmFuZG9tID0ge30KCgoKLS0gc2V0IG5ldyByYW5kb20gc2VlZAoKZnVuY3Rpb24gUmFuZG9tLnNlZWQoc2VlZCkKCiAgICBpbml0X2dlbnJhbmQoTWVyc2VubmVUd2lzdGVyLCBzZWVkKQoKZW5kCgoKCi0tIGdlbmVyYXRlcyBhIHJhbmRvbSBudW1iZXIgb24gWzAsMSktcmVhbC1pbnRlcnZhbAoKZnVuY3Rpb24gUmFuZG9tLnJhbmRvbSgpCgogICAgcmV0dXJuIGdlbnJhbmRfaW50MzIoTWVyc2VubmVUd2lzdGVyKSAqICgxLjAgLyA0Mjk0OTY3Mjk2LjApCgplbmQKCgoKLS1bWwoKcmV0dXJuIGEgcmFuZG9tIGludGVnZXIKCk5PVEUgdGhlIG1pbiBhbmQgbWF4IGFyZSBJTkNMVURFRCBpbiB0aGUgcmFuZ2UuCgp0aGUgbWF4IGludGVnZXIgaW4gbHVhIGlzIG1hdGgubWF4aW50ZWdlcgoKdGhlIG1pbiBpcyBtYXRoLm1pbmludGVnZXIKCl1dCgpmdW5jdGlvbiBSYW5kb20uaW50ZWdlcihtaW4sIG1heCkKCiAgICBhc3NlcnQobWF4ID49IG1pbiwgIm1heCBtdXN0IGJpZ2dlciB0aGFuIG1pbiIpCgogICAgcmV0dXJuIG1hdGguZmxvb3IoUmFuZG9tLnJhbmRvbSgpICogKG1heCAtIG1pbiArIDEpICsgbWluKQoKZW5kCgoKCnJldHVybiBSYW5kb20AAAAALS0gZGVmYXVsdCBoYW5kbGVyIGZvciBhb3MKCnJldHVybiBmdW5jdGlvbiAoaW5zZXJ0SW5ib3gpCgogIHJldHVybiBmdW5jdGlvbiAobXNnKQoKICAgIC0tIEFkZCBNZXNzYWdlIHRvIEluYm94CgogICAgaW5zZXJ0SW5ib3gobXNnKQoKCgogICAgbG9jYWwgdHh0ID0gQ29sb3JzLmdyYXkgLi4gIk5ldyBNZXNzYWdlIEZyb20gIiAuLiBDb2xvcnMuZ3JlZW4gLi4gCgogICAgKG1zZy5Gcm9tIGFuZCAobXNnLkZyb206c3ViKDEsMykgLi4gIi4uLiIgLi4gbXNnLkZyb206c3ViKC0zKSkgb3IgInVua25vd24iKSAuLiBDb2xvcnMuZ3JheSAuLiAiOiAiCgogICAgaWYgbXNnLkFjdGlvbiB0aGVuCgogICAgICB0eHQgPSB0eHQgLi4gQ29sb3JzLmdyYXkgLi4gKG1zZy5BY3Rpb24gYW5kICgiQWN0aW9uID0gIiAuLiBDb2xvcnMuYmx1ZSAuLiBtc2cuQWN0aW9uOnN1YigxLDIwKSkgb3IgIiIpIC4uIENvbG9ycy5yZXNldAoKICAgIGVsc2UKCiAgICAgIGxvY2FsIGRhdGEgPSBtc2cuRGF0YQoKICAgICAgaWYgdHlwZShkYXRhKSA9PSAndGFibGUnIHRoZW4KCiAgICAgICAgZGF0YSA9IHJlcXVpcmUoJ2pzb24nKS5lbmNvZGUoZGF0YSkKCiAgICAgIGVuZAoKICAgICAgdHh0ID0gdHh0IC4uIENvbG9ycy5ncmF5IC4uICJEYXRhID0gIiAuLiBDb2xvcnMuYmx1ZSAuLiAoZGF0YSBhbmQgZGF0YTpzdWIoMSwyMCkgb3IgIiIpIC4uIENvbG9ycy5yZXNldAoKICAgIGVuZAoKICAgIC0tIFByaW50IHRvIE91dHB1dAoKICAgIHByaW50KHR4dCkKCiAgZW5kCgoKCmVuZABBgM0EC4FHLS0KCi0tIENvcHlyaWdodCAoQykgMjAxOCBNYXNhdG9zaGkgVGVydXlhCgotLQoKLS0gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQoKLS0gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKCi0tIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKCi0tIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKCi0tIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwoKLS0gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKCi0tCgotLSBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgoKLS0gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgotLQoKLS0gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKCi0tIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAoKLS0gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRQoKLS0gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgoKLS0gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKCi0tIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KCi0tIFRIRSBTT0ZUV0FSRS4KCi0tCgotLSBkdW1wLmx1YQoKLS0gbHVhLWR1bXAKCi0tIENyZWF0ZWQgYnkgTWFzYXRvc2hpIFRlcnV5YSBvbiAxOC8wNC8yMi4KCi0tCgotLS0gZmlsZS1zY29wZSB2YXJpYWJsZXMKCmxvY2FsIHR5cGUgPSB0eXBlCgpsb2NhbCBmbG9vciA9IG1hdGguZmxvb3IKCmxvY2FsIHRvc3RyaW5nID0gdG9zdHJpbmcKCmxvY2FsIHRibHNvcnQgPSB0YWJsZS5zb3J0Cgpsb2NhbCB0Ymxjb25jYXQgPSB0YWJsZS5jb25jYXQKCmxvY2FsIHN0cm1hdGNoID0gc3RyaW5nLm1hdGNoCgpsb2NhbCBzdHJmb3JtYXQgPSBzdHJpbmcuZm9ybWF0CgotLS0gY29uc3RhbnRzCgpsb2NhbCBJTkZJTklURV9QT1MgPSBtYXRoLmh1Z2UKCmxvY2FsIExVQV9GSUVMRE5BTUVfUEFUID0gJ15bYS16QS1aX11bYS16QS1aMC05X10qJCcKCmxvY2FsIEZPUl9LRVkgPSAna2V5JwoKbG9jYWwgRk9SX1ZBTCA9ICd2YWwnCgpsb2NhbCBGT1JfQ0lSQ1VMQVIgPSAnY2lyY3VsYXInCgpsb2NhbCBSRVNFUlZFRF9XT1JEID0gewoKICAgIC0tIHByaW1pdGl2ZSBkYXRhCgogICAgWyduaWwnXSA9IHRydWUsCgogICAgWyd0cnVlJ10gPSB0cnVlLAoKICAgIFsnZmFsc2UnXSA9IHRydWUsCgogICAgLS0gZGVjbGFyYXRvbgoKICAgIFsnbG9jYWwnXSA9IHRydWUsCgogICAgWydmdW5jdGlvbiddID0gdHJ1ZSwKCiAgICAtLSBib29sZWFuIGxvZ2ljCgogICAgWydhbmQnXSA9IHRydWUsCgogICAgWydvciddID0gdHJ1ZSwKCiAgICBbJ25vdCddID0gdHJ1ZSwKCiAgICAtLSBjb25kaXRpb25hbCBzdGF0ZW1lbnQKCiAgICBbJ2lmJ10gPSB0cnVlLAoKICAgIFsnZWxzZWlmJ10gPSB0cnVlLAoKICAgIFsnZWxzZSddID0gdHJ1ZSwKCiAgICAtLSBpdGVyYXRpb24gc3RhdGVtZW50CgogICAgWydmb3InXSA9IHRydWUsCgogICAgWydpbiddID0gdHJ1ZSwKCiAgICBbJ3doaWxlJ10gPSB0cnVlLAoKICAgIFsndW50aWwnXSA9IHRydWUsCgogICAgWydyZXBlYXQnXSA9IHRydWUsCgogICAgLS0ganVtcCBzdGF0ZW1lbnQKCiAgICBbJ2JyZWFrJ10gPSB0cnVlLAoKICAgIFsnZ290byddID0gdHJ1ZSwKCiAgICBbJ3JldHVybiddID0gdHJ1ZSwKCiAgICAtLSBibG9jayBzY29wZSBzdGF0ZW1lbnQKCiAgICBbJ3RoZW4nXSA9IHRydWUsCgogICAgWydkbyddID0gdHJ1ZSwKCiAgICBbJ2VuZCddID0gdHJ1ZSwKCn0KCmxvY2FsIERFRkFVTFRfSU5ERU5UID0gNAoKCgotLS0gZmlsdGVyIGZ1bmN0aW9uIGZvciBkdW1wCgotLS0gQHBhcmFtIHZhbCBhbnkKCi0tLSBAcGFyYW0gZGVwdGggaW50ZWdlcgoKLS0tIEBwYXJhbSB2dHlwZSBzdHJpbmcKCi0tLSBAcGFyYW0gdXNlIHN0cmluZwoKLS0tIEBwYXJhbSBrZXkgYW55CgotLS0gQHBhcmFtIHVkYXRhIGFueQoKLS0tIEByZXR1cm4gYW55IHZhbAoKLS0tIEByZXR1cm4gYm9vbGVhbiBub2R1bXAKCmxvY2FsIGZ1bmN0aW9uIERFRkFVTFRfRklMVEVSKHZhbCkKCiAgICByZXR1cm4gdmFsCgplbmQKCgoKLS0tIHNvcnRfaW5kZXgKCi0tLSBAcGFyYW0gYSB0YWJsZQoKLS0tIEBwYXJhbSBiIHRhYmxlCgpsb2NhbCBmdW5jdGlvbiBzb3J0X2luZGV4KGEsIGIpCgogICAgaWYgYS50eXAgPT0gYi50eXAgdGhlbgoKICAgICAgICBpZiBhLnR5cCA9PSAnYm9vbGVhbicgdGhlbgoKICAgICAgICAgICAgcmV0dXJuIGIua2V5CgogICAgICAgIGVuZAoKCgogICAgICAgIHJldHVybiBhLmtleSA8IGIua2V5CgogICAgZW5kCgoKCiAgICByZXR1cm4gYS50eXAgPT0gJ251bWJlcicKCmVuZAoKCgotLS0gZHVtcHRibAoKLS0tIEBwYXJhbSB0YmwgdGFibGUKCi0tLSBAcGFyYW0gZGVwdGggaW50ZWdlcgoKLS0tIEBwYXJhbSBpbmRlbnQgc3RyaW5nCgotLS0gQHBhcmFtIG5lc3RJbmRlbnQgc3RyaW5nCgotLS0gQHBhcmFtIGN0eCB0YWJsZQoKLS0tIEByZXR1cm4gc3RyaW5nCgpsb2NhbCBmdW5jdGlvbiBkdW1wdGJsKHRibCwgZGVwdGgsIGluZGVudCwgbmVzdEluZGVudCwgY3R4KQoKICAgIGxvY2FsIHJlZiA9IHRvc3RyaW5nKHRibCkKCgoKICAgIC0tIGNpcmN1bGFyIHJlZmVyZW5jZQoKICAgIGlmIGN0eC5jaXJjdWxhcltyZWZdIHRoZW4KCiAgICAgICAgbG9jYWwgdmFsLCBub2R1bXAgPSBjdHguZmlsdGVyKHRibCwgZGVwdGgsIHR5cGUodGJsKSwgRk9SX0NJUkNVTEFSLCB0YmwsCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgudWRhdGEpCgoKCiAgICAgICAgaWYgdmFsIH49IG5pbCBhbmQgdmFsIH49IHRibCB0aGVuCgogICAgICAgICAgICBsb2NhbCB0ID0gdHlwZSh2YWwpCgoKCiAgICAgICAgICAgIGlmIHQgPT0gJ3RhYmxlJyB0aGVuCgogICAgICAgICAgICAgICAgLS0gZHVtcCB0YWJsZSB2YWx1ZQoKICAgICAgICAgICAgICAgIGlmIG5vdCBub2R1bXAgdGhlbgoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZHVtcHRibCh2YWwsIGRlcHRoICsgMSwgaW5kZW50LCBuZXN0SW5kZW50LCBjdHgpCgogICAgICAgICAgICAgICAgZW5kCgogICAgICAgICAgICAgICAgcmV0dXJuIHRvc3RyaW5nKHZhbCkKCiAgICAgICAgICAgIGVsc2VpZiB0ID09ICdzdHJpbmcnIHRoZW4KCiAgICAgICAgICAgICAgICByZXR1cm4gc3RyZm9ybWF0KCclcScsIHZhbCkKCiAgICAgICAgICAgIGVsc2VpZiB0ID09ICdudW1iZXInIG9yIHQgPT0gJ2Jvb2xlYW4nIHRoZW4KCiAgICAgICAgICAgICAgICByZXR1cm4gdG9zdHJpbmcodmFsKQoKICAgICAgICAgICAgZW5kCgoKCiAgICAgICAgICAgIHJldHVybiBzdHJmb3JtYXQoJyVxJywgdG9zdHJpbmcodmFsKSkKCiAgICAgICAgZW5kCgoKCiAgICAgICAgcmV0dXJuICciPENpcmN1bGFyICcgLi4gcmVmIC4uICc+IicKCiAgICBlbmQKCgoKICAgIGxvY2FsIHJlcyA9IHt9CgogICAgbG9jYWwgYXJyID0ge30KCiAgICBsb2NhbCBuYXJyID0gMAoKICAgIGxvY2FsIGZpZWxkSW5kZW50ID0gaW5kZW50IC4uIG5lc3RJbmRlbnQKCgoKICAgIC0tIHNhdmUgcmVmZXJlbmNlCgogICAgY3R4LmNpcmN1bGFyW3JlZl0gPSB0cnVlCgoKCiAgICBmb3IgaywgdiBpbiBwYWlycyh0YmwpIGRvCgogICAgICAgIC0tIGNoZWNrIGtleQoKICAgICAgICBsb2NhbCBrZXksIG5va2R1bXAgPSBjdHguZmlsdGVyKGssIGRlcHRoLCB0eXBlKGspLCBGT1JfS0VZLCBuaWwsCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LnVkYXRhKQoKCgogICAgICAgIGlmIGtleSB+PSBuaWwgdGhlbgoKICAgICAgICAgICAgLS0gY2hlY2sgdmFsCgogICAgICAgICAgICBsb2NhbCB2YWwsIG5vdmR1bXAgPSBjdHguZmlsdGVyKHYsIGRlcHRoLCB0eXBlKHYpLCBGT1JfVkFMLCBrZXksCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC51ZGF0YSkKCiAgICAgICAgICAgIGxvY2FsIGt2CgoKCiAgICAgICAgICAgIGlmIHZhbCB+PSBuaWwgdGhlbgoKICAgICAgICAgICAgICAgIGxvY2FsIGt0ID0gdHlwZShrZXkpCgogICAgICAgICAgICAgICAgbG9jYWwgdnQgPSB0eXBlKHZhbCkKCgoKICAgICAgICAgICAgICAgIC0tIGNvbnZlcnQga2V5IHRvIHN1aXRhYmxlIHRvIGJlIHNhZmVseSByZWFkIGJhY2sKCiAgICAgICAgICAgICAgICAtLSBieSB0aGUgTHVhIGludGVycHJldGVyCgogICAgICAgICAgICAgICAgaWYga3QgPT0gJ251bWJlcicgb3Iga3QgPT0gJ2Jvb2xlYW4nIHRoZW4KCiAgICAgICAgICAgICAgICAgICAgayA9IGtleQoKICAgICAgICAgICAgICAgICAgICBrZXkgPSAnWycgLi4gdG9zdHJpbmcoa2V5KSAuLiAnXScKCiAgICAgICAgICAgICAgICAgICAgLS0gZHVtcCB0YWJsZSB2YWx1ZQoKICAgICAgICAgICAgICAgIGVsc2VpZiBrdCA9PSAndGFibGUnIGFuZCBub3Qgbm9rZHVtcCB0aGVuCgogICAgICAgICAgICAgICAgICAgIGtleSA9ICdbJyAuLgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVtcHRibChrZXksIGRlcHRoICsgMSwgZmllbGRJbmRlbnQsIG5lc3RJbmRlbnQsCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eCkgLi4gJ10nCgogICAgICAgICAgICAgICAgICAgIGsgPSBrZXkKCiAgICAgICAgICAgICAgICAgICAga3QgPSAnc3RyaW5nJwoKICAgICAgICAgICAgICAgIGVsc2VpZiBrdCB+PSAnc3RyaW5nJyBvciBSRVNFUlZFRF9XT1JEW2tleV0gb3IKCiAgICAgICAgICAgICAgICAgICAgbm90IHN0cm1hdGNoKGtleSwgTFVBX0ZJRUxETkFNRV9QQVQpIHRoZW4KCiAgICAgICAgICAgICAgICAgICAga2V5ID0gc3RyZm9ybWF0KCJbJXFdIiwgdG9zdHJpbmcoa2V5KSwgdikKCiAgICAgICAgICAgICAgICAgICAgayA9IGtleQoKICAgICAgICAgICAgICAgICAgICBrdCA9ICdzdHJpbmcnCgogICAgICAgICAgICAgICAgZW5kCgoKCiAgICAgICAgICAgICAgICAtLSBjb252ZXJ0IGtleS12YWwgcGFpciB0byBzdWl0YWJsZSB0byBiZSBzYWZlbHkgcmVhZCBiYWNrCgogICAgICAgICAgICAgICAgLS0gYnkgdGhlIEx1YSBpbnRlcnByZXRlcgoKICAgICAgICAgICAgICAgIGlmIHZ0ID09ICdudW1iZXInIG9yIHZ0ID09ICdib29sZWFuJyB0aGVuCgogICAgICAgICAgICAgICAgICAgIGt2ID0gc3RyZm9ybWF0KCclcyVzID0gJXMnLCBmaWVsZEluZGVudCwga2V5LCB0b3N0cmluZyh2YWwpKQoKICAgICAgICAgICAgICAgIGVsc2VpZiB2dCA9PSAnc3RyaW5nJyB0aGVuCgogICAgICAgICAgICAgICAgICAgIC0tIGR1bXAgYSBzdHJpbmctdmFsdWUKCiAgICAgICAgICAgICAgICAgICAgaWYgbm90IG5vdmR1bXAgdGhlbgoKICAgICAgICAgICAgICAgICAgICAgICAga3YgPSBzdHJmb3JtYXQoJyVzJXMgPSAlcScsIGZpZWxkSW5kZW50LCBrZXksIHZhbCkKCiAgICAgICAgICAgICAgICAgICAgZWxzZQoKICAgICAgICAgICAgICAgICAgICAgICAga3YgPSBzdHJmb3JtYXQoJyVzJXMgPSAlcycsIGZpZWxkSW5kZW50LCBrZXksIHZhbCkKCiAgICAgICAgICAgICAgICAgICAgZW5kCgogICAgICAgICAgICAgICAgZWxzZWlmIHZ0ID09ICd0YWJsZScgYW5kIG5vdCBub3ZkdW1wIHRoZW4KCiAgICAgICAgICAgICAgICAgICAga3YgPSBzdHJmb3JtYXQoJyVzJXMgPSAlcycsIGZpZWxkSW5kZW50LCBrZXksIGR1bXB0YmwodmFsLAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aCArCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZEluZGVudCwKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVzdEluZGVudCwKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4KSkKCiAgICAgICAgICAgICAgICBlbHNlCgogICAgICAgICAgICAgICAgICAgIGt2ID0gc3RyZm9ybWF0KCclcyVzID0gJXEnLCBmaWVsZEluZGVudCwga2V5LCB0b3N0cmluZyh2YWwpKQoKICAgICAgICAgICAgICAgIGVuZAoKCgogICAgICAgICAgICAgICAgLS0gYWRkIHRvIGFycmF5CgogICAgICAgICAgICAgICAgbmFyciA9IG5hcnIgKyAxCgogICAgICAgICAgICAgICAgYXJyW25hcnJdID0gewoKICAgICAgICAgICAgICAgICAgICB0eXAgPSBrdCwKCiAgICAgICAgICAgICAgICAgICAga2V5ID0gaywKCiAgICAgICAgICAgICAgICAgICAgdmFsID0ga3YsCgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgZW5kCgogICAgICAgIGVuZAoKICAgIGVuZAoKCgogICAgLS0gcmVtb3ZlIHJlZmVyZW5jZQoKICAgIGN0eC5jaXJjdWxhcltyZWZdID0gbmlsCgogICAgLS0gY29uY2F0IHJlc3VsdAoKICAgIGlmIG5hcnIgPiAwIHRoZW4KCiAgICAgICAgdGJsc29ydChhcnIsIHNvcnRfaW5kZXgpCgoKCiAgICAgICAgZm9yIGkgPSAxLCBuYXJyIGRvCgogICAgICAgICAgICByZXNbaV0gPSBhcnJbaV0udmFsCgogICAgICAgIGVuZAoKICAgICAgICByZXNbMV0gPSAneycgLi4gY3R4LkxGIC4uIHJlc1sxXQoKICAgICAgICByZXMgPSB0Ymxjb25jYXQocmVzLCAnLCcgLi4gY3R4LkxGKSAuLiBjdHguTEYgLi4gaW5kZW50IC4uICd9JwoKICAgIGVsc2UKCiAgICAgICAgcmVzID0gJ3t9JwoKICAgIGVuZAoKCgogICAgcmV0dXJuIHJlcwoKZW5kCgoKCi0tLSBpc191aW50CgotLS0gQHBhcmFtIHYgYW55CgotLS0gQHJldHVybiBib29sZWFuIG9rCgpsb2NhbCBmdW5jdGlvbiBpc191aW50KHYpCgogICAgcmV0dXJuIHR5cGUodikgPT0gJ251bWJlcicgYW5kIHYgPCBJTkZJTklURV9QT1MgYW5kIHYgPj0gMCBhbmQgZmxvb3IodikgPT0gdgoKZW5kCgoKCi0tLSBkdW1wCgotLS0gQHBhcmFtIHZhbCBhbnkKCi0tLSBAcGFyYW0gaW5kZW50IGludGVnZXIKCi0tLSBAcGFyYW0gcGFkZGluZyBpbnRlZ2VyCgotLS0gQHBhcmFtIGZpbHRlciBmdW5jdGlvbgoKLS0tIEBwYXJhbSB1ZGF0YQoKLS0tIEByZXR1cm4gc3RyaW5nCgpsb2NhbCBmdW5jdGlvbiBkdW1wKHZhbCwgaW5kZW50LCBwYWRkaW5nLCBmaWx0ZXIsIHVkYXRhKQoKICAgIGxvY2FsIHQgPSB0eXBlKHZhbCkKCgoKICAgIC0tIGNoZWNrIGluZGVudAoKICAgIGlmIGluZGVudCA9PSBuaWwgdGhlbgoKICAgICAgICBpbmRlbnQgPSBERUZBVUxUX0lOREVOVAoKICAgIGVsc2VpZiBub3QgaXNfdWludChpbmRlbnQpIHRoZW4KCiAgICAgICAgZXJyb3IoJ2luZGVudCBtdXN0IGJlIHVuc2lnbmVkIGludGVnZXInLCAyKQoKICAgIGVuZAoKCgogICAgLS0gY2hlY2sgcGFkZGluZwoKICAgIGlmIHBhZGRpbmcgPT0gbmlsIHRoZW4KCiAgICAgICAgcGFkZGluZyA9IDAKCiAgICBlbHNlaWYgbm90IGlzX3VpbnQocGFkZGluZykgdGhlbgoKICAgICAgICBlcnJvcigncGFkZGluZyBtdXN0IGJlIHVuc2lnbmVkIGludGVnZXInLCAyKQoKICAgIGVuZAoKCgogICAgLS0gY2hlY2sgZmlsdGVyCgogICAgaWYgZmlsdGVyID09IG5pbCB0aGVuCgogICAgICAgIGZpbHRlciA9IERFRkFVTFRfRklMVEVSCgogICAgZWxzZWlmIHR5cGUoZmlsdGVyKSB+PSAnZnVuY3Rpb24nIHRoZW4KCiAgICAgICAgZXJyb3IoJ2ZpbHRlciBtdXN0IGJlIGZ1bmN0aW9uJywgMikKCiAgICBlbmQKCgoKICAgIC0tIGR1bXAgdGFibGUKCiAgICBpZiB0ID09ICd0YWJsZScgdGhlbgoKICAgICAgICBsb2NhbCBpc3BhY2UgPSAnJwoKICAgICAgICBsb2NhbCBwc3BhY2UgPSAnJwoKCgogICAgICAgIGlmIGluZGVudCA+IDAgdGhlbgoKICAgICAgICAgICAgaXNwYWNlID0gc3RyZm9ybWF0KCclJyAuLiB0b3N0cmluZyhpbmRlbnQpIC4uICdzJywgJycpCgogICAgICAgIGVuZAoKCgogICAgICAgIGlmIHBhZGRpbmcgPiAwIHRoZW4KCiAgICAgICAgICAgIHBzcGFjZSA9IHN0cmZvcm1hdCgnJScgLi4gdG9zdHJpbmcocGFkZGluZykgLi4gJ3MnLCAnJykKCiAgICAgICAgZW5kCgoKCiAgICAgICAgcmV0dXJuIGR1bXB0YmwodmFsLCAxLCBwc3BhY2UsIGlzcGFjZSwgewoKICAgICAgICAgICAgTEYgPSBpc3BhY2UgPT0gJycgYW5kICcgJyBvciAnXG4nLAoKICAgICAgICAgICAgY2lyY3VsYXIgPSB7fSwKCiAgICAgICAgICAgIGZpbHRlciA9IGZpbHRlciwKCiAgICAgICAgICAgIHVkYXRhID0gdWRhdGEsCgogICAgICAgIH0pCgogICAgZW5kCgoKCiAgICAtLSBkdW1wIHZhbHVlCgogICAgbG9jYWwgdiwgbm9kdW1wID0gZmlsdGVyKHZhbCwgMCwgdCwgRk9SX1ZBTCwgbmlsLCB1ZGF0YSkKCiAgICBpZiBub2R1bXAgPT0gdHJ1ZSB0aGVuCgogICAgICAgIHJldHVybiB0b3N0cmluZyh2KQoKICAgIGVuZAoKICAgIHJldHVybiBzdHJmb3JtYXQoJyVxJywgdG9zdHJpbmcodikpCgplbmQKCgoKcmV0dXJuIGR1bXAAQZCUBQuHrwFsb2NhbCBzdHJpbmdpZnkgPSByZXF1aXJlKCIuc3RyaW5naWZ5IikKCi0tIGhhbmRsZXIgZm9yIGV2YWwKCnJldHVybiBmdW5jdGlvbiAoYW8pCgogIHJldHVybiBmdW5jdGlvbiAobXNnKQoKICAgIC0tIGV4ZWMgZXhwcmVzc2lvbgoKICAgIGxvY2FsIGV4cHIgPSBtc2cuRGF0YQoKICAgIGxvY2FsIGZ1bmMsIGVyciA9IGxvYWQoInJldHVybiAiIC4uIGV4cHIsICdhb3MnLCAndCcsIF9HKQoKICAgIGxvY2FsIG91dHB1dCA9ICIiCgogICAgbG9jYWwgZSA9IG5pbAoKICAgIGlmIGVyciB0aGVuCgogICAgICBmdW5jLCBlcnIgPSBsb2FkKGV4cHIsICdhb3MnLCAndCcsIF9HKQoKICAgIGVuZAoKICAgIGlmIGZ1bmMgdGhlbgoKICAgICAgb3V0cHV0LCBlID0gZnVuYygpCgogICAgZWxzZQoKICAgICAgYW8ub3V0Ym94LkVycm9yID0gZXJyCgogICAgICByZXR1cm4KCiAgICBlbmQKCiAgICBpZiBlIHRoZW4gCgogICAgICBhby5vdXRib3guRXJyb3IgPSBlCgogICAgICByZXR1cm4gCgogICAgZW5kCgogICAgLS0gc2V0IHJlc3VsdCBpbiBvdXRib3guT3V0cHV0IAoKICAgIGFvLm91dGJveC5PdXRwdXQgPSB7IGRhdGEgPSB7IAoKICAgICAganNvbiA9IHR5cGUob3V0cHV0KSA9PSAidGFibGUiIGFuZCBwY2FsbChmdW5jdGlvbiAoKSByZXR1cm4ganNvbi5lbmNvZGUob3V0cHV0KSBlbmQpIGFuZCBvdXRwdXQgb3IgInVuZGVmaW5lZCIsCgogICAgICBvdXRwdXQgPSB0eXBlKG91dHB1dCkgPT0gInRhYmxlIiBhbmQgc3RyaW5naWZ5LmZvcm1hdChvdXRwdXQpIG9yIG91dHB1dCwgCgogICAgICBwcm9tcHQgPSBQcm9tcHQoKSAKCiAgICB9fQoKICBlbmQgCgplbmQKAAAAbG9jYWwgX3V0aWxzID0geyBfdmVyc2lvbiA9ICIwLjAuMSIgfQoKCgpsb2NhbCBfID0gcmVxdWlyZSgnLnV0aWxzJykKCmxvY2FsIGFvID0gcmVxdWlyZSgiYW8iKQoKCgpmdW5jdGlvbiBfdXRpbHMuaGFzTWF0Y2hpbmdUYWcobmFtZSwgdmFsdWUpCgogIGFzc2VydCh0eXBlKG5hbWUpID09ICdzdHJpbmcnIGFuZCB0eXBlKHZhbHVlKSA9PSAnc3RyaW5nJywgJ2ludmFsaWQgYXJndW1lbnRzOiAobmFtZSA6IHN0cmluZywgdmFsdWUgOiBzdHJpbmcpJykKCgoKICByZXR1cm4gZnVuY3Rpb24gKG1zZykgCgogICAgcmV0dXJuIG1zZy5UYWdzW25hbWVdID09IHZhbHVlIAoKICBlbmQKCmVuZAoKCgpmdW5jdGlvbiBfdXRpbHMuaGFzTWF0Y2hpbmdUYWdPZihuYW1lLCB2YWx1ZXMpCgogIGFzc2VydCh0eXBlKG5hbWUpID09ICdzdHJpbmcnIGFuZCB0eXBlKHZhbHVlcykgPT0gJ3RhYmxlJywgJ2ludmFsaWQgYXJndW1lbnRzOiAobmFtZSA6IHN0cmluZywgdmFsdWVzIDogc3RyaW5nW10pJykKCiAgcmV0dXJuIGZ1bmN0aW9uIChtc2cpCgogICAgZm9yIF8sIHZhbHVlIGluIGlwYWlycyh2YWx1ZXMpIGRvCgogICAgICBsb2NhbCBwYXR0ZXJuUmVzdWx0ID0gSGFuZGxlcnMudXRpbHMuaGFzTWF0Y2hpbmdUYWcobmFtZSwgdmFsdWUpKG1zZykKCgoKICAgICAgaWYgcGF0dGVyblJlc3VsdCB+PSAwIGFuZCBwYXR0ZXJuUmVzdWx0IH49IGZhbHNlIGFuZCBwYXR0ZXJuUmVzdWx0IH49ICJza2lwIiB0aGVuCgogICAgICAgIHJldHVybiBwYXR0ZXJuUmVzdWx0CgogICAgICBlbmQKCiAgICBlbmQKCgoKICAgIHJldHVybiAwCgogIGVuZAoKZW5kCgoKCmZ1bmN0aW9uIF91dGlscy5oYXNNYXRjaGluZ0RhdGEodmFsdWUpCgogIGFzc2VydCh0eXBlKHZhbHVlKSA9PSAnc3RyaW5nJywgJ2ludmFsaWQgYXJndW1lbnRzOiAodmFsdWUgOiBzdHJpbmcpJykKCiAgcmV0dXJuIGZ1bmN0aW9uIChtc2cpCgogICAgcmV0dXJuIG1zZy5EYXRhID09IHZhbHVlCgogIGVuZAoKZW5kCgoKCmZ1bmN0aW9uIF91dGlscy5yZXBseShpbnB1dCkgCgogIGFzc2VydCh0eXBlKGlucHV0KSA9PSAndGFibGUnIG9yIHR5cGUoaW5wdXQpID09ICdzdHJpbmcnLCAnaW52YWxpZCBhcmd1bWVudHM6IChpbnB1dCA6IHRhYmxlIG9yIHN0cmluZyknKQoKICByZXR1cm4gZnVuY3Rpb24gKG1zZykKCiAgICBpZiB0eXBlKGlucHV0KSA9PSAnc3RyaW5nJyB0aGVuCgogICAgICBhby5zZW5kKHtUYXJnZXQgPSBtc2cuRnJvbSwgRGF0YSA9IGlucHV0fSkKCiAgICAgIHJldHVybgoKICAgIGVuZAoKICAgIGFvLnNlbmQoe1RhcmdldCA9IG1zZy5Gcm9tLCBUYWdzID0gaW5wdXQgfSkKCiAgZW5kCgplbmQKCgoKZnVuY3Rpb24gX3V0aWxzLmNvbnRpbnVlKGZuKQoKICBhc3NlcnQodHlwZShmbikgPT0gJ2Z1bmN0aW9uJywgJ2ludmFsaWQgYXJndW1lbnRzOiAoZm4gOiBmdW5jdGlvbiknKQoKICByZXR1cm4gZnVuY3Rpb24gKG1zZykKCiAgICBsb2NhbCBwYXR0ZXJuUmVzdWx0ID0gZm4obXNnKQoKCgogICAgaWYgbm90IHBhdHRlcm5SZXN1bHQgb3IgcGF0dGVyblJlc3VsdCA9PSAwIG9yIHBhdHRlcm5SZXN1bHQgPT0gInNraXAiIHRoZW4KCiAgICAgIHJldHVybiBwYXR0ZXJuUmVzdWx0CgogICAgZW5kCgogICAgcmV0dXJuIDEKCiAgZW5kCgplbmQKCgoKcmV0dXJuIF91dGlscwAAAABsb2NhbCBoYW5kbGVycyA9IHsgX3ZlcnNpb24gPSAiMC4wLjMiIH0KCgoKaGFuZGxlcnMudXRpbHMgPSByZXF1aXJlKCcuaGFuZGxlcnMtdXRpbHMnKQoKaGFuZGxlcnMubGlzdCA9IHt9CgoKCmxvY2FsIGZ1bmN0aW9uIGZpbmRJbmRleEJ5UHJvcChhcnJheSwgcHJvcCwgdmFsdWUpCgogIGZvciBpbmRleCwgb2JqZWN0IGluIGlwYWlycyhhcnJheSkgZG8KCiAgICBpZiBvYmplY3RbcHJvcF0gPT0gdmFsdWUgdGhlbgoKICAgICAgcmV0dXJuIGluZGV4CgogICAgZW5kCgogIGVuZAoKICByZXR1cm4gbmlsCgplbmQKCgoKZnVuY3Rpb24gaGFuZGxlcnMuYWRkKG5hbWUsIHBhdHRlcm4sIGhhbmRsZSkKCiAgYXNzZXJ0KHR5cGUobmFtZSkgPT0gJ3N0cmluZycgYW5kIHR5cGUocGF0dGVybikgPT0gJ2Z1bmN0aW9uJyBhbmQgIHR5cGUoaGFuZGxlKSA9PSAnZnVuY3Rpb24nLCAnaW52YWxpZCBhcmd1bWVudHM6IGhhbmRsZXIuYWRkKG5hbWUgOiBzdHJpbmcsIHBhdHRlcm4gOiBmdW5jdGlvbihtc2c6IE1lc3NhZ2UpIDogey0xID0gYnJlYWssIDAgPSBza2lwLCAxID0gY29udGludWV9LCBoYW5kbGUobXNnIDogTWVzc2FnZSkgOiB2b2lkKScpIAoKICBhc3NlcnQodHlwZShuYW1lKSA9PSAnc3RyaW5nJywgJ25hbWUgTVVTVCBiZSBzdHJpbmcnKQoKICBhc3NlcnQodHlwZShwYXR0ZXJuKSA9PSAnZnVuY3Rpb24nLCAncGF0dGVybiBNVVNUIGJlIGZ1bmN0aW9uJykKCiAgYXNzZXJ0KHR5cGUoaGFuZGxlKSA9PSAnZnVuY3Rpb24nLCAnaGFuZGxlIE1VU1QgYmUgZnVuY3Rpb24nKQoKICAKCiAgCgogIC0tIHVwZGF0ZSBleGlzdGluZyBoYW5kbGVyIGJ5IG5hbWUKCiAgbG9jYWwgaWR4ID0gZmluZEluZGV4QnlQcm9wKGhhbmRsZXJzLmxpc3QsICJuYW1lIiwgbmFtZSkKCiAgaWYgaWR4IH49IG5pbCBhbmQgaWR4ID4gMCB0aGVuCgogICAgLS0gZm91bmQgdXBkYXRlCgogICAgaGFuZGxlcnMubGlzdFtpZHhdLnBhdHRlcm4gPSBwYXR0ZXJuCgogICAgaGFuZGxlcnMubGlzdFtpZHhdLmhhbmRsZSA9IGhhbmRsZQoKICBlbHNlCgogICAgLS0gbm90IGZvdW5kIHRoZW4gYWRkICAgIAoKICAgIHRhYmxlLmluc2VydChoYW5kbGVycy5saXN0LCB7IHBhdHRlcm4gPSBwYXR0ZXJuLCBoYW5kbGUgPSBoYW5kbGUsIG5hbWUgPSBuYW1lIH0pCgoKCiAgZW5kCgplbmQKCgoKCgpmdW5jdGlvbiBoYW5kbGVycy5hcHBlbmQobmFtZSwgcGF0dGVybiwgaGFuZGxlKQoKICBhc3NlcnQodHlwZShuYW1lKSA9PSAnc3RyaW5nJyBhbmQgdHlwZShwYXR0ZXJuKSA9PSAnZnVuY3Rpb24nIGFuZCAgdHlwZShoYW5kbGUpID09ICdmdW5jdGlvbicsICdpbnZhbGlkIGFyZ3VtZW50czogaGFuZGxlci5hcHBlbmQobmFtZSA6IHN0cmluZywgcGF0dGVybiA6IGZ1bmN0aW9uKG1zZzogTWVzc2FnZSkgOiB7LTEgPSBicmVhaywgMCA9IHNraXAsIDEgPSBjb250aW51ZX0sIGhhbmRsZShtc2cgOiBNZXNzYWdlKSA6IHZvaWQpJykgCgogIGFzc2VydCh0eXBlKG5hbWUpID09ICdzdHJpbmcnLCAnbmFtZSBNVVNUIGJlIHN0cmluZycpCgogIGFzc2VydCh0eXBlKHBhdHRlcm4pID09ICdmdW5jdGlvbicsICdwYXR0ZXJuIE1VU1QgYmUgZnVuY3Rpb24nKQoKICBhc3NlcnQodHlwZShoYW5kbGUpID09ICdmdW5jdGlvbicsICdoYW5kbGUgTVVTVCBiZSBmdW5jdGlvbicpCgogIAoKICAgIC0tIHVwZGF0ZSBleGlzdGluZyBoYW5kbGVyIGJ5IG5hbWUKCiAgbG9jYWwgaWR4ID0gZmluZEluZGV4QnlQcm9wKGhhbmRsZXJzLmxpc3QsICJuYW1lIiwgbmFtZSkKCiAgaWYgaWR4IH49IG5pbCBhbmQgaWR4ID4gMCB0aGVuCgogICAgLS0gZm91bmQgdXBkYXRlCgogICAgaGFuZGxlcnMubGlzdFtpZHhdLnBhdHRlcm4gPSBwYXR0ZXJuCgogICAgaGFuZGxlcnMubGlzdFtpZHhdLmhhbmRsZSA9IGhhbmRsZQoKICBlbHNlCgogICAgCgogICAgdGFibGUuaW5zZXJ0KGhhbmRsZXJzLmxpc3QsIHsgcGF0dGVybiA9IHBhdHRlcm4sIGhhbmRsZSA9IGhhbmRsZSwgbmFtZSA9IG5hbWUgfSkKCiAgZW5kCgoKCiAgCgplbmQKCgoKZnVuY3Rpb24gaGFuZGxlcnMucHJlcGVuZChuYW1lLCBwYXR0ZXJuLCBoYW5kbGUpIAoKICBhc3NlcnQodHlwZShuYW1lKSA9PSAnc3RyaW5nJyBhbmQgdHlwZShwYXR0ZXJuKSA9PSAnZnVuY3Rpb24nIGFuZCAgdHlwZShoYW5kbGUpID09ICdmdW5jdGlvbicsICdpbnZhbGlkIGFyZ3VtZW50czogaGFuZGxlci5wcmVwZW5kKG5hbWUgOiBzdHJpbmcsIHBhdHRlcm4gOiBmdW5jdGlvbihtc2c6IE1lc3NhZ2UpIDogey0xID0gYnJlYWssIDAgPSBza2lwLCAxID0gY29udGludWV9LCBoYW5kbGUobXNnIDogTWVzc2FnZSkgOiB2b2lkKScpIAoKICBhc3NlcnQodHlwZShuYW1lKSA9PSAnc3RyaW5nJywgJ25hbWUgTVVTVCBiZSBzdHJpbmcnKQoKICBhc3NlcnQodHlwZShwYXR0ZXJuKSA9PSAnZnVuY3Rpb24nLCAncGF0dGVybiBNVVNUIGJlIGZ1bmN0aW9uJykKCiAgYXNzZXJ0KHR5cGUoaGFuZGxlKSA9PSAnZnVuY3Rpb24nLCAnaGFuZGxlIE1VU1QgYmUgZnVuY3Rpb24nKQoKICAKCgoKICAtLSB1cGRhdGUgZXhpc3RpbmcgaGFuZGxlciBieSBuYW1lCgogIGxvY2FsIGlkeCA9IGZpbmRJbmRleEJ5UHJvcChoYW5kbGVycy5saXN0LCAibmFtZSIsIG5hbWUpCgogIGlmIGlkeCB+PSBuaWwgYW5kIGlkeCA+IDAgdGhlbgoKICAgIC0tIGZvdW5kIHVwZGF0ZQoKICAgIGhhbmRsZXJzLmxpc3RbaWR4XS5wYXR0ZXJuID0gcGF0dGVybgoKICAgIGhhbmRsZXJzLmxpc3RbaWR4XS5oYW5kbGUgPSBoYW5kbGUKCiAgZWxzZSAgCgogICAgdGFibGUuaW5zZXJ0KGhhbmRsZXJzLmxpc3QsIDEsIHsgcGF0dGVybiA9IHBhdHRlcm4sIGhhbmRsZSA9IGhhbmRsZSwgbmFtZSA9IG5hbWUgfSkKCiAgZW5kCgoKCiAgCgplbmQKCgoKZnVuY3Rpb24gaGFuZGxlcnMuYmVmb3JlKGhhbmRsZU5hbWUpCgogIGFzc2VydChoYW5kbGVOYW1lIH49IG5pbCwgJ2ludmFsaWQgYXJndW1lbnRzOiBoYW5kbGVycy5iZWZvcmUobmFtZSA6IHN0cmluZykgOiB7IGFkZCA9IGZ1bmN0aW9uKG5hbWUsIHBhdHRlcm4sIGhhbmRsZXIpfScpCgogIGFzc2VydCh0eXBlKGhhbmRsZU5hbWUpID09ICdzdHJpbmcnLCAnbmFtZSBNVVNUIGJlIHN0cmluZycpCgoKCiAgbG9jYWwgaWR4ID0gZmluZEluZGV4QnlQcm9wKGhhbmRsZXJzLmxpc3QsICJuYW1lIiwgaGFuZGxlTmFtZSkKCiAgcmV0dXJuIHsKCiAgICBhZGQgPSBmdW5jdGlvbiAobmFtZSwgcGF0dGVybiwgaGFuZGxlKSAKCiAgICAgIGFzc2VydCh0eXBlKG5hbWUpID09ICdzdHJpbmcnIGFuZCB0eXBlKHBhdHRlcm4pID09ICdmdW5jdGlvbicgYW5kICB0eXBlKGhhbmRsZSkgPT0gJ2Z1bmN0aW9uJywgJ2ludmFsaWQgYXJndW1lbnRzOiBoYW5kbGVyLmJlZm9yZSgiZm9vIikuYWRkKG5hbWUgOiBzdHJpbmcsIHBhdHRlcm4gOiBmdW5jdGlvbihtc2c6IE1lc3NhZ2UpIDogey0xID0gYnJlYWssIDAgPSBza2lwLCAxID0gY29udGludWV9LCBoYW5kbGUobXNnIDogTWVzc2FnZSkgOiB2b2lkKScpIAoKICAgICAgYXNzZXJ0KHR5cGUobmFtZSkgPT0gJ3N0cmluZycsICduYW1lIE1VU1QgYmUgc3RyaW5nJykKCiAgICAgIAoKICAgICAgYXNzZXJ0KHR5cGUocGF0dGVybikgPT0gJ2Z1bmN0aW9uJywgJ3BhdHRlcm4gTVVTVCBiZSBmdW5jdGlvbicpCgogICAgICBhc3NlcnQodHlwZShoYW5kbGUpID09ICdmdW5jdGlvbicsICdoYW5kbGUgTVVTVCBiZSBmdW5jdGlvbicpCgogICAgICAKCiAgICAgIGlmIGlkeCB0aGVuCgogICAgICAgIHRhYmxlLmluc2VydChoYW5kbGVycy5saXN0LCBpZHgsIHsgcGF0dGVybiA9IHBhdHRlcm4sIGhhbmRsZSA9IGhhbmRsZSwgbmFtZSA9IG5hbWUgfSkKCiAgICAgIGVuZAoKICAgICAgCgogICAgZW5kCgogIH0KCmVuZAoKCgpmdW5jdGlvbiBoYW5kbGVycy5hZnRlcihoYW5kbGVOYW1lKQoKICBhc3NlcnQoaGFuZGxlTmFtZSB+PSBuaWwsICdpbnZhbGlkIGFyZ3VtZW50czogaGFuZGxlcnMuYWZ0ZXIobmFtZSA6IHN0cmluZykgOiB7IGFkZCA9IGZ1bmN0aW9uKG5hbWUsIHBhdHRlcm4sIGhhbmRsZXIpfScpCgogIGFzc2VydCh0eXBlKGhhbmRsZU5hbWUpID09ICdzdHJpbmcnLCAnbmFtZSBNVVNUIGJlIHN0cmluZycpCgogIGxvY2FsIGlkeCA9IGZpbmRJbmRleEJ5UHJvcChoYW5kbGVycy5saXN0LCAibmFtZSIsIGhhbmRsZU5hbWUpCgogIHJldHVybiB7IAoKICAgIGFkZCA9IGZ1bmN0aW9uIChuYW1lLCBwYXR0ZXJuLCBoYW5kbGUpCgogICAgICBhc3NlcnQodHlwZShuYW1lKSA9PSAnc3RyaW5nJyBhbmQgdHlwZShwYXR0ZXJuKSA9PSAnZnVuY3Rpb24nIGFuZCAgdHlwZShoYW5kbGUpID09ICdmdW5jdGlvbicsICdpbnZhbGlkIGFyZ3VtZW50czogaGFuZGxlci5hZnRlcigiZm9vIikuYWRkKG5hbWUgOiBzdHJpbmcsIHBhdHRlcm4gOiBmdW5jdGlvbihtc2c6IE1lc3NhZ2UpIDogey0xID0gYnJlYWssIDAgPSBza2lwLCAxID0gY29udGludWV9LCBoYW5kbGUobXNnIDogTWVzc2FnZSkgOiB2b2lkKScpIAoKCgogICAgICBhc3NlcnQodHlwZShuYW1lKSA9PSAnc3RyaW5nJywgJ25hbWUgTVVTVCBiZSBzdHJpbmcnKQoKICAgICAgYXNzZXJ0KHR5cGUocGF0dGVybikgPT0gJ2Z1bmN0aW9uJywgJ3BhdHRlcm4gTVVTVCBiZSBmdW5jdGlvbicpCgogICAgICBhc3NlcnQodHlwZShoYW5kbGUpID09ICdmdW5jdGlvbicsICdoYW5kbGUgTVVTVCBiZSBmdW5jdGlvbicpCgogICAgICAKCiAgICAgIGlmIGlkeCB0aGVuCgogICAgICAgIHRhYmxlLmluc2VydChoYW5kbGVycy5saXN0LCBpZHggKyAxLCB7IHBhdHRlcm4gPSBwYXR0ZXJuLCBoYW5kbGUgPSBoYW5kbGUsIG5hbWUgPSBuYW1lIH0pCgogICAgICBlbmQKCiAgICAgIAoKICAgIGVuZAoKICB9CgoKCmVuZAoKCgpmdW5jdGlvbiBoYW5kbGVycy5yZW1vdmUobmFtZSkKCiAgYXNzZXJ0KHR5cGUobmFtZSkgPT0gJ3N0cmluZycsICduYW1lIE1VU1QgYmUgc3RyaW5nJykKCiAgaWYgI2hhbmRsZXJzLmxpc3QgPT0gMSBhbmQgaGFuZGxlcnMubGlzdFsxXS5uYW1lID09IG5hbWUgdGhlbgoKICAgIGhhbmRsZXJzLmxpc3QgPSB7fQoKICAgIAoKICBlbmQKCgoKICBsb2NhbCBpZHggPSBmaW5kSW5kZXhCeVByb3AoaGFuZGxlcnMubGlzdCwgIm5hbWUiLCBuYW1lKQoKICB0YWJsZS5yZW1vdmUoaGFuZGxlcnMubGlzdCwgaWR4KQoKICAKCmVuZAoKCgotLS0gcmV0dXJuIDAgdG8gbm90IGNhbGwgaGFuZGxlciwgLTEgdG8gYnJlYWsgYWZ0ZXIgaGFuZGxlciBpcyBjYWxsZWQsIDEgdG8gY29udGludWUKCmZ1bmN0aW9uIGhhbmRsZXJzLmV2YWx1YXRlKG1zZywgZW52KQoKICBsb2NhbCBoYW5kbGVkID0gZmFsc2UKCiAgYXNzZXJ0KHR5cGUobXNnKSA9PSAndGFibGUnLCAnbXNnIGlzIG5vdCB2YWxpZCcpCgogIGFzc2VydCh0eXBlKGVudikgPT0gJ3RhYmxlJywgJ2VudiBpcyBub3QgdmFsaWQnKQoKICAKCiAgZm9yIF8sIG8gaW4gaXBhaXJzKGhhbmRsZXJzLmxpc3QpIGRvCgogICAgaWYgby5uYW1lIH49ICJfZGVmYXVsdCIgdGhlbgoKICAgICAgbG9jYWwgbWF0Y2ggPSBvLnBhdHRlcm4obXNnKQoKICAgICAgaWYgbm90ICh0eXBlKG1hdGNoKSA9PSAnbnVtYmVyJyBvciB0eXBlKG1hdGNoKSA9PSAnc3RyaW5nJyBvciB0eXBlKG1hdGNoKSA9PSAnYm9vbGVhbicpIHRoZW4KCiAgICAgICAgZXJyb3Ioe21lc3NhZ2UgPSAicGF0dGVybiByZXN1bHQgaXMgbm90IHZhbGlkLCBpdCBNVVNUIGJlIHN0cmluZywgbnVtYmVyLCBvciBib29sZWFuIn0pCgogICAgICBlbmQKCiAgICAgIAoKICAgICAgLS0gaGFuZGxlIGJvb2xlYW4gcmV0dXJucwoKICAgICAgaWYgdHlwZShtYXRjaCkgPT0gImJvb2xlYW4iIGFuZCBtYXRjaCA9PSB0cnVlIHRoZW4KCiAgICAgICAgbWF0Y2ggPSAtMQoKICAgICAgZWxzZWlmIHR5cGUobWF0Y2gpID09ICJib29sZWFuIiBhbmQgbWF0Y2ggPT0gZmFsc2UgdGhlbgoKICAgICAgICBtYXRjaCA9IDAKCiAgICAgIGVuZAoKCgogICAgICAtLSBoYW5kbGUgc3RyaW5nIHJldHVybnMKCiAgICAgIGlmIHR5cGUobWF0Y2gpID09ICJzdHJpbmciIHRoZW4KCiAgICAgICAgaWYgbWF0Y2ggPT0gImNvbnRpbnVlIiB0aGVuCgogICAgICAgICAgbWF0Y2ggPSAxCgogICAgICAgIGVsc2VpZiBtYXRjaCA9PSAiYnJlYWsiIHRoZW4KCiAgICAgICAgICBtYXRjaCA9IC0xCgogICAgICAgIGVsc2UKCiAgICAgICAgICBtYXRjaCA9IDAKCiAgICAgICAgZW5kCgogICAgICBlbmQKCgoKICAgICAgaWYgbWF0Y2ggfj0gMCB0aGVuCgogICAgICAgIGlmIG1hdGNoIDwgMCB0aGVuCgogICAgICAgICAgaGFuZGxlZCA9IHRydWUKCiAgICAgICAgZW5kCgogICAgICAgIC0tIGVhY2ggaGFuZGxlIGZ1bmN0aW9uIGNhbiBhY2NlcHQsIHRoZSBtc2csIGVudgoKICAgICAgICBsb2NhbCBzdGF0dXMsIGVyciA9IHBjYWxsKG8uaGFuZGxlLCBtc2csIGVudikgCgogICAgICAgIGlmIG5vdCBzdGF0dXMgdGhlbgoKICAgICAgICAgIGVycm9yKGVycikKCiAgICAgICAgICBhby5vdXRib3guRXJyb3IgPSB7IGVyciA9IGVyciB9CgoKCiAgICAgICAgZW5kCgogICAgICAgIAoKICAgICAgZW5kCgogICAgICBpZiBtYXRjaCA8IDAgdGhlbgoKICAgICAgICByZXR1cm4gaGFuZGxlZAoKICAgICAgZW5kCgogICAgZW5kCgogIGVuZAoKICAtLSBkbyBkZWZhdWx0CgogIGlmIG5vdCBoYW5kbGVkIHRoZW4KCiAgICBsb2NhbCBpZHggPSBmaW5kSW5kZXhCeVByb3AoaGFuZGxlcnMubGlzdCwgIm5hbWUiLCAiX2RlZmF1bHQiKQoKICAgIGhhbmRsZXJzLmxpc3RbaWR4XS5oYW5kbGUobXNnLGVudikKCiAgZW5kCgplbmQKCgoKcmV0dXJuIGhhbmRsZXJzAAAAbG9jYWwgcHJldHR5ID0geyBfdmVyc2lvbiA9ICIwLjAuMSJ9CgoKCmZ1bmN0aW9uIHByZXR0eS50cHJpbnQgKHRibCwgaW5kZW50KSAKCiAgaWYgbm90IGluZGVudCB0aGVuIGluZGVudCA9IDAgZW5kCgogIGxvY2FsIG91dHB1dCA9ICIiCgogIGZvciBrLCB2IGluIHBhaXJzKHRibCkgZG8KCiAgICBsb2NhbCBmb3JtYXR0aW5nID0gc3RyaW5nLnJlcCgiICIsIGluZGVudCkgLi4gayAuLiAiOiAiCgogICAgaWYgdHlwZSh2KSA9PSAidGFibGUiIHRoZW4KCiAgICAgIG91dHB1dCA9IG91dHB1dCAuLiBmb3JtYXR0aW5nIC4uICJcbiIKCiAgICAgIG91dHB1dCA9IG91dHB1dCAuLiBwcmV0dHkudHByaW50KHYsIGluZGVudCsxKQoKICAgIGVsc2VpZiB0eXBlKHYpID09ICdib29sZWFuJyB0aGVuCgogICAgICBvdXRwdXQgPSBvdXRwdXQgLi4gZm9ybWF0dGluZyAuLiB0b3N0cmluZyh2KSAuLiAiXG4iCgogICAgZWxzZQoKICAgICAgb3V0cHV0ID0gb3V0cHV0IC4uIGZvcm1hdHRpbmcgLi4gdiAuLiAiXG4iCgogICAgZW5kCgogIGVuZAoKICByZXR1cm4gb3V0cHV0CgplbmQKCgoKcmV0dXJuIHByZXR0eQAAAAAAAAAAbG9jYWwgcHJldHR5ID0gcmVxdWlyZSgnLnByZXR0eScpCgpsb2NhbCBiYXNlNjQgPSByZXF1aXJlKCcuYmFzZTY0JykKCmxvY2FsIGpzb24gPSByZXF1aXJlKCdqc29uJykKCmxvY2FsIGNoYW5jZSA9IHJlcXVpcmUoJy5jaGFuY2UnKQoKbG9jYWwgY3J5cHRvID0gcmVxdWlyZSgnLmNyeXB0by5pbml0JykKCgoKQ29sb3JzID0gewoKICByZWQgPSAiXDI3WzMxbSIsCgogIGdyZWVuID0gIlwyN1szMm0iLAoKICBibHVlID0gIlwyN1szNG0iLAoKICByZXNldCA9ICJcMjdbMG0iLAoKICBncmF5ID0gIlwyN1s5MG0iCgp9CgoKCkJlbGwgPSAiXHgwNyIKCgoKRHVtcCA9IHJlcXVpcmUoJy5kdW1wJykKClV0aWxzID0gcmVxdWlyZSgnLnV0aWxzJykKCkhhbmRsZXJzID0gcmVxdWlyZSgnLmhhbmRsZXJzJykKCmxvY2FsIHN0cmluZ2lmeSA9IHJlcXVpcmUoIi5zdHJpbmdpZnkiKQoKbG9jYWwgX2FvID0gcmVxdWlyZSgnYW8nKQoKbG9jYWwgcHJvY2VzcyA9IHsgX3ZlcnNpb24gPSAiMC4yLjAiIH0KCmxvY2FsIG1heEluYm94Q291bnQgPSAxMDAwMAoKCgotLSB3cmFwIGFvLnNlbmQgYW5kIGFvLnNwYXduIGZvciBtYWdpYyB0YWJsZQoKbG9jYWwgYW9zZW5kID0gX2FvLnNlbmQgCgpsb2NhbCBhb3NwYXduID0gX2FvLnNwYXduCgpfYW8uc2VuZCA9IGZ1bmN0aW9uIChtc2cpCgogIGlmIG1zZy5EYXRhIGFuZCB0eXBlKG1zZy5EYXRhKSA9PSAndGFibGUnIHRoZW4KCiAgICBtc2dbJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzb24nCgogICAgbXNnLkRhdGEgPSByZXF1aXJlKCdqc29uJykuZW5jb2RlKG1zZy5EYXRhKQoKICBlbmQKCiAgcmV0dXJuIGFvc2VuZChtc2cpCgplbmQKCl9hby5zcGF3biA9IGZ1bmN0aW9uIChtb2R1bGUsIG1zZykgCgogIGlmIG1zZy5EYXRhIGFuZCB0eXBlKG1zZy5EYXRhKSA9PSAndGFibGUnIHRoZW4KCiAgICBtc2dbJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzb24nCgogICAgbXNnLkRhdGEgPSByZXF1aXJlKCdqc29uJykuZW5jb2RlKG1zZy5EYXRhKQoKICBlbmQKCiAgcmV0dXJuIGFvc3Bhd24obW9kdWxlLCBtc2cpCgplbmQKCgoKbG9jYWwgZnVuY3Rpb24gaW5zZXJ0SW5ib3gobXNnKQoKICB0YWJsZS5pbnNlcnQoSW5ib3gsIG1zZykKCiAgaWYgI0luYm94ID4gbWF4SW5ib3hDb3VudCB0aGVuCgogICAgbG9jYWwgb3ZlcmZsb3cgPSAjSW5ib3ggLSBtYXhJbmJveENvdW50IAoKICAgIGZvciBpID0gMSxvdmVyZmxvdyBkbwoKICAgICAgdGFibGUucmVtb3ZlKEluYm94LCAxKQoKICAgIGVuZAoKICBlbmQgCgplbmQKCgoKbG9jYWwgZnVuY3Rpb24gZmluZE9iamVjdChhcnJheSwga2V5LCB2YWx1ZSkKCiAgZm9yIGksIG9iamVjdCBpbiBpcGFpcnMoYXJyYXkpIGRvCgogICAgaWYgb2JqZWN0W2tleV0gPT0gdmFsdWUgdGhlbgoKICAgICAgcmV0dXJuIG9iamVjdAoKICAgIGVuZAoKICBlbmQKCiAgcmV0dXJuIG5pbAoKZW5kCgoKCmZ1bmN0aW9uIFRhYihtc2cpCgogIGxvY2FsIGlucHV0cyA9IHt9CgogIGZvciBfLCBvIGluIGlwYWlycyhtc2cuVGFncykgZG8KCiAgICBpZiBub3QgaW5wdXRzW28ubmFtZV0gdGhlbgoKICAgICAgaW5wdXRzW28ubmFtZV0gPSBvLnZhbHVlCgogICAgZW5kCgogIGVuZAoKICByZXR1cm4gaW5wdXRzCgplbmQKCgoKZnVuY3Rpb24gUHJvbXB0KCkKCiAgcmV0dXJuICJhb3M+ICIKCmVuZAoKCgpmdW5jdGlvbiBwcmludChhKQoKICBpZiB0eXBlKGEpID09ICJ0YWJsZSIgdGhlbgoKICAgIGEgPSBzdHJpbmdpZnkuZm9ybWF0KGEpCgogIGVuZAoKICAKCiAgcGNhbGwoZnVuY3Rpb24gKCkgCgogICAgbG9jYWwgZGF0YSA9IGEKCiAgICBpZiBfYW8ub3V0Ym94Lk91dHB1dC5kYXRhIHRoZW4KCiAgICAgIGRhdGEgPSAgX2FvLm91dGJveC5PdXRwdXQuZGF0YSAuLiAiXG4iIC4uIGEKCiAgICBlbmQKCiAgICBfYW8ub3V0Ym94Lk91dHB1dCA9IHsgZGF0YSA9IGRhdGEsIHByb21wdCA9IFByb21wdCgpLCBwcmludCA9IHRydWUgfQoKICBlbmQpCgoKCiAgcmV0dXJuIHRvc3RyaW5nKGEpCgplbmQKCgoKZnVuY3Rpb24gU2VuZChtc2cpCgogIF9hby5zZW5kKG1zZykKCiAgcmV0dXJuICdtZXNzYWdlIGFkZGVkIHRvIG91dGJveCcKCmVuZAoKCgpmdW5jdGlvbiBTcGF3bihtb2R1bGUsIG1zZykKCiAgaWYgbm90IG1zZyB0aGVuCgogICAgbXNnID0ge30KCiAgZW5kCgoKCiAgX2FvLnNwYXduKG1vZHVsZSwgbXNnKQoKICByZXR1cm4gJ3NwYXduIHByb2Nlc3MgcmVxdWVzdCcKCmVuZAoKCgpmdW5jdGlvbiBBc3NpZ24oYXNzaWdubWVudCkKCiAgX2FvLmFzc2lnbihhc3NpZ25tZW50KQoKICByZXR1cm4gJ2Fzc2lnbm1lbnQgYWRkZWQgdG8gb3V0Ym94JwoKZW5kCgoKClNlZWRlZCA9IFNlZWRlZCBvciBmYWxzZQoKCgotLSB0aGlzIGlzIGEgdGVtcG9yYXJ5IGFwcHJvYWNoLi4uCgpsb2NhbCBmdW5jdGlvbiBzdHJpbmdUb1NlZWQocykKCiAgbG9jYWwgc2VlZCA9IDAKCiAgZm9yIGkgPSAxLCAjcyBkbwoKICAgICAgbG9jYWwgY2hhciA9IHN0cmluZy5ieXRlKHMsIGkpCgogICAgICBzZWVkID0gc2VlZCArIGNoYXIKCiAgZW5kCgogIHJldHVybiBzZWVkCgplbmQKCgoKbG9jYWwgZnVuY3Rpb24gaW5pdGlhbGl6ZVN0YXRlKG1zZywgZW52KQoKICBpZiBub3QgU2VlZGVkIHRoZW4KCiAgICAtLW1hdGgucmFuZG9tc2VlZCgxMjM0KQoKICAgIGNoYW5jZS5zZWVkKHRvbnVtYmVyKG1zZ1snQmxvY2stSGVpZ2h0J10gLi4gc3RyaW5nVG9TZWVkKG1zZy5Pd25lciAuLiBtc2cuTW9kdWxlIC4uIG1zZy5JZCkpKQoKICAgIG1hdGgucmFuZG9tID0gZnVuY3Rpb24gKC4uLikKCiAgICAgIGxvY2FsIGFyZ3MgPSB7Li4ufQoKICAgICAgbG9jYWwgbiA9ICNhcmdzCgogICAgICBpZiBuID09IDAgdGhlbgoKICAgICAgICByZXR1cm4gY2hhbmNlLnJhbmRvbSgpCgogICAgICBlbmQKCiAgICAgIGlmIG4gPT0gMSB0aGVuCgogICAgICAgIHJldHVybiBjaGFuY2UuaW50ZWdlcigxLCBhcmdzWzFdKQoKICAgICAgZW5kCgogICAgICBpZiBuID09IDIgdGhlbgoKICAgICAgICByZXR1cm4gY2hhbmNlLmludGVnZXIoYXJnc1sxXSwgYXJnc1syXSkKCiAgICAgIGVuZAoKICAgICAgcmV0dXJuIGNoYW5jZS5yYW5kb20oKQoKICAgIGVuZAoKICAgIFNlZWRlZCA9IHRydWUKCiAgZW5kCgogIEVycm9ycyA9IEVycm9ycyBvciB7fQoKICBJbmJveCA9IEluYm94IG9yIHt9CgoKCiAgLS0gdGVtcG9yYXJ5IGZpeCBmb3IgU3Bhd24KCiAgaWYgbm90IE93bmVyIHRoZW4KCiAgICBsb2NhbCBfZnJvbSA9IGZpbmRPYmplY3QoZW52LlByb2Nlc3MuVGFncywgIm5hbWUiLCAiRnJvbS1Qcm9jZXNzIikKCiAgICBpZiBfZnJvbSB0aGVuCgogICAgICBPd25lciA9IF9mcm9tLnZhbHVlCgogICAgZWxzZQoKICAgICAgT3duZXIgPSBtc2cuRnJvbQoKICAgIGVuZAoKICBlbmQKCgoKICBpZiBub3QgTmFtZSB0aGVuCgogICAgbG9jYWwgYW9zTmFtZSA9IGZpbmRPYmplY3QoZW52LlByb2Nlc3MuVGFncywgIm5hbWUiLCAiTmFtZSIpCgogICAgaWYgYW9zTmFtZSB0aGVuCgogICAgICBOYW1lID0gYW9zTmFtZS52YWx1ZQoKICAgIGVsc2UKCiAgICAgIE5hbWUgPSAnYW9zJwoKICAgIGVuZAoKICBlbmQKCgoKZW5kCgoKCmZ1bmN0aW9uIFZlcnNpb24oKQoKICBwcmludCgidmVyc2lvbjogIiAuLiBwcm9jZXNzLl92ZXJzaW9uKQoKZW5kCgoKCmZ1bmN0aW9uIHByb2Nlc3MuaGFuZGxlKG1zZywgYW8pCgogIGFvLmlkID0gYW8uZW52LlByb2Nlc3MuSWQKCiAgaW5pdGlhbGl6ZVN0YXRlKG1zZywgYW8uZW52KQoKCgogIC0tIHRhZ2lmeSBtc2cKCiAgbXNnLlRhZ0FycmF5ID0gbXNnLlRhZ3MKCiAgbXNnLlRhZ3MgPSBUYWIobXNnKQoKICAtLSB0YWdpZnkgUHJvY2VzcwoKICBhby5lbnYuUHJvY2Vzcy5UYWdBcnJheSA9IGFvLmVudi5Qcm9jZXNzLlRhZ3MKCiAgYW8uZW52LlByb2Nlc3MuVGFncyA9IFRhYihhby5lbnYuUHJvY2VzcykKCiAgLS0gbWFnaWMgdGFibGUgLSBpZiBDb250ZW50LVR5cGUgPT0gYXBwbGljYXRpb24vanNvbiAtIGRlY29kZSBtc2cuRGF0YSB0byBhIFRhYmxlCgogIGlmIG1zZy5UYWdzWydDb250ZW50LVR5cGUnXSBhbmQgbXNnLlRhZ3NbJ0NvbnRlbnQtVHlwZSddID09ICdhcHBsaWNhdGlvbi9qc29uJyB0aGVuCgogICAgbXNnLkRhdGEgPSByZXF1aXJlKCdqc29uJykuZGVjb2RlKG1zZy5EYXRhIG9yICJ7fSIpCgogIGVuZAoKICAtLSBpbml0IEVycm9ycwoKICBFcnJvcnMgPSBFcnJvcnMgb3Ige30KCiAgLS0gY2xlYXIgT3V0Ym94CgogIGFvLmNsZWFyT3V0Ym94KCkKCgoKICBIYW5kbGVycy5hZGQoIl9ldmFsIiwgCgogICAgZnVuY3Rpb24gKG1zZykKCiAgICAgIHJldHVybiBtc2cuQWN0aW9uID09ICJFdmFsIiBhbmQgT3duZXIgPT0gbXNnLkZyb20KCiAgICBlbmQsCgogICAgcmVxdWlyZSgnLmV2YWwnKShhbykKCiAgKQoKICBIYW5kbGVycy5hcHBlbmQoIl9kZWZhdWx0IiwgZnVuY3Rpb24gKCkgcmV0dXJuIHRydWUgZW5kLCByZXF1aXJlKCcuZGVmYXVsdCcpKGluc2VydEluYm94KSkKCiAgLS0gY2FsbCBldmFsdWF0ZSBmcm9tIGhhbmRsZXJzIHBhc3NpbmcgZW52CgogIAoKICBsb2NhbCBzdGF0dXMsIHJlc3VsdCA9IHBjYWxsKEhhbmRsZXJzLmV2YWx1YXRlLCBtc2csIGFvLmVudikKCiAgCgoKCiAgaWYgbm90IHN0YXR1cyB0aGVuCgogICAgdGFibGUuaW5zZXJ0KEVycm9ycywgcmVzdWx0KQoKICAgIHJldHVybiB7IEVycm9yID0gcmVzdWx0IH0KCiAgICAtLSByZXR1cm4gewoKICAgIC0tICAgT3V0cHV0ID0geyAKCiAgICAtLSAgICAgZGF0YSA9IHsgCgogICAgLS0gICAgICAgcHJvbXB0ID0gUHJvbXB0KCksIAoKICAgIC0tICAgICAgIGpzb24gPSAndW5kZWZpbmVkJywgCgogICAgLS0gICAgICAgb3V0cHV0ID0gcmVzdWx0IAoKICAgIC0tICAgICB9CgogICAgLS0gICB9LCAKCiAgICAtLSAgIE1lc3NhZ2VzID0ge30sIAoKICAgIC0tICAgU3Bhd25zID0ge30KCiAgICAtLSB9CgogIGVuZAoKICAKCiAgcmV0dXJuIGFvLnJlc3VsdCh7IH0pCgplbmQKCgoKcmV0dXJuIHByb2Nlc3MKAAAAAABsb2NhbCBzdHJpbmdpZnkgPSB7IF92ZXJzaW9uID0gIjAuMC4xIiB9CgoKCi0tIEFOU0kgY29sb3IgY29kZXMKCmxvY2FsIGNvbG9ycyA9IHsKCiAgcmVkID0gIlwyN1szMW0iLAoKICBncmVlbiA9ICJcMjdbMzJtIiwKCiAgYmx1ZSA9ICJcMjdbMzRtIiwKCiAgcmVzZXQgPSAiXDI3WzBtIgoKfQoKCgpmdW5jdGlvbiBzdHJpbmdpZnkuaXNTaW1wbGVBcnJheSh0YmwpCgogIGxvY2FsIGFycmF5SW5kZXggPSAxCgogIGZvciBrLCB2IGluIHBhaXJzKHRibCkgZG8KCiAgICBpZiBrIH49IGFycmF5SW5kZXggb3IgKHR5cGUodikgfj0gIm51bWJlciIgYW5kIHR5cGUodikgfj0gInN0cmluZyIpIHRoZW4KCiAgICAgIHJldHVybiBmYWxzZQoKICAgIGVuZAoKICAgIGFycmF5SW5kZXggPSBhcnJheUluZGV4ICsgMQoKICBlbmQKCiAgcmV0dXJuIHRydWUKCmVuZAoKCgpmdW5jdGlvbiBzdHJpbmdpZnkuZm9ybWF0KHRibCwgaW5kZW50KQoKICBpbmRlbnQgPSBpbmRlbnQgb3IgMAoKICBsb2NhbCB0b0luZGVudCA9IHN0cmluZy5yZXAoIiAiLCBpbmRlbnQpCgogIGxvY2FsIHRvSW5kZW50Q2hpbGQgPSBzdHJpbmcucmVwKCIgIiwgaW5kZW50ICsgMikKCgoKICBsb2NhbCByZXN1bHQgPSB7fQoKICBsb2NhbCBpc0FycmF5ID0gdHJ1ZQoKICBsb2NhbCBhcnJheUluZGV4ID0gMQoKCgogIGlmIHN0cmluZ2lmeS5pc1NpbXBsZUFycmF5KHRibCkgdGhlbgoKICAgIGZvciBfLCB2IGluIGlwYWlycyh0YmwpIGRvCgogICAgICBpZiB0eXBlKHYpID09ICJzdHJpbmciIHRoZW4KCiAgICAgICAgdiA9IGNvbG9ycy5ncmVlbiAuLiAnIicgLi4gdiAuLiAnIicgLi4gY29sb3JzLnJlc2V0CgogICAgICBlbHNlCgogICAgICAgIHYgPSBjb2xvcnMuYmx1ZSAuLiB0b3N0cmluZyh2KSAuLiBjb2xvcnMucmVzZXQKCiAgICAgIGVuZAoKICAgICAgdGFibGUuaW5zZXJ0KHJlc3VsdCwgdikKCiAgICBlbmQKCiAgICByZXR1cm4gInsgIiAuLiB0YWJsZS5jb25jYXQocmVzdWx0LCAiLCAiKSAuLiAiIH0iCgogIGVuZAoKCgogIGZvciBrLCB2IGluIHBhaXJzKHRibCkgZG8KCiAgICBpZiBpc0FycmF5IHRoZW4KCiAgICAgIGlmIGsgPT0gYXJyYXlJbmRleCB0aGVuCgogICAgICAgIGFycmF5SW5kZXggPSBhcnJheUluZGV4ICsgMQoKICAgICAgICBpZiB0eXBlKHYpID09ICJ0YWJsZSIgdGhlbgoKICAgICAgICAgIHYgPSBzdHJpbmdpZnkuZm9ybWF0KHYsIGluZGVudCArIDIpCgogICAgICAgIGVsc2VpZiB0eXBlKHYpID09ICJzdHJpbmciIHRoZW4KCiAgICAgICAgICB2ID0gY29sb3JzLmdyZWVuIC4uICciJyAuLiB2IC4uICciJyAuLiBjb2xvcnMucmVzZXQKCiAgICAgICAgZWxzZQoKICAgICAgICAgIHYgPSBjb2xvcnMuYmx1ZSAuLiB0b3N0cmluZyh2KSAuLiBjb2xvcnMucmVzZXQKCiAgICAgICAgZW5kCgogICAgICAgIHRhYmxlLmluc2VydChyZXN1bHQsIHRvSW5kZW50Q2hpbGQgLi4gdikKCiAgICAgIGVsc2UKCiAgICAgICAgaXNBcnJheSA9IGZhbHNlCgogICAgICAgIHJlc3VsdCA9IHt9CgogICAgICBlbmQKCiAgICBlbmQKCiAgICBpZiBub3QgaXNBcnJheSB0aGVuCgogICAgICBpZiB0eXBlKHYpID09ICJ0YWJsZSIgdGhlbgoKICAgICAgICB2ID0gc3RyaW5naWZ5LmZvcm1hdCh2LCBpbmRlbnQgKyAyKQoKICAgICAgZWxzZWlmIHR5cGUodikgPT0gInN0cmluZyIgdGhlbgoKICAgICAgICB2ID0gY29sb3JzLmdyZWVuIC4uICciJyAuLiB2IC4uICciJyAuLiBjb2xvcnMucmVzZXQKCiAgICAgIGVsc2UKCiAgICAgICAgdiA9IGNvbG9ycy5ibHVlIC4uIHRvc3RyaW5nKHYpIC4uIGNvbG9ycy5yZXNldAoKICAgICAgZW5kCgogICAgICBrID0gY29sb3JzLnJlZCAuLiBrIC4uIGNvbG9ycy5yZXNldAoKICAgICAgdGFibGUuaW5zZXJ0KHJlc3VsdCwgdG9JbmRlbnRDaGlsZCAuLiBrIC4uICIgPSAiIC4uIHYpCgogICAgZW5kCgogIGVuZAoKCgogIGxvY2FsIHByZWZpeCA9IGlzQXJyYXkgYW5kICJ7XG4iIG9yICJ7XG4gIgoKICBsb2NhbCBzdWZmaXggPSBpc0FycmF5IGFuZCAiXG4iIC4uIHRvSW5kZW50IC4uICIgfSIgb3IgIlxuIiAuLiB0b0luZGVudCAuLiAifSIKCiAgbG9jYWwgc2VwYXJhdG9yID0gaXNBcnJheSBhbmQgIixcbiIgb3IgIixcbiAiCgogIHJldHVybiBwcmVmaXggLi4gdGFibGUuY29uY2F0KHJlc3VsdCwgc2VwYXJhdG9yKSAuLiBzdWZmaXgKCmVuZAoKCgpyZXR1cm4gc3RyaW5naWZ5CgAAAABsb2NhbCB1dGlscyA9IHsgX3ZlcnNpb24gPSAiMC4wLjIiIH0KCgoKbG9jYWwgZnVuY3Rpb24gaXNBcnJheSh0YWJsZSkKCiAgaWYgdHlwZSh0YWJsZSkgPT0gInRhYmxlIiB0aGVuCgogICAgICBsb2NhbCBtYXhJbmRleCA9IDAKCiAgICAgIGZvciBrLCB2IGluIHBhaXJzKHRhYmxlKSBkbwoKICAgICAgICAgIGlmIHR5cGUoaykgfj0gIm51bWJlciIgb3IgayA8IDEgb3IgbWF0aC5mbG9vcihrKSB+PSBrIHRoZW4KCiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlIC0tIElmIHRoZXJlJ3MgYSBub24taW50ZWdlciBrZXksIGl0J3Mgbm90IGFuIGFycmF5CgogICAgICAgICAgZW5kCgogICAgICAgICAgbWF4SW5kZXggPSBtYXRoLm1heChtYXhJbmRleCwgaykKCiAgICAgIGVuZAoKICAgICAgLS0gSWYgdGhlIGhpZ2hlc3QgbnVtZXJpYyBpbmRleCBpcyBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzLCBpdCdzIGFuIGFycmF5CgogICAgICByZXR1cm4gbWF4SW5kZXggPT0gI3RhYmxlCgogIGVuZAoKICByZXR1cm4gZmFsc2UKCmVuZAoKCgotLSBAcGFyYW0ge2Z1bmN0aW9ufSBmbgoKLS0gQHBhcmFtIHtudW1iZXJ9IGFyaXR5Cgp1dGlscy5jdXJyeSA9IGZ1bmN0aW9uIChmbiwgYXJpdHkpCgogIGFzc2VydCh0eXBlKGZuKSA9PSAiZnVuY3Rpb24iLCAiZnVuY3Rpb24gaXMgcmVxdWlyZWQgYXMgZmlyc3QgYXJndW1lbnQiKQoKICBhcml0eSA9IGFyaXR5IG9yIGRlYnVnLmdldGluZm8oZm4sICJ1IikubnBhcmFtcwoKICBpZiBhcml0eSA8IDIgdGhlbiByZXR1cm4gZm4gZW5kCgoKCiAgcmV0dXJuIGZ1bmN0aW9uICguLi4pCgogICAgbG9jYWwgYXJncyA9IHsuLi59CgoKCiAgICBpZiAjYXJncyA+PSBhcml0eSB0aGVuCgogICAgICByZXR1cm4gZm4odGFibGUudW5wYWNrKGFyZ3MpKQoKICAgIGVsc2UKCiAgICAgIHJldHVybiB1dGlscy5jdXJyeShmdW5jdGlvbiAoLi4uKQoKICAgICAgICByZXR1cm4gZm4odGFibGUudW5wYWNrKGFyZ3MpLCAgLi4uKQoKICAgICAgZW5kLCBhcml0eSAtICNhcmdzKQoKICAgIGVuZAoKICBlbmQKCmVuZAoKCgotLS0gQ29uY2F0IHR3byBBcnJheSBUYWJsZXMuCgotLSBAcGFyYW0ge3RhYmxlPEFycmF5Pn0gYQoKLS0gQHBhcmFtIHt0YWJsZTxBcnJheT59IGIKCnV0aWxzLmNvbmNhdCA9IHV0aWxzLmN1cnJ5KGZ1bmN0aW9uIChhLCBiKQoKICBhc3NlcnQodHlwZShhKSA9PSAidGFibGUiLCAiZmlyc3QgYXJndW1lbnQgc2hvdWxkIGJlIGEgdGFibGUgdGhhdCBpcyBhbiBhcnJheSIpCgogIGFzc2VydCh0eXBlKGIpID09ICJ0YWJsZSIsICJzZWNvbmQgYXJndW1lbnQgc2hvdWxkIGJlIGEgdGFibGUgdGhhdCBpcyBhbiBhcnJheSIpCgogIGFzc2VydChpc0FycmF5KGEpLCAiZmlyc3QgYXJndW1lbnQgc2hvdWxkIGJlIGEgdGFibGUiKQoKICBhc3NlcnQoaXNBcnJheShiKSwgInNlY29uZCBhcmd1bWVudCBzaG91bGQgYmUgYSB0YWJsZSIpCgoKCiAgbG9jYWwgcmVzdWx0ID0ge30KCiAgZm9yIGkgPSAxLCAjYSBkbwoKICAgICAgcmVzdWx0WyNyZXN1bHQgKyAxXSA9IGFbaV0KCiAgZW5kCgogIGZvciBpID0gMSwgI2IgZG8KCiAgICAgIHJlc3VsdFsjcmVzdWx0ICsgMV0gPSBiW2ldCgogIGVuZAoKICByZXR1cm4gcmVzdWx0CgplbmQsIDIpCgoKCi0tLSByZWR1Y2UgYXBwbGllcyBhIGZ1bmN0aW9uIHRvIGEgdGFibGUKCi0tIEBwYXJhbSB7ZnVuY3Rpb259IGZuCgotLSBAcGFyYW0ge2FueX0gaW5pdGlhbAoKLS0gQHBhcmFtIHt0YWJsZTxBcnJheT59IHQKCnV0aWxzLnJlZHVjZSA9IHV0aWxzLmN1cnJ5KGZ1bmN0aW9uIChmbiwgaW5pdGlhbCwgdCkKCiAgYXNzZXJ0KHR5cGUoZm4pID09ICJmdW5jdGlvbiIsICJmaXJzdCBhcmd1bWVudCBzaG91bGQgYmUgYSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgKHJlc3VsdCwgdmFsdWUsIGtleSkiKQoKICBhc3NlcnQodHlwZSh0KSA9PSAidGFibGUiIGFuZCBpc0FycmF5KHQpLCAidGhpcmQgYXJndW1lbnQgc2hvdWxkIGJlIGEgdGFibGUgdGhhdCBpcyBhbiBhcnJheSIpCgogIGxvY2FsIHJlc3VsdCA9IGluaXRpYWwKCiAgZm9yIGssIHYgaW4gcGFpcnModCkgZG8KCiAgICBpZiByZXN1bHQgPT0gbmlsIHRoZW4KCiAgICAgIHJlc3VsdCA9IHYKCiAgICBlbHNlCgogICAgICByZXN1bHQgPSBmbihyZXN1bHQsIHYsIGspCgogICAgZW5kCgogIGVuZAoKICByZXR1cm4gcmVzdWx0CgplbmQsIDMpCgoKCi0tIEBwYXJhbSB7ZnVuY3Rpb259IGZuCgotLSBAcGFyYW0ge3RhYmxlPEFycmF5Pn0gZGF0YQoKdXRpbHMubWFwID0gdXRpbHMuY3VycnkoZnVuY3Rpb24gKGZuLCBkYXRhKQoKICBhc3NlcnQodHlwZShmbikgPT0gImZ1bmN0aW9uIiwgImZpcnN0IGFyZ3VtZW50IHNob3VsZCBiZSBhIHVuYXJ5IGZ1bmN0aW9uIikKCiAgYXNzZXJ0KHR5cGUoZGF0YSkgPT0gInRhYmxlIiBhbmQgaXNBcnJheShkYXRhKSwgInNlY29uZCBhcmd1bWVudCBzaG91bGQgYmUgYW4gQXJyYXkiKQoKCgogIGxvY2FsIGZ1bmN0aW9uIG1hcCAocmVzdWx0LCB2LCBrKQoKICAgIHJlc3VsdFtrXSA9IGZuKHYsIGspCgogICAgcmV0dXJuIHJlc3VsdAoKICBlbmQKCgoKICByZXR1cm4gdXRpbHMucmVkdWNlKG1hcCwge30sIGRhdGEpCgplbmQsIDIpCgoKCi0tIEBwYXJhbSB7ZnVuY3Rpb259IGZuCgotLSBAcGFyYW0ge3RhYmxlPEFycmF5Pn0gZGF0YQoKdXRpbHMuZmlsdGVyID0gdXRpbHMuY3VycnkoZnVuY3Rpb24gKGZuLCBkYXRhKQoKICBhc3NlcnQodHlwZShmbikgPT0gImZ1bmN0aW9uIiwgImZpcnN0IGFyZ3VtZW50IHNob3VsZCBiZSBhIHVuYXJ5IGZ1bmN0aW9uIikKCiAgYXNzZXJ0KHR5cGUoZGF0YSkgPT0gInRhYmxlIiBhbmQgaXNBcnJheShkYXRhKSwgInNlY29uZCBhcmd1bWVudCBzaG91bGQgYmUgYW4gQXJyYXkiKQoKCgogIGxvY2FsIGZ1bmN0aW9uIGZpbHRlciAocmVzdWx0LCB2LCBfaykKCiAgICBpZiBmbih2KSB0aGVuCgogICAgICB0YWJsZS5pbnNlcnQocmVzdWx0LCB2KQoKICAgIGVuZAoKICAgIHJldHVybiByZXN1bHQKCiAgZW5kCgoKCiAgcmV0dXJuIHV0aWxzLnJlZHVjZShmaWx0ZXIse30sIGRhdGEpCgplbmQsIDIpCgoKCi0tIEBwYXJhbSB7ZnVuY3Rpb259IGZuCgotLSBAcGFyYW0ge3RhYmxlPEFycmF5Pn0gdAoKdXRpbHMuZmluZCA9IHV0aWxzLmN1cnJ5KGZ1bmN0aW9uIChmbiwgdCkKCiAgYXNzZXJ0KHR5cGUoZm4pID09ICJmdW5jdGlvbiIsICJmaXJzdCBhcmd1bWVudCBzaG91bGQgYmUgYSB1bmFyeSBmdW5jdGlvbiIpCgogIGFzc2VydCh0eXBlKHQpID09ICJ0YWJsZSIsICJzZWNvbmQgYXJndW1lbnQgc2hvdWxkIGJlIGEgdGFibGUgdGhhdCBpcyBhbiBhcnJheSIpCgogIGZvciBfLCB2IGluIHBhaXJzKHQpIGRvCgogICAgaWYgZm4odikgdGhlbgoKICAgICAgcmV0dXJuIHYKCiAgICBlbmQKCiAgZW5kCgplbmQsIDIpCgoKCi0tIEBwYXJhbSB7c3RyaW5nfSBwcm9wTmFtZQoKLS0gQHBhcmFtIHtzdHJpbmd9IHZhbHVlIAoKLS0gQHBhcmFtIHt0YWJsZX0gb2JqZWN0Cgp1dGlscy5wcm9wRXEgPSB1dGlscy5jdXJyeShmdW5jdGlvbiAocHJvcE5hbWUsIHZhbHVlLCBvYmplY3QpCgogIGFzc2VydCh0eXBlKHByb3BOYW1lKSA9PSAic3RyaW5nIiwgImZpcnN0IGFyZ3VtZW50IHNob3VsZCBiZSBhIHN0cmluZyIpCgogIC0tIGFzc2VydCh0eXBlKHZhbHVlKSA9PSAic3RyaW5nIiwgInNlY29uZCBhcmd1bWVudCBzaG91bGQgYmUgYSBzdHJpbmciKQoKICBhc3NlcnQodHlwZShvYmplY3QpID09ICJ0YWJsZSIsICJ0aGlyZCBhcmd1bWVudCBzaG91bGQgYmUgYSB0YWJsZTxvYmplY3Q+IikKCiAgCgogIHJldHVybiBvYmplY3RbcHJvcE5hbWVdID09IHZhbHVlCgplbmQsIDMpCgoKCi0tIEBwYXJhbSB7dGFibGU8QXJyYXk+fSBkYXRhCgp1dGlscy5yZXZlcnNlID0gZnVuY3Rpb24gKGRhdGEpCgogIGFzc2VydCh0eXBlKGRhdGEpID09ICJ0YWJsZSIsICJhcmd1bWVudCBuZWVkcyB0byBiZSBhIHRhYmxlIHRoYXQgaXMgYW4gYXJyYXkiKQoKICByZXR1cm4gdXRpbHMucmVkdWNlKAoKICAgIGZ1bmN0aW9uIChyZXN1bHQsIHYsIGkpCgogICAgICByZXN1bHRbI2RhdGEgLSBpICsgMV0gPSB2CgogICAgICByZXR1cm4gcmVzdWx0CgogICAgZW5kLAoKICAgIHt9LAoKICAgIGRhdGEKCiAgKQoKZW5kCgoKCi0tIEBwYXJhbSB7ZnVuY3Rpb259IC4uLiAKCnV0aWxzLmNvbXBvc2UgPSB1dGlscy5jdXJyeShmdW5jdGlvbiAoLi4uKQoKICBsb2NhbCBtdXRhdGlvbnMgPSB1dGlscy5yZXZlcnNlKHsuLi59KQoKCgogIHJldHVybiBmdW5jdGlvbiAodikKCiAgICBsb2NhbCByZXN1bHQgPSB2CgogICAgZm9yIF8sIGZuIGluIHBhaXJzKG11dGF0aW9ucykgZG8KCiAgICAgIGFzc2VydCh0eXBlKGZuKSA9PSAiZnVuY3Rpb24iLCAiZWFjaCBhcmd1bWVudCBuZWVkcyB0byBiZSBhIGZ1bmN0aW9uIikKCiAgICAgIHJlc3VsdCA9IGZuKHJlc3VsdCkKCiAgICBlbmQKCiAgICByZXR1cm4gcmVzdWx0CgogIGVuZAoKZW5kLCAyKQoKCgotLSBAcGFyYW0ge3N0cmluZ30gcHJvcE5hbWUKCi0tIEBwYXJhbSB7dGFibGV9IG9iamVjdAoKdXRpbHMucHJvcCA9IHV0aWxzLmN1cnJ5KGZ1bmN0aW9uIChwcm9wTmFtZSwgb2JqZWN0KSAKCiAgcmV0dXJuIG9iamVjdFtwcm9wTmFtZV0KCmVuZCwgMikKCgoKLS0gQHBhcmFtIHthbnl9IHZhbAoKLS0gQHBhcmFtIHt0YWJsZTxBcnJheT59IHQKCnV0aWxzLmluY2x1ZGVzID0gdXRpbHMuY3VycnkoZnVuY3Rpb24gKHZhbCwgdCkKCiAgYXNzZXJ0KHR5cGUodCkgPT0gInRhYmxlIiwgImFyZ3VtZW50IG5lZWRzIHRvIGJlIGEgdGFibGUiKQoKICByZXR1cm4gdXRpbHMuZmluZChmdW5jdGlvbiAodikgcmV0dXJuIHYgPT0gdmFsIGVuZCwgdCkgfj0gbmlsCgplbmQsIDIpCgoKCi0tIEBwYXJhbSB7dGFibGV9IHQKCnV0aWxzLmtleXMgPSBmdW5jdGlvbiAodCkKCiAgYXNzZXJ0KHR5cGUodCkgPT0gInRhYmxlIiwgImFyZ3VtZW50IG5lZWRzIHRvIGJlIGEgdGFibGUiKQoKICBsb2NhbCBrZXlzID0ge30KCiAgZm9yIGtleSBpbiBwYWlycyh0KSBkbwoKICAgIHRhYmxlLmluc2VydChrZXlzLCBrZXkpCgogIGVuZAoKICByZXR1cm4ga2V5cwoKZW5kCgoKCi0tIEBwYXJhbSB7dGFibGV9IHQKCnV0aWxzLnZhbHVlcyA9IGZ1bmN0aW9uICh0KQoKICBhc3NlcnQodHlwZSh0KSA9PSAidGFibGUiLCAiYXJndW1lbnQgbmVlZHMgdG8gYmUgYSB0YWJsZSIpCgogIGxvY2FsIHZhbHVlcyA9IHt9CgogIGZvciBfLCB2YWx1ZSBpbiBwYWlycyh0KSBkbwoKICAgIHRhYmxlLmluc2VydCh2YWx1ZXMsIHZhbHVlKQoKICBlbmQKCiAgcmV0dXJuIHZhbHVlcwoKZW5kCgoKCnJldHVybiB1dGlscwoAQaDDBgu2qgVsb2NhbCB1dGlsID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLmluaXQiKQoKbG9jYWwgZGlnZXN0ID0gcmVxdWlyZSgiLmNyeXB0by5kaWdlc3QuaW5pdCIpCgpsb2NhbCBjaXBoZXIgPSByZXF1aXJlKCIuY3J5cHRvLmNpcGhlci5pbml0IikKCmxvY2FsIG1hYyA9IHJlcXVpcmUoIi5jcnlwdG8ubWFjLmluaXQiKQoKbG9jYWwga2RmID0gcmVxdWlyZSgiLmNyeXB0by5rZGYuaW5pdCIpCgoKCmxvY2FsIGNyeXB0byA9IHsKCiAgICBfdmVyc2lvbiA9ICIwLjAuMSIsCgogICAgZGlnZXN0ID0gZGlnZXN0LAoKICAgIHV0aWxzID0gdXRpbCwKCiAgICBjaXBoZXIgPSBjaXBoZXIsCgogICAgcmFuZG9tID0gY2lwaGVyLmlzc2FjLnJhbmRvbSwKCiAgICBtYWMgPSBtYWMsCgogICAga2RmID0ga2RmLAoKfTsKCgoKcmV0dXJuIGNyeXB0bwAAAGxvY2FsIFN0cmVhbSA9IHJlcXVpcmUoIi5jcnlwdG8udXRpbC5zdHJlYW0iKQoKbG9jYWwgSGV4ID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLmhleCIpCgpsb2NhbCBBcnJheSA9IHJlcXVpcmUoIi5jcnlwdG8udXRpbC5hcnJheSIpCgoKCi0tIENpcGhlcnMKCmxvY2FsIEFFUzEyOENpcGhlciA9IHJlcXVpcmUoIi5jcnlwdG8uY2lwaGVyLmFlczEyOCIpCgpsb2NhbCBBRVMxOTJDaXBoZXIgPSByZXF1aXJlKCIuY3J5cHRvLmNpcGhlci5hZXMxOTIiKQoKbG9jYWwgQUVTMjU2Q2lwaGVyID0gcmVxdWlyZSgiLmNyeXB0by5jaXBoZXIuYWVzMjU2IikKCgoKLS0gTW9kZXMKCmxvY2FsIENCQ01vZGUgPSByZXF1aXJlKCIuY3J5cHRvLmNpcGhlci5tb2RlLmNiYyIpCgpsb2NhbCBFQ0JNb2RlID0gcmVxdWlyZSgiLmNyeXB0by5jaXBoZXIubW9kZS5lY2IiKQoKbG9jYWwgQ0ZCTW9kZSA9IHJlcXVpcmUoIi5jcnlwdG8uY2lwaGVyLm1vZGUuY2ZiIikKCmxvY2FsIE9GQk1vZGUgPSByZXF1aXJlKCIuY3J5cHRvLmNpcGhlci5tb2RlLm9mYiIpCgpsb2NhbCBDVFJNb2RlID0gcmVxdWlyZSgiLmNyeXB0by5jaXBoZXIubW9kZS5jdHIiKQoKCgotLSBQYWRkaW5nCgpsb2NhbCBaZXJvUGFkZGluZyA9IHJlcXVpcmUoIi5jcnlwdG8ucGFkZGluZy56ZXJvIikKCgoKbG9jYWwgcHVibGljID0ge30KCgoKbG9jYWwgZ2V0QmxvY2tDaXBoZXIgPSBmdW5jdGlvbihrZXlMZW5ndGgpCgogICAgaWYga2V5TGVuZ3RoID09IDEyOCB0aGVuCgogICAgICAgIHJldHVybiBBRVMxMjhDaXBoZXIKCiAgICBlbHNlaWYga2V5TGVuZ3RoID09IDE5MiB0aGVuCgogICAgICAgIHJldHVybiBBRVMxOTJDaXBoZXIKCiAgICBlbHNlaWYga2V5TGVuZ3RoID09IDI1NiB0aGVuCgogICAgICAgIHJldHVybiBBRVMyNTZDaXBoZXIKCiAgICBlbHNlaWYga2V5TGVuZ3RoID09IG5pbCB0aGVuCgogICAgICAgIHJldHVybiBBRVMxMjhDaXBoZXIKCiAgICBlbHNlCgogICAgICAgIHJldHVybiBuaWwKCiAgICBlbmQKCmVuZAoKCgpsb2NhbCBnZXRNb2RlID0gZnVuY3Rpb24obW9kZSkKCiAgICBpZiBtb2RlID09ICJDQkMiIHRoZW4KCiAgICAgICAgcmV0dXJuIENCQ01vZGUKCiAgICBlbHNlaWYgbW9kZSA9PSAiRUNCIiB0aGVuCgogICAgICAgIHJldHVybiBFQ0JNb2RlCgogICAgZWxzZWlmIG1vZGUgPT0gIkNGQiIgdGhlbgoKICAgICAgICByZXR1cm4gQ0ZCTW9kZQoKICAgIGVsc2VpZiBtb2RlID09ICJPRkIiIHRoZW4KCiAgICAgICAgcmV0dXJuIE9GQk1vZGUKCiAgICBlbHNlaWYgbW9kZSA9PSAiQ1RSIiB0aGVuCgogICAgICAgIHJldHVybiBDVFJNb2RlCgogICAgZWxzZQoKICAgICAgICByZXR1cm4gbmlsCgogICAgZW5kCgplbmQKCgoKCgotLS0gRW5jcnlwdHMgdGhlIGdpdmVuIGRhdGEgdXNpbmcgQUVTIGVuY3J5cHRpb24uCgotLS0gQHBhcmFtIGRhdGEgc3RyaW5nIC0gVGhlIGRhdGEgdG8gYmUgZW5jcnlwdGVkLgoKLS0tIEBwYXJhbSBrZXkgc3RyaW5nIC0gVGhlIGtleSB0byB1c2UgZm9yIGVuY3J5cHRpb24uCgotLS0gQHBhcmFtIGl2PyBzdHJpbmcgKG9wdGlvbmFsKSAtIFRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgdG8gdXNlIGZvciBlbmNyeXB0aW9uLiBEZWZhdWx0cyB0byAxNiBudWxsIGJ5dGVzLgoKLS0tIEBwYXJhbSBtb2RlPyBzdHJpbmcgKG9wdGlvbmFsKSAtIFRoZSBtb2RlIHRvIHVzZSBmb3IgZW5jcnlwdGlvbi4gRGVmYXVsdHMgdG8gIkNCQyIuCgotLS0gQHBhcmFtIGtleUxlbmd0aD8gbnVtYmVyIChvcHRpb25hbCkgLSBUaGUgbGVuZ3RoIG9mIHRoZSBrZXkgdG8gdXNlIGZvciBlbmNyeXB0aW9uLiBEZWZhdWx0cyB0byAxMjguCgotLS0gQHJldHVybnMgdGFibGUgLSBBIHRhYmxlIGNvbnRhaW5pbmcgdGhlIGVuY3J5cHRlZCBkYXRhIGluIGJ5dGVzLCBoZXgsIGFuZCBzdHJpbmcgZm9ybWF0cy4KCnB1YmxpYy5lbmNyeXB0ID0gZnVuY3Rpb24oZGF0YSwga2V5LCBpdiwgbW9kZSwga2V5TGVuZ3RoKQoKICAgIGxvY2FsIGQgPSBBcnJheS5mcm9tU3RyaW5nKGRhdGEpCgogICAgbG9jYWwgayA9IEFycmF5LmZyb21TdHJpbmcoa2V5KQoKICAgIGxvY2FsIF9pdiA9IGl2IH49IG5pbCBhbmQgQXJyYXkuZnJvbVN0cmluZyhpdikgb3IgQXJyYXkuZnJvbUhleCgiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKQoKCgogICAgbG9jYWwgY2lwaGVyTW9kZSA9IGdldE1vZGUobW9kZSkgb3IgQ0JDTW9kZQoKICAgIGxvY2FsIGJsb2NrQ2lwaGVyID0gZ2V0QmxvY2tDaXBoZXIoa2V5TGVuZ3RoKSBvciBBRVMxMjhDaXBoZXIKCgoKICAgIGxvY2FsIGNpcGhlciA9IGNpcGhlck1vZGUuQ2lwaGVyKCkKCiAgICAgICAgLnNldEtleShrKQoKICAgICAgICAuc2V0QmxvY2tDaXBoZXIoYmxvY2tDaXBoZXIpCgogICAgICAgIC5zZXRQYWRkaW5nKFplcm9QYWRkaW5nKTsKCgoKCgogICAgbG9jYWwgY2lwaGVyT3V0cHV0ID0gY2lwaGVyCgogICAgICAgIC5pbml0KCkKCiAgICAgICAgLnVwZGF0ZShTdHJlYW0uZnJvbUFycmF5KF9pdikpCgogICAgICAgIC51cGRhdGUoU3RyZWFtLmZyb21BcnJheShkKSkKCiAgICAgICAgLmZpbmlzaCgpCgoKCiAgICBsb2NhbCByZXN1bHRzID0ge30KCgoKICAgIHJlc3VsdHMuYXNCeXRlcyA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIGNpcGhlck91dHB1dC5hc0J5dGVzKCkKCiAgICBlbmQKCgoKICAgIHJlc3VsdHMuYXNIZXggPSBmdW5jdGlvbigpCgogICAgICAgIHJldHVybiBjaXBoZXJPdXRwdXQuYXNIZXgoKQoKICAgIGVuZAoKCgogICAgcmVzdWx0cy5hc1N0cmluZyA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIGNpcGhlck91dHB1dC5hc1N0cmluZygpCgogICAgZW5kCgoKCiAgICByZXR1cm4gcmVzdWx0cwoKZW5kCgoKCi0tLSBEZWNyeXB0cyB0aGUgZ2l2ZW4gZGF0YSB1c2luZyBBRVMgZGVjcnlwdGlvbi4KCi0tLSBAcGFyYW0gY2lwaGVyIHN0cmluZyAtIFRoZSBoZXggZW5jb2RlZCBjaXBoZXIgdG8gYmUgZGVjcnlwdGVkLgoKLS0tIEBwYXJhbSBrZXkgc3RyaW5nIC0gVGhlIGtleSB0byB1c2UgZm9yIGRlY3J5cHRpb24uCgotLS0gQHBhcmFtIGl2PyBzdHJpbmcgKG9wdGlvbmFsKSAtIFRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgdG8gdXNlIGZvciBkZWNyeXB0aW9uLiBEZWZhdWx0cyB0byAxNiBudWxsIGJ5dGVzLgoKLS0tIEBwYXJhbSBtb2RlPyBzdHJpbmcgKG9wdGlvbmFsKSAtIFRoZSBtb2RlIHRvIHVzZSBmb3IgZGVjcnlwdGlvbi4gRGVmYXVsdHMgdG8gIkNCQyIuCgotLS0gQHBhcmFtIGtleUxlbmd0aD8gbnVtYmVyIChvcHRpb25hbCkgLSBUaGUgbGVuZ3RoIG9mIHRoZSBrZXkgdG8gdXNlIGZvciBkZWNyeXB0aW9uLiBEZWZhdWx0cyB0byAxMjguCgpwdWJsaWMuZGVjcnlwdCA9IGZ1bmN0aW9uKGNpcGhlciwga2V5LCBpdiwgbW9kZSwga2V5TGVuZ3RoKQoKICAgIGxvY2FsIGNpcGhlclRleHQgPSBBcnJheS5mcm9tSGV4KGNpcGhlcikKCiAgICBsb2NhbCBrID0gQXJyYXkuZnJvbVN0cmluZyhrZXkpCgogICAgbG9jYWwgX2l2ID0gaXYgfj0gbmlsIGFuZCBBcnJheS5mcm9tU3RyaW5nKGl2KSBvciBBcnJheS5mcm9tSGV4KCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIpCgoKCiAgICBsb2NhbCBjaXBoZXJNb2RlID0gZ2V0TW9kZShtb2RlKSBvciBDQkNNb2RlCgogICAgbG9jYWwgYmxvY2tDaXBoZXIgPSBnZXRCbG9ja0NpcGhlcihrZXlMZW5ndGgpIG9yIEFFUzEyOENpcGhlcgoKCgoKCiAgICBsb2NhbCBkZWNpcGhlciA9IGNpcGhlck1vZGUuRGVjaXBoZXIoKQoKICAgICAgICAgICAgLnNldEtleShrKQoKICAgICAgICAgICAgLnNldEJsb2NrQ2lwaGVyKGJsb2NrQ2lwaGVyKQoKICAgICAgICAgICAgLnNldFBhZGRpbmcoWmVyb1BhZGRpbmcpOwoKCgoKCiAgICBsb2NhbCBwbGFpbk91dHB1dCA9IGRlY2lwaGVyCgogICAgICAgIC5pbml0KCkKCiAgICAgICAgLnVwZGF0ZShTdHJlYW0uZnJvbUFycmF5KF9pdikpCgogICAgICAgIC51cGRhdGUoU3RyZWFtLmZyb21BcnJheShjaXBoZXJUZXh0KSkKCiAgICAgICAgLmZpbmlzaCgpCgoKCiAgICBsb2NhbCByZXN1bHRzID0ge30KCgoKICAgIHJlc3VsdHMuYXNCeXRlcyA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIHBsYWluT3V0cHV0LmFzQnl0ZXMoKQoKICAgIGVuZAoKCgogICAgcmVzdWx0cy5hc0hleCA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIHBsYWluT3V0cHV0LmFzSGV4KCkKCiAgICBlbmQKCgoKICAgIHJlc3VsdHMuYXNTdHJpbmcgPSBmdW5jdGlvbigpCgogICAgICAgIHJldHVybiBwbGFpbk91dHB1dC5hc1N0cmluZygpCgogICAgZW5kCgoKCiAgICByZXR1cm4gcmVzdWx0cwoKZW5kCgoKCgoKcmV0dXJuIHB1YmxpYwoAbG9jYWwgQXJyYXkgPSByZXF1aXJlKCIuY3J5cHRvLnV0aWwuYXJyYXkiKTsKCmxvY2FsIEJpdCA9IHJlcXVpcmUoIi5jcnlwdG8udXRpbC5iaXQiKTsKCgoKbG9jYWwgWE9SID0gQml0LmJ4b3I7CgoKCmxvY2FsIFNCT1ggPSB7CgogWzBdID0gMHg2MywgMHg3QywgMHg3NywgMHg3QiwgMHhGMiwgMHg2QiwgMHg2RiwgMHhDNSwgMHgzMCwgMHgwMSwgMHg2NywgMHgyQiwgMHhGRSwgMHhENywgMHhBQiwgMHg3NiwKCiAweENBLCAweDgyLCAweEM5LCAweDdELCAweEZBLCAweDU5LCAweDQ3LCAweEYwLCAweEFELCAweEQ0LCAweEEyLCAweEFGLCAweDlDLCAweEE0LCAweDcyLCAweEMwLAoKIDB4QjcsIDB4RkQsIDB4OTMsIDB4MjYsIDB4MzYsIDB4M0YsIDB4RjcsIDB4Q0MsIDB4MzQsIDB4QTUsIDB4RTUsIDB4RjEsIDB4NzEsIDB4RDgsIDB4MzEsIDB4MTUsCgogMHgwNCwgMHhDNywgMHgyMywgMHhDMywgMHgxOCwgMHg5NiwgMHgwNSwgMHg5QSwgMHgwNywgMHgxMiwgMHg4MCwgMHhFMiwgMHhFQiwgMHgyNywgMHhCMiwgMHg3NSwKCiAweDA5LCAweDgzLCAweDJDLCAweDFBLCAweDFCLCAweDZFLCAweDVBLCAweEEwLCAweDUyLCAweDNCLCAweEQ2LCAweEIzLCAweDI5LCAweEUzLCAweDJGLCAweDg0LAoKIDB4NTMsIDB4RDEsIDB4MDAsIDB4RUQsIDB4MjAsIDB4RkMsIDB4QjEsIDB4NUIsIDB4NkEsIDB4Q0IsIDB4QkUsIDB4MzksIDB4NEEsIDB4NEMsIDB4NTgsIDB4Q0YsCgogMHhEMCwgMHhFRiwgMHhBQSwgMHhGQiwgMHg0MywgMHg0RCwgMHgzMywgMHg4NSwgMHg0NSwgMHhGOSwgMHgwMiwgMHg3RiwgMHg1MCwgMHgzQywgMHg5RiwgMHhBOCwKCiAweDUxLCAweEEzLCAweDQwLCAweDhGLCAweDkyLCAweDlELCAweDM4LCAweEY1LCAweEJDLCAweEI2LCAweERBLCAweDIxLCAweDEwLCAweEZGLCAweEYzLCAweEQyLAoKIDB4Q0QsIDB4MEMsIDB4MTMsIDB4RUMsIDB4NUYsIDB4OTcsIDB4NDQsIDB4MTcsIDB4QzQsIDB4QTcsIDB4N0UsIDB4M0QsIDB4NjQsIDB4NUQsIDB4MTksIDB4NzMsCgogMHg2MCwgMHg4MSwgMHg0RiwgMHhEQywgMHgyMiwgMHgyQSwgMHg5MCwgMHg4OCwgMHg0NiwgMHhFRSwgMHhCOCwgMHgxNCwgMHhERSwgMHg1RSwgMHgwQiwgMHhEQiwKCiAweEUwLCAweDMyLCAweDNBLCAweDBBLCAweDQ5LCAweDA2LCAweDI0LCAweDVDLCAweEMyLCAweEQzLCAweEFDLCAweDYyLCAweDkxLCAweDk1LCAweEU0LCAweDc5LAoKIDB4RTcsIDB4QzgsIDB4MzcsIDB4NkQsIDB4OEQsIDB4RDUsIDB4NEUsIDB4QTksIDB4NkMsIDB4NTYsIDB4RjQsIDB4RUEsIDB4NjUsIDB4N0EsIDB4QUUsIDB4MDgsCgogMHhCQSwgMHg3OCwgMHgyNSwgMHgyRSwgMHgxQywgMHhBNiwgMHhCNCwgMHhDNiwgMHhFOCwgMHhERCwgMHg3NCwgMHgxRiwgMHg0QiwgMHhCRCwgMHg4QiwgMHg4QSwKCiAweDcwLCAweDNFLCAweEI1LCAweDY2LCAweDQ4LCAweDAzLCAweEY2LCAweDBFLCAweDYxLCAweDM1LCAweDU3LCAweEI5LCAweDg2LCAweEMxLCAweDFELCAweDlFLAoKIDB4RTEsIDB4RjgsIDB4OTgsIDB4MTEsIDB4NjksIDB4RDksIDB4OEUsIDB4OTQsIDB4OUIsIDB4MUUsIDB4ODcsIDB4RTksIDB4Q0UsIDB4NTUsIDB4MjgsIDB4REYsCgogMHg4QywgMHhBMSwgMHg4OSwgMHgwRCwgMHhCRiwgMHhFNiwgMHg0MiwgMHg2OCwgMHg0MSwgMHg5OSwgMHgyRCwgMHgwRiwgMHhCMCwgMHg1NCwgMHhCQiwgMHgxNn07CgoKCmxvY2FsIElTQk9YID0gewoKIFswXSA9IDB4NTIsIDB4MDksIDB4NkEsIDB4RDUsIDB4MzAsIDB4MzYsIDB4QTUsIDB4MzgsIDB4QkYsIDB4NDAsIDB4QTMsIDB4OUUsIDB4ODEsIDB4RjMsIDB4RDcsIDB4RkIsCgogMHg3QywgMHhFMywgMHgzOSwgMHg4MiwgMHg5QiwgMHgyRiwgMHhGRiwgMHg4NywgMHgzNCwgMHg4RSwgMHg0MywgMHg0NCwgMHhDNCwgMHhERSwgMHhFOSwgMHhDQiwKCiAweDU0LCAweDdCLCAweDk0LCAweDMyLCAweEE2LCAweEMyLCAweDIzLCAweDNELCAweEVFLCAweDRDLCAweDk1LCAweDBCLCAweDQyLCAweEZBLCAweEMzLCAweDRFLAoKIDB4MDgsIDB4MkUsIDB4QTEsIDB4NjYsIDB4MjgsIDB4RDksIDB4MjQsIDB4QjIsIDB4NzYsIDB4NUIsIDB4QTIsIDB4NDksIDB4NkQsIDB4OEIsIDB4RDEsIDB4MjUsCgogMHg3MiwgMHhGOCwgMHhGNiwgMHg2NCwgMHg4NiwgMHg2OCwgMHg5OCwgMHgxNiwgMHhENCwgMHhBNCwgMHg1QywgMHhDQywgMHg1RCwgMHg2NSwgMHhCNiwgMHg5MiwKCiAweDZDLCAweDcwLCAweDQ4LCAweDUwLCAweEZELCAweEVELCAweEI5LCAweERBLCAweDVFLCAweDE1LCAweDQ2LCAweDU3LCAweEE3LCAweDhELCAweDlELCAweDg0LAoKIDB4OTAsIDB4RDgsIDB4QUIsIDB4MDAsIDB4OEMsIDB4QkMsIDB4RDMsIDB4MEEsIDB4RjcsIDB4RTQsIDB4NTgsIDB4MDUsIDB4QjgsIDB4QjMsIDB4NDUsIDB4MDYsCgogMHhEMCwgMHgyQywgMHgxRSwgMHg4RiwgMHhDQSwgMHgzRiwgMHgwRiwgMHgwMiwgMHhDMSwgMHhBRiwgMHhCRCwgMHgwMywgMHgwMSwgMHgxMywgMHg4QSwgMHg2QiwKCiAweDNBLCAweDkxLCAweDExLCAweDQxLCAweDRGLCAweDY3LCAweERDLCAweEVBLCAweDk3LCAweEYyLCAweENGLCAweENFLCAweEYwLCAweEI0LCAweEU2LCAweDczLAoKIDB4OTYsIDB4QUMsIDB4NzQsIDB4MjIsIDB4RTcsIDB4QUQsIDB4MzUsIDB4ODUsIDB4RTIsIDB4RjksIDB4MzcsIDB4RTgsIDB4MUMsIDB4NzUsIDB4REYsIDB4NkUsCgogMHg0NywgMHhGMSwgMHgxQSwgMHg3MSwgMHgxRCwgMHgyOSwgMHhDNSwgMHg4OSwgMHg2RiwgMHhCNywgMHg2MiwgMHgwRSwgMHhBQSwgMHgxOCwgMHhCRSwgMHgxQiwKCiAweEZDLCAweDU2LCAweDNFLCAweDRCLCAweEM2LCAweEQyLCAweDc5LCAweDIwLCAweDlBLCAweERCLCAweEMwLCAweEZFLCAweDc4LCAweENELCAweDVBLCAweEY0LAoKIDB4MUYsIDB4REQsIDB4QTgsIDB4MzMsIDB4ODgsIDB4MDcsIDB4QzcsIDB4MzEsIDB4QjEsIDB4MTIsIDB4MTAsIDB4NTksIDB4MjcsIDB4ODAsIDB4RUMsIDB4NUYsCgogMHg2MCwgMHg1MSwgMHg3RiwgMHhBOSwgMHgxOSwgMHhCNSwgMHg0QSwgMHgwRCwgMHgyRCwgMHhFNSwgMHg3QSwgMHg5RiwgMHg5MywgMHhDOSwgMHg5QywgMHhFRiwKCiAweEEwLCAweEUwLCAweDNCLCAweDRELCAweEFFLCAweDJBLCAweEY1LCAweEIwLCAweEM4LCAweEVCLCAweEJCLCAweDNDLCAweDgzLCAweDUzLCAweDk5LCAweDYxLAoKIDB4MTcsIDB4MkIsIDB4MDQsIDB4N0UsIDB4QkEsIDB4NzcsIDB4RDYsIDB4MjYsIDB4RTEsIDB4NjksIDB4MTQsIDB4NjMsIDB4NTUsIDB4MjEsIDB4MEMsIDB4N0R9OwoKCgpsb2NhbCBST1dfU0hJRlQgPSAgeyAgMSwgIDYsIDExLCAxNiwgIDUsIDEwLCAxNSwgIDQsICA5LCAxNCwgIDMsICA4LCAxMywgIDIsICA3LCAxMiwgfTsKCmxvY2FsIElST1dfU0hJRlQgPSB7ICAxLCAxNCwgMTEsICA4LCAgNSwgIDIsIDE1LCAxMiwgIDksICA2LCAgMywgMTYsIDEzLCAxMCwgIDcsICA0LCB9OwoKCgpsb2NhbCBFVEFCTEUgPSB7CgogWzBdID0gMHgwMSwgMHgwMywgMHgwNSwgMHgwRiwgMHgxMSwgMHgzMywgMHg1NSwgMHhGRiwgMHgxQSwgMHgyRSwgMHg3MiwgMHg5NiwgMHhBMSwgMHhGOCwgMHgxMywgMHgzNSwKCiAweDVGLCAweEUxLCAweDM4LCAweDQ4LCAweEQ4LCAweDczLCAweDk1LCAweEE0LCAweEY3LCAweDAyLCAweDA2LCAweDBBLCAweDFFLCAweDIyLCAweDY2LCAweEFBLAoKIDB4RTUsIDB4MzQsIDB4NUMsIDB4RTQsIDB4MzcsIDB4NTksIDB4RUIsIDB4MjYsIDB4NkEsIDB4QkUsIDB4RDksIDB4NzAsIDB4OTAsIDB4QUIsIDB4RTYsIDB4MzEsCgogMHg1MywgMHhGNSwgMHgwNCwgMHgwQywgMHgxNCwgMHgzQywgMHg0NCwgMHhDQywgMHg0RiwgMHhEMSwgMHg2OCwgMHhCOCwgMHhEMywgMHg2RSwgMHhCMiwgMHhDRCwKCiAweDRDLCAweEQ0LCAweDY3LCAweEE5LCAweEUwLCAweDNCLCAweDRELCAweEQ3LCAweDYyLCAweEE2LCAweEYxLCAweDA4LCAweDE4LCAweDI4LCAweDc4LCAweDg4LAoKIDB4ODMsIDB4OUUsIDB4QjksIDB4RDAsIDB4NkIsIDB4QkQsIDB4REMsIDB4N0YsIDB4ODEsIDB4OTgsIDB4QjMsIDB4Q0UsIDB4NDksIDB4REIsIDB4NzYsIDB4OUEsCgogMHhCNSwgMHhDNCwgMHg1NywgMHhGOSwgMHgxMCwgMHgzMCwgMHg1MCwgMHhGMCwgMHgwQiwgMHgxRCwgMHgyNywgMHg2OSwgMHhCQiwgMHhENiwgMHg2MSwgMHhBMywKCiAweEZFLCAweDE5LCAweDJCLCAweDdELCAweDg3LCAweDkyLCAweEFELCAweEVDLCAweDJGLCAweDcxLCAweDkzLCAweEFFLCAweEU5LCAweDIwLCAweDYwLCAweEEwLAoKIDB4RkIsIDB4MTYsIDB4M0EsIDB4NEUsIDB4RDIsIDB4NkQsIDB4QjcsIDB4QzIsIDB4NUQsIDB4RTcsIDB4MzIsIDB4NTYsIDB4RkEsIDB4MTUsIDB4M0YsIDB4NDEsCgogMHhDMywgMHg1RSwgMHhFMiwgMHgzRCwgMHg0NywgMHhDOSwgMHg0MCwgMHhDMCwgMHg1QiwgMHhFRCwgMHgyQywgMHg3NCwgMHg5QywgMHhCRiwgMHhEQSwgMHg3NSwKCiAweDlGLCAweEJBLCAweEQ1LCAweDY0LCAweEFDLCAweEVGLCAweDJBLCAweDdFLCAweDgyLCAweDlELCAweEJDLCAweERGLCAweDdBLCAweDhFLCAweDg5LCAweDgwLAoKIDB4OUIsIDB4QjYsIDB4QzEsIDB4NTgsIDB4RTgsIDB4MjMsIDB4NjUsIDB4QUYsIDB4RUEsIDB4MjUsIDB4NkYsIDB4QjEsIDB4QzgsIDB4NDMsIDB4QzUsIDB4NTQsCgogMHhGQywgMHgxRiwgMHgyMSwgMHg2MywgMHhBNSwgMHhGNCwgMHgwNywgMHgwOSwgMHgxQiwgMHgyRCwgMHg3NywgMHg5OSwgMHhCMCwgMHhDQiwgMHg0NiwgMHhDQSwKCiAweDQ1LCAweENGLCAweDRBLCAweERFLCAweDc5LCAweDhCLCAweDg2LCAweDkxLCAweEE4LCAweEUzLCAweDNFLCAweDQyLCAweEM2LCAweDUxLCAweEYzLCAweDBFLAoKIDB4MTIsIDB4MzYsIDB4NUEsIDB4RUUsIDB4MjksIDB4N0IsIDB4OEQsIDB4OEMsIDB4OEYsIDB4OEEsIDB4ODUsIDB4OTQsIDB4QTcsIDB4RjIsIDB4MEQsIDB4MTcsCgogMHgzOSwgMHg0QiwgMHhERCwgMHg3QywgMHg4NCwgMHg5NywgMHhBMiwgMHhGRCwgMHgxQywgMHgyNCwgMHg2QywgMHhCNCwgMHhDNywgMHg1MiwgMHhGNiwgMHgwMX07CgoKCmxvY2FsIExUQUJMRSA9IHsKCiBbMF0gPSAweDAwLCAweDAwLCAweDE5LCAweDAxLCAweDMyLCAweDAyLCAweDFBLCAweEM2LCAweDRCLCAweEM3LCAweDFCLCAweDY4LCAweDMzLCAweEVFLCAweERGLCAweDAzLAoKIDB4NjQsIDB4MDQsIDB4RTAsIDB4MEUsIDB4MzQsIDB4OEQsIDB4ODEsIDB4RUYsIDB4NEMsIDB4NzEsIDB4MDgsIDB4QzgsIDB4RjgsIDB4NjksIDB4MUMsIDB4QzEsCgogMHg3RCwgMHhDMiwgMHgxRCwgMHhCNSwgMHhGOSwgMHhCOSwgMHgyNywgMHg2QSwgMHg0RCwgMHhFNCwgMHhBNiwgMHg3MiwgMHg5QSwgMHhDOSwgMHgwOSwgMHg3OCwKCiAweDY1LCAweDJGLCAweDhBLCAweDA1LCAweDIxLCAweDBGLCAweEUxLCAweDI0LCAweDEyLCAweEYwLCAweDgyLCAweDQ1LCAweDM1LCAweDkzLCAweERBLCAweDhFLAoKIDB4OTYsIDB4OEYsIDB4REIsIDB4QkQsIDB4MzYsIDB4RDAsIDB4Q0UsIDB4OTQsIDB4MTMsIDB4NUMsIDB4RDIsIDB4RjEsIDB4NDAsIDB4NDYsIDB4ODMsIDB4MzgsCgogMHg2NiwgMHhERCwgMHhGRCwgMHgzMCwgMHhCRiwgMHgwNiwgMHg4QiwgMHg2MiwgMHhCMywgMHgyNSwgMHhFMiwgMHg5OCwgMHgyMiwgMHg4OCwgMHg5MSwgMHgxMCwKCiAweDdFLCAweDZFLCAweDQ4LCAweEMzLCAweEEzLCAweEI2LCAweDFFLCAweDQyLCAweDNBLCAweDZCLCAweDI4LCAweDU0LCAweEZBLCAweDg1LCAweDNELCAweEJBLAoKIDB4MkIsIDB4NzksIDB4MEEsIDB4MTUsIDB4OUIsIDB4OUYsIDB4NUUsIDB4Q0EsIDB4NEUsIDB4RDQsIDB4QUMsIDB4RTUsIDB4RjMsIDB4NzMsIDB4QTcsIDB4NTcsCgogMHhBRiwgMHg1OCwgMHhBOCwgMHg1MCwgMHhGNCwgMHhFQSwgMHhENiwgMHg3NCwgMHg0RiwgMHhBRSwgMHhFOSwgMHhENSwgMHhFNywgMHhFNiwgMHhBRCwgMHhFOCwKCiAweDJDLCAweEQ3LCAweDc1LCAweDdBLCAweEVCLCAweDE2LCAweDBCLCAweEY1LCAweDU5LCAweENCLCAweDVGLCAweEIwLCAweDlDLCAweEE5LCAweDUxLCAweEEwLAoKIDB4N0YsIDB4MEMsIDB4RjYsIDB4NkYsIDB4MTcsIDB4QzQsIDB4NDksIDB4RUMsIDB4RDgsIDB4NDMsIDB4MUYsIDB4MkQsIDB4QTQsIDB4NzYsIDB4N0IsIDB4QjcsCgogMHhDQywgMHhCQiwgMHgzRSwgMHg1QSwgMHhGQiwgMHg2MCwgMHhCMSwgMHg4NiwgMHgzQiwgMHg1MiwgMHhBMSwgMHg2QywgMHhBQSwgMHg1NSwgMHgyOSwgMHg5RCwKCiAweDk3LCAweEIyLCAweDg3LCAweDkwLCAweDYxLCAweEJFLCAweERDLCAweEZDLCAweEJDLCAweDk1LCAweENGLCAweENELCAweDM3LCAweDNGLCAweDVCLCAweEQxLAoKIDB4NTMsIDB4MzksIDB4ODQsIDB4M0MsIDB4NDEsIDB4QTIsIDB4NkQsIDB4NDcsIDB4MTQsIDB4MkEsIDB4OUUsIDB4NUQsIDB4NTYsIDB4RjIsIDB4RDMsIDB4QUIsCgogMHg0NCwgMHgxMSwgMHg5MiwgMHhEOSwgMHgyMywgMHgyMCwgMHgyRSwgMHg4OSwgMHhCNCwgMHg3QywgMHhCOCwgMHgyNiwgMHg3NywgMHg5OSwgMHhFMywgMHhBNSwKCiAweDY3LCAweDRBLCAweEVELCAweERFLCAweEM1LCAweDMxLCAweEZFLCAweDE4LCAweDBELCAweDYzLCAweDhDLCAweDgwLCAweEMwLCAweEY3LCAweDcwLCAweDA3fTsKCgoKbG9jYWwgTUlYVEFCTEUgPSB7CgogMHgwMiwgMHgwMywgMHgwMSwgMHgwMSwKCiAweDAxLCAweDAyLCAweDAzLCAweDAxLAoKIDB4MDEsIDB4MDEsIDB4MDIsIDB4MDMsCgogMHgwMywgMHgwMSwgMHgwMSwgMHgwMn07CgoKCmxvY2FsIElNSVhUQUJMRSA9IHsKCiAweDBFLCAweDBCLCAweDBELCAweDA5LAoKIDB4MDksIDB4MEUsIDB4MEIsIDB4MEQsCgogMHgwRCwgMHgwOSwgMHgwRSwgMHgwQiwKCiAweDBCLCAweDBELCAweDA5LCAweDBFfTsKCgoKbG9jYWwgUkNPTiA9IHsKClswXSA9IDB4OGQsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4MWIsIDB4MzYsIDB4NmMsIDB4ZDgsIDB4YWIsIDB4NGQsIDB4OWEsCgoweDJmLCAweDVlLCAweGJjLCAweDYzLCAweGM2LCAweDk3LCAweDM1LCAweDZhLCAweGQ0LCAweGIzLCAweDdkLCAweGZhLCAweGVmLCAweGM1LCAweDkxLCAweDM5LAoKMHg3MiwgMHhlNCwgMHhkMywgMHhiZCwgMHg2MSwgMHhjMiwgMHg5ZiwgMHgyNSwgMHg0YSwgMHg5NCwgMHgzMywgMHg2NiwgMHhjYywgMHg4MywgMHgxZCwgMHgzYSwKCjB4NzQsIDB4ZTgsIDB4Y2IsIDB4OGQsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4MWIsIDB4MzYsIDB4NmMsIDB4ZDgsCgoweGFiLCAweDRkLCAweDlhLCAweDJmLCAweDVlLCAweGJjLCAweDYzLCAweGM2LCAweDk3LCAweDM1LCAweDZhLCAweGQ0LCAweGIzLCAweDdkLCAweGZhLCAweGVmLAoKMHhjNSwgMHg5MSwgMHgzOSwgMHg3MiwgMHhlNCwgMHhkMywgMHhiZCwgMHg2MSwgMHhjMiwgMHg5ZiwgMHgyNSwgMHg0YSwgMHg5NCwgMHgzMywgMHg2NiwgMHhjYywKCjB4ODMsIDB4MWQsIDB4M2EsIDB4NzQsIDB4ZTgsIDB4Y2IsIDB4OGQsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4MWIsCgoweDM2LCAweDZjLCAweGQ4LCAweGFiLCAweDRkLCAweDlhLCAweDJmLCAweDVlLCAweGJjLCAweDYzLCAweGM2LCAweDk3LCAweDM1LCAweDZhLCAweGQ0LCAweGIzLAoKMHg3ZCwgMHhmYSwgMHhlZiwgMHhjNSwgMHg5MSwgMHgzOSwgMHg3MiwgMHhlNCwgMHhkMywgMHhiZCwgMHg2MSwgMHhjMiwgMHg5ZiwgMHgyNSwgMHg0YSwgMHg5NCwKCjB4MzMsIDB4NjYsIDB4Y2MsIDB4ODMsIDB4MWQsIDB4M2EsIDB4NzQsIDB4ZTgsIDB4Y2IsIDB4OGQsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsCgoweDQwLCAweDgwLCAweDFiLCAweDM2LCAweDZjLCAweGQ4LCAweGFiLCAweDRkLCAweDlhLCAweDJmLCAweDVlLCAweGJjLCAweDYzLCAweGM2LCAweDk3LCAweDM1LAoKMHg2YSwgMHhkNCwgMHhiMywgMHg3ZCwgMHhmYSwgMHhlZiwgMHhjNSwgMHg5MSwgMHgzOSwgMHg3MiwgMHhlNCwgMHhkMywgMHhiZCwgMHg2MSwgMHhjMiwgMHg5ZiwKCjB4MjUsIDB4NGEsIDB4OTQsIDB4MzMsIDB4NjYsIDB4Y2MsIDB4ODMsIDB4MWQsIDB4M2EsIDB4NzQsIDB4ZTgsIDB4Y2IsIDB4OGQsIDB4MDEsIDB4MDIsIDB4MDQsCgoweDA4LCAweDEwLCAweDIwLCAweDQwLCAweDgwLCAweDFiLCAweDM2LCAweDZjLCAweGQ4LCAweGFiLCAweDRkLCAweDlhLCAweDJmLCAweDVlLCAweGJjLCAweDYzLAoKMHhjNiwgMHg5NywgMHgzNSwgMHg2YSwgMHhkNCwgMHhiMywgMHg3ZCwgMHhmYSwgMHhlZiwgMHhjNSwgMHg5MSwgMHgzOSwgMHg3MiwgMHhlNCwgMHhkMywgMHhiZCwKCjB4NjEsIDB4YzIsIDB4OWYsIDB4MjUsIDB4NGEsIDB4OTQsIDB4MzMsIDB4NjYsIDB4Y2MsIDB4ODMsIDB4MWQsIDB4M2EsIDB4NzQsIDB4ZTgsIDB4Y2IsIDB4OGR9OwoKCgoKCmxvY2FsIEdNVUwgPSBmdW5jdGlvbihBLCBCKQoKICAgIGlmKEEgPT0gMHgwMSkgdGhlbiByZXR1cm4gQjsgZW5kCgogICAgaWYoQiA9PSAweDAxKSB0aGVuIHJldHVybiBBOyBlbmQKCiAgICBpZihBID09IDB4MDApIHRoZW4gcmV0dXJuIDA7IGVuZAoKICAgIGlmKEIgPT0gMHgwMCkgdGhlbiByZXR1cm4gMDsgZW5kCgoKCiAgICBsb2NhbCBMQSA9IExUQUJMRVtBXTsKCiAgICBsb2NhbCBMQiA9IExUQUJMRVtCXTsKCgoKICAgIGxvY2FsIHN1bSA9IExBICsgTEI7CgogICAgaWYgKHN1bSA+IDB4RkYpIHRoZW4gc3VtID0gc3VtIC0gMHhGRjsgZW5kCgoKCiAgICByZXR1cm4gRVRBQkxFW3N1bV07CgplbmQKCgoKbG9jYWwgYnl0ZVN1YiA9IEFycmF5LnN1YnN0aXR1dGU7CgoKCmxvY2FsIHNoaWZ0Um93ID0gQXJyYXkucGVybXV0ZTsKCgoKbG9jYWwgbWl4Q29sID0gZnVuY3Rpb24oaSwgbWl4KQoKICAgIGxvY2FsIG91dCA9IHt9OwoKCgogICAgbG9jYWwgYSwgYiwgYywgZDsKCgoKICAgIGEgPSBHTVVMKGlbIDFdLCBtaXhbIDFdKTsKCiAgICBiID0gR01VTChpWyAyXSwgbWl4WyAyXSk7CgogICAgYyA9IEdNVUwoaVsgM10sIG1peFsgM10pOwoKICAgIGQgPSBHTVVMKGlbIDRdLCBtaXhbIDRdKTsKCiAgICBvdXRbIDFdID0gWE9SKFhPUihhLCBiKSwgWE9SKGMsIGQpKTsKCiAgICBhID0gR01VTChpWyAxXSwgbWl4WyA1XSk7CgogICAgYiA9IEdNVUwoaVsgMl0sIG1peFsgNl0pOwoKICAgIGMgPSBHTVVMKGlbIDNdLCBtaXhbIDddKTsKCiAgICBkID0gR01VTChpWyA0XSwgbWl4WyA4XSk7CgogICAgb3V0WyAyXSA9IFhPUihYT1IoYSwgYiksIFhPUihjLCBkKSk7CgogICAgYSA9IEdNVUwoaVsgMV0sIG1peFsgOV0pOwoKICAgIGIgPSBHTVVMKGlbIDJdLCBtaXhbMTBdKTsKCiAgICBjID0gR01VTChpWyAzXSwgbWl4WzExXSk7CgogICAgZCA9IEdNVUwoaVsgNF0sIG1peFsxMl0pOwoKICAgIG91dFsgM10gPSBYT1IoWE9SKGEsIGIpLCBYT1IoYywgZCkpOwoKICAgIGEgPSBHTVVMKGlbIDFdLCBtaXhbMTNdKTsKCiAgICBiID0gR01VTChpWyAyXSwgbWl4WzE0XSk7CgogICAgYyA9IEdNVUwoaVsgM10sIG1peFsxNV0pOwoKICAgIGQgPSBHTVVMKGlbIDRdLCBtaXhbMTZdKTsKCiAgICBvdXRbIDRdID0gWE9SKFhPUihhLCBiKSwgWE9SKGMsIGQpKTsKCgoKCgogICAgYSA9IEdNVUwoaVsgNV0sIG1peFsgMV0pOwoKICAgIGIgPSBHTVVMKGlbIDZdLCBtaXhbIDJdKTsKCiAgICBjID0gR01VTChpWyA3XSwgbWl4WyAzXSk7CgogICAgZCA9IEdNVUwoaVsgOF0sIG1peFsgNF0pOwoKICAgIG91dFsgNV0gPSBYT1IoWE9SKGEsIGIpLCBYT1IoYywgZCkpOwoKICAgIGEgPSBHTVVMKGlbIDVdLCBtaXhbIDVdKTsKCiAgICBiID0gR01VTChpWyA2XSwgbWl4WyA2XSk7CgogICAgYyA9IEdNVUwoaVsgN10sIG1peFsgN10pOwoKICAgIGQgPSBHTVVMKGlbIDhdLCBtaXhbIDhdKTsKCiAgICBvdXRbIDZdID0gWE9SKFhPUihhLCBiKSwgWE9SKGMsIGQpKTsKCiAgICBhID0gR01VTChpWyA1XSwgbWl4WyA5XSk7CgogICAgYiA9IEdNVUwoaVsgNl0sIG1peFsxMF0pOwoKICAgIGMgPSBHTVVMKGlbIDddLCBtaXhbMTFdKTsKCiAgICBkID0gR01VTChpWyA4XSwgbWl4WzEyXSk7CgogICAgb3V0WyA3XSA9IFhPUihYT1IoYSwgYiksIFhPUihjLCBkKSk7CgogICAgYSA9IEdNVUwoaVsgNV0sIG1peFsxM10pOwoKICAgIGIgPSBHTVVMKGlbIDZdLCBtaXhbMTRdKTsKCiAgICBjID0gR01VTChpWyA3XSwgbWl4WzE1XSk7CgogICAgZCA9IEdNVUwoaVsgOF0sIG1peFsxNl0pOwoKICAgIG91dFsgOF0gPSBYT1IoWE9SKGEsIGIpLCBYT1IoYywgZCkpOwoKCgoKCiAgICBhID0gR01VTChpWyA5XSwgbWl4WyAxXSk7CgogICAgYiA9IEdNVUwoaVsxMF0sIG1peFsgMl0pOwoKICAgIGMgPSBHTVVMKGlbMTFdLCBtaXhbIDNdKTsKCiAgICBkID0gR01VTChpWzEyXSwgbWl4WyA0XSk7CgogICAgb3V0WyA5XSA9IFhPUihYT1IoYSwgYiksIFhPUihjLCBkKSk7CgogICAgYSA9IEdNVUwoaVsgOV0sIG1peFsgNV0pOwoKICAgIGIgPSBHTVVMKGlbMTBdLCBtaXhbIDZdKTsKCiAgICBjID0gR01VTChpWzExXSwgbWl4WyA3XSk7CgogICAgZCA9IEdNVUwoaVsxMl0sIG1peFsgOF0pOwoKICAgIG91dFsxMF0gPSBYT1IoWE9SKGEsIGIpLCBYT1IoYywgZCkpOwoKICAgIGEgPSBHTVVMKGlbIDldLCBtaXhbIDldKTsKCiAgICBiID0gR01VTChpWzEwXSwgbWl4WzEwXSk7CgogICAgYyA9IEdNVUwoaVsxMV0sIG1peFsxMV0pOwoKICAgIGQgPSBHTVVMKGlbMTJdLCBtaXhbMTJdKTsKCiAgICBvdXRbMTFdID0gWE9SKFhPUihhLCBiKSwgWE9SKGMsIGQpKTsKCiAgICBhID0gR01VTChpWyA5XSwgbWl4WzEzXSk7CgogICAgYiA9IEdNVUwoaVsxMF0sIG1peFsxNF0pOwoKICAgIGMgPSBHTVVMKGlbMTFdLCBtaXhbMTVdKTsKCiAgICBkID0gR01VTChpWzEyXSwgbWl4WzE2XSk7CgogICAgb3V0WzEyXSA9IFhPUihYT1IoYSwgYiksIFhPUihjLCBkKSk7CgoKCgoKICAgIGEgPSBHTVVMKGlbMTNdLCBtaXhbIDFdKTsKCiAgICBiID0gR01VTChpWzE0XSwgbWl4WyAyXSk7CgogICAgYyA9IEdNVUwoaVsxNV0sIG1peFsgM10pOwoKICAgIGQgPSBHTVVMKGlbMTZdLCBtaXhbIDRdKTsKCiAgICBvdXRbMTNdID0gWE9SKFhPUihhLCBiKSwgWE9SKGMsIGQpKTsKCiAgICBhID0gR01VTChpWzEzXSwgbWl4WyA1XSk7CgogICAgYiA9IEdNVUwoaVsxNF0sIG1peFsgNl0pOwoKICAgIGMgPSBHTVVMKGlbMTVdLCBtaXhbIDddKTsKCiAgICBkID0gR01VTChpWzE2XSwgbWl4WyA4XSk7CgogICAgb3V0WzE0XSA9IFhPUihYT1IoYSwgYiksIFhPUihjLCBkKSk7CgogICAgYSA9IEdNVUwoaVsxM10sIG1peFsgOV0pOwoKICAgIGIgPSBHTVVMKGlbMTRdLCBtaXhbMTBdKTsKCiAgICBjID0gR01VTChpWzE1XSwgbWl4WzExXSk7CgogICAgZCA9IEdNVUwoaVsxNl0sIG1peFsxMl0pOwoKICAgIG91dFsxNV0gPSBYT1IoWE9SKGEsIGIpLCBYT1IoYywgZCkpOwoKICAgIGEgPSBHTVVMKGlbMTNdLCBtaXhbMTNdKTsKCiAgICBiID0gR01VTChpWzE0XSwgbWl4WzE0XSk7CgogICAgYyA9IEdNVUwoaVsxNV0sIG1peFsxNV0pOwoKICAgIGQgPSBHTVVMKGlbMTZdLCBtaXhbMTZdKTsKCiAgICBvdXRbMTZdID0gWE9SKFhPUihhLCBiKSwgWE9SKGMsIGQpKTsKCgoKICAgIHJldHVybiBvdXQ7CgplbmQKCgoKbG9jYWwga2V5Um91bmQgPSBmdW5jdGlvbihrZXksIHJvdW5kKQoKICAgIGxvY2FsIG91dCA9IHt9OwoKCgogICAgb3V0WyAxXSA9IFhPUihrZXlbIDFdLCBYT1IoU0JPWFtrZXlbMTRdXSwgUkNPTltyb3VuZF0pKTsKCiAgICBvdXRbIDJdID0gWE9SKGtleVsgMl0sIFNCT1hba2V5WzE1XV0pOwoKICAgIG91dFsgM10gPSBYT1Ioa2V5WyAzXSwgU0JPWFtrZXlbMTZdXSk7CgogICAgb3V0WyA0XSA9IFhPUihrZXlbIDRdLCBTQk9YW2tleVsxM11dKTsKCgoKICAgIG91dFsgNV0gPSBYT1Iob3V0WyAxXSwga2V5WyA1XSk7CgogICAgb3V0WyA2XSA9IFhPUihvdXRbIDJdLCBrZXlbIDZdKTsKCiAgICBvdXRbIDddID0gWE9SKG91dFsgM10sIGtleVsgN10pOwoKICAgIG91dFsgOF0gPSBYT1Iob3V0WyA0XSwga2V5WyA4XSk7CgoKCiAgICBvdXRbIDldID0gWE9SKG91dFsgNV0sIGtleVsgOV0pOwoKICAgIG91dFsxMF0gPSBYT1Iob3V0WyA2XSwga2V5WzEwXSk7CgogICAgb3V0WzExXSA9IFhPUihvdXRbIDddLCBrZXlbMTFdKTsKCiAgICBvdXRbMTJdID0gWE9SKG91dFsgOF0sIGtleVsxMl0pOwoKCgogICAgb3V0WzEzXSA9IFhPUihvdXRbIDldLCBrZXlbMTNdKTsKCiAgICBvdXRbMTRdID0gWE9SKG91dFsxMF0sIGtleVsxNF0pOwoKICAgIG91dFsxNV0gPSBYT1Iob3V0WzExXSwga2V5WzE1XSk7CgogICAgb3V0WzE2XSA9IFhPUihvdXRbMTJdLCBrZXlbMTZdKTsKCgoKICAgIHJldHVybiBvdXQ7CgplbmQKCgoKbG9jYWwga2V5RXhwYW5kID0gZnVuY3Rpb24oa2V5KQoKICAgIGxvY2FsIGtleXMgPSB7fTsKCgoKICAgIGxvY2FsIHRlbXAgPSBrZXk7CgoKCiAgICBrZXlzWzFdID0gdGVtcDsKCgoKICAgIGZvciBpID0gMSwgMTAgZG8KCiAgICAgICAgdGVtcCA9IGtleVJvdW5kKHRlbXAsIGkpOwoKICAgICAgICBrZXlzW2kgKyAxXSA9IHRlbXA7CgogICAgZW5kCgoKCiAgICByZXR1cm4ga2V5czsKCgoKZW5kCgoKCmxvY2FsIGFkZEtleSA9IEFycmF5LlhPUjsKCgoKCgoKCmxvY2FsIEFFUyA9IHt9OwoKCgpBRVMuYmxvY2tTaXplID0gMTY7CgoKCkFFUy5lbmNyeXB0ID0gZnVuY3Rpb24oa2V5LCBibG9jaykKCgoKICAgIGxvY2FsIGtleVNjaGVkdWxlID0ga2V5RXhwYW5kKGtleSk7CgoKCiAgICAtLXJvdW5kIDAKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbMV0pOwoKCgogICAgLS1yb3VuZCAxCgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBTQk9YKTsKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBNSVhUQUJMRSk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzJdKTsKCgoKICAgIC0tcm91bmQgMgoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgU0JPWCk7CgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgUk9XX1NISUZUKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgTUlYVEFCTEUpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVszXSk7CgoKCiAgICAtLXJvdW5kIDMKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIFNCT1gpOwoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIFJPV19TSElGVCk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIE1JWFRBQkxFKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbNF0pOwoKCgogICAgLS1yb3VuZCA0CgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBTQk9YKTsKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBNSVhUQUJMRSk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzVdKTsKCgoKICAgIC0tcm91bmQgNQoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgU0JPWCk7CgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgUk9XX1NISUZUKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgTUlYVEFCTEUpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVs2XSk7CgoKCiAgICAtLXJvdW5kIDYKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIFNCT1gpOwoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIFJPV19TSElGVCk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIE1JWFRBQkxFKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbN10pOwoKCgogICAgLS1yb3VuZCA3CgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBTQk9YKTsKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBNSVhUQUJMRSk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzhdKTsKCgoKICAgIC0tcm91bmQgOAoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgU0JPWCk7CgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgUk9XX1NISUZUKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgTUlYVEFCTEUpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVs5XSk7CgoKCiAgICAtLXJvdW5kIDkKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIFNCT1gpOwoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIFJPV19TSElGVCk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIE1JWFRBQkxFKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbMTBdKTsKCgoKICAgIC0tcm91bmQgMTAKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIFNCT1gpOwoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIFJPV19TSElGVCk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzExXSk7CgoKCiAgICByZXR1cm4gYmxvY2s7CgoKCmVuZAoKCgpBRVMuZGVjcnlwdCA9IGZ1bmN0aW9uKGtleSwgYmxvY2spCgoKCiAgICBsb2NhbCBrZXlTY2hlZHVsZSA9IGtleUV4cGFuZChrZXkpOwoKCgogICAgLS1yb3VuZCAwCgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzExXSk7CgoKCiAgICAtLXJvdW5kIDEKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBJUk9XX1NISUZUKTsKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIElTQk9YKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbMTBdKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgSU1JWFRBQkxFKTsKCgoKICAgIC0tcm91bmQgMgoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIElST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgSVNCT1gpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVs5XSk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIElNSVhUQUJMRSk7CgoKCiAgICAtLXJvdW5kIDMKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBJUk9XX1NISUZUKTsKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIElTQk9YKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbOF0pOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBJTUlYVEFCTEUpOwoKCgogICAgLS1yb3VuZCA0CgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgSVJPV19TSElGVCk7CgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBJU0JPWCk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzddKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgSU1JWFRBQkxFKTsKCgoKICAgIC0tcm91bmQgNQoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIElST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgSVNCT1gpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVs2XSk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIElNSVhUQUJMRSk7CgoKCiAgICAtLXJvdW5kIDYKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBJUk9XX1NISUZUKTsKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIElTQk9YKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbNV0pOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBJTUlYVEFCTEUpOwoKCgogICAgLS1yb3VuZCA3CgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgSVJPV19TSElGVCk7CgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBJU0JPWCk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzRdKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgSU1JWFRBQkxFKTsKCgoKICAgIC0tcm91bmQgOAoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIElST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgSVNCT1gpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVszXSk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIElNSVhUQUJMRSk7CgoKCiAgICAtLXJvdW5kIDkKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBJUk9XX1NISUZUKTsKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIElTQk9YKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbMl0pOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBJTUlYVEFCTEUpOwoKCgogICAgLS1yb3VuZCAxMAoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIElST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgSVNCT1gpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVsxXSk7CgoKCiAgICByZXR1cm4gYmxvY2s7CgplbmQKCgoKcmV0dXJuIEFFUzsAAAAACgpsb2NhbCBBcnJheSA9IHJlcXVpcmUoIi5jcnlwdG8udXRpbC5hcnJheSIpOwoKbG9jYWwgQml0ID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLmJpdCIpOwoKCgpsb2NhbCBYT1IgPSBCaXQuYnhvcjsKCgoKbG9jYWwgU0JPWCA9IHsKCiBbMF0gPSAweDYzLCAweDdDLCAweDc3LCAweDdCLCAweEYyLCAweDZCLCAweDZGLCAweEM1LCAweDMwLCAweDAxLCAweDY3LCAweDJCLCAweEZFLCAweEQ3LCAweEFCLCAweDc2LAoKIDB4Q0EsIDB4ODIsIDB4QzksIDB4N0QsIDB4RkEsIDB4NTksIDB4NDcsIDB4RjAsIDB4QUQsIDB4RDQsIDB4QTIsIDB4QUYsIDB4OUMsIDB4QTQsIDB4NzIsIDB4QzAsCgogMHhCNywgMHhGRCwgMHg5MywgMHgyNiwgMHgzNiwgMHgzRiwgMHhGNywgMHhDQywgMHgzNCwgMHhBNSwgMHhFNSwgMHhGMSwgMHg3MSwgMHhEOCwgMHgzMSwgMHgxNSwKCiAweDA0LCAweEM3LCAweDIzLCAweEMzLCAweDE4LCAweDk2LCAweDA1LCAweDlBLCAweDA3LCAweDEyLCAweDgwLCAweEUyLCAweEVCLCAweDI3LCAweEIyLCAweDc1LAoKIDB4MDksIDB4ODMsIDB4MkMsIDB4MUEsIDB4MUIsIDB4NkUsIDB4NUEsIDB4QTAsIDB4NTIsIDB4M0IsIDB4RDYsIDB4QjMsIDB4MjksIDB4RTMsIDB4MkYsIDB4ODQsCgogMHg1MywgMHhEMSwgMHgwMCwgMHhFRCwgMHgyMCwgMHhGQywgMHhCMSwgMHg1QiwgMHg2QSwgMHhDQiwgMHhCRSwgMHgzOSwgMHg0QSwgMHg0QywgMHg1OCwgMHhDRiwKCiAweEQwLCAweEVGLCAweEFBLCAweEZCLCAweDQzLCAweDRELCAweDMzLCAweDg1LCAweDQ1LCAweEY5LCAweDAyLCAweDdGLCAweDUwLCAweDNDLCAweDlGLCAweEE4LAoKIDB4NTEsIDB4QTMsIDB4NDAsIDB4OEYsIDB4OTIsIDB4OUQsIDB4MzgsIDB4RjUsIDB4QkMsIDB4QjYsIDB4REEsIDB4MjEsIDB4MTAsIDB4RkYsIDB4RjMsIDB4RDIsCgogMHhDRCwgMHgwQywgMHgxMywgMHhFQywgMHg1RiwgMHg5NywgMHg0NCwgMHgxNywgMHhDNCwgMHhBNywgMHg3RSwgMHgzRCwgMHg2NCwgMHg1RCwgMHgxOSwgMHg3MywKCiAweDYwLCAweDgxLCAweDRGLCAweERDLCAweDIyLCAweDJBLCAweDkwLCAweDg4LCAweDQ2LCAweEVFLCAweEI4LCAweDE0LCAweERFLCAweDVFLCAweDBCLCAweERCLAoKIDB4RTAsIDB4MzIsIDB4M0EsIDB4MEEsIDB4NDksIDB4MDYsIDB4MjQsIDB4NUMsIDB4QzIsIDB4RDMsIDB4QUMsIDB4NjIsIDB4OTEsIDB4OTUsIDB4RTQsIDB4NzksCgogMHhFNywgMHhDOCwgMHgzNywgMHg2RCwgMHg4RCwgMHhENSwgMHg0RSwgMHhBOSwgMHg2QywgMHg1NiwgMHhGNCwgMHhFQSwgMHg2NSwgMHg3QSwgMHhBRSwgMHgwOCwKCiAweEJBLCAweDc4LCAweDI1LCAweDJFLCAweDFDLCAweEE2LCAweEI0LCAweEM2LCAweEU4LCAweERELCAweDc0LCAweDFGLCAweDRCLCAweEJELCAweDhCLCAweDhBLAoKIDB4NzAsIDB4M0UsIDB4QjUsIDB4NjYsIDB4NDgsIDB4MDMsIDB4RjYsIDB4MEUsIDB4NjEsIDB4MzUsIDB4NTcsIDB4QjksIDB4ODYsIDB4QzEsIDB4MUQsIDB4OUUsCgogMHhFMSwgMHhGOCwgMHg5OCwgMHgxMSwgMHg2OSwgMHhEOSwgMHg4RSwgMHg5NCwgMHg5QiwgMHgxRSwgMHg4NywgMHhFOSwgMHhDRSwgMHg1NSwgMHgyOCwgMHhERiwKCiAweDhDLCAweEExLCAweDg5LCAweDBELCAweEJGLCAweEU2LCAweDQyLCAweDY4LCAweDQxLCAweDk5LCAweDJELCAweDBGLCAweEIwLCAweDU0LCAweEJCLCAweDE2fTsKCgoKbG9jYWwgSVNCT1ggPSB7CgogWzBdID0gMHg1MiwgMHgwOSwgMHg2QSwgMHhENSwgMHgzMCwgMHgzNiwgMHhBNSwgMHgzOCwgMHhCRiwgMHg0MCwgMHhBMywgMHg5RSwgMHg4MSwgMHhGMywgMHhENywgMHhGQiwKCiAweDdDLCAweEUzLCAweDM5LCAweDgyLCAweDlCLCAweDJGLCAweEZGLCAweDg3LCAweDM0LCAweDhFLCAweDQzLCAweDQ0LCAweEM0LCAweERFLCAweEU5LCAweENCLAoKIDB4NTQsIDB4N0IsIDB4OTQsIDB4MzIsIDB4QTYsIDB4QzIsIDB4MjMsIDB4M0QsIDB4RUUsIDB4NEMsIDB4OTUsIDB4MEIsIDB4NDIsIDB4RkEsIDB4QzMsIDB4NEUsCgogMHgwOCwgMHgyRSwgMHhBMSwgMHg2NiwgMHgyOCwgMHhEOSwgMHgyNCwgMHhCMiwgMHg3NiwgMHg1QiwgMHhBMiwgMHg0OSwgMHg2RCwgMHg4QiwgMHhEMSwgMHgyNSwKCiAweDcyLCAweEY4LCAweEY2LCAweDY0LCAweDg2LCAweDY4LCAweDk4LCAweDE2LCAweEQ0LCAweEE0LCAweDVDLCAweENDLCAweDVELCAweDY1LCAweEI2LCAweDkyLAoKIDB4NkMsIDB4NzAsIDB4NDgsIDB4NTAsIDB4RkQsIDB4RUQsIDB4QjksIDB4REEsIDB4NUUsIDB4MTUsIDB4NDYsIDB4NTcsIDB4QTcsIDB4OEQsIDB4OUQsIDB4ODQsCgogMHg5MCwgMHhEOCwgMHhBQiwgMHgwMCwgMHg4QywgMHhCQywgMHhEMywgMHgwQSwgMHhGNywgMHhFNCwgMHg1OCwgMHgwNSwgMHhCOCwgMHhCMywgMHg0NSwgMHgwNiwKCiAweEQwLCAweDJDLCAweDFFLCAweDhGLCAweENBLCAweDNGLCAweDBGLCAweDAyLCAweEMxLCAweEFGLCAweEJELCAweDAzLCAweDAxLCAweDEzLCAweDhBLCAweDZCLAoKIDB4M0EsIDB4OTEsIDB4MTEsIDB4NDEsIDB4NEYsIDB4NjcsIDB4REMsIDB4RUEsIDB4OTcsIDB4RjIsIDB4Q0YsIDB4Q0UsIDB4RjAsIDB4QjQsIDB4RTYsIDB4NzMsCgogMHg5NiwgMHhBQywgMHg3NCwgMHgyMiwgMHhFNywgMHhBRCwgMHgzNSwgMHg4NSwgMHhFMiwgMHhGOSwgMHgzNywgMHhFOCwgMHgxQywgMHg3NSwgMHhERiwgMHg2RSwKCiAweDQ3LCAweEYxLCAweDFBLCAweDcxLCAweDFELCAweDI5LCAweEM1LCAweDg5LCAweDZGLCAweEI3LCAweDYyLCAweDBFLCAweEFBLCAweDE4LCAweEJFLCAweDFCLAoKIDB4RkMsIDB4NTYsIDB4M0UsIDB4NEIsIDB4QzYsIDB4RDIsIDB4NzksIDB4MjAsIDB4OUEsIDB4REIsIDB4QzAsIDB4RkUsIDB4NzgsIDB4Q0QsIDB4NUEsIDB4RjQsCgogMHgxRiwgMHhERCwgMHhBOCwgMHgzMywgMHg4OCwgMHgwNywgMHhDNywgMHgzMSwgMHhCMSwgMHgxMiwgMHgxMCwgMHg1OSwgMHgyNywgMHg4MCwgMHhFQywgMHg1RiwKCiAweDYwLCAweDUxLCAweDdGLCAweEE5LCAweDE5LCAweEI1LCAweDRBLCAweDBELCAweDJELCAweEU1LCAweDdBLCAweDlGLCAweDkzLCAweEM5LCAweDlDLCAweEVGLAoKIDB4QTAsIDB4RTAsIDB4M0IsIDB4NEQsIDB4QUUsIDB4MkEsIDB4RjUsIDB4QjAsIDB4QzgsIDB4RUIsIDB4QkIsIDB4M0MsIDB4ODMsIDB4NTMsIDB4OTksIDB4NjEsCgogMHgxNywgMHgyQiwgMHgwNCwgMHg3RSwgMHhCQSwgMHg3NywgMHhENiwgMHgyNiwgMHhFMSwgMHg2OSwgMHgxNCwgMHg2MywgMHg1NSwgMHgyMSwgMHgwQywgMHg3RH07CgoKCmxvY2FsIFJPV19TSElGVCA9ICB7ICAxLCAgNiwgMTEsIDE2LCAgNSwgMTAsIDE1LCAgNCwgIDksIDE0LCAgMywgIDgsIDEzLCAgMiwgIDcsIDEyLCB9OwoKbG9jYWwgSVJPV19TSElGVCA9IHsgIDEsIDE0LCAxMSwgIDgsICA1LCAgMiwgMTUsIDEyLCAgOSwgIDYsICAzLCAxNiwgMTMsIDEwLCAgNywgIDQsIH07CgoKCmxvY2FsIEVUQUJMRSA9IHsKCiBbMF0gPSAweDAxLCAweDAzLCAweDA1LCAweDBGLCAweDExLCAweDMzLCAweDU1LCAweEZGLCAweDFBLCAweDJFLCAweDcyLCAweDk2LCAweEExLCAweEY4LCAweDEzLCAweDM1LAoKIDB4NUYsIDB4RTEsIDB4MzgsIDB4NDgsIDB4RDgsIDB4NzMsIDB4OTUsIDB4QTQsIDB4RjcsIDB4MDIsIDB4MDYsIDB4MEEsIDB4MUUsIDB4MjIsIDB4NjYsIDB4QUEsCgogMHhFNSwgMHgzNCwgMHg1QywgMHhFNCwgMHgzNywgMHg1OSwgMHhFQiwgMHgyNiwgMHg2QSwgMHhCRSwgMHhEOSwgMHg3MCwgMHg5MCwgMHhBQiwgMHhFNiwgMHgzMSwKCiAweDUzLCAweEY1LCAweDA0LCAweDBDLCAweDE0LCAweDNDLCAweDQ0LCAweENDLCAweDRGLCAweEQxLCAweDY4LCAweEI4LCAweEQzLCAweDZFLCAweEIyLCAweENELAoKIDB4NEMsIDB4RDQsIDB4NjcsIDB4QTksIDB4RTAsIDB4M0IsIDB4NEQsIDB4RDcsIDB4NjIsIDB4QTYsIDB4RjEsIDB4MDgsIDB4MTgsIDB4MjgsIDB4NzgsIDB4ODgsCgogMHg4MywgMHg5RSwgMHhCOSwgMHhEMCwgMHg2QiwgMHhCRCwgMHhEQywgMHg3RiwgMHg4MSwgMHg5OCwgMHhCMywgMHhDRSwgMHg0OSwgMHhEQiwgMHg3NiwgMHg5QSwKCiAweEI1LCAweEM0LCAweDU3LCAweEY5LCAweDEwLCAweDMwLCAweDUwLCAweEYwLCAweDBCLCAweDFELCAweDI3LCAweDY5LCAweEJCLCAweEQ2LCAweDYxLCAweEEzLAoKIDB4RkUsIDB4MTksIDB4MkIsIDB4N0QsIDB4ODcsIDB4OTIsIDB4QUQsIDB4RUMsIDB4MkYsIDB4NzEsIDB4OTMsIDB4QUUsIDB4RTksIDB4MjAsIDB4NjAsIDB4QTAsCgogMHhGQiwgMHgxNiwgMHgzQSwgMHg0RSwgMHhEMiwgMHg2RCwgMHhCNywgMHhDMiwgMHg1RCwgMHhFNywgMHgzMiwgMHg1NiwgMHhGQSwgMHgxNSwgMHgzRiwgMHg0MSwKCiAweEMzLCAweDVFLCAweEUyLCAweDNELCAweDQ3LCAweEM5LCAweDQwLCAweEMwLCAweDVCLCAweEVELCAweDJDLCAweDc0LCAweDlDLCAweEJGLCAweERBLCAweDc1LAoKIDB4OUYsIDB4QkEsIDB4RDUsIDB4NjQsIDB4QUMsIDB4RUYsIDB4MkEsIDB4N0UsIDB4ODIsIDB4OUQsIDB4QkMsIDB4REYsIDB4N0EsIDB4OEUsIDB4ODksIDB4ODAsCgogMHg5QiwgMHhCNiwgMHhDMSwgMHg1OCwgMHhFOCwgMHgyMywgMHg2NSwgMHhBRiwgMHhFQSwgMHgyNSwgMHg2RiwgMHhCMSwgMHhDOCwgMHg0MywgMHhDNSwgMHg1NCwKCiAweEZDLCAweDFGLCAweDIxLCAweDYzLCAweEE1LCAweEY0LCAweDA3LCAweDA5LCAweDFCLCAweDJELCAweDc3LCAweDk5LCAweEIwLCAweENCLCAweDQ2LCAweENBLAoKIDB4NDUsIDB4Q0YsIDB4NEEsIDB4REUsIDB4NzksIDB4OEIsIDB4ODYsIDB4OTEsIDB4QTgsIDB4RTMsIDB4M0UsIDB4NDIsIDB4QzYsIDB4NTEsIDB4RjMsIDB4MEUsCgogMHgxMiwgMHgzNiwgMHg1QSwgMHhFRSwgMHgyOSwgMHg3QiwgMHg4RCwgMHg4QywgMHg4RiwgMHg4QSwgMHg4NSwgMHg5NCwgMHhBNywgMHhGMiwgMHgwRCwgMHgxNywKCiAweDM5LCAweDRCLCAweERELCAweDdDLCAweDg0LCAweDk3LCAweEEyLCAweEZELCAweDFDLCAweDI0LCAweDZDLCAweEI0LCAweEM3LCAweDUyLCAweEY2LCAweDAxfTsKCgoKbG9jYWwgTFRBQkxFID0gewoKIFswXSA9IDB4MDAsIDB4MDAsIDB4MTksIDB4MDEsIDB4MzIsIDB4MDIsIDB4MUEsIDB4QzYsIDB4NEIsIDB4QzcsIDB4MUIsIDB4NjgsIDB4MzMsIDB4RUUsIDB4REYsIDB4MDMsCgogMHg2NCwgMHgwNCwgMHhFMCwgMHgwRSwgMHgzNCwgMHg4RCwgMHg4MSwgMHhFRiwgMHg0QywgMHg3MSwgMHgwOCwgMHhDOCwgMHhGOCwgMHg2OSwgMHgxQywgMHhDMSwKCiAweDdELCAweEMyLCAweDFELCAweEI1LCAweEY5LCAweEI5LCAweDI3LCAweDZBLCAweDRELCAweEU0LCAweEE2LCAweDcyLCAweDlBLCAweEM5LCAweDA5LCAweDc4LAoKIDB4NjUsIDB4MkYsIDB4OEEsIDB4MDUsIDB4MjEsIDB4MEYsIDB4RTEsIDB4MjQsIDB4MTIsIDB4RjAsIDB4ODIsIDB4NDUsIDB4MzUsIDB4OTMsIDB4REEsIDB4OEUsCgogMHg5NiwgMHg4RiwgMHhEQiwgMHhCRCwgMHgzNiwgMHhEMCwgMHhDRSwgMHg5NCwgMHgxMywgMHg1QywgMHhEMiwgMHhGMSwgMHg0MCwgMHg0NiwgMHg4MywgMHgzOCwKCiAweDY2LCAweERELCAweEZELCAweDMwLCAweEJGLCAweDA2LCAweDhCLCAweDYyLCAweEIzLCAweDI1LCAweEUyLCAweDk4LCAweDIyLCAweDg4LCAweDkxLCAweDEwLAoKIDB4N0UsIDB4NkUsIDB4NDgsIDB4QzMsIDB4QTMsIDB4QjYsIDB4MUUsIDB4NDIsIDB4M0EsIDB4NkIsIDB4MjgsIDB4NTQsIDB4RkEsIDB4ODUsIDB4M0QsIDB4QkEsCgogMHgyQiwgMHg3OSwgMHgwQSwgMHgxNSwgMHg5QiwgMHg5RiwgMHg1RSwgMHhDQSwgMHg0RSwgMHhENCwgMHhBQywgMHhFNSwgMHhGMywgMHg3MywgMHhBNywgMHg1NywKCiAweEFGLCAweDU4LCAweEE4LCAweDUwLCAweEY0LCAweEVBLCAweEQ2LCAweDc0LCAweDRGLCAweEFFLCAweEU5LCAweEQ1LCAweEU3LCAweEU2LCAweEFELCAweEU4LAoKIDB4MkMsIDB4RDcsIDB4NzUsIDB4N0EsIDB4RUIsIDB4MTYsIDB4MEIsIDB4RjUsIDB4NTksIDB4Q0IsIDB4NUYsIDB4QjAsIDB4OUMsIDB4QTksIDB4NTEsIDB4QTAsCgogMHg3RiwgMHgwQywgMHhGNiwgMHg2RiwgMHgxNywgMHhDNCwgMHg0OSwgMHhFQywgMHhEOCwgMHg0MywgMHgxRiwgMHgyRCwgMHhBNCwgMHg3NiwgMHg3QiwgMHhCNywKCiAweENDLCAweEJCLCAweDNFLCAweDVBLCAweEZCLCAweDYwLCAweEIxLCAweDg2LCAweDNCLCAweDUyLCAweEExLCAweDZDLCAweEFBLCAweDU1LCAweDI5LCAweDlELAoKIDB4OTcsIDB4QjIsIDB4ODcsIDB4OTAsIDB4NjEsIDB4QkUsIDB4REMsIDB4RkMsIDB4QkMsIDB4OTUsIDB4Q0YsIDB4Q0QsIDB4MzcsIDB4M0YsIDB4NUIsIDB4RDEsCgogMHg1MywgMHgzOSwgMHg4NCwgMHgzQywgMHg0MSwgMHhBMiwgMHg2RCwgMHg0NywgMHgxNCwgMHgyQSwgMHg5RSwgMHg1RCwgMHg1NiwgMHhGMiwgMHhEMywgMHhBQiwKCiAweDQ0LCAweDExLCAweDkyLCAweEQ5LCAweDIzLCAweDIwLCAweDJFLCAweDg5LCAweEI0LCAweDdDLCAweEI4LCAweDI2LCAweDc3LCAweDk5LCAweEUzLCAweEE1LAoKIDB4NjcsIDB4NEEsIDB4RUQsIDB4REUsIDB4QzUsIDB4MzEsIDB4RkUsIDB4MTgsIDB4MEQsIDB4NjMsIDB4OEMsIDB4ODAsIDB4QzAsIDB4RjcsIDB4NzAsIDB4MDd9OwoKCgpsb2NhbCBNSVhUQUJMRSA9IHsKCiAweDAyLCAweDAzLCAweDAxLCAweDAxLAoKIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDEsCgogMHgwMSwgMHgwMSwgMHgwMiwgMHgwMywKCiAweDAzLCAweDAxLCAweDAxLCAweDAyfTsKCgoKbG9jYWwgSU1JWFRBQkxFID0gewoKIDB4MEUsIDB4MEIsIDB4MEQsIDB4MDksCgogMHgwOSwgMHgwRSwgMHgwQiwgMHgwRCwKCiAweDBELCAweDA5LCAweDBFLCAweDBCLAoKIDB4MEIsIDB4MEQsIDB4MDksIDB4MEV9OwoKCgpsb2NhbCBSQ09OID0gewoKWzBdID0gMHg4ZCwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwgMHgxYiwgMHgzNiwgMHg2YywgMHhkOCwgMHhhYiwgMHg0ZCwgMHg5YSwKCjB4MmYsIDB4NWUsIDB4YmMsIDB4NjMsIDB4YzYsIDB4OTcsIDB4MzUsIDB4NmEsIDB4ZDQsIDB4YjMsIDB4N2QsIDB4ZmEsIDB4ZWYsIDB4YzUsIDB4OTEsIDB4MzksCgoweDcyLCAweGU0LCAweGQzLCAweGJkLCAweDYxLCAweGMyLCAweDlmLCAweDI1LCAweDRhLCAweDk0LCAweDMzLCAweDY2LCAweGNjLCAweDgzLCAweDFkLCAweDNhLAoKMHg3NCwgMHhlOCwgMHhjYiwgMHg4ZCwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwgMHgxYiwgMHgzNiwgMHg2YywgMHhkOCwKCjB4YWIsIDB4NGQsIDB4OWEsIDB4MmYsIDB4NWUsIDB4YmMsIDB4NjMsIDB4YzYsIDB4OTcsIDB4MzUsIDB4NmEsIDB4ZDQsIDB4YjMsIDB4N2QsIDB4ZmEsIDB4ZWYsCgoweGM1LCAweDkxLCAweDM5LCAweDcyLCAweGU0LCAweGQzLCAweGJkLCAweDYxLCAweGMyLCAweDlmLCAweDI1LCAweDRhLCAweDk0LCAweDMzLCAweDY2LCAweGNjLAoKMHg4MywgMHgxZCwgMHgzYSwgMHg3NCwgMHhlOCwgMHhjYiwgMHg4ZCwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwgMHgxYiwKCjB4MzYsIDB4NmMsIDB4ZDgsIDB4YWIsIDB4NGQsIDB4OWEsIDB4MmYsIDB4NWUsIDB4YmMsIDB4NjMsIDB4YzYsIDB4OTcsIDB4MzUsIDB4NmEsIDB4ZDQsIDB4YjMsCgoweDdkLCAweGZhLCAweGVmLCAweGM1LCAweDkxLCAweDM5LCAweDcyLCAweGU0LCAweGQzLCAweGJkLCAweDYxLCAweGMyLCAweDlmLCAweDI1LCAweDRhLCAweDk0LAoKMHgzMywgMHg2NiwgMHhjYywgMHg4MywgMHgxZCwgMHgzYSwgMHg3NCwgMHhlOCwgMHhjYiwgMHg4ZCwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwKCjB4NDAsIDB4ODAsIDB4MWIsIDB4MzYsIDB4NmMsIDB4ZDgsIDB4YWIsIDB4NGQsIDB4OWEsIDB4MmYsIDB4NWUsIDB4YmMsIDB4NjMsIDB4YzYsIDB4OTcsIDB4MzUsCgoweDZhLCAweGQ0LCAweGIzLCAweDdkLCAweGZhLCAweGVmLCAweGM1LCAweDkxLCAweDM5LCAweDcyLCAweGU0LCAweGQzLCAweGJkLCAweDYxLCAweGMyLCAweDlmLAoKMHgyNSwgMHg0YSwgMHg5NCwgMHgzMywgMHg2NiwgMHhjYywgMHg4MywgMHgxZCwgMHgzYSwgMHg3NCwgMHhlOCwgMHhjYiwgMHg4ZCwgMHgwMSwgMHgwMiwgMHgwNCwKCjB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4MWIsIDB4MzYsIDB4NmMsIDB4ZDgsIDB4YWIsIDB4NGQsIDB4OWEsIDB4MmYsIDB4NWUsIDB4YmMsIDB4NjMsCgoweGM2LCAweDk3LCAweDM1LCAweDZhLCAweGQ0LCAweGIzLCAweDdkLCAweGZhLCAweGVmLCAweGM1LCAweDkxLCAweDM5LCAweDcyLCAweGU0LCAweGQzLCAweGJkLAoKMHg2MSwgMHhjMiwgMHg5ZiwgMHgyNSwgMHg0YSwgMHg5NCwgMHgzMywgMHg2NiwgMHhjYywgMHg4MywgMHgxZCwgMHgzYSwgMHg3NCwgMHhlOCwgMHhjYiwgMHg4ZH07CgoKCgoKbG9jYWwgR01VTCA9IGZ1bmN0aW9uKEEsIEIpCgogICAgaWYoQSA9PSAweDAxKSB0aGVuIHJldHVybiBCOyBlbmQKCiAgICBpZihCID09IDB4MDEpIHRoZW4gcmV0dXJuIEE7IGVuZAoKICAgIGlmKEEgPT0gMHgwMCkgdGhlbiByZXR1cm4gMDsgZW5kCgogICAgaWYoQiA9PSAweDAwKSB0aGVuIHJldHVybiAwOyBlbmQKCgoKICAgIGxvY2FsIExBID0gTFRBQkxFW0FdOwoKICAgIGxvY2FsIExCID0gTFRBQkxFW0JdOwoKCgogICAgbG9jYWwgc3VtID0gTEEgKyBMQjsKCiAgICBpZiAoc3VtID4gMHhGRikgdGhlbiBzdW0gPSBzdW0gLSAweEZGOyBlbmQKCgoKICAgIHJldHVybiBFVEFCTEVbc3VtXTsKCmVuZAoKCgpsb2NhbCBieXRlU3ViID0gQXJyYXkuc3Vic3RpdHV0ZTsKCgoKbG9jYWwgc2hpZnRSb3cgPSBBcnJheS5wZXJtdXRlOwoKCgpsb2NhbCBtaXhDb2wgPSBmdW5jdGlvbihpLCBtaXgpCgogICAgbG9jYWwgb3V0ID0ge307CgoKCiAgICBsb2NhbCBhLCBiLCBjLCBkOwoKCgogICAgYSA9IEdNVUwoaVsgMV0sIG1peFsgMV0pOwoKICAgIGIgPSBHTVVMKGlbIDJdLCBtaXhbIDJdKTsKCiAgICBjID0gR01VTChpWyAzXSwgbWl4WyAzXSk7CgogICAgZCA9IEdNVUwoaVsgNF0sIG1peFsgNF0pOwoKICAgIG91dFsgMV0gPSBYT1IoWE9SKGEsIGIpLCBYT1IoYywgZCkpOwoKICAgIGEgPSBHTVVMKGlbIDFdLCBtaXhbIDVdKTsKCiAgICBiID0gR01VTChpWyAyXSwgbWl4WyA2XSk7CgogICAgYyA9IEdNVUwoaVsgM10sIG1peFsgN10pOwoKICAgIGQgPSBHTVVMKGlbIDRdLCBtaXhbIDhdKTsKCiAgICBvdXRbIDJdID0gWE9SKFhPUihhLCBiKSwgWE9SKGMsIGQpKTsKCiAgICBhID0gR01VTChpWyAxXSwgbWl4WyA5XSk7CgogICAgYiA9IEdNVUwoaVsgMl0sIG1peFsxMF0pOwoKICAgIGMgPSBHTVVMKGlbIDNdLCBtaXhbMTFdKTsKCiAgICBkID0gR01VTChpWyA0XSwgbWl4WzEyXSk7CgogICAgb3V0WyAzXSA9IFhPUihYT1IoYSwgYiksIFhPUihjLCBkKSk7CgogICAgYSA9IEdNVUwoaVsgMV0sIG1peFsxM10pOwoKICAgIGIgPSBHTVVMKGlbIDJdLCBtaXhbMTRdKTsKCiAgICBjID0gR01VTChpWyAzXSwgbWl4WzE1XSk7CgogICAgZCA9IEdNVUwoaVsgNF0sIG1peFsxNl0pOwoKICAgIG91dFsgNF0gPSBYT1IoWE9SKGEsIGIpLCBYT1IoYywgZCkpOwoKCgoKCiAgICBhID0gR01VTChpWyA1XSwgbWl4WyAxXSk7CgogICAgYiA9IEdNVUwoaVsgNl0sIG1peFsgMl0pOwoKICAgIGMgPSBHTVVMKGlbIDddLCBtaXhbIDNdKTsKCiAgICBkID0gR01VTChpWyA4XSwgbWl4WyA0XSk7CgogICAgb3V0WyA1XSA9IFhPUihYT1IoYSwgYiksIFhPUihjLCBkKSk7CgogICAgYSA9IEdNVUwoaVsgNV0sIG1peFsgNV0pOwoKICAgIGIgPSBHTVVMKGlbIDZdLCBtaXhbIDZdKTsKCiAgICBjID0gR01VTChpWyA3XSwgbWl4WyA3XSk7CgogICAgZCA9IEdNVUwoaVsgOF0sIG1peFsgOF0pOwoKICAgIG91dFsgNl0gPSBYT1IoWE9SKGEsIGIpLCBYT1IoYywgZCkpOwoKICAgIGEgPSBHTVVMKGlbIDVdLCBtaXhbIDldKTsKCiAgICBiID0gR01VTChpWyA2XSwgbWl4WzEwXSk7CgogICAgYyA9IEdNVUwoaVsgN10sIG1peFsxMV0pOwoKICAgIGQgPSBHTVVMKGlbIDhdLCBtaXhbMTJdKTsKCiAgICBvdXRbIDddID0gWE9SKFhPUihhLCBiKSwgWE9SKGMsIGQpKTsKCiAgICBhID0gR01VTChpWyA1XSwgbWl4WzEzXSk7CgogICAgYiA9IEdNVUwoaVsgNl0sIG1peFsxNF0pOwoKICAgIGMgPSBHTVVMKGlbIDddLCBtaXhbMTVdKTsKCiAgICBkID0gR01VTChpWyA4XSwgbWl4WzE2XSk7CgogICAgb3V0WyA4XSA9IFhPUihYT1IoYSwgYiksIFhPUihjLCBkKSk7CgoKCgoKICAgIGEgPSBHTVVMKGlbIDldLCBtaXhbIDFdKTsKCiAgICBiID0gR01VTChpWzEwXSwgbWl4WyAyXSk7CgogICAgYyA9IEdNVUwoaVsxMV0sIG1peFsgM10pOwoKICAgIGQgPSBHTVVMKGlbMTJdLCBtaXhbIDRdKTsKCiAgICBvdXRbIDldID0gWE9SKFhPUihhLCBiKSwgWE9SKGMsIGQpKTsKCiAgICBhID0gR01VTChpWyA5XSwgbWl4WyA1XSk7CgogICAgYiA9IEdNVUwoaVsxMF0sIG1peFsgNl0pOwoKICAgIGMgPSBHTVVMKGlbMTFdLCBtaXhbIDddKTsKCiAgICBkID0gR01VTChpWzEyXSwgbWl4WyA4XSk7CgogICAgb3V0WzEwXSA9IFhPUihYT1IoYSwgYiksIFhPUihjLCBkKSk7CgogICAgYSA9IEdNVUwoaVsgOV0sIG1peFsgOV0pOwoKICAgIGIgPSBHTVVMKGlbMTBdLCBtaXhbMTBdKTsKCiAgICBjID0gR01VTChpWzExXSwgbWl4WzExXSk7CgogICAgZCA9IEdNVUwoaVsxMl0sIG1peFsxMl0pOwoKICAgIG91dFsxMV0gPSBYT1IoWE9SKGEsIGIpLCBYT1IoYywgZCkpOwoKICAgIGEgPSBHTVVMKGlbIDldLCBtaXhbMTNdKTsKCiAgICBiID0gR01VTChpWzEwXSwgbWl4WzE0XSk7CgogICAgYyA9IEdNVUwoaVsxMV0sIG1peFsxNV0pOwoKICAgIGQgPSBHTVVMKGlbMTJdLCBtaXhbMTZdKTsKCiAgICBvdXRbMTJdID0gWE9SKFhPUihhLCBiKSwgWE9SKGMsIGQpKTsKCgoKCgogICAgYSA9IEdNVUwoaVsxM10sIG1peFsgMV0pOwoKICAgIGIgPSBHTVVMKGlbMTRdLCBtaXhbIDJdKTsKCiAgICBjID0gR01VTChpWzE1XSwgbWl4WyAzXSk7CgogICAgZCA9IEdNVUwoaVsxNl0sIG1peFsgNF0pOwoKICAgIG91dFsxM10gPSBYT1IoWE9SKGEsIGIpLCBYT1IoYywgZCkpOwoKICAgIGEgPSBHTVVMKGlbMTNdLCBtaXhbIDVdKTsKCiAgICBiID0gR01VTChpWzE0XSwgbWl4WyA2XSk7CgogICAgYyA9IEdNVUwoaVsxNV0sIG1peFsgN10pOwoKICAgIGQgPSBHTVVMKGlbMTZdLCBtaXhbIDhdKTsKCiAgICBvdXRbMTRdID0gWE9SKFhPUihhLCBiKSwgWE9SKGMsIGQpKTsKCiAgICBhID0gR01VTChpWzEzXSwgbWl4WyA5XSk7CgogICAgYiA9IEdNVUwoaVsxNF0sIG1peFsxMF0pOwoKICAgIGMgPSBHTVVMKGlbMTVdLCBtaXhbMTFdKTsKCiAgICBkID0gR01VTChpWzE2XSwgbWl4WzEyXSk7CgogICAgb3V0WzE1XSA9IFhPUihYT1IoYSwgYiksIFhPUihjLCBkKSk7CgogICAgYSA9IEdNVUwoaVsxM10sIG1peFsxM10pOwoKICAgIGIgPSBHTVVMKGlbMTRdLCBtaXhbMTRdKTsKCiAgICBjID0gR01VTChpWzE1XSwgbWl4WzE1XSk7CgogICAgZCA9IEdNVUwoaVsxNl0sIG1peFsxNl0pOwoKICAgIG91dFsxNl0gPSBYT1IoWE9SKGEsIGIpLCBYT1IoYywgZCkpOwoKCgogICAgcmV0dXJuIG91dDsKCmVuZAoKCgpsb2NhbCBrZXlSb3VuZCA9IGZ1bmN0aW9uKGtleSwgcm91bmQpCgogICAgbG9jYWwgaSA9IChyb3VuZCAtIDEpICogMjQ7CgogICAgbG9jYWwgb3V0ID0ga2V5OwoKCgogICAgb3V0WzI1ICsgaV0gPSBYT1Ioa2V5WyAxICsgaV0sIFhPUihTQk9YW2tleVsyMiArIGldXSwgUkNPTltyb3VuZF0pKTsKCiAgICBvdXRbMjYgKyBpXSA9IFhPUihrZXlbIDIgKyBpXSwgU0JPWFtrZXlbMjMgKyBpXV0pOwoKICAgIG91dFsyNyArIGldID0gWE9SKGtleVsgMyArIGldLCBTQk9YW2tleVsyNCArIGldXSk7CgogICAgb3V0WzI4ICsgaV0gPSBYT1Ioa2V5WyA0ICsgaV0sIFNCT1hba2V5WzIxICsgaV1dKTsKCgoKICAgIG91dFsyOSArIGldID0gWE9SKG91dFsyNSArIGldLCBrZXlbIDUgKyBpXSk7CgogICAgb3V0WzMwICsgaV0gPSBYT1Iob3V0WzI2ICsgaV0sIGtleVsgNiArIGldKTsKCiAgICBvdXRbMzEgKyBpXSA9IFhPUihvdXRbMjcgKyBpXSwga2V5WyA3ICsgaV0pOwoKICAgIG91dFszMiArIGldID0gWE9SKG91dFsyOCArIGldLCBrZXlbIDggKyBpXSk7CgoKCiAgICBvdXRbMzMgKyBpXSA9IFhPUihvdXRbMjkgKyBpXSwga2V5WyA5ICsgaV0pOwoKICAgIG91dFszNCArIGldID0gWE9SKG91dFszMCArIGldLCBrZXlbMTAgKyBpXSk7CgogICAgb3V0WzM1ICsgaV0gPSBYT1Iob3V0WzMxICsgaV0sIGtleVsxMSArIGldKTsKCiAgICBvdXRbMzYgKyBpXSA9IFhPUihvdXRbMzIgKyBpXSwga2V5WzEyICsgaV0pOwoKCgogICAgb3V0WzM3ICsgaV0gPSBYT1Iob3V0WzMzICsgaV0sIGtleVsxMyArIGldKTsKCiAgICBvdXRbMzggKyBpXSA9IFhPUihvdXRbMzQgKyBpXSwga2V5WzE0ICsgaV0pOwoKICAgIG91dFszOSArIGldID0gWE9SKG91dFszNSArIGldLCBrZXlbMTUgKyBpXSk7CgogICAgb3V0WzQwICsgaV0gPSBYT1Iob3V0WzM2ICsgaV0sIGtleVsxNiArIGldKTsKCgoKICAgIG91dFs0MSArIGldID0gWE9SKG91dFszNyArIGldLCBrZXlbMTcgKyBpXSk7CgogICAgb3V0WzQyICsgaV0gPSBYT1Iob3V0WzM4ICsgaV0sIGtleVsxOCArIGldKTsKCiAgICBvdXRbNDMgKyBpXSA9IFhPUihvdXRbMzkgKyBpXSwga2V5WzE5ICsgaV0pOwoKICAgIG91dFs0NCArIGldID0gWE9SKG91dFs0MCArIGldLCBrZXlbMjAgKyBpXSk7CgoKCiAgICBvdXRbNDUgKyBpXSA9IFhPUihvdXRbNDEgKyBpXSwga2V5WzIxICsgaV0pOwoKICAgIG91dFs0NiArIGldID0gWE9SKG91dFs0MiArIGldLCBrZXlbMjIgKyBpXSk7CgogICAgb3V0WzQ3ICsgaV0gPSBYT1Iob3V0WzQzICsgaV0sIGtleVsyMyArIGldKTsKCiAgICBvdXRbNDggKyBpXSA9IFhPUihvdXRbNDQgKyBpXSwga2V5WzI0ICsgaV0pOwoKCgogICAgcmV0dXJuIG91dDsKCmVuZAoKCgpsb2NhbCBrZXlFeHBhbmQgPSBmdW5jdGlvbihrZXkpCgogICAgbG9jYWwgYnl0ZXMgPSBBcnJheS5jb3B5KGtleSk7CgoKCiAgICBmb3IgaSA9IDEsIDggZG8KCiAgICAgICAga2V5Um91bmQoYnl0ZXMsIGkpOwoKICAgIGVuZAoKCgogICAgbG9jYWwga2V5cyA9IHt9OwoKCgogICAga2V5c1sgMV0gPSBBcnJheS5zbGljZShieXRlcywgMSwgMTYpOwoKICAgIGtleXNbIDJdID0gQXJyYXkuc2xpY2UoYnl0ZXMsIDE3LCAzMik7CgogICAga2V5c1sgM10gPSBBcnJheS5zbGljZShieXRlcywgMzMsIDQ4KTsKCiAgICBrZXlzWyA0XSA9IEFycmF5LnNsaWNlKGJ5dGVzLCA0OSwgNjQpOwoKICAgIGtleXNbIDVdID0gQXJyYXkuc2xpY2UoYnl0ZXMsIDY1LCA4MCk7CgogICAga2V5c1sgNl0gPSBBcnJheS5zbGljZShieXRlcywgODEsIDk2KTsKCiAgICBrZXlzWyA3XSA9IEFycmF5LnNsaWNlKGJ5dGVzLCA5NywgMTEyKTsKCiAgICBrZXlzWyA4XSA9IEFycmF5LnNsaWNlKGJ5dGVzLCAxMTMsIDEyOCk7CgogICAga2V5c1sgOV0gPSBBcnJheS5zbGljZShieXRlcywgMTI5LCAxNDQpOwoKICAgIGtleXNbMTBdID0gQXJyYXkuc2xpY2UoYnl0ZXMsIDE0NSwgMTYwKTsKCiAgICBrZXlzWzExXSA9IEFycmF5LnNsaWNlKGJ5dGVzLCAxNjEsIDE3Nik7CgogICAga2V5c1sxMl0gPSBBcnJheS5zbGljZShieXRlcywgMTc3LCAxOTIpOwoKICAgIGtleXNbMTNdID0gQXJyYXkuc2xpY2UoYnl0ZXMsIDE5MywgMjA4KTsKCgoKICAgIHJldHVybiBrZXlzOwoKCgplbmQKCgoKbG9jYWwgYWRkS2V5ID0gQXJyYXkuWE9SOwoKCgoKCgoKbG9jYWwgQUVTID0ge307CgoKCkFFUy5ibG9ja1NpemUgPSAxNjsKCgoKQUVTLmVuY3J5cHQgPSBmdW5jdGlvbihrZXksIGJsb2NrKQoKCgogICAgbG9jYWwga2V5U2NoZWR1bGUgPSBrZXlFeHBhbmQoa2V5KTsKCgoKICAgIC0tcm91bmQgMAoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVsxXSk7CgoKCiAgICAtLXJvdW5kIDEKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIFNCT1gpOwoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIFJPV19TSElGVCk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIE1JWFRBQkxFKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbMl0pOwoKCgogICAgLS1yb3VuZCAyCgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBTQk9YKTsKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBNSVhUQUJMRSk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzNdKTsKCgoKICAgIC0tcm91bmQgMwoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgU0JPWCk7CgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgUk9XX1NISUZUKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgTUlYVEFCTEUpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVs0XSk7CgoKCiAgICAtLXJvdW5kIDQKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIFNCT1gpOwoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIFJPV19TSElGVCk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIE1JWFRBQkxFKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbNV0pOwoKCgogICAgLS1yb3VuZCA1CgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBTQk9YKTsKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBNSVhUQUJMRSk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzZdKTsKCgoKICAgIC0tcm91bmQgNgoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgU0JPWCk7CgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgUk9XX1NISUZUKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgTUlYVEFCTEUpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVs3XSk7CgoKCiAgICAtLXJvdW5kIDcKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIFNCT1gpOwoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIFJPV19TSElGVCk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIE1JWFRBQkxFKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbOF0pOwoKCgogICAgLS1yb3VuZCA4CgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBTQk9YKTsKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBNSVhUQUJMRSk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzldKTsKCgoKICAgIC0tcm91bmQgOQoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgU0JPWCk7CgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgUk9XX1NISUZUKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgTUlYVEFCTEUpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVsxMF0pOwoKCgogICAgLS1yb3VuZCAxMAoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgU0JPWCk7CgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgUk9XX1NISUZUKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgTUlYVEFCTEUpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVsxMV0pOwoKCgogICAgLS1yb3VuZCAxMQoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgU0JPWCk7CgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgUk9XX1NISUZUKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgTUlYVEFCTEUpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVsxMl0pOwoKCgogICAgLS1yb3VuZCAxMgoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgU0JPWCk7CgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgUk9XX1NISUZUKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbMTNdKTsKCgoKICAgIHJldHVybiBibG9jazsKCgoKZW5kCgoKCkFFUy5kZWNyeXB0ID0gZnVuY3Rpb24oa2V5LCBibG9jaykKCgoKICAgIGxvY2FsIGtleVNjaGVkdWxlID0ga2V5RXhwYW5kKGtleSk7CgoKCiAgICAtLXJvdW5kIDAKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbMTNdKTsKCgoKICAgIC0tcm91bmQgMQoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIElST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgSVNCT1gpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVsxMl0pOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBJTUlYVEFCTEUpOwoKCgogICAgLS1yb3VuZCAyCgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgSVJPV19TSElGVCk7CgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBJU0JPWCk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzExXSk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIElNSVhUQUJMRSk7CgoKCiAgICAtLXJvdW5kIDMKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBJUk9XX1NISUZUKTsKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIElTQk9YKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbMTBdKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgSU1JWFRBQkxFKTsKCgoKICAgIC0tcm91bmQgNAoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIElST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgSVNCT1gpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVs5XSk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIElNSVhUQUJMRSk7CgoKCiAgICAtLXJvdW5kIDUKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBJUk9XX1NISUZUKTsKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIElTQk9YKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbOF0pOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBJTUlYVEFCTEUpOwoKCgogICAgLS1yb3VuZCA2CgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgSVJPV19TSElGVCk7CgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBJU0JPWCk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzddKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgSU1JWFRBQkxFKTsKCgoKICAgIC0tcm91bmQgNwoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIElST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgSVNCT1gpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVs2XSk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIElNSVhUQUJMRSk7CgoKCiAgICAtLXJvdW5kIDgKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBJUk9XX1NISUZUKTsKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIElTQk9YKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbNV0pOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBJTUlYVEFCTEUpOwoKCgogICAgLS1yb3VuZCA5CgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgSVJPV19TSElGVCk7CgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBJU0JPWCk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzRdKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgSU1JWFRBQkxFKTsKCgoKICAgIC0tcm91bmQgMTAKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBJUk9XX1NISUZUKTsKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIElTQk9YKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbM10pOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBJTUlYVEFCTEUpOwoKCgogICAgLS1yb3VuZCAxMQoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIElST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgSVNCT1gpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVsyXSk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIElNSVhUQUJMRSk7CgoKCiAgICAtLXJvdW5kIDEyCgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgSVJPV19TSElGVCk7CgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBJU0JPWCk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzFdKTsKCgoKICAgIHJldHVybiBibG9jazsKCmVuZAoKCgpyZXR1cm4gQUVTOwAAAAAAAGxvY2FsIEFycmF5ID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLmFycmF5Iik7Cgpsb2NhbCBCaXQgPSByZXF1aXJlKCIuY3J5cHRvLnV0aWwuYml0Iik7CgoKCmxvY2FsIFhPUiA9IEJpdC5ieG9yOwoKCgpsb2NhbCBTQk9YID0gewoKIFswXSA9IDB4NjMsIDB4N0MsIDB4NzcsIDB4N0IsIDB4RjIsIDB4NkIsIDB4NkYsIDB4QzUsIDB4MzAsIDB4MDEsIDB4NjcsIDB4MkIsIDB4RkUsIDB4RDcsIDB4QUIsIDB4NzYsCgogMHhDQSwgMHg4MiwgMHhDOSwgMHg3RCwgMHhGQSwgMHg1OSwgMHg0NywgMHhGMCwgMHhBRCwgMHhENCwgMHhBMiwgMHhBRiwgMHg5QywgMHhBNCwgMHg3MiwgMHhDMCwKCiAweEI3LCAweEZELCAweDkzLCAweDI2LCAweDM2LCAweDNGLCAweEY3LCAweENDLCAweDM0LCAweEE1LCAweEU1LCAweEYxLCAweDcxLCAweEQ4LCAweDMxLCAweDE1LAoKIDB4MDQsIDB4QzcsIDB4MjMsIDB4QzMsIDB4MTgsIDB4OTYsIDB4MDUsIDB4OUEsIDB4MDcsIDB4MTIsIDB4ODAsIDB4RTIsIDB4RUIsIDB4MjcsIDB4QjIsIDB4NzUsCgogMHgwOSwgMHg4MywgMHgyQywgMHgxQSwgMHgxQiwgMHg2RSwgMHg1QSwgMHhBMCwgMHg1MiwgMHgzQiwgMHhENiwgMHhCMywgMHgyOSwgMHhFMywgMHgyRiwgMHg4NCwKCiAweDUzLCAweEQxLCAweDAwLCAweEVELCAweDIwLCAweEZDLCAweEIxLCAweDVCLCAweDZBLCAweENCLCAweEJFLCAweDM5LCAweDRBLCAweDRDLCAweDU4LCAweENGLAoKIDB4RDAsIDB4RUYsIDB4QUEsIDB4RkIsIDB4NDMsIDB4NEQsIDB4MzMsIDB4ODUsIDB4NDUsIDB4RjksIDB4MDIsIDB4N0YsIDB4NTAsIDB4M0MsIDB4OUYsIDB4QTgsCgogMHg1MSwgMHhBMywgMHg0MCwgMHg4RiwgMHg5MiwgMHg5RCwgMHgzOCwgMHhGNSwgMHhCQywgMHhCNiwgMHhEQSwgMHgyMSwgMHgxMCwgMHhGRiwgMHhGMywgMHhEMiwKCiAweENELCAweDBDLCAweDEzLCAweEVDLCAweDVGLCAweDk3LCAweDQ0LCAweDE3LCAweEM0LCAweEE3LCAweDdFLCAweDNELCAweDY0LCAweDVELCAweDE5LCAweDczLAoKIDB4NjAsIDB4ODEsIDB4NEYsIDB4REMsIDB4MjIsIDB4MkEsIDB4OTAsIDB4ODgsIDB4NDYsIDB4RUUsIDB4QjgsIDB4MTQsIDB4REUsIDB4NUUsIDB4MEIsIDB4REIsCgogMHhFMCwgMHgzMiwgMHgzQSwgMHgwQSwgMHg0OSwgMHgwNiwgMHgyNCwgMHg1QywgMHhDMiwgMHhEMywgMHhBQywgMHg2MiwgMHg5MSwgMHg5NSwgMHhFNCwgMHg3OSwKCiAweEU3LCAweEM4LCAweDM3LCAweDZELCAweDhELCAweEQ1LCAweDRFLCAweEE5LCAweDZDLCAweDU2LCAweEY0LCAweEVBLCAweDY1LCAweDdBLCAweEFFLCAweDA4LAoKIDB4QkEsIDB4NzgsIDB4MjUsIDB4MkUsIDB4MUMsIDB4QTYsIDB4QjQsIDB4QzYsIDB4RTgsIDB4REQsIDB4NzQsIDB4MUYsIDB4NEIsIDB4QkQsIDB4OEIsIDB4OEEsCgogMHg3MCwgMHgzRSwgMHhCNSwgMHg2NiwgMHg0OCwgMHgwMywgMHhGNiwgMHgwRSwgMHg2MSwgMHgzNSwgMHg1NywgMHhCOSwgMHg4NiwgMHhDMSwgMHgxRCwgMHg5RSwKCiAweEUxLCAweEY4LCAweDk4LCAweDExLCAweDY5LCAweEQ5LCAweDhFLCAweDk0LCAweDlCLCAweDFFLCAweDg3LCAweEU5LCAweENFLCAweDU1LCAweDI4LCAweERGLAoKIDB4OEMsIDB4QTEsIDB4ODksIDB4MEQsIDB4QkYsIDB4RTYsIDB4NDIsIDB4NjgsIDB4NDEsIDB4OTksIDB4MkQsIDB4MEYsIDB4QjAsIDB4NTQsIDB4QkIsIDB4MTZ9OwoKCgpsb2NhbCBJU0JPWCA9IHsKCiBbMF0gPSAweDUyLCAweDA5LCAweDZBLCAweEQ1LCAweDMwLCAweDM2LCAweEE1LCAweDM4LCAweEJGLCAweDQwLCAweEEzLCAweDlFLCAweDgxLCAweEYzLCAweEQ3LCAweEZCLAoKIDB4N0MsIDB4RTMsIDB4MzksIDB4ODIsIDB4OUIsIDB4MkYsIDB4RkYsIDB4ODcsIDB4MzQsIDB4OEUsIDB4NDMsIDB4NDQsIDB4QzQsIDB4REUsIDB4RTksIDB4Q0IsCgogMHg1NCwgMHg3QiwgMHg5NCwgMHgzMiwgMHhBNiwgMHhDMiwgMHgyMywgMHgzRCwgMHhFRSwgMHg0QywgMHg5NSwgMHgwQiwgMHg0MiwgMHhGQSwgMHhDMywgMHg0RSwKCiAweDA4LCAweDJFLCAweEExLCAweDY2LCAweDI4LCAweEQ5LCAweDI0LCAweEIyLCAweDc2LCAweDVCLCAweEEyLCAweDQ5LCAweDZELCAweDhCLCAweEQxLCAweDI1LAoKIDB4NzIsIDB4RjgsIDB4RjYsIDB4NjQsIDB4ODYsIDB4NjgsIDB4OTgsIDB4MTYsIDB4RDQsIDB4QTQsIDB4NUMsIDB4Q0MsIDB4NUQsIDB4NjUsIDB4QjYsIDB4OTIsCgogMHg2QywgMHg3MCwgMHg0OCwgMHg1MCwgMHhGRCwgMHhFRCwgMHhCOSwgMHhEQSwgMHg1RSwgMHgxNSwgMHg0NiwgMHg1NywgMHhBNywgMHg4RCwgMHg5RCwgMHg4NCwKCiAweDkwLCAweEQ4LCAweEFCLCAweDAwLCAweDhDLCAweEJDLCAweEQzLCAweDBBLCAweEY3LCAweEU0LCAweDU4LCAweDA1LCAweEI4LCAweEIzLCAweDQ1LCAweDA2LAoKIDB4RDAsIDB4MkMsIDB4MUUsIDB4OEYsIDB4Q0EsIDB4M0YsIDB4MEYsIDB4MDIsIDB4QzEsIDB4QUYsIDB4QkQsIDB4MDMsIDB4MDEsIDB4MTMsIDB4OEEsIDB4NkIsCgogMHgzQSwgMHg5MSwgMHgxMSwgMHg0MSwgMHg0RiwgMHg2NywgMHhEQywgMHhFQSwgMHg5NywgMHhGMiwgMHhDRiwgMHhDRSwgMHhGMCwgMHhCNCwgMHhFNiwgMHg3MywKCiAweDk2LCAweEFDLCAweDc0LCAweDIyLCAweEU3LCAweEFELCAweDM1LCAweDg1LCAweEUyLCAweEY5LCAweDM3LCAweEU4LCAweDFDLCAweDc1LCAweERGLCAweDZFLAoKIDB4NDcsIDB4RjEsIDB4MUEsIDB4NzEsIDB4MUQsIDB4MjksIDB4QzUsIDB4ODksIDB4NkYsIDB4QjcsIDB4NjIsIDB4MEUsIDB4QUEsIDB4MTgsIDB4QkUsIDB4MUIsCgogMHhGQywgMHg1NiwgMHgzRSwgMHg0QiwgMHhDNiwgMHhEMiwgMHg3OSwgMHgyMCwgMHg5QSwgMHhEQiwgMHhDMCwgMHhGRSwgMHg3OCwgMHhDRCwgMHg1QSwgMHhGNCwKCiAweDFGLCAweERELCAweEE4LCAweDMzLCAweDg4LCAweDA3LCAweEM3LCAweDMxLCAweEIxLCAweDEyLCAweDEwLCAweDU5LCAweDI3LCAweDgwLCAweEVDLCAweDVGLAoKIDB4NjAsIDB4NTEsIDB4N0YsIDB4QTksIDB4MTksIDB4QjUsIDB4NEEsIDB4MEQsIDB4MkQsIDB4RTUsIDB4N0EsIDB4OUYsIDB4OTMsIDB4QzksIDB4OUMsIDB4RUYsCgogMHhBMCwgMHhFMCwgMHgzQiwgMHg0RCwgMHhBRSwgMHgyQSwgMHhGNSwgMHhCMCwgMHhDOCwgMHhFQiwgMHhCQiwgMHgzQywgMHg4MywgMHg1MywgMHg5OSwgMHg2MSwKCiAweDE3LCAweDJCLCAweDA0LCAweDdFLCAweEJBLCAweDc3LCAweEQ2LCAweDI2LCAweEUxLCAweDY5LCAweDE0LCAweDYzLCAweDU1LCAweDIxLCAweDBDLCAweDdEfTsKCgoKbG9jYWwgUk9XX1NISUZUID0gIHsgIDEsICA2LCAxMSwgMTYsICA1LCAxMCwgMTUsICA0LCAgOSwgMTQsICAzLCAgOCwgMTMsICAyLCAgNywgMTIsIH07Cgpsb2NhbCBJUk9XX1NISUZUID0geyAgMSwgMTQsIDExLCAgOCwgIDUsICAyLCAxNSwgMTIsICA5LCAgNiwgIDMsIDE2LCAxMywgMTAsICA3LCAgNCwgfTsKCgoKbG9jYWwgRVRBQkxFID0gewoKIFswXSA9IDB4MDEsIDB4MDMsIDB4MDUsIDB4MEYsIDB4MTEsIDB4MzMsIDB4NTUsIDB4RkYsIDB4MUEsIDB4MkUsIDB4NzIsIDB4OTYsIDB4QTEsIDB4RjgsIDB4MTMsIDB4MzUsCgogMHg1RiwgMHhFMSwgMHgzOCwgMHg0OCwgMHhEOCwgMHg3MywgMHg5NSwgMHhBNCwgMHhGNywgMHgwMiwgMHgwNiwgMHgwQSwgMHgxRSwgMHgyMiwgMHg2NiwgMHhBQSwKCiAweEU1LCAweDM0LCAweDVDLCAweEU0LCAweDM3LCAweDU5LCAweEVCLCAweDI2LCAweDZBLCAweEJFLCAweEQ5LCAweDcwLCAweDkwLCAweEFCLCAweEU2LCAweDMxLAoKIDB4NTMsIDB4RjUsIDB4MDQsIDB4MEMsIDB4MTQsIDB4M0MsIDB4NDQsIDB4Q0MsIDB4NEYsIDB4RDEsIDB4NjgsIDB4QjgsIDB4RDMsIDB4NkUsIDB4QjIsIDB4Q0QsCgogMHg0QywgMHhENCwgMHg2NywgMHhBOSwgMHhFMCwgMHgzQiwgMHg0RCwgMHhENywgMHg2MiwgMHhBNiwgMHhGMSwgMHgwOCwgMHgxOCwgMHgyOCwgMHg3OCwgMHg4OCwKCiAweDgzLCAweDlFLCAweEI5LCAweEQwLCAweDZCLCAweEJELCAweERDLCAweDdGLCAweDgxLCAweDk4LCAweEIzLCAweENFLCAweDQ5LCAweERCLCAweDc2LCAweDlBLAoKIDB4QjUsIDB4QzQsIDB4NTcsIDB4RjksIDB4MTAsIDB4MzAsIDB4NTAsIDB4RjAsIDB4MEIsIDB4MUQsIDB4MjcsIDB4NjksIDB4QkIsIDB4RDYsIDB4NjEsIDB4QTMsCgogMHhGRSwgMHgxOSwgMHgyQiwgMHg3RCwgMHg4NywgMHg5MiwgMHhBRCwgMHhFQywgMHgyRiwgMHg3MSwgMHg5MywgMHhBRSwgMHhFOSwgMHgyMCwgMHg2MCwgMHhBMCwKCiAweEZCLCAweDE2LCAweDNBLCAweDRFLCAweEQyLCAweDZELCAweEI3LCAweEMyLCAweDVELCAweEU3LCAweDMyLCAweDU2LCAweEZBLCAweDE1LCAweDNGLCAweDQxLAoKIDB4QzMsIDB4NUUsIDB4RTIsIDB4M0QsIDB4NDcsIDB4QzksIDB4NDAsIDB4QzAsIDB4NUIsIDB4RUQsIDB4MkMsIDB4NzQsIDB4OUMsIDB4QkYsIDB4REEsIDB4NzUsCgogMHg5RiwgMHhCQSwgMHhENSwgMHg2NCwgMHhBQywgMHhFRiwgMHgyQSwgMHg3RSwgMHg4MiwgMHg5RCwgMHhCQywgMHhERiwgMHg3QSwgMHg4RSwgMHg4OSwgMHg4MCwKCiAweDlCLCAweEI2LCAweEMxLCAweDU4LCAweEU4LCAweDIzLCAweDY1LCAweEFGLCAweEVBLCAweDI1LCAweDZGLCAweEIxLCAweEM4LCAweDQzLCAweEM1LCAweDU0LAoKIDB4RkMsIDB4MUYsIDB4MjEsIDB4NjMsIDB4QTUsIDB4RjQsIDB4MDcsIDB4MDksIDB4MUIsIDB4MkQsIDB4NzcsIDB4OTksIDB4QjAsIDB4Q0IsIDB4NDYsIDB4Q0EsCgogMHg0NSwgMHhDRiwgMHg0QSwgMHhERSwgMHg3OSwgMHg4QiwgMHg4NiwgMHg5MSwgMHhBOCwgMHhFMywgMHgzRSwgMHg0MiwgMHhDNiwgMHg1MSwgMHhGMywgMHgwRSwKCiAweDEyLCAweDM2LCAweDVBLCAweEVFLCAweDI5LCAweDdCLCAweDhELCAweDhDLCAweDhGLCAweDhBLCAweDg1LCAweDk0LCAweEE3LCAweEYyLCAweDBELCAweDE3LAoKIDB4MzksIDB4NEIsIDB4REQsIDB4N0MsIDB4ODQsIDB4OTcsIDB4QTIsIDB4RkQsIDB4MUMsIDB4MjQsIDB4NkMsIDB4QjQsIDB4QzcsIDB4NTIsIDB4RjYsIDB4MDF9OwoKCgpsb2NhbCBMVEFCTEUgPSB7CgogWzBdID0gMHgwMCwgMHgwMCwgMHgxOSwgMHgwMSwgMHgzMiwgMHgwMiwgMHgxQSwgMHhDNiwgMHg0QiwgMHhDNywgMHgxQiwgMHg2OCwgMHgzMywgMHhFRSwgMHhERiwgMHgwMywKCiAweDY0LCAweDA0LCAweEUwLCAweDBFLCAweDM0LCAweDhELCAweDgxLCAweEVGLCAweDRDLCAweDcxLCAweDA4LCAweEM4LCAweEY4LCAweDY5LCAweDFDLCAweEMxLAoKIDB4N0QsIDB4QzIsIDB4MUQsIDB4QjUsIDB4RjksIDB4QjksIDB4MjcsIDB4NkEsIDB4NEQsIDB4RTQsIDB4QTYsIDB4NzIsIDB4OUEsIDB4QzksIDB4MDksIDB4NzgsCgogMHg2NSwgMHgyRiwgMHg4QSwgMHgwNSwgMHgyMSwgMHgwRiwgMHhFMSwgMHgyNCwgMHgxMiwgMHhGMCwgMHg4MiwgMHg0NSwgMHgzNSwgMHg5MywgMHhEQSwgMHg4RSwKCiAweDk2LCAweDhGLCAweERCLCAweEJELCAweDM2LCAweEQwLCAweENFLCAweDk0LCAweDEzLCAweDVDLCAweEQyLCAweEYxLCAweDQwLCAweDQ2LCAweDgzLCAweDM4LAoKIDB4NjYsIDB4REQsIDB4RkQsIDB4MzAsIDB4QkYsIDB4MDYsIDB4OEIsIDB4NjIsIDB4QjMsIDB4MjUsIDB4RTIsIDB4OTgsIDB4MjIsIDB4ODgsIDB4OTEsIDB4MTAsCgogMHg3RSwgMHg2RSwgMHg0OCwgMHhDMywgMHhBMywgMHhCNiwgMHgxRSwgMHg0MiwgMHgzQSwgMHg2QiwgMHgyOCwgMHg1NCwgMHhGQSwgMHg4NSwgMHgzRCwgMHhCQSwKCiAweDJCLCAweDc5LCAweDBBLCAweDE1LCAweDlCLCAweDlGLCAweDVFLCAweENBLCAweDRFLCAweEQ0LCAweEFDLCAweEU1LCAweEYzLCAweDczLCAweEE3LCAweDU3LAoKIDB4QUYsIDB4NTgsIDB4QTgsIDB4NTAsIDB4RjQsIDB4RUEsIDB4RDYsIDB4NzQsIDB4NEYsIDB4QUUsIDB4RTksIDB4RDUsIDB4RTcsIDB4RTYsIDB4QUQsIDB4RTgsCgogMHgyQywgMHhENywgMHg3NSwgMHg3QSwgMHhFQiwgMHgxNiwgMHgwQiwgMHhGNSwgMHg1OSwgMHhDQiwgMHg1RiwgMHhCMCwgMHg5QywgMHhBOSwgMHg1MSwgMHhBMCwKCiAweDdGLCAweDBDLCAweEY2LCAweDZGLCAweDE3LCAweEM0LCAweDQ5LCAweEVDLCAweEQ4LCAweDQzLCAweDFGLCAweDJELCAweEE0LCAweDc2LCAweDdCLCAweEI3LAoKIDB4Q0MsIDB4QkIsIDB4M0UsIDB4NUEsIDB4RkIsIDB4NjAsIDB4QjEsIDB4ODYsIDB4M0IsIDB4NTIsIDB4QTEsIDB4NkMsIDB4QUEsIDB4NTUsIDB4MjksIDB4OUQsCgogMHg5NywgMHhCMiwgMHg4NywgMHg5MCwgMHg2MSwgMHhCRSwgMHhEQywgMHhGQywgMHhCQywgMHg5NSwgMHhDRiwgMHhDRCwgMHgzNywgMHgzRiwgMHg1QiwgMHhEMSwKCiAweDUzLCAweDM5LCAweDg0LCAweDNDLCAweDQxLCAweEEyLCAweDZELCAweDQ3LCAweDE0LCAweDJBLCAweDlFLCAweDVELCAweDU2LCAweEYyLCAweEQzLCAweEFCLAoKIDB4NDQsIDB4MTEsIDB4OTIsIDB4RDksIDB4MjMsIDB4MjAsIDB4MkUsIDB4ODksIDB4QjQsIDB4N0MsIDB4QjgsIDB4MjYsIDB4NzcsIDB4OTksIDB4RTMsIDB4QTUsCgogMHg2NywgMHg0QSwgMHhFRCwgMHhERSwgMHhDNSwgMHgzMSwgMHhGRSwgMHgxOCwgMHgwRCwgMHg2MywgMHg4QywgMHg4MCwgMHhDMCwgMHhGNywgMHg3MCwgMHgwN307CgoKCmxvY2FsIE1JWFRBQkxFID0gewoKIDB4MDIsIDB4MDMsIDB4MDEsIDB4MDEsCgogMHgwMSwgMHgwMiwgMHgwMywgMHgwMSwKCiAweDAxLCAweDAxLCAweDAyLCAweDAzLAoKIDB4MDMsIDB4MDEsIDB4MDEsIDB4MDJ9OwoKCgpsb2NhbCBJTUlYVEFCTEUgPSB7CgogMHgwRSwgMHgwQiwgMHgwRCwgMHgwOSwKCiAweDA5LCAweDBFLCAweDBCLCAweDBELAoKIDB4MEQsIDB4MDksIDB4MEUsIDB4MEIsCgogMHgwQiwgMHgwRCwgMHgwOSwgMHgwRX07CgoKCmxvY2FsIFJDT04gPSB7CgpbMF0gPSAweDhkLCAweDAxLCAweDAyLCAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwLCAweDgwLCAweDFiLCAweDM2LCAweDZjLCAweGQ4LCAweGFiLCAweDRkLCAweDlhLAoKMHgyZiwgMHg1ZSwgMHhiYywgMHg2MywgMHhjNiwgMHg5NywgMHgzNSwgMHg2YSwgMHhkNCwgMHhiMywgMHg3ZCwgMHhmYSwgMHhlZiwgMHhjNSwgMHg5MSwgMHgzOSwKCjB4NzIsIDB4ZTQsIDB4ZDMsIDB4YmQsIDB4NjEsIDB4YzIsIDB4OWYsIDB4MjUsIDB4NGEsIDB4OTQsIDB4MzMsIDB4NjYsIDB4Y2MsIDB4ODMsIDB4MWQsIDB4M2EsCgoweDc0LCAweGU4LCAweGNiLCAweDhkLCAweDAxLCAweDAyLCAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwLCAweDgwLCAweDFiLCAweDM2LCAweDZjLCAweGQ4LAoKMHhhYiwgMHg0ZCwgMHg5YSwgMHgyZiwgMHg1ZSwgMHhiYywgMHg2MywgMHhjNiwgMHg5NywgMHgzNSwgMHg2YSwgMHhkNCwgMHhiMywgMHg3ZCwgMHhmYSwgMHhlZiwKCjB4YzUsIDB4OTEsIDB4MzksIDB4NzIsIDB4ZTQsIDB4ZDMsIDB4YmQsIDB4NjEsIDB4YzIsIDB4OWYsIDB4MjUsIDB4NGEsIDB4OTQsIDB4MzMsIDB4NjYsIDB4Y2MsCgoweDgzLCAweDFkLCAweDNhLCAweDc0LCAweGU4LCAweGNiLCAweDhkLCAweDAxLCAweDAyLCAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwLCAweDgwLCAweDFiLAoKMHgzNiwgMHg2YywgMHhkOCwgMHhhYiwgMHg0ZCwgMHg5YSwgMHgyZiwgMHg1ZSwgMHhiYywgMHg2MywgMHhjNiwgMHg5NywgMHgzNSwgMHg2YSwgMHhkNCwgMHhiMywKCjB4N2QsIDB4ZmEsIDB4ZWYsIDB4YzUsIDB4OTEsIDB4MzksIDB4NzIsIDB4ZTQsIDB4ZDMsIDB4YmQsIDB4NjEsIDB4YzIsIDB4OWYsIDB4MjUsIDB4NGEsIDB4OTQsCgoweDMzLCAweDY2LCAweGNjLCAweDgzLCAweDFkLCAweDNhLCAweDc0LCAweGU4LCAweGNiLCAweDhkLCAweDAxLCAweDAyLCAweDA0LCAweDA4LCAweDEwLCAweDIwLAoKMHg0MCwgMHg4MCwgMHgxYiwgMHgzNiwgMHg2YywgMHhkOCwgMHhhYiwgMHg0ZCwgMHg5YSwgMHgyZiwgMHg1ZSwgMHhiYywgMHg2MywgMHhjNiwgMHg5NywgMHgzNSwKCjB4NmEsIDB4ZDQsIDB4YjMsIDB4N2QsIDB4ZmEsIDB4ZWYsIDB4YzUsIDB4OTEsIDB4MzksIDB4NzIsIDB4ZTQsIDB4ZDMsIDB4YmQsIDB4NjEsIDB4YzIsIDB4OWYsCgoweDI1LCAweDRhLCAweDk0LCAweDMzLCAweDY2LCAweGNjLCAweDgzLCAweDFkLCAweDNhLCAweDc0LCAweGU4LCAweGNiLCAweDhkLCAweDAxLCAweDAyLCAweDA0LAoKMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwgMHgxYiwgMHgzNiwgMHg2YywgMHhkOCwgMHhhYiwgMHg0ZCwgMHg5YSwgMHgyZiwgMHg1ZSwgMHhiYywgMHg2MywKCjB4YzYsIDB4OTcsIDB4MzUsIDB4NmEsIDB4ZDQsIDB4YjMsIDB4N2QsIDB4ZmEsIDB4ZWYsIDB4YzUsIDB4OTEsIDB4MzksIDB4NzIsIDB4ZTQsIDB4ZDMsIDB4YmQsCgoweDYxLCAweGMyLCAweDlmLCAweDI1LCAweDRhLCAweDk0LCAweDMzLCAweDY2LCAweGNjLCAweDgzLCAweDFkLCAweDNhLCAweDc0LCAweGU4LCAweGNiLCAweDhkfTsKCgoKCgpsb2NhbCBHTVVMID0gZnVuY3Rpb24oQSwgQikKCiAgICBpZihBID09IDB4MDEpIHRoZW4gcmV0dXJuIEI7IGVuZAoKICAgIGlmKEIgPT0gMHgwMSkgdGhlbiByZXR1cm4gQTsgZW5kCgogICAgaWYoQSA9PSAweDAwKSB0aGVuIHJldHVybiAwOyBlbmQKCiAgICBpZihCID09IDB4MDApIHRoZW4gcmV0dXJuIDA7IGVuZAoKCgogICAgbG9jYWwgTEEgPSBMVEFCTEVbQV07CgogICAgbG9jYWwgTEIgPSBMVEFCTEVbQl07CgoKCiAgICBsb2NhbCBzdW0gPSBMQSArIExCOwoKICAgIGlmIChzdW0gPiAweEZGKSB0aGVuIHN1bSA9IHN1bSAtIDB4RkY7IGVuZAoKCgogICAgcmV0dXJuIEVUQUJMRVtzdW1dOwoKZW5kCgoKCmxvY2FsIGJ5dGVTdWIgPSBBcnJheS5zdWJzdGl0dXRlOwoKCgpsb2NhbCBzaGlmdFJvdyA9IEFycmF5LnBlcm11dGU7CgoKCmxvY2FsIG1peENvbCA9IGZ1bmN0aW9uKGksIG1peCkKCiAgICBsb2NhbCBvdXQgPSB7fTsKCgoKICAgIGxvY2FsIGEsIGIsIGMsIGQ7CgoKCiAgICBhID0gR01VTChpWyAxXSwgbWl4WyAxXSk7CgogICAgYiA9IEdNVUwoaVsgMl0sIG1peFsgMl0pOwoKICAgIGMgPSBHTVVMKGlbIDNdLCBtaXhbIDNdKTsKCiAgICBkID0gR01VTChpWyA0XSwgbWl4WyA0XSk7CgogICAgb3V0WyAxXSA9IFhPUihYT1IoYSwgYiksIFhPUihjLCBkKSk7CgogICAgYSA9IEdNVUwoaVsgMV0sIG1peFsgNV0pOwoKICAgIGIgPSBHTVVMKGlbIDJdLCBtaXhbIDZdKTsKCiAgICBjID0gR01VTChpWyAzXSwgbWl4WyA3XSk7CgogICAgZCA9IEdNVUwoaVsgNF0sIG1peFsgOF0pOwoKICAgIG91dFsgMl0gPSBYT1IoWE9SKGEsIGIpLCBYT1IoYywgZCkpOwoKICAgIGEgPSBHTVVMKGlbIDFdLCBtaXhbIDldKTsKCiAgICBiID0gR01VTChpWyAyXSwgbWl4WzEwXSk7CgogICAgYyA9IEdNVUwoaVsgM10sIG1peFsxMV0pOwoKICAgIGQgPSBHTVVMKGlbIDRdLCBtaXhbMTJdKTsKCiAgICBvdXRbIDNdID0gWE9SKFhPUihhLCBiKSwgWE9SKGMsIGQpKTsKCiAgICBhID0gR01VTChpWyAxXSwgbWl4WzEzXSk7CgogICAgYiA9IEdNVUwoaVsgMl0sIG1peFsxNF0pOwoKICAgIGMgPSBHTVVMKGlbIDNdLCBtaXhbMTVdKTsKCiAgICBkID0gR01VTChpWyA0XSwgbWl4WzE2XSk7CgogICAgb3V0WyA0XSA9IFhPUihYT1IoYSwgYiksIFhPUihjLCBkKSk7CgoKCgoKICAgIGEgPSBHTVVMKGlbIDVdLCBtaXhbIDFdKTsKCiAgICBiID0gR01VTChpWyA2XSwgbWl4WyAyXSk7CgogICAgYyA9IEdNVUwoaVsgN10sIG1peFsgM10pOwoKICAgIGQgPSBHTVVMKGlbIDhdLCBtaXhbIDRdKTsKCiAgICBvdXRbIDVdID0gWE9SKFhPUihhLCBiKSwgWE9SKGMsIGQpKTsKCiAgICBhID0gR01VTChpWyA1XSwgbWl4WyA1XSk7CgogICAgYiA9IEdNVUwoaVsgNl0sIG1peFsgNl0pOwoKICAgIGMgPSBHTVVMKGlbIDddLCBtaXhbIDddKTsKCiAgICBkID0gR01VTChpWyA4XSwgbWl4WyA4XSk7CgogICAgb3V0WyA2XSA9IFhPUihYT1IoYSwgYiksIFhPUihjLCBkKSk7CgogICAgYSA9IEdNVUwoaVsgNV0sIG1peFsgOV0pOwoKICAgIGIgPSBHTVVMKGlbIDZdLCBtaXhbMTBdKTsKCiAgICBjID0gR01VTChpWyA3XSwgbWl4WzExXSk7CgogICAgZCA9IEdNVUwoaVsgOF0sIG1peFsxMl0pOwoKICAgIG91dFsgN10gPSBYT1IoWE9SKGEsIGIpLCBYT1IoYywgZCkpOwoKICAgIGEgPSBHTVVMKGlbIDVdLCBtaXhbMTNdKTsKCiAgICBiID0gR01VTChpWyA2XSwgbWl4WzE0XSk7CgogICAgYyA9IEdNVUwoaVsgN10sIG1peFsxNV0pOwoKICAgIGQgPSBHTVVMKGlbIDhdLCBtaXhbMTZdKTsKCiAgICBvdXRbIDhdID0gWE9SKFhPUihhLCBiKSwgWE9SKGMsIGQpKTsKCgoKCgogICAgYSA9IEdNVUwoaVsgOV0sIG1peFsgMV0pOwoKICAgIGIgPSBHTVVMKGlbMTBdLCBtaXhbIDJdKTsKCiAgICBjID0gR01VTChpWzExXSwgbWl4WyAzXSk7CgogICAgZCA9IEdNVUwoaVsxMl0sIG1peFsgNF0pOwoKICAgIG91dFsgOV0gPSBYT1IoWE9SKGEsIGIpLCBYT1IoYywgZCkpOwoKICAgIGEgPSBHTVVMKGlbIDldLCBtaXhbIDVdKTsKCiAgICBiID0gR01VTChpWzEwXSwgbWl4WyA2XSk7CgogICAgYyA9IEdNVUwoaVsxMV0sIG1peFsgN10pOwoKICAgIGQgPSBHTVVMKGlbMTJdLCBtaXhbIDhdKTsKCiAgICBvdXRbMTBdID0gWE9SKFhPUihhLCBiKSwgWE9SKGMsIGQpKTsKCiAgICBhID0gR01VTChpWyA5XSwgbWl4WyA5XSk7CgogICAgYiA9IEdNVUwoaVsxMF0sIG1peFsxMF0pOwoKICAgIGMgPSBHTVVMKGlbMTFdLCBtaXhbMTFdKTsKCiAgICBkID0gR01VTChpWzEyXSwgbWl4WzEyXSk7CgogICAgb3V0WzExXSA9IFhPUihYT1IoYSwgYiksIFhPUihjLCBkKSk7CgogICAgYSA9IEdNVUwoaVsgOV0sIG1peFsxM10pOwoKICAgIGIgPSBHTVVMKGlbMTBdLCBtaXhbMTRdKTsKCiAgICBjID0gR01VTChpWzExXSwgbWl4WzE1XSk7CgogICAgZCA9IEdNVUwoaVsxMl0sIG1peFsxNl0pOwoKICAgIG91dFsxMl0gPSBYT1IoWE9SKGEsIGIpLCBYT1IoYywgZCkpOwoKCgoKCiAgICBhID0gR01VTChpWzEzXSwgbWl4WyAxXSk7CgogICAgYiA9IEdNVUwoaVsxNF0sIG1peFsgMl0pOwoKICAgIGMgPSBHTVVMKGlbMTVdLCBtaXhbIDNdKTsKCiAgICBkID0gR01VTChpWzE2XSwgbWl4WyA0XSk7CgogICAgb3V0WzEzXSA9IFhPUihYT1IoYSwgYiksIFhPUihjLCBkKSk7CgogICAgYSA9IEdNVUwoaVsxM10sIG1peFsgNV0pOwoKICAgIGIgPSBHTVVMKGlbMTRdLCBtaXhbIDZdKTsKCiAgICBjID0gR01VTChpWzE1XSwgbWl4WyA3XSk7CgogICAgZCA9IEdNVUwoaVsxNl0sIG1peFsgOF0pOwoKICAgIG91dFsxNF0gPSBYT1IoWE9SKGEsIGIpLCBYT1IoYywgZCkpOwoKICAgIGEgPSBHTVVMKGlbMTNdLCBtaXhbIDldKTsKCiAgICBiID0gR01VTChpWzE0XSwgbWl4WzEwXSk7CgogICAgYyA9IEdNVUwoaVsxNV0sIG1peFsxMV0pOwoKICAgIGQgPSBHTVVMKGlbMTZdLCBtaXhbMTJdKTsKCiAgICBvdXRbMTVdID0gWE9SKFhPUihhLCBiKSwgWE9SKGMsIGQpKTsKCiAgICBhID0gR01VTChpWzEzXSwgbWl4WzEzXSk7CgogICAgYiA9IEdNVUwoaVsxNF0sIG1peFsxNF0pOwoKICAgIGMgPSBHTVVMKGlbMTVdLCBtaXhbMTVdKTsKCiAgICBkID0gR01VTChpWzE2XSwgbWl4WzE2XSk7CgogICAgb3V0WzE2XSA9IFhPUihYT1IoYSwgYiksIFhPUihjLCBkKSk7CgoKCiAgICByZXR1cm4gb3V0OwoKZW5kCgoKCmxvY2FsIGtleVJvdW5kID0gZnVuY3Rpb24oa2V5LCByb3VuZCkKCiAgICBsb2NhbCBpID0gKHJvdW5kIC0gMSkgKiAzMjsKCiAgICBsb2NhbCBvdXQgPSBrZXk7CgoKCiAgICBvdXRbMzMgKyBpXSA9IFhPUihrZXlbIDEgKyBpXSwgWE9SKFNCT1hba2V5WzMwICsgaV1dLCBSQ09OW3JvdW5kXSkpOwoKICAgIG91dFszNCArIGldID0gWE9SKGtleVsgMiArIGldLCBTQk9YW2tleVszMSArIGldXSk7CgogICAgb3V0WzM1ICsgaV0gPSBYT1Ioa2V5WyAzICsgaV0sIFNCT1hba2V5WzMyICsgaV1dKTsKCiAgICBvdXRbMzYgKyBpXSA9IFhPUihrZXlbIDQgKyBpXSwgU0JPWFtrZXlbMjkgKyBpXV0pOwoKCgogICAgb3V0WzM3ICsgaV0gPSBYT1Iob3V0WzMzICsgaV0sIGtleVsgNSArIGldKTsKCiAgICBvdXRbMzggKyBpXSA9IFhPUihvdXRbMzQgKyBpXSwga2V5WyA2ICsgaV0pOwoKICAgIG91dFszOSArIGldID0gWE9SKG91dFszNSArIGldLCBrZXlbIDcgKyBpXSk7CgogICAgb3V0WzQwICsgaV0gPSBYT1Iob3V0WzM2ICsgaV0sIGtleVsgOCArIGldKTsKCgoKICAgIG91dFs0MSArIGldID0gWE9SKG91dFszNyArIGldLCBrZXlbIDkgKyBpXSk7CgogICAgb3V0WzQyICsgaV0gPSBYT1Iob3V0WzM4ICsgaV0sIGtleVsxMCArIGldKTsKCiAgICBvdXRbNDMgKyBpXSA9IFhPUihvdXRbMzkgKyBpXSwga2V5WzExICsgaV0pOwoKICAgIG91dFs0NCArIGldID0gWE9SKG91dFs0MCArIGldLCBrZXlbMTIgKyBpXSk7CgoKCiAgICBvdXRbNDUgKyBpXSA9IFhPUihvdXRbNDEgKyBpXSwga2V5WzEzICsgaV0pOwoKICAgIG91dFs0NiArIGldID0gWE9SKG91dFs0MiArIGldLCBrZXlbMTQgKyBpXSk7CgogICAgb3V0WzQ3ICsgaV0gPSBYT1Iob3V0WzQzICsgaV0sIGtleVsxNSArIGldKTsKCiAgICBvdXRbNDggKyBpXSA9IFhPUihvdXRbNDQgKyBpXSwga2V5WzE2ICsgaV0pOwoKCgoKCiAgICBvdXRbNDkgKyBpXSA9IFhPUihTQk9YW291dFs0NSArIGldXSwga2V5WzE3ICsgaV0pOwoKICAgIG91dFs1MCArIGldID0gWE9SKFNCT1hbb3V0WzQ2ICsgaV1dLCBrZXlbMTggKyBpXSk7CgogICAgb3V0WzUxICsgaV0gPSBYT1IoU0JPWFtvdXRbNDcgKyBpXV0sIGtleVsxOSArIGldKTsKCiAgICBvdXRbNTIgKyBpXSA9IFhPUihTQk9YW291dFs0OCArIGldXSwga2V5WzIwICsgaV0pOwoKCgogICAgb3V0WzUzICsgaV0gPSBYT1Iob3V0WzQ5ICsgaV0sIGtleVsyMSArIGldKTsKCiAgICBvdXRbNTQgKyBpXSA9IFhPUihvdXRbNTAgKyBpXSwga2V5WzIyICsgaV0pOwoKICAgIG91dFs1NSArIGldID0gWE9SKG91dFs1MSArIGldLCBrZXlbMjMgKyBpXSk7CgogICAgb3V0WzU2ICsgaV0gPSBYT1Iob3V0WzUyICsgaV0sIGtleVsyNCArIGldKTsKCgoKICAgIG91dFs1NyArIGldID0gWE9SKG91dFs1MyArIGldLCBrZXlbMjUgKyBpXSk7CgogICAgb3V0WzU4ICsgaV0gPSBYT1Iob3V0WzU0ICsgaV0sIGtleVsyNiArIGldKTsKCiAgICBvdXRbNTkgKyBpXSA9IFhPUihvdXRbNTUgKyBpXSwga2V5WzI3ICsgaV0pOwoKICAgIG91dFs2MCArIGldID0gWE9SKG91dFs1NiArIGldLCBrZXlbMjggKyBpXSk7CgoKCiAgICBvdXRbNjEgKyBpXSA9IFhPUihvdXRbNTcgKyBpXSwga2V5WzI5ICsgaV0pOwoKICAgIG91dFs2MiArIGldID0gWE9SKG91dFs1OCArIGldLCBrZXlbMzAgKyBpXSk7CgogICAgb3V0WzYzICsgaV0gPSBYT1Iob3V0WzU5ICsgaV0sIGtleVszMSArIGldKTsKCiAgICBvdXRbNjQgKyBpXSA9IFhPUihvdXRbNjAgKyBpXSwga2V5WzMyICsgaV0pOwoKCgogICAgcmV0dXJuIG91dDsKCmVuZAoKCgpsb2NhbCBrZXlFeHBhbmQgPSBmdW5jdGlvbihrZXkpCgogICAgbG9jYWwgYnl0ZXMgPSBBcnJheS5jb3B5KGtleSk7CgoKCiAgICBmb3IgaSA9IDEsIDcgZG8KCiAgICAgICAga2V5Um91bmQoYnl0ZXMsIGkpOwoKICAgIGVuZAoKCgogICAgbG9jYWwga2V5cyA9IHt9OwoKCgogICAga2V5c1sgMV0gPSBBcnJheS5zbGljZShieXRlcywgMSwgMTYpOwoKICAgIGtleXNbIDJdID0gQXJyYXkuc2xpY2UoYnl0ZXMsIDE3LCAzMik7CgogICAga2V5c1sgM10gPSBBcnJheS5zbGljZShieXRlcywgMzMsIDQ4KTsKCiAgICBrZXlzWyA0XSA9IEFycmF5LnNsaWNlKGJ5dGVzLCA0OSwgNjQpOwoKICAgIGtleXNbIDVdID0gQXJyYXkuc2xpY2UoYnl0ZXMsIDY1LCA4MCk7CgogICAga2V5c1sgNl0gPSBBcnJheS5zbGljZShieXRlcywgODEsIDk2KTsKCiAgICBrZXlzWyA3XSA9IEFycmF5LnNsaWNlKGJ5dGVzLCA5NywgMTEyKTsKCiAgICBrZXlzWyA4XSA9IEFycmF5LnNsaWNlKGJ5dGVzLCAxMTMsIDEyOCk7CgogICAga2V5c1sgOV0gPSBBcnJheS5zbGljZShieXRlcywgMTI5LCAxNDQpOwoKICAgIGtleXNbMTBdID0gQXJyYXkuc2xpY2UoYnl0ZXMsIDE0NSwgMTYwKTsKCiAgICBrZXlzWzExXSA9IEFycmF5LnNsaWNlKGJ5dGVzLCAxNjEsIDE3Nik7CgogICAga2V5c1sxMl0gPSBBcnJheS5zbGljZShieXRlcywgMTc3LCAxOTIpOwoKICAgIGtleXNbMTNdID0gQXJyYXkuc2xpY2UoYnl0ZXMsIDE5MywgMjA4KTsKCiAgICBrZXlzWzE0XSA9IEFycmF5LnNsaWNlKGJ5dGVzLCAyMDksIDIyNCk7CgogICAga2V5c1sxNV0gPSBBcnJheS5zbGljZShieXRlcywgMjI1LCAyNDApOwoKCgogICAgcmV0dXJuIGtleXM7CgoKCmVuZAoKCgpsb2NhbCBhZGRLZXkgPSBBcnJheS5YT1I7CgoKCgoKCgpsb2NhbCBBRVMgPSB7fTsKCgoKQUVTLmJsb2NrU2l6ZSA9IDE2OwoKCgpBRVMuZW5jcnlwdCA9IGZ1bmN0aW9uKGtleSwgYmxvY2spCgoKCiAgICBsb2NhbCBrZXlTY2hlZHVsZSA9IGtleUV4cGFuZChrZXkpOwoKCgogICAgLS1yb3VuZCAwCgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzFdKTsKCgoKICAgIC0tcm91bmQgMQoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgU0JPWCk7CgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgUk9XX1NISUZUKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgTUlYVEFCTEUpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVsyXSk7CgoKCiAgICAtLXJvdW5kIDIKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIFNCT1gpOwoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIFJPV19TSElGVCk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIE1JWFRBQkxFKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbM10pOwoKCgogICAgLS1yb3VuZCAzCgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBTQk9YKTsKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBNSVhUQUJMRSk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzRdKTsKCgoKICAgIC0tcm91bmQgNAoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgU0JPWCk7CgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgUk9XX1NISUZUKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgTUlYVEFCTEUpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVs1XSk7CgoKCiAgICAtLXJvdW5kIDUKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIFNCT1gpOwoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIFJPV19TSElGVCk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIE1JWFRBQkxFKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbNl0pOwoKCgogICAgLS1yb3VuZCA2CgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBTQk9YKTsKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBNSVhUQUJMRSk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzddKTsKCgoKICAgIC0tcm91bmQgNwoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgU0JPWCk7CgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgUk9XX1NISUZUKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgTUlYVEFCTEUpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVs4XSk7CgoKCiAgICAtLXJvdW5kIDgKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIFNCT1gpOwoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIFJPV19TSElGVCk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIE1JWFRBQkxFKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbOV0pOwoKCgogICAgLS1yb3VuZCA5CgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBTQk9YKTsKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBNSVhUQUJMRSk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzEwXSk7CgoKCiAgICAtLXJvdW5kIDEwCgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBTQk9YKTsKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBNSVhUQUJMRSk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzExXSk7CgoKCiAgICAtLXJvdW5kIDExCgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBTQk9YKTsKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBNSVhUQUJMRSk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzEyXSk7CgoKCiAgICAtLXJvdW5kIDEyCgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBTQk9YKTsKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBNSVhUQUJMRSk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzEzXSk7CgoKCiAgICAtLXJvdW5kIDEzCgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBTQk9YKTsKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBNSVhUQUJMRSk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzE0XSk7CgoKCiAgICAtLXJvdW5kIDE0CgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBTQk9YKTsKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVsxNV0pOwoKCgogICAgcmV0dXJuIGJsb2NrOwoKCgplbmQKCgoKQUVTLmRlY3J5cHQgPSBmdW5jdGlvbihrZXksIGJsb2NrKQoKCgogICAgbG9jYWwga2V5U2NoZWR1bGUgPSBrZXlFeHBhbmQoa2V5KTsKCgoKICAgIC0tcm91bmQgMAoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVsxNV0pOwoKCgogICAgLS1yb3VuZCAxCgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgSVJPV19TSElGVCk7CgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBJU0JPWCk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzE0XSk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIElNSVhUQUJMRSk7CgoKCiAgICAtLXJvdW5kIDIKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBJUk9XX1NISUZUKTsKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIElTQk9YKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbMTNdKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgSU1JWFRBQkxFKTsKCgoKICAgIC0tcm91bmQgMwoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIElST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgSVNCT1gpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVsxMl0pOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBJTUlYVEFCTEUpOwoKCgogICAgLS1yb3VuZCA0CgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgSVJPV19TSElGVCk7CgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBJU0JPWCk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzExXSk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIElNSVhUQUJMRSk7CgoKCiAgICAtLXJvdW5kIDUKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBJUk9XX1NISUZUKTsKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIElTQk9YKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbMTBdKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgSU1JWFRBQkxFKTsKCgoKICAgIC0tcm91bmQgNgoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIElST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgSVNCT1gpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVs5XSk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIElNSVhUQUJMRSk7CgoKCiAgICAtLXJvdW5kIDcKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBJUk9XX1NISUZUKTsKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIElTQk9YKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbOF0pOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBJTUlYVEFCTEUpOwoKCgogICAgLS1yb3VuZCA4CgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgSVJPV19TSElGVCk7CgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBJU0JPWCk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzddKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgSU1JWFRBQkxFKTsKCgoKICAgIC0tcm91bmQgOQoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIElST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgSVNCT1gpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVs2XSk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIElNSVhUQUJMRSk7CgoKCiAgICAtLXJvdW5kIDEwCgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgSVJPV19TSElGVCk7CgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBJU0JPWCk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzVdKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgSU1JWFRBQkxFKTsKCgoKICAgIC0tcm91bmQgMTEKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBJUk9XX1NISUZUKTsKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIElTQk9YKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbNF0pOwoKICAgIGJsb2NrID0gbWl4Q29sKGJsb2NrLCBJTUlYVEFCTEUpOwoKCgogICAgLS1yb3VuZCAxMgoKICAgIGJsb2NrID0gc2hpZnRSb3coYmxvY2ssIElST1dfU0hJRlQpOwoKICAgIGJsb2NrID0gYnl0ZVN1YihibG9jaywgSVNCT1gpOwoKICAgIGJsb2NrID0gYWRkS2V5KGJsb2NrLCBrZXlTY2hlZHVsZVszXSk7CgogICAgYmxvY2sgPSBtaXhDb2woYmxvY2ssIElNSVhUQUJMRSk7CgoKCiAgICAtLXJvdW5kIDEzCgogICAgYmxvY2sgPSBzaGlmdFJvdyhibG9jaywgSVJPV19TSElGVCk7CgogICAgYmxvY2sgPSBieXRlU3ViKGJsb2NrLCBJU0JPWCk7CgogICAgYmxvY2sgPSBhZGRLZXkoYmxvY2ssIGtleVNjaGVkdWxlWzJdKTsKCiAgICBibG9jayA9IG1peENvbChibG9jaywgSU1JWFRBQkxFKTsKCgoKICAgIC0tcm91bmQgMTQKCiAgICBibG9jayA9IHNoaWZ0Um93KGJsb2NrLCBJUk9XX1NISUZUKTsKCiAgICBibG9jayA9IGJ5dGVTdWIoYmxvY2ssIElTQk9YKTsKCiAgICBibG9jayA9IGFkZEtleShibG9jaywga2V5U2NoZWR1bGVbMV0pOwoKCgogICAgcmV0dXJuIGJsb2NrOwoKZW5kCgoKCnJldHVybiBBRVM7AAAAAGxvY2FsIGlzc2FjID0gcmVxdWlyZSgiLmNyeXB0by5jaXBoZXIuaXNzYWMiKQoKbG9jYWwgbW9ydXMgPSByZXF1aXJlKCIuY3J5cHRvLmNpcGhlci5tb3J1cyIpCgpsb2NhbCBhZXMgPSByZXF1aXJlKCIuY3J5cHRvLmNpcGhlci5hZXMiKQoKbG9jYWwgbm9yeCA9IHJlcXVpcmUoIi5jcnlwdG8uY2lwaGVyLm5vcngiKQoKCgpsb2NhbCBjaXBoZXIgPSB7CgogICAgX3ZlcnNpb24gPSAiMC4wLjEiLAoKICAgIGlzc2FjID0gaXNzYWMsCgogICAgbW9ydXMgPSBtb3J1cywKCiAgICBhZXMgPSBhZXMsCgogICAgbm9yeCA9IG5vcngKCn07CgoKCnJldHVybiBjaXBoZXIAbG9jYWwgSGV4ID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLmhleCIpOwoKCgotLSBFeHRlcm5hbCBSZXN1bHRzCgpsb2NhbCByYW5kUnNsID0ge307Cgpsb2NhbCByYW5kQ250ID0gMDsKCgoKLS0gSW50ZXJuYWwgU3RhdGUKCmxvY2FsIG1tID0ge307Cgpsb2NhbCBhYSxiYixjYyA9IDAsMCwwOwoKCgotLSBDYXAgdG8gbWFpbnRhaW4gMzIgYml0IG1hdGhzCgpsb2NhbCBjYXAgPSAweDEwMDAwMDAwMDsKCgoKLS0gQ2lwaGVyTW9kZQoKbG9jYWwgRU5DUllQVCA9IDE7Cgpsb2NhbCBERUNSWVBUID0gMjsKCgoKbG9jYWwgZnVuY3Rpb24gaXNhYWMoKQoKICBjYyA9ICggY2MgKyAxICApICUgY2FwOyAtLSBjYyBqdXN0IGdldHMgaW5jcmVtZW50ZWQgb25jZSBwZXIgMjU2IHJlc3VsdHMKCiAgYmIgPSAoIGJiICsgY2MgKSAlIGNhcDsgLS0gdGhlbiBjb21iaW5lZCB3aXRoIGJiCgoKCiAgZm9yIGkgPSAwLDI1NSBkbwoKICAgIGxvY2FsICAgeCAgICA9IG1tW2ldOwoKICAgIGxvY2FsICAgeTsKCiAgICBsb2NhbCAgIGltb2QgPSBpICUgNDsKCiAgICBpZiAgICAgIGltb2QgPT0gMCB0aGVuIGFhID0gYWEgfiAoYWEgPDwgMTMpOwoKICAgIGVsc2VpZiAgaW1vZCA9PSAxIHRoZW4gYWEgPSBhYSB+IChhYSA+PiA2KTsKCiAgICBlbHNlaWYgIGltb2QgPT0gMiB0aGVuIGFhID0gYWEgfiAoYWEgPDwgMik7CgogICAgZWxzZWlmICBpbW9kID09IDMgdGhlbiBhYSA9IGFhIH4gKGFhID4+IDE2KTsKCiAgICBlbmQKCiAgICBhYSAgICAgICAgID0gKCBtbVsoaSsxMjgpJTI1Nl0gKyBhYSApICUgY2FwOwoKICAgIHkgICAgICAgICAgPSAoIG1tWyh4Pj4yKSAlIDI1Nl0gKyBhYSArIGJiICkgJSBjYXA7CgogICAgbW1baV0gICAgICA9IHk7CgogICAgYmIgICAgICAgICA9ICggbW1bKHk+PjEwKSUyNTZdICsgeCApICUgY2FwOwoKICAgIHJhbmRSc2xbaV0gPSBiYjsKCiAgZW5kCgoKCiAgcmFuZENudCA9IDA7IC0tIFByZXBhcmUgdG8gdXNlIHRoZSBmaXJzdCBzZXQgb2YgcmVzdWx0cy4KCgoKZW5kCgoKCmxvY2FsIGZ1bmN0aW9uIG1peChhKQoKICBhWzBdID0gKCBhWzBdIH4gKCBhWzFdIDw8IDExICkgKSAlIGNhcDsgIGFbM10gPSAoIGFbM10gKyBhWzBdICkgJSBjYXA7ICBhWzFdID0gKCBhWzFdICsgYVsyXSApICUgY2FwOwoKICBhWzFdID0gKCBhWzFdIH4gKCBhWzJdID4+ICAyICkgKSAlIGNhcDsgIGFbNF0gPSAoIGFbNF0gKyBhWzFdICkgJSBjYXA7ICBhWzJdID0gKCBhWzJdICsgYVszXSApICUgY2FwOwoKICBhWzJdID0gKCBhWzJdIH4gKCBhWzNdIDw8ICA4ICkgKSAlIGNhcDsgIGFbNV0gPSAoIGFbNV0gKyBhWzJdICkgJSBjYXA7ICBhWzNdID0gKCBhWzNdICsgYVs0XSApICUgY2FwOwoKICBhWzNdID0gKCBhWzNdIH4gKCBhWzRdID4+IDE2ICkgKSAlIGNhcDsgIGFbNl0gPSAoIGFbNl0gKyBhWzNdICkgJSBjYXA7ICBhWzRdID0gKCBhWzRdICsgYVs1XSApICUgY2FwOwoKICBhWzRdID0gKCBhWzRdIH4gKCBhWzVdIDw8IDEwICkgKSAlIGNhcDsgIGFbN10gPSAoIGFbN10gKyBhWzRdICkgJSBjYXA7ICBhWzVdID0gKCBhWzVdICsgYVs2XSApICUgY2FwOwoKICBhWzVdID0gKCBhWzVdIH4gKCBhWzZdID4+ICA0ICkgKSAlIGNhcDsgIGFbMF0gPSAoIGFbMF0gKyBhWzVdICkgJSBjYXA7ICBhWzZdID0gKCBhWzZdICsgYVs3XSApICUgY2FwOwoKICBhWzZdID0gKCBhWzZdIH4gKCBhWzddIDw8ICA4ICkgKSAlIGNhcDsgIGFbMV0gPSAoIGFbMV0gKyBhWzZdICkgJSBjYXA7ICBhWzddID0gKCBhWzddICsgYVswXSApICUgY2FwOwoKICBhWzddID0gKCBhWzddIH4gKCBhWzBdID4+ICA5ICkgKSAlIGNhcDsgIGFbMl0gPSAoIGFbMl0gKyBhWzddICkgJSBjYXA7ICBhWzBdID0gKCBhWzBdICsgYVsxXSApICUgY2FwOwoKZW5kCgoKCmxvY2FsIGZ1bmN0aW9uIHJhbmRJbml0KGZsYWcpCgoKCiAgLS0gVGhlIGdvbGRlbiByYXRpbyBpbiAzMiBiaXQKCiAgLS0gbWF0aC5mbG9vcigoKChtYXRoLnNxcnQoNSkrMSkvMiklMSkqMl4zMikgPT0gMjY1NDQzNTc2OSA9PSAweDllMzc3OWI5CgogIGxvY2FsIGEgPSB7IFswXSA9IDB4OWUzNzc5YjksIDB4OWUzNzc5YjksIDB4OWUzNzc5YjksIDB4OWUzNzc5YjksIDB4OWUzNzc5YjksIDB4OWUzNzc5YjksIDB4OWUzNzc5YjksIDB4OWUzNzc5YjksIH07CgoKCiAgYWEsYmIsY2MgPSAwLDAsMDsKCgoKICBmb3IgaSA9IDEsNCBkbyAgbWl4KGEpICBlbmQgLS0gU2NyYW1ibGUgaXQuCgoKCiAgZm9yIGkgPSAwLDI1NSw4IGRvIC0tIEZpbGwgaW4gbW1bXSB3aXRoIG1lc3N5IHN0dWZmLgoKICAgIGlmIGZsYWcgdGhlbiAtLSBVc2UgYWxsIHRoZSBpbmZvcm1hdGlvbiBpbiB0aGUgc2VlZC4KCiAgICAgIGZvciBqID0gMCw3IGRvCgogICAgICAgIGFbal0gPSAoIGFbal0gKyByYW5kUnNsW2kral0gKSAlIGNhcDsKCiAgICAgIGVuZAoKICAgIGVuZAoKICAgIG1peChhKTsKCiAgICBmb3IgaiA9IDAsNyBkbwoKICAgICAgbW1baStqXSA9IGFbal07CgogICAgZW5kCgogIGVuZAoKCgogIGlmIGZsYWcgdGhlbgoKICAgIC0tIERvIGEgc2Vjb25kIHBhc3MgdG8gbWFrZSBhbGwgb2YgdGhlIHNlZWQgYWZmZWN0IGFsbCBvZiBtbS4KCiAgICBmb3IgaSA9IDAsMjU1LDggZG8KCiAgICAgIGZvciBqID0gMCw3IGRvCgogICAgICAgIGFbal0gPSAoIGFbal0gKyBtbVtpK2pdICkgJSBjYXA7CgogICAgICBlbmQKCiAgICAgIG1peChhKTsKCiAgICAgIGZvciBqID0gMCw3IGRvCgogICAgICAgIG1tW2kral0gPSBhW2pdOwoKICAgICAgZW5kCgogICAgZW5kCgogIGVuZAoKCgogIGlzYWFjKCk7IC0tIEZpbGwgaW4gdGhlIGZpcnN0IHNldCBvZiByZXN1bHRzLgoKICByYW5kQ250ID0gMDsgLS0gUHJlcGFyZSB0byB1c2UgdGhlIGZpcnN0IHNldCBvZiByZXN1bHRzLgoKCgplbmQKCgoKLS0tIFNlZWRzIHRoZSBJU0FBQyByYW5kb20gbnVtYmVyIGdlbmVyYXRvciB3aXRoIHRoZSBnaXZlbiBzZWVkLgoKLS0tIEBwYXJhbSBzZWVkIHN0cmluZyAtIFRoZSBzZWVkIHRvIHVzZSBmb3IgdGhlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yLgoKLS0tIEBwYXJhbSBmbGFnPyBib29sZWFuIC0gV2hldGhlciB0byB1c2UgYWxsIHRoZSBpbmZvcm1hdGlvbiBpbiB0aGUgc2VlZC4gRGVmYXVsdHMgdG8gdHJ1ZS4KCmxvY2FsIGZ1bmN0aW9uIHNlZWRJc2FhYyhzZWVkLCBmbGFnKQoKICBsb2NhbCBzZWVkTGVuZ3RoID0gI3NlZWQ7CgogIGZvciBpID0gMCwyNTUgZG8gbW1baV0gPSAwOyBlbmQKCiAgZm9yIGkgPSAwLDI1NSBkbyByYW5kUnNsW2ldID0gc2VlZDpieXRlKGkrMSxpKzEpIG9yIDA7IGVuZAoKICByYW5kSW5pdChmbGFnKTsKCmVuZAoKCgotLS0gUmV0cmlldmVzIGEgcmFuZG9tIG51bWJlciBmcm9tIHRoZSBJU0FBQyByYW5kb20gbnVtYmVyIGdlbmVyYXRvcgoKLS0tIEByZXR1cm4gbnVtYmVyOiBUaGUgcmFuZG9tIG51bWJlcgoKbG9jYWwgZnVuY3Rpb24gZ2V0UmFuZG9tKCkKCiAgICBsb2NhbCByZXN1bHQgPSByYW5kUnNsW3JhbmRDbnRdOwoKICAgIHJhbmRDbnQgPSByYW5kQ250ICsgMTsKCiAgICBpZiByYW5kQ250ID4gMjU1IHRoZW4KCiAgICAgICAgaXNhYWMoKTsKCiAgICAgICAgcmFuZENudCA9IDA7CgogICAgZW5kCgogICAgcmV0dXJuIHJlc3VsdDsKCmVuZAoKCgotLS0gR2V0IGEgcmFuZG9tIDMyLWJpdCB2YWx1ZSB3aXRoaW4gdGhlIHNwZWNpZmllZCByYW5nZS4KCi0tLSBAcGFyYW0gbWluPyBudW1iZXIgKG9wdGlvbmFsKSAtIFRoZSBtaW5pbXVtIHZhbHVlIG9mIHRoZSByYW5nZS4gRGVmYXVsdHMgdG8gMC4KCi0tLSBAcGFyYW0gbWF4PyBudW1iZXIgKG9wdGlvbmFsKSAtIFRoZSBtYXhpbXVtIHZhbHVlIG9mIHRoZSByYW5nZS4gRGVmYXVsdHMgdG8gMl4zMS0xLgoKLS0tIEBwYXJhbSBzZWVkPyBzdHJpbmcgKG9wdGlvbmFsKSAtIFRoZSBzZWVkIHRvIHVzZSBmb3IgdGhlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yLgoKLS0tIEByZXR1cm4gbnVtYmVyOiBUaGUgcmFuZG9tIDMyLWJpdCB2YWx1ZSB3aXRoaW4gdGhlIHNwZWNpZmllZCByYW5nZS4KCmxvY2FsIGZ1bmN0aW9uIHJhbmRvbShtaW4sIG1heCwgc2VlZCkKCiAgICBsb2NhbCBtaW4gPSBtaW4gb3IgMDsKCiAgICBsb2NhbCBtYXggPSBtYXggb3IgMl4zMS0xOwoKICAgIGlmIHNlZWQgdGhlbgoKICAgICAgc2VlZElzYWFjKHNlZWQsIHRydWUpOwoKICAgIGVsc2UKCiAgICAgIHNlZWRJc2FhYyh0b3N0cmluZyhtYXRoLnJhbmRvbSgyXjMxLTEpKSwgZmFsc2UpOwoKICAgIGVuZAoKICAgIHJldHVybiAoZ2V0UmFuZG9tKCkgJSAobWF4IC0gbWluICsgMSkpICsgbWluOwoKZW5kCgoKCgoKLS0tIEdldCBhIHJhbmRvbSBjaGFyYWN0ZXIgaW4gcHJpbnRhYmxlIEFTQ0lJIHJhbmdlLgoKLS0tIEByZXR1cm4gbnVtYmVyOiBUaGUgcmFuZG9tIGNoYXJhY3RlciBbMzIsIDEyNl0uCgpsb2NhbCBmdW5jdGlvbiBnZXRSYW5kb21DaGFyKCkKCiAgICByZXR1cm4gZ2V0UmFuZG9tKCkgJSA5NSArIDMyOwoKZW5kCgoKCi0tIENhZXNhci1zaGlmdCBhIGNoYXJhY3RlciA8c2hpZnQ+IHBsYWNlczogR2VuZXJhbGl6ZWQgVmlnZW5lcmUKCmxvY2FsIGZ1bmN0aW9uIGNhZXNhcihtLCBjaCwgc2hpZnQsIG1vZHVsbywgc3RhcnQpCgogIGxvY2FsIG4KCiAgbG9jYWwgc2kgPSAxCgogIGlmIG0gPT0gREVDUllQVCB0aGVuIHNoaWZ0ID0gc2hpZnQqLTEgOyBlbmQKCiAgbiA9IChjaCAtIHN0YXJ0KSArIHNoaWZ0OwoKICBpZiBuIDwgMCB0aGVuIHNpLG4gPSAtMSxuKi0xIDsgZW5kCgogIG4gPSAoIG4gJSBtb2R1bG8gKSAqIHNpOwoKICBpZiBuIDwgMCB0aGVuIG4gPSBuICsgbW9kdWxvIDsgZW5kCgogIHJldHVybiBzdGFydCArIG47CgplbmQKCgoKLS0tIEVuY3J5cHRzIGEgbWVzc2FnZSB1c2luZyB0aGUgSVNTQUMgY2lwaGVyIGFsZ29yaXRobS4KCi0tLSBAcGFyYW0gbXNnIHN0cmluZyAtIFRoZSBtZXNzYWdlIHRvIGJlIGVuY3J5cHRlZC4KCi0tLSBAcGFyYW0ga2V5IHN0cmluZyAtIFRoZSBrZXkgdXNlZCBmb3IgZW5jcnlwdGlvbi4KCi0tLSBAcmV0dXJucyB0YWJsZSAtIEEgdGFibGUgY29udGFpbmluZyB0aGUgZW5jcnlwdGVkIG1lc3NhZ2UgaW4gYnl0ZXMsIHN0cmluZywgYW5kIGhleCBmb3JtYXRzLgoKbG9jYWwgZnVuY3Rpb24gZW5jcnlwdChtc2csIGtleSkKCiAgICBzZWVkSXNhYWMoa2V5LCB0cnVlKTsKCiAgICBsb2NhbCBtc2dMZW5ndGggPSAjbXNnOwoKICAgIGxvY2FsIGRlc3RpbmF0aW9uID0ge307CgogICAgCgogICAgZm9yIGkgPSAxLCBtc2dMZW5ndGggZG8gCgogICAgICAgIGRlc3RpbmF0aW9uW2ldID0gc3RyaW5nLmNoYXIoY2Flc2FyKDEsIG1zZzpieXRlKGksIGkpLCBnZXRSYW5kb21DaGFyKCksIDk1LCAzMikpOwoKICAgIGVuZAoKICAgIAoKICAgIGxvY2FsIGVuY3J5cHRlZCA9IGRlc3RpbmF0aW9uCgoKCiAgICBsb2NhbCBwdWJsaWMgPSB7fQoKICAgIHB1YmxpYy5hc0J5dGVzID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gZW5jcnlwdGVkCgogICAgZW5kCgoKCiAgICBwdWJsaWMuYXNTdHJpbmcgPSBmdW5jdGlvbigpCgogICAgICAgIHJldHVybiB0YWJsZS5jb25jYXQoZW5jcnlwdGVkKQoKICAgIGVuZAoKCgogICAgcHVibGljLmFzSGV4ID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gSGV4LnN0cmluZ1RvSGV4KHRhYmxlLmNvbmNhdChlbmNyeXB0ZWQpKQoKICAgIGVuZAoKCgogICAgcmV0dXJuIHB1YmxpYwoKZW5kCgoKCi0tLSBEZWNyeXB0cyBhbiBlbmNyeXB0ZWQgbWVzc2FnZSB1c2luZyB0aGUgSVNTQUMgY2lwaGVyIGFsZ29yaXRobS4KCi0tLSBAcGFyYW0gZW5jcnlwdGVkIHN0cmluZyAtIFRoZSBlbmNyeXB0ZWQgbWVzc2FnZSB0byBiZSBkZWNyeXB0ZWQuCgotLS0gQHBhcmFtIGtleSBzdHJpbmcgLSBUaGUga2V5IHVzZWQgZm9yIGVuY3J5cHRpb24uCgotLS0gQHJldHVybnMgc3RyaW5nIC0gVGhlIGRlY3J5cHRlZCBtZXNzYWdlLgoKbG9jYWwgZnVuY3Rpb24gZGVjcnlwdChlbmNyeXB0ZWQsIGtleSkKCiAgICBzZWVkSXNhYWMoa2V5LCB0cnVlKTsKCiAgICBsb2NhbCBtc2dMZW5ndGggPSAjZW5jcnlwdGVkOwoKICAgIGxvY2FsIGRlc3RpbmF0aW9uID0ge307CgogICAgCgogICAgZm9yIGkgPSAxLCBtc2dMZW5ndGggZG8gCgogICAgICAgIGRlc3RpbmF0aW9uW2ldID0gc3RyaW5nLmNoYXIoY2Flc2FyKDIsIGVuY3J5cHRlZDpieXRlKGksIGkpLCBnZXRSYW5kb21DaGFyKCksIDk1LCAzMikpOwoKICAgIGVuZAoKICAgIAoKICAgIHJldHVybiB0YWJsZS5jb25jYXQoZGVzdGluYXRpb24pOwoKZW5kCgoKCnJldHVybiB7CgogICAgc2VlZElzYWFjID0gc2VlZElzYWFjLAoKICAgIGdldFJhbmRvbUNoYXIgPSBnZXRSYW5kb21DaGFyLAoKICAgIHJhbmRvbSA9IHJhbmRvbSwKCiAgICBnZXRSYW5kb20gPSBnZXRSYW5kb20sCgogICAgZW5jcnlwdCA9IGVuY3J5cHQsCgogICAgZGVjcnlwdCA9IGRlY3J5cHQKCn0AAAAAbG9jYWwgSGV4ID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLmhleCIpOwoKCgpsb2NhbCBmdW5jdGlvbiBzdGF0ZV91cGRhdGUocywgbTAsIG0xLCBtMiwgbTMpCgoJbG9jYWwgczAwLCBzMDEsIHMwMiwgczAzID0gc1sxXSwgIHNbMl0sICBzWzNdLCAgc1s0XQoKCWxvY2FsIHMxMCwgczExLCBzMTIsIHMxMyA9IHNbNV0sICBzWzZdLCAgc1s3XSwgIHNbOF0KCglsb2NhbCBzMjAsIHMyMSwgczIyLCBzMjMgPSBzWzldLCAgc1sxMF0sIHNbMTFdLCBzWzEyXQoKCWxvY2FsIHMzMCwgczMxLCBzMzIsIHMzMyA9IHNbMTNdLCBzWzE0XSwgc1sxNV0sIHNbMTZdCgoJbG9jYWwgczQwLCBzNDEsIHM0MiwgczQzID0gc1sxN10sIHNbMThdLCBzWzE5XSwgc1syMF0KCglsb2NhbCB0ZW1wCgoKCglzMDAgPSBzMDAgfiBzMzAKCglzMDEgPSBzMDEgfiBzMzEKCglzMDIgPSBzMDIgfiBzMzIKCglzMDMgPSBzMDMgfiBzMzMKCgoKCXRlbXAgPSBzMzMKCglzMzMgPSBzMzIKCglzMzIgPSBzMzEKCglzMzEgPSBzMzAKCglzMzAgPSB0ZW1wCgoKCglzMDAgPSBzMDAgfiBzMTAgJiBzMjAKCglzMDEgPSBzMDEgfiBzMTEgJiBzMjEKCglzMDIgPSBzMDIgfiBzMTIgJiBzMjIKCglzMDMgPSBzMDMgfiBzMTMgJiBzMjMKCgoKCXMwMCA9IChzMDAgPDwgMTMpIHwgKHMwMCA+PiAoNjQtMTMpKSAtLW4xCgoJczAxID0gKHMwMSA8PCAxMykgfCAoczAxID4+ICg2NC0xMykpIC0tbjEKCglzMDIgPSAoczAyIDw8IDEzKSB8IChzMDIgPj4gKDY0LTEzKSkgLS1uMQoKCXMwMyA9IChzMDMgPDwgMTMpIHwgKHMwMyA+PiAoNjQtMTMpKSAtLW4xCgoKCgoKCXMxMCA9IHMxMCB+IG0wCgoJczExID0gczExIH4gbTEKCglzMTIgPSBzMTIgfiBtMgoKCXMxMyA9IHMxMyB+IG0zCgoKCglzMTAgPSBzMTAgfiBzNDAKCglzMTEgPSBzMTEgfiBzNDEKCglzMTIgPSBzMTIgfiBzNDIKCglzMTMgPSBzMTMgfiBzNDMKCgoKCXRlbXAgPSBzNDMKCglzNDMgPSBzNDEKCglzNDEgPSB0ZW1wCgoKCgl0ZW1wID0gczQyCgoJczQyID0gczQwCgoJczQwID0gdGVtcAoKCgoJczEwID0gczEwIH4gKHMyMCAmIHMzMCkKCglzMTEgPSBzMTEgfiAoczIxICYgczMxKQoKCXMxMiA9IHMxMiB+IChzMjIgJiBzMzIpCgoJczEzID0gczEzIH4gKHMyMyAmIHMzMykKCgoKCXMxMCA9IChzMTAgPDwgNDYpIHwgKHMxMCA+PiAoNjQtNDYpKSAtLW4yCgoJczExID0gKHMxMSA8PCA0NikgfCAoczExID4+ICg2NC00NikpIC0tbjIKCglzMTIgPSAoczEyIDw8IDQ2KSB8IChzMTIgPj4gKDY0LTQ2KSkgLS1uMgoKCXMxMyA9IChzMTMgPDwgNDYpIHwgKHMxMyA+PiAoNjQtNDYpKSAtLW4yCgoKCgoKCXMyMCA9IHMyMCB+IG0wCgoJczIxID0gczIxIH4gbTEKCglzMjIgPSBzMjIgfiBtMgoKCXMyMyA9IHMyMyB+IG0zCgoKCglzMjAgPSBzMjAgfiBzMDAKCglzMjEgPSBzMjEgfiBzMDEKCglzMjIgPSBzMjIgfiBzMDIKCglzMjMgPSBzMjMgfiBzMDMKCgoKCXRlbXAgPSBzMDAKCglzMDAgPSBzMDEKCglzMDEgPSBzMDIKCglzMDIgPSBzMDMKCglzMDMgPSB0ZW1wCgoKCglzMjAgPSBzMjAgfiBzMzAgJiBzNDAKCglzMjEgPSBzMjEgfiBzMzEgJiBzNDEKCglzMjIgPSBzMjIgfiBzMzIgJiBzNDIKCglzMjMgPSBzMjMgfiBzMzMgJiBzNDMKCgoKCXMyMCA9IChzMjAgPDwgMzgpIHwgKHMyMCA+PiAoNjQtMzgpKSAtLW4zCgoJczIxID0gKHMyMSA8PCAzOCkgfCAoczIxID4+ICg2NC0zOCkpIC0tbjMKCglzMjIgPSAoczIyIDw8IDM4KSB8IChzMjIgPj4gKDY0LTM4KSkgLS1uMwoKCXMyMyA9IChzMjMgPDwgMzgpIHwgKHMyMyA+PiAoNjQtMzgpKSAtLW4zCgoKCgoKCXMzMCA9IHMzMCB+IG0wCgoJczMxID0gczMxIH4gbTEKCglzMzIgPSBzMzIgfiBtMgoKCXMzMyA9IHMzMyB+IG0zCgoKCglzMzAgPSBzMzAgfiBzMTAKCglzMzEgPSBzMzEgfiBzMTEKCglzMzIgPSBzMzIgfiBzMTIKCglzMzMgPSBzMzMgfiBzMTMKCgoKCXRlbXAgPSBzMTMKCglzMTMgPSBzMTEKCglzMTEgPSB0ZW1wCgoKCgl0ZW1wID0gczEyCgoJczEyID0gczEwCgoJczEwID0gdGVtcAoKCgoJczMwID0gczMwIH4gczQwICYgczAwCgoJczMxID0gczMxIH4gczQxICYgczAxCgoJczMyID0gczMyIH4gczQyICYgczAyCgoJczMzID0gczMzIH4gczQzICYgczAzCgoKCglzMzAgPSAoczMwIDw8IDcpIHwgKHMzMCA+PiAoNjQtNykpIC0tbjQKCglzMzEgPSAoczMxIDw8IDcpIHwgKHMzMSA+PiAoNjQtNykpIC0tbjQKCglzMzIgPSAoczMyIDw8IDcpIHwgKHMzMiA+PiAoNjQtNykpIC0tbjQKCglzMzMgPSAoczMzIDw8IDcpIHwgKHMzMyA+PiAoNjQtNykpIC0tbjQKCgoKCgoJczQwID0gczQwIH4gbTAKCglzNDEgPSBzNDEgfiBtMQoKCXM0MiA9IHM0MiB+IG0yCgoJczQzID0gczQzIH4gbTMKCgoKCXM0MCA9IHM0MCB+IHMyMAoKCXM0MSA9IHM0MSB+IHMyMQoKCXM0MiA9IHM0MiB+IHMyMgoKCXM0MyA9IHM0MyB+IHMyMwoKCgoJdGVtcCA9IHMyMwoKCXMyMyA9IHMyMgoKCXMyMiA9IHMyMQoKCXMyMSA9IHMyMAoKCXMyMCA9IHRlbXAKCgoKCXM0MCA9IHM0MCB+IHMwMCAmIHMxMAoKCXM0MSA9IHM0MSB+IHMwMSAmIHMxMQoKCXM0MiA9IHM0MiB+IHMwMiAmIHMxMgoKCXM0MyA9IHM0MyB+IHMwMyAmIHMxMwoKCgoJczQwID0gKHM0MCA8PCA0KSB8IChzNDAgPj4gKDY0LTQpKSAtLW41CgoJczQxID0gKHM0MSA8PCA0KSB8IChzNDEgPj4gKDY0LTQpKSAtLW41CgoJczQyID0gKHM0MiA8PCA0KSB8IChzNDIgPj4gKDY0LTQpKSAtLW41CgoJczQzID0gKHM0MyA8PCA0KSB8IChzNDMgPj4gKDY0LTQpKSAtLW41CgoKCgktLSB1cGRhdGUgdGhlIHN0YXRlIGFycmF5CgoJc1sxXSwgIHNbMl0sICBzWzNdLCAgc1s0XSAgPSBzMDAsIHMwMSwgczAyLCBzMDMKCglzWzVdLCAgc1s2XSwgIHNbN10sICBzWzhdICA9IHMxMCwgczExLCBzMTIsIHMxMwoKCXNbOV0sICBzWzEwXSwgc1sxMV0sIHNbMTJdID0gczIwLCBzMjEsIHMyMiwgczIzCgoJc1sxM10sIHNbMTRdLCBzWzE1XSwgc1sxNl0gPSBzMzAsIHMzMSwgczMyLCBzMzMKCglzWzE3XSwgc1sxOF0sIHNbMTldLCBzWzIwXSA9IHM0MCwgczQxLCBzNDIsIHM0MwoKCgplbmQtLXN0YXRlX3VwZGF0ZSgpCgoKCmxvY2FsIGZ1bmN0aW9uIGVuY19hdXRfc3RlcChzLCBtMCwgbTEsIG0yLCBtMykKCgktLSAgICAgICAgIG0wICAgczAwICAgIHMxMSAgICBzMjAgICAgIHMzMAoKCWxvY2FsIGMwID0gbTAgfiBzWzFdIH4gc1s2XSB+IChzWzldICAmIHNbMTNdKQoKCS0tICAgICAgICAgbTEgICBzMDEgICAgczEyICAgIHMyMSAgICAgczMxCgoJbG9jYWwgYzEgPSBtMSB+IHNbMl0gfiBzWzddIH4gKHNbMTBdICYgc1sxNF0pCgoJLS0gICAgICAgICBtMiAgIHMwMiAgICBzMTMgICAgczIyICAgICBzMzIKCglsb2NhbCBjMiA9IG0yIH4gc1szXSB+IHNbOF0gfiAoc1sxMV0gJiBzWzE1XSkKCgktLSAgICAgICAgIG0zICAgczAzICAgIHMxMCAgICBzMjMgICAgIHMzMwoKCWxvY2FsIGMzID0gbTMgfiBzWzRdIH4gc1s1XSB+IChzWzEyXSAmIHNbMTZdKQoKCXN0YXRlX3VwZGF0ZShzLCBtMCwgbTEsIG0yLCBtMykKCglyZXR1cm4gYzAsIGMxLCBjMiwgYzMKCmVuZAoKCgpsb2NhbCBmdW5jdGlvbiBkZWNfYXV0X3N0ZXAocywgYzAsIGMxLCBjMiwgYzMsIGJsZW4pCgoJLS0gbWxlbiBpcyB0aGUgbGVuZ3RoIG9mIGEgbGFzdCBwYXJ0aWFsIGJsb2NrCgoJLS0gbWxlbiBpcyBhYnNlbnQvbmlsIGZvciBmdWxsIGJsb2NrcwoKCS0tIHJldHVybiB0aGUgZGVjcnlwdGVkIGJsb2NrCgoJLS0KCgktLSAgICAgICAgIG0wICAgczAwICAgIHMxMSAgICBzMjAgICAgczMwCgoJbG9jYWwgbTAgPSBjMCB+IHNbMV0gfiBzWzZdIH4gKHNbOV0gICYgc1sxM10pCgoJLS0gICAgICAgICBtMSAgIHMwMSAgICBzMTIgICAgczIxICAgICBzMzEKCglsb2NhbCBtMSA9IGMxIH4gc1syXSB+IHNbN10gfiAoc1sxMF0gJiBzWzE0XSkgCgoJLS0gICAgICAgICBtMiAgIHMwMiAgICBzMTMgICAgczIyICAgICBzMzIKCglsb2NhbCBtMiA9IGMyIH4gc1szXSB+IHNbOF0gfiAoc1sxMV0gJiBzWzE1XSkKCgktLSAgICAgICAgIG0zICAgczAzICAgIHMxMCAgICBzMjMgICAgIHMzMwoKCWxvY2FsIG0zID0gYzMgfiBzWzRdIH4gc1s1XSB+IChzWzEyXSAmIHNbMTZdKQoKCWlmIGJsZW4gdGhlbiAKCgkJLS0gcGFydGlhbCBibG9jayA9PiBtdXN0IGFkanVzdCAobTAsIC4uLikgYmVmb3JlCgoJCS0tIHVwZGF0aW5nIHRoZSBzdGF0ZQoKCQlsb2NhbCBtYmxrID0gc3RyaW5nLnBhY2soIjxJOEk4SThJOCIsIG0wLCBtMSwgbTIsIG0zKTpzdWIoMSwgYmxlbikgCgoJCWxvY2FsIGJsayA9IG1ibGsgLi4gc3RyaW5nLnJlcCgnXDAnLCAzMiAtIGJsZW4pCgoJCWFzc2VydCgjYmxrID09IDMyLCAjYmxrKQoKCQltMCwgbTEsIG0yLCBtMyA9IHN0cmluZy51bnBhY2soIjxJOEk4SThJOCIsIGJsaykKCgkJc3RhdGVfdXBkYXRlKHMsIG0wLCBtMSwgbTIsIG0zKQoKCQlyZXR1cm4gbWJsawoKCWVuZAoKCS0tIGZ1bGwgYmxvY2sKCglzdGF0ZV91cGRhdGUocywgbTAsIG0xLCBtMiwgbTMpCgoJcmV0dXJuIHN0cmluZy5wYWNrKCI8SThJOEk4STgiLCBtMCwgbTEsIG0yLCBtMykKCmVuZAoKCgotLSBzdGF0ZSBpbml0IGNvbnN0YW50cyAoZmlib25hY2NpKQoKLS0gdTggY29uWzMyXSA9IHsKCi0tCTB4MDAsMHgwMSwweDAxLDB4MDIsMHgwMywweDA1LDB4MDgsMHgwZAoKLS0JLDB4MTUsMHgyMiwweDM3LDB4NTksMHg5MCwweGU5LDB4NzksMHg2MgoKLS0JLDB4ZGIsMHgzZCwweDE4LDB4NTUsMHg2ZCwweGMyLDB4MmYsMHhmMQoKLS0JLDB4MjAsMHgxMSwweDMxLDB4NDIsMHg3MywweGI1LDB4MjgsMHhkZAoKbG9jYWwgY29uID0geyAtLSBjb24gYXMgNCB1aW50NjQgLSAgISEgYXNzdW1lIGxpdHRsZSBlbmRpYW4gISEKCgkJMHhkMDgwNTAzMDIwMTAxMDAsIDB4NjI3OWU5OTA1OTM3MjIxNSwgCgoJICAgIDB4ZjEyZmMyNmQ1NTE4M2RkYiwgMHhkZDI4YjU3MzQyMzExMTIwIH0KCgkKCmxvY2FsIGZ1bmN0aW9uIHN0YXRlX2luaXQoa2V5LCBpdikKCgktLSByZXR1cm4gYW4gaW5pdGlhbGl6ZWQgc3RhdGUgYXJyYXkKCglhc3NlcnQoKCNrZXkgPT0gMTYpIG9yICgja2V5ID09IDMyKSwgImtleSBtdXN0IGJlIDE2IG9yIDMyIGJ5dGVzIikKCglhc3NlcnQoI2l2ID09IDE2LCAiaXYgbXVzdCBiZSAxNiBieXRlcyIpCgoJbG9jYWwgZWswLCBlazEsIGVrMiwgZWszIAoKCWlmICNrZXkgPT0gMTYgdGhlbiAKCgkJZWswLCBlazEgPSBzdHJpbmcudW5wYWNrKCI8SThJOCIsIGtleSkKCgkJZWszLCBlazIgPSBlazEsIGVrMAoKCWVsc2UKCgkJZWswLCBlazEsIGVrMiwgZWszID0gc3RyaW5nLnVucGFjaygiPEk4SThJOEk4Iiwga2V5KQoKCWVuZAoKCWxvY2FsIGl2MCwgaXYxID0gc3RyaW5nLnVucGFjaygiPEk4STgiLCBpdikKCgktLWluaXRhaWFsaXplIHN0YXRlIHM6CgoJbG9jYWwgcyA9IHsKCgkJaXYwLCBpdjEsIDAsIDAsICAgICAgICAgICAgICAgICAtLSBzdGF0ZVswXVtdCgoJCWVrMCwgZWsxLCBlazIsIGVrMywgICAgICAgICAgICAgLS0gc3RhdGVbMV1bXQoKCQktMSwgLTEsIC0xLCAtMSwgICAgICAgICAgICAgICAgIC0tIHN0YXRlWzJdW10gICgweGZmICogMzIpCgoJCTAsIDAsIDAsIDAsICAgICAgICAgICAgICAgICAgICAgLS0gc3RhdGVbM11bXQoKCQljb25bMV0sIGNvblsyXSwgY29uWzNdLCBjb25bNF0sIC0tIHN0YXRlWzRdW10KCgl9CgoJZm9yIGkgPSAxLCAxNiBkbyBzdGF0ZV91cGRhdGUocywgMCwgMCwgMCwgMCkgZW5kCgoJc1s1XSA9IHNbNV0gfiBlazAgIC0tIHN0YXRlWzFdW2ldIF49ICgodWludDY0X3QqKWVrZXkpW2ldOwoKCXNbNl0gPSBzWzZdIH4gZWsxCgoJc1s3XSA9IHNbN10gfiBlazIKCglzWzhdID0gc1s4XSB+IGVrMwoKCXJldHVybiBzCgplbmQtLXN0YXRlX2luaXQoKQoKCgotLWZpbmFsaXphdGlvbgoKCgpsb2NhbCBmdW5jdGlvbiB0YWdfY29tcHV0ZShzLCBtbGVuLCBhZGxlbikKCgktLSByZXR1cm4gdGFnMCwgdGFnMSAodGhlIHRhZyBhcyB0d28gdWludDY0KQoKCWxvY2FsIG0wLCBtMSwgbTIsIG0zID0gKGFkbGVuIDw8IDMpLCAobWxlbiA8PCAzKSwgMCwgMAoKCgoJLS0gc1sxXSwgIHNbMl0sICBzWzNdLCAgc1s0XSAgPSBzMDAsIHMwMSwgczAyLCBzMDMKCgktLSBzWzVdLCAgc1s2XSwgIHNbN10sICBzWzhdICA9IHMxMCwgczExLCBzMTIsIHMxMwoKCS0tIHNbOV0sICBzWzEwXSwgc1sxMV0sIHNbMTJdID0gczIwLCBzMjEsIHMyMiwgczIzCgoJLS0gc1sxM10sIHNbMTRdLCBzWzE1XSwgc1sxNl0gPSBzMzAsIHMzMSwgczMyLCBzMzMKCgktLSBzWzE3XSwgc1sxOF0sIHNbMTldLCBzWzIwXSA9IHM0MCwgczQxLCBzNDIsIHM0MwoKCgoJLS0gc3RhdGVbNF1bMF0gXj0gc3RhdGVbMF1bMF07IHN0YXRlWzRdWzFdIF49IHN0YXRlWzBdWzFdOyAKCgktLSBzdGF0ZVs0XVsyXSBePSBzdGF0ZVswXVsyXTsgc3RhdGVbNF1bM10gXj0gc3RhdGVbMF1bM107CgoJc1sxN10gPSBzWzE3XSB+IHNbMV07ICBzWzE4XSA9IHNbMThdIH4gc1syXQoKCXNbMTldID0gc1sxOV0gfiBzWzNdOyAgc1syMF0gPSBzWzIwXSB+IHNbNF0KCglmb3IgaSA9IDEsIDEwIGRvIHN0YXRlX3VwZGF0ZShzLCBtMCwgbTEsIG0yLCBtMykgZW5kCgoJLS0gZm9yIChqID0gMDsgaiA8IDQ7IGorKykgewoKCS0tCXN0YXRlWzBdW2pdIF49IHN0YXRlWzFdWyhqICsgMSkgJiAzXSBeIChzdGF0ZVsyXVtqXSAmIHN0YXRlWzNdW2pdKTt9CgoJc1sxXSA9IHNbMV0gfiBzWzZdIH4gKHNbOV0gJiBzWzEzXSkgLS0gaj0wCgoJc1syXSA9IHNbMl0gfiBzWzddIH4gKHNbMTBdICYgc1sxNF0pIC0tIGo9MQoKCXNbM10gPSBzWzNdIH4gc1s4XSB+IChzWzExXSAmIHNbMTVdKSAtLSBqPTIKCglzWzRdID0gc1s0XSB+IHNbNV0gfiAoc1sxMl0gJiBzWzE2XSkgLS0gaj0zCgoJCgoJcmV0dXJuIHNbMV0sIHNbMl0KCmVuZAoKCgotLS0gRW5jcnlwdHMgYSBtZXNzYWdlIHVzaW5nIHRoZSBNb3J1cyBlbmNyeXB0aW9uIGFsZ29yaXRobS4KCi0tLSBAcGFyYW0gayBzdHJpbmcgLSBUaGUgZW5jcnlwdGlvbiBrZXkgKDE2IG9yIDMyLWJ5dGUgc3RyaW5nKS4KCi0tLSBAcGFyYW0gaXYgc3RyaW5nIC0gVGhlIG5vbmNlIG9yIGluaXRpYWwgdmFsdWUgKDE2LWJ5dGUgc3RyaW5nKS4KCi0tLSBAcGFyYW0gbSBzdHJpbmcgLSBUaGUgbWVzc2FnZSB0byBlbmNyeXB0ICh2YXJpYWJsZSBsZW5ndGggc3RyaW5nKS4KCi0tLSBAcGFyYW0gYWQ/IHN0cmluZyAob3B0aW9uYWwpIC0gVGhlIGFkZGl0aW9uYWwgZGF0YSAodmFyaWFibGUgbGVuZ3RoIHN0cmluZykuIE9wdGlvbmFsLCBkZWZhdWx0cyB0byAiIi4KCi0tLSBAcmV0dXJucyB0YWJsZSAtIEEgdGFibGUgY29udGFpbmluZyB0aGUgZW5jcnlwdGVkIG1lc3NhZ2UgaW4gYnl0ZXMsIGhleCwgYW5kIHN0cmluZyBmb3JtYXRzLgoKLS0tIEB1c2FnZSBsb2NhbCBlbmNyeXB0ZWRNZXNzYWdlID0gZW5jcnlwdChrZXksIG5vbmNlLCBtZXNzYWdlLCBhZGRpdGlvbmFsRGF0YSkKCmxvY2FsIGZ1bmN0aW9uIGVuY3J5cHQoaywgaXYsIG0sIGFkKQoKCWFkID0gYWQgb3IgIiIKCglsb2NhbCBtbGVuLCBhZGxlbiA9ICNtLCAjYWQKCglsb2NhbCBtMCwgbTEsIG0yLCBtMywgYzAsIGMxLCBjMiwgYzMKCglsb2NhbCBibGssIGJsZW4KCglsb2NhbCBjdCA9IHt9CgoJLS0gaW5pdAoKCWxvY2FsIHMgPSBzdGF0ZV9pbml0KGssIGl2KQoKCS0tIGFic29yYiBhZAoKCWxvY2FsIGkgPSAxCgoJd2hpbGUgaSA8PSBhZGxlbiAtIDMxIGRvIC0tcHJvY2VzcyBmdWxsIGJsb2NrcwoKCQltMCwgbTEsIG0yLCBtMyA9IHN0cmluZy51bnBhY2soIjxJOEk4SThJOCIsIGFkLCBpKQoKCQlpID0gaSArIDMyCgoJCWVuY19hdXRfc3RlcChzLCBtMCwgbTEsIG0yLCBtMykKCgllbmQKCglpZiBpIDw9IGFkbGVuIHRoZW4gLS0gcHJvY2VzcyBsYXN0LCBwYXJ0aWFsIGJsb2NrIG9mIGFkCgoJCWJsayA9IGFkOnN1YihpKSAuLiBzdHJpbmcucmVwKCdcMCcsIDMxICsgaSAtIGFkbGVuKQoKCQlhc3NlcnQoI2JsayA9PSAzMiwgI2JsaykKCgkJbTAsIG0xLCBtMiwgbTMgPSBzdHJpbmcudW5wYWNrKCI8SThJOEk4STgiLCBibGspCgoJCWVuY19hdXRfc3RlcChzLCBtMCwgbTEsIG0yLCBtMykKCgllbmQKCgl0YWJsZS5pbnNlcnQoY3QsIGFkKSAtLSBjb2xsZWN0IHRoZSBhZCBpbiBjdAoKCS0tIGVuY3J5cHQgbQoKCWkgPSAxCgoJd2hpbGUgaSA8PSBtbGVuIC0gMzEgZG8gLS1wcm9jZXNzIGZ1bGwgYmxvY2tzCgoJCW0wLCBtMSwgbTIsIG0zID0gc3RyaW5nLnVucGFjaygiPEk4SThJOEk4IiwgbSwgaSkKCgkJaSA9IGkgKyAzMgoKCQktLWMwLCBjMSwgYzIsIGMzID0gbTAsIG0xLCBtMiwgbTMgLS11c2UgdGhpcyB0byB0ZXN0IG92ZXJoZWFkIHBlcmYKCgkJYzAsIGMxLCBjMiwgYzMgPSBlbmNfYXV0X3N0ZXAocywgbTAsIG0xLCBtMiwgbTMpCgoJCS0tIGNvbGxlY3QgdGhlIDMyIGVuY3J5cHRlZCBieXRlcyBpbiBjdAoKCQl0YWJsZS5pbnNlcnQoY3QsIHN0cmluZy5wYWNrKCI8SThJOEk4STgiLCBjMCwgYzEsIGMyLCBjMykpCgoJZW5kCgoJaWYgaSA8PSBtbGVuIHRoZW4gLS0gcHJvY2VzcyBsYXN0LCBwYXJ0aWFsIGJsb2NrIG9mIG0KCgkJYmxrID0gbTpzdWIoaSkgLS0gbGFzdCBwYXJ0aWFsIGJsb2NrCgoJCWJsZW4gPSAjYmxrCgoJCWJsayA9IGJsayAuLiBzdHJpbmcucmVwKCdcMCcsIDMxICsgaSAtIG1sZW4pCgoJCWFzc2VydCgjYmxrID09IDMyLCAjYmxrKQoKCQltMCwgbTEsIG0yLCBtMyA9IHN0cmluZy51bnBhY2soIjxJOEk4SThJOCIsIGJsaykKCgkJYzAsIGMxLCBjMiwgYzMgPSBlbmNfYXV0X3N0ZXAocywgbTAsIG0xLCBtMiwgbTMpCgoJCS0tIGNvbGxlY3QgdGhlIGxhc3QgYmxlbiBlbmNyeXB0ZWQgYnl0ZXMgaW4gY3QKCgkJdGFibGUuaW5zZXJ0KGN0LCBzdHJpbmcucGFjaygiPEk4SThJOEk4IiwgYzAsIGMxLCBjMiwgYzMpOnN1YigxLCBibGVuKSkKCgllbmQKCgktLSBjb21wdXRlIHRoZSBtYWMKCglsb2NhbCB0YWcwLCB0YWcxID0gdGFnX2NvbXB1dGUocywgbWxlbiwgYWRsZW4pCgoJdGFibGUuaW5zZXJ0KGN0LCBzdHJpbmcucGFjaygiPEk4STgiLCB0YWcwLCB0YWcxKSkKCgktLSByZXR1cm4gdGhlIGNvbXBsZXRlIGVuY3J5cHRlZCBtZXNzYWdlICh3aXRoIGFkIHByZWZpeCBhbmQgdGFnIHN1ZmZpeCkKCgoKCWxvY2FsIHB1YmxpYyA9IHt9OwoKCgoJcHVibGljLmFzQnl0ZXMgPSBmdW5jdGlvbigpCgoJCXJldHVybiBjdAoKCWVuZAoKCgoJcHVibGljLmFzSGV4ID0gZnVuY3Rpb24oKQoKCQlyZXR1cm4gSGV4LnN0cmluZ1RvSGV4KHRhYmxlLmNvbmNhdChjdCkpCgoJZW5kCgoKCglwdWJsaWMuYXNTdHJpbmcgPSBmdW5jdGlvbigpCgoJCXJldHVybiB0YWJsZS5jb25jYXQoY3QpCgoJZW5kCgoKCglyZXR1cm4gcHVibGljCgplbmQKCgoKLS0tIERlY3J5cHRzIGFuIGVuY3J5cHRlZCBtZXNzYWdlIHVzaW5nIHRoZSBNb3J1cyBlbmNyeXB0aW9uIGFsZ29yaXRobS4KCi0tLSBAcGFyYW0gayBzdHJpbmcgLSBUaGUgZW5jcnlwdGlvbiBrZXkgKDE2IG9yIDMyLWJ5dGUgc3RyaW5nKS4KCi0tLSBAcGFyYW0gaXYgc3RyaW5nIC0gVGhlIG5vbmNlIG9yIGluaXRpYWwgdmFsdWUgKDE2LWJ5dGUgc3RyaW5nKS4KCi0tLSBAcGFyYW0gZSBzdHJpbmcgLSBUaGUgZW5jcnlwdGVkIG1lc3NhZ2UgKHZhcmlhYmxlIGxlbmd0aCBzdHJpbmcpLgoKLS0tIEBwYXJhbSBhZGxlbj8gbnVtYmVyIChvcHRpb25hbCkgLSBUaGUgbGVuZ3RoIG9mIHRoZSBhZGRpdGlvbmFsIGRhdGEgYXQgdGhlIHN0YXJ0IG9mIGUuIE9wdGlvbmFsLCBkZWZhdWx0cyB0byAwLgoKLS0tIEByZXR1cm5zIHRhYmxlIC0gQSB0YWJsZSBjb250YWluaW5nIHRoZSBkZWNyeXB0ZWQgbWVzc2FnZSBpbiBieXRlcywgaGV4LCBhbmQgc3RyaW5nIGZvcm1hdHMuCgpsb2NhbCBmdW5jdGlvbiBkZWNyeXB0KGssIGl2LCBlLCBhZGxlbikKCglhZGxlbiA9IGFkbGVuIG9yIDAKCiAgICBsb2NhbCBhZCA9ICAiIgoKCWxvY2FsIGVsZW4gPSAjZSAtIDE2ICAtLSBsZW5ndGggb2YgbXNnIGJlZm9yZSB0YWcKCglsb2NhbCBtbGVuID0gZWxlbiAtIGFkbGVuCgoJbG9jYWwgbTAsIG0xLCBtMiwgbTMsIGMwLCBjMSwgYzIsIGMzCgoJbG9jYWwgYmxrLCBibGVuCgoJbG9jYWwgY3QgPSB7fSAgLS0gdXNlZCB0byBjb2xsZWN0IGRlY3J5cHRlZCBibG9ja3MKCgktLSBpbml0CgoJbG9jYWwgcyA9IHN0YXRlX2luaXQoaywgaXYpCgoJLS0gYWJzb3JiIGFkCgoJaWYgYWRsZW4gPiAwIHRoZW4gYWQgPSBlOnN1YigxLCBhZGxlbikgZW5kCgoJbG9jYWwgaSA9IDEKCgl3aGlsZSBpIDw9IGFkbGVuIC0gMzEgZG8gLS1wcm9jZXNzIGZ1bGwgYmxvY2tzCgoJCW0wLCBtMSwgbTIsIG0zID0gc3RyaW5nLnVucGFjaygiPEk4SThJOEk4IiwgYWQsIGkpCgoJCWkgPSBpICsgMzIKCgkJZW5jX2F1dF9zdGVwKHMsIG0wLCBtMSwgbTIsIG0zKQoKCWVuZAoKCWlmIGkgPD0gYWRsZW4gdGhlbiAtLSBwcm9jZXNzIGxhc3QsIHBhcnRpYWwgYmxvY2sgb2YgYWQKCgkJYmxrID0gYWQ6c3ViKGkpIC4uIHN0cmluZy5yZXAoJ1wwJywgMzEgKyBpIC0gYWRsZW4pCgoJCWFzc2VydCgjYmxrID09IDMyLCAjYmxrKQoKCQltMCwgbTEsIG0yLCBtMyA9IHN0cmluZy51bnBhY2soIjxJOEk4SThJOCIsIGJsaykKCgkJZW5jX2F1dF9zdGVwKHMsIG0wLCBtMSwgbTIsIG0zKQoKCWVuZAoKCS0tIGRlY3J5cHQgbWVzc2FnZQoKCWkgPSBhZGxlbiArIDEKCgl3aGlsZSBpIDw9IGVsZW4gLSAzMSBkbyAtLXByb2Nlc3MgZnVsbCBibG9ja3MKCgkJYzAsIGMxLCBjMiwgYzMgPSBzdHJpbmcudW5wYWNrKCI8SThJOEk4STgiLCBlLCBpKQoKCQlpID0gaSArIDMyCgoJCWJsayA9IGRlY19hdXRfc3RlcChzLCBjMCwgYzEsIGMyLCBjMykKCgkJLS0gY29sbGVjdCB0aGUgMzIgZGVjcnlwdGVkIGJ5dGVzIGluIGN0CgoJCXRhYmxlLmluc2VydChjdCwgYmxrKQoKCWVuZAoKCWlmIGkgPD0gZWxlbiB0aGVuIC0tIHByb2Nlc3MgbGFzdCwgcGFydGlhbCBibG9jayBvZiBtCgoJCWJsayA9IGU6c3ViKGksIGVsZW4pIC0tIGxhc3QgcGFydGlhbCBibG9jawoKCQlibGVuID0gI2JsawoKCQlibGsgPSBibGsgLi4gc3RyaW5nLnJlcCgnXDAnLCAzMSArIGkgLSBlbGVuKQoKCQlhc3NlcnQoI2JsayA9PSAzMiwgI2JsaykKCgkJYzAsIGMxLCBjMiwgYzMgPSBzdHJpbmcudW5wYWNrKCI8SThJOEk4STgiLCBibGspCgoJCWJsayA9IGRlY19hdXRfc3RlcChzLCBjMCwgYzEsIGMyLCBjMywgYmxlbikKCgkJdGFibGUuaW5zZXJ0KGN0LCBibGspCgoJZW5kCgoJLS0gY2hlY2sgdGhlIG1hYwoKCWxvY2FsIGN0YWcwLCBjdGFnMSA9IHRhZ19jb21wdXRlKHMsIG1sZW4sIGFkbGVuKQoKCWxvY2FsIHRhZzAsIHRhZzEgPSBzdHJpbmcudW5wYWNrKCI8SThJOCIsIGUsIGVsZW4gKyAxKQoKCWlmICgoY3RhZzAgfiB0YWcwKSB8IChjdGFnMSB+IHRhZzEpKSB+PSAwIHRoZW4KCgkJcmV0dXJuIG5pbCwgImRlY3J5cHQgZXJyb3IiCgoJZW5kCgoJcmV0dXJuIHRhYmxlLmNvbmNhdChjdCkKCmVuZAoKCgoKCnJldHVybiB7CgoJLS0gdGhlIGNvcmUgcGVybXV0YXRpb24gaXMgZXhwb3NlZCB0byBmYWNpbGl0YXRlIHRlc3RzIAoKCXN0YXRlX3VwZGF0ZSA9IHN0YXRlX3VwZGF0ZSwKCgktLQoKCWVuY3J5cHQgPSBlbmNyeXB0LAoKCWRlY3J5cHQgPSBkZWNyeXB0LAoKCS0tCgoJa2V5X3NpemUgPSAzMiwKCglub25jZV9zaXplID0gMTYsCgoJdmFyaWFudCA9ICJNb3J1cy0xMjgwIiwKCn0KAAAAAGxvY2FsIEhleCA9IHJlcXVpcmUoIi5jcnlwdG8udXRpbC5oZXgiKQoKCgotLSB0YWdzCgpsb2NhbCBIRUFERVJfVEFHICA9IDB4MDEKCmxvY2FsIFBBWUxPQURfVEFHID0gMHgwMgoKbG9jYWwgVFJBSUxFUl9UQUcgPSAweDA0Cgpsb2NhbCBGSU5BTF9UQUcgICA9IDB4MDgKCgoKbG9jYWwgZnVuY3Rpb24gRyhzLCBhLCBiLCBjLCBkKQoKCS0tIFRoZSBxdWFydGVyLXJvdW5kLgoKCS0tIHMgaXMgdGhlIHN0YXRlOiB1NjRbMTZdLgoKCWxvY2FsIEEsIEIsIEMsIEQgPSBzW2FdLCBzW2JdLCBzW2NdLCBzW2RdCgoJLS0KCgktLSBIKCk6IHJldHVybiAoYSB+IGIpIH4gKChhICYgYikgPDwgMSkgLS0gSU5MSU5FRAoKCS0tIFJPVFI2NCgpOiByZXR1cm4gKHggPj4gbikgfCAoeCA8PCAoNjQtbikpIC0tSU5MSU5FRAoKCS0tCgoJQSA9IChBIH4gQikgfiAoKEEgJiBCKSA8PCAxKSAgLS0gSChBLCBCKTsKCglEID0gRCB+IEE7IEQgPSAoRCA+PiA4KSB8IChEIDw8ICg1NikpIC0tUk9UUjY0KEQsIDgpIC0tUjAKCglDID0gKEMgfiBEKSB+ICgoQyAmIEQpIDw8IDEpICAtLSBIKEMsIEQpOwoKCUIgPSBCIH4gQzsgQiA9IChCID4+IDE5KSB8IChCIDw8ICg0NSkpIC0tUk9UUjY0KEIsIDE5KSAtLVIxCgoJQSA9IChBIH4gQikgfiAoKEEgJiBCKSA8PCAxKSAgLS0gSChBLCBCKTsKCglEID0gRCB+IEE7IEQgPSAoRCA+PiA0MCkgfCAoRCA8PCAoMjQpKSAtLVJPVFI2NChELCA0MCkgLS1SMgoKCUMgPSAoQyB+IEQpIH4gKChDICYgRCkgPDwgMSkgIC0tIEgoQywgRCk7CgoJQiA9IEIgfiBDOyBCID0gKEIgPj4gNjMpIHwgKEIgPDwgKDEpKSAtLVJPVFI2NChCLCA2MykgLS1SMwoKCXNbYV0sIHNbYl0sIHNbY10sIHNbZF0gPSBBLCBCLCBDLCBECgplbmQKCgoKbG9jYWwgZnVuY3Rpb24gRihzKQoKCS0tIFRoZSBmdWxsIHJvdW5kLiAgcyBpcyB0aGUgc3RhdGU6IHU2NFsxNl0KCgktLQoKCS0tIGJld2FyZSEgaW4gTHVhLCBhcnJheXMgYXJlIDEtYmFzZWQgaW5kZXhlZCwgbm90IDAtaW5kZXhlZCBhcyBpbiBDCgogICAgLS0gQ29sdW1uIHN0ZXAKCglHKHMsICAxLCAgNSwgIDksIDEzKTsKCiAgICBHKHMsICAyLCAgNiwgMTAsIDE0KTsKCiAgICBHKHMsICAzLCAgNywgMTEsIDE1KTsKCiAgICBHKHMsICA0LCAgOCwgMTIsIDE2KTsKCiAgICAtLSBEaWFnb25hbCBzdGVwCgogICAgRyhzLCAgMSwgIDYsIDExLCAxNik7CgogICAgRyhzLCAgMiwgIDcsIDEyLCAxMyk7CgogICAgRyhzLCAgMywgIDgsICA5LCAxNCk7CgogICAgRyhzLCAgNCwgIDUsIDEwLCAxNSk7CgplbmQKCgoKbG9jYWwgZnVuY3Rpb24gcGVybXV0ZShzKQoKCS0tIHRoZSBjb3JlIHBlcm11dGF0aW9uICAoZm91ciByb3VuZHMpCgoJZm9yIF8gPSAxLCA0IGRvIEYocykgZW5kCgplbmQKCgoKbG9jYWwgZnVuY3Rpb24gcGFkKGlucykKCgktLSBwYWQgc3RyaW5nIGlucyB0byBsZW5ndGggOTYgKCJCWVRFUyhOT1JYX1IpIikKCglsb2NhbCBvdXQKCglsb2NhbCBpbnNsZW4gPSAjaW5zCgoJaWYgaW5zbGVuID09IDk1IHRoZW4gcmV0dXJuIGlucyAuLiAnXHg4MScgZW5kIC0tIGxhc3QgYnl0ZSBpcyAweDAxIHwgMHg4MAoKCS0tIGhlcmUgaW5zbGVuIGlzIDwgOTUsIHNvIG11c3QgcGFkIHdpdGggOTYtKGluc2xlbisyKSB6ZXJvcwoKCW91dCA9IGlucyAuLiAnXHgwMScgLi4gc3RyaW5nLnJlcCgnXDAnLCA5NC1pbnNsZW4pIC4uICdceDgwJwoKCWFzc2VydCgjb3V0ID09IDk2KQoKCXJldHVybiBvdXQKCmVuZAoKCgpsb2NhbCBmdW5jdGlvbiBhYnNvcmJfYmxvY2socywgaW5zLCBpbmksIHRhZykKCgktLSB0aGUgaW5wdXQgc3RyaW5nIGlzIHRoZSBzdWJzdHJpbmcgb2YgJ2lucycgc3RhcnRpbmcgYXQgcG9zaXRpb24gJ2luaScKCgktLSAod2UgY2Fubm90IHVzZSBhIGNoYXIqIGFzIGluIEMhKQoKCXNbMTZdID0gc1sxNl0gfiB0YWcKCglwZXJtdXRlKHMpCgoJZm9yIGkgPSAxLCAxMiBkbwoKCQlzW2ldID0gc1tpXSB+IHN0cmluZy51bnBhY2soIjxJOCIsIGlucywgaW5pICsgKGktMSkqOCkKCgllbmQKCmVuZAoKCgpsb2NhbCBmdW5jdGlvbiBhYnNvcmJfbGFzdGJsb2NrKHMsIGxhc3QsIHRhZykKCglhYnNvcmJfYmxvY2socywgcGFkKGxhc3QpLCAxLCB0YWcpCgplbmQKCgoKbG9jYWwgZnVuY3Rpb24gZW5jcnlwdF9ibG9jayhzLCBvdXRfdGFibGUsIGlucywgaW5pKQoKCS0tIGVuY3J5cHQgYmxvY2sgaW4gJ2lucycgYXQgb2Zmc2V0ICdpbmknCgoJLS0gYXBwZW5kIGVuY3J5cHRlZCBjaHVua3MgYXQgdGhlIGVuZCBvZiBvdXRfdGFibGUKCglzWzE2XSA9IHNbMTZdIH4gUEFZTE9BRF9UQUcKCglwZXJtdXRlKHMpCgoJZm9yIGkgPSAxLCAxMiBkbwoKCQlzW2ldID0gc1tpXSB+IHN0cmluZy51bnBhY2soIjxJOCIsIGlucywgaW5pICsgKGktMSkqOCkKCgkJdGFibGUuaW5zZXJ0KG91dF90YWJsZSwgc3RyaW5nLnBhY2soIjxJOCIsIHNbaV0pKQoKCWVuZAoKZW5kCgoKCmxvY2FsIGZ1bmN0aW9uIGVuY3J5cHRfbGFzdGJsb2NrKHMsIG91dF90YWJsZSwgbGFzdCkKCgktLSBlbmNyeXB0IGxhc3QgYmxvY2sKCgktLSBhcHBlbmQgZW5jcnlwdGVkIGxhc3QgYmxvY2sgYXQgdGhlIGVuZCBvZiBvdXRfdGFibGUKCglsb2NhbCB0ID0ge30gLS0gZW5jcnlwdGVkIGNodW5rcyBvZiAnbGFzdCcgd2lsbCBiZSBhcHBlbmRlZCB0byB0CgoJbG9jYWwgbGFzdGxlbiA9ICNsYXN0CgoJbGFzdCA9IHBhZChsYXN0KQoKCWVuY3J5cHRfYmxvY2socywgdCwgbGFzdCwgMSkKCglsYXN0ID0gdGFibGUuY29uY2F0KHQpCgoJbGFzdCA9IGxhc3Q6c3ViKDEsIGxhc3RsZW4pICAtLSBrZWVwIG9ubHkgdGhlIGZpcnN0IGxhc3RsZW4gYnl0ZXMKCgl0YWJsZS5pbnNlcnQob3V0X3RhYmxlLCBsYXN0KQoKZW5kCgoKCmxvY2FsIGZ1bmN0aW9uIGRlY3J5cHRfYmxvY2socywgb3V0X3RhYmxlLCBpbnMsIGluaSkKCgktLSBkZWNyeXB0IGJsb2NrIGluICdpbnMnIGF0IG9mZnNldCAnaW5pJwoKCS0tIGFwcGVuZCBkZWNyeXB0ZWQgY2h1bmtzIGF0IHRoZSBlbmQgb2Ygb3V0X3RhYmxlCgoJc1sxNl0gPSBzWzE2XSB+IFBBWUxPQURfVEFHCgoJcGVybXV0ZShzKQoKCWZvciBpID0gMSwgMTIgZG8KCgkJbG9jYWwgYyA9IHN0cmluZy51bnBhY2soIjxJOCIsIGlucywgaW5pICsgKGktMSkqOCkKCgkJdGFibGUuaW5zZXJ0KG91dF90YWJsZSwgc3RyaW5nLnBhY2soIjxJOCIsIHNbaV0gfiBjKSkKCgkJc1tpXSA9IGMKCgllbmQKCmVuZAoKCgpsb2NhbCBmdW5jdGlvbiBkZWNyeXB0X2xhc3RibG9jayhzLCBvdXRfdGFibGUsIGxhc3QpCgoJLS0gZGVjcnlwdCBsYXN0IGJsb2NrCgoJLS0gYXBwZW5kIGRlY3J5cHRlZCBibG9jayBhdCB0aGUgZW5kIG9mIG91dF90YWJsZQoKCS0tCgoJbG9jYWwgbGFzdGxlbiA9ICNsYXN0CgoJc1sxNl0gPSBzWzE2XSB+IFBBWUxPQURfVEFHCgoJcGVybXV0ZShzKQoKCWxvY2FsIGJ5dGUsIGNoYXIgPSBzdHJpbmcuYnl0ZSwgc3RyaW5nLmNoYXIKCglsb2NhbCBsYXN0YmxvY2tfczhfdGFibGUgPSB7fSAtLSBsYXN0IGJsb2NrIGFzIGFuIGFycmF5IG9mIDgtYnl0ZSBzdHJpbmdzCgoJZm9yIGkgPSAxLCAxMiBkbwoKCQlsb2NhbCBzOCA9IHN0cmluZy5wYWNrKCI8STgiLCBzW2ldKQoKCQl0YWJsZS5pbnNlcnQobGFzdGJsb2NrX3M4X3RhYmxlLCBzOCkKCgllbmQKCglsb2NhbCBsYXN0YmxvY2sgPSB0YWJsZS5jb25jYXQobGFzdGJsb2NrX3M4X3RhYmxlKSAtLSBsYXN0YmxvY2sgYXMgYSA5Ni1ieXRlIHN0cmluZwoKCS0tIGV4cGxvZGUgbGFzdGJsb2NrIGFzIGFuIGFycmF5IG9mIGJ5dGVzCgoJbG9jYWwgbGFzdGJsb2NrX2J5dGVfdGFibGUgPSB7fQoKCWZvciBpID0gMSwgOTYgZG8KCgkJbGFzdGJsb2NrX2J5dGVfdGFibGVbaV0gPSBieXRlKGxhc3RibG9jaywgaSkKCgllbmQKCgktLSBjb3B5IGxhc3QKCglmb3IgaSA9IDEsIGxhc3RsZW4gZG8KCgkJbGFzdGJsb2NrX2J5dGVfdGFibGVbaV0gPSBieXRlKGxhc3QsIGkpCgoJZW5kCgoJLS0gcGVyZm9ybSB0aGUgJ3hvcidzCgoJbGFzdGJsb2NrX2J5dGVfdGFibGVbbGFzdGxlbisxXSA9IGxhc3RibG9ja19ieXRlX3RhYmxlW2xhc3RsZW4rMV0gfiAweDAxCgoJbGFzdGJsb2NrX2J5dGVfdGFibGVbOTZdID0gbGFzdGJsb2NrX2J5dGVfdGFibGVbOTZdIH4gMHg4MAoKCS0tIGJ1aWxkIGJhY2sgbGFzdGJsb2NrIGFzIGEgc3RyaW5nCgoJbG9jYWwgbGFzdGJsb2NrX2NoYXJfdGFibGUgPSB7fQoKCWZvciBpID0gMSwgOTYgZG8KCgkJbGFzdGJsb2NrX2NoYXJfdGFibGVbaV0gPSBjaGFyKGxhc3RibG9ja19ieXRlX3RhYmxlW2ldKQoKCWVuZAoKCWxhc3RibG9jayA9IHRhYmxlLmNvbmNhdChsYXN0YmxvY2tfY2hhcl90YWJsZSkgLS0gbGFzdGJsb2NrIGFzIGEgOTYtYnl0ZSBzdHJpbmcKCgktLQoKCWxvY2FsIHQgPSB7fQoKCWZvciBpID0gMSwgMTIgZG8KCgkJbG9jYWwgYyA9IHN0cmluZy51bnBhY2soIjxJOCIsIGxhc3RibG9jaywgMSArIChpLTEpKjgpCgoJCWxvY2FsIHggPSBzdHJpbmcucGFjaygiPEk4Iiwgc1tpXSB+IGMpCgoJCXRhYmxlLmluc2VydCh0LCB4KQoKCQlzW2ldID0gYwoKCWVuZAoKCWxhc3QgPSB0YWJsZS5jb25jYXQodCkKCglsYXN0ID0gbGFzdDpzdWIoMSwgbGFzdGxlbikgIC0tIGtlZXAgb25seSB0aGUgZmlyc3QgbGFzdGxlbiBieXRlcwoKCXRhYmxlLmluc2VydChvdXRfdGFibGUsIGxhc3QpCgplbmQKCgoKbG9jYWwgZnVuY3Rpb24gaW5pdChrLCBuKQoKCS0tIGluaXRpYWxpemUgYW5kIHJldHVybiB0aGUgbm9yeCBzdGF0ZQoKCS0tIGs6IHRoZSBrZXkgYXMgYSAzMi1ieXRlIHN0cmluZwoKCS0tIG46IHRoZSBub25jZSBhcyBhIDMyLWJ5dGUgc3RyaW5nCgoJbG9jYWwgcyA9IHt9IC0tIHRoZSBub3J4IHN0YXRlOiB1NjRbMTZdCgoJLS0gKHRoZSB0d28gZm9sbG93aW5nIEYocykgY291bGQgYmUgcmVwbGFjZWQgd2l0aCBhIGNvbnN0YW50IHRhYmxlKQoKCS0tIChvbmx5IHNbOV0uLnNbMTZdIGFyZSBuZWVkZWQpCgoJZm9yIGkgPSAxLCAxNiBkbyBzW2ldID0gaS0xIGVuZAoKCUYocykKCglGKHMpCgoJLS0gbG9hZCB0aGUgbm9uY2UKCglzWzFdLCBzWzJdLCBzWzNdLCBzWzRdID0gc3RyaW5nLnVucGFjaygiPEk4SThJOEk4IiwgbikKCgktLSBsb2FkIHRoZSBrZXkKCglsb2NhbCBrMSwgazIsIGszLCBrNCA9IHN0cmluZy51bnBhY2soIjxJOEk4SThJOCIsIGspCgoJc1s1XSwgc1s2XSwgc1s3XSwgc1s4XSA9ICBrMSwgazIsIGszLCBrNAoKCS0tCgoJc1sxM10gPSBzWzEzXSB+IDY0ICAtLVcKCglzWzE0XSA9IHNbMTRdIH4gNCAgIC0tTAoKCXNbMTVdID0gc1sxNV0gfiAxICAgLS1QCgoJc1sxNl0gPSBzWzE2XSB+IDI1NiAtLVQKCgktLQoKCXBlcm11dGUocykKCgktLQoKCXNbMTNdID0gc1sxM10gfiBrMQoKCXNbMTRdID0gc1sxNF0gfiBrMgoKCXNbMTVdID0gc1sxNV0gfiBrMwoKCXNbMTZdID0gc1sxNl0gfiBrNAoKCS0tCgoJcmV0dXJuIHMKCmVuZAoKCgpsb2NhbCBmdW5jdGlvbiBhYnNvcmJfZGF0YShzLCBpbnMsIHRhZykKCglsb2NhbCBpbmxlbiA9ICNpbnMKCglsb2NhbCBpID0gMQoKCWlmIGlubGVuID4gMCB0aGVuCgoJCXdoaWxlIGlubGVuID49IDk2IGRvCgoJCQlhYnNvcmJfYmxvY2socywgaW5zLCBpLCB0YWcpCgoJCQlpbmxlbiA9IGlubGVuIC0gOTYKCgkJCWkgPSBpICsgOTYKCgkJZW5kCgoJCWFic29yYl9sYXN0YmxvY2socywgaW5zOnN1YihpKSwgdGFnKQoKCWVuZC0taWYKCmVuZAoKCgpsb2NhbCBmdW5jdGlvbiBlbmNyeXB0X2RhdGEocywgb3V0X3RhYmxlLCBpbnMpCgoJbG9jYWwgaW5sZW4gPSAjaW5zCgoJbG9jYWwgaSA9IDEKCglpZiBpbmxlbiA+IDAgdGhlbgoKCQl3aGlsZSBpbmxlbiA+PSA5NiBkbwoKCQkJZW5jcnlwdF9ibG9jayhzLCBvdXRfdGFibGUsIGlucywgaSkKCgkJCWlubGVuID0gaW5sZW4gLSA5NgoKCQkJaSA9IGkgKyA5NgoKCQllbmQKCgkJZW5jcnlwdF9sYXN0YmxvY2socywgb3V0X3RhYmxlLCBpbnM6c3ViKGkpKQoKCWVuZAoKZW5kCgoKCmxvY2FsIGZ1bmN0aW9uIGRlY3J5cHRfZGF0YShzLCBvdXRfdGFibGUsIGlucykKCglsb2NhbCBpbmxlbiA9ICNpbnMKCglsb2NhbCBpID0gMQoKCWlmIGlubGVuID4gMCB0aGVuCgoJCXdoaWxlIGlubGVuID49IDk2IGRvCgoJCQlkZWNyeXB0X2Jsb2NrKHMsIG91dF90YWJsZSwgaW5zLCBpKQoKCQkJaW5sZW4gPSBpbmxlbiAtIDk2CgoJCQlpID0gaSArIDk2CgoJCWVuZAoKCQlkZWNyeXB0X2xhc3RibG9jayhzLCBvdXRfdGFibGUsIGluczpzdWIoaSkpCgoJZW5kCgplbmQKCgoKbG9jYWwgZnVuY3Rpb24gZmluYWxpemUocywgaykKCgktLSByZXR1cm4gdGhlIGF1dGhlbnRpY2F0aW9uIHRhZyAoMzItYnl0ZSBzdHJpbmcpCgoJLS0KCglzWzE2XSA9IHNbMTZdIH4gRklOQUxfVEFHCgoJcGVybXV0ZShzKQoKCS0tCgoJbG9jYWwgazEsIGsyLCBrMywgazQgPSBzdHJpbmcudW5wYWNrKCI8SThJOEk4STgiLCBrKQoKCS0tCgoJc1sxM10gPSBzWzEzXSB+IGsxCgoJc1sxNF0gPSBzWzE0XSB+IGsyCgoJc1sxNV0gPSBzWzE1XSB+IGszCgoJc1sxNl0gPSBzWzE2XSB+IGs0CgoJLS0KCglwZXJtdXRlKHMpCgoJLS0KCglzWzEzXSA9IHNbMTNdIH4gazEKCglzWzE0XSA9IHNbMTRdIH4gazIKCglzWzE1XSA9IHNbMTVdIH4gazMKCglzWzE2XSA9IHNbMTZdIH4gazQKCgktLQoKCWxvY2FsIGF1dGh0YWcgPSBzdHJpbmcucGFjaygiPEk4SThJOEk4Iiwgc1sxM10sIHNbMTRdLCBzWzE1XSwgc1sxNl0pCgoJcmV0dXJuIGF1dGh0YWcKCmVuZAoKCgpsb2NhbCBmdW5jdGlvbiB2ZXJpZnlfdGFnKHRhZzEsIHRhZzIpCgoJcmV0dXJuIHRhZzEgPT0gdGFnMgoKZW5kCgoKCgoKLS0tIEVuY3J5cHRzIHRoZSBnaXZlbiBwbGFpbiB0ZXh0IHVzaW5nIHRoZSBOT1JYIGNpcGhlciB3aXRoIGFuIEFFQUQgY29uc3RydWN0aW9uLgoKLS0tIEBwYXJhbSBrZXkgc3RyaW5nIC0gVGhlIGtleSB1c2VkIGZvciBlbmNyeXB0aW9uLgoKLS0tIEBwYXJhbSBub25jZSBzdHJpbmcgLSBUaGUgbm9uY2UgdXNlZCBmb3IgZW5jcnlwdGlvbiAzMi1ieXRlIHN0cmluZy4KCi0tLSBAcGFyYW0gcGxhaW4gc3RyaW5nIC0gVGhlIHBsYWluIHRleHQgdG8gYmUgZW5jcnlwdGVkIDMyLWJ5dGUgc3RyaW5nLgoKLS0tIEBwYXJhbSBoZWFkZXI/IHN0cmluZyAob3B0aW9uYWwpIC0gVGhlIGhlYWRlciB0byBiZSBlbmNyeXB0ZWQgMzItYnl0ZSBzdHJpbmcuIERlZmF1bHRzIHRvIGFuIGVtcHR5IHN0cmluZy4KCi0tLSBAcGFyYW0gdHJhaWxlcj8gc3RyaW5nIChvcHRpb25hbCkgLSBUaGUgdHJhaWxlciB0byBiZSBlbmNyeXB0ZWQgMzItYnl0ZSBzdHJpbmcuIERlZmF1bHRzIHRvIGFuIGVtcHR5IHN0cmluZy4KCi0tLSBAcmV0dXJucyB0YWJsZSAtIEEgdGFibGUgY29udGFpbmluZyB0aGUgZW5jcnlwdGVkIG1lc3NhZ2UgaW4gYnl0ZXMsIHN0cmluZywgYW5kIGhleCBmb3JtYXRzLgoKbG9jYWwgZnVuY3Rpb24gYWVhZF9lbmNyeXB0KGtleSwgbm9uY2UsIHBsYWluLCBoZWFkZXIsIHRyYWlsZXIpCgoJaGVhZGVyID0gaGVhZGVyIG9yICIiCgoJdHJhaWxlciA9IHRyYWlsZXIgb3IgIiIKCglsb2NhbCBvdXRfdGFibGUgPSB7fQoKCWxvY2FsIHN0YXRlID0gaW5pdChrZXksIG5vbmNlKQoKCWFic29yYl9kYXRhKHN0YXRlLCBoZWFkZXIsIEhFQURFUl9UQUcpCgoJZW5jcnlwdF9kYXRhKHN0YXRlLCBvdXRfdGFibGUsIHBsYWluKQoKCWFic29yYl9kYXRhKHN0YXRlLCB0cmFpbGVyLCBUUkFJTEVSX1RBRykKCglsb2NhbCB0YWcgPSBmaW5hbGl6ZShzdGF0ZSwga2V5KQoKCXRhYmxlLmluc2VydChvdXRfdGFibGUsIHRhZykKCglsb2NhbCBjcnlwdGVkID0gdGFibGUuY29uY2F0KG91dF90YWJsZSkKCglhc3NlcnQoI2NyeXB0ZWQgPT0gI3BsYWluICsgMzIpCgoKCiAgICBsb2NhbCBwdWJsaWMgPSB7fQoKCgogICAgcHVibGljLmFzQnl0ZXMgPSBmdW5jdGlvbigpCgogICAgICAgIHJldHVybiBvdXRfdGFibGUKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5hc1N0cmluZyA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIGNyeXB0ZWQKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5hc0hleCA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIEhleC5zdHJpbmdUb0hleChjcnlwdGVkKQoKICAgIGVuZAoKCgogICAgcmV0dXJuIHB1YmxpYwoKZW5kCgoKCi0tLSBEZWNyeXB0cyB0aGUgZ2l2ZW4gY3J5cHRlZCB0ZXh0IHVzaW5nIHRoZSBOT1JYIGNpcGhlciB3aXRoIGFuIEFFQUQgY29uc3RydWN0aW9uLgoKLS0tIEBwYXJhbSBrZXkgc3RyaW5nIC0gVGhlIGtleSB1c2VkIGZvciBkZWNyeXB0aW9uIDMyLWJ5dGUgc3RyaW5nLgoKLS0tIEBwYXJhbSBub25jZSBzdHJpbmcgLSBUaGUgbm9uY2UgdXNlZCBmb3IgZGVjcnlwdGlvbiAzMi1ieXRlIHN0cmluZy4KCi0tLSBAcGFyYW0gY3J5cHRlZCBzdHJpbmcgLSBUaGUgY3J5cHRlZCB0ZXh0IHRvIGJlIGRlY3J5cHRlZCAzMi1ieXRlIHN0cmluZy4KCi0tLSBAcGFyYW0gaGVhZGVyPyBzdHJpbmcgKG9wdGlvbmFsKSAtIFRoZSBoZWFkZXIgdG8gYmUgZGVjcnlwdGVkIDMyLWJ5dGUgc3RyaW5nLiBEZWZhdWx0cyB0byBhbiBlbXB0eSBzdHJpbmcuCgotLS0gQHBhcmFtIHRyYWlsZXI/IHN0cmluZyAob3B0aW9uYWwpIC0gVGhlIHRyYWlsZXIgdG8gYmUgZGVjcnlwdGVkIDMyLWJ5dGUgc3RyaW5nLiBEZWZhdWx0cyB0byBhbiBlbXB0eSBzdHJpbmcuCgotLS0gQHJldHVybnMgc3RyaW5nfG5pbCAtIFRoZSBkZWNyeXB0ZWQgcGxhaW4gdGV4dCwgb3IgKG5pbCwgZXJyb3IgbWVzc2FnZSkgaWYgdGhlIGF1dGhlbnRpY2F0ZWQgZGVjcnlwdGlvbiBmYWlscy4KCmxvY2FsIGZ1bmN0aW9uIGFlYWRfZGVjcnlwdChrZXksIG5vbmNlLCBjcnlwdGVkLCBoZWFkZXIsIHRyYWlsZXIpCgoJaGVhZGVyID0gaGVhZGVyIG9yICIiCgoJdHJhaWxlciA9IHRyYWlsZXIgb3IgIiIKCglhc3NlcnQoI2NyeXB0ZWQgPj0gMzIpCgoJbG9jYWwgb3V0X3RhYmxlID0ge30KCglsb2NhbCBzdGF0ZSA9IGluaXQoa2V5LCBub25jZSkKCglhYnNvcmJfZGF0YShzdGF0ZSwgaGVhZGVyLCBIRUFERVJfVEFHKQoKCWxvY2FsIGN0YWcgPSBjcnlwdGVkOnN1YigjY3J5cHRlZCAtIDMyICsgMSkKCglsb2NhbCBjID0gY3J5cHRlZDpzdWIoMSwgI2NyeXB0ZWQgLSAzMikKCglkZWNyeXB0X2RhdGEoc3RhdGUsIG91dF90YWJsZSwgYykKCglhYnNvcmJfZGF0YShzdGF0ZSwgdHJhaWxlciwgVFJBSUxFUl9UQUcpCgoJbG9jYWwgdGFnID0gZmluYWxpemUoc3RhdGUsIGtleSkKCglpZiBub3QgdmVyaWZ5X3RhZyh0YWcsIGN0YWcpIHRoZW4gcmV0dXJuIG5pbCwgImF1dGggZmFpbHVyZSIgZW5kCgoJbG9jYWwgcGxhaW4gPSB0YWJsZS5jb25jYXQob3V0X3RhYmxlKQoKCXJldHVybiBwbGFpbgoKZW5kCgoKCnJldHVybiB7CgoJZW5jcnlwdCA9IGFlYWRfZW5jcnlwdCwKCglkZWNyeXB0ID0gYWVhZF9kZWNyeXB0LAoKCS0tCgoJa2V5X3NpemUgPSAzMiwKCglub25jZV9zaXplID0gMzIsCgoJdmFyaWFudCA9ICJOT1JYIDY0LTQtMSIsCgp9CgBB4O0LC5MgbG9jYWwgQXJyYXkgPSByZXF1aXJlKCIuY3J5cHRvLnV0aWwuYXJyYXkiKTsKCmxvY2FsIFN0cmVhbSA9IHJlcXVpcmUoIi5jcnlwdG8udXRpbC5zdHJlYW0iKTsKCmxvY2FsIFF1ZXVlID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLnF1ZXVlIik7CgoKCmxvY2FsIENCQyA9IHt9OwoKCgpDQkMuQ2lwaGVyID0gZnVuY3Rpb24oKQoKCgogICAgbG9jYWwgcHVibGljID0ge307CgoKCiAgICBsb2NhbCBrZXk7CgogICAgbG9jYWwgYmxvY2tDaXBoZXI7CgogICAgbG9jYWwgcGFkZGluZzsKCiAgICBsb2NhbCBpbnB1dFF1ZXVlOwoKICAgIGxvY2FsIG91dHB1dFF1ZXVlOwoKICAgIGxvY2FsIGl2OwoKCgogICAgcHVibGljLnNldEtleSA9IGZ1bmN0aW9uKGtleUJ5dGVzKQoKICAgICAgICBrZXkgPSBrZXlCeXRlczsKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5zZXRCbG9ja0NpcGhlciA9IGZ1bmN0aW9uKGNpcGhlcikKCiAgICAgICAgYmxvY2tDaXBoZXIgPSBjaXBoZXI7CgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuc2V0UGFkZGluZyA9IGZ1bmN0aW9uKHBhZGRpbmdNb2RlKQoKICAgICAgICBwYWRkaW5nID0gcGFkZGluZ01vZGU7CgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuaW5pdCA9IGZ1bmN0aW9uKCkKCiAgICAgICAgaW5wdXRRdWV1ZSA9IFF1ZXVlKCk7CgogICAgICAgIG91dHB1dFF1ZXVlID0gUXVldWUoKTsKCiAgICAgICAgaXYgPSBuaWw7CgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMudXBkYXRlID0gZnVuY3Rpb24obWVzc2FnZVN0cmVhbSkKCiAgICAgICAgbG9jYWwgYnl0ZSA9IG1lc3NhZ2VTdHJlYW0oKTsKCiAgICAgICAgd2hpbGUgKGJ5dGUgfj0gbmlsKSBkbwoKICAgICAgICAgICAgaW5wdXRRdWV1ZS5wdXNoKGJ5dGUpOwoKICAgICAgICAgICAgaWYoaW5wdXRRdWV1ZS5zaXplKCkgPj0gYmxvY2tDaXBoZXIuYmxvY2tTaXplKSB0aGVuCgogICAgICAgICAgICAgICAgbG9jYWwgYmxvY2sgPSBBcnJheS5yZWFkRnJvbVF1ZXVlKGlucHV0UXVldWUsIGJsb2NrQ2lwaGVyLmJsb2NrU2l6ZSk7CgoKCiAgICAgICAgICAgICAgICBpZihpdiA9PSBuaWwpIHRoZW4KCiAgICAgICAgICAgICAgICAgICAgaXYgPSBibG9jazsKCiAgICAgICAgICAgICAgICBlbHNlCgogICAgICAgICAgICAgICAgICAgIGxvY2FsIG91dCA9IEFycmF5LlhPUihpdiwgYmxvY2spOwoKICAgICAgICAgICAgICAgICAgICBvdXQgPSBibG9ja0NpcGhlci5lbmNyeXB0KGtleSwgb3V0KTsKCiAgICAgICAgICAgICAgICAgICAgQXJyYXkud3JpdGVUb1F1ZXVlKG91dHB1dFF1ZXVlLCBvdXQpOwoKICAgICAgICAgICAgICAgICAgICBpdiA9IG91dDsKCiAgICAgICAgICAgICAgICBlbmQKCiAgICAgICAgICAgIGVuZAoKICAgICAgICAgICAgYnl0ZSA9IG1lc3NhZ2VTdHJlYW0oKTsKCiAgICAgICAgZW5kCgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuZmluaXNoID0gZnVuY3Rpb24oKQoKICAgICAgICBsb2NhbCBwYWRkaW5nU3RyZWFtID0gcGFkZGluZyhibG9ja0NpcGhlci5ibG9ja1NpemUsIGlucHV0UXVldWUuZ2V0SGVhZCgpKTsKCiAgICAgICAgcHVibGljLnVwZGF0ZShwYWRkaW5nU3RyZWFtKTsKCgoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLmdldE91dHB1dFF1ZXVlID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gb3V0cHV0UXVldWU7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuYXNIZXggPSBmdW5jdGlvbigpCgogICAgICAgIHJldHVybiBTdHJlYW0udG9IZXgob3V0cHV0UXVldWUucG9wKTsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5hc0J5dGVzID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gU3RyZWFtLnRvQXJyYXkob3V0cHV0UXVldWUucG9wKTsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5hc1N0cmluZyA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIFN0cmVhbS50b1N0cmluZyhvdXRwdXRRdWV1ZS5wb3ApOwoKICAgIGVuZAoKCgogICAgcmV0dXJuIHB1YmxpYzsKCgoKZW5kCgoKCgoKQ0JDLkRlY2lwaGVyID0gZnVuY3Rpb24oKQoKCgogICAgbG9jYWwgcHVibGljID0ge307CgoKCiAgICBsb2NhbCBrZXk7CgogICAgbG9jYWwgYmxvY2tDaXBoZXI7CgogICAgbG9jYWwgcGFkZGluZzsKCiAgICBsb2NhbCBpbnB1dFF1ZXVlOwoKICAgIGxvY2FsIG91dHB1dFF1ZXVlOwoKICAgIGxvY2FsIGl2OwoKCgogICAgcHVibGljLnNldEtleSA9IGZ1bmN0aW9uKGtleUJ5dGVzKQoKICAgICAgICBrZXkgPSBrZXlCeXRlczsKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5zZXRCbG9ja0NpcGhlciA9IGZ1bmN0aW9uKGNpcGhlcikKCiAgICAgICAgYmxvY2tDaXBoZXIgPSBjaXBoZXI7CgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuc2V0UGFkZGluZyA9IGZ1bmN0aW9uKHBhZGRpbmdNb2RlKQoKICAgICAgICBwYWRkaW5nID0gcGFkZGluZ01vZGU7CgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuaW5pdCA9IGZ1bmN0aW9uKCkKCiAgICAgICAgaW5wdXRRdWV1ZSA9IFF1ZXVlKCk7CgogICAgICAgIG91dHB1dFF1ZXVlID0gUXVldWUoKTsKCiAgICAgICAgaXYgPSBuaWw7CgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMudXBkYXRlID0gZnVuY3Rpb24obWVzc2FnZVN0cmVhbSkKCiAgICAgICAgbG9jYWwgYnl0ZSA9IG1lc3NhZ2VTdHJlYW0oKTsKCiAgICAgICAgd2hpbGUgKGJ5dGUgfj0gbmlsKSBkbwoKICAgICAgICAgICAgaW5wdXRRdWV1ZS5wdXNoKGJ5dGUpOwoKICAgICAgICAgICAgaWYoaW5wdXRRdWV1ZS5zaXplKCkgPj0gYmxvY2tDaXBoZXIuYmxvY2tTaXplKSB0aGVuCgogICAgICAgICAgICAgICAgbG9jYWwgYmxvY2sgPSBBcnJheS5yZWFkRnJvbVF1ZXVlKGlucHV0UXVldWUsIGJsb2NrQ2lwaGVyLmJsb2NrU2l6ZSk7CgoKCiAgICAgICAgICAgICAgICBpZihpdiA9PSBuaWwpIHRoZW4KCiAgICAgICAgICAgICAgICAgICAgaXYgPSBibG9jazsKCiAgICAgICAgICAgICAgICBlbHNlCgogICAgICAgICAgICAgICAgICAgIGxvY2FsIG91dCA9IGJsb2NrOwoKICAgICAgICAgICAgICAgICAgICBvdXQgPSBibG9ja0NpcGhlci5kZWNyeXB0KGtleSwgb3V0KTsKCiAgICAgICAgICAgICAgICAgICAgb3V0ID0gQXJyYXkuWE9SKGl2LCBvdXQpOwoKICAgICAgICAgICAgICAgICAgICBBcnJheS53cml0ZVRvUXVldWUob3V0cHV0UXVldWUsIG91dCk7CgogICAgICAgICAgICAgICAgICAgIGl2ID0gYmxvY2s7CgogICAgICAgICAgICAgICAgZW5kCgogICAgICAgICAgICBlbmQKCiAgICAgICAgICAgIGJ5dGUgPSBtZXNzYWdlU3RyZWFtKCk7CgogICAgICAgIGVuZAoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLmZpbmlzaCA9IGZ1bmN0aW9uKCkKCiAgICAgICAgbG9jYWwgcGFkZGluZ1N0cmVhbSA9IHBhZGRpbmcoYmxvY2tDaXBoZXIuYmxvY2tTaXplLCBpbnB1dFF1ZXVlLmdldEhlYWQoKSk7CgogICAgICAgIHB1YmxpYy51cGRhdGUocGFkZGluZ1N0cmVhbSk7CgoKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5nZXRPdXRwdXRRdWV1ZSA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIG91dHB1dFF1ZXVlOwoKICAgIGVuZAoKCgogICAgcHVibGljLmFzSGV4ID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gU3RyZWFtLnRvSGV4KG91dHB1dFF1ZXVlLnBvcCk7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuYXNCeXRlcyA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIFN0cmVhbS50b0FycmF5KG91dHB1dFF1ZXVlLnBvcCk7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuYXNTdHJpbmcgPSBmdW5jdGlvbigpCgogICAgICAgIHJldHVybiBTdHJlYW0udG9TdHJpbmcob3V0cHV0UXVldWUucG9wKTsKCiAgICBlbmQKCgoKICAgIHJldHVybiBwdWJsaWM7CgoKCmVuZAoKCgpyZXR1cm4gQ0JDOwoAQYCODAuyUGxvY2FsIEFycmF5ID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLmFycmF5Iik7Cgpsb2NhbCBTdHJlYW0gPSByZXF1aXJlKCIuY3J5cHRvLnV0aWwuc3RyZWFtIik7Cgpsb2NhbCBRdWV1ZSA9IHJlcXVpcmUoIi5jcnlwdG8udXRpbC5xdWV1ZSIpOwoKCgpsb2NhbCBDRkIgPSB7fTsKCgoKQ0ZCLkNpcGhlciA9IGZ1bmN0aW9uKCkKCgoKICAgIGxvY2FsIHB1YmxpYyA9IHt9OwoKCgogICAgbG9jYWwga2V5OwoKICAgIGxvY2FsIGJsb2NrQ2lwaGVyOwoKICAgIGxvY2FsIHBhZGRpbmc7CgogICAgbG9jYWwgaW5wdXRRdWV1ZTsKCiAgICBsb2NhbCBvdXRwdXRRdWV1ZTsKCiAgICBsb2NhbCBpdjsKCgoKICAgIHB1YmxpYy5zZXRLZXkgPSBmdW5jdGlvbihrZXlCeXRlcykKCiAgICAgICAga2V5ID0ga2V5Qnl0ZXM7CgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuc2V0QmxvY2tDaXBoZXIgPSBmdW5jdGlvbihjaXBoZXIpCgogICAgICAgIGJsb2NrQ2lwaGVyID0gY2lwaGVyOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLnNldFBhZGRpbmcgPSBmdW5jdGlvbihwYWRkaW5nTW9kZSkKCiAgICAgICAgcGFkZGluZyA9IHBhZGRpbmdNb2RlOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLmluaXQgPSBmdW5jdGlvbigpCgogICAgICAgIGlucHV0UXVldWUgPSBRdWV1ZSgpOwoKICAgICAgICBvdXRwdXRRdWV1ZSA9IFF1ZXVlKCk7CgogICAgICAgIGl2ID0gbmlsOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLnVwZGF0ZSA9IGZ1bmN0aW9uKG1lc3NhZ2VTdHJlYW0pCgogICAgICAgIGxvY2FsIGJ5dGUgPSBtZXNzYWdlU3RyZWFtKCk7CgogICAgICAgIHdoaWxlIChieXRlIH49IG5pbCkgZG8KCiAgICAgICAgICAgIGlucHV0UXVldWUucHVzaChieXRlKTsKCiAgICAgICAgICAgIGlmKGlucHV0UXVldWUuc2l6ZSgpID49IGJsb2NrQ2lwaGVyLmJsb2NrU2l6ZSkgdGhlbgoKICAgICAgICAgICAgICAgIGxvY2FsIGJsb2NrID0gQXJyYXkucmVhZEZyb21RdWV1ZShpbnB1dFF1ZXVlLCBibG9ja0NpcGhlci5ibG9ja1NpemUpOwoKCgogICAgICAgICAgICAgICAgaWYoaXYgPT0gbmlsKSB0aGVuCgogICAgICAgICAgICAgICAgICAgIGl2ID0gYmxvY2s7CgogICAgICAgICAgICAgICAgZWxzZQoKICAgICAgICAgICAgICAgICAgICBsb2NhbCBvdXQgPSBpdjsKCiAgICAgICAgICAgICAgICAgICAgb3V0ID0gYmxvY2tDaXBoZXIuZW5jcnlwdChrZXksIG91dCk7CgogICAgICAgICAgICAgICAgICAgIG91dCA9IEFycmF5LlhPUihvdXQsIGJsb2NrKTsKCiAgICAgICAgICAgICAgICAgICAgQXJyYXkud3JpdGVUb1F1ZXVlKG91dHB1dFF1ZXVlLCBvdXQpOwoKICAgICAgICAgICAgICAgICAgICBpdiA9IG91dDsKCiAgICAgICAgICAgICAgICBlbmQKCiAgICAgICAgICAgIGVuZAoKICAgICAgICAgICAgYnl0ZSA9IG1lc3NhZ2VTdHJlYW0oKTsKCiAgICAgICAgZW5kCgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuZmluaXNoID0gZnVuY3Rpb24oKQoKICAgICAgICBsb2NhbCBwYWRkaW5nU3RyZWFtID0gcGFkZGluZyhibG9ja0NpcGhlci5ibG9ja1NpemUsIGlucHV0UXVldWUuZ2V0SGVhZCgpKTsKCiAgICAgICAgcHVibGljLnVwZGF0ZShwYWRkaW5nU3RyZWFtKTsKCgoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLmdldE91dHB1dFF1ZXVlID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gb3V0cHV0UXVldWU7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuYXNIZXggPSBmdW5jdGlvbigpCgogICAgICAgIHJldHVybiBTdHJlYW0udG9IZXgob3V0cHV0UXVldWUucG9wKTsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5hc0J5dGVzID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gU3RyZWFtLnRvQXJyYXkob3V0cHV0UXVldWUucG9wKTsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5hc1N0cmluZyA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIFN0cmVhbS50b1N0cmluZyhvdXRwdXRRdWV1ZS5wb3ApOwoKICAgIGVuZAoKCgogICAgcmV0dXJuIHB1YmxpYzsKCgoKZW5kCgoKCkNGQi5EZWNpcGhlciA9IGZ1bmN0aW9uKCkKCgoKICAgIGxvY2FsIHB1YmxpYyA9IHt9OwoKCgogICAgbG9jYWwga2V5OwoKICAgIGxvY2FsIGJsb2NrQ2lwaGVyOwoKICAgIGxvY2FsIHBhZGRpbmc7CgogICAgbG9jYWwgaW5wdXRRdWV1ZTsKCiAgICBsb2NhbCBvdXRwdXRRdWV1ZTsKCiAgICBsb2NhbCBpdjsKCgoKICAgIHB1YmxpYy5zZXRLZXkgPSBmdW5jdGlvbihrZXlCeXRlcykKCiAgICAgICAga2V5ID0ga2V5Qnl0ZXM7CgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuc2V0QmxvY2tDaXBoZXIgPSBmdW5jdGlvbihjaXBoZXIpCgogICAgICAgIGJsb2NrQ2lwaGVyID0gY2lwaGVyOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLnNldFBhZGRpbmcgPSBmdW5jdGlvbihwYWRkaW5nTW9kZSkKCiAgICAgICAgcGFkZGluZyA9IHBhZGRpbmdNb2RlOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLmluaXQgPSBmdW5jdGlvbigpCgogICAgICAgIGlucHV0UXVldWUgPSBRdWV1ZSgpOwoKICAgICAgICBvdXRwdXRRdWV1ZSA9IFF1ZXVlKCk7CgogICAgICAgIGl2ID0gbmlsOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLnVwZGF0ZSA9IGZ1bmN0aW9uKG1lc3NhZ2VTdHJlYW0pCgogICAgICAgIGxvY2FsIGJ5dGUgPSBtZXNzYWdlU3RyZWFtKCk7CgogICAgICAgIHdoaWxlIChieXRlIH49IG5pbCkgZG8KCiAgICAgICAgICAgIGlucHV0UXVldWUucHVzaChieXRlKTsKCiAgICAgICAgICAgIGlmKGlucHV0UXVldWUuc2l6ZSgpID49IGJsb2NrQ2lwaGVyLmJsb2NrU2l6ZSkgdGhlbgoKICAgICAgICAgICAgICAgIGxvY2FsIGJsb2NrID0gQXJyYXkucmVhZEZyb21RdWV1ZShpbnB1dFF1ZXVlLCBibG9ja0NpcGhlci5ibG9ja1NpemUpOwoKCgogICAgICAgICAgICAgICAgaWYoaXYgPT0gbmlsKSB0aGVuCgogICAgICAgICAgICAgICAgICAgIGl2ID0gYmxvY2s7CgogICAgICAgICAgICAgICAgZWxzZQoKICAgICAgICAgICAgICAgICAgICBsb2NhbCBvdXQgPSBpdjsKCiAgICAgICAgICAgICAgICAgICAgb3V0ID0gYmxvY2tDaXBoZXIuZW5jcnlwdChrZXksIG91dCk7CgogICAgICAgICAgICAgICAgICAgIG91dCA9IEFycmF5LlhPUihvdXQsIGJsb2NrKTsKCiAgICAgICAgICAgICAgICAgICAgQXJyYXkud3JpdGVUb1F1ZXVlKG91dHB1dFF1ZXVlLCBvdXQpOwoKICAgICAgICAgICAgICAgICAgICBpdiA9IGJsb2NrOwoKICAgICAgICAgICAgICAgIGVuZAoKICAgICAgICAgICAgZW5kCgogICAgICAgICAgICBieXRlID0gbWVzc2FnZVN0cmVhbSgpOwoKICAgICAgICBlbmQKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5maW5pc2ggPSBmdW5jdGlvbigpCgogICAgICAgIGxvY2FsIHBhZGRpbmdTdHJlYW0gPSBwYWRkaW5nKGJsb2NrQ2lwaGVyLmJsb2NrU2l6ZSwgaW5wdXRRdWV1ZS5nZXRIZWFkKCkpOwoKICAgICAgICBwdWJsaWMudXBkYXRlKHBhZGRpbmdTdHJlYW0pOwoKCgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuZ2V0T3V0cHV0UXVldWUgPSBmdW5jdGlvbigpCgogICAgICAgIHJldHVybiBvdXRwdXRRdWV1ZTsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5hc0hleCA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIFN0cmVhbS50b0hleChvdXRwdXRRdWV1ZS5wb3ApOwoKICAgIGVuZAoKCgogICAgcHVibGljLmFzQnl0ZXMgPSBmdW5jdGlvbigpCgogICAgICAgIHJldHVybiBTdHJlYW0udG9BcnJheShvdXRwdXRRdWV1ZS5wb3ApOwoKICAgIGVuZAoKCgogICAgcHVibGljLmFzU3RyaW5nID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gU3RyZWFtLnRvU3RyaW5nKG91dHB1dFF1ZXVlLnBvcCk7CgogICAgZW5kCgoKCiAgICByZXR1cm4gcHVibGljOwoKCgplbmQKCgoKcmV0dXJuIENGQjtsb2NhbCBBcnJheSA9IHJlcXVpcmUoIi5jcnlwdG8udXRpbC5hcnJheSIpOwoKbG9jYWwgU3RyZWFtID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLnN0cmVhbSIpOwoKbG9jYWwgUXVldWUgPSByZXF1aXJlKCIuY3J5cHRvLnV0aWwucXVldWUiKTsKCgoKbG9jYWwgQml0ID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLmJpdCIpOwoKCgpsb2NhbCBBTkQgPSBCaXQuYmFuZDsKCgoKbG9jYWwgQ1RSID0ge307CgoKCkNUUi5DaXBoZXIgPSBmdW5jdGlvbigpCgoKCiAgICBsb2NhbCBwdWJsaWMgPSB7fTsKCgoKICAgIGxvY2FsIGtleTsKCiAgICBsb2NhbCBibG9ja0NpcGhlcjsKCiAgICBsb2NhbCBwYWRkaW5nOwoKICAgIGxvY2FsIGlucHV0UXVldWU7CgogICAgbG9jYWwgb3V0cHV0UXVldWU7CgogICAgbG9jYWwgaXY7CgoKCiAgICBwdWJsaWMuc2V0S2V5ID0gZnVuY3Rpb24oa2V5Qnl0ZXMpCgogICAgICAgIGtleSA9IGtleUJ5dGVzOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLnNldEJsb2NrQ2lwaGVyID0gZnVuY3Rpb24oY2lwaGVyKQoKICAgICAgICBibG9ja0NpcGhlciA9IGNpcGhlcjsKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5zZXRQYWRkaW5nID0gZnVuY3Rpb24ocGFkZGluZ01vZGUpCgogICAgICAgIHBhZGRpbmcgPSBwYWRkaW5nTW9kZTsKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5pbml0ID0gZnVuY3Rpb24oKQoKICAgICAgICBpbnB1dFF1ZXVlID0gUXVldWUoKTsKCiAgICAgICAgb3V0cHV0UXVldWUgPSBRdWV1ZSgpOwoKICAgICAgICBpdiA9IG5pbDsKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIGxvY2FsIHVwZGF0ZUlWID0gZnVuY3Rpb24oKQoKICAgICAgICBpdlsxNl0gPSBpdlsxNl0gKyAxOwoKICAgICAgICBpZiBpdlsxNl0gPD0gMHhGRiB0aGVuIHJldHVybjsgZW5kCgogICAgICAgIGl2WzE2XSA9IEFORChpdlsxNl0sIDB4RkYpOwoKCgogICAgICAgIGl2WzE1XSA9IGl2WzE1XSArIDE7CgogICAgICAgIGlmIGl2WzE1XSA8PSAweEZGIHRoZW4gcmV0dXJuOyBlbmQKCiAgICAgICAgaXZbMTVdID0gQU5EKGl2WzE1XSwgMHhGRik7CgoKCiAgICAgICAgaXZbMTRdID0gaXZbMTRdICsgMTsKCiAgICAgICAgaWYgaXZbMTRdIDw9IDB4RkYgdGhlbiByZXR1cm47IGVuZAoKICAgICAgICBpdlsxNF0gPSBBTkQoaXZbMTRdLCAweEZGKTsKCgoKICAgICAgICBpdlsxM10gPSBpdlsxM10gKyAxOwoKICAgICAgICBpZiBpdlsxM10gPD0gMHhGRiB0aGVuIHJldHVybjsgZW5kCgogICAgICAgIGl2WzEzXSA9IEFORChpdlsxM10sIDB4RkYpOwoKCgogICAgICAgIGl2WzEyXSA9IGl2WzEyXSArIDE7CgogICAgICAgIGlmIGl2WzEyXSA8PSAweEZGIHRoZW4gcmV0dXJuOyBlbmQKCiAgICAgICAgaXZbMTJdID0gQU5EKGl2WzEyXSwgMHhGRik7CgoKCiAgICAgICAgaXZbMTFdID0gaXZbMTFdICsgMTsKCiAgICAgICAgaWYgaXZbMTFdIDw9IDB4RkYgdGhlbiByZXR1cm47IGVuZAoKICAgICAgICBpdlsxMV0gPSBBTkQoaXZbMTFdLCAweEZGKTsKCgoKICAgICAgICBpdlsxMF0gPSBpdlsxMF0gKyAxOwoKICAgICAgICBpZiBpdlsxMF0gPD0gMHhGRiB0aGVuIHJldHVybjsgZW5kCgogICAgICAgIGl2WzEwXSA9IEFORChpdlsxMF0sIDB4RkYpOwoKCgogICAgICAgIGl2WzldID0gaXZbOV0gKyAxOwoKICAgICAgICBpZiBpdls5XSA8PSAweEZGIHRoZW4gcmV0dXJuOyBlbmQKCiAgICAgICAgaXZbOV0gPSBBTkQoaXZbOV0sIDB4RkYpOwoKCgogICAgICAgIHJldHVybjsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy51cGRhdGUgPSBmdW5jdGlvbihtZXNzYWdlU3RyZWFtKQoKICAgICAgICBsb2NhbCBieXRlID0gbWVzc2FnZVN0cmVhbSgpOwoKICAgICAgICB3aGlsZSAoYnl0ZSB+PSBuaWwpIGRvCgogICAgICAgICAgICBpbnB1dFF1ZXVlLnB1c2goYnl0ZSk7CgoKCiAgICAgICAgICAgIGlmKGlucHV0UXVldWUuc2l6ZSgpID49IGJsb2NrQ2lwaGVyLmJsb2NrU2l6ZSkgdGhlbgoKICAgICAgICAgICAgICAgIGxvY2FsIGJsb2NrID0gQXJyYXkucmVhZEZyb21RdWV1ZShpbnB1dFF1ZXVlLCBibG9ja0NpcGhlci5ibG9ja1NpemUpOwoKCgogICAgICAgICAgICAgICAgaWYoaXYgPT0gbmlsKSB0aGVuCgogICAgICAgICAgICAgICAgICAgIGl2ID0gYmxvY2s7CgogICAgICAgICAgICAgICAgZWxzZQoKICAgICAgICAgICAgICAgICAgICBsb2NhbCBvdXQgPSBpdjsKCiAgICAgICAgICAgICAgICAgICAgb3V0ID0gYmxvY2tDaXBoZXIuZW5jcnlwdChrZXksIG91dCk7CgoKCiAgICAgICAgICAgICAgICAgICAgb3V0ID0gQXJyYXkuWE9SKG91dCwgYmxvY2spOwoKICAgICAgICAgICAgICAgICAgICBBcnJheS53cml0ZVRvUXVldWUob3V0cHV0UXVldWUsIG91dCk7CgogICAgICAgICAgICAgICAgICAgIHVwZGF0ZUlWKCk7CgogICAgICAgICAgICAgICAgZW5kCgogICAgICAgICAgICBlbmQKCiAgICAgICAgICAgIGJ5dGUgPSBtZXNzYWdlU3RyZWFtKCk7CgogICAgICAgIGVuZAoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLmZpbmlzaCA9IGZ1bmN0aW9uKCkKCiAgICAgICAgbG9jYWwgcGFkZGluZ1N0cmVhbSA9IHBhZGRpbmcoYmxvY2tDaXBoZXIuYmxvY2tTaXplLCBpbnB1dFF1ZXVlLmdldEhlYWQoKSk7CgogICAgICAgIHB1YmxpYy51cGRhdGUocGFkZGluZ1N0cmVhbSk7CgoKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5nZXRPdXRwdXRRdWV1ZSA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIG91dHB1dFF1ZXVlOwoKICAgIGVuZAoKCgogICAgcHVibGljLmFzSGV4ID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gU3RyZWFtLnRvSGV4KG91dHB1dFF1ZXVlLnBvcCk7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuYXNCeXRlcyA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIFN0cmVhbS50b0FycmF5KG91dHB1dFF1ZXVlLnBvcCk7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuYXNTdHJpbmcgPSBmdW5jdGlvbigpCgogICAgICAgIHJldHVybiBTdHJlYW0udG9TdHJpbmcob3V0cHV0UXVldWUucG9wKTsKCiAgICBlbmQKCgoKICAgIHJldHVybiBwdWJsaWM7CgoKCmVuZAoKCgoKCkNUUi5EZWNpcGhlciA9IGZ1bmN0aW9uKCkKCgoKICAgIGxvY2FsIHB1YmxpYyA9IHt9OwoKCgogICAgbG9jYWwga2V5OwoKICAgIGxvY2FsIGJsb2NrQ2lwaGVyOwoKICAgIGxvY2FsIHBhZGRpbmc7CgogICAgbG9jYWwgaW5wdXRRdWV1ZTsKCiAgICBsb2NhbCBvdXRwdXRRdWV1ZTsKCiAgICBsb2NhbCBpdjsKCgoKICAgIHB1YmxpYy5zZXRLZXkgPSBmdW5jdGlvbihrZXlCeXRlcykKCiAgICAgICAga2V5ID0ga2V5Qnl0ZXM7CgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuc2V0QmxvY2tDaXBoZXIgPSBmdW5jdGlvbihjaXBoZXIpCgogICAgICAgIGJsb2NrQ2lwaGVyID0gY2lwaGVyOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLnNldFBhZGRpbmcgPSBmdW5jdGlvbihwYWRkaW5nTW9kZSkKCiAgICAgICAgcGFkZGluZyA9IHBhZGRpbmdNb2RlOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLmluaXQgPSBmdW5jdGlvbigpCgogICAgICAgIGlucHV0UXVldWUgPSBRdWV1ZSgpOwoKICAgICAgICBvdXRwdXRRdWV1ZSA9IFF1ZXVlKCk7CgogICAgICAgIGl2ID0gbmlsOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgbG9jYWwgdXBkYXRlSVYgPSBmdW5jdGlvbigpCgogICAgICAgIGl2WzE2XSA9IGl2WzE2XSArIDE7CgogICAgICAgIGlmIGl2WzE2XSA8PSAweEZGIHRoZW4gcmV0dXJuOyBlbmQKCiAgICAgICAgaXZbMTZdID0gQU5EKGl2WzE2XSwgMHhGRik7CgoKCiAgICAgICAgaXZbMTVdID0gaXZbMTVdICsgMTsKCiAgICAgICAgaWYgaXZbMTVdIDw9IDB4RkYgdGhlbiByZXR1cm47IGVuZAoKICAgICAgICBpdlsxNV0gPSBBTkQoaXZbMTVdLCAweEZGKTsKCgoKICAgICAgICBpdlsxNF0gPSBpdlsxNF0gKyAxOwoKICAgICAgICBpZiBpdlsxNF0gPD0gMHhGRiB0aGVuIHJldHVybjsgZW5kCgogICAgICAgIGl2WzE0XSA9IEFORChpdlsxNF0sIDB4RkYpOwoKCgogICAgICAgIGl2WzEzXSA9IGl2WzEzXSArIDE7CgogICAgICAgIGlmIGl2WzEzXSA8PSAweEZGIHRoZW4gcmV0dXJuOyBlbmQKCiAgICAgICAgaXZbMTNdID0gQU5EKGl2WzEzXSwgMHhGRik7CgoKCiAgICAgICAgaXZbMTJdID0gaXZbMTJdICsgMTsKCiAgICAgICAgaWYgaXZbMTJdIDw9IDB4RkYgdGhlbiByZXR1cm47IGVuZAoKICAgICAgICBpdlsxMl0gPSBBTkQoaXZbMTJdLCAweEZGKTsKCgoKICAgICAgICBpdlsxMV0gPSBpdlsxMV0gKyAxOwoKICAgICAgICBpZiBpdlsxMV0gPD0gMHhGRiB0aGVuIHJldHVybjsgZW5kCgogICAgICAgIGl2WzExXSA9IEFORChpdlsxMV0sIDB4RkYpOwoKCgogICAgICAgIGl2WzEwXSA9IGl2WzEwXSArIDE7CgogICAgICAgIGlmIGl2WzEwXSA8PSAweEZGIHRoZW4gcmV0dXJuOyBlbmQKCiAgICAgICAgaXZbMTBdID0gQU5EKGl2WzEwXSwgMHhGRik7CgoKCiAgICAgICAgaXZbOV0gPSBpdls5XSArIDE7CgogICAgICAgIGlmIGl2WzldIDw9IDB4RkYgdGhlbiByZXR1cm47IGVuZAoKICAgICAgICBpdls5XSA9IEFORChpdls5XSwgMHhGRik7CgoKCiAgICAgICAgcmV0dXJuOwoKICAgIGVuZAoKCgogICAgcHVibGljLnVwZGF0ZSA9IGZ1bmN0aW9uKG1lc3NhZ2VTdHJlYW0pCgogICAgICAgIGxvY2FsIGJ5dGUgPSBtZXNzYWdlU3RyZWFtKCk7CgogICAgICAgIHdoaWxlIChieXRlIH49IG5pbCkgZG8KCiAgICAgICAgICAgIGlucHV0UXVldWUucHVzaChieXRlKTsKCgoKICAgICAgICAgICAgaWYoaW5wdXRRdWV1ZS5zaXplKCkgPj0gYmxvY2tDaXBoZXIuYmxvY2tTaXplKSB0aGVuCgogICAgICAgICAgICAgICAgbG9jYWwgYmxvY2sgPSBBcnJheS5yZWFkRnJvbVF1ZXVlKGlucHV0UXVldWUsIGJsb2NrQ2lwaGVyLmJsb2NrU2l6ZSk7CgoKCiAgICAgICAgICAgICAgICBpZihpdiA9PSBuaWwpIHRoZW4KCiAgICAgICAgICAgICAgICAgICAgaXYgPSBibG9jazsKCiAgICAgICAgICAgICAgICBlbHNlCgogICAgICAgICAgICAgICAgICAgIGxvY2FsIG91dCA9IGl2OwoKICAgICAgICAgICAgICAgICAgICBvdXQgPSBibG9ja0NpcGhlci5lbmNyeXB0KGtleSwgb3V0KTsKCgoKICAgICAgICAgICAgICAgICAgICBvdXQgPSBBcnJheS5YT1Iob3V0LCBibG9jayk7CgogICAgICAgICAgICAgICAgICAgIEFycmF5LndyaXRlVG9RdWV1ZShvdXRwdXRRdWV1ZSwgb3V0KTsKCiAgICAgICAgICAgICAgICAgICAgdXBkYXRlSVYoKTsKCiAgICAgICAgICAgICAgICBlbmQKCiAgICAgICAgICAgIGVuZAoKICAgICAgICAgICAgYnl0ZSA9IG1lc3NhZ2VTdHJlYW0oKTsKCiAgICAgICAgZW5kCgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuZmluaXNoID0gZnVuY3Rpb24oKQoKICAgICAgICBsb2NhbCBwYWRkaW5nU3RyZWFtID0gcGFkZGluZyhibG9ja0NpcGhlci5ibG9ja1NpemUsIGlucHV0UXVldWUuZ2V0SGVhZCgpKTsKCiAgICAgICAgcHVibGljLnVwZGF0ZShwYWRkaW5nU3RyZWFtKTsKCgoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLmdldE91dHB1dFF1ZXVlID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gb3V0cHV0UXVldWU7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuYXNIZXggPSBmdW5jdGlvbigpCgogICAgICAgIHJldHVybiBTdHJlYW0udG9IZXgob3V0cHV0UXVldWUucG9wKTsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5hc0J5dGVzID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gU3RyZWFtLnRvQXJyYXkob3V0cHV0UXVldWUucG9wKTsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5hc1N0cmluZyA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIFN0cmVhbS50b1N0cmluZyhvdXRwdXRRdWV1ZS5wb3ApOwoKICAgIGVuZAoKCgogICAgcmV0dXJuIHB1YmxpYzsKCgoKZW5kCgoKCnJldHVybiBDVFI7CgBBwN4MC/HCAWxvY2FsIEFycmF5ID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLmFycmF5Iik7Cgpsb2NhbCBTdHJlYW0gPSByZXF1aXJlKCIuY3J5cHRvLnV0aWwuc3RyZWFtIik7Cgpsb2NhbCBRdWV1ZSA9IHJlcXVpcmUoIi5jcnlwdG8udXRpbC5xdWV1ZSIpOwoKCgpsb2NhbCBFQ0IgPSB7fTsKCgoKRUNCLkNpcGhlciA9IGZ1bmN0aW9uKCkKCgoKICAgIGxvY2FsIHB1YmxpYyA9IHt9OwoKCgogICAgbG9jYWwga2V5OwoKICAgIGxvY2FsIGJsb2NrQ2lwaGVyOwoKICAgIGxvY2FsIHBhZGRpbmc7CgogICAgbG9jYWwgaW5wdXRRdWV1ZTsKCiAgICBsb2NhbCBvdXRwdXRRdWV1ZTsKCgoKICAgIHB1YmxpYy5zZXRLZXkgPSBmdW5jdGlvbihrZXlCeXRlcykKCiAgICAgICAga2V5ID0ga2V5Qnl0ZXM7CgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuc2V0QmxvY2tDaXBoZXIgPSBmdW5jdGlvbihjaXBoZXIpCgogICAgICAgIGJsb2NrQ2lwaGVyID0gY2lwaGVyOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLnNldFBhZGRpbmcgPSBmdW5jdGlvbihwYWRkaW5nTW9kZSkKCiAgICAgICAgcGFkZGluZyA9IHBhZGRpbmdNb2RlOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLmluaXQgPSBmdW5jdGlvbigpCgogICAgICAgIGlucHV0UXVldWUgPSBRdWV1ZSgpOwoKICAgICAgICBvdXRwdXRRdWV1ZSA9IFF1ZXVlKCk7CgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMudXBkYXRlID0gZnVuY3Rpb24obWVzc2FnZVN0cmVhbSkKCiAgICAgICAgbG9jYWwgYnl0ZSA9IG1lc3NhZ2VTdHJlYW0oKTsKCiAgICAgICAgd2hpbGUgKGJ5dGUgfj0gbmlsKSBkbwoKICAgICAgICAgICAgaW5wdXRRdWV1ZS5wdXNoKGJ5dGUpOwoKICAgICAgICAgICAgaWYoaW5wdXRRdWV1ZS5zaXplKCkgPj0gYmxvY2tDaXBoZXIuYmxvY2tTaXplKSB0aGVuCgogICAgICAgICAgICAgICAgbG9jYWwgYmxvY2sgPSBBcnJheS5yZWFkRnJvbVF1ZXVlKGlucHV0UXVldWUsIGJsb2NrQ2lwaGVyLmJsb2NrU2l6ZSk7CgoKCiAgICAgICAgICAgICAgICBibG9jayA9IGJsb2NrQ2lwaGVyLmVuY3J5cHQoa2V5LCBibG9jayk7CgoKCiAgICAgICAgICAgICAgICBBcnJheS53cml0ZVRvUXVldWUob3V0cHV0UXVldWUsIGJsb2NrKTsKCiAgICAgICAgICAgIGVuZAoKICAgICAgICAgICAgYnl0ZSA9IG1lc3NhZ2VTdHJlYW0oKTsKCiAgICAgICAgZW5kCgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuZmluaXNoID0gZnVuY3Rpb24oKQoKICAgICAgICBsb2NhbCBwYWRkaW5nU3RyZWFtID0gcGFkZGluZyhibG9ja0NpcGhlci5ibG9ja1NpemUsIGlucHV0UXVldWUuZ2V0SGVhZCgpKTsKCiAgICAgICAgcHVibGljLnVwZGF0ZShwYWRkaW5nU3RyZWFtKTsKCgoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLmdldE91dHB1dFF1ZXVlID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gb3V0cHV0UXVldWU7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuYXNIZXggPSBmdW5jdGlvbigpCgogICAgICAgIHJldHVybiBTdHJlYW0udG9IZXgob3V0cHV0UXVldWUucG9wKTsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5hc0J5dGVzID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gU3RyZWFtLnRvQXJyYXkob3V0cHV0UXVldWUucG9wKTsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5hc1N0cmluZyA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIFN0cmVhbS50b1N0cmluZyhvdXRwdXRRdWV1ZS5wb3ApOwoKICAgIGVuZAoKCgogICAgcmV0dXJuIHB1YmxpYzsKCgoKZW5kCgoKCkVDQi5EZWNpcGhlciA9IGZ1bmN0aW9uKCkKCgoKICAgIGxvY2FsIHB1YmxpYyA9IHt9OwoKCgogICAgbG9jYWwga2V5OwoKICAgIGxvY2FsIGJsb2NrQ2lwaGVyOwoKICAgIGxvY2FsIHBhZGRpbmc7CgogICAgbG9jYWwgaW5wdXRRdWV1ZTsKCiAgICBsb2NhbCBvdXRwdXRRdWV1ZTsKCgoKICAgIHB1YmxpYy5zZXRLZXkgPSBmdW5jdGlvbihrZXlCeXRlcykKCiAgICAgICAga2V5ID0ga2V5Qnl0ZXM7CgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuc2V0QmxvY2tDaXBoZXIgPSBmdW5jdGlvbihjaXBoZXIpCgogICAgICAgIGJsb2NrQ2lwaGVyID0gY2lwaGVyOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLnNldFBhZGRpbmcgPSBmdW5jdGlvbihwYWRkaW5nTW9kZSkKCiAgICAgICAgcGFkZGluZyA9IHBhZGRpbmdNb2RlOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLmluaXQgPSBmdW5jdGlvbigpCgogICAgICAgIGlucHV0UXVldWUgPSBRdWV1ZSgpOwoKICAgICAgICBvdXRwdXRRdWV1ZSA9IFF1ZXVlKCk7CgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMudXBkYXRlID0gZnVuY3Rpb24obWVzc2FnZVN0cmVhbSkKCiAgICAgICAgbG9jYWwgYnl0ZSA9IG1lc3NhZ2VTdHJlYW0oKTsKCiAgICAgICAgd2hpbGUgKGJ5dGUgfj0gbmlsKSBkbwoKICAgICAgICAgICAgaW5wdXRRdWV1ZS5wdXNoKGJ5dGUpOwoKICAgICAgICAgICAgaWYoaW5wdXRRdWV1ZS5zaXplKCkgPj0gYmxvY2tDaXBoZXIuYmxvY2tTaXplKSB0aGVuCgogICAgICAgICAgICAgICAgbG9jYWwgYmxvY2sgPSBBcnJheS5yZWFkRnJvbVF1ZXVlKGlucHV0UXVldWUsIGJsb2NrQ2lwaGVyLmJsb2NrU2l6ZSk7CgoKCiAgICAgICAgICAgICAgICBibG9jayA9IGJsb2NrQ2lwaGVyLmRlY3J5cHQoa2V5LCBibG9jayk7CgoKCiAgICAgICAgICAgICAgICBBcnJheS53cml0ZVRvUXVldWUob3V0cHV0UXVldWUsIGJsb2NrKTsKCiAgICAgICAgICAgIGVuZAoKICAgICAgICAgICAgYnl0ZSA9IG1lc3NhZ2VTdHJlYW0oKTsKCiAgICAgICAgZW5kCgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuZmluaXNoID0gZnVuY3Rpb24oKQoKICAgICAgICBsb2NhbCBwYWRkaW5nU3RyZWFtID0gcGFkZGluZyhibG9ja0NpcGhlci5ibG9ja1NpemUsIGlucHV0UXVldWUuZ2V0SGVhZCgpKTsKCiAgICAgICAgcHVibGljLnVwZGF0ZShwYWRkaW5nU3RyZWFtKTsKCgoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLmdldE91dHB1dFF1ZXVlID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gb3V0cHV0UXVldWU7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuYXNIZXggPSBmdW5jdGlvbigpCgogICAgICAgIHJldHVybiBTdHJlYW0udG9IZXgob3V0cHV0UXVldWUucG9wKTsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5hc0J5dGVzID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gU3RyZWFtLnRvQXJyYXkob3V0cHV0UXVldWUucG9wKTsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5hc1N0cmluZyA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIFN0cmVhbS50b1N0cmluZyhvdXRwdXRRdWV1ZS5wb3ApOwoKICAgIGVuZAoKCgogICAgcmV0dXJuIHB1YmxpYzsKCgoKZW5kCgoKCgoKcmV0dXJuIEVDQjtsb2NhbCBBcnJheSA9IHJlcXVpcmUoIi5jcnlwdG8udXRpbC5hcnJheSIpOwoKbG9jYWwgU3RyZWFtID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLnN0cmVhbSIpOwoKbG9jYWwgUXVldWUgPSByZXF1aXJlKCIuY3J5cHRvLnV0aWwucXVldWUiKTsKCgoKbG9jYWwgT0ZCID0ge307CgoKCk9GQi5DaXBoZXIgPSBmdW5jdGlvbigpCgoKCiAgICBsb2NhbCBwdWJsaWMgPSB7fTsKCgoKICAgIGxvY2FsIGtleTsKCiAgICBsb2NhbCBibG9ja0NpcGhlcjsKCiAgICBsb2NhbCBwYWRkaW5nOwoKICAgIGxvY2FsIGlucHV0UXVldWU7CgogICAgbG9jYWwgb3V0cHV0UXVldWU7CgogICAgbG9jYWwgaXY7CgoKCiAgICBwdWJsaWMuc2V0S2V5ID0gZnVuY3Rpb24oa2V5Qnl0ZXMpCgogICAgICAgIGtleSA9IGtleUJ5dGVzOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLnNldEJsb2NrQ2lwaGVyID0gZnVuY3Rpb24oY2lwaGVyKQoKICAgICAgICBibG9ja0NpcGhlciA9IGNpcGhlcjsKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5zZXRQYWRkaW5nID0gZnVuY3Rpb24ocGFkZGluZ01vZGUpCgogICAgICAgIHBhZGRpbmcgPSBwYWRkaW5nTW9kZTsKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5pbml0ID0gZnVuY3Rpb24oKQoKICAgICAgICBpbnB1dFF1ZXVlID0gUXVldWUoKTsKCiAgICAgICAgb3V0cHV0UXVldWUgPSBRdWV1ZSgpOwoKICAgICAgICBpdiA9IG5pbDsKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy51cGRhdGUgPSBmdW5jdGlvbihtZXNzYWdlU3RyZWFtKQoKICAgICAgICBsb2NhbCBieXRlID0gbWVzc2FnZVN0cmVhbSgpOwoKICAgICAgICB3aGlsZSAoYnl0ZSB+PSBuaWwpIGRvCgogICAgICAgICAgICBpbnB1dFF1ZXVlLnB1c2goYnl0ZSk7CgogICAgICAgICAgICBpZihpbnB1dFF1ZXVlLnNpemUoKSA+PSBibG9ja0NpcGhlci5ibG9ja1NpemUpIHRoZW4KCiAgICAgICAgICAgICAgICBsb2NhbCBibG9jayA9IEFycmF5LnJlYWRGcm9tUXVldWUoaW5wdXRRdWV1ZSwgYmxvY2tDaXBoZXIuYmxvY2tTaXplKTsKCgoKICAgICAgICAgICAgICAgIGlmKGl2ID09IG5pbCkgdGhlbgoKICAgICAgICAgICAgICAgICAgICBpdiA9IGJsb2NrOwoKICAgICAgICAgICAgICAgIGVsc2UKCiAgICAgICAgICAgICAgICAgICAgbG9jYWwgb3V0ID0gaXY7CgogICAgICAgICAgICAgICAgICAgIG91dCA9IGJsb2NrQ2lwaGVyLmVuY3J5cHQoa2V5LCBvdXQpOwoKICAgICAgICAgICAgICAgICAgICBpdiA9IG91dDsKCiAgICAgICAgICAgICAgICAgICAgb3V0ID0gQXJyYXkuWE9SKG91dCwgYmxvY2spOwoKICAgICAgICAgICAgICAgICAgICBBcnJheS53cml0ZVRvUXVldWUob3V0cHV0UXVldWUsIG91dCk7CgogICAgICAgICAgICAgICAgZW5kCgogICAgICAgICAgICBlbmQKCiAgICAgICAgICAgIGJ5dGUgPSBtZXNzYWdlU3RyZWFtKCk7CgogICAgICAgIGVuZAoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLmZpbmlzaCA9IGZ1bmN0aW9uKCkKCiAgICAgICAgbG9jYWwgcGFkZGluZ1N0cmVhbSA9IHBhZGRpbmcoYmxvY2tDaXBoZXIuYmxvY2tTaXplLCBpbnB1dFF1ZXVlLmdldEhlYWQoKSk7CgogICAgICAgIHB1YmxpYy51cGRhdGUocGFkZGluZ1N0cmVhbSk7CgoKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5nZXRPdXRwdXRRdWV1ZSA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIG91dHB1dFF1ZXVlOwoKICAgIGVuZAoKCgogICAgcHVibGljLmFzSGV4ID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gU3RyZWFtLnRvSGV4KG91dHB1dFF1ZXVlLnBvcCk7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuYXNCeXRlcyA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIFN0cmVhbS50b0FycmF5KG91dHB1dFF1ZXVlLnBvcCk7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuYXNTdHJpbmcgPSBmdW5jdGlvbigpCgogICAgICAgIHJldHVybiBTdHJlYW0udG9TdHJpbmcob3V0cHV0UXVldWUucG9wKTsKCiAgICBlbmQKCgoKICAgIHJldHVybiBwdWJsaWM7CgoKCmVuZAoKCgpPRkIuRGVjaXBoZXIgPSBmdW5jdGlvbigpCgoKCiAgICBsb2NhbCBwdWJsaWMgPSB7fTsKCgoKICAgIGxvY2FsIGtleTsKCiAgICBsb2NhbCBibG9ja0NpcGhlcjsKCiAgICBsb2NhbCBwYWRkaW5nOwoKICAgIGxvY2FsIGlucHV0UXVldWU7CgogICAgbG9jYWwgb3V0cHV0UXVldWU7CgogICAgbG9jYWwgaXY7CgoKCiAgICBwdWJsaWMuc2V0S2V5ID0gZnVuY3Rpb24oa2V5Qnl0ZXMpCgogICAgICAgIGtleSA9IGtleUJ5dGVzOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLnNldEJsb2NrQ2lwaGVyID0gZnVuY3Rpb24oY2lwaGVyKQoKICAgICAgICBibG9ja0NpcGhlciA9IGNpcGhlcjsKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5zZXRQYWRkaW5nID0gZnVuY3Rpb24ocGFkZGluZ01vZGUpCgogICAgICAgIHBhZGRpbmcgPSBwYWRkaW5nTW9kZTsKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5pbml0ID0gZnVuY3Rpb24oKQoKICAgICAgICBpbnB1dFF1ZXVlID0gUXVldWUoKTsKCiAgICAgICAgb3V0cHV0UXVldWUgPSBRdWV1ZSgpOwoKICAgICAgICBpdiA9IG5pbDsKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy51cGRhdGUgPSBmdW5jdGlvbihtZXNzYWdlU3RyZWFtKQoKICAgICAgICBsb2NhbCBieXRlID0gbWVzc2FnZVN0cmVhbSgpOwoKICAgICAgICB3aGlsZSAoYnl0ZSB+PSBuaWwpIGRvCgogICAgICAgICAgICBpbnB1dFF1ZXVlLnB1c2goYnl0ZSk7CgogICAgICAgICAgICBpZihpbnB1dFF1ZXVlLnNpemUoKSA+PSBibG9ja0NpcGhlci5ibG9ja1NpemUpIHRoZW4KCiAgICAgICAgICAgICAgICBsb2NhbCBibG9jayA9IEFycmF5LnJlYWRGcm9tUXVldWUoaW5wdXRRdWV1ZSwgYmxvY2tDaXBoZXIuYmxvY2tTaXplKTsKCgoKICAgICAgICAgICAgICAgIGlmKGl2ID09IG5pbCkgdGhlbgoKICAgICAgICAgICAgICAgICAgICBpdiA9IGJsb2NrOwoKICAgICAgICAgICAgICAgIGVsc2UKCiAgICAgICAgICAgICAgICAgICAgbG9jYWwgb3V0ID0gaXY7CgogICAgICAgICAgICAgICAgICAgIG91dCA9IGJsb2NrQ2lwaGVyLmVuY3J5cHQoa2V5LCBvdXQpOwoKICAgICAgICAgICAgICAgICAgICBpdiA9IG91dDsKCiAgICAgICAgICAgICAgICAgICAgb3V0ID0gQXJyYXkuWE9SKG91dCwgYmxvY2spOwoKICAgICAgICAgICAgICAgICAgICBBcnJheS53cml0ZVRvUXVldWUob3V0cHV0UXVldWUsIG91dCk7CgogICAgICAgICAgICAgICAgZW5kCgogICAgICAgICAgICBlbmQKCiAgICAgICAgICAgIGJ5dGUgPSBtZXNzYWdlU3RyZWFtKCk7CgogICAgICAgIGVuZAoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLmZpbmlzaCA9IGZ1bmN0aW9uKCkKCiAgICAgICAgbG9jYWwgcGFkZGluZ1N0cmVhbSA9IHBhZGRpbmcoYmxvY2tDaXBoZXIuYmxvY2tTaXplLCBpbnB1dFF1ZXVlLmdldEhlYWQoKSk7CgogICAgICAgIHB1YmxpYy51cGRhdGUocGFkZGluZ1N0cmVhbSk7CgoKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5nZXRPdXRwdXRRdWV1ZSA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIG91dHB1dFF1ZXVlOwoKICAgIGVuZAoKCgogICAgcHVibGljLmFzSGV4ID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gU3RyZWFtLnRvSGV4KG91dHB1dFF1ZXVlLnBvcCk7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuYXNCeXRlcyA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIFN0cmVhbS50b0FycmF5KG91dHB1dFF1ZXVlLnBvcCk7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuYXNTdHJpbmcgPSBmdW5jdGlvbigpCgogICAgICAgIHJldHVybiBTdHJlYW0udG9TdHJpbmcob3V0cHV0UXVldWUucG9wKTsKCiAgICBlbmQKCgoKICAgIHJldHVybiBwdWJsaWM7CgoKCmVuZAoKCgoKCnJldHVybiBPRkI7bG9jYWwgSGV4ID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLmhleCIpOwoKCgoKCmxvY2FsIGZ1bmN0aW9uIFJPVFI2NCh4LCBuKQoKICAgIHJldHVybiAoeCA+PiBuKSB8ICh4IDw8ICg2NC1uKSkKCmVuZAoKCgotLSBHIE1peGluZyBmdW5jdGlvbi4KCgoKbG9jYWwgZnVuY3Rpb24gRyh2LCBhLCBiLCBjLCBkLCB4LCB5KQoKCXZbYV0gPSB2W2FdICsgdltiXSArIHgKCgl2W2RdID0gUk9UUjY0KHZbZF0gfiB2W2FdLCAzMikKCgl2W2NdID0gdltjXSArIHZbZF0KCgl2W2JdID0gUk9UUjY0KHZbYl0gfiB2W2NdLCAyNCkKCgl2W2FdID0gdlthXSArIHZbYl0gKyB5CgoJdltkXSA9IFJPVFI2NCh2W2RdIH4gdlthXSwgMTYpCgoJdltjXSA9IHZbY10gKyB2W2RdCgoJdltiXSA9IFJPVFI2NCh2W2JdIH4gdltjXSwgNjMpCgplbmQKCgoKLS0gIEluaXRpYWxpemF0aW9uIFZlY3Rvci4KCmxvY2FsIGl2ID0gewoKICAgIDB4NmEwOWU2NjdmM2JjYzkwOCwgMHhiYjY3YWU4NTg0Y2FhNzNiLAoKICAgIDB4M2M2ZWYzNzJmZTk0ZjgyYiwgMHhhNTRmZjUzYTVmMWQzNmYxLAoKICAgIDB4NTEwZTUyN2ZhZGU2ODJkMSwgMHg5YjA1Njg4YzJiM2U2YzFmLAoKICAgIDB4MWY4M2Q5YWJmYjQxYmQ2YiwgMHg1YmUwY2QxOTEzN2UyMTc5Cgp9CgoKCmxvY2FsIHNpZ21hID0gewoKCS0tIGFycmF5IGluZGV4IHN0YXJ0IGF0IDEgaW4gTHVhLAoKCS0tID0+IGFsbCB0aGUgcGVybXV0YXRpb24gdmFsdWVzIGFyZSBpbmNyZW1lbnRlZCBieSBvbmUKCgl7IDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2IH0sCgoJeyAxNSwgMTEsIDUsIDksIDEwLCAxNiwgMTQsIDcsIDIsIDEzLCAxLCAzLCAxMiwgOCwgNiwgNCB9LAoKCXsgMTIsIDksIDEzLCAxLCA2LCAzLCAxNiwgMTQsIDExLCAxNSwgNCwgNywgOCwgMiwgMTAsIDUgfSwKCgl7IDgsIDEwLCA0LCAyLCAxNCwgMTMsIDEyLCAxNSwgMywgNywgNiwgMTEsIDUsIDEsIDE2LCA5IH0sCgoJeyAxMCwgMSwgNiwgOCwgMywgNSwgMTEsIDE2LCAxNSwgMiwgMTIsIDEzLCA3LCA5LCA0LCAxNCB9LAoKCXsgMywgMTMsIDcsIDExLCAxLCAxMiwgOSwgNCwgNSwgMTQsIDgsIDYsIDE2LCAxNSwgMiwgMTAgfSwKCgl7IDEzLCA2LCAyLCAxNiwgMTUsIDE0LCA1LCAxMSwgMSwgOCwgNywgNCwgMTAsIDMsIDksIDEyIH0sCgoJeyAxNCwgMTIsIDgsIDE1LCAxMywgMiwgNCwgMTAsIDYsIDEsIDE2LCA1LCA5LCA3LCAzLCAxMSB9LAoKCXsgNywgMTYsIDE1LCAxMCwgMTIsIDQsIDEsIDksIDEzLCAzLCAxNCwgOCwgMiwgNSwgMTEsIDYgfSwKCgl7IDExLCAzLCA5LCA1LCA4LCA3LCAyLCA2LCAxNiwgMTIsIDEwLCAxNSwgNCwgMTMsIDE0LCAxIH0sCgoJeyAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiB9LAoKCXsgMTUsIDExLCA1LCA5LCAxMCwgMTYsIDE0LCA3LCAyLCAxMywgMSwgMywgMTIsIDgsIDYsIDQgfQoKfQoKCgoKCmxvY2FsIGZ1bmN0aW9uIGNvbXByZXNzKGN0eCwgbGFzdCkKCgktLSBDb21wcmVzc2lvbiBmdW5jdGlvbi4gImxhc3QiIGZsYWcgaW5kaWNhdGVzIGxhc3QgYmxvY2suCgoJbG9jYWwgdiwgbSA9IHt9LCB7fSAtLSBib3RoIHYgYW5kIG0gYXJlIHU2NFsxNl0KCglmb3IgaSA9IDEsIDggZG8KCgkJdltpXSA9IGN0eC5oW2ldCgoJCXZbaSs4XSA9IGl2W2ldCgoJZW5kCgoJdlsxM10gPSB2WzEzXSB+IGN0eC50WzFdICAtLSBsb3cgNjQgYml0cyBvZiBvZmZzZXQKCgl2WzE0XSA9IHZbMTRdIH4gY3R4LnRbMl0gIC0tIGhpZ2ggNjQgYml0cwoKCWlmIGxhc3QgdGhlbiB2WzE1XSA9IH52WzE1XSBlbmQKCglmb3IgaSA9IDAsIDE1IGRvIC0tIGdldCBsaXR0bGUtZW5kaWFuIHdvcmRzCgoJCW1baSsxXSA9IHN0cmluZy51bnBhY2soIjxJOCIsIGN0eC5iLCBpKjgrMSkgLS1jb3B5IGIgYXMgYSBzZXEgb2YgdTY0CgoJZW5kCgoKCglmb3IgaSA9IDEsIDEyIGRvIC0tIHR3ZWx2ZSByb3VuZHMKCgkJRyh2LCAxLCA1LCA5LCAxMywgbVtzaWdtYVtpXVsgMV1dLCBtW3NpZ21hW2ldWyAyXV0pCgoJCUcodiwgMiwgNiwxMCwgMTQsIG1bc2lnbWFbaV1bIDNdXSwgbVtzaWdtYVtpXVsgNF1dKQoKCQlHKHYsIDMsIDcsMTEsIDE1LCBtW3NpZ21hW2ldWyA1XV0sIG1bc2lnbWFbaV1bIDZdXSkKCgkJRyh2LCA0LCA4LDEyLCAxNiwgbVtzaWdtYVtpXVsgN11dLCBtW3NpZ21hW2ldWyA4XV0pCgoJCUcodiwgMSwgNiwxMSwgMTYsIG1bc2lnbWFbaV1bIDldXSwgbVtzaWdtYVtpXVsxMF1dKQoKCQlHKHYsIDIsIDcsMTIsIDEzLCBtW3NpZ21hW2ldWzExXV0sIG1bc2lnbWFbaV1bMTJdXSkKCgkJRyh2LCAzLCA4LCA5LCAxNCwgbVtzaWdtYVtpXVsxM11dLCBtW3NpZ21hW2ldWzE0XV0pCgoJCUcodiwgNCwgNSwxMCwgMTUsIG1bc2lnbWFbaV1bMTVdXSwgbVtzaWdtYVtpXVsxNl1dKQoKCgoJZW5kCgoKCglmb3IgaSA9IDEsIDggZG8KCgkJY3R4LmhbaV0gPSBjdHguaFtpXSB+IHZbaV0gfiB2W2kgKyA4XQoKCWVuZAoKZW5kCgoKCmxvY2FsIHVwZGF0ZSAgLS0gKHVwZGF0ZSBpcyB1c2VkIGluIGluaXQoKSBiZWxvdywgYnV0IGRlZmluZWQgYWZ0ZXIpCgoKCmxvY2FsIGZ1bmN0aW9uIGluaXQob3V0bGVuLCBrZXkpCgoJLS0gaW5pdGlhbGl6ZSB0aGUgYmxha2UgZnVuY3Rpb24KCgktLSAxIDw9IG91dGxlbiA8PSA2NCBnaXZlcyB0aGUgZGlnZXN0IHNpemUgaW4gYnl0ZXMuIGRlZmF1bHRzIHRvIDY0CgoJLS0ga2V5OiBvcHRpb25hbCBzZWNyZXQga2V5IChhbHNvIDw9IDY0IGJ5dGVzKS4gZGVmYXVsdHMgdG8gbm8ga2V5CgoJLS0gcmV0dXJuIHRoZSBpbml0aWFsaXplZCBjb250ZXh0CgoJb3V0bGVuID0gb3V0bGVuIG9yIDY0CgoJa2V5ID0ga2V5IG9yICIiCgoJbG9jYWwga2V5bGVuID0gI2tleQoKCWlmIG91dGxlbiA8IDEgb3Igb3V0bGVuID4gNjQgb3IgKGtleSBhbmQgI2tleSA+IDY0KSB0aGVuCgoJCXJldHVybiBuaWwsICJpbGxlZ2FsIHBhcmFtZXRlcnMiCgoJZW5kCgoJbG9jYWwgY3R4ID0ge2g9e30sIHQ9e30sIGM9MSwgb3V0bGVuPW91dGxlbn0gLS0gdGhlIGJsYWtlMiBjb250ZXh0CgoJLS0gbm90ZTogY3R4LmMgaXMgdGhlIGluZGV4IG9mIDFzdCBieXRlIGZyZWUgaW4gaW5wdXQgYnVmZmVyIChjdHguYikKCgktLSBpdCBpcyBub3QgdXNlZCBpbiB0aGlzIGltcGxlbWVudGF0aW9uCgoJZm9yIGkgPSAxLCA4IGRvIGN0eC5oW2ldID0gaXZbaV0gZW5kICAtLSBzdGF0ZSwgInBhcmFtIGJsb2NrIgoKCWN0eC5oWzFdID0gY3R4LmhbMV0gfiAweDAxMDEwMDAwIH4gKGtleWxlbiA8PCA4KSB+IG91dGxlbgoKCWN0eC50WzFdID0gMCAgIC0taW5wdXQgY291bnQgbG93IHdvcmQKCgljdHgudFsyXSA9IDAgICAtLWlucHV0IGNvdW50IGhpZ2ggd29yZAoKCS0tIHplcm8gaW5wdXQgYmxvY2sKCgljdHguYiA9ICIiCgoJaWYga2V5bGVuID4gMCB0aGVuCgoJCXVwZGF0ZShjdHgsIGtleSkKCgkJLS0gY3R4LmMgPSAxMjggLS0gIHBhZCBiIHdpdGggemVybyBieXRlcwoKCQljdHguYiA9IGN0eC5iIC4uIHN0cmluZy5yZXAoJ1wwJywgMTI4IC0gI2N0eC5iKQoKCQlhc3NlcnQoI2N0eC5iID09IDEyOCkKCgllbmQKCglyZXR1cm4gY3R4CgplbmQKCgoKdXBkYXRlID0gZnVuY3Rpb24oY3R4LCBkYXRhKQoKCS0tIGJ1ZmZlciBtZ3QgY2Fubm90IGJlIGRvbmUgdGhlIEMgd2F5Li4KCglsb2NhbCBibG4sIHJsbiwgaWxuCgoJbG9jYWwgaSA9IDEgLS0gaW5kZXggb2YgMXN0IGJ5dGUgdG8gcHJvY2VzcyBpbiBkYXRhCgoJd2hpbGUgdHJ1ZSBkbwoKCQlibG4gPSAjY3R4LmIgIC0tIGN1cnJlbnQgbnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBpbnB1dCBidWZmZXIKCgkJYXNzZXJ0KGJsbiA8PSAxMjgpCgoJCWlmIGJsbiA9PSAxMjggdGhlbiAtLWN0eC5iIGlzIGZ1bGw7IHByb2Nlc3MgaXQuCgoJCQktLSBhZGQgY291bnRlcnMKCgkJCWN0eC50WzFdID0gY3R4LnRbMV0gKyAxMjgKCgkJCS0tIHdhcm5pbmc6IHRoaXMgaXMgYSBzaWduZWQgNjRiaXQgYWRkaXRpb24KCgkJCS0tIGhlcmUgaXQgaXMgYXNzdW1lZCB0aGF0IHRoZSB0b3RhbCBpbnB1dCBpcyBsZXNzCgoJCQktLSB0aGFuIDJeNjMgYnl0ZXMgKHRoaXMgc2hvdWxkIGJlIGVub3VnaCBmb3IgYQoKCQkJLS0gcHVyZSBMdWEgaW1wbGVtZW50YXRpb24hKSA9PiBjdHgudFsxXSBvdmVyZmxvdyBpcyBpZ25vcmVkLgoKCQkJY29tcHJlc3MoY3R4LCBmYWxzZSkgICAtLSBmYWxzZSBtZWFucyBub3QgbGFzdAoKCQkJY3R4LmIgPSAiIiAtLSBlbXB0eSBidWZmZXIKCgkJZWxzZSAtLSBjdHguYiBpcyBub3QgZnVsbDsgYXBwZW5kIG1vcmUgYnl0ZXMgZnJvbSBkYXRhCgoJCQlybG4gPSAgMTI4IC0gYmxuICAtLSByZW1haW5pbmcgc3BhY2UgKGluIGJ5dGVzKSBpbiBjdHguYgoKCQkJaWxuID0gI2RhdGEgLSBpICsgMSAgLS0gbnVtYmVyIG9mIGJ5dGVzIHlldCB0byBwcm9jZXNzIGluIGRhdGEKCgkJCWlmIGlsbiA8IHJsbiB0aGVuCgoJCQkJY3R4LmIgPSBjdHguYiAuLiBkYXRhOnN1YihpLCBpICsgaWxuIC0xKQoKCQkJCS0tIGhlcmUsIGFsbCBkYXRhIGJ5dGVzIGhhdmUgYmVlbiBwcm9jZXNzZWQgb3IgcHV0IGluCgoJCQkJLS0gYnVmZmVyIGFuZCBidWZmZXIgaXMgbm90IGZ1bGwuIHdlIGFyZSBkb25lLgoKCQkJCWJyZWFrCgoJCQllbHNlCgoJCQkJY3R4LmIgPSBjdHguYiAuLiBkYXRhOnN1YihpLCBpICsgcmxuIC0xKQoKCQkJCWkgPSBpICsgcmxuCgoJCQllbmQKCgkJZW5kCgoJZW5kCgplbmQKCgoKbG9jYWwgZnVuY3Rpb24gZmluYWwoY3R4KQoKCS0tIGZpbmFsaXplIHRoZSBoYXNoIGFuZCByZXR1cm4gdGhlIGRpZ2VzdCBhcyBhIHN0cmluZwoKCS0tCgoJbG9jYWwgYmxuID0gI2N0eC5iCgoJLS0gYWRkIG51bWJlciBvZiByZW1haW5pbmcgYnl0ZXMgaW4gYnVmZmVyIChpZ25vcmUgY2Fycnkgb3ZlcmZsb3cpCgoJY3R4LnRbMV0gPSBjdHgudFsxXSArIGJsbgoKCS0tIHBhZCB0aGUgYnVmZmVyIHdpdGggemVybyBieXRlcwoKCWxvY2FsIHJsbiA9ICAxMjggLSBibG4gIC0tIHJlbWFpbmluZyBzcGFjZSAoaW4gYnl0ZXMpIGluIGN0eC5iCgoJY3R4LmIgPSBjdHguYiAuLiBzdHJpbmcucmVwKCdcMCcsIHJsbikKCgljb21wcmVzcyhjdHgsIHRydWUpIC0tIHRydWUgbWVhbnMgZmluYWwgYmxvY2sKCgktLSBleHRyYWN0IHRoZSBkaWdlc3QgKG91dGxlbiBieXRlcyBsb25nKQoKCWxvY2FsIG91dHRibCA9IHt9CgoJZm9yIGkgPSAwLCBjdHgub3V0bGVuIC0gMSBkbwoKCQlvdXR0YmxbaSsxXSA9IHN0cmluZy5jaGFyKAoKCQkJKGN0eC5oWyhpID4+IDMpICsgMV0gPj4gKDggKiAoaSAmIDcpKSkgJiAweGZmKQoKCWVuZAoKCWxvY2FsIGRpZyA9IHRhYmxlLmNvbmNhdChvdXR0YmwpCgoJcmV0dXJuIG91dHRibAoKZW5kCgoKCi0tLSBDYWxjdWxhdGVzIHRoZSBCTEFLRTJiIGhhc2ggb2YgdGhlIGdpdmVuIGRhdGEuCgotLS0gQHBhcmFtIGRhdGEgc3RyaW5nIC0gVGhlIGlucHV0IGRhdGEgdG8gYmUgaGFzaGVkLgoKLS0tIEBwYXJhbSBvdXRsZW4/IG51bWJlciAob3B0aW9uYWwpIC0gVGhlIGRlc2lyZWQgbGVuZ3RoIG9mIHRoZSBoYXNoIG91dHB1dC4gRGVmYXVsdHMgdG8gNjQuCgotLS0gQHBhcmFtIGtleT8gc3RyaW5nIChvcHRpb25hbCkgLSBUaGUga2V5IHRvIGJlIHVzZWQgZm9yIHRoZSBoYXNoIGNhbGN1bGF0aW9uLiBEZWZhdWx0cyB0byBhbiBlbXB0eSBzdHJpbmcuCgotLS0gQHJldHVybnMgdGFibGUgLSBBIHRhYmxlIGNvbnRhaW5pbmcgdGhlIGhhc2ggaW4gYnl0ZXMsIHN0cmluZywgYW5kIGhleCBmb3JtYXRzLgoKbG9jYWwgZnVuY3Rpb24gYmxhY2syYihkYXRhLCBvdXRsZW4sIGtleSkKCiAgICBsb2NhbCBjdHgsIG1zZyA9IGluaXQob3V0bGVuLCBrZXkpCgogICAgaWYgbm90IGN0eCB0aGVuIHJldHVybiBjdHgsIG1zZyBlbmQKCiAgICB1cGRhdGUoY3R4LCBkYXRhKQoKICAgIGxvY2FsIGJ5dGVzID0gZmluYWwoY3R4KQoKCWxvY2FsIGhhc2ggPSB0YWJsZS5jb25jYXQoYnl0ZXMpCgoKCiAgICBsb2NhbCBwdWJsaWMgPSB7fQoKCQoKCXB1YmxpYy5hc0J5dGVzID0gZnVuY3Rpb24oKQoKCQlyZXR1cm4gYnl0ZXMKCgllbmQKCgoKCXB1YmxpYy5hc1N0cmluZyA9IGZ1bmN0aW9uKCkKCgkJcmV0dXJuIGhhc2gKCgllbmQKCgoKCXB1YmxpYy5hc0hleCA9IGZ1bmN0aW9uKCkKCgkJcmV0dXJuIEhleC5zdHJpbmdUb0hleChoYXNoKQoKCWVuZAoKCgoJcmV0dXJuIHB1YmxpYwoKZW5kCgoKCnJldHVybiBibGFjazJiCgBsb2NhbCBNRDIgPSByZXF1aXJlKCIuY3J5cHRvLmRpZ2VzdC5tZDIiKQoKbG9jYWwgTUQ0ID0gcmVxdWlyZSgiLmNyeXB0by5kaWdlc3QubWQ0IikKCmxvY2FsIE1ENSA9IHJlcXVpcmUoIi5jcnlwdG8uZGlnZXN0Lm1kNSIpCgpsb2NhbCBTSEExID0gcmVxdWlyZSgiLmNyeXB0by5kaWdlc3Quc2hhMSIpCgpsb2NhbCBTSEEyXzI1NiA9IHJlcXVpcmUoIi5jcnlwdG8uZGlnZXN0LnNoYTJfMjU2IikKCmxvY2FsIFNIQTJfNTEyID0gcmVxdWlyZSgiLmNyeXB0by5kaWdlc3Quc2hhMl81MTIiKQoKbG9jYWwgU0hBMyA9IHJlcXVpcmUoIi5jcnlwdG8uZGlnZXN0LnNoYTMiKQoKbG9jYWwgQmxha2UyYiA9IHJlcXVpcmUoIi5jcnlwdG8uZGlnZXN0LmJsYWtlMmIiKQoKCgoKCmxvY2FsIGRpZ2VzdCA9IHsKCiAgICBfdmVyc2lvbiA9ICIwLjAuMSIsCgogICAgbWQyID0gTUQyLAoKICAgIG1kNCA9IE1ENCwKCiAgICBtZDUgPSBNRDUsCgogICAgc2hhMSA9IFNIQTEuc2hhMSwKCiAgICBzaGEyXzI1NiA9IFNIQTJfMjU2LnNoYTJfMjU2LAoKICAgIHNoYTJfNTEyID0gU0hBMl81MTIsCgogICAgc2hhM18yNTYgPSBTSEEzLnNoYTNfMjU2LAoKICAgIHNoYTNfNTEyID0gU0hBMy5zaGEzXzUxMiwKCiAgICBrZWNjYWsyNTYgPSBTSEEzLmtlY2NhazI1NiwKCiAgICBrZWNjYWs1MTIgPSBTSEEzLmtlY2NhazUxMiwKCiAgICBibGFrZTJiID0gQmxha2UyYgoKfQoKCgoKCgoKCgpyZXR1cm4gZGlnZXN0CgAAAAAAbG9jYWwgQml0ID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLmJpdCIpOwoKbG9jYWwgUXVldWUgPSByZXF1aXJlKCIuY3J5cHRvLnV0aWwucXVldWUiKTsKCgoKbG9jYWwgU1VCU1QgPSB7CgogIDB4MjksIDB4MkUsIDB4NDMsIDB4QzksIDB4QTIsIDB4RDgsIDB4N0MsIDB4MDEsIDB4M0QsIDB4MzYsIDB4NTQsIDB4QTEsIDB4RUMsIDB4RjAsIDB4MDYsIDB4MTMsCgogIDB4NjIsIDB4QTcsIDB4MDUsIDB4RjMsIDB4QzAsIDB4QzcsIDB4NzMsIDB4OEMsIDB4OTgsIDB4OTMsIDB4MkIsIDB4RDksIDB4QkMsIDB4NEMsIDB4ODIsIDB4Q0EsCgogIDB4MUUsIDB4OUIsIDB4NTcsIDB4M0MsIDB4RkQsIDB4RDQsIDB4RTAsIDB4MTYsIDB4NjcsIDB4NDIsIDB4NkYsIDB4MTgsIDB4OEEsIDB4MTcsIDB4RTUsIDB4MTIsCgogIDB4QkUsIDB4NEUsIDB4QzQsIDB4RDYsIDB4REEsIDB4OUUsIDB4REUsIDB4NDksIDB4QTAsIDB4RkIsIDB4RjUsIDB4OEUsIDB4QkIsIDB4MkYsIDB4RUUsIDB4N0EsCgogIDB4QTksIDB4NjgsIDB4NzksIDB4OTEsIDB4MTUsIDB4QjIsIDB4MDcsIDB4M0YsIDB4OTQsIDB4QzIsIDB4MTAsIDB4ODksIDB4MEIsIDB4MjIsIDB4NUYsIDB4MjEsCgogIDB4ODAsIDB4N0YsIDB4NUQsIDB4OUEsIDB4NUEsIDB4OTAsIDB4MzIsIDB4MjcsIDB4MzUsIDB4M0UsIDB4Q0MsIDB4RTcsIDB4QkYsIDB4RjcsIDB4OTcsIDB4MDMsCgogIDB4RkYsIDB4MTksIDB4MzAsIDB4QjMsIDB4NDgsIDB4QTUsIDB4QjUsIDB4RDEsIDB4RDcsIDB4NUUsIDB4OTIsIDB4MkEsIDB4QUMsIDB4NTYsIDB4QUEsIDB4QzYsCgogIDB4NEYsIDB4QjgsIDB4MzgsIDB4RDIsIDB4OTYsIDB4QTQsIDB4N0QsIDB4QjYsIDB4NzYsIDB4RkMsIDB4NkIsIDB4RTIsIDB4OUMsIDB4NzQsIDB4MDQsIDB4RjEsCgogIDB4NDUsIDB4OUQsIDB4NzAsIDB4NTksIDB4NjQsIDB4NzEsIDB4ODcsIDB4MjAsIDB4ODYsIDB4NUIsIDB4Q0YsIDB4NjUsIDB4RTYsIDB4MkQsIDB4QTgsIDB4MDIsCgogIDB4MUIsIDB4NjAsIDB4MjUsIDB4QUQsIDB4QUUsIDB4QjAsIDB4QjksIDB4RjYsIDB4MUMsIDB4NDYsIDB4NjEsIDB4NjksIDB4MzQsIDB4NDAsIDB4N0UsIDB4MEYsCgogIDB4NTUsIDB4NDcsIDB4QTMsIDB4MjMsIDB4REQsIDB4NTEsIDB4QUYsIDB4M0EsIDB4QzMsIDB4NUMsIDB4RjksIDB4Q0UsIDB4QkEsIDB4QzUsIDB4RUEsIDB4MjYsCgogIDB4MkMsIDB4NTMsIDB4MEQsIDB4NkUsIDB4ODUsIDB4MjgsIDB4ODQsIDB4MDksIDB4RDMsIDB4REYsIDB4Q0QsIDB4RjQsIDB4NDEsIDB4ODEsIDB4NEQsIDB4NTIsCgogIDB4NkEsIDB4REMsIDB4MzcsIDB4QzgsIDB4NkMsIDB4QzEsIDB4QUIsIDB4RkEsIDB4MjQsIDB4RTEsIDB4N0IsIDB4MDgsIDB4MEMsIDB4QkQsIDB4QjEsIDB4NEEsCgogIDB4NzgsIDB4ODgsIDB4OTUsIDB4OEIsIDB4RTMsIDB4NjMsIDB4RTgsIDB4NkQsIDB4RTksIDB4Q0IsIDB4RDUsIDB4RkUsIDB4M0IsIDB4MDAsIDB4MUQsIDB4MzksCgogIDB4RjIsIDB4RUYsIDB4QjcsIDB4MEUsIDB4NjYsIDB4NTgsIDB4RDAsIDB4RTQsIDB4QTYsIDB4NzcsIDB4NzIsIDB4RjgsIDB4RUIsIDB4NzUsIDB4NEIsIDB4MEEsCgogIDB4MzEsIDB4NDQsIDB4NTAsIDB4QjQsIDB4OEYsIDB4RUQsIDB4MUYsIDB4MUEsIDB4REIsIDB4OTksIDB4OEQsIDB4MzMsIDB4OUYsIDB4MTEsIDB4ODMsIDB4MTQgfTsKCgoKbG9jYWwgWE9SID0gQml0LmJ4b3I7CgoKCmxvY2FsIE1EMiA9IGZ1bmN0aW9uKHN0cmVhbSkKCiAgICBsb2NhbCBxdWV1ZSA9IFF1ZXVlKCk7CgogICAgbG9jYWwgcHVibGljID0ge30KCgoKICAgIGxvY2FsIFggPSB7fTsKCiAgICBmb3IgaSA9IDAsIDQ3IGRvCgogICAgICAgIFhbaV0gPSAweDAwOwoKICAgIGVuZAoKCgogICAgbG9jYWwgQyA9IHt9OwoKICAgIGZvciBpID0gMCwgMTUgZG8KCiAgICAgICAgQ1tpXSA9IDB4MDA7CgogICAgZW5kCgoKCiAgICBsb2NhbCBwcm9jZXNzQmxvY2sgPSBmdW5jdGlvbigpCgogICAgICAgIGxvY2FsIGJsb2NrID0ge307CgoKCiAgICAgICAgZm9yIGkgPSAwLCAxNSBkbwoKICAgICAgICAgICAgYmxvY2tbaV0gPSBxdWV1ZS5wb3AoKTsKCiAgICAgICAgZW5kCgoKCiAgICAgICAgZm9yIGkgPSAwLCAxNSBkbwoKICAgICAgICAgICAgWFtpICsgMTZdID0gYmxvY2tbaV07CgogICAgICAgICAgICBYW2kgKyAzMl0gPSBYT1IoWFtpXSwgYmxvY2tbaV0pOyAtLW1peAoKICAgICAgICBlbmQKCgoKICAgICAgICBsb2NhbCB0OwoKCgogICAgICAgIC0tdXBkYXRlIGJsb2NrCgogICAgICAgIHQgPSAwOwoKICAgICAgICBmb3IgaSA9IDAsIDE3IGRvCgogICAgICAgICAgICBmb3IgaiA9IDAsIDQ3IGRvCgogICAgICAgICAgICAgICAgWFtqXSA9IFhPUihYW2pdLCBTVUJTVFt0ICsgMV0pOwoKICAgICAgICAgICAgICAgIHQgPSBYW2pdOwoKICAgICAgICAgICAgZW5kCgogICAgICAgICAgICB0ID0gKHQgKyBpKSAlIDI1NjsKCiAgICAgICAgZW5kCgoKCiAgICAgICAgLS11cGRhdGUgY2hlY2tzdW0KCiAgICAgICAgdCA9IENbMTVdOwoKICAgICAgICBmb3IgaSA9IDAsIDE1IGRvCgogICAgICAgICAgICBDW2ldID0gWE9SKENbaV0sIFNVQlNUW1hPUihibG9ja1tpXSwgdCkgKyAxXSk7CgogICAgICAgICAgICB0ID0gQ1tpXTsKCiAgICAgICAgZW5kCgoKCiAgICBlbmQKCgoKICAgIGZvciBiIGluIHN0cmVhbSBkbwoKICAgICAgICBxdWV1ZS5wdXNoKGIpOwoKICAgICAgICBpZihxdWV1ZS5zaXplKCkgPj0gMTYpIHRoZW4gcHJvY2Vzc0Jsb2NrKCk7IGVuZAoKICAgIGVuZAoKCgogICAgbG9jYWwgaSA9IDE2IC0gcXVldWUuc2l6ZSgpOwoKCgogICAgd2hpbGUgcXVldWUuc2l6ZSgpIDwgMTYgZG8KCiAgICAgICAgcXVldWUucHVzaChpKTsKCiAgICBlbmQKCgoKICAgIHByb2Nlc3NCbG9jaygpOwoKCgogICAgcXVldWUucHVzaChDWyAwXSk7IHF1ZXVlLnB1c2goQ1sgMV0pOyBxdWV1ZS5wdXNoKENbIDJdKTsgcXVldWUucHVzaChDWyAzXSk7CgogICAgcXVldWUucHVzaChDWyA0XSk7IHF1ZXVlLnB1c2goQ1sgNV0pOyBxdWV1ZS5wdXNoKENbIDZdKTsgcXVldWUucHVzaChDWyA3XSk7CgogICAgcXVldWUucHVzaChDWyA4XSk7IHF1ZXVlLnB1c2goQ1sgOV0pOyBxdWV1ZS5wdXNoKENbMTBdKTsgcXVldWUucHVzaChDWzExXSk7CgogICAgcXVldWUucHVzaChDWzEyXSk7IHF1ZXVlLnB1c2goQ1sxM10pOyBxdWV1ZS5wdXNoKENbMTRdKTsgcXVldWUucHVzaChDWzE1XSk7CgoKCiAgICBwcm9jZXNzQmxvY2soKTsKCgoKICAgIHB1YmxpYy5hc0J5dGVzID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4ge1hbIDBdLCBYWyAxXSwgWFsgMl0sIFhbIDNdLCBYWyA0XSwgWFsgNV0sIFhbIDZdLCBYWyA3XSwKCiAgICAgICAgICAgICAgICBYWyA4XSwgWFsgOV0sIFhbMTBdLCBYWzExXSwgWFsxMl0sIFhbMTNdLCBYWzE0XSwgWFsxNV19OwoKICAgIGVuZAoKCgogICAgcHVibGljLmFzSGV4ID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gc3RyaW5nLmZvcm1hdCgiJTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCIsCgogICAgICAgICAgICAgICAgWFsgMF0sIFhbIDFdLCBYWyAyXSwgWFsgM10sIFhbIDRdLCBYWyA1XSwgWFsgNl0sIFhbIDddLAoKICAgICAgICAgICAgICAgIFhbIDhdLCBYWyA5XSwgWFsxMF0sIFhbMTFdLCBYWzEyXSwgWFsxM10sIFhbMTRdLCBYWzE1XSk7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuYXNTdHJpbmcgPSBmdW5jdGlvbigpCgogICAgICAgIHJldHVybiBzdHJpbmcucGFjayhzdHJpbmcucmVwKCdCJywgMTYpLAoKICAgICAgICAgICAgICAgIFhbIDBdLCBYWyAxXSwgWFsgMl0sIFhbIDNdLCBYWyA0XSwgWFsgNV0sIFhbIDZdLCBYWyA3XSwKCiAgICAgICAgICAgICAgICBYWyA4XSwgWFsgOV0sIFhbMTBdLCBYWzExXSwgWFsxMl0sIFhbMTNdLCBYWzE0XSwgWFsxNV0pOwoKICAgIGVuZAoKCgogICAgcmV0dXJuIHB1YmxpYzsKCgoKZW5kCgoKCnJldHVybiBNRDI7AAAAAABsb2NhbCBCaXQgPSByZXF1aXJlKCIuY3J5cHRvLnV0aWwuYml0Iik7Cgpsb2NhbCBRdWV1ZSA9IHJlcXVpcmUoIi5jcnlwdG8udXRpbC5xdWV1ZSIpOwoKCgpsb2NhbCBBTkQgPSBCaXQuYmFuZDsKCmxvY2FsIE9SICA9IEJpdC5ib3I7Cgpsb2NhbCBOT1QgPSBCaXQuYm5vdDsKCmxvY2FsIFhPUiA9IEJpdC5ieG9yOwoKbG9jYWwgTFJPVCA9IEJpdC5scm90YXRlOwoKbG9jYWwgTFNISUZUID0gQml0LmxzaGlmdDsKCmxvY2FsIFJTSElGVCA9IEJpdC5yc2hpZnQ7CgoKCi0tTUQ0IGlzIGxpdHRsZS1lbmRpYW4KCmxvY2FsIGJ5dGVzMndvcmQgPSBmdW5jdGlvbihiMCwgYjEsIGIyLCBiMykKCiAgICBsb2NhbCBpID0gYjM7IGkgPSBMU0hJRlQoaSwgOCk7CgogICAgaSA9IE9SKGksIGIyKTsgaSA9IExTSElGVChpLCA4KTsKCiAgICBpID0gT1IoaSwgYjEpOyBpID0gTFNISUZUKGksIDgpOwoKICAgIGkgPSBPUihpLCBiMCk7CgogICAgcmV0dXJuIGk7CgplbmQKCgoKbG9jYWwgd29yZDJieXRlcyA9IGZ1bmN0aW9uKHdvcmQpCgogICAgbG9jYWwgYjAsIGIxLCBiMiwgYjM7CgogICAgYjAgPSBBTkQod29yZCwgMHhGRik7IHdvcmQgPSBSU0hJRlQod29yZCwgOCk7CgogICAgYjEgPSBBTkQod29yZCwgMHhGRik7IHdvcmQgPSBSU0hJRlQod29yZCwgOCk7CgogICAgYjIgPSBBTkQod29yZCwgMHhGRik7IHdvcmQgPSBSU0hJRlQod29yZCwgOCk7CgogICAgYjMgPSBBTkQod29yZCwgMHhGRik7CgogICAgcmV0dXJuIGIwLCBiMSwgYjIsIGIzOwoKZW5kCgoKCmxvY2FsIGR3b3JkMmJ5dGVzID0gZnVuY3Rpb24oaSkKCiAgICBsb2NhbCBiNCwgYjUsIGI2LCBiNyA9IHdvcmQyYnl0ZXMobWF0aC5mbG9vcihpIC8gMHgxMDAwMDAwMDApKTsKCiAgICBsb2NhbCBiMCwgYjEsIGIyLCBiMyA9IHdvcmQyYnl0ZXMoaSk7CgogICAgcmV0dXJuIGIwLCBiMSwgYjIsIGIzLCBiNCwgYjUsIGI2LCBiNzsKCmVuZAoKCgpsb2NhbCBGID0gZnVuY3Rpb24oeCwgeSwgeikgcmV0dXJuIE9SKEFORCh4LCB5KSwgQU5EKE5PVCh4KSwgeikpOyBlbmQKCmxvY2FsIEcgPSBmdW5jdGlvbih4LCB5LCB6KSByZXR1cm4gT1IoQU5EKHgsIHkpLCBPUihBTkQoeCwgeiksIEFORCh5LCB6KSkpOyBlbmQKCmxvY2FsIEggPSBmdW5jdGlvbih4LCB5LCB6KSByZXR1cm4gWE9SKHgsIFhPUih5LCB6KSk7IGVuZAoKCgoKCmxvY2FsIE1ENCA9IGZ1bmN0aW9uKHN0cmVhbSkKCgoKICAgIGxvY2FsIHF1ZXVlID0gUXVldWUoKTsKCgoKICAgIGxvY2FsIEEgPSAweDY3NDUyMzAxOwoKICAgIGxvY2FsIEIgPSAweGVmY2RhYjg5OwoKICAgIGxvY2FsIEMgPSAweDk4YmFkY2ZlOwoKICAgIGxvY2FsIEQgPSAweDEwMzI1NDc2OwoKICAgIGxvY2FsIHB1YmxpYyA9IHt9OwoKCgogICAgbG9jYWwgcHJvY2Vzc0Jsb2NrID0gZnVuY3Rpb24oKQoKICAgICAgICBsb2NhbCBhID0gQTsKCiAgICAgICAgbG9jYWwgYiA9IEI7CgogICAgICAgIGxvY2FsIGMgPSBDOwoKICAgICAgICBsb2NhbCBkID0gRDsKCgoKICAgICAgICBsb2NhbCBYID0ge307CgoKCiAgICAgICAgZm9yIGkgPSAwLCAxNSBkbwoKICAgICAgICAgICAgWFtpXSA9IGJ5dGVzMndvcmQocXVldWUucG9wKCksIHF1ZXVlLnBvcCgpLCBxdWV1ZS5wb3AoKSwgcXVldWUucG9wKCkpOwoKICAgICAgICBlbmQKCgoKICAgICAgICBhID0gTFJPVChhICsgRihiLCBjLCBkKSArIFhbMF0sIDMpOwoKICAgICAgICBkID0gTFJPVChkICsgRihhLCBiLCBjKSArIFhbMV0sIDcpOwoKICAgICAgICBjID0gTFJPVChjICsgRihkLCBhLCBiKSArIFhbMl0sIDExKTsKCiAgICAgICAgYiA9IExST1QoYiArIEYoYywgZCwgYSkgKyBYWzNdLCAxOSk7CgoKCiAgICAgICAgYSA9IExST1QoYSArIEYoYiwgYywgZCkgKyBYWzRdLCAzKTsKCiAgICAgICAgZCA9IExST1QoZCArIEYoYSwgYiwgYykgKyBYWzVdLCA3KTsKCiAgICAgICAgYyA9IExST1QoYyArIEYoZCwgYSwgYikgKyBYWzZdLCAxMSk7CgogICAgICAgIGIgPSBMUk9UKGIgKyBGKGMsIGQsIGEpICsgWFs3XSwgMTkpOwoKCgogICAgICAgIGEgPSBMUk9UKGEgKyBGKGIsIGMsIGQpICsgWFs4XSwgMyk7CgogICAgICAgIGQgPSBMUk9UKGQgKyBGKGEsIGIsIGMpICsgWFs5XSwgNyk7CgogICAgICAgIGMgPSBMUk9UKGMgKyBGKGQsIGEsIGIpICsgWFsxMF0sIDExKTsKCiAgICAgICAgYiA9IExST1QoYiArIEYoYywgZCwgYSkgKyBYWzExXSwgMTkpOwoKCgogICAgICAgIGEgPSBMUk9UKGEgKyBGKGIsIGMsIGQpICsgWFsxMl0sIDMpOwoKICAgICAgICBkID0gTFJPVChkICsgRihhLCBiLCBjKSArIFhbMTNdLCA3KTsKCiAgICAgICAgYyA9IExST1QoYyArIEYoZCwgYSwgYikgKyBYWzE0XSwgMTEpOwoKICAgICAgICBiID0gTFJPVChiICsgRihjLCBkLCBhKSArIFhbMTVdLCAxOSk7CgoKCgoKICAgICAgICBhID0gTFJPVChhICsgRyhiLCBjLCBkKSArIFhbMF0gKyAweDVBODI3OTk5LCAzKTsKCiAgICAgICAgZCA9IExST1QoZCArIEcoYSwgYiwgYykgKyBYWzRdICsgMHg1QTgyNzk5OSwgNSk7CgogICAgICAgIGMgPSBMUk9UKGMgKyBHKGQsIGEsIGIpICsgWFs4XSArIDB4NUE4Mjc5OTksIDkpOwoKICAgICAgICBiID0gTFJPVChiICsgRyhjLCBkLCBhKSArIFhbMTJdICsgMHg1QTgyNzk5OSwgMTMpOwoKCgogICAgICAgIGEgPSBMUk9UKGEgKyBHKGIsIGMsIGQpICsgWFsxXSArIDB4NUE4Mjc5OTksIDMpOwoKICAgICAgICBkID0gTFJPVChkICsgRyhhLCBiLCBjKSArIFhbNV0gKyAweDVBODI3OTk5LCA1KTsKCiAgICAgICAgYyA9IExST1QoYyArIEcoZCwgYSwgYikgKyBYWzldICsgMHg1QTgyNzk5OSwgOSk7CgogICAgICAgIGIgPSBMUk9UKGIgKyBHKGMsIGQsIGEpICsgWFsxM10gKyAweDVBODI3OTk5LCAxMyk7CgoKCiAgICAgICAgYSA9IExST1QoYSArIEcoYiwgYywgZCkgKyBYWzJdICsgMHg1QTgyNzk5OSwgMyk7CgogICAgICAgIGQgPSBMUk9UKGQgKyBHKGEsIGIsIGMpICsgWFs2XSArIDB4NUE4Mjc5OTksIDUpOwoKICAgICAgICBjID0gTFJPVChjICsgRyhkLCBhLCBiKSArIFhbMTBdICsgMHg1QTgyNzk5OSwgOSk7CgogICAgICAgIGIgPSBMUk9UKGIgKyBHKGMsIGQsIGEpICsgWFsxNF0gKyAweDVBODI3OTk5LCAxMyk7CgoKCiAgICAgICAgYSA9IExST1QoYSArIEcoYiwgYywgZCkgKyBYWzNdICsgMHg1QTgyNzk5OSwgMyk7CgogICAgICAgIGQgPSBMUk9UKGQgKyBHKGEsIGIsIGMpICsgWFs3XSArIDB4NUE4Mjc5OTksIDUpOwoKICAgICAgICBjID0gTFJPVChjICsgRyhkLCBhLCBiKSArIFhbMTFdICsgMHg1QTgyNzk5OSwgOSk7CgogICAgICAgIGIgPSBMUk9UKGIgKyBHKGMsIGQsIGEpICsgWFsxNV0gKyAweDVBODI3OTk5LCAxMyk7CgoKCgoKICAgICAgICBhID0gTFJPVChhICsgSChiLCBjLCBkKSArIFhbMF0gKyAweDZFRDlFQkExLCAzKTsKCiAgICAgICAgZCA9IExST1QoZCArIEgoYSwgYiwgYykgKyBYWzhdICsgMHg2RUQ5RUJBMSwgOSk7CgogICAgICAgIGMgPSBMUk9UKGMgKyBIKGQsIGEsIGIpICsgWFs0XSArIDB4NkVEOUVCQTEsIDExKTsKCiAgICAgICAgYiA9IExST1QoYiArIEgoYywgZCwgYSkgKyBYWzEyXSArIDB4NkVEOUVCQTEsIDE1KTsKCgoKICAgICAgICBhID0gTFJPVChhICsgSChiLCBjLCBkKSArIFhbMl0gKyAweDZFRDlFQkExLCAzKTsKCiAgICAgICAgZCA9IExST1QoZCArIEgoYSwgYiwgYykgKyBYWzEwXSArIDB4NkVEOUVCQTEsIDkpOwoKICAgICAgICBjID0gTFJPVChjICsgSChkLCBhLCBiKSArIFhbNl0gKyAweDZFRDlFQkExLCAxMSk7CgogICAgICAgIGIgPSBMUk9UKGIgKyBIKGMsIGQsIGEpICsgWFsxNF0gKyAweDZFRDlFQkExLCAxNSk7CgoKCiAgICAgICAgYSA9IExST1QoYSArIEgoYiwgYywgZCkgKyBYWzFdICsgMHg2RUQ5RUJBMSwgMyk7CgogICAgICAgIGQgPSBMUk9UKGQgKyBIKGEsIGIsIGMpICsgWFs5XSArIDB4NkVEOUVCQTEsIDkpOwoKICAgICAgICBjID0gTFJPVChjICsgSChkLCBhLCBiKSArIFhbNV0gKyAweDZFRDlFQkExLCAxMSk7CgogICAgICAgIGIgPSBMUk9UKGIgKyBIKGMsIGQsIGEpICsgWFsxM10gKyAweDZFRDlFQkExLCAxNSk7CgoKCiAgICAgICAgYSA9IExST1QoYSArIEgoYiwgYywgZCkgKyBYWzNdICsgMHg2RUQ5RUJBMSwgMyk7CgogICAgICAgIGQgPSBMUk9UKGQgKyBIKGEsIGIsIGMpICsgWFsxMV0gKyAweDZFRDlFQkExLCA5KTsKCiAgICAgICAgYyA9IExST1QoYyArIEgoZCwgYSwgYikgKyBYWzddICsgMHg2RUQ5RUJBMSwgMTEpOwoKICAgICAgICBiID0gTFJPVChiICsgSChjLCBkLCBhKSArIFhbMTVdICsgMHg2RUQ5RUJBMSwgMTUpOwoKCgoKCiAgICAgICAgQSA9IEFORChBICsgYSwgMHhGRkZGRkZGRik7CgogICAgICAgIEIgPSBBTkQoQiArIGIsIDB4RkZGRkZGRkYpOwoKICAgICAgICBDID0gQU5EKEMgKyBjLCAweEZGRkZGRkZGKTsKCiAgICAgICAgRCA9IEFORChEICsgZCwgMHhGRkZGRkZGRik7CgogICAgZW5kCgogICAgCgoKCiAgICBmb3IgcyBpbiBzdHJlYW0gZG8KCiAgICAgICAgcXVldWUucHVzaChzKTsKCiAgICAgICAgaWYgKHF1ZXVlLnNpemUoKSA+PSA2NCkgdGhlbiBwcm9jZXNzQmxvY2soKTsgZW5kCgogICAgZW5kCgogICAgCgogICAgbG9jYWwgYml0cyA9IHF1ZXVlLmdldEhlYWQoKSAqIDg7CgoKCiAgICBxdWV1ZS5wdXNoKDB4ODApOwoKICAgIHdoaWxlICgocXVldWUuc2l6ZSgpICsgNykgJSA2NCkgPCA2MyBkbwoKICAgICAgICBxdWV1ZS5wdXNoKDB4MDApOwoKICAgIGVuZAoKCgogICAgbG9jYWwgYjAsIGIxLCBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3ID0gZHdvcmQyYnl0ZXMoYml0cyk7CgoKCiAgICBxdWV1ZS5wdXNoKGIwKTsKCiAgICBxdWV1ZS5wdXNoKGIxKTsKCiAgICBxdWV1ZS5wdXNoKGIyKTsKCiAgICBxdWV1ZS5wdXNoKGIzKTsKCiAgICBxdWV1ZS5wdXNoKGI0KTsKCiAgICBxdWV1ZS5wdXNoKGI1KTsKCiAgICBxdWV1ZS5wdXNoKGI2KTsKCiAgICBxdWV1ZS5wdXNoKGI3KTsKCgoKICAgIHdoaWxlIHF1ZXVlLnNpemUoKSA+IDAgZG8KCiAgICAgICAgcHJvY2Vzc0Jsb2NrKCk7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuYXNCeXRlcyA9IGZ1bmN0aW9uKCkKCiAgICAgICAgbG9jYWwgIGIwLCBiMSwgYjIsIGIzID0gd29yZDJieXRlcyhBKTsKCiAgICAgICAgbG9jYWwgIGI0LCBiNSwgYjYsIGI3ID0gd29yZDJieXRlcyhCKTsKCiAgICAgICAgbG9jYWwgIGI4LCBiOSwgYjEwLCBiMTEgPSB3b3JkMmJ5dGVzKEMpOwoKICAgICAgICBsb2NhbCBiMTIsIGIxMywgYjE0LCBiMTUgPSB3b3JkMmJ5dGVzKEQpOwoKCgogICAgICAgIHJldHVybiB7YjAsIGIxLCBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3LCBiOCwgYjksIGIxMCwgYjExLCBiMTIsIGIxMywgYjE0LCBiMTV9OwoKICAgIGVuZAoKCgogICAgcHVibGljLmFzSGV4ID0gZnVuY3Rpb24oKQoKICAgICAgICBsb2NhbCAgYjAsIGIxLCBiMiwgYjMgPSB3b3JkMmJ5dGVzKEEpOwoKICAgICAgICBsb2NhbCAgYjQsIGI1LCBiNiwgYjcgPSB3b3JkMmJ5dGVzKEIpOwoKICAgICAgICBsb2NhbCAgYjgsIGI5LCBiMTAsIGIxMSA9IHdvcmQyYnl0ZXMoQyk7CgogICAgICAgIGxvY2FsIGIxMiwgYjEzLCBiMTQsIGIxNSA9IHdvcmQyYnl0ZXMoRCk7CgoKCiAgICAgICAgcmV0dXJuIHN0cmluZy5mb3JtYXQoIiUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMngiLAoKICAgICAgICAgICAgICAgIGIwLCBiMSwgYjIsIGIzLCBiNCwgYjUsIGI2LCBiNywgYjgsIGI5LCBiMTAsIGIxMSwgYjEyLCBiMTMsIGIxNCwgYjE1KTsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5hc1N0cmluZyA9IGZ1bmN0aW9uKCkKCiAgICAgICAgbG9jYWwgIGIwLCBiMSwgYjIsIGIzID0gd29yZDJieXRlcyhBKTsKCiAgICAgICAgbG9jYWwgIGI0LCBiNSwgYjYsIGI3ID0gd29yZDJieXRlcyhCKTsKCiAgICAgICAgbG9jYWwgIGI4LCBiOSwgYjEwLCBiMTEgPSB3b3JkMmJ5dGVzKEMpOwoKICAgICAgICBsb2NhbCBiMTIsIGIxMywgYjE0LCBiMTUgPSB3b3JkMmJ5dGVzKEQpOwoKCgogICAgICAgIHJldHVybiBzdHJpbmcucGFjayhzdHJpbmcucmVwKCdCJywgMTYpLAoKICAgICAgICAgICAgICAgIGIwLCBiMSwgYjIsIGIzLCBiNCwgYjUsIGI2LCBiNywgYjgsIGI5LCBiMTAsIGIxMSwgYjEyLCBiMTMsIGIxNCwgYjE1KTsKCiAgICBlbmQKCgoKICAgIHJldHVybiBwdWJsaWM7CgoKCmVuZAoKCgpyZXR1cm4gTUQ0OwBBwKEOC5XdAWxvY2FsIEJpdCA9IHJlcXVpcmUoIi5jcnlwdG8udXRpbC5iaXQiKTsKCmxvY2FsIFF1ZXVlID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLnF1ZXVlIik7CgoKCmxvY2FsIFNISUZUID0gewoKICAgIDcsIDEyLCAxNywgMjIsICA3LCAxMiwgMTcsIDIyLCAgNywgMTIsIDE3LCAyMiwgIDcsIDEyLCAxNywgMjIsCgogICAgNSwgIDksIDE0LCAyMCwgIDUsICA5LCAxNCwgMjAsICA1LCAgOSwgMTQsIDIwLCAgNSwgIDksIDE0LCAyMCwKCiAgICA0LCAxMSwgMTYsIDIzLCAgNCwgMTEsIDE2LCAyMywgIDQsIDExLCAxNiwgMjMsICA0LCAxMSwgMTYsIDIzLAoKICAgIDYsIDEwLCAxNSwgMjEsICA2LCAxMCwgMTUsIDIxLCAgNiwgMTAsIDE1LCAyMSwgIDYsIDEwLCAxNSwgMjF9OwoKCgpsb2NhbCBDT05TVEFOVFMgPSB7CgogICAgMHhkNzZhYTQ3OCwgMHhlOGM3Yjc1NiwgMHgyNDIwNzBkYiwgMHhjMWJkY2VlZSwKCiAgICAweGY1N2MwZmFmLCAweDQ3ODdjNjJhLCAweGE4MzA0NjEzLCAweGZkNDY5NTAxLAoKICAgIDB4Njk4MDk4ZDgsIDB4OGI0NGY3YWYsIDB4ZmZmZjViYjEsIDB4ODk1Y2Q3YmUsCgogICAgMHg2YjkwMTEyMiwgMHhmZDk4NzE5MywgMHhhNjc5NDM4ZSwgMHg0OWI0MDgyMSwKCiAgICAweGY2MWUyNTYyLCAweGMwNDBiMzQwLCAweDI2NWU1YTUxLCAweGU5YjZjN2FhLAoKICAgIDB4ZDYyZjEwNWQsIDB4MDI0NDE0NTMsIDB4ZDhhMWU2ODEsIDB4ZTdkM2ZiYzgsCgogICAgMHgyMWUxY2RlNiwgMHhjMzM3MDdkNiwgMHhmNGQ1MGQ4NywgMHg0NTVhMTRlZCwKCiAgICAweGE5ZTNlOTA1LCAweGZjZWZhM2Y4LCAweDY3NmYwMmQ5LCAweDhkMmE0YzhhLAoKICAgIDB4ZmZmYTM5NDIsIDB4ODc3MWY2ODEsIDB4NmQ5ZDYxMjIsIDB4ZmRlNTM4MGMsCgogICAgMHhhNGJlZWE0NCwgMHg0YmRlY2ZhOSwgMHhmNmJiNGI2MCwgMHhiZWJmYmM3MCwKCiAgICAweDI4OWI3ZWM2LCAweGVhYTEyN2ZhLCAweGQ0ZWYzMDg1LCAweDA0ODgxZDA1LAoKICAgIDB4ZDlkNGQwMzksIDB4ZTZkYjk5ZTUsIDB4MWZhMjdjZjgsIDB4YzRhYzU2NjUsCgogICAgMHhmNDI5MjI0NCwgMHg0MzJhZmY5NywgMHhhYjk0MjNhNywgMHhmYzkzYTAzOSwKCiAgICAweDY1NWI1OWMzLCAweDhmMGNjYzkyLCAweGZmZWZmNDdkLCAweDg1ODQ1ZGQxLAoKICAgIDB4NmZhODdlNGYsIDB4ZmUyY2U2ZTAsIDB4YTMwMTQzMTQsIDB4NGUwODExYTEsCgogICAgMHhmNzUzN2U4MiwgMHhiZDNhZjIzNSwgMHgyYWQ3ZDJiYiwgMHhlYjg2ZDM5MX07CgoKCmxvY2FsIEFORCA9IEJpdC5iYW5kOwoKbG9jYWwgT1IgID0gQml0LmJvcjsKCmxvY2FsIE5PVCA9IEJpdC5ibm90OwoKbG9jYWwgWE9SID0gQml0LmJ4b3I7Cgpsb2NhbCBMUk9UID0gQml0Lmxyb3RhdGU7Cgpsb2NhbCBMU0hJRlQgPSBCaXQubHNoaWZ0OwoKbG9jYWwgUlNISUZUID0gQml0LnJzaGlmdDsKCgoKLS1NRDUgaXMgbGl0dGxlLWVuZGlhbgoKbG9jYWwgYnl0ZXMyd29yZCA9IGZ1bmN0aW9uKGIwLCBiMSwgYjIsIGIzKQoKICAgIGxvY2FsIGkgPSBiMzsgaSA9IExTSElGVChpLCA4KTsKCiAgICBpID0gT1IoaSwgYjIpOyBpID0gTFNISUZUKGksIDgpOwoKICAgIGkgPSBPUihpLCBiMSk7IGkgPSBMU0hJRlQoaSwgOCk7CgogICAgaSA9IE9SKGksIGIwKTsKCiAgICByZXR1cm4gaTsKCmVuZAoKCgpsb2NhbCB3b3JkMmJ5dGVzID0gZnVuY3Rpb24od29yZCkKCiAgICBsb2NhbCBiMCwgYjEsIGIyLCBiMzsKCiAgICBiMCA9IEFORCh3b3JkLCAweEZGKTsgd29yZCA9IFJTSElGVCh3b3JkLCA4KTsKCiAgICBiMSA9IEFORCh3b3JkLCAweEZGKTsgd29yZCA9IFJTSElGVCh3b3JkLCA4KTsKCiAgICBiMiA9IEFORCh3b3JkLCAweEZGKTsgd29yZCA9IFJTSElGVCh3b3JkLCA4KTsKCiAgICBiMyA9IEFORCh3b3JkLCAweEZGKTsKCiAgICByZXR1cm4gYjAsIGIxLCBiMiwgYjM7CgplbmQKCgoKbG9jYWwgZHdvcmQyYnl0ZXMgPSBmdW5jdGlvbihpKQoKICAgIGxvY2FsIGI0LCBiNSwgYjYsIGI3ID0gd29yZDJieXRlcyhtYXRoLmZsb29yKGkgLyAweDEwMDAwMDAwMCkpOwoKICAgIGxvY2FsIGIwLCBiMSwgYjIsIGIzID0gd29yZDJieXRlcyhpKTsKCiAgICByZXR1cm4gYjAsIGIxLCBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3OwoKZW5kCgoKCmxvY2FsIEYgPSBmdW5jdGlvbih4LCB5LCB6KSByZXR1cm4gT1IoQU5EKHgsIHkpLCBBTkQoTk9UKHgpLCB6KSk7IGVuZAoKbG9jYWwgRyA9IGZ1bmN0aW9uKHgsIHksIHopIHJldHVybiBPUihBTkQoeCwgeiksIEFORCh5LCBOT1QoeikpKTsgZW5kCgpsb2NhbCBIID0gZnVuY3Rpb24oeCwgeSwgeikgcmV0dXJuIFhPUih4LCBYT1IoeSwgeikpOyBlbmQKCmxvY2FsIEkgPSBmdW5jdGlvbih4LCB5LCB6KSByZXR1cm4gWE9SKHksIE9SKHgsIE5PVCh6KSkpOyBlbmQKCgoKbG9jYWwgTUQ1ID0gZnVuY3Rpb24oc3RyZWFtKQoKCgogICAgbG9jYWwgcXVldWUgPSBRdWV1ZSgpOwoKCgogICAgbG9jYWwgQSA9IDB4Njc0NTIzMDE7CgogICAgbG9jYWwgQiA9IDB4ZWZjZGFiODk7CgogICAgbG9jYWwgQyA9IDB4OThiYWRjZmU7CgogICAgbG9jYWwgRCA9IDB4MTAzMjU0NzY7CgogICAgbG9jYWwgcHVibGljID0ge307CgoKCiAgICBsb2NhbCBwcm9jZXNzQmxvY2sgPSBmdW5jdGlvbigpCgogICAgICAgIGxvY2FsIGEgPSBBOwoKICAgICAgICBsb2NhbCBiID0gQjsKCiAgICAgICAgbG9jYWwgYyA9IEM7CgogICAgICAgIGxvY2FsIGQgPSBEOwoKCgogICAgICAgIGxvY2FsIFggPSB7fTsKCgoKICAgICAgICBmb3IgaSA9IDEsIDE2IGRvCgogICAgICAgICAgICBYW2ldID0gYnl0ZXMyd29yZChxdWV1ZS5wb3AoKSwgcXVldWUucG9wKCksIHF1ZXVlLnBvcCgpLCBxdWV1ZS5wb3AoKSk7CgogICAgICAgIGVuZAoKCgogICAgICAgIGZvciBpID0gMCwgNjMgZG8KCiAgICAgICAgICAgIGxvY2FsIGYsIGcsIHRlbXA7CgoKCiAgICAgICAgICAgIGlmICgwIDw9IGkpIGFuZCAoaSA8PSAxNSkgdGhlbgoKICAgICAgICAgICAgICAgIGYgPSBGKGIsIGMsIGQpOwoKICAgICAgICAgICAgICAgIGcgPSBpOwoKICAgICAgICAgICAgZWxzZWlmICgxNiA8PSBpKSBhbmQgKGkgPD0gMzEpIHRoZW4KCiAgICAgICAgICAgICAgICBmID0gRyhiLCBjLCBkKTsKCiAgICAgICAgICAgICAgICBnID0gKDUgKiBpICsgMSkgJSAxNjsKCiAgICAgICAgICAgIGVsc2VpZiAoMzIgPD0gaSkgYW5kIChpIDw9IDQ3KSB0aGVuCgogICAgICAgICAgICAgICAgZiA9IEgoYiwgYywgZCk7CgogICAgICAgICAgICAgICAgZyA9ICgzICogaSArIDUpICUgMTY7CgogICAgICAgICAgICBlbHNlaWYgKDQ4IDw9IGkpIGFuZCAoaSA8PSA2MykgdGhlbgoKICAgICAgICAgICAgICAgIGYgPSBJKGIsIGMsIGQpOwoKICAgICAgICAgICAgICAgIGcgPSAoNyAqIGkpICUgMTY7CgogICAgICAgICAgICBlbmQKCiAgICAgICAgICAgIHRlbXAgPSBkOwoKICAgICAgICAgICAgZCA9IGM7CgogICAgICAgICAgICBjID0gYjsKCiAgICAgICAgICAgIGIgPSBiICsgTFJPVCgoYSArIGYgKyBDT05TVEFOVFNbaSArIDFdICsgWFtnICsgMV0pLCBTSElGVFtpICsgMV0pOwoKICAgICAgICAgICAgYSA9IHRlbXA7CgogICAgICAgIGVuZAoKCgogICAgICAgIEEgPSBBTkQoQSArIGEsIDB4RkZGRkZGRkYpOwoKICAgICAgICBCID0gQU5EKEIgKyBiLCAweEZGRkZGRkZGKTsKCiAgICAgICAgQyA9IEFORChDICsgYywgMHhGRkZGRkZGRik7CgogICAgICAgIEQgPSBBTkQoRCArIGQsIDB4RkZGRkZGRkYpOwoKICAgIGVuZAoKCgogICAgZm9yIHMgaW4gc3RyZWFtIGRvCgogICAgICAgIHF1ZXVlLnB1c2gocyk7CgogICAgICAgIGlmIChxdWV1ZS5zaXplKCkgPj0gNjQpIHRoZW4gcHJvY2Vzc0Jsb2NrKCk7IGVuZAoKICAgIGVuZAoKCgogICAgbG9jYWwgYml0cyA9IHF1ZXVlLmdldEhlYWQoKSAqIDg7CgoKCiAgICBxdWV1ZS5wdXNoKDB4ODApOwoKICAgIHdoaWxlICgocXVldWUuc2l6ZSgpICsgNykgJSA2NCkgPCA2MyBkbwoKICAgICAgICBxdWV1ZS5wdXNoKDB4MDApOwoKICAgIGVuZAoKCgogICAgbG9jYWwgYjAsIGIxLCBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3ID0gZHdvcmQyYnl0ZXMoYml0cyk7CgoKCiAgICBxdWV1ZS5wdXNoKGIwKTsKCiAgICBxdWV1ZS5wdXNoKGIxKTsKCiAgICBxdWV1ZS5wdXNoKGIyKTsKCiAgICBxdWV1ZS5wdXNoKGIzKTsKCiAgICBxdWV1ZS5wdXNoKGI0KTsKCiAgICBxdWV1ZS5wdXNoKGI1KTsKCiAgICBxdWV1ZS5wdXNoKGI2KTsKCiAgICBxdWV1ZS5wdXNoKGI3KTsKCgoKICAgIHdoaWxlIHF1ZXVlLnNpemUoKSA+IDAgZG8KCiAgICAgICAgcHJvY2Vzc0Jsb2NrKCk7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuYXNCeXRlcyA9IGZ1bmN0aW9uKCkKCiAgICAgICAgbG9jYWwgIGIwLCBiMSwgYjIsIGIzID0gd29yZDJieXRlcyhBKTsKCiAgICAgICAgbG9jYWwgIGI0LCBiNSwgYjYsIGI3ID0gd29yZDJieXRlcyhCKTsKCiAgICAgICAgbG9jYWwgIGI4LCBiOSwgYjEwLCBiMTEgPSB3b3JkMmJ5dGVzKEMpOwoKICAgICAgICBsb2NhbCBiMTIsIGIxMywgYjE0LCBiMTUgPSB3b3JkMmJ5dGVzKEQpOwoKCgogICAgICAgIHJldHVybiB7YjAsIGIxLCBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3LCBiOCwgYjksIGIxMCwgYjExLCBiMTIsIGIxMywgYjE0LCBiMTV9OwoKICAgIGVuZAoKCgogICAgcHVibGljLmFzSGV4ID0gZnVuY3Rpb24oKQoKICAgICAgICBsb2NhbCAgYjAsIGIxLCBiMiwgYjMgPSB3b3JkMmJ5dGVzKEEpOwoKICAgICAgICBsb2NhbCAgYjQsIGI1LCBiNiwgYjcgPSB3b3JkMmJ5dGVzKEIpOwoKICAgICAgICBsb2NhbCAgYjgsIGI5LCBiMTAsIGIxMSA9IHdvcmQyYnl0ZXMoQyk7CgogICAgICAgIGxvY2FsIGIxMiwgYjEzLCBiMTQsIGIxNSA9IHdvcmQyYnl0ZXMoRCk7CgoKCiAgICAgICAgcmV0dXJuIHN0cmluZy5mb3JtYXQoIiUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMngiLAoKICAgICAgICAgICAgICAgIGIwLCBiMSwgYjIsIGIzLCBiNCwgYjUsIGI2LCBiNywgYjgsIGI5LCBiMTAsIGIxMSwgYjEyLCBiMTMsIGIxNCwgYjE1KTsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5hc1N0cmluZyA9IGZ1bmN0aW9uKCkKCiAgICAgICAgbG9jYWwgYjAsIGIxLCBiMiwgYjMgPSB3b3JkMmJ5dGVzKEEpOwoKICAgICAgICBsb2NhbCBiNCwgYjUsIGI2LCBiNyA9IHdvcmQyYnl0ZXMoQik7CgogICAgICAgIGxvY2FsIGI4LCBiOSwgYjEwLCBiMTEgPSB3b3JkMmJ5dGVzKEMpOwoKICAgICAgICBsb2NhbCBiMTIsIGIxMywgYjE0LCBiMTUgPSB3b3JkMmJ5dGVzKEQpOwoKCgogICAgICAgIHJldHVybiBzdHJpbmcucGFjayhzdHJpbmcucmVwKCdCJywgMTYpLAoKICAgICAgICAgICAgYjAsIGIxLCBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3LCBiOCwKCiAgICAgICAgICAgIGI5LCBiMTAsIGIxMSwgYjEyLCBiMTMsIGIxNCwgYjE1CgogICAgICAgICkKCiAgICBlbmQKCgoKICAgIHJldHVybiBwdWJsaWM7CgoKCmVuZAoKCgpyZXR1cm4gTUQ1OwAAbG9jYWwgQml0ID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLmJpdCIpOwoKbG9jYWwgUXVldWUgPSByZXF1aXJlKCIuY3J5cHRvLnV0aWwucXVldWUiKTsKCgoKbG9jYWwgQU5EID0gQml0LmJhbmQ7Cgpsb2NhbCBPUiAgPSBCaXQuYm9yOwoKbG9jYWwgWE9SID0gQml0LmJ4b3I7Cgpsb2NhbCBMUk9UID0gQml0Lmxyb3RhdGU7Cgpsb2NhbCBMU0hJRlQgPSBCaXQubHNoaWZ0OwoKbG9jYWwgUlNISUZUID0gQml0LnJzaGlmdDsKCgoKLS1TSEExIGlzIGJpZy1lbmRpYW4KCmxvY2FsIGJ5dGVzMndvcmQgPSBmdW5jdGlvbihiMCwgYjEsIGIyLCBiMykKCiAgICBsb2NhbCBpID0gYjA7IGkgPSBMU0hJRlQoaSwgOCk7CgogICAgaSA9IE9SKGksIGIxKTsgaSA9IExTSElGVChpLCA4KTsKCiAgICBpID0gT1IoaSwgYjIpOyBpID0gTFNISUZUKGksIDgpOwoKICAgIGkgPSBPUihpLCBiMyk7CgogICAgcmV0dXJuIGk7CgplbmQKCgoKbG9jYWwgd29yZDJieXRlcyA9IGZ1bmN0aW9uKHdvcmQpCgogICAgbG9jYWwgYjAsIGIxLCBiMiwgYjM7CgogICAgYjMgPSBBTkQod29yZCwgMHhGRik7IHdvcmQgPSBSU0hJRlQod29yZCwgOCk7CgogICAgYjIgPSBBTkQod29yZCwgMHhGRik7IHdvcmQgPSBSU0hJRlQod29yZCwgOCk7CgogICAgYjEgPSBBTkQod29yZCwgMHhGRik7IHdvcmQgPSBSU0hJRlQod29yZCwgOCk7CgogICAgYjAgPSBBTkQod29yZCwgMHhGRik7CgogICAgcmV0dXJuIGIwLCBiMSwgYjIsIGIzOwoKZW5kCgoKCmxvY2FsIGR3b3JkMmJ5dGVzID0gZnVuY3Rpb24oaSkKCiAgICBsb2NhbCBiNCwgYjUsIGI2LCBiNyA9IHdvcmQyYnl0ZXMoaSk7CgogICAgbG9jYWwgYjAsIGIxLCBiMiwgYjMgPSB3b3JkMmJ5dGVzKG1hdGguZmxvb3IoaSAvIDB4MTAwMDAwMDAwKSk7CgogICAgcmV0dXJuIGIwLCBiMSwgYjIsIGIzLCBiNCwgYjUsIGI2LCBiNzsKCmVuZAoKCgpsb2NhbCBGID0gZnVuY3Rpb24oeCwgeSwgeikgcmV0dXJuIFhPUih6LCBBTkQoeCwgWE9SKHksIHopKSk7IGVuZAoKbG9jYWwgRyA9IGZ1bmN0aW9uKHgsIHksIHopIHJldHVybiBYT1IoeCwgWE9SKHksIHopKTsgZW5kCgpsb2NhbCBIID0gZnVuY3Rpb24oeCwgeSwgeikgcmV0dXJuIE9SKEFORCh4LCBPUih5LCB6KSksIEFORCh5LCB6KSk7IGVuZAoKbG9jYWwgSSA9IGZ1bmN0aW9uKHgsIHksIHopIHJldHVybiBYT1IoeCwgWE9SKHksIHopKTsgZW5kCgoKCmxvY2FsIFNIQTEgPSBmdW5jdGlvbigpCgoKCiAgICBsb2NhbCBxdWV1ZSA9IFF1ZXVlKCk7CgoKCiAgICBsb2NhbCBoMCA9IDB4Njc0NTIzMDE7CgogICAgbG9jYWwgaDEgPSAweEVGQ0RBQjg5OwoKICAgIGxvY2FsIGgyID0gMHg5OEJBRENGRTsKCiAgICBsb2NhbCBoMyA9IDB4MTAzMjU0NzY7CgogICAgbG9jYWwgaDQgPSAweEMzRDJFMUYwOwoKCgogICAgbG9jYWwgcHVibGljID0ge307CgoKCiAgICBsb2NhbCBwcm9jZXNzQmxvY2sgPSBmdW5jdGlvbigpCgogICAgICAgIGxvY2FsIGEgPSBoMDsKCiAgICAgICAgbG9jYWwgYiA9IGgxOwoKICAgICAgICBsb2NhbCBjID0gaDI7CgogICAgICAgIGxvY2FsIGQgPSBoMzsKCiAgICAgICAgbG9jYWwgZSA9IGg0OwoKICAgICAgICBsb2NhbCB0ZW1wOwoKICAgICAgICBsb2NhbCBrOwoKCgogICAgICAgIGxvY2FsIHcgPSB7fTsKCiAgICAgICAgZm9yIGkgPSAwLCAxNSBkbwoKICAgICAgICAgICAgd1tpXSA9IGJ5dGVzMndvcmQocXVldWUucG9wKCksIHF1ZXVlLnBvcCgpLCBxdWV1ZS5wb3AoKSwgcXVldWUucG9wKCkpOwoKICAgICAgICBlbmQKCgoKICAgICAgICBmb3IgaSA9IDE2LCA3OSBkbwoKICAgICAgICAgICAgd1tpXSA9IExST1QoKFhPUihYT1Iod1tpIC0gM10sIHdbaSAtIDhdKSwgWE9SKHdbaSAtIDE0XSwgd1tpIC0gMTZdKSkpLCAxKTsKCiAgICAgICAgZW5kCgoKCiAgICAgICAgZm9yIGkgPSAwLCA3OSBkbwoKICAgICAgICAgICAgaWYgKGkgPD0gMTkpIHRoZW4KCiAgICAgICAgICAgICAgICB0ZW1wID0gRihiLCBjLCBkKTsKCiAgICAgICAgICAgICAgICBrID0gMHg1QTgyNzk5OTsKCiAgICAgICAgICAgIGVsc2VpZiAoaSA8PSAzOSkgdGhlbgoKICAgICAgICAgICAgICAgIHRlbXAgPSBHKGIsIGMsIGQpOwoKICAgICAgICAgICAgICAgIGsgPSAweDZFRDlFQkExOwoKICAgICAgICAgICAgZWxzZWlmIChpIDw9IDU5KSB0aGVuCgogICAgICAgICAgICAgICAgdGVtcCA9IEgoYiwgYywgZCk7CgogICAgICAgICAgICAgICAgayA9IDB4OEYxQkJDREM7CgogICAgICAgICAgICBlbHNlCgogICAgICAgICAgICAgICAgdGVtcCA9IEkoYiwgYywgZCk7CgogICAgICAgICAgICAgICAgayA9IDB4Q0E2MkMxRDY7CgogICAgICAgICAgICBlbmQKCiAgICAgICAgICAgIHRlbXAgPSBMUk9UKGEsIDUpICsgdGVtcCArIGUgKyBrICsgd1tpXTsKCiAgICAgICAgICAgIGUgPSBkOwoKICAgICAgICAgICAgZCA9IGM7CgogICAgICAgICAgICBjID0gTFJPVChiLCAzMCk7CgogICAgICAgICAgICBiID0gYTsKCiAgICAgICAgICAgIGEgPSB0ZW1wOwoKICAgICAgICBlbmQKCgoKICAgICAgICBoMCA9IEFORChoMCArIGEsIDB4RkZGRkZGRkYpOwoKICAgICAgICBoMSA9IEFORChoMSArIGIsIDB4RkZGRkZGRkYpOwoKICAgICAgICBoMiA9IEFORChoMiArIGMsIDB4RkZGRkZGRkYpOwoKICAgICAgICBoMyA9IEFORChoMyArIGQsIDB4RkZGRkZGRkYpOwoKICAgICAgICBoNCA9IEFORChoNCArIGUsIDB4RkZGRkZGRkYpOwoKICAgIGVuZAoKCgogICAgcHVibGljLmluaXQgPSBmdW5jdGlvbigpCgogICAgICAgIHF1ZXVlLnJlc2V0KCk7CgogICAgICAgIGgwID0gMHg2NzQ1MjMwMTsKCiAgICAgICAgaDEgPSAweEVGQ0RBQjg5OwoKICAgICAgICBoMiA9IDB4OThCQURDRkU7CgogICAgICAgIGgzID0gMHgxMDMyNTQ3NjsKCiAgICAgICAgaDQgPSAweEMzRDJFMUYwOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgoKCiAgICBwdWJsaWMudXBkYXRlID0gZnVuY3Rpb24oYnl0ZXMpCgogICAgICAgIGZvciBiIGluIGJ5dGVzIGRvCgogICAgICAgICAgICBxdWV1ZS5wdXNoKGIpOwoKICAgICAgICAgICAgaWYgcXVldWUuc2l6ZSgpID49IDY0IHRoZW4gcHJvY2Vzc0Jsb2NrKCk7IGVuZAoKICAgICAgICBlbmQKCgoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLmZpbmlzaCA9IGZ1bmN0aW9uKCkKCiAgICAgICAgbG9jYWwgYml0cyA9IHF1ZXVlLmdldEhlYWQoKSAqIDg7CgoKCiAgICAgICAgcXVldWUucHVzaCgweDgwKTsKCiAgICAgICAgd2hpbGUgKChxdWV1ZS5zaXplKCkgKyA3KSAlIDY0KSA8IDYzIGRvCgogICAgICAgICAgICBxdWV1ZS5wdXNoKDB4MDApOwoKICAgICAgICBlbmQKCgoKICAgICAgICBsb2NhbCBiMCwgYjEsIGIyLCBiMywgYjQsIGI1LCBiNiwgYjcgPSBkd29yZDJieXRlcyhiaXRzKTsKCgoKICAgICAgICBxdWV1ZS5wdXNoKGIwKTsKCiAgICAgICAgcXVldWUucHVzaChiMSk7CgogICAgICAgIHF1ZXVlLnB1c2goYjIpOwoKICAgICAgICBxdWV1ZS5wdXNoKGIzKTsKCiAgICAgICAgcXVldWUucHVzaChiNCk7CgogICAgICAgIHF1ZXVlLnB1c2goYjUpOwoKICAgICAgICBxdWV1ZS5wdXNoKGI2KTsKCiAgICAgICAgcXVldWUucHVzaChiNyk7CgoKCiAgICAgICAgd2hpbGUgcXVldWUuc2l6ZSgpID4gMCBkbwoKICAgICAgICAgICAgcHJvY2Vzc0Jsb2NrKCk7CgogICAgICAgIGVuZAoKCgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuYXNCeXRlcyA9IGZ1bmN0aW9uKCkKCiAgICAgICAgbG9jYWwgIGIwLCBiMSwgYjIsIGIzID0gd29yZDJieXRlcyhoMCk7CgogICAgICAgIGxvY2FsICBiNCwgYjUsIGI2LCBiNyA9IHdvcmQyYnl0ZXMoaDEpOwoKICAgICAgICBsb2NhbCAgYjgsIGI5LCBiMTAsIGIxMSA9IHdvcmQyYnl0ZXMoaDIpOwoKICAgICAgICBsb2NhbCBiMTIsIGIxMywgYjE0LCBiMTUgPSB3b3JkMmJ5dGVzKGgzKTsKCiAgICAgICAgbG9jYWwgYjE2LCBiMTcsIGIxOCwgYjE5ID0gd29yZDJieXRlcyhoNCk7CgoKCiAgICAgICAgcmV0dXJuIHtiMCwgYjEsIGIyLCBiMywgYjQsIGI1LCBiNiwgYjcsIGI4LCBiOSwgYjEwLCBiMTEsIGIxMiwgYjEzLCBiMTQsIGIxNSwgYjE2LCBiMTcsIGIxOCwgYjE5fTsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5hc0hleCA9IGZ1bmN0aW9uKCkKCiAgICAgICAgbG9jYWwgIGIwLCBiMSwgYjIsIGIzID0gd29yZDJieXRlcyhoMCk7CgogICAgICAgIGxvY2FsICBiNCwgYjUsIGI2LCBiNyA9IHdvcmQyYnl0ZXMoaDEpOwoKICAgICAgICBsb2NhbCAgYjgsIGI5LCBiMTAsIGIxMSA9IHdvcmQyYnl0ZXMoaDIpOwoKICAgICAgICBsb2NhbCBiMTIsIGIxMywgYjE0LCBiMTUgPSB3b3JkMmJ5dGVzKGgzKTsKCiAgICAgICAgbG9jYWwgYjE2LCBiMTcsIGIxOCwgYjE5ID0gd29yZDJieXRlcyhoNCk7CgoKCiAgICAgICAgcmV0dXJuIHN0cmluZy5mb3JtYXQoIiUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4IiwKCiAgICAgICAgICAgICAgICBiMCwgYjEsIGIyLCBiMywgYjQsIGI1LCBiNiwgYjcsIGI4LCBiOSwgYjEwLCBiMTEsIGIxMiwgYjEzLCBiMTQsIGIxNSwgYjE2LCBiMTcsIGIxOCwgYjE5KTsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5hc1N0cmluZyA9IGZ1bmN0aW9uKCkKCiAgICAgICAgbG9jYWwgIGIwLCBiMSwgYjIsIGIzID0gd29yZDJieXRlcyhoMCk7CgogICAgICAgIGxvY2FsICBiNCwgYjUsIGI2LCBiNyA9IHdvcmQyYnl0ZXMoaDEpOwoKICAgICAgICBsb2NhbCAgYjgsIGI5LCBiMTAsIGIxMSA9IHdvcmQyYnl0ZXMoaDIpOwoKICAgICAgICBsb2NhbCBiMTIsIGIxMywgYjE0LCBiMTUgPSB3b3JkMmJ5dGVzKGgzKTsKCiAgICAgICAgbG9jYWwgYjE2LCBiMTcsIGIxOCwgYjE5ID0gd29yZDJieXRlcyhoNCk7CgoKCiAgICAgICAgcmV0dXJuIHN0cmluZy5wYWNrKHN0cmluZy5yZXAoJ0InLCAyMCksCgogICAgICAgICAgICAgICAgYjAsIGIxLCBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3LCBiOCwgYjksIGIxMCwgYjExLCBiMTIsIGIxMywgYjE0LCBiMTUsIGIxNiwgYjE3LCBiMTgsIGIxOSk7CgogICAgZW5kCgoKCiAgICByZXR1cm4gcHVibGljOwoKZW5kCgoKCgoKbG9jYWwgc2hhMSA9IGZ1bmN0aW9uKHN0cmVhbSkKCiAgICBsb2NhbCByZXN1bHQgPSBTSEExKCkKCiAgICAgICAgICAgIC51cGRhdGUoc3RyZWFtKQoKICAgICAgICAgICAgLmZpbmlzaCgpCgogICAgcmV0dXJuIHJlc3VsdAoKZW5kCgoKCnJldHVybiB7CgogICAgc2hhMSA9IHNoYTEsCgogICAgU0hBMSA9IFNIQTEKCn0AAAAAAAAAbG9jYWwgQml0ID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLmJpdCIpOwoKbG9jYWwgUXVldWUgPSByZXF1aXJlKCIuY3J5cHRvLnV0aWwucXVldWUiKTsKCmxvY2FsIFN0cmVhbSA9IHJlcXVpcmUoIi5jcnlwdG8udXRpbC5zdHJlYW0iKTsKCgoKbG9jYWwgQ09OU1RBTlRTID0gewoKICAgMHg0MjhhMmY5OCwgMHg3MTM3NDQ5MSwgMHhiNWMwZmJjZiwgMHhlOWI1ZGJhNSwgMHgzOTU2YzI1YiwgMHg1OWYxMTFmMSwgMHg5MjNmODJhNCwgMHhhYjFjNWVkNSwKCiAgIDB4ZDgwN2FhOTgsIDB4MTI4MzViMDEsIDB4MjQzMTg1YmUsIDB4NTUwYzdkYzMsIDB4NzJiZTVkNzQsIDB4ODBkZWIxZmUsIDB4OWJkYzA2YTcsIDB4YzE5YmYxNzQsCgogICAweGU0OWI2OWMxLCAweGVmYmU0Nzg2LCAweDBmYzE5ZGM2LCAweDI0MGNhMWNjLCAweDJkZTkyYzZmLCAweDRhNzQ4NGFhLCAweDVjYjBhOWRjLCAweDc2Zjk4OGRhLAoKICAgMHg5ODNlNTE1MiwgMHhhODMxYzY2ZCwgMHhiMDAzMjdjOCwgMHhiZjU5N2ZjNywgMHhjNmUwMGJmMywgMHhkNWE3OTE0NywgMHgwNmNhNjM1MSwgMHgxNDI5Mjk2NywKCiAgIDB4MjdiNzBhODUsIDB4MmUxYjIxMzgsIDB4NGQyYzZkZmMsIDB4NTMzODBkMTMsIDB4NjUwYTczNTQsIDB4NzY2YTBhYmIsIDB4ODFjMmM5MmUsIDB4OTI3MjJjODUsCgogICAweGEyYmZlOGExLCAweGE4MWE2NjRiLCAweGMyNGI4YjcwLCAweGM3NmM1MWEzLCAweGQxOTJlODE5LCAweGQ2OTkwNjI0LCAweGY0MGUzNTg1LCAweDEwNmFhMDcwLAoKICAgMHgxOWE0YzExNiwgMHgxZTM3NmMwOCwgMHgyNzQ4Nzc0YywgMHgzNGIwYmNiNSwgMHgzOTFjMGNiMywgMHg0ZWQ4YWE0YSwgMHg1YjljY2E0ZiwgMHg2ODJlNmZmMywKCiAgIDB4NzQ4ZjgyZWUsIDB4NzhhNTYzNmYsIDB4ODRjODc4MTQsIDB4OGNjNzAyMDgsIDB4OTBiZWZmZmEsIDB4YTQ1MDZjZWIsIDB4YmVmOWEzZjcsIDB4YzY3MTc4ZjIgIH07CgoKCmxvY2FsIGZtdCA9ICIlMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCIgLi4KCiAgICAgICAgICAgICIlMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMngiCgoKCmxvY2FsIEFORCA9IEJpdC5iYW5kOwoKbG9jYWwgT1IgID0gQml0LmJvcjsKCmxvY2FsIE5PVCA9IEJpdC5ibm90OwoKbG9jYWwgWE9SID0gQml0LmJ4b3I7Cgpsb2NhbCBSUk9UID0gQml0LnJyb3RhdGU7Cgpsb2NhbCBMU0hJRlQgPSBCaXQubHNoaWZ0OwoKbG9jYWwgUlNISUZUID0gQml0LnJzaGlmdDsKCgoKLS1TSEEyIGlzIGJpZy1lbmRpYW4KCmxvY2FsIGJ5dGVzMndvcmQgPSBmdW5jdGlvbihiMCwgYjEsIGIyLCBiMykKCiAgICBsb2NhbCBpID0gYjA7IGkgPSBMU0hJRlQoaSwgOCk7CgogICAgaSA9IE9SKGksIGIxKTsgaSA9IExTSElGVChpLCA4KTsKCiAgICBpID0gT1IoaSwgYjIpOyBpID0gTFNISUZUKGksIDgpOwoKICAgIGkgPSBPUihpLCBiMyk7CgogICAgcmV0dXJuIGk7CgplbmQKCgoKbG9jYWwgd29yZDJieXRlcyA9IGZ1bmN0aW9uKHdvcmQpCgogICAgbG9jYWwgYjAsIGIxLCBiMiwgYjM7CgogICAgYjMgPSBBTkQod29yZCwgMHhGRik7IHdvcmQgPSBSU0hJRlQod29yZCwgOCk7CgogICAgYjIgPSBBTkQod29yZCwgMHhGRik7IHdvcmQgPSBSU0hJRlQod29yZCwgOCk7CgogICAgYjEgPSBBTkQod29yZCwgMHhGRik7IHdvcmQgPSBSU0hJRlQod29yZCwgOCk7CgogICAgYjAgPSBBTkQod29yZCwgMHhGRik7CgogICAgcmV0dXJuIGIwLCBiMSwgYjIsIGIzOwoKZW5kCgoKCmxvY2FsIGR3b3JkMmJ5dGVzID0gZnVuY3Rpb24oaSkKCiAgICBsb2NhbCBiNCwgYjUsIGI2LCBiNyA9IHdvcmQyYnl0ZXMoaSk7CgogICAgbG9jYWwgYjAsIGIxLCBiMiwgYjMgPSB3b3JkMmJ5dGVzKG1hdGguZmxvb3IoaSAvIDB4MTAwMDAwMDAwKSk7CgogICAgcmV0dXJuIGIwLCBiMSwgYjIsIGIzLCBiNCwgYjUsIGI2LCBiNzsKCmVuZAoKCgoKCmxvY2FsIFNIQTJfMjU2ID0gZnVuY3Rpb24oKQoKCgogICAgbG9jYWwgcXVldWUgPSBRdWV1ZSgpOwoKCgogICAgbG9jYWwgaDAgPSAweDZhMDllNjY3OwoKICAgIGxvY2FsIGgxID0gMHhiYjY3YWU4NTsKCiAgICBsb2NhbCBoMiA9IDB4M2M2ZWYzNzI7CgogICAgbG9jYWwgaDMgPSAweGE1NGZmNTNhOwoKICAgIGxvY2FsIGg0ID0gMHg1MTBlNTI3ZjsKCiAgICBsb2NhbCBoNSA9IDB4OWIwNTY4OGM7CgogICAgbG9jYWwgaDYgPSAweDFmODNkOWFiOwoKICAgIGxvY2FsIGg3ID0gMHg1YmUwY2QxOTsKCgoKICAgIGxvY2FsIHB1YmxpYyA9IHt9OwoKCgogICAgbG9jYWwgcHJvY2Vzc0Jsb2NrID0gZnVuY3Rpb24oKQoKICAgICAgICBsb2NhbCBhID0gaDA7CgogICAgICAgIGxvY2FsIGIgPSBoMTsKCiAgICAgICAgbG9jYWwgYyA9IGgyOwoKICAgICAgICBsb2NhbCBkID0gaDM7CgogICAgICAgIGxvY2FsIGUgPSBoNDsKCiAgICAgICAgbG9jYWwgZiA9IGg1OwoKICAgICAgICBsb2NhbCBnID0gaDY7CgogICAgICAgIGxvY2FsIGggPSBoNzsKCgoKICAgICAgICBsb2NhbCB3ID0ge307CgoKCiAgICAgICAgZm9yIGkgPSAwLCAxNSBkbwoKICAgICAgICAgICAgd1tpXSA9IGJ5dGVzMndvcmQocXVldWUucG9wKCksIHF1ZXVlLnBvcCgpLCBxdWV1ZS5wb3AoKSwgcXVldWUucG9wKCkpOwoKICAgICAgICBlbmQKCgoKICAgICAgICBmb3IgaSA9IDE2LCA2MyBkbwoKICAgICAgICAgICAgbG9jYWwgczAgPSBYT1IoUlJPVCh3W2kgLSAxNV0sIDcpLCBYT1IoUlJPVCh3W2kgLSAxNV0sIDE4KSwgUlNISUZUKHdbaSAtIDE1XSwgMykpKTsKCiAgICAgICAgICAgIGxvY2FsIHMxID0gWE9SKFJST1Qod1tpIC0gMl0sIDE3KSwgWE9SKFJST1Qod1tpIC0gIDJdLCAxOSksIFJTSElGVCh3W2kgLSAyXSwgMTApKSk7CgogICAgICAgICAgICB3W2ldID0gQU5EKHdbaSAtIDE2XSArIHMwICsgd1tpIC0gN10gKyBzMSwgMHhGRkZGRkZGRik7CgogICAgICAgIGVuZAoKCgogICAgICAgIGZvciBpID0gMCwgNjMgZG8KCiAgICAgICAgICAgIGxvY2FsIHMxID0gWE9SKFJST1QoZSwgNiksIFhPUihSUk9UKGUsIDExKSwgUlJPVChlLCAyNSkpKTsKCiAgICAgICAgICAgIGxvY2FsIGNoID0gWE9SKEFORChlLCBmKSwgQU5EKE5PVChlKSwgZykpOwoKICAgICAgICAgICAgbG9jYWwgdGVtcDEgPSBoICsgczEgKyBjaCArIENPTlNUQU5UU1tpICsgMV0gKyB3W2ldOwoKICAgICAgICAgICAgbG9jYWwgczAgPSBYT1IoUlJPVChhLCAyKSwgWE9SKFJST1QoYSwgMTMpLCBSUk9UKGEsIDIyKSkpOwoKICAgICAgICAgICAgbG9jYWwgbWFqID0gWE9SKEFORChhLCBiKSwgWE9SKEFORChhLCBjKSwgQU5EKGIsIGMpKSk7CgogICAgICAgICAgICBsb2NhbCB0ZW1wMiA9IHMwICsgbWFqOwoKCgogICAgICAgICAgICBoID0gZzsKCiAgICAgICAgICAgIGcgPSBmOwoKICAgICAgICAgICAgZiA9IGU7CgogICAgICAgICAgICBlID0gZCArIHRlbXAxOwoKICAgICAgICAgICAgZCA9IGM7CgogICAgICAgICAgICBjID0gYjsKCiAgICAgICAgICAgIGIgPSBhOwoKICAgICAgICAgICAgYSA9IHRlbXAxICsgdGVtcDI7CgogICAgICAgIGVuZAoKCgogICAgICAgIGgwID0gQU5EKGgwICsgYSwgMHhGRkZGRkZGRik7CgogICAgICAgIGgxID0gQU5EKGgxICsgYiwgMHhGRkZGRkZGRik7CgogICAgICAgIGgyID0gQU5EKGgyICsgYywgMHhGRkZGRkZGRik7CgogICAgICAgIGgzID0gQU5EKGgzICsgZCwgMHhGRkZGRkZGRik7CgogICAgICAgIGg0ID0gQU5EKGg0ICsgZSwgMHhGRkZGRkZGRik7CgogICAgICAgIGg1ID0gQU5EKGg1ICsgZiwgMHhGRkZGRkZGRik7CgogICAgICAgIGg2ID0gQU5EKGg2ICsgZywgMHhGRkZGRkZGRik7CgogICAgICAgIGg3ID0gQU5EKGg3ICsgaCwgMHhGRkZGRkZGRik7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuaW5pdCA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcXVldWUucmVzZXQoKTsKCgoKICAgICAgICBoMCA9IDB4NmEwOWU2Njc7CgogICAgICAgIGgxID0gMHhiYjY3YWU4NTsKCiAgICAgICAgaDIgPSAweDNjNmVmMzcyOwoKICAgICAgICBoMyA9IDB4YTU0ZmY1M2E7CgogICAgICAgIGg0ID0gMHg1MTBlNTI3ZjsKCiAgICAgICAgaDUgPSAweDliMDU2ODhjOwoKICAgICAgICBoNiA9IDB4MWY4M2Q5YWI7CgogICAgICAgIGg3ID0gMHg1YmUwY2QxOTsKCgoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLnVwZGF0ZSA9IGZ1bmN0aW9uKGJ5dGVzKQoKICAgICAgICBmb3IgYiBpbiBieXRlcyBkbwoKICAgICAgICAgICAgcXVldWUucHVzaChiKTsKCiAgICAgICAgICAgIGlmIHF1ZXVlLnNpemUoKSA+PSA2NCB0aGVuIHByb2Nlc3NCbG9jaygpOyBlbmQKCiAgICAgICAgZW5kCgoKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5maW5pc2ggPSBmdW5jdGlvbigpCgogICAgICAgIGxvY2FsIGJpdHMgPSBxdWV1ZS5nZXRIZWFkKCkgKiA4OwoKCgogICAgICAgIHF1ZXVlLnB1c2goMHg4MCk7CgogICAgICAgIHdoaWxlICgocXVldWUuc2l6ZSgpICsgNykgJSA2NCkgPCA2MyBkbwoKICAgICAgICAgICAgcXVldWUucHVzaCgweDAwKTsKCiAgICAgICAgZW5kCgoKCiAgICAgICAgbG9jYWwgYjAsIGIxLCBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3ID0gZHdvcmQyYnl0ZXMoYml0cyk7CgoKCiAgICAgICAgcXVldWUucHVzaChiMCk7CgogICAgICAgIHF1ZXVlLnB1c2goYjEpOwoKICAgICAgICBxdWV1ZS5wdXNoKGIyKTsKCiAgICAgICAgcXVldWUucHVzaChiMyk7CgogICAgICAgIHF1ZXVlLnB1c2goYjQpOwoKICAgICAgICBxdWV1ZS5wdXNoKGI1KTsKCiAgICAgICAgcXVldWUucHVzaChiNik7CgogICAgICAgIHF1ZXVlLnB1c2goYjcpOwoKCgogICAgICAgIHdoaWxlIHF1ZXVlLnNpemUoKSA+IDAgZG8KCiAgICAgICAgICAgIHByb2Nlc3NCbG9jaygpOwoKICAgICAgICBlbmQKCgoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLmFzQnl0ZXMgPSBmdW5jdGlvbigpCgogICAgICAgIGxvY2FsICBiMCwgYjEsIGIyLCBiMyA9IHdvcmQyYnl0ZXMoaDApOwoKICAgICAgICBsb2NhbCAgYjQsIGI1LCBiNiwgYjcgPSB3b3JkMmJ5dGVzKGgxKTsKCiAgICAgICAgbG9jYWwgIGI4LCBiOSwgYjEwLCBiMTEgPSB3b3JkMmJ5dGVzKGgyKTsKCiAgICAgICAgbG9jYWwgYjEyLCBiMTMsIGIxNCwgYjE1ID0gd29yZDJieXRlcyhoMyk7CgogICAgICAgIGxvY2FsIGIxNiwgYjE3LCBiMTgsIGIxOSA9IHdvcmQyYnl0ZXMoaDQpOwoKICAgICAgICBsb2NhbCBiMjAsIGIyMSwgYjIyLCBiMjMgPSB3b3JkMmJ5dGVzKGg1KTsKCiAgICAgICAgbG9jYWwgYjI0LCBiMjUsIGIyNiwgYjI3ID0gd29yZDJieXRlcyhoNik7CgogICAgICAgIGxvY2FsIGIyOCwgYjI5LCBiMzAsIGIzMSA9IHdvcmQyYnl0ZXMoaDcpOwoKCgoKCiAgICAgICAgcmV0dXJuIHsgIGIwLCBiMSwgYjIsIGIzLCBiNCwgYjUsIGI2LCBiNywgYjgsIGI5LCBiMTAsIGIxMSwgYjEyLCBiMTMsIGIxNCwgYjE1CgogICAgICAgICAgICAgICAgLCBiMTYsIGIxNywgYjE4LCBiMTksIGIyMCwgYjIxLCBiMjIsIGIyMywgYjI0LCBiMjUsIGIyNiwgYjI3LCBiMjgsIGIyOSwgYjMwLCBiMzF9OwoKICAgIGVuZAoKCgogICAgcHVibGljLmFzSGV4ID0gZnVuY3Rpb24oKQoKICAgICAgICBsb2NhbCAgYjAsIGIxLCBiMiwgYjMgPSB3b3JkMmJ5dGVzKGgwKTsKCiAgICAgICAgbG9jYWwgIGI0LCBiNSwgYjYsIGI3ID0gd29yZDJieXRlcyhoMSk7CgogICAgICAgIGxvY2FsICBiOCwgYjksIGIxMCwgYjExID0gd29yZDJieXRlcyhoMik7CgogICAgICAgIGxvY2FsIGIxMiwgYjEzLCBiMTQsIGIxNSA9IHdvcmQyYnl0ZXMoaDMpOwoKICAgICAgICBsb2NhbCBiMTYsIGIxNywgYjE4LCBiMTkgPSB3b3JkMmJ5dGVzKGg0KTsKCiAgICAgICAgbG9jYWwgYjIwLCBiMjEsIGIyMiwgYjIzID0gd29yZDJieXRlcyhoNSk7CgogICAgICAgIGxvY2FsIGIyNCwgYjI1LCBiMjYsIGIyNyA9IHdvcmQyYnl0ZXMoaDYpOwoKICAgICAgICBsb2NhbCBiMjgsIGIyOSwgYjMwLCBiMzEgPSB3b3JkMmJ5dGVzKGg3KTsKCgoKICAgICAgICByZXR1cm4gc3RyaW5nLmZvcm1hdChmbXQsIGIwLCBiMSwgYjIsIGIzLCBiNCwgYjUsIGI2LCBiNywgYjgsIGI5LCBiMTAsIGIxMSwgYjEyLCBiMTMsIGIxNCwgYjE1CgogICAgICAgICAgICAgICAgLCBiMTYsIGIxNywgYjE4LCBiMTksIGIyMCwgYjIxLCBiMjIsIGIyMywgYjI0LCBiMjUsIGIyNiwgYjI3LCBiMjgsIGIyOSwgYjMwLCBiMzEpOwoKICAgIGVuZAoKCgogICAgcHVibGljLmFzU3RyaW5nID0gZnVuY3Rpb24oKQoKICAgICAgICBsb2NhbCBiMCwgYjEsIGIyLCBiMyA9IHdvcmQyYnl0ZXMoaDApOwoKICAgICAgICBsb2NhbCBiNCwgYjUsIGI2LCBiNyA9IHdvcmQyYnl0ZXMoaDEpOwoKICAgICAgICBsb2NhbCBiOCwgYjksIGIxMCwgYjExID0gd29yZDJieXRlcyhoMik7CgogICAgICAgIGxvY2FsIGIxMiwgYjEzLCBiMTQsIGIxNSA9IHdvcmQyYnl0ZXMoaDMpOwoKICAgICAgICBsb2NhbCBiMTYsIGIxNywgYjE4LCBiMTkgPSB3b3JkMmJ5dGVzKGg0KTsKCiAgICAgICAgbG9jYWwgYjIwLCBiMjEsIGIyMiwgYjIzID0gd29yZDJieXRlcyhoNSk7CgogICAgICAgIGxvY2FsIGIyNCwgYjI1LCBiMjYsIGIyNyA9IHdvcmQyYnl0ZXMoaDYpOwoKICAgICAgICBsb2NhbCBiMjgsIGIyOSwgYjMwLCBiMzEgPSB3b3JkMmJ5dGVzKGg3KTsKCgoKICAgICAgICByZXR1cm4gc3RyaW5nLnBhY2soc3RyaW5nLnJlcCgnQicsIDMyKSwKCiAgICAgICAgICAgIGIwLCBiMSwgYjIsIGIzLCBiNCwgYjUsIGI2LCBiNywgYjgsCgogICAgICAgICAgICBiOSwgYjEwLCBiMTEsIGIxMiwgYjEzLCBiMTQsIGIxNSwKCiAgICAgICAgICAgIGIxNiwgYjE3LCBiMTgsIGIxOSwgYjIwLCBiMjEsIGIyMiwgYjIzLCBiMjQsCgogICAgICAgICAgICBiMjUsIGIyNiwgYjI3LCBiMjgsIGIyOSwgYjMwLCBiMzEpOwoKICAgIGVuZAoKCgogICAgcmV0dXJuIHB1YmxpYzsKCgoKZW5kCgoKCi0tLSBAY2xhc3MgU3RyZWFtIDogdGFibGUKCgoKLS0tIEBwYXJhbSBzdHJlYW0gKFN0cmVhbSkgLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgbmV4dCBieXRlIG9mIHRoZSBzdHJlYW0sIG9yIG5pbCBpZiB0aGUgc3RyZWFtIGhhcyBlbmRlZC4KCi0tLSBAcmV0dXJucyB0YWJsZSAtIEEgdGFibGUgY29udGFpbmluZyB0aGUgaGFzaCBpbiBieXRlcywgc3RyaW5nLCBhbmQgaGV4IGZvcm1hdHMuCgpsb2NhbCBzaGEyXzI1NiA9IGZ1bmN0aW9uKHN0cmVhbSkKCiAgICBsb2NhbCByZXN1bHQgPSBTSEEyXzI1NigpCgogICAgICAgICAgICAudXBkYXRlKHN0cmVhbSkKCiAgICAgICAgICAgIC5maW5pc2goKQoKICAgIHJldHVybiByZXN1bHQKCmVuZAoKCgpyZXR1cm4gewoKICAgIHNoYTJfMjU2ID0gc2hhMl8yNTYsCgogICAgU0hBMl8yNTYgPSBTSEEyXzI1NgoKfTsKAABsb2NhbCBIZXggPSByZXF1aXJlKCIuY3J5cHRvLnV0aWwuaGV4IikKCgoKbG9jYWwgazUxMiA9IHsKCjB4NDI4YTJmOThkNzI4YWUyMiwweDcxMzc0NDkxMjNlZjY1Y2QsMHhiNWMwZmJjZmVjNGQzYjJmLDB4ZTliNWRiYTU4MTg5ZGJiYywKCjB4Mzk1NmMyNWJmMzQ4YjUzOCwweDU5ZjExMWYxYjYwNWQwMTksMHg5MjNmODJhNGFmMTk0ZjliLDB4YWIxYzVlZDVkYTZkODExOCwKCjB4ZDgwN2FhOThhMzAzMDI0MiwweDEyODM1YjAxNDU3MDZmYmUsMHgyNDMxODViZTRlZTRiMjhjLDB4NTUwYzdkYzNkNWZmYjRlMiwKCjB4NzJiZTVkNzRmMjdiODk2ZiwweDgwZGViMWZlM2IxNjk2YjEsMHg5YmRjMDZhNzI1YzcxMjM1LDB4YzE5YmYxNzRjZjY5MjY5NCwKCjB4ZTQ5YjY5YzE5ZWYxNGFkMiwweGVmYmU0Nzg2Mzg0ZjI1ZTMsMHgwZmMxOWRjNjhiOGNkNWI1LDB4MjQwY2ExY2M3N2FjOWM2NSwKCjB4MmRlOTJjNmY1OTJiMDI3NSwweDRhNzQ4NGFhNmVhNmU0ODMsMHg1Y2IwYTlkY2JkNDFmYmQ0LDB4NzZmOTg4ZGE4MzExNTNiNSwKCjB4OTgzZTUxNTJlZTY2ZGZhYiwweGE4MzFjNjZkMmRiNDMyMTAsMHhiMDAzMjdjODk4ZmIyMTNmLDB4YmY1OTdmYzdiZWVmMGVlNCwKCjB4YzZlMDBiZjMzZGE4OGZjMiwweGQ1YTc5MTQ3OTMwYWE3MjUsMHgwNmNhNjM1MWUwMDM4MjZmLDB4MTQyOTI5NjcwYTBlNmU3MCwKCjB4MjdiNzBhODU0NmQyMmZmYywweDJlMWIyMTM4NWMyNmM5MjYsMHg0ZDJjNmRmYzVhYzQyYWVkLDB4NTMzODBkMTM5ZDk1YjNkZiwKCjB4NjUwYTczNTQ4YmFmNjNkZSwweDc2NmEwYWJiM2M3N2IyYTgsMHg4MWMyYzkyZTQ3ZWRhZWU2LDB4OTI3MjJjODUxNDgyMzUzYiwKCjB4YTJiZmU4YTE0Y2YxMDM2NCwweGE4MWE2NjRiYmM0MjMwMDEsMHhjMjRiOGI3MGQwZjg5NzkxLDB4Yzc2YzUxYTMwNjU0YmUzMCwKCjB4ZDE5MmU4MTlkNmVmNTIxOCwweGQ2OTkwNjI0NTU2NWE5MTAsMHhmNDBlMzU4NTU3NzEyMDJhLDB4MTA2YWEwNzAzMmJiZDFiOCwKCjB4MTlhNGMxMTZiOGQyZDBjOCwweDFlMzc2YzA4NTE0MWFiNTMsMHgyNzQ4Nzc0Y2RmOGVlYjk5LDB4MzRiMGJjYjVlMTliNDhhOCwKCjB4MzkxYzBjYjNjNWM5NWE2MywweDRlZDhhYTRhZTM0MThhY2IsMHg1YjljY2E0Zjc3NjNlMzczLDB4NjgyZTZmZjNkNmIyYjhhMywKCjB4NzQ4ZjgyZWU1ZGVmYjJmYywweDc4YTU2MzZmNDMxNzJmNjAsMHg4NGM4NzgxNGExZjBhYjcyLDB4OGNjNzAyMDgxYTY0MzllYywKCjB4OTBiZWZmZmEyMzYzMWUyOCwweGE0NTA2Y2ViZGU4MmJkZTksMHhiZWY5YTNmN2IyYzY3OTE1LDB4YzY3MTc4ZjJlMzcyNTMyYiwKCjB4Y2EyNzNlY2VlYTI2NjE5YywweGQxODZiOGM3MjFjMGMyMDcsMHhlYWRhN2RkNmNkZTBlYjFlLDB4ZjU3ZDRmN2ZlZTZlZDE3OCwKCjB4MDZmMDY3YWE3MjE3NmZiYSwweDBhNjM3ZGM1YTJjODk4YTYsMHgxMTNmOTgwNGJlZjkwZGFlLDB4MWI3MTBiMzUxMzFjNDcxYiwKCjB4MjhkYjc3ZjUyMzA0N2Q4NCwweDMyY2FhYjdiNDBjNzI0OTMsMHgzYzllYmUwYTE1YzliZWJjLDB4NDMxZDY3YzQ5YzEwMGQ0YywKCjB4NGNjNWQ0YmVjYjNlNDJiNiwweDU5N2YyOTljZmM2NTdlMmEsMHg1ZmNiNmZhYjNhZDZmYWVjLDB4NmM0NDE5OGM0YTQ3NTgxNwoKfQoKCgpsb2NhbCBmdW5jdGlvbiBwYWQxMjgobXNnLCBsZW4pCgoJbG9jYWwgZXh0cmEgPSAxMjggLSAoKGxlbiArIDEgKyA4KSAlIDEyOCkKCglsZW4gPSBzdHJpbmcucGFjaygiPkk4IiwgbGVuICogOCkKCgltc2cgPSBtc2cgLi4gIlwxMjgiIC4uIHN0cmluZy5yZXAoIlwwIiwgZXh0cmEpIC4uIGxlbgoKCWFzc2VydCgjbXNnICUgMTI4ID09IDApCgoJcmV0dXJuIG1zZwoKZW5kCgoKCmxvY2FsIHd3NTEyID0ge30KCgoKLS0tIFNIQS01MTIgaGFzaCBmdW5jdGlvbi4KCi0tLSBAcGFyYW0gbXNnIHN0cmluZyAtIFRoZSBtZXNzYWdlIHRvIGhhc2guCgotLS0gQHJldHVybnMgdGFibGUgLSBBIHRhYmxlIGNvbnRhaW5pbmcgdGhlIGhhc2ggaW4gYnl0ZXMsIHN0cmluZywgYW5kIGhleCBmb3JtYXRzLgoKbG9jYWwgZnVuY3Rpb24gc2hhNTEyIChtc2cpCgoJbXNnID0gcGFkMTI4KG1zZywgI21zZykKCglsb2NhbCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBoNywgaDggPSAKCgkJMHg2YTA5ZTY2N2YzYmNjOTA4LCAweGJiNjdhZTg1ODRjYWE3M2IsCgoJCTB4M2M2ZWYzNzJmZTk0ZjgyYiwgMHhhNTRmZjUzYTVmMWQzNmYxLAoKCQkweDUxMGU1MjdmYWRlNjgyZDEsIDB4OWIwNTY4OGMyYjNlNmMxZiwKCgkJMHgxZjgzZDlhYmZiNDFiZDZiLCAweDViZTBjZDE5MTM3ZTIxNzkKCglsb2NhbCBrID0gazUxMgoKCWxvY2FsIHcgPSB3dzUxMgoKCWxvY2FsIG1sZW4gPSAjbXNnCgoKCglmb3IgaSA9IDEsIG1sZW4sIDEyOCBkbwoKCQl3WzFdLCB3WzJdLCB3WzNdLCB3WzRdLCB3WzVdLCB3WzZdLCB3WzddLCB3WzhdLCAKCgkJd1s5XSwgd1sxMF0sIHdbMTFdLCB3WzEyXSwgd1sxM10sIHdbMTRdLCB3WzE1XSwgd1sxNl0KCgkJPSBzdHJpbmcudW5wYWNrKCI+aThpOGk4aThpOGk4aThpOGk4aThpOGk4aThpOGk4aTgiLCBtc2csIGkpCgoJCS0tIG1peCBtc2cgYmxvY2sgaW4gc3RhdGUKCgoKCQlmb3IgaiA9IDE3LCA4MCBkbwoKCQkJbG9jYWwgYSA9IHdbai0xNV0KCgkJCWxvY2FsIGIgPSB3W2otMl0KCgkJCXdbal0gPSAoYSA+PiAxIH4gYSA+PiA3IH4gYSA+PiA4IH4gYSA8PCA1NiB+IGEgPDwgNjMpCgoJCQkgICsgKGIgPj4gNiB+IGIgPj4gMTkgfiBiID4+IDYxIH4gYiA8PCAzIH4gYiA8PCA0NSkgCgoJCQkgICsgd1tqLTddICsgd1tqLTE2XQoKCQllbmQKCgkJbG9jYWwgYSwgYiwgYywgZCwgZSwgZiwgZywgaCA9IGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIGg3LCBoOAoKCQktLSBtYWluIHN0YXRlIHBlcm11dGF0aW9uCgoJCWZvciBqID0gMSwgODAgZG8KCgkJCWxvY2FsIHogPSAoZSA+PiAxNCB+IGUgPj4gMTggfiBlID4+IDQxIH4gZSA8PCAyMyAKCgkJCQkgICB+IGUgPDwgNDYgfiBlIDw8IDUwKSAKCgkJCQkrIChnIH4gZSAmIChmIH4gZykpICsgaCArIGtbal0gKyB3W2pdCgoJCQloID0gZwoKCQkJZyA9IGYKCgkJCWYgPSBlCgoJCQllID0geiArIGQKCgkJCWQgPSBjCgoJCQljID0gYgoKCQkJYiA9IGEKCgkJCWEgPSB6ICsgKChhIH4gYykgJiBkIH4gYSAmIGMpIAoKCQkJICAgICAgKyAoYSA+PiAyOCB+IGEgPj4gMzQgfiBhID4+IDM5IH4gYSA8PCAyNSAKCgkJCQl+IGEgPDwgMzAgfiBhIDw8IDM2KQoKCQllbmQKCgkJaDEgPSBoMSArIGEKCgkJaDIgPSBoMiArIGIgCgoJCWgzID0gaDMgKyBjIAoKCQloNCA9IGg0ICsgZCAKCgkJaDUgPSBoNSArIGUgCgoJCWg2ID0gaDYgKyBmIAoKCQloNyA9IGg3ICsgZyAKCgkJaDggPSBoOCArIGggCgoJZW5kCgoKCglsb2NhbCBwdWJsaWMgPSB7fQoKCgoJcHVibGljLmFzQnl0ZXMgPSBmdW5jdGlvbigpCgoJCXJldHVybiB7IGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIGg3LCBoOH0KCgllbmQKCgoKCXB1YmxpYy5hc1N0cmluZyA9IGZ1bmN0aW9uKCkKCgkJcmV0dXJuIHN0cmluZy5wYWNrKCI+aThpOGk4aThpOGk4aThpOCIsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIGg3LCBoOCkKCgllbmQKCgoKCXB1YmxpYy5hc0hleCA9IGZ1bmN0aW9uKCkKCgkJcmV0dXJuIEhleC5zdHJpbmdUb0hleChzdHJpbmcucGFjaygiPmk4aThpOGk4aThpOGk4aTgiLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBoNywgaDgpKQoKCWVuZAoKCgoJcmV0dXJuIHB1YmxpYwoKZW5kCgoKCnJldHVybiBzaGE1MTIKAAAAAAAAAABsb2NhbCBIZXggPSByZXF1aXJlKCIuY3J5cHRvLnV0aWwuaGV4Iik7CgoKCmxvY2FsIFJPVU5EUyA9IDI0CgoKCmxvY2FsIHJvdW5kQ29uc3RhbnRzID0gewoKMHgwMDAwMDAwMDAwMDAwMDAxLAoKMHgwMDAwMDAwMDAwMDA4MDgyLAoKMHg4MDAwMDAwMDAwMDA4MDhBLAoKMHg4MDAwMDAwMDgwMDA4MDAwLAoKMHgwMDAwMDAwMDAwMDA4MDhCLAoKMHgwMDAwMDAwMDgwMDAwMDAxLAoKMHg4MDAwMDAwMDgwMDA4MDgxLAoKMHg4MDAwMDAwMDAwMDA4MDA5LAoKMHgwMDAwMDAwMDAwMDAwMDhBLAoKMHgwMDAwMDAwMDAwMDAwMDg4LAoKMHgwMDAwMDAwMDgwMDA4MDA5LAoKMHgwMDAwMDAwMDgwMDAwMDBBLAoKMHgwMDAwMDAwMDgwMDA4MDhCLAoKMHg4MDAwMDAwMDAwMDAwMDhCLAoKMHg4MDAwMDAwMDAwMDA4MDg5LAoKMHg4MDAwMDAwMDAwMDA4MDAzLAoKMHg4MDAwMDAwMDAwMDA4MDAyLAoKMHg4MDAwMDAwMDAwMDAwMDgwLAoKMHgwMDAwMDAwMDAwMDA4MDBBLAoKMHg4MDAwMDAwMDgwMDAwMDBBLAoKMHg4MDAwMDAwMDgwMDA4MDgxLAoKMHg4MDAwMDAwMDAwMDA4MDgwLAoKMHgwMDAwMDAwMDgwMDAwMDAxLAoKMHg4MDAwMDAwMDgwMDA4MDA4Cgp9CgoKCmxvY2FsIHJvdGF0aW9uT2Zmc2V0cyA9IHsKCi0tIG9yZGVyZWQgZm9yIFt4XVt5XSBkZXJlZmVyZW5jaW5nLCBzbyBhcHBlYXIgZmxpcHBlZCBoZXJlOgoKezAsIDM2LCAzLCA0MSwgMTh9LAoKezEsIDQ0LCAxMCwgNDUsIDJ9LAoKezYyLCA2LCA0MywgMTUsIDYxfSwKCnsyOCwgNTUsIDI1LCAyMSwgNTZ9LAoKezI3LCAyMCwgMzksIDgsIDE0fQoKfQoKCgoKCgoKLS0gdGhlIGZ1bGwgcGVybXV0YXRpb24gZnVuY3Rpb24KCmxvY2FsIGZ1bmN0aW9uIGtlY2Nha0Yoc3QpCgoJbG9jYWwgcGVybXV0ZWQgPSBzdC5wZXJtdXRlZAoKCWxvY2FsIHBhcml0aWVzID0gc3QucGFyaXRpZXMKCglmb3Igcm91bmQgPSAxLCBST1VORFMgZG8KCgkJLS0gdGhldGEoKQoKCQlmb3IgeCA9IDEsNSBkbwoKCQkJcGFyaXRpZXNbeF0gPSAwCgoJCQlsb2NhbCBzeCA9IHN0W3hdCgoJCQlmb3IgeSA9IDEsNSBkbyBwYXJpdGllc1t4XSA9IHBhcml0aWVzW3hdIH4gc3hbeV0gZW5kCgoJCWVuZAoKCQktLQoKCQktLSB1bnJvbGwgdGhlIGZvbGxvd2luZyBsb29wCgoJCS0tZm9yIHggPSAxLDUgZG8KCgkJLS0JbG9jYWwgcDUgPSBwYXJpdGllc1soeCklNSArIDFdCgoJCS0tCWxvY2FsIGZsaXAgPSBwYXJpdGllc1soeC0yKSU1ICsgMV0gfiAoIHA1IDw8IDEgfCBwNSA+PiA2MykKCgkJLS0JZm9yIHkgPSAxLDUgZG8gc3RbeF1beV0gPSBzdFt4XVt5XSB+IGZsaXAgZW5kCgoJCS0tZW5kCgoJCWxvY2FsIHA1LCBmbGlwLCBzCgoJCS0teD0xCgoJCXA1ID0gcGFyaXRpZXNbMl0KCgkJZmxpcCA9IHBhcml0aWVzWzVdIH4gKHA1IDw8IDEgfCBwNSA+PiA2MykKCgkJcyA9IHN0WzFdCgoJCWZvciB5ID0gMSw1IGRvIHNbeV0gPSBzW3ldIH4gZmxpcCBlbmQKCgkJLS14PTIKCgkJcDUgPSBwYXJpdGllc1szXQoKCQlmbGlwID0gcGFyaXRpZXNbMV0gfiAocDUgPDwgMSB8IHA1ID4+IDYzKQoKCQlzID0gc3RbMl0KCgkJZm9yIHkgPSAxLDUgZG8gc1t5XSA9IHNbeV0gfiBmbGlwIGVuZAoKCQktLXg9MwoKCQlwNSA9IHBhcml0aWVzWzRdCgoJCWZsaXAgPSBwYXJpdGllc1syXSB+IChwNSA8PCAxIHwgcDUgPj4gNjMpCgoJCXMgPSBzdFszXQoKCQlmb3IgeSA9IDEsNSBkbyBzW3ldID0gc1t5XSB+IGZsaXAgZW5kCgoJCS0teD00CgoJCXA1ID0gcGFyaXRpZXNbNV0KCgkJZmxpcCA9IHBhcml0aWVzWzNdIH4gKHA1IDw8IDEgfCBwNSA+PiA2MykKCgkJcyA9IHN0WzRdCgoJCWZvciB5ID0gMSw1IGRvIHNbeV0gPSBzW3ldIH4gZmxpcCBlbmQKCgkJLS14PTUKCgkJcDUgPSBwYXJpdGllc1sxXQoKCQlmbGlwID0gcGFyaXRpZXNbNF0gfiAocDUgPDwgMSB8IHA1ID4+IDYzKQoKCQlzID0gc3RbNV0KCgkJZm9yIHkgPSAxLDUgZG8gc1t5XSA9IHNbeV0gfiBmbGlwIGVuZAoKCgoJCS0tIHJob3BpKCkKCgkJZm9yIHkgPSAxLDUgZG8KCgkJCWxvY2FsIHB5ID0gcGVybXV0ZWRbeV0KCgkJCWxvY2FsIHIKCgkJCWZvciB4ID0gMSw1IGRvCgoJCQkJcywgciA9IHN0W3hdW3ldLCByb3RhdGlvbk9mZnNldHNbeF1beV0KCgkJCQlweVsoMip4ICsgMyp5KSU1ICsgMV0gPSAocyA8PCByIHwgcyA+PiAoNjQtcikpCgoJCQllbmQKCgkJZW5kCgoKCgkJLS0gY2hpKCkgLSB1bnJvbGwgdGhlIGxvb3AKCgkJLS1mb3IgeCA9IDEsNSBkbwoKCQktLQlmb3IgeSA9IDEsNSBkbwoKCQktLQkJbG9jYWwgY29tYmluZWQgPSAofiBwZXJtdXRlZFsoeCklNSArMV1beV0pICYgcGVybXV0ZWRbKHgrMSklNSArMV1beV0KCgkJLS0JCXN0W3hdW3ldID0gcGVybXV0ZWRbeF1beV0gfiBjb21iaW5lZAoKCQktLQllbmQKCgkJLS1lbmQKCgoKCQlsb2NhbCBwLCBwMSwgcDIKCgkJLS14PTEKCgkJcywgcCwgcDEsIHAyID0gc3RbMV0sIHBlcm11dGVkWzFdLCBwZXJtdXRlZFsyXSwgcGVybXV0ZWRbM10KCgkJZm9yIHkgPSAxLDUgZG8gc1t5XSA9IHBbeV0gfiAofiBwMVt5XSkgJiBwMlt5XSBlbmQKCgkJLS14PTIKCgkJcywgcCwgcDEsIHAyID0gc3RbMl0sIHBlcm11dGVkWzJdLCBwZXJtdXRlZFszXSwgcGVybXV0ZWRbNF0KCgkJZm9yIHkgPSAxLDUgZG8gc1t5XSA9IHBbeV0gfiAofiBwMVt5XSkgJiBwMlt5XSBlbmQKCgkJLS14PTMKCgkJcywgcCwgcDEsIHAyID0gc3RbM10sIHBlcm11dGVkWzNdLCBwZXJtdXRlZFs0XSwgcGVybXV0ZWRbNV0KCgkJZm9yIHkgPSAxLDUgZG8gc1t5XSA9IHBbeV0gfiAofiBwMVt5XSkgJiBwMlt5XSBlbmQKCgkJLS14PTQKCgkJcywgcCwgcDEsIHAyID0gc3RbNF0sIHBlcm11dGVkWzRdLCBwZXJtdXRlZFs1XSwgcGVybXV0ZWRbMV0KCgkJZm9yIHkgPSAxLDUgZG8gc1t5XSA9IHBbeV0gfiAofiBwMVt5XSkgJiBwMlt5XSBlbmQKCgkJLS14PTUKCgkJcywgcCwgcDEsIHAyID0gc3RbNV0sIHBlcm11dGVkWzVdLCBwZXJtdXRlZFsxXSwgcGVybXV0ZWRbMl0KCgkJZm9yIHkgPSAxLDUgZG8gc1t5XSA9IHBbeV0gfiAofiBwMVt5XSkgJiBwMlt5XSBlbmQKCgoKCQktLSBpb3RhKCkKCgkJc3RbMV1bMV0gPSBzdFsxXVsxXSB+IHJvdW5kQ29uc3RhbnRzW3JvdW5kXQoKCWVuZAoKZW5kCgoKCgoKbG9jYWwgZnVuY3Rpb24gYWJzb3JiKHN0LCBidWZmZXIsIGFsZ29yaXRobSkKCgoKCWxvY2FsIGJsb2NrQnl0ZXMgPSBzdC5yYXRlIC8gOAoKCWxvY2FsIGJsb2NrV29yZHMgPSBibG9ja0J5dGVzIC8gOAoKCgoJLS0gYXBwZW5kIDB4MDEgYnl0ZSBhbmQgcGFkIHdpdGggemVyb3MgdG8gYmxvY2sgc2l6ZSAocmF0ZS84IGJ5dGVzKQoKCWxvY2FsIHRvdGFsQnl0ZXMgPSAjYnVmZmVyICsgMQoKCS0tIGZvciBrZWNjYWsgKDIwMTIgc3VibWlzc2lvbiksIHRoZSBwYWRkaW5nIGlzIGJ5dGUgMHgwMSBmb2xsb3dlZCBieSB6ZXJvcwoKCS0tIGZvciBTSEEzIChOSVNULCAyMDE1KSwgdGhlIHBhZGRpbmcgaXMgYnl0ZSAweDA2IGZvbGxvd2VkIGJ5IHplcm9zCgoKCglpZiBhbGdvcml0aG0gPT0gImtlY2NhayIgdGhlbgoKCQlidWZmZXIgPSBidWZmZXIgLi4gKCAnXHgwMScgLi4gc3RyaW5nLmNoYXIoMCk6cmVwKGJsb2NrQnl0ZXMgLSAodG90YWxCeXRlcyAlIGJsb2NrQnl0ZXMpKSkKCgllbmQKCgkKCglpZiBhbGdvcml0aG0gPT0gInNoYTMiIHRoZW4KCgkJYnVmZmVyID0gYnVmZmVyIC4uICggJ1x4MDYnIC4uIHN0cmluZy5jaGFyKDApOnJlcChibG9ja0J5dGVzIC0gKHRvdGFsQnl0ZXMgJSBibG9ja0J5dGVzKSkpCgoJZW5kCgoKCgl0b3RhbEJ5dGVzID0gI2J1ZmZlcgoKCgoJLS1jb252ZXJ0IGRhdGEgdG8gYW4gYXJyYXkgb2YgdTY0CgoJbG9jYWwgd29yZHMgPSB7fQoKCWZvciBpID0gMSwgdG90YWxCeXRlcyAtICh0b3RhbEJ5dGVzICUgOCksIDggZG8KCgkJd29yZHNbI3dvcmRzICsgMV0gPSBzdHJpbmcudW5wYWNrKCc8STgnLCBidWZmZXIsIGkpCgoJZW5kCgoKCglsb2NhbCB0b3RhbFdvcmRzID0gI3dvcmRzCgoJLS0gT1IgZmluYWwgd29yZCB3aXRoIDB4ODAwMDAwMDAgdG8gc2V0IGxhc3QgYml0IG9mIHN0YXRlIHRvIDEKCgl3b3Jkc1t0b3RhbFdvcmRzXSA9IHdvcmRzW3RvdGFsV29yZHNdIHwgMHg4MDAwMDAwMDAwMDAwMDAwCgoKCgktLSBYT1IgYmxvY2tzIGludG8gc3RhdGUKCglmb3Igc3RhcnRCbG9jayA9IDEsIHRvdGFsV29yZHMsIGJsb2NrV29yZHMgZG8KCgkJbG9jYWwgb2Zmc2V0ID0gMAoKCQlmb3IgeSA9IDEsIDUgZG8KCgkJCWZvciB4ID0gMSwgNSBkbwoKCQkJCWlmIG9mZnNldCA8IGJsb2NrV29yZHMgdGhlbgoKCQkJCQlsb2NhbCBpbmRleCA9IHN0YXJ0QmxvY2srb2Zmc2V0CgoJCQkJCXN0W3hdW3ldID0gc3RbeF1beV0gfiB3b3Jkc1tpbmRleF0KCgkJCQkJb2Zmc2V0ID0gb2Zmc2V0ICsgMQoKCQkJCWVuZAoKCQkJZW5kCgoJCWVuZAoKCQlrZWNjYWtGKHN0KQoKCWVuZAoKZW5kCgoKCgoKLS0gcmV0dXJucyBbcmF0ZV0gYml0cyBmcm9tIHRoZSBzdGF0ZSwgd2l0aG91dCBwZXJtdXRpbmcgYWZ0ZXJ3YXJkLgoKLS0gT25seSBmb3IgdXNlIHdoZW4gdGhlIHN0YXRlIHdpbGwgaW1tZWRpYXRlbHkgYmUgdGhyb3duIGF3YXksCgotLSBhbmQgbm90IHVzZWQgZm9yIG1vcmUgb3V0cHV0IGxhdGVyCgpsb2NhbCBmdW5jdGlvbiBzcXVlZXplKHN0KQoKCWxvY2FsIGJsb2NrQnl0ZXMgPSBzdC5yYXRlIC8gOAoKCWxvY2FsIGJsb2NrV29yZHMgPSBibG9ja0J5dGVzIC8gNAoKCS0tIGZldGNoIGJsb2NrcyBvdXQgb2Ygc3RhdGUKCglsb2NhbCBoYXNodCA9IHt9CgoJbG9jYWwgb2Zmc2V0ID0gMQoKCWZvciB5ID0gMSwgNSBkbwoKCQlmb3IgeCA9IDEsIDUgZG8KCgkJCWlmIG9mZnNldCA8IGJsb2NrV29yZHMgdGhlbgoKCQkJCWhhc2h0W29mZnNldF0gPSBzdHJpbmcucGFjaygiPEk4Iiwgc3RbeF1beV0pCgoJCQkJb2Zmc2V0ID0gb2Zmc2V0ICsgMQoKCQkJZW5kCgoJCWVuZAoKCWVuZAoKCXJldHVybiB0YWJsZS5jb25jYXQoaGFzaHQpCgplbmQKCgoKLS0gcHJpbWl0aXZlIGZ1bmN0aW9ucyAoYXNzdW1lIHJhdGUgaXMgYSB3aG9sZSBtdWx0aXBsZSBvZiA2NCBhbmQgbGVuZ3RoIGlzIGEgd2hvbGUgbXVsdGlwbGUgb2YgOCkKCmxvY2FsIGZ1bmN0aW9uIGtlY2Nha0hhc2gocmF0ZSwgbGVuZ3RoLCBkYXRhLCBhbGdvcml0aG0pCgoJbG9jYWwgc3RhdGUgPSB7CXswLDAsMCwwLDB9LAoKCQkJCQl7MCwwLDAsMCwwfSwKCgkJCQkJezAsMCwwLDAsMH0sCgoJCQkJCXswLDAsMCwwLDB9LAoKCQkJCQl7MCwwLDAsMCwwfSwKCgl9CgoJc3RhdGUucmF0ZSA9IHJhdGUKCgktLSB0aGVzZSBhcmUgYWxsb2NhdGVkIG9uY2UsIGFuZCByZXVzZWQKCglzdGF0ZS5wZXJtdXRlZCA9IHsge30sIHt9LCB7fSwge30sIHt9LCB9CgoJc3RhdGUucGFyaXRpZXMgPSB7MCwwLDAsMCwwfQoKCWFic29yYihzdGF0ZSwgZGF0YSwgYWxnb3JpdGhtKQoKCWxvY2FsIGVuY29kZWQgPSBzcXVlZXplKHN0YXRlKTpzdWIoMSxsZW5ndGgvOCk7CgoKCglsb2NhbCBwdWJsaWMgPSB7fQoKCgoJcHVibGljLmFzU3RyaW5nID0gZnVuY3Rpb24oKQoKCQlyZXR1cm4gZW5jb2RlZAoKCWVuZAoKCgoJcHVibGljLmFzSGV4ID0gZnVuY3Rpb24oKQoKCQlyZXR1cm4gSGV4LnN0cmluZ1RvSGV4KGVuY29kZWQpCgoJZW5kCgoKCglyZXR1cm4gcHVibGljCgplbmQKCgoKLS0gb3V0cHV0IHRhYmxlcyBmb3IgZ2V0dGluZyB0aGUgaGFzaCBhcyBieXRlcywgc3RyaW5nLCBvciBoZXgKCmxvY2FsIGZ1bmN0aW9uIHNoYTNfMjU2KGRhdGEpIHJldHVybiBrZWNjYWtIYXNoKDEwODgsIDI1NiwgZGF0YSwgJ3NoYTMnKSBlbmQKCmxvY2FsIGZ1bmN0aW9uIHNoYTNfNTEyKGRhdGEpIHJldHVybiBrZWNjYWtIYXNoKDU3NiwgNTEyLCBkYXRhLCAnc2hhMycpIGVuZAoKbG9jYWwgZnVuY3Rpb24ga2VjY2FrMjU2KGRhdGEpIHJldHVybiBrZWNjYWtIYXNoKDEwODgsIDI1NiwgZGF0YSwgJ2tlY2NhaycpIGVuZAoKbG9jYWwgZnVuY3Rpb24ga2VjY2FrNTEyKGRhdGEpIHJldHVybiBrZWNjYWtIYXNoKDU3NiwgNTEyLCBkYXRhLCAna2VjY2FrJykgZW5kCgoKCnJldHVybiB7CgoJc2hhM18yNTYgPSBzaGEzXzI1NiwKCglzaGEzXzUxMiA9IHNoYTNfNTEyLAoKCWtlY2NhazI1NiA9IGtlY2NhazI1NiwKCglrZWNjYWs1MTIgPSBrZWNjYWs1MTIKCn0AAAAAAGxvY2FsIFBCS0RGMiA9IHJlcXVpcmUoIi5jcnlwdG8ua2RmLnBia2RmMiIpCgoKCmxvY2FsIGtkZiA9IHsKCiAgICBfdmVyc2lvbiA9ICIwLjAuMSIsCgogICAgcGJrZGYyID0gUEJLREYyLnBia2RmMiwKCn07CgoKCnJldHVybiBrZGYAQeD+DwvVHWxvY2FsIEJpdCA9IHJlcXVpcmUoIi5jcnlwdG8udXRpbC5iaXQiKTsKCmxvY2FsIEFycmF5ID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLmFycmF5Iik7Cgpsb2NhbCBTdHJlYW0gPSByZXF1aXJlKCIuY3J5cHRvLnV0aWwuc3RyZWFtIik7Cgpsb2NhbCBITUFDID0gcmVxdWlyZSgiLmNyeXB0by5tYWMuaG1hYyIpCgoKCmxvY2FsIFNIQTEgPSByZXF1aXJlKCIuY3J5cHRvLmRpZ2VzdC5zaGExIik7Cgpsb2NhbCBTSEEyXzI1NiA9IHJlcXVpcmUoIi5jcnlwdG8uZGlnZXN0LnNoYTJfMjU2Iik7CgoKCmxvY2FsIEFORCA9IEJpdC5iYW5kOwoKbG9jYWwgUlNISUZUID0gQml0LnJzaGlmdDsKCgoKbG9jYWwgd29yZDJieXRlcyA9IGZ1bmN0aW9uKHdvcmQpCgogICAgbG9jYWwgYjAsIGIxLCBiMiwgYjM7CgogICAgYjMgPSBBTkQod29yZCwgMHhGRik7IHdvcmQgPSBSU0hJRlQod29yZCwgOCk7CgogICAgYjIgPSBBTkQod29yZCwgMHhGRik7IHdvcmQgPSBSU0hJRlQod29yZCwgOCk7CgogICAgYjEgPSBBTkQod29yZCwgMHhGRik7IHdvcmQgPSBSU0hJRlQod29yZCwgOCk7CgogICAgYjAgPSBBTkQod29yZCwgMHhGRik7CgogICAgcmV0dXJuIGIwLCBiMSwgYjIsIGIzOwoKZW5kCgoKCmxvY2FsIFBCS0RGMiA9IGZ1bmN0aW9uKCkKCgoKICAgIGxvY2FsIHB1YmxpYyA9IHt9OwoKCgogICAgbG9jYWwgYmxvY2tMZW4gPSAxNjsKCiAgICBsb2NhbCBkS2V5TGVuID0gMjU2OwoKICAgIGxvY2FsIGl0ZXJhdGlvbnMgPSA0MDk2OwoKCgogICAgbG9jYWwgc2FsdDsKCiAgICBsb2NhbCBwYXNzd29yZDsKCgoKCgogICAgbG9jYWwgUFJGOwoKCgogICAgbG9jYWwgZEtleTsKCgoKCgogICAgcHVibGljLnNldEJsb2NrTGVuID0gZnVuY3Rpb24obGVuKQoKICAgICAgICBibG9ja0xlbiA9IGxlbjsKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5zZXRES2V5TGVuID0gZnVuY3Rpb24obGVuKQoKICAgICAgICBkS2V5TGVuID0gbGVuCgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuc2V0SXRlcmF0aW9ucyA9IGZ1bmN0aW9uKGl0ZXIpCgogICAgICAgIGl0ZXJhdGlvbnMgPSBpdGVyOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLnNldFNhbHQgPSBmdW5jdGlvbihzYWx0Qnl0ZXMpCgogICAgICAgIHNhbHQgPSBzYWx0Qnl0ZXM7CgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuc2V0UGFzc3dvcmQgPSBmdW5jdGlvbihwYXNzd29yZEJ5dGVzKQoKICAgICAgICBwYXNzd29yZCA9IHBhc3N3b3JkQnl0ZXM7CgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuc2V0UFJGID0gZnVuY3Rpb24ocHJmKQoKICAgICAgICBQUkYgPSBwcmY7CgogICAgICAgIHJldHVybiBwdWJsaWM7CgogICAgZW5kCgoKCiAgICBsb2NhbCBidWlsZEJsb2NrID0gZnVuY3Rpb24oaSkKCiAgICAgICAgbG9jYWwgYjAsIGIxLCBiMiwgYjMgPSB3b3JkMmJ5dGVzKGkpOwoKICAgICAgICBsb2NhbCBpaSA9IHtiMCwgYjEsIGIyLCBiM307CgogICAgICAgIGxvY2FsIHMgPSBBcnJheS5jb25jYXQoc2FsdCwgaWkpOwoKCgogICAgICAgIGxvY2FsIG91dCA9IHt9OwoKCgogICAgICAgIFBSRi5zZXRLZXkocGFzc3dvcmQpOwoKICAgICAgICBmb3IgYyA9IDEsIGl0ZXJhdGlvbnMgZG8KCiAgICAgICAgICAgIFBSRi5pbml0KCkKCiAgICAgICAgICAgICAgICAudXBkYXRlKFN0cmVhbS5mcm9tQXJyYXkocykpOwoKCgogICAgICAgICAgICBzID0gUFJGLmZpbmlzaCgpLmFzQnl0ZXMoKTsKCiAgICAgICAgICAgIGlmKGMgPiAxKSB0aGVuCgogICAgICAgICAgICAgICAgb3V0ID0gQXJyYXkuWE9SKG91dCwgcyk7CgogICAgICAgICAgICBlbHNlCgogICAgICAgICAgICAgICAgb3V0ID0gczsKCiAgICAgICAgICAgIGVuZAoKICAgICAgICBlbmQKCgoKICAgICAgICByZXR1cm4gb3V0OwoKICAgIGVuZAoKCgogICAgcHVibGljLmZpbmlzaCA9IGZ1bmN0aW9uKCkKCiAgICAgICAgbG9jYWwgYmxvY2tzID0gbWF0aC5jZWlsKGRLZXlMZW4gLyBibG9ja0xlbik7CgoKCiAgICAgICAgZEtleSA9IHt9OwoKCgogICAgICAgIGZvciBiID0gMSwgYmxvY2tzIGRvCgogICAgICAgICAgICBsb2NhbCBibG9jayA9IGJ1aWxkQmxvY2soYik7CgogICAgICAgICAgICBkS2V5ID0gQXJyYXkuY29uY2F0KGRLZXksIGJsb2NrKTsKCiAgICAgICAgZW5kCgoKCiAgICAgICAgaWYoQXJyYXkuc2l6ZShkS2V5KSA+IGRLZXlMZW4pIHRoZW4gZEtleSA9IEFycmF5LnRydW5jYXRlKGRLZXksIGRLZXlMZW4pOyBlbmQKCgoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLmFzQnl0ZXMgPSBmdW5jdGlvbigpCgogICAgICAgIHJldHVybiBkS2V5OwoKICAgIGVuZAoKCgogICAgcHVibGljLmFzSGV4ID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gQXJyYXkudG9IZXgoZEtleSk7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuYXNTdHJpbmcgPSBmdW5jdGlvbigpCgogICAgICAgIHJldHVybiBBcnJheS50b1N0cmluZyhkS2V5KTsKCiAgICBlbmQKCgoKICAgIHJldHVybiBwdWJsaWM7CgplbmQKCgoKLS0tIEBjbGFzcyBBcnJheSA6IHRhYmxlCgoKCi0tLSBQQktERjIga2V5IGRlcml2YXRpb24gZnVuY3Rpb24KCi0tLSBAcGFyYW0gcGFzc3dvcmQgKEFycmF5KSAtIFRoZSBwYXNzd29yZCB0byBkZXJpdmUgdGhlIGtleSBmcm9tCgotLS0gQHBhcmFtIHNhbHQgKEFycmF5KSAtIFRoZSBzYWx0IHRvIHVzZQoKLS0tIEBwYXJhbSBpdGVyYXRpb25zIG51bWJlciAtIFRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyB0byBwZXJmb3JtCgotLS0gQHBhcmFtIGtleUxlbiBudW1iZXIgLSBUaGUgbGVuZ3RoIG9mIHRoZSBrZXkgdG8gZGVyaXZlCgotLS0gQHBhcmFtIGRpZ2VzdD8gc3RyaW5nIC0gVGhlIGRpZ2VzdCBhbGdvcml0aG0gdG8gdXNlIChzaGExLCBzaGEyNTYpLiBEZWZhdWx0cyB0byBzaGExLgoKLS0tIEByZXR1cm5zIHN0cmluZyAtIFRoZSBkZXJpdmVkIGtleQoKbG9jYWwgcGJrZGYyID0gZnVuY3Rpb24ocGFzc3dvcmQsIHNhbHQsIGl0ZXJhdGlvbnMsIGtleUxlbiwgZGlnZXN0KQoKICAgIGxvY2FsIERpZ2VzdCA9IG5pbAoKICAgIGlmIGRpZ2VzdCA9PSAic2hhMSIgdGhlbgoKICAgICAgICBEaWdlc3QgPSBTSEExLlNIQTEKCiAgICBlbHNlaWYgZGlnZXN0ID09ICJzaGEyNTYiIHRoZW4KCiAgICAgICAgRGlnZXN0ID0gU0hBMl8yNTYuU0hBMl8yNTYKCiAgICBlbHNlaWYgZGlnZXN0ID09IG5pbCB0aGVuCgogICAgICAgIERpZ2VzdCA9IFNIQTEuU0hBMQoKICAgIGVsc2UKCiAgICAgICAgZXJyb3IoIlVuc3VwcG9ydGVkIGFsZ29yaXRobTogIiAuLiBkaWdlc3QpCgogICAgZW5kCgoKCiAgICBsb2NhbCBwcmYgPSBITUFDLkhNQUMoKS5zZXRCbG9ja1NpemUoNjQpLnNldERpZ2VzdChEaWdlc3QpOwoKCgogICAgbG9jYWwgcmVzID0gUEJLREYyKCkKCiAgICAgICAgICAgIC5zZXRQUkYocHJmKQoKICAgICAgICAgICAgLnNldEJsb2NrTGVuKDE2KQoKICAgICAgICAgICAgLnNldERLZXlMZW4oa2V5TGVuKQoKICAgICAgICAgICAgLnNldEl0ZXJhdGlvbnMoaXRlcmF0aW9ucykKCiAgICAgICAgICAgIC5zZXRTYWx0KHNhbHQpCgogICAgICAgICAgICAuc2V0UGFzc3dvcmQocGFzc3dvcmQpCgogICAgICAgICAgICAuZmluaXNoKCkKCgoKICAgIHJldHVybiByZXMKCmVuZAoKCgpyZXR1cm4gewoKICAgIFBCS0RGMiA9IFBCS0RGMiwKCiAgICBwYmtkZjIgPSBwYmtkZjIKCn07AEHAnBAL0hlsb2NhbCBCaXQgPSByZXF1aXJlKCIuY3J5cHRvLnV0aWwuYml0Iik7Cgpsb2NhbCBTdHJlYW0gPSByZXF1aXJlKCIuY3J5cHRvLnV0aWwuc3RyZWFtIik7Cgpsb2NhbCBBcnJheSA9IHJlcXVpcmUoIi5jcnlwdG8udXRpbC5hcnJheSIpOwoKCgpsb2NhbCBTSEExID0gcmVxdWlyZSgiLmNyeXB0by5kaWdlc3Quc2hhMSIpOwoKbG9jYWwgU0hBMl8yNTYgPSByZXF1aXJlKCIuY3J5cHRvLmRpZ2VzdC5zaGEyXzI1NiIpOwoKCgpsb2NhbCBYT1IgPSBCaXQuYnhvcjsKCgoKbG9jYWwgSE1BQyA9IGZ1bmN0aW9uKCkKCiAgICBsb2NhbCBwdWJsaWMgPSB7fTsKCiAgICBsb2NhbCBibG9ja1NpemUgPSA2NDsKCiAgICBsb2NhbCBEaWdlc3QgPSBuaWw7CgogICAgbG9jYWwgb3V0ZXJQYWRkaW5nID0ge307CgogICAgbG9jYWwgaW5uZXJQYWRkaW5nID0ge30KCiAgICBsb2NhbCBkaWdlc3Q7CgoKCiAgICBwdWJsaWMuc2V0QmxvY2tTaXplID0gZnVuY3Rpb24oYnl0ZXMpCgogICAgICAgIGJsb2NrU2l6ZSA9IGJ5dGVzOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLnNldERpZ2VzdCA9IGZ1bmN0aW9uKGRpZ2VzdE1vZHVsZSkKCiAgICAgICAgRGlnZXN0ID0gZGlnZXN0TW9kdWxlOwoKICAgICAgICBkaWdlc3QgPSBEaWdlc3QoKTsKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5zZXRLZXkgPSBmdW5jdGlvbihrZXkpCgogICAgICAgIGxvY2FsIGtleVN0cmVhbTsKCiAgICAgICAgaWYgRGlnZXN0ID09IG5pbCB0aGVuCgogICAgICAgICAgICBlcnJvcigiRGlnZXN0IG5vdCBzZXQiKTsKCiAgICAgICAgZW5kCgogICAgICAgIGlmIChBcnJheS5zaXplKGtleSkgPiBibG9ja1NpemUpIHRoZW4KCiAgICAgICAgICAgIGtleVN0cmVhbSA9IFN0cmVhbS5mcm9tQXJyYXkoRGlnZXN0KCkKCiAgICAgICAgICAgICAgICAudXBkYXRlKFN0cmVhbS5mcm9tQXJyYXkoa2V5KSkKCiAgICAgICAgICAgICAgICAuZmluaXNoKCkKCiAgICAgICAgICAgICAgICAuYXNCeXRlcygpKTsKCiAgICAgICAgZWxzZQoKICAgICAgICAgICAga2V5U3RyZWFtID0gU3RyZWFtLmZyb21BcnJheShrZXkpOwoKICAgICAgICBlbmQKCgoKICAgICAgICBvdXRlclBhZGRpbmcgPSB7fTsKCiAgICAgICAgaW5uZXJQYWRkaW5nID0ge307CgoKCiAgICAgICAgZm9yIGkgPSAxLCBibG9ja1NpemUgZG8KCiAgICAgICAgICAgIGxvY2FsIGJ5dGUgPSBrZXlTdHJlYW0oKTsKCiAgICAgICAgICAgIGlmIGJ5dGUgPT0gbmlsIHRoZW4gYnl0ZSA9IDB4MDA7IGVuZAoKICAgICAgICAgICAgb3V0ZXJQYWRkaW5nW2ldID0gWE9SKDB4NUMsIGJ5dGUpOwoKICAgICAgICAgICAgaW5uZXJQYWRkaW5nW2ldID0gWE9SKDB4MzYsIGJ5dGUpOwoKICAgICAgICBlbmQKCgoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLmluaXQgPSBmdW5jdGlvbigpCgogICAgICAgIGRpZ2VzdC5pbml0KCkKCiAgICAgICAgICAgIC51cGRhdGUoU3RyZWFtLmZyb21BcnJheShpbm5lclBhZGRpbmcpKTsKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy51cGRhdGUgPSBmdW5jdGlvbihtZXNzYWdlU3RyZWFtKQoKICAgICAgICBkaWdlc3QudXBkYXRlKG1lc3NhZ2VTdHJlYW0pOwoKICAgICAgICByZXR1cm4gcHVibGljOwoKICAgIGVuZAoKCgogICAgcHVibGljLmZpbmlzaCA9IGZ1bmN0aW9uKCkKCiAgICAgICAgbG9jYWwgaW5uZXIgPSBkaWdlc3QuZmluaXNoKCkuYXNCeXRlcygpOwoKICAgICAgICBkaWdlc3QuaW5pdCgpCgogICAgICAgICAgICAudXBkYXRlKFN0cmVhbS5mcm9tQXJyYXkob3V0ZXJQYWRkaW5nKSkKCiAgICAgICAgICAgIC51cGRhdGUoU3RyZWFtLmZyb21BcnJheShpbm5lcikpCgogICAgICAgICAgICAuZmluaXNoKCk7CgoKCiAgICAgICAgcmV0dXJuIHB1YmxpYzsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5hc0J5dGVzID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gZGlnZXN0LmFzQnl0ZXMoKTsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5hc0hleCA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIGRpZ2VzdC5hc0hleCgpOwoKICAgIGVuZAoKCgogICAgcHVibGljLmFzU3RyaW5nID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gZGlnZXN0LmFzU3RyaW5nKCk7CgogICAgZW5kCgoKCiAgICByZXR1cm4gcHVibGljOwoKZW5kCgoKCi0tLSBAY2xhc3MgQXJyYXkgOiB0YWJsZQoKLS0tIEBjbGFzcyBTdHJlYW0gOiB0YWJsZQoKCgotLS0gSE1BQyBmdW5jdGlvbiBmb3IgZ2VuZXJhdGluZyBhIGhhc2gtYmFzZWQgbWVzc2FnZSBhdXRoZW50aWNhdGlvbiBjb2RlCgotLS0gQHBhcmFtIGRhdGEgKFN0cmVhbSkgLSBUaGUgZGF0YSB0byBoYXNoIGFuZCBhdXRoZW50aWNhdGUKCi0tLSBAcGFyYW0ga2V5IChBcnJheSkgLSBUaGUga2V5IHRvIHVzZSBmb3IgdGhlIEhNQUMKCi0tLSBAcGFyYW0gYWxnb3JpdGhtPyAoc3RyaW5nKSAtIFRoZSBhbGdvcml0aG0gdG8gdXNlIGZvciB0aGUgSE1BQyAoc2hhMSwgc2hhMjU2KS4gRGVmYXVsdHMgdG8gInNoYTEiCgotLS0gQHJldHVybnMgdGFibGUgLSBBIHRhYmxlIGNvbnRhaW5pbmcgdGhlIEhNQUMgaW4gYnl0ZXMsIHN0cmluZywgYW5kIGhleCBmb3JtYXRzLgoKbG9jYWwgaG1hYyA9IGZ1bmN0aW9uKGRhdGEsIGtleSwgYWxnb3JpdGhtKQoKICAgIGxvY2FsIGRpZ2VzdCA9IG5pbAoKICAgIGlmIGFsZ29yaXRobSA9PSAic2hhMSIgdGhlbgoKICAgICAgICBkaWdlc3QgPSBTSEExLlNIQTEKCiAgICBlbHNlaWYgYWxnb3JpdGhtID09ICJzaGEyNTYiIHRoZW4KCiAgICAgICAgZGlnZXN0ID0gU0hBMl8yNTYuU0hBMl8yNTYKCiAgICBlbHNlaWYgYWxnb3JpdGhtID09IG5pbCB0aGVuCgogICAgICAgIGRpZ2VzdCA9IFNIQTEuU0hBMQoKICAgIGVsc2UKCiAgICAgICAgZXJyb3IoIlVuc3VwcG9ydGVkIGFsZ29yaXRobTogIiAuLiBhbGdvcml0aG0pCgogICAgZW5kCgoKCiAgICBsb2NhbCByZXMgPSBITUFDKCkKCiAgICAgICAgICAgICAgICAuc2V0QmxvY2tTaXplKDMyKQoKICAgICAgICAgICAgICAgIC5zZXREaWdlc3QoZGlnZXN0KQoKICAgICAgICAgICAgICAgIC5zZXRLZXkoa2V5KQoKICAgICAgICAgICAgICAgIC5pbml0KCkKCiAgICAgICAgICAgICAgICAudXBkYXRlKGRhdGEpCgogICAgICAgICAgICAgICAgLmZpbmlzaCgpCgoKCglyZXR1cm4gcmVzCgplbmQKCgoKcmV0dXJuIHsKCiAgICBobWFjID0gaG1hYywKCiAgICBITUFDID0gSE1BQwoKfTsAQaC2EAuBAWxvY2FsIEhtYWMgPSByZXF1aXJlKCIuY3J5cHRvLm1hYy5obWFjIikKCgoKbG9jYWwgbWFjID0gewoKICAgIF92ZXJzaW9uID0gIjAuMC4xIiwKCiAgICBjcmVhdGVIbWFjID0gSG1hYy5obWFjLAoKfTsKCgoKcmV0dXJuIG1hYwBBsLcQC6U6bG9jYWwgWmVyb1BhZGRpbmcgPSBmdW5jdGlvbihibG9ja1NpemUsIGJ5dGVDb3VudCkKCgoKICAgIGxvY2FsIHBhZGRpbmdDb3VudCA9IGJsb2NrU2l6ZSAtICgoYnl0ZUNvdW50IC0xKSAlIGJsb2NrU2l6ZSkgKyAxOwoKICAgIGxvY2FsIGJ5dGVzTGVmdCA9IHBhZGRpbmdDb3VudDsKCgoKICAgIGxvY2FsIHN0cmVhbSA9IGZ1bmN0aW9uKCkKCiAgICAgICAgaWYgYnl0ZXNMZWZ0ID4gMCB0aGVuCgogICAgICAgICAgICBieXRlc0xlZnQgPSBieXRlc0xlZnQgLSAxOwoKICAgICAgICAgICAgcmV0dXJuIDB4MDA7CgogICAgICAgIGVsc2UKCiAgICAgICAgICAgIHJldHVybiBuaWw7CgogICAgICAgIGVuZAoKICAgIGVuZAoKICAgIHJldHVybiBzdHJlYW07CgplbmQKCgoKcmV0dXJuIFplcm9QYWRkaW5nOwoKbG9jYWwgQml0ID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLmJpdCIpOwoKbG9jYWwgUXVldWUgPSByZXF1aXJlKCIuY3J5cHRvLnV0aWwucXVldWUiKTsKCgoKbG9jYWwgWE9SID0gQml0LmJ4b3I7CgoKCmxvY2FsIEFycmF5ID0ge307CgoKCkFycmF5LnNpemUgPSBmdW5jdGlvbihhcnJheSkKCiAgICByZXR1cm4gI2FycmF5OwoKZW5kCgoKCkFycmF5LmZyb21TdHJpbmcgPSBmdW5jdGlvbihzdHJpbmcpCgogICAgbG9jYWwgYnl0ZXMgPSB7fTsKCgoKICAgIGxvY2FsIGkgPSAxOwoKICAgIGxvY2FsIGJ5dGUgPSBzdHJpbmcuYnl0ZShzdHJpbmcsIGkpOwoKICAgIHdoaWxlIGJ5dGUgfj0gbmlsIGRvCgogICAgICAgIGJ5dGVzW2ldID0gYnl0ZTsKCiAgICAgICAgaSA9IGkgKyAxOwoKICAgICAgICBieXRlID0gc3RyaW5nLmJ5dGUoc3RyaW5nLCBpKTsKCiAgICBlbmQKCgoKICAgIHJldHVybiBieXRlczsKCgoKZW5kCgoKCkFycmF5LnRvU3RyaW5nID0gZnVuY3Rpb24oYnl0ZXMpCgogICAgbG9jYWwgY2hhcnMgPSB7fTsKCiAgICBsb2NhbCBpID0gMTsKCgoKICAgIGxvY2FsIGJ5dGUgPSBieXRlc1tpXTsKCiAgICB3aGlsZSBieXRlIH49IG5pbCBkbwoKICAgICAgICBjaGFyc1tpXSA9IHN0cmluZy5jaGFyKGJ5dGUpOwoKICAgICAgICBpID0gaSArIDE7CgogICAgICAgIGJ5dGUgPSBieXRlc1tpXTsKCiAgICBlbmQKCgoKICAgIHJldHVybiB0YWJsZS5jb25jYXQoY2hhcnMsICIiKTsKCmVuZAoKCgpBcnJheS5mcm9tU3RyZWFtID0gZnVuY3Rpb24oc3RyZWFtKQoKICAgIGxvY2FsIGFycmF5ID0ge307CgogICAgbG9jYWwgaSA9IDE7CgoKCiAgICBsb2NhbCBieXRlID0gc3RyZWFtKCk7CgogICAgd2hpbGUgYnl0ZSB+PSBuaWwgZG8KCiAgICAgICAgYXJyYXlbaV0gPSBieXRlOwoKICAgICAgICBpID0gaSArIDE7CgogICAgICAgIGJ5dGUgPSBzdHJlYW0oKTsKCiAgICBlbmQKCgoKICAgIHJldHVybiBhcnJheTsKCmVuZAoKCgpBcnJheS5yZWFkRnJvbVF1ZXVlID0gZnVuY3Rpb24ocXVldWUsIHNpemUpCgogICAgbG9jYWwgYXJyYXkgPSB7fTsKCgoKICAgIGZvciBpID0gMSwgc2l6ZSBkbwoKICAgICAgICBhcnJheVtpXSA9IHF1ZXVlLnBvcCgpOwoKICAgIGVuZAoKCgogICAgcmV0dXJuIGFycmF5OwoKZW5kCgoKCkFycmF5LndyaXRlVG9RdWV1ZSA9IGZ1bmN0aW9uKHF1ZXVlLCBhcnJheSkKCiAgICBsb2NhbCBzaXplID0gQXJyYXkuc2l6ZShhcnJheSk7CgoKCiAgICBmb3IgaSA9IDEsIHNpemUgZG8KCiAgICAgICAgcXVldWUucHVzaChhcnJheVtpXSk7CgogICAgZW5kCgplbmQKCgoKQXJyYXkudG9TdHJlYW0gPSBmdW5jdGlvbihhcnJheSkKCiAgICBsb2NhbCBxdWV1ZSA9IFF1ZXVlKCk7CgogICAgbG9jYWwgaSA9IDE7CgoKCiAgICBsb2NhbCBieXRlID0gYXJyYXlbaV07CgogICAgd2hpbGUgYnl0ZSB+PSBuaWwgZG8KCiAgICAgICAgcXVldWUucHVzaChieXRlKTsKCiAgICAgICAgaSA9IGkgKyAxOwoKICAgICAgICBieXRlID0gYXJyYXlbaV07CgogICAgZW5kCgoKCiAgICByZXR1cm4gcXVldWUucG9wOwoKZW5kCgoKCgoKbG9jYWwgZnJvbUhleFRhYmxlID0ge307Cgpmb3IgaSA9IDAsIDI1NSBkbwoKICAgIGZyb21IZXhUYWJsZVtzdHJpbmcuZm9ybWF0KCIlMDJYIiwgaSldID0gaTsKCiAgICBmcm9tSGV4VGFibGVbc3RyaW5nLmZvcm1hdCgiJTAyeCIsIGkpXSA9IGk7CgplbmQKCgoKQXJyYXkuZnJvbUhleCA9IGZ1bmN0aW9uKGhleCkKCiAgICBsb2NhbCBhcnJheSA9IHt9OwoKCgogICAgZm9yIGkgPSAxLCBzdHJpbmcubGVuKGhleCkgLyAyIGRvCgogICAgICAgIGxvY2FsIGggPSBzdHJpbmcuc3ViKGhleCwgaSAqIDIgLSAxLCBpICogMik7CgogICAgICAgIGFycmF5W2ldID0gZnJvbUhleFRhYmxlW2hdOwoKICAgIGVuZAoKCgogICAgcmV0dXJuIGFycmF5OwoKZW5kCgoKCgoKbG9jYWwgdG9IZXhUYWJsZSA9IHt9OwoKZm9yIGkgPSAwLCAyNTUgZG8KCiAgICB0b0hleFRhYmxlW2ldID0gc3RyaW5nLmZvcm1hdCgiJTAyWCIsIGkpOwoKZW5kCgoKCkFycmF5LnRvSGV4ID0gZnVuY3Rpb24oYXJyYXkpCgogICAgbG9jYWwgaGV4ID0ge307CgogICAgbG9jYWwgaSA9IDE7CgoKCiAgICBsb2NhbCBieXRlID0gYXJyYXlbaV07CgogICAgd2hpbGUgYnl0ZSB+PSBuaWwgZG8KCiAgICAgICAgaGV4W2ldID0gdG9IZXhUYWJsZVtieXRlXTsKCiAgICAgICAgaSA9IGkgKyAxOwoKICAgICAgICBieXRlID0gYXJyYXlbaV07CgogICAgZW5kCgoKCiAgICByZXR1cm4gdGFibGUuY29uY2F0KGhleCwgIiIpOwoKCgplbmQKCgoKQXJyYXkuY29uY2F0ID0gZnVuY3Rpb24oYSwgYikKCiAgICBsb2NhbCBjb25jYXQgPSB7fTsKCiAgICBsb2NhbCBvdXQgPSAxOwoKCgogICAgbG9jYWwgaSA9IDE7CgogICAgbG9jYWwgYnl0ZSA9IGFbaV07CgogICAgd2hpbGUgYnl0ZSB+PSBuaWwgZG8KCiAgICAgICAgY29uY2F0W291dF0gPSBieXRlOwoKICAgICAgICBpID0gaSArIDE7CgogICAgICAgIG91dCA9IG91dCArIDE7CgogICAgICAgIGJ5dGUgPSBhW2ldOwoKICAgIGVuZAoKCgogICAgaSA9IDE7CgogICAgYnl0ZSA9IGJbaV07CgogICAgd2hpbGUgYnl0ZSB+PSBuaWwgZG8KCiAgICAgICAgY29uY2F0W291dF0gPSBieXRlOwoKICAgICAgICBpID0gaSArIDE7CgogICAgICAgIG91dCA9IG91dCArIDE7CgogICAgICAgIGJ5dGUgPSBiW2ldOwoKICAgIGVuZAoKCgogICAgcmV0dXJuIGNvbmNhdDsKCmVuZAoKCgpBcnJheS50cnVuY2F0ZSA9IGZ1bmN0aW9uKGEsIG5ld1NpemUpCgogICAgbG9jYWwgeCA9IHt9OwoKCgogICAgZm9yIGkgPSAxLCBuZXdTaXplIGRvCgogICAgICAgIHhbaV0gPSBhW2ldOwoKICAgIGVuZAoKCgogICAgcmV0dXJuIHg7CgplbmQKCgoKQXJyYXkuWE9SID0gZnVuY3Rpb24oYSwgYikKCiAgICBsb2NhbCB4ID0ge307CgoKCiAgICBmb3IgaywgdiBpbiBwYWlycyhhKSBkbwoKICAgICAgICB4W2tdID0gWE9SKHYsIGJba10pOwoKICAgIGVuZAoKCgogICAgcmV0dXJuIHg7CgplbmQKCgoKQXJyYXkuc3Vic3RpdHV0ZSA9IGZ1bmN0aW9uKGlucHV0LCBzYm94KQoKICAgIGxvY2FsIG91dCA9IHt9OwoKCgogICAgZm9yIGssIHYgaW4gcGFpcnMoaW5wdXQpIGRvCgogICAgICAgIG91dFtrXSA9IHNib3hbdl07CgogICAgZW5kCgoKCiAgICByZXR1cm4gb3V0OwoKZW5kCgoKCkFycmF5LnBlcm11dGUgPSBmdW5jdGlvbihpbnB1dCwgcGJveCkKCiAgICBsb2NhbCBvdXQgPSB7fTsKCgoKICAgIGZvciBrLCB2IGluIHBhaXJzKHBib3gpIGRvCgogICAgICAgIG91dFtrXSA9IGlucHV0W3ZdOwoKICAgIGVuZAoKCgogICAgcmV0dXJuIG91dDsKCmVuZAoKCgpBcnJheS5jb3B5ID0gZnVuY3Rpb24oaW5wdXQpCgogICAgbG9jYWwgb3V0ID0ge307CgoKCiAgICBmb3IgaywgdiBpbiBwYWlycyhpbnB1dCkgZG8KCiAgICAgICAgb3V0W2tdID0gdjsKCiAgICBlbmQKCiAgICByZXR1cm4gb3V0OwoKZW5kCgoKCkFycmF5LnNsaWNlID0gZnVuY3Rpb24oaW5wdXQsIHN0YXJ0LCBzdG9wKQoKICAgIGxvY2FsIG91dCA9IHt9OwoKCgogICAgaWYgc3RhcnQgPT0gbmlsIHRoZW4KCiAgICAgICAgc3RhcnQgPSAxCgogICAgZWxzZWlmIHN0YXJ0IDwgMCB0aGVuCgogICAgICAgIHN0YXJ0ID0gI2lucHV0ICsgc3RhcnQgKyAxCgogICAgZW5kCgogICAgaWYgc3RvcCA9PSBuaWwgdGhlbgoKICAgICAgICBzdG9wID0gI2lucHV0CgogICAgZWxzZWlmIHN0b3AgPCAwIHRoZW4KCiAgICAgICAgc3RvcCA9ICNpbnB1dCArIHN0b3AgKyAxCgogICAgZW5kCgoKCiAgICBmb3IgaSA9IHN0YXJ0LCBzdG9wIGRvCgogICAgICAgIHRhYmxlLmluc2VydChvdXQsIGlucHV0W2ldKQoKICAgIGVuZAoKCgogICAgcmV0dXJuIG91dDsKCmVuZAoKCgpyZXR1cm4gQXJyYXk7AAAAAGxvY2FsIG9rLCBlCgpvayA9IG5pbAoKaWYgbm90IG9rIHRoZW4KCiAgICBvaywgZSA9IHBjYWxsKHJlcXVpcmUsICJiaXQiKSAtLSB0aGUgTHVhSklUIG9uZSA/CgplbmQKCmlmIG5vdCBvayB0aGVuCgogICAgb2ssIGUgPSBwY2FsbChyZXF1aXJlLCAiYml0MzIiKSAtLSBMdWEgNS4yCgplbmQKCmlmIG5vdCBvayB0aGVuCgogICAgb2ssIGUgPSBwY2FsbChyZXF1aXJlLCAiYml0Lm51bWJlcmx1YSIpIC0tIGZvciBMdWEgNS4xLCBodHRwczovL2dpdGh1Yi5jb20vdHN0MjAwNS9sdWEtYml0LW51bWJlcmx1YS8KCmVuZAoKaWYgbm90IG9rIHRoZW4KCiAgICBlcnJvcigibm8gYml0d2lzZSBzdXBwb3J0IGZvdW5kIiwgMikKCmVuZAoKYXNzZXJ0KHR5cGUoZSkgPT0gInRhYmxlIiwgImludmFsaWQgYml0IG1vZHVsZSIpCgoKCi0tIFdvcmthcm91bmQgdG8gc3VwcG9ydCBMdWEgNS4yIGJpdDMyIEFQSSB3aXRoIHRoZSBMdWFKSVQgYml0IG9uZQoKaWYgZS5yb2wgYW5kIG5vdCBlLmxyb3RhdGUgdGhlbgoKICAgIGUubHJvdGF0ZSA9IGUucm9sCgplbmQKCmlmIGUucm9yIGFuZCBub3QgZS5ycm90YXRlIHRoZW4KCiAgICBlLnJyb3RhdGUgPSBlLnJvcgoKZW5kCgoKCi0tIFdvcmthcm91bmQgdG8gc3VwcG9ydCBpbmNvbXBsZXRlIGJpdCBvcGVyYXRpb25zIHNldAoKaWYgbm90IGUucm9yIGFuZCBub3QgZS5ycm90YXRlIHRoZW4KCiAgICBsb2NhbCByb3IgPSBmdW5jdGlvbihiLCBuKQoKICAgICAgICByZXR1cm4gZS5ib3IoZS5yc2hpZnQoYiwgbiksIGUubHNoaWZ0KGIsIDMyIC0gbikpCgogICAgZW5kCgoKCiAgICBlLnJvciA9IHJvcgoKICAgIGUucnJvdGF0ZSA9IHJvcgoKZW5kCgoKCmlmIG5vdCBlLnJvbCBhbmQgbm90IGUubHJvdGF0ZSB0aGVuCgogICAgbG9jYWwgcm9sID0gZnVuY3Rpb24oYiwgbikKCiAgICAgICAgcmV0dXJuIGUuYm9yKGUubHNoaWZ0KGIsIG4pLCBlLnJzaGlmdChiLCAzMiAtIG4pKQoKICAgIGVuZAoKCgogICAgZS5yb2wgPSByb2wKCiAgICBlLmxyb3RhdGUgPSByb2wKCmVuZAoKCgpyZXR1cm4gZQAAAAAACgotLS0gQ29udmVydHMgYSBzdHJpbmcgdG8gaXRzIGhleGFkZWNpbWFsIHJlcHJlc2VudGF0aW9uLgoKLS0tIEBwYXJhbSBzIHN0cmluZyBUaGUgaW5wdXQgc3RyaW5nLgoKLS0tIEBwYXJhbSBsbj8gbnVtYmVyIC0gVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHBlciBsaW5lLiBJZiBub3QgcHJvdmlkZWQsIHRoZSBvdXRwdXQgd2lsbCBiZSBhIHNpbmdsZSBsaW5lLgoKLS0tIEBwYXJhbSBzZXA/IHN0cmluZyAtIFRoZSBzZXBhcmF0b3IgYmV0d2VlbiBlYWNoIHBhaXIgb2YgaGV4YWRlY2ltYWwgY2hhcmFjdGVycy4gRGVmYXVsdHMgdG8gYW4gZW1wdHkgc3RyaW5nLgoKLS0tIEByZXR1cm4gc3RyaW5nIFRoZSAtIGhleGFkZWNpbWFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbnB1dCBzdHJpbmcuCgpsb2NhbCBmdW5jdGlvbiBzdHJpbmdUb0hleChzLCBsbiwgc2VwKQoKCWlmICNzID09IDAgdGhlbiByZXR1cm4gIiIgZW5kCgoJaWYgbm90IGxuIHRoZW4KCgkJcmV0dXJuIChzOmdzdWIoJy4nLAoKCQkJZnVuY3Rpb24oYykgcmV0dXJuIHN0cmluZy5mb3JtYXQoJyUwMngnLCBzdHJpbmcuYnl0ZShjKSkgZW5kCgoJCSkpCgoJZW5kCgoJc2VwID0gc2VwIG9yICIiCgoJbG9jYWwgdCA9IHt9CgoJZm9yIGkgPSAxLCAjcyAtIDEgZG8KCgkJdFsjdCArIDFdID0gc3RyaW5nLmZvcm1hdCgiJTAyeCVzIiwgczpieXRlKGkpLAoKCQkJKGkgJSBsbiA9PSAwKSBhbmQgJ1xuJyBvciBzZXApCgoJZW5kCgoJdFsjdCArIDFdID0gc3RyaW5nLmZvcm1hdCgiJTAyeCIsIHM6Ynl0ZSgjcykpCgoJcmV0dXJuIHRhYmxlLmNvbmNhdCh0KQoKZW5kCgoKCi0tLSBDb252ZXJ0cyBhIGhleCBlbmNvZGVkIHN0cmluZyB0byBpdHMgY29ycmVzcG9uZGluZyBkZWNvZGVkIHN0cmluZy4KCi0tLSBJZiB0aGUgb3B0aW9uYWwgcGFyYW1ldGVyIGB1bnNhZmVgIGlzIGRlZmluZWQsIGl0IGFzc3VtZXMgdGhhdCB0aGUgaGV4IHN0cmluZyBpcyB3ZWxsLWZvcm1lZAoKLS0tIChubyBjaGVja3MsIG5vIHdoaXRlc3BhY2UgcmVtb3ZhbCkuIEJ5IGRlZmF1bHQsIGl0IHJlbW92ZXMgd2hpdGVzcGFjZSAoaW5jbHVkaW5nIG5ld2xpbmVzKQoKLS0tIGFuZCBjaGVja3MgdGhhdCB0aGUgaGV4IHN0cmluZyBpcyB3ZWxsLWZvcm1lZC4KCi0tLSBAcGFyYW0gaHMgKHN0cmluZykgVGhlIGhleCBlbmNvZGVkIHN0cmluZyB0byBiZSBkZWNvZGVkLgoKLS0tIEBwYXJhbSB1bnNhZmUgKGJvb2xlYW4pIFtvcHRpb25hbF0gSWYgdHJ1ZSwgYXNzdW1lcyB0aGUgaGV4IHN0cmluZyBpcyB3ZWxsLWZvcm1lZC4KCi0tLSBAcmV0dXJuIChzdHJpbmcpIFRoZSBkZWNvZGVkIHN0cmluZy4KCmxvY2FsIGZ1bmN0aW9uIGhleFRvU3RyaW5nKGhzLCB1bnNhZmUpCgoJbG9jYWwgdG9udW1iZXIgPSB0b251bWJlcgoKCWlmIG5vdCB1bnNhZmUgdGhlbgoKCQlocyA9IHN0cmluZy5nc3ViKGhzLCAiJXMrIiwgIiIpIC0tIHJlbW92ZSB3aGl0ZXNwYWNlcwoKCQlpZiBzdHJpbmcuZmluZChocywgJ1teMC05QS1aYS16XScpIG9yICNocyAlIDIgfj0gMCB0aGVuCgoJCQllcnJvcigiaW52YWxpZCBoZXggc3RyaW5nIikKCgkJZW5kCgoJZW5kCgoJbG9jYWwgY291bnQgPSAgc3RyaW5nLmdzdWIoaHMsICcoJXgleCknLGZ1bmN0aW9uKGMpIHJldHVybiBzdHJpbmcuY2hhcih0b251bWJlcihjLCAxNikpIGVuZCkKCglyZXR1cm4gY291bnQKCmVuZAoKCgpyZXR1cm4gewoKCXN0cmluZ1RvSGV4ID0gc3RyaW5nVG9IZXgsCgoJaGV4VG9TdHJpbmcgPSBoZXhUb1N0cmluZywKCn1sb2NhbCBCaXQgPSByZXF1aXJlKCIuY3J5cHRvLnV0aWwuYml0IikKCmxvY2FsIFF1ZXVlID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLnF1ZXVlIikKCmxvY2FsIFN0cmVhbSA9IHJlcXVpcmUoIi5jcnlwdG8udXRpbC5zdHJlYW0iKQoKbG9jYWwgSGV4ID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLmhleCIpCgpsb2NhbCBBcnJheSA9IHJlcXVpcmUoIi5jcnlwdG8udXRpbC5hcnJheSIpCgoKCmxvY2FsIHV0aWwgPSB7CgogICAgX3ZlcnNpb24gPSAiMC4wLjEiLAoKICAgIGJpdCA9IEJpdCwKCiAgICBxdWV1ZSA9IFF1ZXVlLAoKICAgIHN0cmVhbSA9IFN0cmVhbSwKCiAgICBoZXggPSBIZXgsCgogICAgYXJyYXkgPSBBcnJheSwKCn0KCgoKcmV0dXJuIHV0aWwKAEHg8RALsJEBbG9jYWwgUXVldWUgPSBmdW5jdGlvbigpCgogICAgbG9jYWwgcXVldWUgPSB7fTsKCiAgICBsb2NhbCB0YWlsID0gMDsKCiAgICBsb2NhbCBoZWFkID0gMDsKCgoKICAgIGxvY2FsIHB1YmxpYyA9IHt9OwoKCgogICAgcHVibGljLnB1c2ggPSBmdW5jdGlvbihvYmopCgogICAgICAgIHF1ZXVlW2hlYWRdID0gb2JqOwoKICAgICAgICBoZWFkID0gaGVhZCArIDE7CgogICAgICAgIHJldHVybjsKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5wb3AgPSBmdW5jdGlvbigpCgogICAgICAgIGlmIHRhaWwgPCBoZWFkCgogICAgICAgIHRoZW4KCiAgICAgICAgICAgIGxvY2FsIG9iaiA9IHF1ZXVlW3RhaWxdOwoKICAgICAgICAgICAgcXVldWVbdGFpbF0gPSBuaWw7CgogICAgICAgICAgICB0YWlsID0gdGFpbCArIDE7CgogICAgICAgICAgICByZXR1cm4gb2JqOwoKICAgICAgICBlbHNlCgogICAgICAgICAgICByZXR1cm4gbmlsOwoKICAgICAgICBlbmQKCiAgICBlbmQKCgoKICAgIHB1YmxpYy5zaXplID0gZnVuY3Rpb24oKQoKICAgICAgICByZXR1cm4gaGVhZCAtIHRhaWw7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuZ2V0SGVhZCA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIGhlYWQ7CgogICAgZW5kCgoKCiAgICBwdWJsaWMuZ2V0VGFpbCA9IGZ1bmN0aW9uKCkKCiAgICAgICAgcmV0dXJuIHRhaWw7CgogICAgZW5kCgoKCiAgICBwdWJsaWMucmVzZXQgPSBmdW5jdGlvbigpCgogICAgICAgIHF1ZXVlID0ge307CgogICAgICAgIGhlYWQgPSAwOwoKICAgICAgICB0YWlsID0gMDsKCiAgICBlbmQKCgoKICAgIHJldHVybiBwdWJsaWM7CgplbmQKCgoKcmV0dXJuIFF1ZXVlO2xvY2FsIFF1ZXVlID0gcmVxdWlyZSgiLmNyeXB0by51dGlsLnF1ZXVlIik7CgoKCmxvY2FsIFN0cmVhbSA9IHt9OwoKCgoKClN0cmVhbS5mcm9tU3RyaW5nID0gZnVuY3Rpb24oc3RyaW5nKQoKICAgIGxvY2FsIGkgPSAwOwoKICAgIHJldHVybiBmdW5jdGlvbigpCgogICAgICAgIGkgPSBpICsgMTsKCiAgICAgICAgcmV0dXJuIHN0cmluZy5ieXRlKHN0cmluZywgaSk7CgogICAgZW5kCgplbmQKCgoKCgpTdHJlYW0udG9TdHJpbmcgPSBmdW5jdGlvbihzdHJlYW0pCgogICAgbG9jYWwgYXJyYXkgPSB7fTsKCiAgICBsb2NhbCBpID0gMTsKCgoKICAgIGxvY2FsIGJ5dGUgPSBzdHJlYW0oKTsKCiAgICB3aGlsZSBieXRlIH49IG5pbCBkbwoKICAgICAgICBhcnJheVtpXSA9IHN0cmluZy5jaGFyKGJ5dGUpOwoKICAgICAgICBpID0gaSArIDE7CgogICAgICAgIGJ5dGUgPSBzdHJlYW0oKTsKCiAgICBlbmQKCgoKICAgIHJldHVybiB0YWJsZS5jb25jYXQoYXJyYXkpOwoKZW5kCgoKCgoKU3RyZWFtLmZyb21BcnJheSA9IGZ1bmN0aW9uKGFycmF5KQoKICAgIGxvY2FsIHF1ZXVlID0gUXVldWUoKTsKCiAgICBsb2NhbCBpID0gMTsKCgoKICAgIGxvY2FsIGJ5dGUgPSBhcnJheVtpXTsKCiAgICB3aGlsZSBieXRlIH49IG5pbCBkbwoKICAgICAgICBxdWV1ZS5wdXNoKGJ5dGUpOwoKICAgICAgICBpID0gaSArIDE7CgogICAgICAgIGJ5dGUgPSBhcnJheVtpXTsKCiAgICBlbmQKCgoKICAgIHJldHVybiBxdWV1ZS5wb3A7CgplbmQKCgoKCgpTdHJlYW0udG9BcnJheSA9IGZ1bmN0aW9uKHN0cmVhbSkKCiAgICBsb2NhbCBhcnJheSA9IHt9OwoKICAgIGxvY2FsIGkgPSAxOwoKCgogICAgbG9jYWwgYnl0ZSA9IHN0cmVhbSgpOwoKICAgIHdoaWxlIGJ5dGUgfj0gbmlsIGRvCgogICAgICAgIGFycmF5W2ldID0gYnl0ZTsKCiAgICAgICAgaSA9IGkgKyAxOwoKICAgICAgICBieXRlID0gc3RyZWFtKCk7CgogICAgZW5kCgoKCiAgICByZXR1cm4gYXJyYXk7CgplbmQKCgoKCgpsb2NhbCBmcm9tSGV4VGFibGUgPSB7fTsKCmZvciBpID0gMCwgMjU1IGRvCgogICAgZnJvbUhleFRhYmxlW3N0cmluZy5mb3JtYXQoIiUwMlgiLCBpKV0gPSBpOwoKICAgIGZyb21IZXhUYWJsZVtzdHJpbmcuZm9ybWF0KCIlMDJ4IiwgaSldID0gaTsKCmVuZAoKCgpTdHJlYW0uZnJvbUhleCA9IGZ1bmN0aW9uKGhleCkKCiAgICBsb2NhbCBxdWV1ZSA9IFF1ZXVlKCk7CgoKCiAgICBmb3IgaSA9IDEsIHN0cmluZy5sZW4oaGV4KSAvIDIgZG8KCiAgICAgICAgbG9jYWwgaCA9IHN0cmluZy5zdWIoaGV4LCBpICogMiAtIDEsIGkgKiAyKTsKCiAgICAgICAgcXVldWUucHVzaChmcm9tSGV4VGFibGVbaF0pOwoKICAgIGVuZAoKCgogICAgcmV0dXJuIHF1ZXVlLnBvcDsKCmVuZAoKCgoKCgoKbG9jYWwgdG9IZXhUYWJsZSA9IHt9OwoKZm9yIGkgPSAwLCAyNTUgZG8KCiAgICB0b0hleFRhYmxlW2ldID0gc3RyaW5nLmZvcm1hdCgiJTAyWCIsIGkpOwoKZW5kCgoKClN0cmVhbS50b0hleCA9IGZ1bmN0aW9uKHN0cmVhbSkKCiAgICBsb2NhbCBoZXggPSB7fTsKCiAgICBsb2NhbCBpID0gMTsKCgoKICAgIGxvY2FsIGJ5dGUgPSBzdHJlYW0oKTsKCiAgICB3aGlsZSBieXRlIH49IG5pbCBkbwoKICAgICAgICBoZXhbaV0gPSB0b0hleFRhYmxlW2J5dGVdOwoKICAgICAgICBpID0gaSArIDE7CgogICAgICAgIGJ5dGUgPSBzdHJlYW0oKTsKCiAgICBlbmQKCgoKICAgIHJldHVybiB0YWJsZS5jb25jYXQoaGV4KTsKCmVuZAoKCgpyZXR1cm4gU3RyZWFtOwAAAAAAbG9jYWwgYW8gPSB7CgogICAgX3ZlcnNpb24gPSAiMC4wLjQiLAoKICAgIGlkID0gIiIsCgogICAgX21vZHVsZSA9ICIiLAoKICAgIGF1dGhvcml0aWVzID0ge30sCgogICAgX3JlZiA9IDAsCgogICAgb3V0Ym94ID0ge091dHB1dCA9IHt9LCBNZXNzYWdlcyA9IHt9LCBTcGF3bnMgPSB7fSwgQXNzaWdubWVudHMgPSB7fX0KCn0KCgoKbG9jYWwgZnVuY3Rpb24gX2luY2x1ZGVzKGxpc3QpCgogICAgcmV0dXJuIGZ1bmN0aW9uKGtleSkKCiAgICAgICAgbG9jYWwgZXhpc3RzID0gZmFsc2UKCiAgICAgICAgZm9yIF8sIGxpc3RLZXkgaW4gaXBhaXJzKGxpc3QpIGRvCgogICAgICAgICAgICBpZiBrZXkgPT0gbGlzdEtleSB0aGVuCgogICAgICAgICAgICAgICAgZXhpc3RzID0gdHJ1ZQoKICAgICAgICAgICAgICAgIGJyZWFrCgogICAgICAgICAgICBlbmQKCiAgICAgICAgZW5kCgogICAgICAgIGlmIG5vdCBleGlzdHMgdGhlbiByZXR1cm4gZmFsc2UgZW5kCgogICAgICAgIHJldHVybiB0cnVlCgogICAgZW5kCgplbmQKCgoKbG9jYWwgZnVuY3Rpb24gaXNBcnJheSh0YWJsZSkKCiAgICBpZiB0eXBlKHRhYmxlKSA9PSAidGFibGUiIHRoZW4KCiAgICAgICAgbG9jYWwgbWF4SW5kZXggPSAwCgogICAgICAgIGZvciBrLCB2IGluIHBhaXJzKHRhYmxlKSBkbwoKICAgICAgICAgICAgaWYgdHlwZShrKSB+PSAibnVtYmVyIiBvciBrIDwgMSBvciBtYXRoLmZsb29yKGspIH49IGsgdGhlbgoKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZSAtLSBJZiB0aGVyZSdzIGEgbm9uLWludGVnZXIga2V5LCBpdCdzIG5vdCBhbiBhcnJheQoKICAgICAgICAgICAgZW5kCgogICAgICAgICAgICBtYXhJbmRleCA9IG1hdGgubWF4KG1heEluZGV4LCBrKQoKICAgICAgICBlbmQKCiAgICAgICAgLS0gSWYgdGhlIGhpZ2hlc3QgbnVtZXJpYyBpbmRleCBpcyBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzLCBpdCdzIGFuIGFycmF5CgogICAgICAgIHJldHVybiBtYXhJbmRleCA9PSAjdGFibGUKCiAgICBlbmQKCiAgICByZXR1cm4gZmFsc2UKCmVuZAoKCgpsb2NhbCBmdW5jdGlvbiBwYWRaZXJvMzIobnVtKSByZXR1cm4gc3RyaW5nLmZvcm1hdCgiJTAzMmQiLCBudW0pIGVuZAoKCgpmdW5jdGlvbiBhby5ub3JtYWxpemUobXNnKQoKICAgIGZvciBfLCBvIGluIGlwYWlycyhtc2cuVGFncykgZG8KCiAgICAgICAgaWYgbm90IF9pbmNsdWRlcyh7CgogICAgICAgICAgICAnRGF0YS1Qcm90b2NvbCcsICdWYXJpYW50JywgJ0Zyb20tUHJvY2VzcycsICdGcm9tLU1vZHVsZScsICdUeXBlJywKCiAgICAgICAgICAgICdSZWZfJywgJ0Zyb20nLCAnT3duZXInLCAnQW5jaG9yJywgJ1RhcmdldCcsICdEYXRhJywgJ1RhZ3MnCgogICAgICAgIH0pKG8ubmFtZSkgdGhlbiBtc2dbby5uYW1lXSA9IG8udmFsdWUgZW5kCgogICAgZW5kCgogICAgcmV0dXJuIG1zZwoKZW5kCgoKCmZ1bmN0aW9uIGFvLmluaXQoZW52KQoKICAgIGlmIGFvLmlkID09ICIiIHRoZW4gYW8uaWQgPSBlbnYuUHJvY2Vzcy5JZCBlbmQKCgoKICAgIGlmIGFvLl9tb2R1bGUgPT0gIiIgdGhlbgoKICAgICAgICBmb3IgXywgbyBpbiBpcGFpcnMoZW52LlByb2Nlc3MuVGFncykgZG8KCiAgICAgICAgICAgIGlmIG8ubmFtZSA9PSAiTW9kdWxlIiB0aGVuIGFvLl9tb2R1bGUgPSBvLnZhbHVlIGVuZAoKICAgICAgICBlbmQKCiAgICBlbmQKCgoKICAgIGlmICNhby5hdXRob3JpdGllcyA8IDEgdGhlbgoKICAgICAgICBmb3IgXywgbyBpbiBpcGFpcnMoZW52LlByb2Nlc3MuVGFncykgZG8KCiAgICAgICAgICAgIGlmIG8ubmFtZSA9PSAiQXV0aG9yaXR5IiB0aGVuCgogICAgICAgICAgICAgICAgdGFibGUuaW5zZXJ0KGFvLmF1dGhvcml0aWVzLCBvLnZhbHVlKQoKICAgICAgICAgICAgZW5kCgogICAgICAgIGVuZAoKICAgIGVuZAoKCgogICAgYW8ub3V0Ym94ID0ge091dHB1dCA9IHt9LCBNZXNzYWdlcyA9IHt9LCBTcGF3bnMgPSB7fSwgQXNzaWdubWVudHMgPSB7fX0KCiAgICBhby5lbnYgPSBlbnYKCgoKZW5kCgoKCmZ1bmN0aW9uIGFvLmxvZyh0eHQpCgogICAgaWYgdHlwZShhby5vdXRib3guT3V0cHV0KSA9PSAnc3RyaW5nJyB0aGVuCgogICAgICAgIGFvLm91dGJveC5PdXRwdXQgPSB7YW8ub3V0Ym94Lk91dHB1dH0KCiAgICBlbmQKCiAgICB0YWJsZS5pbnNlcnQoYW8ub3V0Ym94Lk91dHB1dCwgdHh0KQoKZW5kCgoKCi0tIGNsZWFycyBvdXRib3gKCmZ1bmN0aW9uIGFvLmNsZWFyT3V0Ym94KCkgYW8ub3V0Ym94ID0ge091dHB1dCA9IHt9LCBNZXNzYWdlcyA9IHt9LCBTcGF3bnMgPSB7fSwgQXNzaWdubWVudHMgPSB7fX0gZW5kCgoKCmZ1bmN0aW9uIGFvLnNlbmQobXNnKQoKICAgIGFzc2VydCh0eXBlKG1zZykgPT0gJ3RhYmxlJywgJ21zZyBzaG91bGQgYmUgYSB0YWJsZScpCgogICAgYW8uX3JlZiA9IGFvLl9yZWYgKyAxCgoKCiAgICBsb2NhbCBtZXNzYWdlID0gewoKICAgICAgICBUYXJnZXQgPSBtc2cuVGFyZ2V0LAoKICAgICAgICBEYXRhID0gbXNnLkRhdGEsCgogICAgICAgIEFuY2hvciA9IHBhZFplcm8zMihhby5fcmVmKSwKCiAgICAgICAgVGFncyA9IHsKCiAgICAgICAgICAgIHtuYW1lID0gIkRhdGEtUHJvdG9jb2wiLCB2YWx1ZSA9ICJhbyJ9LAoKICAgICAgICAgICAge25hbWUgPSAiVmFyaWFudCIsIHZhbHVlID0gImFvLlROLjEifSwKCiAgICAgICAgICAgIHtuYW1lID0gIlR5cGUiLCB2YWx1ZSA9ICJNZXNzYWdlIn0sCgogICAgICAgICAgICB7bmFtZSA9ICJGcm9tLVByb2Nlc3MiLCB2YWx1ZSA9IGFvLmlkfSwKCiAgICAgICAgICAgIHtuYW1lID0gIkZyb20tTW9kdWxlIiwgdmFsdWUgPSBhby5fbW9kdWxlfSwKCiAgICAgICAgICAgIHtuYW1lID0gIlJlZl8iLCB2YWx1ZSA9IHRvc3RyaW5nKGFvLl9yZWYpfQoKICAgICAgICB9CgogICAgfQoKCgogICAgLS0gaWYgY3VzdG9tIHRhZ3MgaW4gcm9vdCBtb3ZlIHRoZW0gdG8gdGFncwoKICAgIGZvciBrLCB2IGluIHBhaXJzKG1zZykgZG8KCiAgICAgICAgaWYgbm90IF9pbmNsdWRlcyh7IlRhcmdldCIsICJEYXRhIiwgIkFuY2hvciIsICJUYWdzIiwgIkZyb20ifSkoaykgdGhlbgoKICAgICAgICAgICAgdGFibGUuaW5zZXJ0KG1lc3NhZ2UuVGFncywge25hbWUgPSBrLCB2YWx1ZSA9IHZ9KQoKICAgICAgICBlbmQKCiAgICBlbmQKCgoKICAgIGlmIG1zZy5UYWdzIHRoZW4KCiAgICAgICAgaWYgaXNBcnJheShtc2cuVGFncykgdGhlbgoKICAgICAgICAgICAgZm9yIF8sIG8gaW4gaXBhaXJzKG1zZy5UYWdzKSBkbwoKICAgICAgICAgICAgICAgIHRhYmxlLmluc2VydChtZXNzYWdlLlRhZ3MsIG8pCgogICAgICAgICAgICBlbmQKCiAgICAgICAgZWxzZQoKICAgICAgICAgICAgZm9yIGssIHYgaW4gcGFpcnMobXNnLlRhZ3MpIGRvCgogICAgICAgICAgICAgICAgdGFibGUuaW5zZXJ0KG1lc3NhZ2UuVGFncywge25hbWUgPSBrLCB2YWx1ZSA9IHZ9KQoKICAgICAgICAgICAgZW5kCgogICAgICAgIGVuZAoKICAgIGVuZAoKCgogICAgLS0gYWRkIG1lc3NhZ2UgdG8gb3V0Ym94CgogICAgdGFibGUuaW5zZXJ0KGFvLm91dGJveC5NZXNzYWdlcywgbWVzc2FnZSkKCgoKICAgIHJldHVybiBtZXNzYWdlCgplbmQKCgoKZnVuY3Rpb24gYW8uc3Bhd24obW9kdWxlLCBtc2cpCgogICAgYXNzZXJ0KHR5cGUobW9kdWxlKSA9PSAic3RyaW5nIiwgIm1vZHVsZSBzb3VyY2UgaWQgaXMgcmVxdWlyZWQhIikKCiAgICBhc3NlcnQodHlwZShtc2cpID09ICd0YWJsZScsICdtc2cgc2hvdWxkIGJlIGEgdGFibGUnKQoKICAgIC0tIGluYyBzcGF3biByZWZlcmVuY2UKCiAgICBhby5fcmVmID0gYW8uX3JlZiArIDEKCgoKICAgIGxvY2FsIHNwYXduID0gewoKICAgICAgICBEYXRhID0gbXNnLkRhdGEgb3IgIk5PREFUQSIsCgogICAgICAgIEFuY2hvciA9IHBhZFplcm8zMihhby5fcmVmKSwKCiAgICAgICAgVGFncyA9IHsKCiAgICAgICAgICAgIHtuYW1lID0gIkRhdGEtUHJvdG9jb2wiLCB2YWx1ZSA9ICJhbyJ9LAoKICAgICAgICAgICAge25hbWUgPSAiVmFyaWFudCIsIHZhbHVlID0gImFvLlROLjEifSwKCiAgICAgICAgICAgIHtuYW1lID0gIlR5cGUiLCB2YWx1ZSA9ICJQcm9jZXNzIn0sCgogICAgICAgICAgICB7bmFtZSA9ICJGcm9tLVByb2Nlc3MiLCB2YWx1ZSA9IGFvLmlkfSwKCiAgICAgICAgICAgIHtuYW1lID0gIkZyb20tTW9kdWxlIiwgdmFsdWUgPSBhby5fbW9kdWxlfSwKCiAgICAgICAgICAgIHtuYW1lID0gIk1vZHVsZSIsIHZhbHVlID0gbW9kdWxlfSwKCiAgICAgICAgICAgIHtuYW1lID0gIlJlZl8iLCB2YWx1ZSA9IHRvc3RyaW5nKGFvLl9yZWYpfQoKICAgICAgICB9CgogICAgfQoKCgogICAgLS0gaWYgY3VzdG9tIHRhZ3MgaW4gcm9vdCBtb3ZlIHRoZW0gdG8gdGFncwoKICAgIGZvciBrLCB2IGluIHBhaXJzKG1zZykgZG8KCiAgICAgICAgaWYgbm90IF9pbmNsdWRlcyh7IlRhcmdldCIsICJEYXRhIiwgIkFuY2hvciIsICJUYWdzIiwgIkZyb20ifSkoaykgdGhlbgoKICAgICAgICAgICAgdGFibGUuaW5zZXJ0KHNwYXduLlRhZ3MsIHtuYW1lID0gaywgdmFsdWUgPSB2fSkKCiAgICAgICAgZW5kCgogICAgZW5kCgoKCiAgICBpZiBtc2cuVGFncyB0aGVuCgogICAgICAgIGlmIGlzQXJyYXkobXNnLlRhZ3MpIHRoZW4KCiAgICAgICAgICAgIGZvciBfLCBvIGluIGlwYWlycyhtc2cuVGFncykgZG8KCiAgICAgICAgICAgICAgICB0YWJsZS5pbnNlcnQoc3Bhd24uVGFncywgbykKCiAgICAgICAgICAgIGVuZAoKICAgICAgICBlbHNlCgogICAgICAgICAgICBmb3IgaywgdiBpbiBwYWlycyhtc2cuVGFncykgZG8KCiAgICAgICAgICAgICAgICB0YWJsZS5pbnNlcnQoc3Bhd24uVGFncywge25hbWUgPSBrLCB2YWx1ZSA9IHZ9KQoKICAgICAgICAgICAgZW5kCgogICAgICAgIGVuZAoKICAgIGVuZAoKCgogICAgLS0gYWRkIHNwYXduIHRvIG91dGJveAoKICAgIHRhYmxlLmluc2VydChhby5vdXRib3guU3Bhd25zLCBzcGF3bikKCgoKICAgIHJldHVybiBzcGF3bgoKZW5kCgoKCmZ1bmN0aW9uIGFvLmFzc2lnbihhc3NpZ25tZW50KQoKICAgIGFzc2VydCh0eXBlKGFzc2lnbm1lbnQpID09ICd0YWJsZScsICdhc3NpZ25tZW50IHNob3VsZCBiZSBhIHRhYmxlJykKCiAgICBhc3NlcnQodHlwZShhc3NpZ25tZW50LlByb2Nlc3NlcykgPT0gJ3RhYmxlJywgJ1Byb2Nlc3NlcyBzaG91bGQgYmUgYSB0YWJsZScpCgogICAgYXNzZXJ0KHR5cGUoYXNzaWdubWVudC5NZXNzYWdlKSA9PSAic3RyaW5nIiwgIk1lc3NhZ2Ugc2hvdWxkIGJlIGEgc3RyaW5nIikKCiAgICB0YWJsZS5pbnNlcnQoYW8ub3V0Ym94LkFzc2lnbm1lbnRzLCBhc3NpZ25tZW50KQoKZW5kCgoKCmZ1bmN0aW9uIGFvLmlzVHJ1c3RlZChtc2cpCgogICAgaWYgI2FvLmF1dGhvcml0aWVzID09IDAgdGhlbiByZXR1cm4gdHJ1ZSBlbmQKCgoKICAgIGZvciBfLCBhdXRob3JpdHkgaW4gaXBhaXJzKGFvLmF1dGhvcml0aWVzKSBkbwoKICAgICAgICBpZiBtc2cuRnJvbSA9PSBhdXRob3JpdHkgdGhlbiByZXR1cm4gdHJ1ZSBlbmQKCiAgICAgICAgaWYgbXNnLk93bmVyID09IGF1dGhvcml0eSB0aGVuIHJldHVybiB0cnVlIGVuZAoKICAgIGVuZAoKICAgIHJldHVybiBmYWxzZQoKZW5kCgoKCmZ1bmN0aW9uIGFvLnJlc3VsdChyZXN1bHQpCgogICAgLS0gaWYgZXJyb3IgdGhlbiBvbmx5IHNlbmQgdGhlIEVycm9yIHRvIENVCgogICAgaWYgYW8ub3V0Ym94LkVycm9yIG9yIHJlc3VsdC5FcnJvciB0aGVuCgogICAgICAgIHJldHVybiB7RXJyb3IgPSByZXN1bHQuRXJyb3Igb3IgYW8ub3V0Ym94LkVycm9yfQoKICAgIGVuZAoKICAgIHJldHVybiB7CgogICAgICAgIE91dHB1dCA9IHJlc3VsdC5PdXRwdXQgb3IgYW8ub3V0Ym94Lk91dHB1dCwKCiAgICAgICAgTWVzc2FnZXMgPSBhby5vdXRib3guTWVzc2FnZXMsCgogICAgICAgIFNwYXducyA9IGFvLm91dGJveC5TcGF3bnMsCgogICAgICAgIEFzc2lnbm1lbnRzID0gYW8ub3V0Ym94LkFzc2lnbm1lbnRzCgogICAgfQoKZW5kCgoKCnJldHVybiBhbwoAAAAAAAAtLQoKLS0ganNvbi5sdWEKCi0tCgotLSBDb3B5cmlnaHQgKGMpIDIwMjAgcnhpCgotLQoKLS0gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZgoKLS0gdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4KCi0tIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8KCi0tIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzCgotLSBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8KCi0tIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKCi0tCgotLSBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKCi0tIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgotLQoKLS0gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKCi0tIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAoKLS0gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCgotLSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCgotLSBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAoKLS0gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKCi0tIFNPRlRXQVJFLgoKLS0KCgoKbG9jYWwganNvbiA9IHsgX3ZlcnNpb24gPSAiMC4xLjIiIH0KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLS0gRW5jb2RlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmxvY2FsIGVuY29kZQoKCgpsb2NhbCBlc2NhcGVfY2hhcl9tYXAgPSB7CgogIFsgIlxcIiBdID0gIlxcIiwKCiAgWyAiXCIiIF0gPSAiXCIiLAoKICBbICJcYiIgXSA9ICJiIiwKCiAgWyAiXGYiIF0gPSAiZiIsCgogIFsgIlxuIiBdID0gIm4iLAoKICBbICJcciIgXSA9ICJyIiwKCiAgWyAiXHQiIF0gPSAidCIsCgp9CgoKCmxvY2FsIGVzY2FwZV9jaGFyX21hcF9pbnYgPSB7IFsgIi8iIF0gPSAiLyIgfQoKZm9yIGssIHYgaW4gcGFpcnMoZXNjYXBlX2NoYXJfbWFwKSBkbwoKICBlc2NhcGVfY2hhcl9tYXBfaW52W3ZdID0gawoKZW5kCgoKCgoKbG9jYWwgZnVuY3Rpb24gZXNjYXBlX2NoYXIoYykKCiAgcmV0dXJuICJcXCIgLi4gKGVzY2FwZV9jaGFyX21hcFtjXSBvciBzdHJpbmcuZm9ybWF0KCJ1JTA0eCIsIGM6Ynl0ZSgpKSkKCmVuZAoKCgoKCmxvY2FsIGZ1bmN0aW9uIGVuY29kZV9uaWwodmFsKQoKICByZXR1cm4gIm51bGwiCgplbmQKCgoKCgpsb2NhbCBmdW5jdGlvbiBlbmNvZGVfdGFibGUodmFsLCBzdGFjaykKCiAgbG9jYWwgcmVzID0ge30KCiAgc3RhY2sgPSBzdGFjayBvciB7fQoKCgogIC0tIENpcmN1bGFyIHJlZmVyZW5jZT8KCiAgaWYgc3RhY2tbdmFsXSB0aGVuIGVycm9yKCJjaXJjdWxhciByZWZlcmVuY2UiKSBlbmQKCgoKICBzdGFja1t2YWxdID0gdHJ1ZQoKCgogIGlmIHJhd2dldCh2YWwsIDEpIH49IG5pbCBvciBuZXh0KHZhbCkgPT0gbmlsIHRoZW4KCiAgICAtLSBUcmVhdCBhcyBhcnJheSAtLSBjaGVjayBrZXlzIGFyZSB2YWxpZCBhbmQgaXQgaXMgbm90IHNwYXJzZQoKICAgIGxvY2FsIG4gPSAwCgogICAgZm9yIGsgaW4gcGFpcnModmFsKSBkbwoKICAgICAgaWYgdHlwZShrKSB+PSAibnVtYmVyIiB0aGVuCgogICAgICAgIGVycm9yKCJpbnZhbGlkIHRhYmxlOiBtaXhlZCBvciBpbnZhbGlkIGtleSB0eXBlcyIpCgogICAgICBlbmQKCiAgICAgIG4gPSBuICsgMQoKICAgIGVuZAoKICAgIGlmIG4gfj0gI3ZhbCB0aGVuCgogICAgICBlcnJvcigiaW52YWxpZCB0YWJsZTogc3BhcnNlIGFycmF5IikKCiAgICBlbmQKCiAgICAtLSBFbmNvZGUKCiAgICBmb3IgaSwgdiBpbiBpcGFpcnModmFsKSBkbwoKICAgICAgdGFibGUuaW5zZXJ0KHJlcywgZW5jb2RlKHYsIHN0YWNrKSkKCiAgICBlbmQKCiAgICBzdGFja1t2YWxdID0gbmlsCgogICAgcmV0dXJuICJbIiAuLiB0YWJsZS5jb25jYXQocmVzLCAiLCIpIC4uICJdIgoKCgogIGVsc2UKCiAgICAtLSBUcmVhdCBhcyBhbiBvYmplY3QKCiAgICBmb3IgaywgdiBpbiBwYWlycyh2YWwpIGRvCgogICAgICBpZiB0eXBlKGspIH49ICJzdHJpbmciIHRoZW4KCiAgICAgICAgZXJyb3IoImludmFsaWQgdGFibGU6IG1peGVkIG9yIGludmFsaWQga2V5IHR5cGVzIikKCiAgICAgIGVuZAoKICAgICAgdGFibGUuaW5zZXJ0KHJlcywgZW5jb2RlKGssIHN0YWNrKSAuLiAiOiIgLi4gZW5jb2RlKHYsIHN0YWNrKSkKCiAgICBlbmQKCiAgICBzdGFja1t2YWxdID0gbmlsCgogICAgcmV0dXJuICJ7IiAuLiB0YWJsZS5jb25jYXQocmVzLCAiLCIpIC4uICJ9IgoKICBlbmQKCmVuZAoKCgoKCmxvY2FsIGZ1bmN0aW9uIGVuY29kZV9zdHJpbmcodmFsKQoKICByZXR1cm4gJyInIC4uIHZhbDpnc3ViKCdbJXpcMS1cMzFcXCJdJywgZXNjYXBlX2NoYXIpIC4uICciJwoKZW5kCgoKCgoKbG9jYWwgZnVuY3Rpb24gZW5jb2RlX251bWJlcih2YWwpCgogIC0tIENoZWNrIGZvciBOYU4sIC1pbmYgYW5kIGluZgoKICBpZiB2YWwgfj0gdmFsIG9yIHZhbCA8PSAtbWF0aC5odWdlIG9yIHZhbCA+PSBtYXRoLmh1Z2UgdGhlbgoKICAgIGVycm9yKCJ1bmV4cGVjdGVkIG51bWJlciB2YWx1ZSAnIiAuLiB0b3N0cmluZyh2YWwpIC4uICInIikKCiAgZW5kCgogIHJldHVybiBzdHJpbmcuZm9ybWF0KCIlLjE0ZyIsIHZhbCkKCmVuZAoKCgoKCmxvY2FsIHR5cGVfZnVuY19tYXAgPSB7CgogIFsgIm5pbCIgICAgIF0gPSBlbmNvZGVfbmlsLAoKICBbICJ0YWJsZSIgICBdID0gZW5jb2RlX3RhYmxlLAoKICBbICJzdHJpbmciICBdID0gZW5jb2RlX3N0cmluZywKCiAgWyAibnVtYmVyIiAgXSA9IGVuY29kZV9udW1iZXIsCgogIFsgImJvb2xlYW4iIF0gPSB0b3N0cmluZywKCn0KCgoKCgplbmNvZGUgPSBmdW5jdGlvbih2YWwsIHN0YWNrKQoKICBsb2NhbCB0ID0gdHlwZSh2YWwpCgogIGxvY2FsIGYgPSB0eXBlX2Z1bmNfbWFwW3RdCgogIGlmIGYgdGhlbgoKICAgIHJldHVybiBmKHZhbCwgc3RhY2spCgogIGVuZAoKICBlcnJvcigidW5leHBlY3RlZCB0eXBlICciIC4uIHQgLi4gIiciKQoKZW5kCgoKCgoKZnVuY3Rpb24ganNvbi5lbmNvZGUodmFsKQoKICByZXR1cm4gKCBlbmNvZGUodmFsKSApCgplbmQKCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgotLSBEZWNvZGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbG9jYWwgcGFyc2UKCgoKbG9jYWwgZnVuY3Rpb24gY3JlYXRlX3NldCguLi4pCgogIGxvY2FsIHJlcyA9IHt9CgogIGZvciBpID0gMSwgc2VsZWN0KCIjIiwgLi4uKSBkbwoKICAgIHJlc1sgc2VsZWN0KGksIC4uLikgXSA9IHRydWUKCiAgZW5kCgogIHJldHVybiByZXMKCmVuZAoKCgpsb2NhbCBzcGFjZV9jaGFycyAgID0gY3JlYXRlX3NldCgiICIsICJcdCIsICJcciIsICJcbiIpCgpsb2NhbCBkZWxpbV9jaGFycyAgID0gY3JlYXRlX3NldCgiICIsICJcdCIsICJcciIsICJcbiIsICJdIiwgIn0iLCAiLCIpCgpsb2NhbCBlc2NhcGVfY2hhcnMgID0gY3JlYXRlX3NldCgiXFwiLCAiLyIsICciJywgImIiLCAiZiIsICJuIiwgInIiLCAidCIsICJ1IikKCmxvY2FsIGxpdGVyYWxzICAgICAgPSBjcmVhdGVfc2V0KCJ0cnVlIiwgImZhbHNlIiwgIm51bGwiKQoKCgpsb2NhbCBsaXRlcmFsX21hcCA9IHsKCiAgWyAidHJ1ZSIgIF0gPSB0cnVlLAoKICBbICJmYWxzZSIgXSA9IGZhbHNlLAoKICBbICJudWxsIiAgXSA9IG5pbCwKCn0KCgoKCgpsb2NhbCBmdW5jdGlvbiBuZXh0X2NoYXIoc3RyLCBpZHgsIHNldCwgbmVnYXRlKQoKICBmb3IgaSA9IGlkeCwgI3N0ciBkbwoKICAgIGlmIHNldFtzdHI6c3ViKGksIGkpXSB+PSBuZWdhdGUgdGhlbgoKICAgICAgcmV0dXJuIGkKCiAgICBlbmQKCiAgZW5kCgogIHJldHVybiAjc3RyICsgMQoKZW5kCgoKCgoKbG9jYWwgZnVuY3Rpb24gZGVjb2RlX2Vycm9yKHN0ciwgaWR4LCBtc2cpCgogIGxvY2FsIGxpbmVfY291bnQgPSAxCgogIGxvY2FsIGNvbF9jb3VudCA9IDEKCiAgZm9yIGkgPSAxLCBpZHggLSAxIGRvCgogICAgY29sX2NvdW50ID0gY29sX2NvdW50ICsgMQoKICAgIGlmIHN0cjpzdWIoaSwgaSkgPT0gIlxuIiB0aGVuCgogICAgICBsaW5lX2NvdW50ID0gbGluZV9jb3VudCArIDEKCiAgICAgIGNvbF9jb3VudCA9IDEKCiAgICBlbmQKCiAgZW5kCgogIGVycm9yKCBzdHJpbmcuZm9ybWF0KCIlcyBhdCBsaW5lICVkIGNvbCAlZCIsIG1zZywgbGluZV9jb3VudCwgY29sX2NvdW50KSApCgplbmQKCgoKCgpsb2NhbCBmdW5jdGlvbiBjb2RlcG9pbnRfdG9fdXRmOChuKQoKICAtLSBodHRwOi8vc2NyaXB0cy5zaWwub3JnL2Ntcy9zY3JpcHRzL3BhZ2UucGhwP3NpdGVfaWQ9bnJzaSZpZD1pd3MtYXBwZW5kaXhhCgogIGxvY2FsIGYgPSBtYXRoLmZsb29yCgogIGlmIG4gPD0gMHg3ZiB0aGVuCgogICAgcmV0dXJuIHN0cmluZy5jaGFyKG4pCgogIGVsc2VpZiBuIDw9IDB4N2ZmIHRoZW4KCiAgICByZXR1cm4gc3RyaW5nLmNoYXIoZihuIC8gNjQpICsgMTkyLCBuICUgNjQgKyAxMjgpCgogIGVsc2VpZiBuIDw9IDB4ZmZmZiB0aGVuCgogICAgcmV0dXJuIHN0cmluZy5jaGFyKGYobiAvIDQwOTYpICsgMjI0LCBmKG4gJSA0MDk2IC8gNjQpICsgMTI4LCBuICUgNjQgKyAxMjgpCgogIGVsc2VpZiBuIDw9IDB4MTBmZmZmIHRoZW4KCiAgICByZXR1cm4gc3RyaW5nLmNoYXIoZihuIC8gMjYyMTQ0KSArIDI0MCwgZihuICUgMjYyMTQ0IC8gNDA5NikgKyAxMjgsCgogICAgICAgICAgICAgICAgICAgICAgIGYobiAlIDQwOTYgLyA2NCkgKyAxMjgsIG4gJSA2NCArIDEyOCkKCiAgZW5kCgogIGVycm9yKCBzdHJpbmcuZm9ybWF0KCJpbnZhbGlkIHVuaWNvZGUgY29kZXBvaW50ICcleCciLCBuKSApCgplbmQKCgoKCgpsb2NhbCBmdW5jdGlvbiBwYXJzZV91bmljb2RlX2VzY2FwZShzKQoKICBsb2NhbCBuMSA9IHRvbnVtYmVyKCBzOnN1YigxLCA0KSwgIDE2ICkKCiAgbG9jYWwgbjIgPSB0b251bWJlciggczpzdWIoNywgMTApLCAxNiApCgogICAtLSBTdXJyb2dhdGUgcGFpcj8KCiAgaWYgbjIgdGhlbgoKICAgIHJldHVybiBjb2RlcG9pbnRfdG9fdXRmOCgobjEgLSAweGQ4MDApICogMHg0MDAgKyAobjIgLSAweGRjMDApICsgMHgxMDAwMCkKCiAgZWxzZQoKICAgIHJldHVybiBjb2RlcG9pbnRfdG9fdXRmOChuMSkKCiAgZW5kCgplbmQKCgoKCgpsb2NhbCBmdW5jdGlvbiBwYXJzZV9zdHJpbmcoc3RyLCBpKQoKICBsb2NhbCByZXMgPSAiIgoKICBsb2NhbCBqID0gaSArIDEKCiAgbG9jYWwgayA9IGoKCgoKICB3aGlsZSBqIDw9ICNzdHIgZG8KCiAgICBsb2NhbCB4ID0gc3RyOmJ5dGUoaikKCgoKICAgIGlmIHggPCAzMiB0aGVuCgogICAgICBkZWNvZGVfZXJyb3Ioc3RyLCBqLCAiY29udHJvbCBjaGFyYWN0ZXIgaW4gc3RyaW5nIikKCgoKICAgIGVsc2VpZiB4ID09IDkyIHRoZW4gLS0gYFxgOiBFc2NhcGUKCiAgICAgIHJlcyA9IHJlcyAuLiBzdHI6c3ViKGssIGogLSAxKQoKICAgICAgaiA9IGogKyAxCgogICAgICBsb2NhbCBjID0gc3RyOnN1YihqLCBqKQoKICAgICAgaWYgYyA9PSAidSIgdGhlbgoKICAgICAgICBsb2NhbCBoZXggPSBzdHI6bWF0Y2goIl5bZERdWzg5YUFiQl0leCV4XFx1JXgleCV4JXgiLCBqICsgMSkKCiAgICAgICAgICAgICAgICAgb3Igc3RyOm1hdGNoKCJeJXgleCV4JXgiLCBqICsgMSkKCiAgICAgICAgICAgICAgICAgb3IgZGVjb2RlX2Vycm9yKHN0ciwgaiAtIDEsICJpbnZhbGlkIHVuaWNvZGUgZXNjYXBlIGluIHN0cmluZyIpCgogICAgICAgIHJlcyA9IHJlcyAuLiBwYXJzZV91bmljb2RlX2VzY2FwZShoZXgpCgogICAgICAgIGogPSBqICsgI2hleAoKICAgICAgZWxzZQoKICAgICAgICBpZiBub3QgZXNjYXBlX2NoYXJzW2NdIHRoZW4KCiAgICAgICAgICBkZWNvZGVfZXJyb3Ioc3RyLCBqIC0gMSwgImludmFsaWQgZXNjYXBlIGNoYXIgJyIgLi4gYyAuLiAiJyBpbiBzdHJpbmciKQoKICAgICAgICBlbmQKCiAgICAgICAgcmVzID0gcmVzIC4uIGVzY2FwZV9jaGFyX21hcF9pbnZbY10KCiAgICAgIGVuZAoKICAgICAgayA9IGogKyAxCgoKCiAgICBlbHNlaWYgeCA9PSAzNCB0aGVuIC0tIGAiYDogRW5kIG9mIHN0cmluZwoKICAgICAgcmVzID0gcmVzIC4uIHN0cjpzdWIoaywgaiAtIDEpCgogICAgICByZXR1cm4gcmVzLCBqICsgMQoKICAgIGVuZAoKCgogICAgaiA9IGogKyAxCgogIGVuZAoKCgogIGRlY29kZV9lcnJvcihzdHIsIGksICJleHBlY3RlZCBjbG9zaW5nIHF1b3RlIGZvciBzdHJpbmciKQoKZW5kCgoKCgoKbG9jYWwgZnVuY3Rpb24gcGFyc2VfbnVtYmVyKHN0ciwgaSkKCiAgbG9jYWwgeCA9IG5leHRfY2hhcihzdHIsIGksIGRlbGltX2NoYXJzKQoKICBsb2NhbCBzID0gc3RyOnN1YihpLCB4IC0gMSkKCiAgbG9jYWwgbiA9IHRvbnVtYmVyKHMpCgogIGlmIG5vdCBuIHRoZW4KCiAgICBkZWNvZGVfZXJyb3Ioc3RyLCBpLCAiaW52YWxpZCBudW1iZXIgJyIgLi4gcyAuLiAiJyIpCgogIGVuZAoKICByZXR1cm4gbiwgeAoKZW5kCgoKCgoKbG9jYWwgZnVuY3Rpb24gcGFyc2VfbGl0ZXJhbChzdHIsIGkpCgogIGxvY2FsIHggPSBuZXh0X2NoYXIoc3RyLCBpLCBkZWxpbV9jaGFycykKCiAgbG9jYWwgd29yZCA9IHN0cjpzdWIoaSwgeCAtIDEpCgogIGlmIG5vdCBsaXRlcmFsc1t3b3JkXSB0aGVuCgogICAgZGVjb2RlX2Vycm9yKHN0ciwgaSwgImludmFsaWQgbGl0ZXJhbCAnIiAuLiB3b3JkIC4uICInIikKCiAgZW5kCgogIHJldHVybiBsaXRlcmFsX21hcFt3b3JkXSwgeAoKZW5kCgoKCgoKbG9jYWwgZnVuY3Rpb24gcGFyc2VfYXJyYXkoc3RyLCBpKQoKICBsb2NhbCByZXMgPSB7fQoKICBsb2NhbCBuID0gMQoKICBpID0gaSArIDEKCiAgd2hpbGUgMSBkbwoKICAgIGxvY2FsIHgKCiAgICBpID0gbmV4dF9jaGFyKHN0ciwgaSwgc3BhY2VfY2hhcnMsIHRydWUpCgogICAgLS0gRW1wdHkgLyBlbmQgb2YgYXJyYXk/CgogICAgaWYgc3RyOnN1YihpLCBpKSA9PSAiXSIgdGhlbgoKICAgICAgaSA9IGkgKyAxCgogICAgICBicmVhawoKICAgIGVuZAoKICAgIC0tIFJlYWQgdG9rZW4KCiAgICB4LCBpID0gcGFyc2Uoc3RyLCBpKQoKICAgIHJlc1tuXSA9IHgKCiAgICBuID0gbiArIDEKCiAgICAtLSBOZXh0IHRva2VuCgogICAgaSA9IG5leHRfY2hhcihzdHIsIGksIHNwYWNlX2NoYXJzLCB0cnVlKQoKICAgIGxvY2FsIGNociA9IHN0cjpzdWIoaSwgaSkKCiAgICBpID0gaSArIDEKCiAgICBpZiBjaHIgPT0gIl0iIHRoZW4gYnJlYWsgZW5kCgogICAgaWYgY2hyIH49ICIsIiB0aGVuIGRlY29kZV9lcnJvcihzdHIsIGksICJleHBlY3RlZCAnXScgb3IgJywnIikgZW5kCgogIGVuZAoKICByZXR1cm4gcmVzLCBpCgplbmQKCgoKCgpsb2NhbCBmdW5jdGlvbiBwYXJzZV9vYmplY3Qoc3RyLCBpKQoKICBsb2NhbCByZXMgPSB7fQoKICBpID0gaSArIDEKCiAgd2hpbGUgMSBkbwoKICAgIGxvY2FsIGtleSwgdmFsCgogICAgaSA9IG5leHRfY2hhcihzdHIsIGksIHNwYWNlX2NoYXJzLCB0cnVlKQoKICAgIC0tIEVtcHR5IC8gZW5kIG9mIG9iamVjdD8KCiAgICBpZiBzdHI6c3ViKGksIGkpID09ICJ9IiB0aGVuCgogICAgICBpID0gaSArIDEKCiAgICAgIGJyZWFrCgogICAgZW5kCgogICAgLS0gUmVhZCBrZXkKCiAgICBpZiBzdHI6c3ViKGksIGkpIH49ICciJyB0aGVuCgogICAgICBkZWNvZGVfZXJyb3Ioc3RyLCBpLCAiZXhwZWN0ZWQgc3RyaW5nIGZvciBrZXkiKQoKICAgIGVuZAoKICAgIGtleSwgaSA9IHBhcnNlKHN0ciwgaSkKCiAgICAtLSBSZWFkICc6JyBkZWxpbWl0ZXIKCiAgICBpID0gbmV4dF9jaGFyKHN0ciwgaSwgc3BhY2VfY2hhcnMsIHRydWUpCgogICAgaWYgc3RyOnN1YihpLCBpKSB+PSAiOiIgdGhlbgoKICAgICAgZGVjb2RlX2Vycm9yKHN0ciwgaSwgImV4cGVjdGVkICc6JyBhZnRlciBrZXkiKQoKICAgIGVuZAoKICAgIGkgPSBuZXh0X2NoYXIoc3RyLCBpICsgMSwgc3BhY2VfY2hhcnMsIHRydWUpCgogICAgLS0gUmVhZCB2YWx1ZQoKICAgIHZhbCwgaSA9IHBhcnNlKHN0ciwgaSkKCiAgICAtLSBTZXQKCiAgICByZXNba2V5XSA9IHZhbAoKICAgIC0tIE5leHQgdG9rZW4KCiAgICBpID0gbmV4dF9jaGFyKHN0ciwgaSwgc3BhY2VfY2hhcnMsIHRydWUpCgogICAgbG9jYWwgY2hyID0gc3RyOnN1YihpLCBpKQoKICAgIGkgPSBpICsgMQoKICAgIGlmIGNociA9PSAifSIgdGhlbiBicmVhayBlbmQKCiAgICBpZiBjaHIgfj0gIiwiIHRoZW4gZGVjb2RlX2Vycm9yKHN0ciwgaSwgImV4cGVjdGVkICd9JyBvciAnLCciKSBlbmQKCiAgZW5kCgogIHJldHVybiByZXMsIGkKCmVuZAoKCgoKCmxvY2FsIGNoYXJfZnVuY19tYXAgPSB7CgogIFsgJyInIF0gPSBwYXJzZV9zdHJpbmcsCgogIFsgIjAiIF0gPSBwYXJzZV9udW1iZXIsCgogIFsgIjEiIF0gPSBwYXJzZV9udW1iZXIsCgogIFsgIjIiIF0gPSBwYXJzZV9udW1iZXIsCgogIFsgIjMiIF0gPSBwYXJzZV9udW1iZXIsCgogIFsgIjQiIF0gPSBwYXJzZV9udW1iZXIsCgogIFsgIjUiIF0gPSBwYXJzZV9udW1iZXIsCgogIFsgIjYiIF0gPSBwYXJzZV9udW1iZXIsCgogIFsgIjciIF0gPSBwYXJzZV9udW1iZXIsCgogIFsgIjgiIF0gPSBwYXJzZV9udW1iZXIsCgogIFsgIjkiIF0gPSBwYXJzZV9udW1iZXIsCgogIFsgIi0iIF0gPSBwYXJzZV9udW1iZXIsCgogIFsgInQiIF0gPSBwYXJzZV9saXRlcmFsLAoKICBbICJmIiBdID0gcGFyc2VfbGl0ZXJhbCwKCiAgWyAibiIgXSA9IHBhcnNlX2xpdGVyYWwsCgogIFsgIlsiIF0gPSBwYXJzZV9hcnJheSwKCiAgWyAieyIgXSA9IHBhcnNlX29iamVjdCwKCn0KCgoKCgpwYXJzZSA9IGZ1bmN0aW9uKHN0ciwgaWR4KQoKICBsb2NhbCBjaHIgPSBzdHI6c3ViKGlkeCwgaWR4KQoKICBsb2NhbCBmID0gY2hhcl9mdW5jX21hcFtjaHJdCgogIGlmIGYgdGhlbgoKICAgIHJldHVybiBmKHN0ciwgaWR4KQoKICBlbmQKCiAgZGVjb2RlX2Vycm9yKHN0ciwgaWR4LCAidW5leHBlY3RlZCBjaGFyYWN0ZXIgJyIgLi4gY2hyIC4uICInIikKCmVuZAoKCgoKCmZ1bmN0aW9uIGpzb24uZGVjb2RlKHN0cikKCiAgaWYgdHlwZShzdHIpIH49ICJzdHJpbmciIHRoZW4KCiAgICBlcnJvcigiZXhwZWN0ZWQgYXJndW1lbnQgb2YgdHlwZSBzdHJpbmcsIGdvdCAiIC4uIHR5cGUoc3RyKSkKCiAgZW5kCgogIGxvY2FsIHJlcywgaWR4ID0gcGFyc2Uoc3RyLCBuZXh0X2NoYXIoc3RyLCAxLCBzcGFjZV9jaGFycywgdHJ1ZSkp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AAAAAMDmPwBB4ZMTCzJgWd+91dU/3GWkCCoLCr3eEgSVAAAAAP////////////////DJBAAUAAAAQy5VVEYtOABBsJQTC0dMQ19DVFlQRQAAAABMQ19OVU1FUklDAABMQ19USU1FAAAAAABMQ19DT0xMQVRFAABMQ19NT05FVEFSWQBMQ19NRVNTQUdFUwBBgJUTCwdDLlVURi04AEGYlRMLqQ5w1QQACNYEAJjWBABObyBlcnJvciBpbmZvcm1hdGlvbgBJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBNdWx0aWhvcCBhdHRlbXB0ZWQAQdKjEwuWAaUCWwDwAbUFjAUlAYMGHQOUBP8AxwMxAwsGvAGPAX8DygQrANoGrwBCA04D3AEOBBUAoQYNAZQCCwI4BmQCvAL/Al0D5wQLB88CywXvBdsF4QIeBkUChQCCAmwDbwTxAPMDGAXZANoDTAZUAnsBnQO9BAAAUQAVArsAswNtAP8BhQQvBfkEOABlAUYBnwC3BqgBcwJTAQBBmKUTCwwhBAAAAAAAAAAALwIAQbilEwsGNQRHBFYEAEHOpRMLAqAEAEHipRMLgQFGBWAFbgVhBgAAzwEAAAAAAAAAAMkG6Qb5BgAAAADRdJ4AV529KoBwUg///z4nCgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QUYAAAANQAAAHEAAABr////zvv//5K///8AAAAAAAAAAC90bXAvdG1wZmlsZV9YWFhYWFgAQfCmEwsSL3RtcC90bXBuYW1fWFhYWFhYAEGQpxMLQRkACgAZGRkAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAGQARChkZGQMKBwABAAkLGAAACQYLAAALAAYZAAAAGRkZAEHhpxMLIQ4AAAAAAAAAABkACg0ZGRkADQAAAgAJDgAAAAkADgAADgBBm6gTCwEMAEGnqBMLFRMAAAAAEwAAAAAJDAAAAAAADAAADABB1agTCwEQAEHhqBMLFQ8AAAAEDwAAAAAJEAAAAAAAEAAAEABBj6kTCwESAEGbqRMLHhEAAAAAEQAAAAAJEgAAAAAAEgAAEgAAGgAAABoaGgBB0qkTCw4aAAAAGhoaAAAAAAAACQBBg6oTCwEUAEGPqhMLFRcAAAAAFwAAAAAJFAAAAAAAFAAAFABBvaoTCwEWAEHJqhMLJxUAAAAAFQAAAAAJFgAAAAAAFgAAFgAAMDEyMzQ1Njc4OUFCQ0RFRgBB8KoTCwEFAEH8qhMLAcYAQZSrEwsLxAAAAMMAAACk/AQAQayrEwsBAgBBvKsTCwj//////////wBBgKwTCwlw1QQAAAAAAAkAQZSsEwsBxgBBqKwTCxLFAAAAAAAAAMMAAAC4/AQAAAQAQdSsEwsE/////wBBmK0TCwEFAEGkrRMLAccAQbytEwsOxAAAAMgAAADIAAUAAAQAQdStEwsBAQBB5K0TCwX/////CgBBqK4TCweY1gQA4AZV"
|