f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAABgDQAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIGZtdDsKcGtncGF0aCBmbXQ7CnByaW9yaXR5IDY7CmltcG9ydCBlcnJvcnMgZXJyb3JzICJlcnJvcnMiOwppbXBvcnQgaW8gaW8gImlvIjsKaW1wb3J0IG1hdGggbWF0aCAibWF0aCI7CmltcG9ydCBvcyBvcyAib3MiOwppbXBvcnQgcmVmbGVjdCByZWZsZWN0ICJyZWZsZWN0IjsKaW1wb3J0IHN0cmNvbnYgc3RyY29udiAic3RyY29udiI7CmltcG9ydCBzeW5jIHN5bmMgInN5bmMiOwppbXBvcnQgdXRmOCB1bmljb2RlL3V0ZjggInVuaWNvZGUvdXRmOCI7CmluaXQgZm10IGZtdC4uaW1wb3J0IDYgbWF0aCBtYXRoLi5pbXBvcnQgMSBydW50aW1lIHJ1bnRpbWUuLmltcG9ydCAxIHN0cmNvbnYgc3RyY29udi4uaW1wb3J0IDIgc3luYyBzeW5jLi5pbXBvcnQgMiBpbyBpby4uaW1wb3J0IDMgcmVmbGVjdCByZWZsZWN0Li5pbXBvcnQgMyBzeXNjYWxsIHN5c2NhbGwuLmltcG9ydCAzIHRpbWUgdGltZS4uaW1wb3J0IDQgb3Mgb3MuLmltcG9ydCA1OwpmdW5jIEVycm9yZiAoZm9ybWF0IDx0eXBlIC0xNj4sIGEgLi4uPHR5cGUgMSBpbnRlcmZhY2UgeyB9PikgPHR5cGUgLTE5PjsKdHlwZSA8dHlwZSAyICJGb3JtYXR0ZXIiIDx0eXBlIDMgaW50ZXJmYWNlIHsgRm9ybWF0IChmIDx0eXBlIDQgIlN0YXRlIiA8dHlwZSA1IGludGVyZmFjZSB7IFdyaXRlIChiIDx0eXBlIDYgW10gPHR5cGUgLTIwPj4pIChyZXQgPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyBXaWR0aCAoKSAod2lkIDx0eXBlIC0xMT4sIG9rIDx0eXBlIC0xNT4pOyBQcmVjaXNpb24gKCkgKHByZWMgPHR5cGUgLTExPiwgb2sgPHR5cGUgLTE1Pik7IEZsYWcgKGMgPHR5cGUgLTExPikgPHR5cGUgLTE1PjsgfT4+LCBjIDx0eXBlIC0yMT4pOyB9Pj47CmZ1bmMgRnByaW50ICh3IDx0eXBlIDcgImlvLldyaXRlciIgPHR5cGUgOCBpbnRlcmZhY2UgeyBXcml0ZSAocCA8dHlwZSA5IFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7IH0+PiwgYSAuLi48dHlwZSAxMCBpbnRlcmZhY2UgeyB9PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwpmdW5jIEZwcmludGYgKHcgPHR5cGUgNz4sIGZvcm1hdCA8dHlwZSAtMTY+LCBhIC4uLjx0eXBlIDExIGludGVyZmFjZSB7IH0+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgRnByaW50bG4gKHcgPHR5cGUgNz4sIGEgLi4uPHR5cGUgMTIgaW50ZXJmYWNlIHsgfT4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBGc2NhbiAociA8dHlwZSAxMyAiaW8uUmVhZGVyIiA8dHlwZSAxNCBpbnRlcmZhY2UgeyBSZWFkIChwIDx0eXBlIDE1IFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7IH0+PiwgYSAuLi48dHlwZSAxNiBpbnRlcmZhY2UgeyB9PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwpmdW5jIEZzY2FuZiAociA8dHlwZSAxMz4sIGZvcm1hdCA8dHlwZSAtMTY+LCBhIC4uLjx0eXBlIDE3IGludGVyZmFjZSB7IH0+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgRnNjYW5sbiAociA8dHlwZSAxMz4sIGEgLi4uPHR5cGUgMTggaW50ZXJmYWNlIHsgfT4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKdHlwZSA8dHlwZSAxOSAiR29TdHJpbmdlciIgPHR5cGUgMjAgaW50ZXJmYWNlIHsgR29TdHJpbmcgKCkgPHR5cGUgLTE2PjsgfT4+OwpmdW5jIFByaW50IChhIC4uLjx0eXBlIDIxIGludGVyZmFjZSB7IH0+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgUHJpbnRmIChmb3JtYXQgPHR5cGUgLTE2PiwgYSAuLi48dHlwZSAyMiBpbnRlcmZhY2UgeyB9PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFByaW50bG4gKGEgLi4uPHR5cGUgMjMgaW50ZXJmYWNlIHsgfT4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBTY2FuIChhIC4uLjx0eXBlIDI0IGludGVyZmFjZSB7IH0+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgMjUgIlNjYW5TdGF0ZSIgPHR5cGUgMjYgaW50ZXJmYWNlIHsgUmVhZFJ1bmUgKCkgKHIgPHR5cGUgLTIxPiwgc2l6ZSA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7IFVucmVhZFJ1bmUgKCkgPHR5cGUgLTE5PjsgU2tpcFNwYWNlICgpOyBUb2tlbiAoc2tpcFNwYWNlIDx0eXBlIC0xNT4sIGYgPHR5cGUgMjcgKD8gPHR5cGUgLTIxPikgPHR5cGUgLTE1Pj4pICh0b2tlbiA8dHlwZSAyOCBbXSA8dHlwZSAtMjA+PiwgZXJyIDx0eXBlIC0xOT4pOyBXaWR0aCAoKSAod2lkIDx0eXBlIC0xMT4sIG9rIDx0eXBlIC0xNT4pOyBSZWFkIChidWYgPHR5cGUgMjkgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgfT4+OwpmdW5jIFNjYW5mIChmb3JtYXQgPHR5cGUgLTE2PiwgYSAuLi48dHlwZSAzMCBpbnRlcmZhY2UgeyB9PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFNjYW5sbiAoYSAuLi48dHlwZSAzMSBpbnRlcmZhY2UgeyB9PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwp0eXBlIDx0eXBlIDMyICJTY2FubmVyIiA8dHlwZSAzMyBpbnRlcmZhY2UgeyBTY2FuIChzdGF0ZSA8dHlwZSAyNT4sIHZlcmIgPHR5cGUgLTIxPikgPHR5cGUgLTE5PjsgfT4+OwpmdW5jIFNwcmludCAoYSAuLi48dHlwZSAzNCBpbnRlcmZhY2UgeyB9PikgPHR5cGUgLTE2PjsKZnVuYyBTcHJpbnRmIChmb3JtYXQgPHR5cGUgLTE2PiwgYSAuLi48dHlwZSAzNSBpbnRlcmZhY2UgeyB9PikgPHR5cGUgLTE2PjsKZnVuYyBTcHJpbnRsbiAoYSAuLi48dHlwZSAzNiBpbnRlcmZhY2UgeyB9PikgPHR5cGUgLTE2PjsKZnVuYyBTc2NhbiAoc3RyIDx0eXBlIC0xNj4sIGEgLi4uPHR5cGUgMzcgaW50ZXJmYWNlIHsgfT4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBTc2NhbmYgKHN0ciA8dHlwZSAtMTY+LCBmb3JtYXQgPHR5cGUgLTE2PiwgYSAuLi48dHlwZSAzOCBpbnRlcmZhY2UgeyB9PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFNzY2FubG4gKHN0ciA8dHlwZSAtMTY+LCBhIC4uLjx0eXBlIDM5IGludGVyZmFjZSB7IH0+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgND47CnR5cGUgPHR5cGUgNDAgIlN0cmluZ2VyIiA8dHlwZSA0MSBpbnRlcmZhY2UgeyBTdHJpbmcgKCkgPHR5cGUgLTE2PjsgfT4+OwpjaGVja3N1bSA2N0M2RTg1RDhDNTMxRTAxMzU0MzBGNjEwMkZFRjAzMTA0QkVDNTExOwoALnN5bXRhYgAuc3RydGFiAC5zaHN0cnRhYgAuZ29fZXhwb3J0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAAAQAAAAAAAAAAAAAANAAAAN8MAAAAAAAAAAAAAAEAAAAAAAAAEQAAAAMAAAAAAAAAAAAAABMNAAAmAAAAAAAAAAAAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAAA8DQAAIAAAAAQAAAACAAAABAAAABAAAAAJAAAAAwAAAAAAAAAAAAAAXA0AAAEAAAAAAAAAAAAAAAEAAAAAAAAA