f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAADgGQAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIGxvZzsKcGtncGF0aCBsb2c7CnByaW9yaXR5IDc7CmltcG9ydCBmbXQgZm10ICJmbXQiOwppbXBvcnQgaW8gaW8gImlvIjsKaW1wb3J0IG9zIG9zICJvcyI7CmltcG9ydCBydW50aW1lIHJ1bnRpbWUgInJ1bnRpbWUiOwppbXBvcnQgc3luYyBzeW5jICJzeW5jIjsKaW1wb3J0IHRpbWUgdGltZSAidGltZSI7CmluaXQgbG9nIGxvZy4uaW1wb3J0IDcgbWF0aCBtYXRoLi5pbXBvcnQgMSBydW50aW1lIHJ1bnRpbWUuLmltcG9ydCAxIHN0cmNvbnYgc3RyY29udi4uaW1wb3J0IDIgc3luYyBzeW5jLi5pbXBvcnQgMiBpbyBpby4uaW1wb3J0IDMgcmVmbGVjdCByZWZsZWN0Li5pbXBvcnQgMyBzeXNjYWxsIHN5c2NhbGwuLmltcG9ydCAzIHRpbWUgdGltZS4uaW1wb3J0IDQgb3Mgb3MuLmltcG9ydCA1IGZtdCBmbXQuLmltcG9ydCA2OwpmdW5jIEZhdGFsICh2IC4uLjx0eXBlIDEgaW50ZXJmYWNlIHsgfT4pOwpmdW5jIEZhdGFsZiAoZm9ybWF0IDx0eXBlIC0xNj4sIHYgLi4uPHR5cGUgMiBpbnRlcmZhY2UgeyB9Pik7CmZ1bmMgRmF0YWxsbiAodiAuLi48dHlwZSAzIGludGVyZmFjZSB7IH0+KTsKZnVuYyBGbGFncyAoKSA8dHlwZSAtMTE+Owpjb25zdCBMZGF0ZSA9IDEgOwpjb25zdCBMbG9uZ2ZpbGUgPSA4IDsKY29uc3QgTG1pY3Jvc2Vjb25kcyA9IDQgOwp0eXBlIDx0eXBlIDQgIkxvZ2dlciIgPHR5cGUgNSBzdHJ1Y3QgeyAubG9nLm11IDx0eXBlIDYgInN5bmMuTXV0ZXgiIDx0eXBlIDcgc3RydWN0IHsgLnN5bmMuc3RhdGUgPHR5cGUgLTM+OyAuc3luYy5zZW1hIDx0eXBlIC03PjsgfT4KIGZ1bmMgKG0gPHR5cGUgOCAqPHR5cGUgNj4+KSBVbmxvY2sgKCk7CiBmdW5jIChtIDx0eXBlIDg+KSBMb2NrICgpOwo+OyAubG9nLnByZWZpeCA8dHlwZSAtMTY+OyAubG9nLmZsYWcgPHR5cGUgLTExPjsgLmxvZy5vdXQgPHR5cGUgOSAiaW8uV3JpdGVyIiA8dHlwZSAxMCBpbnRlcmZhY2UgeyBXcml0ZSAocCA8dHlwZSAxMSBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyB9Pj47IC5sb2cuYnVmIDx0eXBlIDEyIFtdIDx0eXBlIC0yMD4+OyB9PgogZnVuYyAobCA8dHlwZSAxMyAqPHR5cGUgND4+KSAubG9nLmZvcm1hdEhlYWRlciAoYnVmIDx0eXBlIDE0ICo8dHlwZSAxNSBbXSA8dHlwZSAtMjA+Pj4sIHQgPHR5cGUgMTYgInRpbWUuVGltZSIgPHR5cGUgMTcgc3RydWN0IHsgLnRpbWUuc2VjIDx0eXBlIC00PjsgLnRpbWUubnNlYyA8dHlwZSAtMz47IC50aW1lLmxvYyA8dHlwZSAxOCAqPHR5cGUgMTkgInRpbWUuTG9jYXRpb24iIDx0eXBlIDIwIHN0cnVjdCB7IC50aW1lLm5hbWUgPHR5cGUgLTE2PjsgLnRpbWUuem9uZSA8dHlwZSAyMSBbXSA8dHlwZSAyMiAiLnRpbWUuem9uZSIgPHR5cGUgMjMgc3RydWN0IHsgLnRpbWUubmFtZSA8dHlwZSAtMTY+OyAudGltZS5vZmZzZXQgPHR5cGUgLTExPjsgLnRpbWUuaXNEU1QgPHR5cGUgLTE1PjsgfT4+PjsgLnRpbWUudHggPHR5cGUgMjQgW10gPHR5cGUgMjUgIi50aW1lLnpvbmVUcmFucyIgPHR5cGUgMjYgc3RydWN0IHsgLnRpbWUud2hlbiA8dHlwZSAtND47IC50aW1lLmluZGV4IDx0eXBlIC01PjsgLnRpbWUuaXNzdGQgPHR5cGUgLTE1PjsgLnRpbWUuaXN1dGMgPHR5cGUgLTE1PjsgfT4+PjsgLnRpbWUuY2FjaGVTdGFydCA8dHlwZSAtND47IC50aW1lLmNhY2hlRW5kIDx0eXBlIC00PjsgLnRpbWUuY2FjaGVab25lIDx0eXBlIDI3ICo8dHlwZSAyMj4+OyB9PgogZnVuYyAobCA8dHlwZSAyOCAqPHR5cGUgMTk+PikgLnRpbWUuZmlyc3Rab25lVXNlZCAoKSA8dHlwZSAtMTU+OwogZnVuYyAobCA8dHlwZSAyOD4pIC50aW1lLmxvb2t1cCAoc2VjIDx0eXBlIC00PikgKG5hbWUgPHR5cGUgLTE2Piwgb2Zmc2V0IDx0eXBlIC0xMT4sIGlzRFNUIDx0eXBlIC0xNT4sIHN0YXJ0IDx0eXBlIC00PiwgZW5kIDx0eXBlIC00Pik7CiBmdW5jIChsIDx0eXBlIDI4PikgLnRpbWUubG9va3VwTmFtZSAobmFtZSA8dHlwZSAtMTY+LCB1bml4IDx0eXBlIC00PikgKG9mZnNldCA8dHlwZSAtMTE+LCBpc0RTVCA8dHlwZSAtMTU+LCBvayA8dHlwZSAtMTU+KTsKIGZ1bmMgKGwgPHR5cGUgMjg+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKGwgPHR5cGUgMjg+KSAudGltZS5nZXQgKCkgPHR5cGUgMjg+OwogZnVuYyAobCA8dHlwZSAyOD4pIC50aW1lLmxvb2t1cEZpcnN0Wm9uZSAoKSA8dHlwZSAtMTE+Owo+PjsgfT4KIGZ1bmMgKHQgPHR5cGUgMTY+KSBBZnRlciAodSA8dHlwZSAxNj4pIDx0eXBlIC0xNT47CiBmdW5jICh0IDx0eXBlIDE2PikgTWFyc2hhbFRleHQgKCkgKD8gPHR5cGUgMjkgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh0IDx0eXBlIDE2PikgRGF0ZSAoKSAoeWVhciA8dHlwZSAtMTE+LCBtb250aCA8dHlwZSAzMCAidGltZS5Nb250aCIgPHR5cGUgLTExPgogZnVuYyAobSA8dHlwZSAzMD4pIFN0cmluZyAoKSA8dHlwZSAtMTY+Owo+LCBkYXkgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDE2PikgLnRpbWUuYWJzICgpIDx0eXBlIC04PjsKIGZ1bmMgKHQgPHR5cGUgMTY+KSBXZWVrZGF5ICgpIDx0eXBlIDMxICJ0aW1lLldlZWtkYXkiIDx0eXBlIC0xMT4KIGZ1bmMgKGQgPHR5cGUgMzE+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKPjsKIGZ1bmMgKHQgPHR5cGUgMTY+KSBOYW5vc2Vjb25kICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDMyICo8dHlwZSAxNj4+KSBHb2JEZWNvZGUgKGRhdGEgPHR5cGUgMzMgW10gPHR5cGUgLTIwPj4pIDx0eXBlIC0xOT47CiBmdW5jICh0IDx0eXBlIDE2PikgSW4gKGxvYyA8dHlwZSAxOD4pIDx0eXBlIDE2PjsKIGZ1bmMgKHQgPHR5cGUgMTY+KSBMb2NhbCAoKSA8dHlwZSAxNj47CiBmdW5jICh0IDx0eXBlIDE2PikgTW9udGggKCkgPHR5cGUgMzA+OwogZnVuYyAodCA8dHlwZSAxNj4pIEhvdXIgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgMTY+KSBNYXJzaGFsQmluYXJ5ICgpICg/IDx0eXBlIDM0IFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSAxNj4pIFVuaXhOYW5vICgpIDx0eXBlIC00PjsKIGZ1bmMgKHQgPHR5cGUgMTY+KSBFcXVhbCAodSA8dHlwZSAxNj4pIDx0eXBlIC0xNT47CiBmdW5jICh0IDx0eXBlIDE2PikgRm9ybWF0IChsYXlvdXQgPHR5cGUgLTE2PikgPHR5cGUgLTE2PjsKIGZ1bmMgKHQgPHR5cGUgMTY+KSBBZGREYXRlICh5ZWFycyA8dHlwZSAtMTE+LCBtb250aHMgPHR5cGUgLTExPiwgZGF5cyA8dHlwZSAtMTE+KSA8dHlwZSAxNj47CiBmdW5jICh0IDx0eXBlIDE2PikgWm9uZSAoKSAobmFtZSA8dHlwZSAtMTY+LCBvZmZzZXQgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDE2PikgRGF5ICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDE2PikgQ2xvY2sgKCkgKGhvdXIgPHR5cGUgLTExPiwgbWluIDx0eXBlIC0xMT4sIHNlYyA8dHlwZSAtMTE+KTsKIGZ1bmMgKHQgPHR5cGUgMTY+KSBNYXJzaGFsSlNPTiAoKSAoPyA8dHlwZSAzNSBbXSA8dHlwZSAtMjA+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHQgPHR5cGUgMTY+KSBVVEMgKCkgPHR5cGUgMTY+OwogZnVuYyAodCA8dHlwZSAxNj4pIC50aW1lLmRhdGUgKGZ1bGwgPHR5cGUgLTE1PikgKHllYXIgPHR5cGUgLTExPiwgbW9udGggPHR5cGUgMzA+LCBkYXkgPHR5cGUgLTExPiwgeWRheSA8dHlwZSAtMTE+KTsKIGZ1bmMgKHQgPHR5cGUgMTY+KSBJc1plcm8gKCkgPHR5cGUgLTE1PjsKIGZ1bmMgKHQgPHR5cGUgMTY+KSBCZWZvcmUgKHUgPHR5cGUgMTY+KSA8dHlwZSAtMTU+OwogZnVuYyAodCA8dHlwZSAxNj4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAodCA8dHlwZSAxNj4pIFNlY29uZCAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSAxNj4pIE1pbnV0ZSAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSAxNj4pIFN1YiAodSA8dHlwZSAxNj4pIDx0eXBlIDM2ICJ0aW1lLkR1cmF0aW9uIiA8dHlwZSAtND4KIGZ1bmMgKGQgPHR5cGUgMzY+KSBTZWNvbmRzICgpIDx0eXBlIC0xMD47CiBmdW5jIChkIDx0eXBlIDM2PikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jIChkIDx0eXBlIDM2PikgTWludXRlcyAoKSA8dHlwZSAtMTA+OwogZnVuYyAoZCA8dHlwZSAzNj4pIEhvdXJzICgpIDx0eXBlIC0xMD47CiBmdW5jIChkIDx0eXBlIDM2PikgTmFub3NlY29uZHMgKCkgPHR5cGUgLTQ+Owo+OwogZnVuYyAodCA8dHlwZSAxNj4pIFJvdW5kIChkIDx0eXBlIDM2PikgPHR5cGUgMTY+OwogZnVuYyAodCA8dHlwZSAxNj4pIFVuaXggKCkgPHR5cGUgLTQ+OwogZnVuYyAodCA8dHlwZSAzMj4pIFVubWFyc2hhbFRleHQgKGRhdGEgPHR5cGUgMzcgW10gPHR5cGUgLTIwPj4pIChlcnIgPHR5cGUgLTE5Pik7CiBmdW5jICh0IDx0eXBlIDE2PikgQWRkIChkIDx0eXBlIDM2PikgPHR5cGUgMTY+OwogZnVuYyAodCA8dHlwZSAxNj4pIFRydW5jYXRlIChkIDx0eXBlIDM2PikgPHR5cGUgMTY+OwogZnVuYyAodCA8dHlwZSAxNj4pIExvY2F0aW9uICgpIDx0eXBlIDE4PjsKIGZ1bmMgKHQgPHR5cGUgMTY+KSBHb2JFbmNvZGUgKCkgKD8gPHR5cGUgMzggW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh0IDx0eXBlIDMyPikgVW5tYXJzaGFsQmluYXJ5IChkYXRhIDx0eXBlIDM5IFtdIDx0eXBlIC0yMD4+KSA8dHlwZSAtMTk+OwogZnVuYyAodCA8dHlwZSAxNj4pIElTT1dlZWsgKCkgKHllYXIgPHR5cGUgLTExPiwgd2VlayA8dHlwZSAtMTE+KTsKIGZ1bmMgKHQgPHR5cGUgMTY+KSAudGltZS5sb2NhYnMgKCkgKG5hbWUgPHR5cGUgLTE2Piwgb2Zmc2V0IDx0eXBlIC0xMT4sIGFicyA8dHlwZSAtOD4pOwogZnVuYyAodCA8dHlwZSAxNj4pIFllYXJEYXkgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgMTY+KSBZZWFyICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDMyPikgVW5tYXJzaGFsSlNPTiAoZGF0YSA8dHlwZSA0MCBbXSA8dHlwZSAtMjA+PikgKGVyciA8dHlwZSAtMTk+KTsKPiwgZmlsZSA8dHlwZSAtMTY+LCBsaW5lIDx0eXBlIC0xMT4pOwogZnVuYyAobCA8dHlwZSAxMz4pIE91dHB1dCAoY2FsbGRlcHRoIDx0eXBlIC0xMT4sIHMgPHR5cGUgLTE2PikgPHR5cGUgLTE5PjsKIGZ1bmMgKGwgPHR5cGUgMTM+KSBQcmludGYgKGZvcm1hdCA8dHlwZSAtMTY+LCB2IC4uLjx0eXBlIDQxIGludGVyZmFjZSB7IH0+KTsKIGZ1bmMgKGwgPHR5cGUgMTM+KSBQcmludCAodiAuLi48dHlwZSA0MiBpbnRlcmZhY2UgeyB9Pik7CiBmdW5jIChsIDx0eXBlIDEzPikgUHJpbnRsbiAodiAuLi48dHlwZSA0MyBpbnRlcmZhY2UgeyB9Pik7CiBmdW5jIChsIDx0eXBlIDEzPikgRmF0YWwgKHYgLi4uPHR5cGUgNDQgaW50ZXJmYWNlIHsgfT4pOwogZnVuYyAobCA8dHlwZSAxMz4pIEZhdGFsZiAoZm9ybWF0IDx0eXBlIC0xNj4sIHYgLi4uPHR5cGUgNDUgaW50ZXJmYWNlIHsgfT4pOwogZnVuYyAobCA8dHlwZSAxMz4pIEZhdGFsbG4gKHYgLi4uPHR5cGUgNDYgaW50ZXJmYWNlIHsgfT4pOwogZnVuYyAobCA8dHlwZSAxMz4pIFBhbmljICh2IC4uLjx0eXBlIDQ3IGludGVyZmFjZSB7IH0+KTsKIGZ1bmMgKGwgPHR5cGUgMTM+KSBQYW5pY2YgKGZvcm1hdCA8dHlwZSAtMTY+LCB2IC4uLjx0eXBlIDQ4IGludGVyZmFjZSB7IH0+KTsKIGZ1bmMgKGwgPHR5cGUgMTM+KSBQYW5pY2xuICh2IC4uLjx0eXBlIDQ5IGludGVyZmFjZSB7IH0+KTsKIGZ1bmMgKGwgPHR5cGUgMTM+KSBGbGFncyAoKSA8dHlwZSAtMTE+OwogZnVuYyAobCA8dHlwZSAxMz4pIFNldEZsYWdzIChmbGFnIDx0eXBlIC0xMT4pOwogZnVuYyAobCA8dHlwZSAxMz4pIFByZWZpeCAoKSA8dHlwZSAtMTY+OwogZnVuYyAobCA8dHlwZSAxMz4pIFNldFByZWZpeCAocHJlZml4IDx0eXBlIC0xNj4pOwo+Owpjb25zdCBMc2hvcnRmaWxlID0gMTYgOwpjb25zdCBMc3RkRmxhZ3MgPSAzIDsKY29uc3QgTHRpbWUgPSAyIDsKZnVuYyBOZXcgKG91dCA8dHlwZSA5PiwgcHJlZml4IDx0eXBlIC0xNj4sIGZsYWcgPHR5cGUgLTExPikgPHR5cGUgMTM+OwpmdW5jIFBhbmljICh2IC4uLjx0eXBlIDUwIGludGVyZmFjZSB7IH0+KTsKZnVuYyBQYW5pY2YgKGZvcm1hdCA8dHlwZSAtMTY+LCB2IC4uLjx0eXBlIDUxIGludGVyZmFjZSB7IH0+KTsKZnVuYyBQYW5pY2xuICh2IC4uLjx0eXBlIDUyIGludGVyZmFjZSB7IH0+KTsKZnVuYyBQcmVmaXggKCkgPHR5cGUgLTE2PjsKZnVuYyBQcmludCAodiAuLi48dHlwZSA1MyBpbnRlcmZhY2UgeyB9Pik7CmZ1bmMgUHJpbnRmIChmb3JtYXQgPHR5cGUgLTE2PiwgdiAuLi48dHlwZSA1NCBpbnRlcmZhY2UgeyB9Pik7CmZ1bmMgUHJpbnRsbiAodiAuLi48dHlwZSA1NSBpbnRlcmZhY2UgeyB9Pik7CmZ1bmMgU2V0RmxhZ3MgKGZsYWcgPHR5cGUgLTExPik7CmZ1bmMgU2V0T3V0cHV0ICh3IDx0eXBlIDk+KTsKZnVuYyBTZXRQcmVmaXggKHByZWZpeCA8dHlwZSAtMTY+KTsKY2hlY2tzdW0gOEE1MjMyOUQ3REEzQjU1NTc2MkM2QkVERTZCNTZDREUyQ0Q4NDczRjsKAC5zeW10YWIALnN0cnRhYgAuc2hzdHJ0YWIALmdvX2V4cG9ydAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsAAAABAAAAAAAAAAAAAAA0AAAAYRkAAAAAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAAAlRkAACYAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAALwZAAAgAAAABAAAAAIAAAAEAAAAEAAAAAkAAAADAAAAAAAAAAAAAADcGQAAAQAAAAAAAAAAAAAAAQAAAAAAAAA=