IyBFcnJvciBFc3RpbWF0ZQojIF9TRVQgPSAxCiMgX0NMRUFSID0gMApFUlJfRVNUSU1BVEU9MAoKI05UUCBzZXJ2ZXIKTlRQX1NFUlZFUj10aW1lLnh0cmFjbG91ZC5uZXQKCiNYVFJBIENBIHBhdGgKWFRSQV9DQV9QQVRIPS91c3IvbGliL3NzbC0xLjEvY2VydHMKCiMgREVCVUcgTEVWRUxTOiAwIC0gbm9uZSwgMSAtIEVycm9yLCAyIC0gV2FybmluZywgMyAtIEluZm8KIyAgICAgICAgICAgICAgIDQgLSBEZWJ1ZywgNSAtIFZlcmJvc2UKIyBJZiBERUJVR19MRVZFTCBpcyBjb21tZW50ZWQsIEFuZHJvaWQncyBsb2dnaW5nIGxldmVscyB3aWxsIGJlIHVzZWQKREVCVUdfTEVWRUwgPSAzCgojIEludGVybWVkaWF0ZSBwb3NpdGlvbiByZXBvcnQsIDE9ZW5hYmxlLCAwPWRpc2FibGUKSU5URVJNRURJQVRFX1BPUz0wCgojIHN1cGwgdmVyc2lvbiAxLjAKU1VQTF9WRVI9MHgyMDAwMAoKIyBFbWVyZ2VuY3kgU1VQTCwgMT1lbmFibGUsIDA9ZGlzYWJsZQpTVVBMX0VTPTEKCiNDaG9vc2UgUEROIGZvciBFbWVyZ2VuY3kgU1VQTAojMSAtIFVzZSBlbWVyZ2VuY3kgUEROCiMwIC0gVXNlIHJlZ3VsYXIgU1VQTCBQRE4gZm9yIEVtZXJnZW5jeSBTVVBMClVTRV9FTUVSR0VOQ1lfUEROX0ZPUl9FTUVSR0VOQ1lfU1VQTD0xCgojU1VQTF9NT0RFIGlzIGEgYml0IG1hc2sgc2V0IGluIGNvbmZpZy54bWwgcGVyIGNhcnJpZXIgYnkgZGVmYXVsdC4KI0lmIGl0IGlzIHVuY29tbWVudGVkIGhlcmUsIHRoaXMgdmFsdWUgd2lsbCBvdmVyd3JpdGUgdGhlIHZhbHVlIGZyb20KI2NvbmZpZy54bWwuCiNNU0E9MFgyCiNNU0I9MFgxClNVUExfTU9ERT0weDMKCiMgR1BTIENhcGFiaWxpdGllcyBiaXQgbWFzawojIFNDSEVEVUxJTkcgPSAweDAxCiMgTVNCID0gMHgwMgojIE1TQSA9IDB4MDQKIyBPTl9ERU1BTkRfVElNRSA9IDB4MTAKIyBkZWZhdWx0ID0gT05fREVNQU5EX1RJTUUgfCBNU0EgfCBNU0IgfCBTQ0hFRFVMSU5HCkNBUEFCSUxJVElFUz0weDE3CgojIEFjY3VyYWN5IHRocmVzaG9sZCBmb3IgaW50ZXJtZWRpYXRlIHBvc2l0aW9ucwojIGxlc3MgYWNjdXJhdGUgcG9zaXRpb25zIGFyZSBpZ25vcmVkLCAwIGZvciBwYXNzaW5nIGFsbCBwb3NpdGlvbnMKIyBBQ0NVUkFDWV9USFJFUz01MDAwCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIyMjIyBBR1BTIHNlcnZlciBzZXR0aW5ncyAjIyMjIwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyBGT1IgU1VQTCBTVVBQT1JULCBzZXQgdGhlIGZvbGxvd2luZwojIFNVUExfSE9TVD1zdXBsLmhvc3QuY29tIG9yIElQCiMgU1VQTF9QT1JUPTEyMzQKU1VQTF9IT1NUPXN1cGwuZ29vZ2xlLmNvbQpTVVBMX1BPUlQ9NzI3NQoKIyBGT1IgTU8gU1VQTCBTVVBQT1JULCBzZXQgdGhlIGZvbGxvd2luZwojIE1PX1NVUExfSE9TVD1zdXBsLmhvc3QuY29tIG9yIElQCiMgTU9fU1VQTF9QT1JUPTEyMzQKCiMgRk9SIEMySyBQREUgU1VQUE9SVCwgc2V0IHRoZSBmb2xsb3dpbmcKIyBDMktfSE9TVD1jMmsucGRlLmNvbSBvciBJUAojIEMyS19QT1JUPTEyMzQKCiMgQml0bWFzayBvZiBzbG90cyB0aGF0IGFyZSBhdmFpbGFibGUKIyBmb3Igd3JpdGUvaW5zdGFsbCB0bywgd2hlcmUgMXMgaW5kaWNhdGUgd3JpdGFibGUsCiMgYW5kIHRoZSBkZWZhdWx0IHZhbHVlIGlzIDAgd2hlcmUgbm8gc2xvdHMKIyBhcmUgd3JpdGFibGUuIEZvciBleGFtcGxlLCBBR1BTX0NFUlRfV1JJVEFCTEVfTUFTSwojIG9mIGIxMDAwMDAxMDEwIG1ha2VzIDMgc2xvdHMgYXZhaWxhYmxlCiMgYW5kIHRoZSByZW1haW5pbmcgNyBzbG90cyB1bndyaXRhYmxlLgojQUdQU19DRVJUX1dSSVRBQkxFX01BU0s9MAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgIExURSBQb3NpdGlvbmluZyBQcm9maWxlIFNldHRpbmdzCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIExQUF9QUk9GSUxFIGlzIGEgYml0IG1hc2sKIyAwOiBFbmFibGUgUlJMUCBvbiBMVEUoRGVmYXVsdCkKIyAxOiBFbmFibGUgTFBQX1VzZXJfUGxhbmUgb24gTFRFCiMgMjogRW5hYmxlIExQUF9Db250cm9sX1BsYW5lCiMgMzogRW5hYmxlIGJvdGggTFBQX1VzZXJfUGxhbmUgYW5kIExQUF9Db250cm9sX1BsYW5lCkxQUF9QUk9GSUxFID0gMwoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiNEYXR1bSBUeXBlCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIDA6IFdHUy04NAojIDE6IFBaLTkwCkRBVFVNX1RZUEUgPSAwCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIEVYVFJBIFNFVFRJTkdTCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgTk1FQSBwcm92aWRlciAoMT1Nb2RlbSBQcm9jZXNzb3IsIDA9QXBwbGljYXRpb24gUHJvY2Vzc29yKQpOTUVBX1BST1ZJREVSPTAKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgTk1FQSBUQUcgQkxPQ0sgR1JPVVBJTkcKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBOTUVBIHRhZyBibG9jayBncm91cGluZyBpcyBvbmx5IGFwcGxpY2FibGUgdG8gR1NBCiMgRGVmYXVsdCBpcyBkaXNhYmxlZAojIDAgLSBkaXNhYmxlZAojIDEgLSBlbmFibGVkCk5NRUFfVEFHX0JMT0NLX0dST1VQSU5HX0VOQUJMRUQgPSAwCgojIEN1c3RvbWl6ZWQgTk1FQSBHR0EgZml4IHF1YWxpdHkgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZWxsCiMgd2hldGhlciBTRU5TT1IgY29udHJpYnV0ZWQgdG8gdGhlIGZpeC4KIwojIFdoZW4gdGhpcyBjb25maWd1cmF0aW9uIGl0ZW0gaXMgbm90IGVuYWJsZWQgKHNldCB0byBhbnkgdmFsdWUgdGhhdCBpcyBub3QgMSksCiMgR0dBIGZpeCBxdWFsaXR5IGNvbmZvcm1zIHRvIE5NRUEgc3RhbmRhcmQgc3BlYyBhcyBiZWxvdzoKIyBQUFAvREdOU1MvU0JBUyBjb3JyZWN0aW9uIGZpeCB3LyBvciB3L28gc2Vuc29yOiAyCiMgUlRLIGZpeGVkIGZpeCB3LyBvciB3L28gc2Vuc29yOiA0CiMgUlRLIGZsb2F0IGZpeCB3LyBvciB3L28gc2Vuc29yOiA1CiMgU1BFIGZpeCB3LyBvciB3L28gc2Vuc29yOiAxCiMgU2Vuc29yIGRlYWQgcmVja29uaW5nIGZpeDogNgojCiMgV2hlbiB0aGlzIGNvbmZpZ3VyYXRpb24gaXMgZW5hYmxlZCAoc2V0IHRvIDEpLCBHR0EgZml4IHF1YWxpdHkKIyB3aWxsIGJlIG91dHB1dCBhcyBiZWxvdzoKIyBQUFAgZml4IHcvbyBzZW5zb3I6IDU5LCAgICAgICAgICAgICAgICAgIHcvIHNlbnNvcjogNjkKIyBER05TUy9TQkFTIGNvcnJlY3Rpb24gZml4IHcvbyBzZW5zb3I6IDIsIHcvIHNlbnNvcjogNjIKIyBSVEsgZml4ZWQgZml4IHcvbyBzZW5zb3I6IDQsICAgICAgICAgICAgIHcvIHNlbnNvcjogNjQKIyBSVEsgZmxvYXQgZml4IHcvbyBzZW5zb3I6IDUsICAgICAgICAgICAgIHcvIHNlbnNvcjogNjUsCiMgU1BFIGZpeCB3L28gc2Vuc29yOiAxLCAgICAgICAgICAgICAgIGFuZCB3LyBzZW5zb3I6IDYxCiMgU2Vuc29yIGRlYWQgcmVja29uaW5nIGZpeDogNgojCiMgYW55IHZhbHVlIHRoYXQgaXMgbm90IDEgLSBkaXNhYmxlZAojIDEgLSBlbmFibGVkCkNVU1RPTV9OTUVBX0dHQV9GSVhfUVVBTElUWV9FTkFCTEVEID0gMAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBOTUVBIFJlcG9ydGluZyBSYXRlIENvbmZpZywgdmFsaWQgb25seSB3aGVuIE5NRUFfUFJPVklERVIgaXMgc2V0IHRvICIwIgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIE5NRUEgUmVwb3J0aW5nIFJhdGUKIyBTZXQgaXQgdG8gIjFIWiIgZm9yIDFIeiBOTUVBIFJlcG9ydGluZwojIFNldCBpdCB0byAiTkhaIiBmb3IgTkh6IE5NRUEgUmVwb3J0aW5nCiNEZWZhdWx0IDogTkhaIChvdmVycmlkZGVuIGJ5IHBvc2l0aW9uIHVwZGF0ZSByYXRlIGlmIHNldCB0byBsb3dlciByYXRlcykKTk1FQV9SRVBPUlRfUkFURT1OSFoKCiMgTWFyayBpZiBpdCBpcyBhIFNHTFRFIHRhcmdldCAoMT1TR0xURSwgMD1ub25TR0xURSkKU0dMVEVfVEFSR0VUPTAKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgU2VsZWN0IFBvc2l0aW9uaW5nIFByb3RvY29sIG9uIEEtR0xPTkFTUyBzeXN0ZW0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyAweDE6IFJSQyBDUGxhbmUKIyAweDI6IFJSTFAgVVBsYW5lCiMgMHg0OiBMTFAgVXBsYW5lCkFfR0xPTkFTU19QT1NfUFJPVE9DT0xfU0VMRUNUID0gMHg3CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIFNlbGVjdCB0ZWNobm9sb2d5IGZvciBMUFBlIENvbnRyb2wgUGxhbmUKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyAweDE6IERCSCBmb3IgTFBQZSBDUAojIDB4MjogV0xBTiBBUCBNZWFzdXJlbWVudHMgZm9yIExQUGUgQ1AKIyAweDQ6IFNSTiBBUCBtZWFzdXJlbWVudCBmb3IgQ1AKIyAweDg6IFNlbnNvciBCYXJvbWV0ZXIgTWVhc3VyZW1lbnQgTFBQZSBDUAojTFBQRV9DUF9URUNITk9MT0dZID0gMAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBTZWxlY3QgdGVjaG5vbG9neSBmb3IgTFBQZSBVc2VyIFBsYW5lCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgMHgxOiBEQkggZm9yIExQUGUgVVAKIyAweDI6IFdMQU4gQVAgTWVhc3VyZW1lbnRzIGZvciBMUFBlIFVQCiMgMHg0OiBTUk4gQVAgbWVhc3VyZW1lbnQgZm9yIFVQCiMgMHg4OiBTZW5zb3IgQmFyb21ldGVyIE1lYXN1cmVtZW50IExQUGUgVVAKI0xQUEVfVVBfVEVDSE5PTE9HWSA9IDAKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgQUdQU19DT05GSUdfSU5KRUNUCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgZW5hYmxlL2Rpc2FibGUgaW5qZWN0aW9uIG9mIEFHUFMgY29uZmlndXJhdGlvbnM6CiMgICAgIFNVUExfVkVSCiMgICAgIFNVUExfSE9TVAojICAgICBTVVBMX1BPUlQKIyAgICAgTU9fU1VQTF9IT1NUCiMgICAgIE1PX1NVUExfUE9SVAojICAgICBDMktfSE9TVAojICAgICBDMktfUE9SVAojICAgICBMUFBfUFJPRklMRQojICAgICBBX0dMT05BU1NfUE9TX1BST1RPQ09MX1NFTEVDVAojIDA6IGRpc2FibGUKIyAxOiBlbmFibGUKQUdQU19DT05GSUdfSU5KRUNUID0gMQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBHTlNTIHNldHRpbmdzIGZvciBhdXRvbW90aXZlIHVzZSBjYXNlcwojIENvbmZpZ3VyYXRpb25zIGluIGZvbGxvd2luZyBzZWN0aW9uIGFyZQojIHNwZWNpZmljIHRvIGF1dG9tb3RpdmUgdXNlIGNhc2VzLCBvdGhlcnMKIyBwbGVhc2UgZG8gbm90IGNoYW5nZSwga2VlcCB0aGUgZGVmYXVsdCB2YWx1ZXMKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCiMgQVAgQ29hcnNlIFRpbWVzdGFtcCBVbmNlcnRhaW50eQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIGRlZmF1bHQgOiAxMAojIEFQIHRpbWUgc3RhbXAgdW5jZXJ0YWludHksIHVudGlsIEdOU1MgcmVjZWl2ZXIKIyBpcyBhYmxlIHRvIGFjcXVpcmUgYmV0dGVyIHRpbWluZyBpbmZvcm1hdGlvbgpBUF9USU1FU1RBTVBfVU5DRVJUQUlOVFkgPSAxMAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIERSX1NZTkMgUHVsc2UgQXZhaWxhYmlsaXR5CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyAwIDogRFJfU1lOQyBwdWxzZSBub3QgYXZhaWxhYmxlIChkZWZhdWx0KQojIDEgOiBEUl9TWU5DIHB1bHNlIGF2YWlsYWJsZQojIFRoaXMgY29uZmlndXJhdGlvbiBlbmFibGVzIHRoZSBkcml2ZXIgdG8gbWFrZSB1c2UKIyBvZiBQUFMgZXZlbnRzIGdlbmVyYXRlZCBieSBEUl9TWU5DIHB1bHNlCiMgU3RhbmRhcmQgTGludXggUFBTIGRyaXZlciBuZWVkcyB0byBiZSBlbmFibGVkCkRSX1NZTkNfRU5BQkxFRCA9IDAKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBQUFMgRGV2aWNlIG5hbWUKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpQUFNfREVWSUNFTkFNRSA9IC9kZXYvcHBzMAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIElnbm9yZSBQUFMgYXQgU3RhcnR1cCBhbmQgYWZ0ZXIgbG9uZyBvdXRhZ2UKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpJR05PUkVfUFBTX1BVTFNFX0NPVU5UID0gMQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIExvbmcgR05TUyBSRiBvdXRhZ2UgaW4gc2Vjb25kcwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCkdOU1NfT1VUQUdFX0RVUkFUSU9OID0gMTAKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBBUCBDbG9jayBBY2N1cmFjeQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgUXVhbGl0eSBvZiBBUFBTIHByb2Nlc3NvciBjbG9jayAoaW4gUFBNKS4KIyBWYWx1ZSBzcGVjaWZpZWQgaXMgdXNlZCBmb3IgY2FsY3VsYXRpb24gb2YKIyBBUFBTIHRpbWUgc3RhbXAgdW5jZXJ0YWludHkKQVBfQ0xPQ0tfUFBNID0gMTAwCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgTUFYIG1zIGRpZmZlcmVuY2UgdG8gZGV0ZWN0IG1pc3NpbmcgcHVsc2UKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIFNwZWNpZmllcyB0aW1lIHRocmVzaG9sZCBpbiBtcyB0byB2YWxpZGF0ZSBhbnkgbWlzc2luZyBQUFMgcHVsc2VzCk1JU1NJTkdfUFVMU0VfVElNRV9ERUxUQSA9IDkwMAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIFByb3BhZ2F0aW9uIHRpbWUgdW5jZXJ0YWludHkKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIFRoaXMgc2V0dGluZ3MgZW5hYmxlcyB0aW1lIHVuY2VydGFpbnR5IHByb3BhZ2F0aW9uCiMgbG9naWMgaW5jYXNlIG9mIG1pc3NpbmcgUFBTIHB1bHNlClBST1BBR0FUSU9OX1RJTUVfVU5DRVJUQUlOVFkgPSAxCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyAgQVBOIC8gSVAgVHlwZSBDb25maWd1cmF0aW9uCiMgIEFQTiBhbmQgSVAgVHlwZSB0byB1c2UgZm9yIHNldHRpbmcKIyAgdXAgV1dBTiBjYWxsLgojICBVc2UgYmVsb3cgdmFsdWVzIGZvciBJUCBUeXBlOgojICB2NCA9IDQKIyAgdjYgPSA2CiMgIHY0djYgPSAxMAojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBJTlRFUk5FVF9BUE4gPSBhYmMueHl6CiMgSU5URVJORVRfSVBfVFlQRSA9IDQKIyBTVVBMX0FQTiA9IGFiYy54eXoKIyBTVVBMX0lQX1RZUEUgPSA0CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgTW9kZW0gdHlwZQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgVGhpcyBzZXR0aW5nIGNvbmZpZ3VyZXMgbW9kZW0gdHlwZQojIChleHRlcm5hbD0wIG9yIGludGVybmFsPTEpCiMgY29tbWVudCBvdXQgdGhlIG5leHQgbGluZSB0byB2b3RlCiMgZm9yIHRoZSBmaXJzdCBtb2RlbSBpbiB0aGUgbGlzdApNT0RFTV9UWVBFID0gMQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBDT05TVFJBSU5FRCBUSU1FIFVOQ0VSVEFJTlRZIE1PREUKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyAwIDogZGlzYWJsZWQgKGRlZmF1bHQpCiMgMSA6IGVuYWJsZWQKIyBUaGlzIHNldHRpbmcgZW5hYmxlcyBHUFMgZW5naW5lIHRvIGtlZXAgaXRzIHRpbWUKIyB1bmNlcnRhaW50eSBiZWxvdyB0aGUgc3BlY2lmaWVkIGNvbnN0cmFpbnQKI0NPTlNUUkFJTkVEX1RJTUVfVU5DRVJUQUlOVFlfRU5BQkxFRCA9IDAKCiMgSWYgY29uc3RyYWluZWQgdGltZSB1bmNlcnRhaW50eSBtb2RlIGlzIGVuYWJsZWQsCiMgdGhpcyBzZXR0aW5nIHNwZWNpZmllcyB0aGUgdGltZSB1bmNlcnRhaW50eQojIHRocmVzaG9sZCB0aGF0IGdwcyBlbmdpbmUgbmVlZCB0byBtYWludGFpbi4KIyBJbiB1bml0IG9mIG1pbGxpLXNlY29uZHMuCiMgRGVmYXVsdCBpcyAwLjAgbWVhbmluZyB0aGF0IG1vZGVtIGRlZmF1bHQgdmFsdWUKIyBvZiB0aW1lIHVuY2VydGFpbnR5IHRocmVzaG9sZCB3aWxsIGJlIHVzZWQuCiNDT05TVFJBSU5FRF9USU1FX1VOQ0VSVEFJTlRZX1RIUkVTSE9MRCA9IDAuMAoKIyBJZiBjb25zdHJhaW5lZCB0aW1lIHVuY2VydGFpbnR5IG1vZGUgaXMgZW5hYmxlZCwKIyB0aGlzIHNldHRpbmcgc3BlY2lmaWVzIHRoZSBwb3dlciBidWRnZXQgdGhhdAojIGdwcyBlbmdpbmUgaXMgYWxsb3dlZCB0byBzcGVuZCB0byBtYWludGFpbiB0aGUgdGltZQojIHVuY2VydGFpbnR5LgojIERlZmF1bHQgaXMgMCBtZWFuaW5nIHRoYXQgR1BTIGVuZ2luZSBpcyBub3QgY29uc3RhaW5lZAojIGJ5IHBvd2VyIGJ1ZGdldCBhbmQgY2FuIHNwZW5kIGFzIG11Y2ggcG93ZXIgYXMgbmVlZGVkLgojIEluIHVuaXQgb2YgMC4xIG1pbGxpIHdhdHQgc2Vjb25kLgojQ09OU1RSQUlORURfVElNRV9VTkNFUlRBSU5UWV9FTkVSR1lfQlVER0VUID0gMAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBQT1NJVElPTiBBU1NJU1RFRCBDTE9DSyBFU1RJTUFUT1IKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyAwIDogZGlzYWJsZWQgKGRlZmF1bHQpCiMgMSA6IGVuYWJsZWQKIyBUaGlzIHNldHRpbmcgZW5hYmxlcyBHUFMgZW5naW5lIHRvIGVzdGltYXRlIGNsb2NrCiMgYmlhcyBhbmQgZHJpZnQgd2hlbiB0aGUgc2lnbmFsIGZyb20gYXQgbGVhc3QgMQojIFNWIGlzIGF2YWlsYWJsZSBhbmQgdGhlIFVFknMgcG9zaXRpb24gaXMga25vd24gYnkKIyBvdGhlciBwb3NpdGlvbiBlbmdpbmVzLgojUE9TSVRJT05fQVNTSVNURURfQ0xPQ0tfRVNUSU1BVE9SX0VOQUJMRUQgPSAwCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgcHJveHlBcHBQYWNrYWdlTmFtZQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgVGhpcyBpcyBhIHN0cmluZyB0aGF0IGlzIHNlbnQgdG8gdGhlIGZyYW1ld29yawojIGluIG5md05vdGlmeUNiIGNhbGxiYWNrClBST1hZX0FQUF9QQUNLQUdFX05BTUUgPSBjb20uZ29vZ2xlLmFuZHJvaWQuY2FycmllcmxvY2F0aW9uCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgQ1BfTVRMUl9FUwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgQ1AgTVRMUiBFUywgMT1lbmFibGUsIDA9ZGlzYWJsZQpDUF9NVExSX0VTPTAKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgR05TU19ERVBMT1lNRU5UCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgMCA6IEVuYWJsZSBRVEkgR05TUyAoZGVmYXVsdCkKIyAxIDogRW5hYmxlIFFDU1IgU1M1CiMgMiA6IEVuYWJsZSBQRFMgQVBJCiMgVGhpcyBzZXR0aW5nIHVzZSB0byBzZWxlY3QgYmV0d2VlbiBRVEkgR05TUywKIyBRQ1NSIFNTNSBoYXJkd2FyZSByZWNlaXZlciwgYW5kIFBEUyBBUEkuCiMgQnkgZGVmYXVsdCBRVEkgR05TUyByZWNlaXZlciBpcyBlbmFibGVkLgojIEdOU1NfREVQTE9ZTUVOVCA9IDAKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMjIExPRyBCVUZGRVIgQ09ORklHVVJBVElPTgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojTE9HX0JVRkZFUl9FTkFCTEVELCAxPWVuYWJsZSwgMD1kaXNhYmxlCiMqX0xFVkVMX1RJTUVfREVQVEgsIG1heGltdW0gdGltZSBkZXB0aCBvZiBsZXZlbCAqCiNpbiBsb2cgYnVmZmVyLCB1bml0IGlzIHNlY29uZAojKl9MRVZFTF9NQVhfQ0FQQUNJVFksIG1heGltdW0gbnVtYmVycyBvZiBsZXZlbCAqCiNsb2cgcHJpbnQgc2VudGVuY2VzIGluIGxvZyBidWZmZXIKTE9HX0JVRkZFUl9FTkFCTEVEID0gMApFX0xFVkVMX1RJTUVfREVQVEggPSA2MDAKRV9MRVZFTF9NQVhfQ0FQQUNJVFkgPSA1MApXX0xFVkVMX1RJTUVfREVQVEggPSA1MDAKV19MRVZFTF9NQVhfQ0FQQUNJVFkgPSAxMDAKSV9MRVZFTF9USU1FX0RFUFRIID0gNDAwCklfTEVWRUxfTUFYX0NBUEFDSVRZID0gMjAwCkRfTEVWRUxfVElNRV9ERVBUSCA9IDMwCkRfTEVWRUxfTUFYX0NBUEFDSVRZID0gMzAwClZfTEVWRUxfVElNRV9ERVBUSCA9IDIwMApWX0xFVkVMX01BWF9DQVBBQ0lUWSA9IDQwMAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBBbGxvdyBidWZmZXIgZGlhZyBsb2cgcGFja2V0cyB3aGVuIGRpYWcgbWVtb3J5IGFsbG9jYXRpb24KIyBmYWlscyBkdXJpbmcgYm9vdCB1cCB0aW1lLgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpCVUZGRVJfRElBR19MT0dHSU5HID0gMQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgIE5UUklQIENMSUVOVCBMSUJSQVJZIE5BTUUKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgTlRSSVBfQ0xJRU5UX0xJQl9OQU1FID0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgQ29ycmVjdGlvbiBEYXRhIEZyYW1ld29yayBzZXR0aW5ncwojIERlZmF1bHQgdmFsdWVzOgojIENERldfU09VUkNFX1BSSU9SSVRZXzEgPSBJTlRFUk5BTF8xIFJUQ00KIyBDREZXX0lOSkVDVF9EQVRBX0lOVEVSVkFMID0gNjAwMDAwIC8vMTAgbWlucwojIENERldfUlRDTV9NRVNTQUdFX0lOVEVSVkFMID0gMTAwMCAgLy8xIHNlY29uZAojCiMgSWYgbXVsdGlwbGUgc291cmNlcyBjb2V4aXN0IG9uIGEgUEwsCiMgdGhlIHByb3Jpb3R5IHNlcXVlbmNlIGNhbiBiZSBzZXQgYnkgdGhlIGludGVnZXIgbnVtYmVyLgojIFBSSU9SSVRZXzEgaXMgaGlnaGVyIHRoYW4gUFJJT1JJVFlfMiwgZm9yIGV4YW1wbGUsCiMgQ0RGV19TT1VSQ0VfUFJJT1JJVFlfMSA9IElOVEVSTkFMXzEgUlRDTQojIENERldfU09VUkNFX1BSSU9SSVRZXzIgPSBDVjJYIFJUQ00KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgUkYgTE9TUwojIFRoZSBsb3NzIGluIDAuMSBkYkh6IGZyb20gdGhlIEMvTjAgYXQgdGhlIGFudGVubmEgcG9ydAojIFRoZXNlIHZhbHVlcyBtdXN0IGJlIGNvbmZpZ3VyZWQgYnkgT0VNIGlmIG5vdAojIHN1cHBvcnRlZCBpbiBRTUkgTE9DIG1lc3NhZ2UKIyBUaGVyZSBpcyBvbmUgZW50cnkgZm9yIGVhY2ggc2lnbmFsIHR5cGUKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKUkZfTE9TU19HUFMgPSAwClJGX0xPU1NfR1BTX0w1ID0gMApSRl9MT1NTX0dMT19MRUZUID0gMApSRl9MT1NTX0dMT19DRU5URVIgPSAwClJGX0xPU1NfR0xPX1JJR0hUID0gMApSRl9MT1NTX0JEUyA9IDAKUkZfTE9TU19CRFNfQjJBID0gMApSRl9MT1NTX0dBTCA9IDAKUkZfTE9TU19HQUxfRTUgPSAwClJGX0xPU1NfTkFWSUMgPSAwCg==