BLUE
PHP 7.4.33
Path:
//usr/lib/python3/dist-packages/babel/__pycache__
Run
Logout
Edit File
Size: 53.97 KB
Close
//usr/lib/python3/dist-packages/babel/__pycache__/dates.cpython-310.pyc
Text
Base64
bw0NCgAAAAAKcI1gfAUBAOMAAAAAAAAAAAAAAAAAAAAABgAAAEAAAABzwgMAAGQAWgBkAWQCbAFtAloCAQBkAWQDbANaA2QBZANsBFoEZAFkA2wFWgZkAWQEbAdtCFoIbQdaB20JWgltCloKAQBkAWQFbAttDFoMAQBkAWQGbA1tDloObQ9aD20QWhABAGQBZAdsEW0SWhJtE1oTAQBkAWQIbBRtFVoVbRZaFm0XWhdtGFoYAQBkCVoZZQ5kCoMBWhplCFobZQdaHGUJWh1kC2QMhABaHmQNZA6EAFofZIVkD2QQhAFaIGSFZBFkEoQBWiFkhWQTZBSEAVoiZIZkFWQWhAFaI0cAZBdkGIQAZBhlJIMDWiVkGWQaZRpmA2QbZByEAVomZBlkHWUaZgNkHmQfhAFaJ2QZZB1lGmYDZCBkIYQBWihkGWQdZRpmA2QiZCOEAVopZBllGmYCZCRkJYQBWipkJmUaZgJkJ2QohAFaK2QmZRpmAmQpZCqEAVosZCZlGmYCZCtkLIQBWi1kA2QtZRpkLmYEZC9kMIQBWi5kA2UaZC5mA2QxZDKEAVovZANkLWQuZRpkA2QuZgZkM2Q0hAFaMGQDZCZlGmYDZDVkNoQBWjFkA2QmZANlGmYEZDdkOIQBWjJkA2QmZANlGmYEZDlkOoQBWjNkA2QDZDtlGmYEZDxkPYQBWjRkPlo1ZD9kQGQuZC1lGmYFZEFkQoQBWjZkQ2REhABaN2QDZANkO2UaZgRkRWRGhAFaOGQDZANlGmYDZEdkSIQBWjllGmYBZElkSoQBWjplGmYBZEtkTIQBWjtHAGRNZE6EAGROZSSDA1o8RwBkT2RQhABkUGUkgwNaPWkAZFFnAGRSogGTAWRTZAOTAWRUZAOTAWRVZAOTAWRWZwBkUqIBkwFkV2cAZFKiAZMBZFhnAGRSogGTAWRZZwBkUqIBkwFkWmRbZFxnApMBZF1kW2cBkwFkXmRbZFxnApMBZF9nAGRgogGTAWRhZFtnAZMBZGJkA5MBZGNnAGRkogGTAWRlZwBkZKIBkwFkZmcAZGeiAZMBaQBkaGRbZwGTAWRpZFtkXGcCkwFkamRbZFxnApMBZGtkW2RcZwKTAWRsZFtkXGcCkwFkbWRbZFxnApMBZG5kW2RcZwKTAWRvZAOTAWRwZAOTAWRxZwBkcqIBkwFkc2cAZFKiAZMBZHRkW2R1ZwKTAWR2ZFtkdWcCkwFkd2cAZHKiAZMBZHhnAGRSogGTAWR5ZwBkUqIBkwGlAVo+ZHpaP2kAWkBke2R8hABaQWR9ZH6EAFpCZH9kgIQAWkNkgWSChABaRGSHZINkhIQBWkVkA1MAKYhhgwEAAAogICAgYmFiZWwuZGF0ZXMKICAgIH5+fn5+fn5+fn5+CgogICAgTG9jYWxlIGRlcGVuZGVudCBmb3JtYXR0aW5nIGFuZCBwYXJzaW5nIG9mIGRhdGVzIGFuZCB0aW1lcy4KCiAgICBUaGUgZGVmYXVsdCBsb2NhbGUgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBtb2R1bGUgaXMgZGV0ZXJtaW5lZCBieSB0aGUKICAgIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIGluIHRoYXQgb3JkZXI6CgogICAgICogYGBMQ19USU1FYGAsCiAgICAgKiBgYExDX0FMTGBgLCBhbmQKICAgICAqIGBgTEFOR2BgCgogICAgOmNvcHlyaWdodDogKGMpIDIwMTMtMjAxOSBieSB0aGUgQmFiZWwgVGVhbS4KICAgIDpsaWNlbnNlOiBCU0QsIHNlZSBMSUNFTlNFIGZvciBtb3JlIGRldGFpbHMuCukAAAAAKQHaCGRpdmlzaW9uTikE2gRkYXRl2ghkYXRldGltZdoEdGltZdoJdGltZWRlbHRhKQHaDGJpc2VjdF9yaWdodCkD2g5kZWZhdWx0X2xvY2FsZdoKZ2V0X2dsb2JhbNoGTG9jYWxlKQLaA1VUQ9oHTE9DQUxUWikE2gxzdHJpbmdfdHlwZXPaDWludGVnZXJfdHlwZXPaDG51bWJlcl90eXBlc9oDUFkydQkAAADiiIXiiIXiiIXaB0xDX1RJTUVjAQAAAAAAAAAAAAAAAwAAAAQAAABDAAAAc54AAAB8AGQBdQByDnQAoAGhAH0BdAJ9AnwBfAJmAlMAdAN8AHQEgwJyHWQBfQF0BXwAgwF9AnwBfAJmAlMAdAN8AHQGgwJyKmQBfQF0B30CfAF8AmYCUwB0A3wAdAB0CGYCgwJyR3QJfACDAX0BfAFqCmQBdQFyQXwBagp9AnwBfAJmAlMAdAd9AnwBfAJmAlMAZAF9AXwAfQJ8AXwCZgJTACkCeqYKICAgIFBhcnNlIGEgYGR0X29yX3R6aW5mb2AgdmFsdWUgaW50byBhIGRhdGV0aW1lIGFuZCBhIHR6aW5mby4KCiAgICBTZWUgdGhlIGRvY3MgZm9yIHRoaXMgZnVuY3Rpb24ncyBjYWxsZXJzIGZvciBzZW1hbnRpY3MuCgogICAgOnJ0eXBlOiB0dXBsZVtkYXRldGltZSwgdHppbmZvXQogICAgTikLcgQAAABaA25vd3IMAAAA2gppc2luc3RhbmNlcg0AAADaDGdldF90aW1lem9uZXIOAAAAcgsAAAByBQAAANoNX2dldF9kYXRldGltZdoGdHppbmZvKQPaDGR0X29yX3R6aW5mb9oCZHRyFQAAAKkAchgAAAD6LS91c3IvbGliL3B5dGhvbjMvZGlzdC1wYWNrYWdlcy9iYWJlbC9kYXRlcy5wedoSX2dldF9kdF9hbmRfdHppbmZvMgAAAHMsAAAACAgIAQQBCBAK8QQBCAEIDQr0BAEEAQgKDvcIAQoBBgEIBgT8CAQE/gQBCAFyGgAAAGMBAAAAAAAAAAAAAAABAAAABAAAAEMAAABzbgAAAHwAZAF1AHIIdACgAaEAUwB0AnwAdAODAnMSdAJ8AHQEgwJyF3QAoAV8AKEBUwB0AnwAdAaDAnIkdACgB3QIoAmhAHwAoQJTAHQCfAB0CIMCcjV0AnwAdAqDAnM1dACgB3wAdAaDAKECUwB8AFMAKQJhWAMAAAogICAgR2V0IGEgZGF0ZXRpbWUgb3V0IG9mIGFuICJpbnN0YW50IiAoZGF0ZSwgdGltZSwgZGF0ZXRpbWUsIG51bWJlcikuCgogICAgLi4gd2FybmluZzo6IFRoZSByZXR1cm4gdmFsdWVzIG9mIHRoaXMgZnVuY3Rpb24gbWF5IGRlcGVuZCBvbiB0aGUgc3lzdGVtIGNsb2NrLgoKICAgIElmIHRoZSBpbnN0YW50IGlzIE5vbmUsIHRoZSBjdXJyZW50IG1vbWVudCBpcyB1c2VkLgogICAgSWYgdGhlIGluc3RhbnQgaXMgYSB0aW1lLCBpdCdzIGF1Z21lbnRlZCB3aXRoIHRvZGF5J3MgZGF0ZS4KCiAgICBEYXRlcyBhcmUgY29udmVydGVkIHRvIG5haXZlIGRhdGV0aW1lcyB3aXRoIG1pZG5pZ2h0IGFzIHRoZSB0aW1lIGNvbXBvbmVudC4KCiAgICA+Pj4gX2dldF9kYXRldGltZShkYXRlKDIwMTUsIDEsIDEpKQogICAgZGF0ZXRpbWUuZGF0ZXRpbWUoMjAxNSwgMSwgMSwgMCwgMCkKCiAgICBVTklYIHRpbWVzdGFtcHMgYXJlIGNvbnZlcnRlZCB0byBkYXRldGltZXMuCgogICAgPj4+IF9nZXRfZGF0ZXRpbWUoMTQwMDAwMDAwMCkKICAgIGRhdGV0aW1lLmRhdGV0aW1lKDIwMTQsIDUsIDEzLCAxNiwgNTMsIDIwKQoKICAgIE90aGVyIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMtaXMuCgogICAgPj4+IHggPSBkYXRldGltZSgyMDE1LCAxLCAxKQogICAgPj4+IF9nZXRfZGF0ZXRpbWUoeCkgaXMgeAogICAgVHJ1ZQoKICAgIDpwYXJhbSBpbnN0YW50OiBkYXRlLCB0aW1lLCBkYXRldGltZSwgaW50ZWdlciwgZmxvYXQgb3IgTm9uZQogICAgOnR5cGUgaW5zdGFudDogZGF0ZXx0aW1lfGRhdGV0aW1lfGludHxmbG9hdHxOb25lCiAgICA6cmV0dXJuOiBhIGRhdGV0aW1lCiAgICA6cnR5cGU6IGRhdGV0aW1lCiAgICBOKQvaCWRhdGV0aW1lX9oGdXRjbm93chIAAAByDgAAANoFZmxvYXTaEHV0Y2Zyb210aW1lc3RhbXByBQAAAFoHY29tYmluZXIDAAAA2gV0b2RheXIEAAAAKQHaB2luc3RhbnRyGAAAAHIYAAAAchkAAAByFAAAAE8AAABzEgAAAAgeCAEUAQoBCgEQARQBDgEEAnIUAAAAYwIAAAAAAAAAAAAAAAIAAAAEAAAAQwAAAHNEAAAAfABqAGQBdQByC3wAagF0AmQCjQF9AHwBZAF1AXIgfACgA3QEfAGDAaEBfQB0BXwBZAODAnIgfAGgBnwAoQF9AHwAUwApBGErAgAACiAgICBFbnN1cmUgdGhlIGRhdGV0aW1lIHBhc3NlZCBoYXMgYW4gYXR0YWNoZWQgdHppbmZvLgoKICAgIElmIHRoZSBkYXRldGltZSBpcyB0ei1uYWl2ZSB0byBiZWdpbiB3aXRoLCBVVEMgaXMgYXR0YWNoZWQuCgogICAgSWYgYSB0emluZm8gaXMgcGFzc2VkIGluLCB0aGUgZGF0ZXRpbWUgaXMgbm9ybWFsaXplZCB0byB0aGF0IHRpbWV6b25lLgoKICAgID4+PiBfZW5zdXJlX2RhdGV0aW1lX3R6aW5mbyhkYXRldGltZSgyMDE1LCAxLCAxKSkudHppbmZvLnpvbmUKICAgICdVVEMnCgogICAgPj4+IHR6ID0gZ2V0X3RpbWV6b25lKCJFdXJvcGUvU3RvY2tob2xtIikKICAgID4+PiBfZW5zdXJlX2RhdGV0aW1lX3R6aW5mbyhkYXRldGltZSgyMDE1LCAxLCAxLCAxMywgMTUsIHR6aW5mbz1VVEMpLCB0emluZm89dHopLmhvdXIKICAgIDE0CgogICAgOnBhcmFtIGRhdGV0aW1lOiBEYXRldGltZSB0byBhdWdtZW50LgogICAgOnBhcmFtIHR6aW5mbzogT3B0aW9uYWwgdHpuZm8uCiAgICA6cmV0dXJuOiBkYXRldGltZSB3aXRoIHR6aW5mbwogICAgOnJ0eXBlOiBkYXRldGltZQogICAgTqkBchUAAADaCW5vcm1hbGl6ZSkHchUAAADaB3JlcGxhY2VyCwAAANoKYXN0aW1lem9uZXITAAAA2gdoYXNhdHRyciIAAAApAnIEAAAAchUAAAByGAAAAHIYAAAAchkAAADaF19lbnN1cmVfZGF0ZXRpbWVfdHppbmZveQAAAHMOAAAAChQMAQgBDgEKAQoBBAFyJgAAAGMCAAAAAAAAAAAAAAACAAAAAwAAAEMAAABzkAAAAHwAZAF1AHIJdACgAaEAfQBuCnQCfAB0A4MCchN0AKAEfAChAX0AfABqBWQBdQByHnwAagZ0B2QCjQF9AHQCfAB0AIMCcjx8AWQBdQFyNnwAoAh8AaEBfQB0CXwBZAODAnI2fAGgCnwAoQF9AHwAoAuhAH0AfABTAHwBZAF1AXJGfABqBnwBZAKNAX0AfABTACkEesMKICAgIEdldCBhIHRpbWV6b25lZCB0aW1lIGZyb20gYSBnaXZlbiBpbnN0YW50LgoKICAgIC4uIHdhcm5pbmc6OiBUaGUgcmV0dXJuIHZhbHVlcyBvZiB0aGlzIGZ1bmN0aW9uIG1heSBkZXBlbmQgb24gdGhlIHN5c3RlbSBjbG9jay4KCiAgICA6cGFyYW0gdGltZTogdGltZSwgZGF0ZXRpbWUgb3IgTm9uZQogICAgOnJ0eXBlOiB0aW1lCiAgICBOciEAAAByIgAAACkMcgQAAAByHAAAAHISAAAAcg8AAAByHgAAAHIVAAAAciMAAAByCwAAAHIkAAAAciUAAAByIgAAAFoGdGltZXR6KQJyBQAAAHIVAAAAchgAAAByGAAAAHIZAAAA2glfZ2V0X3RpbWWWAAAAcyAAAAAICQoBCgEKAQoBDAEKAQgBCgEKAQoBCAEEAwj+DAEEAXInAAAAYwEAAAAAAAAAAAAAAAEAAAAIAAAAQwAAAHNEAAAAfABkAXUAcgZ0AFMAdAF8AHQCgwJzDXwAUwB6BnQDoAR8AKEBVwBTAAQAdANqBXkhAQABAAEAdAZkAnwAFgCDAYIBdwApA2HpAQAATG9va3MgdXAgYSB0aW1lem9uZSBieSBuYW1lIGFuZCByZXR1cm5zIGl0LiAgVGhlIHRpbWV6b25lIG9iamVjdAogICAgcmV0dXJuZWQgY29tZXMgZnJvbSBgYHB5dHpgYCBhbmQgY29ycmVzcG9uZHMgdG8gdGhlIGB0emluZm9gIGludGVyZmFjZSBhbmQKICAgIGNhbiBiZSB1c2VkIHdpdGggYWxsIG9mIHRoZSBmdW5jdGlvbnMgb2YgQmFiZWwgdGhhdCBvcGVyYXRlIHdpdGggZGF0ZXMuCgogICAgSWYgYSB0aW1lem9uZSBpcyBub3Qga25vd24gYSA6ZXhjOmBMb29rdXBFcnJvcmAgaXMgcmFpc2VkLiAgSWYgYHpvbmVgCiAgICBpcyBgYE5vbmVgYCBhIGxvY2FsIHpvbmUgb2JqZWN0IGlzIHJldHVybmVkLgoKICAgIDpwYXJhbSB6b25lOiB0aGUgbmFtZSBvZiB0aGUgdGltZXpvbmUgdG8gbG9vayB1cC4gIElmIGEgdGltZXpvbmUgb2JqZWN0CiAgICAgICAgICAgICAgICAgaXRzZWxmIGlzIHBhc3NlZCBpbiwgbWl0J3MgcmV0dXJuZWQgdW5jaGFuZ2VkLgogICAgTnoTVW5rbm93biB0aW1lem9uZSAlcykHcgwAAAByEgAAAHINAAAA2gVfcHl0etoIdGltZXpvbmVaFFVua25vd25UaW1lWm9uZUVycm9y2gtMb29rdXBFcnJvcikB2gR6b25lchgAAAByGAAAAHIZAAAAchMAAACwAAAAcxIAAAAICwQBCgEEAQIBDAEOAQwBAv9yEwAAAGMCAAAAAAAAAAAAAAAHAAAACQAAAEMAAABznAAAAHQAfACDAX0AdAF8AYMBagJkAWQCjQF9AXQDfABkA4MCcxV0BGQEgwGCAXohdAVkBXQGfABqB3wBgwKDAn0CfABqCHwCZAYYABkAfQN8AGoIfAIZAH0EfABqCXwDGQB9BXwAagl8BBkAfQZXAG4MBAB0CnQLZgJ5QgEAAQABAFkAZAFTAHcAdAx8AGoHfAIZAHwFfAZ8AWQHjQRTACkIYVwDAABHaXZlbiBhIHRpbWV6b25lIGl0IHdpbGwgcmV0dXJuIGEgOmNsYXNzOmBUaW1lem9uZVRyYW5zaXRpb25gIG9iamVjdAogICAgdGhhdCBob2xkcyB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG5leHQgdGltZXpvbmUgdHJhbnNpdGlvbiB0aGF0J3MgZ29pbmcKICAgIHRvIGhhcHBlbi4gIEZvciBpbnN0YW5jZSB0aGlzIGNhbiBiZSB1c2VkIHRvIGRldGVjdCB3aGVuIHRoZSBuZXh0IERTVAogICAgY2hhbmdlIGlzIGdvaW5nIHRvIGhhcHBlbiBhbmQgaG93IGl0IGxvb2tzIGxpa2UuCgogICAgVGhlIHRyYW5zaXRpb24gaXMgY2FsY3VsYXRlZCByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gZGF0ZXRpbWUgb2JqZWN0LiAgVGhlCiAgICBuZXh0IHRyYW5zaXRpb24gdGhhdCBmb2xsb3dzIHRoZSBkYXRlIGlzIHVzZWQuICBJZiBhIHRyYW5zaXRpb24gY2Fubm90CiAgICBiZSBmb3VuZCB0aGUgcmV0dXJuIHZhbHVlIHdpbGwgYmUgYE5vbmVgLgoKICAgIFRyYW5zaXRpb24gaW5mb3JtYXRpb24gY2FuIG9ubHkgYmUgcHJvdmlkZWQgZm9yIHRpbWV6b25lcyByZXR1cm5lZCBieQogICAgdGhlIDpmdW5jOmBnZXRfdGltZXpvbmVgIGZ1bmN0aW9uLgoKICAgIDpwYXJhbSB6b25lOiB0aGUgdGltZXpvbmUgZm9yIHdoaWNoIHRoZSB0cmFuc2l0aW9uIHNob3VsZCBiZSBsb29rZWQgdXAuCiAgICAgICAgICAgICAgICAgSWYgbm90IHByb3ZpZGVkIHRoZSBsb2NhbCB0aW1lem9uZSBpcyB1c2VkLgogICAgOnBhcmFtIGR0OiB0aGUgZGF0ZSBhZnRlciB3aGljaCB0aGUgbmV4dCB0cmFuc2l0aW9uIHNob3VsZCBiZSBmb3VuZC4KICAgICAgICAgICAgICAgSWYgbm90IGdpdmVuIHRoZSBjdXJyZW50IHRpbWUgaXMgYXNzdW1lZC4KICAgIE5yIQAAANoVX3V0Y190cmFuc2l0aW9uX3RpbWVzepxHaXZlbiB0aW1lem9uZSBkb2VzIG5vdCBoYXZlIFVUQyB0cmFuc2l0aW9uIHRpbWVzLiAgVGhpcyBjYW4gaGFwcGVuIGJlY2F1c2UgdGhlIG9wZXJhdGluZyBzeXN0ZW0gZmFsbGJhY2sgbG9jYWwgdGltZXpvbmUgaXMgdXNlZCBvciBhIGN1c3RvbSB0aW1lem9uZSBvYmplY3RyAQAAAOkBAAAAqQTaCWFjdGl2YXRlc9oLZnJvbV90emluZm/aCXRvX3R6aW5mb9oOcmVmZXJlbmNlX2RhdGUpDXITAAAAchQAAAByIwAAAHIlAAAA2glUeXBlRXJyb3LaA21heHIHAAAAciwAAABaEF90cmFuc2l0aW9uX2luZm9aCF90emluZm9zcioAAADaClZhbHVlRXJyb3LaElRpbWV6b25lVHJhbnNpdGlvbikHcisAAAByFwAAANoDaWR4WglvbGRfdHJhbnNaCW5ld190cmFuc1oGb2xkX3R6WgZuZXdfdHpyGAAAAHIYAAAAchkAAADaHGdldF9uZXh0X3RpbWV6b25lX3RyYW5zaXRpb27FAAAAcyYAAAAIEhABCgIIAQIFEgEOAQoBCgEOARABBgEC/wIDCAECAQIBAgEG/HI4AAAAYwAAAAAAAAAAAAAAAAAAAAADAAAAQAAAAHNSAAAAZQBaAWQAWgJkAVoDZA9kA2QEhAFaBGUFZAVkBoQAgwFaBmUFZAdkCIQAgwFaB2UFZAlkCoQAgwFaCGUFZAtkDIQAgwFaCWQNZA6EAFoKZAJTACkQcjYAAAB6ZEEgaGVscGVyIG9iamVjdCB0aGF0IHJlcHJlc2VudHMgdGhlIHJldHVybiB2YWx1ZSBmcm9tCiAgICA6ZnVuYzpgZ2V0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AABSZXR1cm4gdGhlIGRheSBuYW1lcyB1c2VkIGJ5IHRoZSBsb2NhbGUgZm9yIHRoZSBzcGVjaWZpZWQgZm9ybWF0LgoKICAgID4+PiBnZXRfZGF5X25hbWVzKCd3aWRlJywgbG9jYWxlPSdlbl9VUycpWzFdCiAgICB1J1R1ZXNkYXknCiAgICA+Pj4gZ2V0X2RheV9uYW1lcygnc2hvcnQnLCBsb2NhbGU9J2VuX1VTJylbMV0KICAgIHUnVHUnCiAgICA+Pj4gZ2V0X2RheV9uYW1lcygnYWJicmV2aWF0ZWQnLCBsb2NhbGU9J2VzJylbMV0KICAgIHUnbWFyLicKICAgID4+PiBnZXRfZGF5X25hbWVzKCduYXJyb3cnLCBjb250ZXh0PSdzdGFuZC1hbG9uZScsIGxvY2FsZT0nZGVfREUnKVsxXQogICAgdSdEJwoKICAgIDpwYXJhbSB3aWR0aDogdGhlIHdpZHRoIHRvIHVzZSwgb25lIG9mICJ3aWRlIiwgImFiYnJldmlhdGVkIiwgInNob3J0IiBvciAibmFycm93IgogICAgOnBhcmFtIGNvbnRleHQ6IHRoZSBjb250ZXh0LCBlaXRoZXIgImZvcm1hdCIgb3IgInN0YW5kLWFsb25lIgogICAgOnBhcmFtIGxvY2FsZTogdGhlIGBMb2NhbGVgIG9iamVjdCwgb3IgYSBsb2NhbGUgc3RyaW5nCiAgICApA3IKAAAAclIAAADaBGRheXNyUwAAAHIYAAAAchgAAAByGQAAANoNZ2V0X2RheV9uYW1lcyoBAABzAgAAABQQcloAAABjAwAAAAAAAAAAAAAAAwAAAAMAAABDAAAAclEAAAApAWHvAQAAUmV0dXJuIHRoZSBtb250aCBuYW1lcyB1c2VkIGJ5IHRoZSBsb2NhbGUgZm9yIHRoZSBzcGVjaWZpZWQgZm9ybWF0LgoKICAgID4+PiBnZXRfbW9udGhfbmFtZXMoJ3dpZGUnLCBsb2NhbGU9J2VuX1VTJylbMV0KICAgIHUnSmFudWFyeScKICAgID4+PiBnZXRfbW9udGhfbmFtZXMoJ2FiYnJldmlhdGVkJywgbG9jYWxlPSdlcycpWzFdCiAgICB1J2VuZS4nCiAgICA+Pj4gZ2V0X21vbnRoX25hbWVzKCduYXJyb3cnLCBj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RScpKQogICAgS2FuYWRhIChTdC4gSm9obuKAmXMpIFplaXQKICAgID4+PiBwcmludChnZXRfdGltZXpvbmVfbG9jYXRpb24odHosIGxvY2FsZT0nZW4nKSkKICAgIENhbmFkYSAoU3QuIEpvaG7igJlzKSBUaW1lCiAgICA+Pj4gcHJpbnQoZ2V0X3RpbWV6b25lX2xvY2F0aW9uKHR6LCBsb2NhbGU9J2VuJywgcmV0dXJuX2NpdHk9VHJ1ZSkpCiAgICBTdC4gSm9obuKAmXMKICAgID4+PiB0eiA9IGdldF90aW1lem9uZSgnQW1lcmljYS9NZXhpY29fQ2l0eScpCiAgICA+Pj4gZ2V0X3RpbWV6b25lX2xvY2F0aW9uKHR6LCBsb2NhbGU9J2RlX0RFJykKICAgIHUnTWV4aWtvIChNZXhpa28tU3RhZHQpIFplaXQnCgogICAgSWYgdGhlIHRpbWV6b25lIGlzIGFzc29jaWF0ZWQgd2l0aCBhIGNvdW50cnkgdGhhdCB1c2VzIG9ubHkgYSBzaW5nbGUKICAgIHRpbWV6b25lLCBqdXN0IHRoZSBsb2NhbGl6ZWQgY291bnRyeSBuYW1lIGlzIHJldHVybmVkOgoKICAgID4+PiB0eiA9IGdldF90aW1lem9uZSgnRXVyb3BlL0JlcmxpbicpCiAgICA+Pj4gZ2V0X3RpbWV6b25lX25hbWUodHosIGxvY2FsZT0nZGVfREUnKQogICAgdSdNaXR0ZWxldXJvcFx4ZTRpc2NoZSBaZWl0JwoKICAgIC4uIHZlcnNpb25hZGRlZDo6IDAuOQoKICAgIDpwYXJhbSBkdF9vcl90emluZm86IHRoZSBgYGRhdGV0aW1lYGAgb3IgYGB0emluZm9gYCBvYmplY3QgdGhhdCBkZXRlcm1pbmVzCiAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgdGltZXpvbmU7IGlmIGBOb25lYCwgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZSBpbgogICAgICAgICAgICAgICAgICAgICAgICAgVVRDIGlzIGFzc3VtZWQKICAgIDpwYXJhbSBsb2NhbGU6IHRoZSBgTG9jYWxlYCBvYmplY3QsIG9yIGEgbG9jYWxlIHN0cmluZwogICAgOnBhcmFtIHJldHVybl9jaXR5OiBUcnVlIG9yIEZhbHNlLCBpZiBUcnVlIHRoZW4gcmV0dXJuIGV4ZW1wbGFyIGNpdHkgKGxvY2F0aW9uKQogICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhlIHRpbWUgem9uZQogICAgOnJldHVybjogdGhlIGxvY2FsaXplZCB0aW1lem9uZSBuYW1lIHVzaW5nIGxvY2F0aW9uIGZvcm1hdAoKICAgIHIrAAAA2gx6b25lX2FsaWFzZXNaBnJlZ2lvbloQem9uZV90ZXJyaXRvcmllc1oCWlpaD3RlcnJpdG9yeV96b25lc3ItAAAA2ghmYWxsYmFja1oEY2l0edoKbWV0YV96b25lc/oBL9oBX/oBICkC2gEw2gExKRFyGgAAAHIKAAAAclIAAAByJQAAAHIrAAAA2gZ0em5hbWVyBAAAAHIcAAAAcgkAAADaA2dldNoKdGltZV96b25lc3JyAAAAWgt0ZXJyaXRvcmllc9oDbGVucnkAAADaBXNwbGl0ciMAAAApDnIWAAAAclYAAADaC3JldHVybl9jaXR5chcAAAByFQAAAHIrAAAA2gRpbmZvWg1yZWdpb25fZm9ybWF02gl0ZXJyaXRvcnlaDnRlcnJpdG9yeV9uYW1lWg9mYWxsYmFja19mb3JtYXRaCWNpdHlfbmFtZdoIbWV0YXpvbmXaDW1ldGF6b25lX2luZm9yGAAAAHIYAAAAchkAAADaFWdldF90aW1lem9uZV9sb2NhdGlvbtQBAABzPAAAAAwjCgEKAggBEgIQAw4CCgQOAQoBBAEKASABCAEKAwgBCgEOAg4BCAEKAQgBGgEMAgQCBAEEAQIBAgEK/nKJAAAAYwYAAAAAAAAAAAAAAA4AAAAFAAAAQwAAAHM6AQAAdAB8AIMBXAJ9Bn0HdAGgAnwDoQF9A3QDfAdkAYMCchR8B2oEfQhuBXwHoAV8BqEBfQh8BGQCdQByMXwGZAJ1AHIkZAN9BG4VfAegBnwGoQF9CXwJci5kBH0EbgtkBX0Ebgh8BGQGdgFyOXQHZAeDAYIBdAhkCIMBoAl8CHwIoQJ9CHwFckV8CFMAfANqCqAJfAhpAKECfQp8AXwKdgByXHwEfAp8ARkAdgByXHwKfAEZAHwEGQBTAHQIZAmDAaAJfAihAX0LfAtyjHwDagugCXwLaQChAn0MfAF8DHYAcox8DHwBGQCgCXwEoQF9DXwBZAprAnKIfA10DGsCcoh8DKAJZAtpAKECoAl8BKEBfQ18DXKMfA1TAHwGZAJ1AXKXdA18BnwBfANkDI0DUwB0DnwAfANkDY0CUwApDmEQDAAAUmV0dXJuIHRoZSBsb2NhbGl6ZWQgZGlzcGxheSBuYW1lIGZvciB0aGUgZ2l2ZW4gdGltZXpvbmUuIFRoZSB0aW1lem9uZQogICAgbWF5IGJlIHNwZWNpZmllZCB1c2luZyBhIGBgZGF0ZXRpbWVgYCBvciBgdHppbmZvYCBvYmplY3QuCgogICAgPj4+IGR0ID0gdGltZSgxNSwgMzAsIHR6aW5mbz1nZXRfdGltZXpvbmUoJ0FtZXJpY2EvTG9zX0FuZ2VsZXMnKSkKICAgID4+PiBnZXRfdGltZXpvbmVfbmFtZShkdCwgbG9jYWxlPSdlbl9VUycpCiAgICB1J1BhY2lmaWMgU3RhbmRhcmQgVGltZScKICAgID4+PiBnZXRfdGltZXpvbmVfbmFtZShkdCwgbG9jYWxlPSdlbl9VUycsIHJldHVybl96b25lPVRydWUpCiAgICAnQW1lcmljYS9Mb3NfQW5nZWxlcycKICAgID4+PiBnZXRfdGltZXpvbmVfbmFtZShkdCwgd2lkdGg9J3Nob3J0JywgbG9jYWxlPSdlbl9VUycpCiAgICB1J1BTVCcKCiAgICBJZiB0aGlzIGZ1bmN0aW9uIGdldHMgcGFzc2VkIG9ubHkgYSBgdHppbmZvYCBvYmplY3QgYW5kIG5vIGNvbmNyZXRlCiAgICBgZGF0ZXRpbWVgLCAgdGhlIHJldHVybmVkIGRpc3BsYXkgbmFtZSBpcyBpbmRlbnBlbmRlbnQgb2YgZGF5bGlnaHQgc2F2aW5ncwogICAgdGltZS4gVGhpcyBjYW4gYmUgdXNlZCBmb3IgZXhhbXBsZSBmb3Igc2VsZWN0aW5nIHRpbWV6b25lcywgb3IgdG8gc2V0IHRoZQogICAgdGltZSBvZiBldmVudHMgdGhhdCByZWN1ciBhY3Jvc3MgRFNUIGNoYW5nZXM6CgogICAgPj4+IHR6ID0gZ2V0X3RpbWV6b25lKCdBbWVyaWNhL0xvc19BbmdlbGVzJykKICAgID4+PiBnZXRfdGltZXpvbmVfbmFtZSh0eiwgbG9jYWxlPSdlbl9VUycpCiAgICB1J1BhY2lmaWMgVGltZScKICAgID4+PiBnZXRfdGltZXpvbmVfbmFtZSh0eiwgJ3Nob3J0JywgbG9jYWxlPSdlbl9VUycpCiAgICB1J1BUJwoKICAgIElmIG5vIGxvY2FsaXplZCBkaXNwbGF5IG5hbWUgZm9yIHRoZSB0aW1lem9uZSBpcyBhdmFpbGFibGUsIGFuZCB0aGUgdGltZXpvbmUKICAgIGlzIGFzc29jaWF0ZWQgd2l0aCBhIGNvdW50cnkgdGhhdCB1c2VzIG9ubHkgYSBzaW5nbGUgdGltZXpvbmUsIHRoZSBuYW1lIG9mCiAgICB0aGF0IGNvdW50cnkgaXMgcmV0dXJuZWQsIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gdGhlIGxvY2FsZToKCiAgICA+Pj4gdHogPSBnZXRfdGltZXpvbmUoJ0V1cm9wZS9CZXJsaW4nKQogICAgPj4+IGdldF90aW1lem9uZV9uYW1lKHR6LCBsb2NhbGU9J2RlX0RFJykKICAgIHUnTWl0dGVsZXVyb3BceGU0aXNjaGUgWmVpdCcKICAgID4+PiBnZXRfdGltZXpvbmVfbmFtZSh0eiwgbG9jYWxlPSdwdF9CUicpCiAgICB1J0hvclx4ZTFyaW8gZGEgRXVyb3BhIENlbnRyYWwnCgogICAgT24gdGhlIG90aGVyIGhhbmQsIGlmIHRoZSBjb3VudHJ5IHVzZXMgbXVsdGlwbGUgdGltZXpvbmVzLCB0aGUgY2l0eSBpcyBhbHNvCiAgICBpbmNsdWRlZCBpbiB0aGUgcmVwcmVzZW50YXRpb246CgogICAgPj4+IHR6ID0gZ2V0X3RpbWV6b25lKCdBbWVyaWNhL1N0X0pvaG5zJykKICAgID4+PiBnZXRfdGltZXpvbmVfbmFtZSh0eiwgbG9jYWxlPSdkZV9ERScpCiAgICB1J05ldWZ1bmRsYW5kLVplaXQnCgogICAgTm90ZSB0aGF0IHNob3J0IGZvcm1hdCBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBmb3IgYWxsIHRpbWV6b25lcyBhbmQKICAgIGFsbCBsb2NhbGVzLiAgVGhpcyBpcyBwYXJ0aWFsbHkgYmVjYXVzZSBub3QgZXZlcnkgdGltZXpvbmUgaGFzIGEgc2hvcnQKICAgIGNvZGUgaW4gZXZlcnkgbG9jYWxlLiAgSW4gdGhhdCBjYXNlIGl0IGN1cnJlbnRseSBmYWxscyBiYWNrIHRvIHRoZSBsb25nCiAgICBmb3JtYXQuCgogICAgRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGBMRE1MIEFwcGVuZGl4IEo6IFRpbWUgWm9uZSBEaXNwbGF5IE5hbWVzCiAgICA8aHR0cHM6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjM1LyNUaW1lX1pvbmVfRmFsbGJhY2s+YF8KCiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAwLjkKCiAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDEuMAogICAgICAgQWRkZWQgYHpvbmVfdmFyaWFudGAgc3VwcG9ydC4KCiAgICA6cGFyYW0gZHRfb3JfdHppbmZvOiB0aGUgYGBkYXRldGltZWBgIG9yIGBgdHppbmZvYGAgb2JqZWN0IHRoYXQgZGV0ZXJtaW5lcwogICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHRpbWV6b25lOyBpZiBhIGBgdHppbmZvYGAgb2JqZWN0IGlzIHVzZWQsIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0aW5nIGRpc3BsYXkgbmFtZSB3aWxsIGJlIGdlbmVyaWMsIGkuZS4KICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVwZW5kZW50IG9mIGRheWxpZ2h0IHNhdmluZ3MgdGltZTsgaWYgYE5vbmVgLCB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgZGF0ZSBpbiBVVEMgaXMgYXNzdW1lZAogICAgOnBhcmFtIHdpZHRoOiBlaXRoZXIgImxvbmciIG9yICJzaG9ydCIKICAgIDpwYXJhbSB1bmNvbW1vbjogZGVwcmVjYXRlZCBhbmQgaWdub3JlZAogICAgOnBhcmFtIHpvbmVfdmFyaWFudDogZGVmaW5lcyB0aGUgem9uZSB2YXJpYXRpb24gdG8gcmV0dXJuLiAgQnkgZGVmYXVsdCB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWF0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byB1c2UgdGhlIGxvY2FsZSBkZWZhdWx0IGZvcm1hdHMsIHlvdSBjYW4gc3BlY2lmeSBhCiAgICBjdXN0b20gdGltZSBwYXR0ZXJuOgoKICAgID4+PiBmb3JtYXRfdGltZSh0LCAiaGggJ28nJ2Nsb2NrJyBhIiwgbG9jYWxlPSdlbicpCiAgICB1IjAzIG8nY2xvY2sgUE0iCgogICAgRm9yIGFueSBwYXR0ZXJuIHJlcXVpcmluZyB0aGUgZGlzcGxheSBvZiB0aGUgdGltZS16b25lIGEKICAgIHRpbWV6b25lIGhhcyB0byBiZSBzcGVjaWZpZWQgZXhwbGljaXRseToKCiAgICA+Pj4gdCA9IGRhdGV0aW1lKDIwMDcsIDQsIDEsIDE1LCAzMCkKICAgID4+PiB0emluZm8gPSBnZXRfdGltZXpvbmUoJ0V1cm9wZS9QYXJpcycpCiAgICA+Pj4gdCA9IHR6aW5mby5sb2NhbGl6ZSh0KQogICAgPj4+IGZvcm1hdF90aW1lKHQsIGZvcm1hdD0nZnVsbCcsIHR6aW5mbz10emluZm8sIGxvY2FsZT0nZnJfRlInKQogICAgdScxNTozMDowMCBoZXVyZSBkXHUyMDE5XHhlOXRceGU5IGRcdTIwMTlFdXJvcGUgY2VudHJhbGUnCiAgICA+Pj4gZm9ybWF0X3RpbWUodCwgImhoICdvJydjbG9jaycgYSwgenp6eiIsIHR6aW5mbz1nZXRfdGltZXpvbmUoJ1VTL0Vhc3Rlcm4nKSwKICAgIC4uLiAgICAgICAgICAgICBsb2NhbGU9J2VuJykKICAgIHUiMDkgbydjbG9jayBBTSwgRWFzdGVybiBEYXlsaWdodCBUaW1lIgoKICAgIEFzIHRoYXQgZXhhbXBsZSBzaG93cywgd2hlbiB0aGlzIGZ1bmN0aW9uIGdldHMgcGFzc2VkIGEKICAgIGBgZGF0ZXRpbWUuZGF0ZXRpbWVgYCB2YWx1ZSwgdGhlIGFjdHVhbCB0aW1lIGluIHRoZSBmb3JtYXR0ZWQgc3RyaW5nIGlzCiAgICBhZGp1c3RlZCB0byB0aGUgdGltZXpvbmUgc3BlY2lmaWVkIGJ5IHRoZSBgdHppbmZvYCBwYXJhbWV0ZXIuIElmIHRoZQogICAgYGBkYXRldGltZWBgIGlzICJuYWl2ZSIgKGkuZS4gaXQgaGFzIG5vIGFzc29jaWF0ZWQgdGltZXpvbmUgaW5mb3JtYXRpb24pLAogICAgaXQgaXMgYXNzdW1lZCB0byBiZSBpbiBVVEMuCgogICAgVGhlc2UgdGltZXpvbmUgY2FsY3VsYXRpb25zIGFyZSAqKm5vdCoqIHBlcmZvcm1lZCBpZiB0aGUgdmFsdWUgaXMgb2YgdHlwZQogICAgYGBkYXRldGltZS50aW1lYGAsIGFzIHdpdGhvdXQgZGF0ZSBpbmZvcm1hdGlvbiB0aGVyZSdzIG5vIHdheSB0byBkZXRlcm1pbmUKICAgIHdoYXQgYSBnaXZlbiB0aW1lIHdvdWxkIHRyYW5zbGF0ZSB0byBpbiBhIGRpZmZlcmVudCB0aW1lem9uZSB3aXRob3V0CiAgICBpbmZvcm1hdGlvbiBhYm91dCB3aGV0aGVyIGRheWxpZ2h0IHNhdmluZ3MgdGltZSBpcyBpbiBlZmZlY3Qgb3Igbm90LiBUaGlzCiAgICBtZWFucyB0aGF0IHRpbWUgdmFsdWVzIGFyZSBsZWZ0IGFzLWlzLCBhbmQgdGhlIHZhbHVlIG9mIHRoZSBgdHppbmZvYAogICAgcGFyYW1ldGVyIGlzIG9ubHkgdXNlZCB0byBkaXNwbGF5IHRoZSB0aW1lem9uZSBuYW1lIGlmIG5lZWRlZDoKCiAgICA+Pj4gdCA9IHRpbWUoMTUsIDMwKQogICAgPj4+IGZvcm1hdF90aW1lKHQsIGZvcm1hdD0nZnVsbCcsIHR6aW5mbz1nZXRfdGltZXpvbmUoJ0V1cm9wZS9QYXJpcycpLAogICAgLi4uICAgICAgICAgICAgIGxvY2FsZT0nZnJfRlInKQogICAgdScxNTozMDowMCBoZXVyZSBub3JtYWxlIGRcdTIwMTlFdXJvcGUgY2VudHJhbGUnCiAgICA+Pj4gZm9ybWF0X3RpbWUodCwgZm9ybWF0PSdmdWxsJywgdHppbmZvPWdldF90aW1lem9uZSgnVVMvRWFzdGVybicpLAogICAgLi4uICAgICAgICAgICAgIGxvY2FsZT0nZW5fVVMnKQogICAgdSczOjMwOjAwIFBNIEVhc3Rlcm4gU3RhbmRhcmQgVGltZScKCiAgICA6cGFyYW0gdGltZTogdGhlIGBgdGltZWBgIG9yIGBgZGF0ZXRpbWVgYCBvYmplY3Q7IGlmIGBOb25lYCwgdGhlIGN1cnJlbnQKICAgICAgICAgICAgICAgICB0aW1lIGluIFVUQyBpcyB1c2VkCiAgICA6cGFyYW0gZm9ybWF0OiBvbmUgb2YgImZ1bGwiLCAibG9uZyIsICJtZWRpdW0iLCBvciAic2hvcnQiLCBvciBhIGN1c3RvbQogICAgICAgICAgICAgICAgICAgZGF0ZS90aW1lIHBhdHRlcm4KICAgIDpwYXJhbSB0emluZm86IHRoZSB0aW1lLXpvbmUgdG8gYXBwbHkgdG8gdGhlIHRpbWUgZm9yIGRpc3BsYXkKICAgIDpwYXJhbSBsb2NhbGU6IGEgYExvY2FsZWAgb2JqZWN0IG9yIGEgbG9jYWxlIGlkZW50aWZpZXIKICAgIHKUAAAAco0AAAApBnInAAAAcgoAAAByUgAAAHJnAAAAcpYAAABylwAAACkEcgUAAAByWAAAAHIVAAAAclYAAAByGAAAAHIYAAAAchkAAAByngAAAOUCAABzCgAAAAo3CgIIAQwBEAFyngAAAFRjBQAAAAAAAAAAAAAABgAAAAUAAABDAAAAczwAAAB0AKABfAShAX0EfANyEnwAfARqAnYBchJ0A3wAfARqAoMCfQB8BGoCfAAZAH0FdAR8AXwFfAJ8BIMEUwApAWGCBQAAUmV0dXJuIGEgdGltZSBhbmQvb3IgZGF0ZSBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBnaXZlbiBwYXR0ZXJuLgoKICAgIFRoZSBza2VsZXRvbnMgYXJlIGRlZmluZWQgaW4gdGhlIENMRFIgZGF0YSBhbmQgcHJvdmlkZSBtb3JlIGZsZXhpYmlsaXR5CiAgICB0aGFuIHRoZSBzaW1wbGUgc2hvcnQvbG9uZy9tZWRpdW0gZm9ybWF0cywgYnV0IGFyZSBhIGJpdCBoYXJkZXIgdG8gdXNlLgogICAgVGhlIGFyZSBkZWZpbmVkIHVzaW5nIHRoZSBkYXRlL3RpbWUgc3ltYm9scyB3aXRob3V0IG9yZGVyIG9yIHB1bmN0dWF0aW9uCiAgICBhbmQgbWFwIHRvIGEgc3VpdGFibGUgZm9ybWF0IGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgoKICAgID4+PiB0ID0gZGF0ZXRpbWUoMjAwNywgNCwgMSwgMTUsIDMwKQogICAgPj4+IGZvcm1hdF9za2VsZXRvbignTU1NRWQnLCB0LCBsb2NhbGU9J2ZyJykKICAgIHUnZGltLiAxIGF2ci4nCiAgICA+Pj4gZm9ybWF0X3NrZWxldG9uKCdNTU1FZCcsIHQsIGxvY2FsZT0nZW4nKQogICAgdSdTdW4sIEFwciAxJwogICAgPj4+IGZvcm1hdF9za2VsZXRvbigneU1NZCcsIHQsIGxvY2FsZT0nZmknKSAgIyB5TU1kIGlzIG5vdCBpbiB0aGUgRmlubmlzaCBsb2NhbGU7IHlNZCBnZXRzIHVzZWQKICAgIHUnMS40LjIwMDcnCiAgICA+Pj4gZm9ybWF0X3NrZWxldG9uKCd5TU1kJywgdCwgZnV6enk9RmFsc2UsIGxvY2FsZT0nZmknKSAgIyB5TU1kIGlzIG5vdCBpbiB0aGUgRmlubmlzaCBsb2NhbGUsIGFuIGVycm9yIGlzIHRocm93bgogICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAgICAgIC4uLgogICAgS2V5RXJyb3I6IHlNTWQKCiAgICBBZnRlciB0aGUgc2tlbGV0b24gaXMgcmVzb2x2ZWQgdG8gYSBwYXR0ZXJuIGBmb3JtYXRfZGF0ZXRpbWVgIGlzIGNhbGxlZCBzbwogICAgYWxsIHRpbWV6b25lIHByb2Nlc3NpbmcgZXRjIGlzIHRoZSBzYW1lIGFzIGZvciB0aGF0LgoKICAgIDpwYXJhbSBza2VsZXRvbjogQSBkYXRlIHRpbWUgc2tlbGV0b24gYXMgZGVmaW5lZCBpbiB0aGUgY2xkciBkYXRhLgogICAgOnBhcmFtIGRhdGV0aW1lOiB0aGUgYGB0aW1lYGAgb3IgYGBkYXRldGltZWBgIG9iamVjdDsgaWYgYE5vbmVgLCB0aGUgY3VycmVudAogICAgICAgICAgICAgICAgIHRpbWUgaW4gVVRDIGlzIHVzZWQKICAgIDpwYXJhbSB0emluZm86IHRoZSB0aW1lLXpvbmUgdG8gYXBwbHkgdG8gdGhlIHRpbWUgZm9yIGRpc3BsYXkKICAgIDpwYXJhbSBmdXp6eTogSWYgdGhlIHNrZWxldG9uIGlzIG5vdCBmb3VuZCwgYWxsb3cgY2hvb3NpbmcgYSBza2VsZXRvbiB0aGF0J3MKICAgICAgICAgICAgICAgICAgY2xvc2UgZW5vdWdoIHRvIGl0LgogICAgOnBhcmFtIGxvY2FsZTogYSBgTG9jYWxlYCBvYmplY3Qgb3IgYSBsb2NhbGUgaWRlbnRpZmllcgogICAgKQVyCgAAAHJSAAAA2hJkYXRldGltZV9za2VsZXRvbnPaDm1hdGNoX3NrZWxldG9ucp8AAAApBtoIc2tlbGV0b25yBAAAAHIVAAAA2gVmdXp6eXJWAAAAclgAAAByGAAAAHIYAAAAchkAAADaD2Zvcm1hdF9za2VsZXRvbiQDAABzCgAAAAofDgEMAQoBDgFypAAAACkHKQLaBHllYXJpgDPhASkC2gVtb250aGkAjScAKQLaBHdlZWtpgDoJACkC2gNkYXnpgFEBACkC2gRob3VycmsAAAApAtoGbWludXRlcmoAAAApAtoGc2Vjb25kci0AAAByrAAAAGczMzMzMzPrP2MGAAAAAAAAAAAAAAANAAAABgAAAAMAAABzEAEAAIgBZAF2AXIIdABkAoMBggGIAWQDawJyFXQBagJkBHQDZAWNAgEAZAaJAXQEfAB0BYMCciV0BnwAagdkBxQAfABqCBcAgwGJA24CfACJA3QJoAqIAqEBiQKHAIcBhwKHA2YEZAhkCYQIfQZ0C0QAXU5cAn0HfQh0DIgDgwF8CBsAfQl8CXwCawVzSXwHfAFrAnKFfAd8AWsCclZ8CWQKawRyVnQNZAt8CYMCfQl0BnQOfAmDAYMBfQmIAqAPfAmhAX0KZAx9C3wGfAeDAUQAXQx9DHwMZAx1AXJzfAx8ChkAfQsBAG4BcWd8C2QMdQByewEAZA1TAHwLoBBkDnQRfAmDAaECAgABAFMAcTdkDVMAKQ9h5QkAAFJldHVybiBhIHRpbWUgZGVsdGEgYWNjb3JkaW5nIHRvIHRoZSBydWxlcyBvZiB0aGUgZ2l2ZW4gbG9jYWxlLgoKICAgID4+PiBmb3JtYXRfdGltZWRlbHRhKHRpbWVkZWx0YSh3ZWVrcz0xMiksIGxvY2FsZT0nZW5fVVMnKQogICAgdSczIG1vbnRocycKICAgID4+PiBmb3JtYXRfdGltZWRlbHRhKHRpbWVkZWx0YShzZWNvbmRzPTEpLCBsb2NhbGU9J2VzJykKICAgIHUnMSBzZWd1bmRvJwoKICAgIFRoZSBncmFudWxhcml0eSBwYXJhbWV0ZXIgY2FuIGJlIHByb3ZpZGVkIHRvIGFsdGVyIHRoZSBsb3dlc3QgdW5pdAogICAgcHJlc2VudGVkLCB3aGljaCBkZWZhdWx0cyB0byBhIHNlY29uZC4KCiAgICA+Pj4gZm9ybWF0X3RpbWVkZWx0YSh0aW1lZGVsdGEoaG91cnM9MyksIGdyYW51bGFyaXR5PSdkYXknLAogICAgLi4uICAgICAgICAgICAgICAgICAgbG9jYWxlPSdlbl9VUycpCiAgICB1JzEgZGF5JwoKICAgIFRoZSB0aHJlc2hvbGQgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGRldGVybWluZSBhdCB3aGljaCB2YWx1ZSB0aGUKICAgIHByZXNlbnRhdGlvbiBzd2l0Y2hlcyB0byB0aGUgbmV4dCBoaWdoZXIgdW5pdC4gQSBoaWdoZXIgdGhyZXNob2xkIGZhY3RvcgogICAgbWVhbnMgdGhlIHByZXNlbnRhdGlvbiB3aWxsIHN3aXRjaCBsYXRlci4gRm9yIGV4YW1wbGU6CgogICAgPj4+IGZvcm1hdF90aW1lZGVsdGEodGltZWRlbHRhKGhvdXJzPTIzKSwgdGhyZXNob2xkPTAuOSwgbG9jYWxlPSdlbl9VUycpCiAgICB1JzEgZGF5JwogICAgPj4+IGZvcm1hdF90aW1lZGVsdGEodGltZWRlbHRhKGhvdXJzPTIzKSwgdGhyZXNob2xkPTEuMSwgbG9jYWxlPSdlbl9VUycpCiAgICB1JzIzIGhvdXJzJwoKICAgIEluIGFkZGl0aW9uIGRpcmVjdGlvbmFsIGluZm9ybWF0aW9uIGNhbiBiZSBwcm92aWRlZCB0aGF0IGluZm9ybXMKICAgIHRoZSB1c2VyIGlmIHRoZSBkYXRlIGlzIGluIHRoZSBwYXN0IG9yIGluIHRoZSBmdXR1cmU6CgogICAgPj4+IGZvcm1hdF90aW1lZGVsdGEodGltZWRlbHRhKGhvdXJzPTEpLCBhZGRfZGlyZWN0aW9uPVRydWUsIGxvY2FsZT0nZW4nKQogICAgdSdpbiAxIGhvdXInCiAgICA+Pj4gZm9ybWF0X3RpbWVkZWx0YSh0aW1lZGVsdGEoaG91cnM9LTEpLCBhZGRfZGlyZWN0aW9uPVRydWUsIGxvY2FsZT0nZW4nKQogICAgdScxIGhvdXIgYWdvJwoKICAgIFRoZSBmb3JtYXQgcGFyYW1ldGVyIGNvbnRyb2xzIGhvdyBjb21wYWN0IG9yIHdpZGUgdGhlIHByZXNlbnRhdGlvbiBpczoKCiAgICA+Pj4gZm9ybWF0X3RpbWVkZWx0YSh0aW1lZGVsdGEoaG91cnM9MyksIGZvcm1hdD0nc2hvcnQnLCBsb2NhbGU9J2VuJykKICAgIHUnMyBocicKICAgID4+PiBmb3JtYXRfdGltZWRlbHRhKHRpbWVkZWx0YShob3Vycz0zKSwgZm9ybWF0PSduYXJyb3cnLCBsb2NhbGU9J2VuJykKICAgIHUnM2gnCgogICAgOnBhcmFtIGRlbHRhOiBhIGBgdGltZWRlbHRhYGAgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgdGltZSBkaWZmZXJlbmNlIHRvCiAgICAgICAgICAgICAgICAgIGZvcm1hdCwgb3IgdGhlIGRlbHRhIGluIHNlY29uZHMgYXMgYW4gYGludGAgdmFsdWUKICAgIDpwYXJhbSBncmFudWxhcml0eTogZGV0ZXJtaW5lcyB0aGUgc21hbGxlc3QgdW5pdCB0aGF0IHNob3VsZCBiZSBkaXNwbGF5ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgIHRoZSB2YWx1ZSBjYW4gYmUgb25lIG9mICJ5ZWFyIiwgIm1vbnRoIiwgIndlZWsiLCAiZGF5IiwKICAgICAgICAgICAgICAgICAgICAgICAgImhvdXIiLCAibWludXRlIiBvciAic2Vjb25kIgogICAgOnBhcmFtIHRocmVzaG9sZDogZmFjdG9yIHRoYXQgZGV0ZXJtaW5lcyBhdCB3aGljaCBwb2ludCB0aGUgcHJlc2VudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2hlcyB0byB0aGUgbmV4dCBoaWdoZXIgdW5pdAogICAgOnBhcmFtIGFkZF9kaXJlY3Rpb246IGlmIHRoaXMgZmxhZyBpcyBzZXQgdG8gYFRydWVgIHRoZSByZXR1cm4gdmFsdWUg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aGUgbnVtYmVyIG9mIHRoZSB3ZWVrIG9mIGEgZGF5IHdpdGhpbiBhIHBlcmlvZC4gVGhpcyBtYXkgYmUKICAgICAgICB0aGUgd2VlayBudW1iZXIgaW4gYSB5ZWFyIG9yIHRoZSB3ZWVrIG51bWJlciBpbiBhIG1vbnRoLgoKICAgICAgICBVc3VhbGx5IHRoaXMgd2lsbCByZXR1cm4gYSB2YWx1ZSBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gMSwgYnV0IGlmIHRoZQogICAgICAgIGZpcnN0IHdlZWsgb2YgdGhlIHBlcmlvZCBpcyBzbyBzaG9ydCB0aGF0IGl0IGFjdHVhbGx5IGNvdW50cyBhcyB0aGUgbGFzdAogICAgICAgIHdlZWsgb2YgdGhlIHByZXZpb3VzIHBlcmlvZCwgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiAwLgoKICAgICAgICA+Pj4gZm9ybWF0ID0gRGF0ZVRpbWVGb3JtYXQoZGF0ZSgyMDA2LCAxLCA4KSwgTG9jYWxlLnBhcnNlKCdkZV9ERScpKQogICAgICAgID4+PiBmb3JtYXQuZ2V0X3dlZWtfbnVtYmVyKDYpCiAgICAgICAgMQoKICAgICAgICA+Pj4gZm9ybWF0ID0gRGF0ZVRpbWVGb3JtYXQoZGF0ZSgyMDA2LCAxLCA4KSwgTG9jYWxlLnBhcnNlKCdlbl9VUycpKQogICAgICAgID4+PiBmb3JtYXQuZ2V0X3dlZWtfbnVtYmVyKDYpCiAgICAgICAgMgoKICAgICAgICA6cGFyYW0gZGF5X29mX3BlcmlvZDogdGhlIG51bWJlciBvZiB0aGUgZGF5IGluIHRoZSBwZXJpb2QgKHVzdWFsbHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWl0aGVyIHRoZSBkYXkgb2YgbW9udGggb3IgdGhlIGRheSBvZiB5ZWFyKQogICAgICAgIDpwYXJhbSBkYXlfb2Zfd2VlazogdGhlIHdlZWsgZGF5OyBpZiBvbW1pdHRlZCwgdGhlIHdlZWsgZGF5IG9mIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCBkYXRlIGlzIGFzc3VtZWQKICAgICAgICBOci0AAAByOgEA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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 12
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
core.cpython-310.pyc
34.40 KB
lrw-r--r--
2022-08-09 11:56:59
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
dates.cpython-310.pyc
53.97 KB
lrw-r--r--
2022-08-09 11:56:59
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
languages.cpython-310.pyc
3.05 KB
lrw-r--r--
2022-08-09 11:56:59
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
lists.cpython-310.pyc
2.61 KB
lrw-r--r--
2022-08-09 11:56:59
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
localedata.cpython-310.pyc
7.38 KB
lrw-r--r--
2022-08-09 11:56:59
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
numbers.cpython-310.pyc
30.24 KB
lrw-r--r--
2022-08-09 11:56:59
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
plural.cpython-310.pyc
21.57 KB
lrw-r--r--
2022-08-09 11:56:59
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
support.cpython-310.pyc
21.79 KB
lrw-r--r--
2022-08-09 11:56:59
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
units.cpython-310.pyc
8.24 KB
lrw-r--r--
2022-08-09 11:56:59
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
util.cpython-310.pyc
6.92 KB
lrw-r--r--
2022-08-09 11:56:59
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
_compat.cpython-310.pyc
2.09 KB
lrw-r--r--
2022-08-09 11:56:59
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-310.pyc
895 B
lrw-r--r--
2022-08-09 11:56:59
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).