f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAAAYCgAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIHN0cmNvbnY7CnBrZ3BhdGggc3RyY29udjsKcHJpb3JpdHkgMjsKaW1wb3J0IGVycm9ycyBlcnJvcnMgImVycm9ycyI7CmltcG9ydCBtYXRoIG1hdGggIm1hdGgiOwppbXBvcnQgcnVudGltZSBydW50aW1lICJydW50aW1lIjsKaW1wb3J0IHV0ZjggdW5pY29kZS91dGY4ICJ1bmljb2RlL3V0ZjgiOwppbml0IHN0cmNvbnYgc3RyY29udi4uaW1wb3J0IDIgbWF0aCBtYXRoLi5pbXBvcnQgMSBydW50aW1lIHJ1bnRpbWUuLmltcG9ydCAxOwpmdW5jIEFwcGVuZEJvb2wgKGRzdCA8dHlwZSAxIFtdIDx0eXBlIC0yMD4+LCBiIDx0eXBlIC0xNT4pIDx0eXBlIDIgW10gPHR5cGUgLTIwPj47CmZ1bmMgQXBwZW5kRmxvYXQgKGRzdCA8dHlwZSAzIFtdIDx0eXBlIC0yMD4+LCBmIDx0eXBlIC0xMD4sIGZtdCA8dHlwZSAtMjA+LCBwcmVjIDx0eXBlIC0xMT4sIGJpdFNpemUgPHR5cGUgLTExPikgPHR5cGUgNCBbXSA8dHlwZSAtMjA+PjsKZnVuYyBBcHBlbmRJbnQgKGRzdCA8dHlwZSA1IFtdIDx0eXBlIC0yMD4+LCBpIDx0eXBlIC00PiwgYmFzZSA8dHlwZSAtMTE+KSA8dHlwZSA2IFtdIDx0eXBlIC0yMD4+OwpmdW5jIEFwcGVuZFF1b3RlIChkc3QgPHR5cGUgNyBbXSA8dHlwZSAtMjA+PiwgcyA8dHlwZSAtMTY+KSA8dHlwZSA4IFtdIDx0eXBlIC0yMD4+OwpmdW5jIEFwcGVuZFF1b3RlUnVuZSAoZHN0IDx0eXBlIDkgW10gPHR5cGUgLTIwPj4sIHIgPHR5cGUgLTIxPikgPHR5cGUgMTAgW10gPHR5cGUgLTIwPj47CmZ1bmMgQXBwZW5kUXVvdGVSdW5lVG9BU0NJSSAoZHN0IDx0eXBlIDExIFtdIDx0eXBlIC0yMD4+LCByIDx0eXBlIC0yMT4pIDx0eXBlIDEyIFtdIDx0eXBlIC0yMD4+OwpmdW5jIEFwcGVuZFF1b3RlVG9BU0NJSSAoZHN0IDx0eXBlIDEzIFtdIDx0eXBlIC0yMD4+LCBzIDx0eXBlIC0xNj4pIDx0eXBlIDE0IFtdIDx0eXBlIC0yMD4+OwpmdW5jIEFwcGVuZFVpbnQgKGRzdCA8dHlwZSAxNSBbXSA8dHlwZSAtMjA+PiwgaSA8dHlwZSAtOD4sIGJhc2UgPHR5cGUgLTExPikgPHR5cGUgMTYgW10gPHR5cGUgLTIwPj47CmZ1bmMgQXRvaSAocyA8dHlwZSAtMTY+KSAoaSA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgQ2FuQmFja3F1b3RlIChzIDx0eXBlIC0xNj4pIDx0eXBlIC0xNT47CnZhciBFcnJSYW5nZSA8dHlwZSAtMTk+Owp2YXIgRXJyU3ludGF4IDx0eXBlIC0xOT47CmZ1bmMgRm9ybWF0Qm9vbCAoYiA8dHlwZSAtMTU+KSA8dHlwZSAtMTY+OwpmdW5jIEZvcm1hdEZsb2F0IChmIDx0eXBlIC0xMD4sIGZtdCA8dHlwZSAtMjA+LCBwcmVjIDx0eXBlIC0xMT4sIGJpdFNpemUgPHR5cGUgLTExPikgPHR5cGUgLTE2PjsKZnVuYyBGb3JtYXRJbnQgKGkgPHR5cGUgLTQ+LCBiYXNlIDx0eXBlIC0xMT4pIDx0eXBlIC0xNj47CmZ1bmMgRm9ybWF0VWludCAoaSA8dHlwZSAtOD4sIGJhc2UgPHR5cGUgLTExPikgPHR5cGUgLTE2PjsKY29uc3QgSW50U2l6ZSA9IDMyIDsKZnVuYyBJc1ByaW50IChyIDx0eXBlIC0yMT4pIDx0eXBlIC0xNT47CmZ1bmMgSXRvYSAoaSA8dHlwZSAtMTE+KSA8dHlwZSAtMTY+Owp0eXBlIDx0eXBlIDE3ICJOdW1FcnJvciIgPHR5cGUgMTggc3RydWN0IHsgRnVuYyA8dHlwZSAtMTY+OyBOdW0gPHR5cGUgLTE2PjsgRXJyIDx0eXBlIC0xOT47IH0+CiBmdW5jIChlIDx0eXBlIDE5ICo8dHlwZSAxNz4+KSBFcnJvciAoKSA8dHlwZSAtMTY+Owo+OwpmdW5jIFBhcnNlQm9vbCAoc3RyIDx0eXBlIC0xNj4pICh2YWx1ZSA8dHlwZSAtMTU+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgUGFyc2VGbG9hdCAocyA8dHlwZSAtMTY+LCBiaXRTaXplIDx0eXBlIC0xMT4pIChmIDx0eXBlIC0xMD4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBQYXJzZUludCAocyA8dHlwZSAtMTY+LCBiYXNlIDx0eXBlIC0xMT4sIGJpdFNpemUgPHR5cGUgLTExPikgKGkgPHR5cGUgLTQ+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgUGFyc2VVaW50IChzIDx0eXBlIC0xNj4sIGJhc2UgPHR5cGUgLTExPiwgYml0U2l6ZSA8dHlwZSAtMTE+KSAobiA8dHlwZSAtOD4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBRdW90ZSAocyA8dHlwZSAtMTY+KSA8dHlwZSAtMTY+OwpmdW5jIFF1b3RlUnVuZSAociA8dHlwZSAtMjE+KSA8dHlwZSAtMTY+OwpmdW5jIFF1b3RlUnVuZVRvQVNDSUkgKHIgPHR5cGUgLTIxPikgPHR5cGUgLTE2PjsKZnVuYyBRdW90ZVRvQVNDSUkgKHMgPHR5cGUgLTE2PikgPHR5cGUgLTE2PjsKZnVuYyBVbnF1b3RlIChzIDx0eXBlIC0xNj4pICh0IDx0eXBlIC0xNj4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBVbnF1b3RlQ2hhciAocyA8dHlwZSAtMTY+LCBxdW90ZSA8dHlwZSAtMjA+KSAodmFsdWUgPHR5cGUgLTIxPiwgbXVsdGlieXRlIDx0eXBlIC0xNT4sIHRhaWwgPHR5cGUgLTE2PiwgZXJyIDx0eXBlIC0xOT4pOwpjaGVja3N1bSA3NjE3OTU0MDQzRjg1OEJENzhENUYxRTU1NkU2QURDNDZDMjNBRjU1OwoALnN5bXRhYgAuc3RydGFiAC5zaHN0cnRhYgAuZ29fZXhwb3J0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAAAQAAAAAAAAAAAAAANAAAAJcJAAAAAAAAAAAAAAEAAAAAAAAAEQAAAAMAAAAAAAAAAAAAAMsJAAAmAAAAAAAAAAAAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAAD0CQAAIAAAAAQAAAACAAAABAAAABAAAAAJAAAAAwAAAAAAAAAAAAAAFAoAAAEAAAAAAAAAAAAAAAEAAAAAAAAA