REDROOM
PHP 8.0.30
Path:
Logout
Edit File
Size: 26.91 KB
Close
//opt/alt/python37/lib64/python3.7/site-packages/numpy/core/__pycache__/einsumfunc.cpython-37.pyc
Text
Base64
Qg0NCgAAAADB2EZkzYoAAOMAAAAAAAAAAAAAAAACAAAAQAAAAHOIAAAAZABaAGQBZAJsAW0CWgJtA1oDbQRaBAEAZAFkA2wFbQZaBgEAZAFkBGwHbQhaCG0JWgltCloKAQBkBWQGZwJaC2QHWgxlDWUMgwFaDmQIZAmEAFoPZApkC4QAWhBkDGQNhABaEWQOZA+EAFoSZBBkEYQAWhNkEmQGhABaFGQTZAWEAFoVZBRTACkVeiYKSW1wbGVtZW50YXRpb24gb2Ygb3B0aW1pemVkIGVpbnN1bS4KCukAAAAAKQPaCGRpdmlzaW9u2g9hYnNvbHV0ZV9pbXBvcnTaDnByaW50X2Z1bmN0aW9uKQHaCGNfZWluc3VtKQPaB2FzYXJyYXnaCmFzYW55YXJyYXnaC3Jlc3VsdF90eXBl2gZlaW5zdW3aC2VpbnN1bV9wYXRoWjRhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYwIAAAAAAAAABAAAAAQAAABDAAAAcyIAAABkAX0CeBh8AEQAXRB9A3wCfAF8AxkAOQB9AnEKVwB8AlMAKQJhoAEAAAogICAgQ29tcHV0ZXMgdGhlIHByb2R1Y3Qgb2YgdGhlIGVsZW1lbnRzIGluIGluZGljZXMgYmFzZWQgb24gdGhlIGRpY3Rpb25hcnkKICAgIGlkeF9kaWN0LgoKICAgIFBhcmFtZXRlcnMKICAgIC0tLS0tLS0tLS0KICAgIGluZGljZXMgOiBpdGVyYWJsZQogICAgICAgIEluZGljZXMgdG8gYmFzZSB0aGUgcHJvZHVjdCBvbi4KICAgIGlkeF9kaWN0IDogZGljdGlvbmFyeQogICAgICAgIERpY3Rpb25hcnkgb2YgaW5kZXggc2l6ZXMKCiAgICBSZXR1cm5zCiAgICAtLS0tLS0tCiAgICByZXQgOiBpbnQKICAgICAgICBUaGUgcmVzdWx0aW5nIHByb2R1Y3QuCgogICAgRXhhbXBsZXMKICAgIC0tLS0tLS0tCiAgICA+Pj4gX2NvbXB1dGVfc2l6ZV9ieV9kaWN0KCdhYmJjJywgeydhJzogMiwgJ2InOjMsICdjJzo1fSkKICAgIDkwCgogICAg6QEAAACpACkE2gdpbmRpY2Vz2ghpZHhfZGljdNoDcmV02gFpcgwAAAByDAAAAPpIL29wdC9hbHQvcHl0aG9uMzcvbGliNjQvcHl0aG9uMy43L3NpdGUtcGFja2FnZXMvbnVtcHkvY29yZS9laW5zdW1mdW5jLnB52hVfY29tcHV0ZV9zaXplX2J5X2RpY3QQAAAAcwgAAAAAFwQBCgEQAXISAAAAYwMAAAAAAAAACgAAAAQAAABDAAAAc3IAAAB0AIMAfQN8AqABoQB9BGcAfQV4OHQCfAGDAUQAXSxcAn0GfQd8BnwAawZyNnwDfAdPAH0DcRx8BaADfAehAQEAfAR8B08AfQRxHFcAfAR8A0AAfQh8A3wIGAB9CXwFoAN8CKEBAQB8CHwFfAl8A2YEUwApAWEKBQAACiAgICBGaW5kcyB0aGUgY29udHJhY3Rpb24gZm9yIGEgZ2l2ZW4gc2V0IG9mIGlucHV0IGFuZCBvdXRwdXQgc2V0cy4KCiAgICBQYXJhbWV0ZXJzCiAgICAtLS0tLS0tLS0tCiAgICBwb3NpdGlvbnMgOiBpdGVyYWJsZQogICAgICAgIEludGVnZXIgcG9zaXRpb25zIG9mIHRlcm1zIHVzZWQgaW4gdGhlIGNvbnRyYWN0aW9uLgogICAgaW5wdXRfc2V0cyA6IGxpc3QKICAgICAgICBMaXN0IG9mIHNldHMgdGhhdCByZXByZXNlbnQgdGhlIGxocyBzaWRlIG9mIHRoZSBlaW5zdW0gc3Vic2NyaXB0CiAgICBvdXRwdXRfc2V0IDogc2V0CiAgICAgICAgU2V0IHRoYXQgcmVwcmVzZW50cyB0aGUgcmhzIHNpZGUgb2YgdGhlIG92ZXJhbGwgZWluc3VtIHN1YnNjcmlwdAoKICAgIFJldHVybnMKICAgIC0tLS0tLS0KICAgIG5ld19yZXN1bHQgOiBzZXQKICAgICAgICBUaGUgaW5kaWNlcyBvZiB0aGUgcmVzdWx0aW5nIGNvbnRyYWN0aW9uCiAgICByZW1haW5pbmcgOiBsaXN0CiAgICAgICAgTGlzdCBvZiBzZXRzIHRoYXQgaGF2ZSBub3QgYmVlbiBjb250cmFjdGVkLCB0aGUgbmV3IHNldCBpcyBhcHBlbmRlZCB0bwogICAgICAgIHRoZSBlbmQgb2YgdGhpcyBsaXN0CiAgICBpZHhfcmVtb3ZlZCA6IHNldAogICAgICAgIEluZGljZXMgcmVtb3ZlZCBmcm9tIHRoZSBlbnRpcmUgY29udHJhY3Rpb24KICAgIGlkeF9jb250cmFjdGlvbiA6IHNldAogICAgICAgIFRoZSBpbmRpY2VzIHVzZWQgaW4gdGhlIGN1cnJlbnQgY29udHJhY3Rpb24KCiAgICBFeGFtcGxlcwogICAgLS0tLS0tLS0KCiAgICAjIEEgc2ltcGxlIGRvdCBwcm9kdWN0IHRlc3QgY2FzZQogICAgPj4+IHBvcyA9ICgwLCAxKQogICAgPj4+IGlzZXRzID0gW3NldCgnYWInKSwgc2V0KCdiYycpXQogICAgPj4+IG9zZXQgPSBzZXQoJ2FjJykKICAgID4+PiBfZmluZF9jb250cmFjdGlvbihwb3MsIGlzZXRzLCBvc2V0KQogICAgKHsnYScsICdjJ30sIFt7J2EnLCAnYyd9XSwgeydiJ30sIHsnYScsICdiJywgJ2MnfSkKCiAgICAjIEEgbW9yZSBjb21wbGV4IGNhc2Ugd2l0aCBhZGRpdGlvbmFsIHRlcm1zIGluIHRoZSBjb250cmFjdGlvbgogICAgPj4+IHBvcyA9ICgwLCAyKQogICAgPj4+IGlzZXRzID0gW3NldCgnYWJkJyksIHNldCgnYWMnKSwgc2V0KCdiZGMnKV0KICAgID4+PiBvc2V0ID0gc2V0KCdhYycpCiAgICA+Pj4gX2ZpbmRfY29udHJhY3Rpb24ocG9zLCBpc2V0cywgb3NldCkKICAgICh7J2EnLCAnYyd9LCBbeydhJywgJ2MnfSwgeydhJywgJ2MnfV0sIHsnYicsICdkJ30sIHsnYScsICdiJywgJ2MnLCAnZCd9KQogICAgKQTaA3NldNoEY29wedoJZW51bWVyYXRl2gZhcHBlbmQpCtoJcG9zaXRpb25z2gppbnB1dF9zZXRz2gpvdXRwdXRfc2V02gxpZHhfY29udHJhY3RaCmlkeF9yZW1haW7aCXJlbWFpbmluZ9oDaW5k2gV2YWx1ZdoKbmV3X3Jlc3VsdNoLaWR4X3JlbW92ZWRyDAAAAHIMAAAAchEAAADaEV9maW5kX2NvbnRyYWN0aW9uLQAAAHMYAAAAACsGAQgBBAESAQgBCgIKAQwCCAEIAQoCciAAAABjBAAAAAAAAAAYAAAACAAAAEMAAABzPAEAAGQBZwB8AGYDZwF9BHj2dAB0AXwAgwFkAhgAgwFEAF3ifQVnAH0GZwB9B3hGdAB0AXwAgwF8BRgAgwFEAF0yfQh4LHQAfAhkAhcAdAF8AIMBfAUYAIMCRABdEn0JfAegAnwIfAlmAqEBAQBxWFcAcTxXAHiIfAREAF2AfQp8ClwDfQt9DH0NeHB8B0QAXWh9DnQDfA58DXwBgwN9D3wPXAR9EH0RfRJ9E3QEfBB8AoMCfRR8FHwDawRyvHGMdAR8E3wCgwJ9FXwSctJ8FWQDOQB9FXwVfAs3AH0VfAx8DmcBFwB9FnwGoAJ8FXwWfBFmA6EBAQBxjFcAcXhXAHwGfQRxHlcAdAF8BIMBZAFrApABciR0BXQAdAF8AIMBgwGDAWcBUwB0BnwEZARkBYQAZAaNAmQCGQB9F3wXUwApB2GnAwAACiAgICBDb21wdXRlcyBhbGwgcG9zc2libGUgcGFpciBjb250cmFjdGlvbnMsIHNpZXZlcyB0aGUgcmVzdWx0cyBiYXNlZAogICAgb24gYGBtZW1vcnlfbGltaXRgYCBhbmQgcmV0dXJucyB0aGUgbG93ZXN0IGNvc3QgcGF0aC4gVGhpcyBhbGdvcml0aG0KICAgIHNjYWxlcyBmYWN0b3JpYWwgd2l0aCByZXNwZWN0IHRvIHRoZSBlbGVtZW50cyBpbiB0aGUgbGlzdCBgYGlucHV0X3NldHNgYC4KCiAgICBQYXJhbWV0ZXJzCiAgICAtLS0tLS0tLS0tCiAgICBpbnB1dF9zZXRzIDogbGlzdAogICAgICAgIExpc3Qgb2Ygc2V0cyB0aGF0IHJlcHJlc2VudCB0aGUgbGhzIHNpZGUgb2YgdGhlIGVpbnN1bSBzdWJzY3JpcHQKICAgIG91dHB1dF9zZXQgOiBzZXQKICAgICAgICBTZXQgdGhhdCByZXByZXNlbnRzIHRoZSByaHMgc2lkZSBvZiB0aGUgb3ZlcmFsbCBlaW5zdW0gc3Vic2NyaXB0CiAgICBpZHhfZGljdCA6IGRpY3Rpb25hcnkKICAgICAgICBEaWN0aW9uYXJ5IG9mIGluZGV4IHNpemVzCiAgICBtZW1vcnlfbGltaXQgOiBpbnQKICAgICAgICBUaGUgbWF4aW11bSBudW1iZXIgb2YgZWxlbWVudHMgaW4gYSB0ZW1wb3JhcnkgYXJyYXkKCiAgICBSZXR1cm5zCiAgICAtLS0tLS0tCiAgICBwYXRoIDogbGlzdAogICAgICAgIFRoZSBvcHRpbWFsIGNvbnRyYWN0aW9uIG9yZGVyIHdpdGhpbiB0aGUgbWVtb3J5IGxpbWl0IGNvbnN0cmFpbnQuCgogICAgRXhhbXBsZXMKICAgIC0tLS0tLS0tCiAgICA+Pj4gaXNldHMgPSBbc2V0KCdhYmQnKSwgc2V0KCdhYycpLCBzZXQoJ2JkYycpXQogICAgPj4+IG9zZXQgPSBzZXQoJycpCiAgICA+Pj4gaWR4X3NpemVzID0geydhJzogMSwgJ2InOjIsICdjJzozLCAnZCc6NH0KICAgID4+PiBfcGF0aF9fb3B0aW1hbF9wYXRoKGlzZXRzLCBvc2V0LCBpZHhfc2l6ZXMsIDUwMDApCiAgICBbKDAsIDIpLCAoMCwgMSldCiAgICByAQAAAHILAAAA6QIAAABjAQAAAAAAAAABAAAAAgAAAFMAAABzCAAAAHwAZAEZAFMAKQJOcgEAAAByDAAAACkB2gF4cgwAAAByDAAAAHIRAAAA2gg8bGFtYmRhPrAAAADzAAAAAHofX29wdGltYWxfcGF0aC48bG9jYWxzPi48bGFtYmRhPikB2gNrZXkpB9oFcmFuZ2XaA2xlbnIWAAAAciAAAAByEgAAANoFdHVwbGXaA21pbikYchgAAAByGQAAAHIOAAAA2gxtZW1vcnlfbGltaXRaDGZ1bGxfcmVzdWx0c9oJaXRlcmF0aW9uWgxpdGVyX3Jlc3VsdHPaCWNvbWJfaXRlcnIiAAAA2gF52gRjdXJy2gRjb3N0chcAAAByGwAAAFoDY29uWgRjb250ch4AAADaDm5ld19pbnB1dF9zZXRzch8AAAByGgAAAFoIbmV3X3NpemVaCG5ld19jb3N02gduZXdfcG9z2gRwYXRocgwAAAByDAAAAHIRAAAA2g1fb3B0aW1hbF9wYXRoaQAAAHM0AAAAAB8MARYBBAMEARYBHAEWAgoBCgEKAwwBDAMKAQgBAgMKAQQBCAMIAQoBGAMIAw4BEgIUAXIzAAAAYwQAAAAAAAAAFAAAAAcAAABDAAAAcywBAAB0AHwAgwFkAWsCchJkAmcBUwBnAH0EkAF4DnQBdAB8AIMBZAEYAIMBRABd+n0FZwB9BmcAfQd4PnQBdAB8AIMBgwFEAF0ufQh4KHQBfAhkARcAdAB8AIMBgwJEAF0SfQl8B6ACfAh8CWYCoQEBAHFcVwBxRFcAeGJ8B0QAXVp9CnQDfAp8AHwBgwN9C3wLXAR9DH0NfQ59D3QEfAx8AoMCfANrBHKocXx0BHwOfAKDAn0QdAR8D3wCgwJ9EXwQCwB8EWYCfRJ8BqACfBJ8CnwNZwOhAQEAcXxXAHQAfAaDAWQDawJy/nwEoAJ0BXQBdAB8AIMBgwGDAaEBAQBQAHQGfAZkBGQFhABkBo0CfRN8BKACfBNkARkAoQEBAHwTZAcZAH0AcSpXAHwEUwApCGG1BAAACiAgICBGaW5kcyB0aGUgcGF0aCBieSBjb250cmFjdGluZyB0aGUgYmVzdCBwYWlyIHVudGlsIHRoZSBpbnB1dCBsaXN0IGlzCiAgICBleGhhdXN0ZWQuIFRoZSBiZXN0IHBhaXIgaXMgZm91bmQgYnkgbWluaW1pemluZyB0aGUgdHVwbGUKICAgIGBgKC1wcm9kKGluZGljZXNfcmVtb3ZlZCksIGNvc3QpYGAuICBXaGF0IHRoaXMgYW1vdW50cyB0byBpcyBwcmlvcml0aXppbmcKICAgIG1hdHJpeCBtdWx0aXBsaWNhdGlvbiBvciBpbm5lciBwcm9kdWN0IG9wZXJhdGlvbnMsIHRoZW4gSGFkYW1hcmQgbGlrZQogICAgb3BlcmF0aW9ucywgYW5kIGZpbmFsbHkgb3V0ZXIgb3BlcmF0aW9ucy4gT3V0ZXIgcHJvZHVjdHMgYXJlIGxpbWl0ZWQgYnkKICAgIGBgbWVtb3J5X2xpbWl0YGAuIFRoaXMgYWxnb3JpdGhtIHNjYWxlcyBjdWJpY2FsbHkgd2l0aCByZXNwZWN0IHRvIHRoZQogICAgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBsaXN0IGBgaW5wdXRfc2V0c2BgLgoKICAgIFBhcmFtZXRlcnMKICAgIC0tLS0tLS0tLS0KICAgIGlucHV0X3NldHMgOiBsaXN0CiAgICAgICAgTGlzdCBvZiBzZXRzIHRoYXQgcmVwcmVzZW50IHRoZSBsaHMgc2lkZSBvZiB0aGUgZWluc3VtIHN1YnNjcmlwdAogICAgb3V0cHV0X3NldCA6IHNldAogICAgICAgIFNldCB0aGF0IHJlcHJlc2VudHMgdGhlIHJocyBzaWRlIG9mIHRoZSBvdmVyYWxsIGVpbnN1bSBzdWJzY3JpcHQKICAgIGlkeF9kaWN0IDogZGljdGlvbmFyeQogICAgICAgIERpY3Rpb25hcnkgb2YgaW5kZXggc2l6ZXMKICAgIG1lbW9yeV9saW1pdF9saW1pdCA6IGludAogICAgICAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiBlbGVtZW50cyBpbiBhIHRlbXBvcmFyeSBhcnJheQoKICAgIFJldHVybnMKICAgIC0tLS0tLS0KICAgIHBhdGggOiBsaXN0CiAgICAgICAgVGhlIGdyZWVkeSBjb250cmFjdGlvbiBvcmRlciB3aXRoaW4gdGhlIG1lbW9yeSBsaW1pdCBjb25zdHJhaW50LgoKICAgIEV4YW1wbGVzCiAgICAtLS0tLS0tLQogICAgPj4+IGlzZXRzID0gW3NldCgnYWJkJyksIHNldCgnYWMnKSwgc2V0KCdiZGMnKV0KICAgID4+PiBvc2V0ID0gc2V0KCcnKQogICAgPj4+IGlkeF9zaXplcyA9IHsnYSc6IDEsICdiJzoyLCAnYyc6MywgJ2QnOjR9CiAgICA+Pj4gX3BhdGhfX2dyZWVkeV9wYXRoKGlzZXRzLCBvc2V0LCBpZHhfc2l6ZXMsIDUwMDApCiAgICBbKDAsIDIpLCAoMCwgMSldCiAgICByCwAAACkBcgEAAAByAQAAAGMBAAAAAAAAAAEAAAACAAAAUwAAAHMIAAAAfABkARkAUwApAk5yAQAAAHIMAAAAKQFyIgAAAHIMAAAAcgwAAAByEQAAAHIjAAAA/AAAAHIkAAAAeh5fZ3JlZWR5X3BhdGguPGxvY2Fscz4uPGxhbWJkYT4pAXIlAAAAciEAAAApB3InAAAAciYAAAByFgAAAHIgAAAAchIAAAByKAAAAHIpAAAAKRRyGAAAAHIZAAAAcg4AAAByKgAAAHIyAAAAcisAAABaEWl0ZXJhdGlvbl9yZXN1bHRzciwAAAByIgAAAHItAAAAchcAAADaCGNvbnRyYWN02gppZHhfcmVzdWx0cjAAAAByHwAAAHIaAAAAWgxyZW1vdmVkX3NpemVyLwAAANoEc29ydNoEYmVzdHIMAAAAcgwAAAByEQAAANoMX2dyZWVkeV9wYXRotAAAAHMyAAAAACMMAQYCBAEYAQQBBAMSARgBFgIKAwwBDAMOAQIDCgEKAQoDFAMMARYBAgMQAQ4BDAJyOAAAAGMBAAAAAAAAABwAAAAGAAAAQwAAAHPmBAAAdAB8AIMBZAFrAnIUdAFkAoMBggF0AnwAZAEZAHQDgwJyeHwAZAEZAKAEZANkBKECfQFkBWQGhAB8AGQHZAiFAhkARACDAX0AeCp8AUQAXSJ9AnwCZAlrBnJccU58AnQFawdyTnQBZAp8AhYAgwGCAXFOVwCQAW5AdAZ8AIMBfQNnAH0EZwB9BXg4dAd0AHwAgwFkCxoAgwFEAF0kfQZ8BKAIfAOgCWQBoQGhAQEAfAWgCHwDoAlkAaEBoQEBAHGaVwB0AHwDgwFy0nwDZAwZAG4CZAh9B2QNZAaEAHwERACDAX0AZAR9AXQAfAWDAWQHGAB9CHhqdAp8BYMBRABdXlwCfQl9CnhEfApEAF08fQJ8AnQLawiQAXIkfAFkDjcAfQFuInQCfAJ0DIMCkAFyPnwBdAV8AhkANwB9AW4IdA1kD4MBggGQAXEMVwB8CXwIawNy/nwBZBA3AH0Bcf5XAHwHZAhrCZABcrh8AWQRNwB9AXhEfAdEAF08fQJ8AnQLawiQAXKQfAFkDjcAfQFuInQCfAJ0DIMCkAFyqnwBdAV8AhkANwB9AW4IdA1kD4MBggGQAXF4VwBkEnwBawaQAXPMZBN8AWsGkAJyCHwBoA5kEqEBZAdrBJABcOh8AaAOZBOhAWQHawR9C3wLkAJzAHwBoA5kEaEBZAdrA5ACcgh0AWQUgwGCAWQVfAFrBpAEciJ8AaAEZBVkBKECoARkEGQEoQKgBGQRZAShAn0MdAZ0D3QQfAyDARgAgwF9DWQEoBF8DaEBfQ5kAX0PZBF8AWsGkAJydHwBoBJkEaEBXAJ9EH0RfBCgEmQQoQF9EmQWfRNuDnwBoBJkEKEBfRJkF30TeNp0CnwSgwFEAF3OXAJ9CX0KZBV8CmsGkAJyjHwKoA5kFaEBZBhrA5ACc758CqAOZA6hAWQHawOQAnLGdAFkGYMBggF8AHwJGQBqE2QaawKQAnLcZAF9FG4gdBR8AHwJGQBqFWQHgwJ9FHwUdAB8CoMBZBgYADgAfRR8FHwPawSQA3IKfBR9D3wUZAFrAJADch50AWQbgwGCAW46fBRkAWsCkANyOnwKoARkDmQEoQJ8EnwJPABuHnwOfBQLAGQIhQIZAH0VfAqgBGQOfBWhAnwSfAk8AJACcYxXAGQQoBF8EqEBfQF8D2QBawKQA3J4ZAR9Fm4OfA58DwsAZAiFAhkAfRZ8E5ADcqJ8AWQRfBGgBGQOfBahAhcANwB9AW6AZAR9F3wBoARkEGQEoQJ9GHhEdBZ0EHwYgwGDAUQAXTR9AnwCdAVrB5ADctp0AWQKfAIWAIMBggF8GKAOfAKhAWQHawKQA3LAfBd8AjcAfReQA3HAVwBkBKARdBZ0EHwXgwF0EHwWgwEYAIMBoQF9GXwBZBF8FhcAfBkXADcAfQFkEXwBawaQBHI8fAGgEmQRoQFcAn0afRduWnwBfRp8AaAEZBBkBKECfRhkBH0XeER0FnQQfBiDAYMBRABdNH0CfAJ0BWsHkARyeHQBZAp8AhYAgwGCAXwYoA58AqEBZAdrApAEcl58F3wCNwB9F5AEcV5XAHgkfBdEAF0cfRt8G3waaweQBHKcdAFkHHwbFgCDAYIBkARxnFcAdAB8GqASZBChAYMBdAB8AIMBawOQBHLcdAFkHYMBggF8GnwXfABmA1MAKR5hagIAAAogICAgQSByZXByb2R1Y3Rpb24gb2YgZWluc3VtIGMgc2lkZSBlaW5zdW0gcGFyc2luZyBpbiBweXRob24uCgogICAgUmV0dXJucwogICAgLS0tLS0tLQogICAgaW5wdXRfc3RyaW5ncyA6IHN0cgogICAgICAgIFBhcnNlZCBpbnB1dCBzdHJpbmdzCiAgICBvdXRwdXRfc3RyaW5nIDogc3RyCiAgICAgICAgUGFyc2VkIG91dHB1dCBzdHJpbmcKICAgIG9wZXJhbmRzIDogbGlzdCBvZiBhcnJheV9saWtlCiAgICAgICAgVGhlIG9wZXJhbmRzIHRvIHVzZSBpbiB0aGUgbnVtcHkgY29udHJhY3Rpb24KCiAgICBFeGFtcGxlcwogICAgLS0tLS0tLS0KICAgIFRoZSBvcGVyYW5kIGxpc3QgaXMgc2ltcGxpZmllZCB0byByZWR1Y2UgcHJpbnRpbmc6CgogICAgPj4+IGEgPSBucC5yYW5kb20ucmFuZCg0LCA0KQogICAgPj4+IGIgPSBucC5yYW5kb20ucmFuZCg0LCA0LCA0KQogICAgPj4+IF9fcGFyc2VfZWluc3VtX2lucHV0KCgnLi4uYSwuLi5hLT4uLi4nLCBhLCBiKSkKICAgICgnemEseHphJywgJ3h6JywgW2EsIGJdKQoKICAgID4+PiBfX3BhcnNlX2VpbnN1bV9pbnB1dCgoYSwgW0VsbGlwc2lzLCAwXSwgYiwgW0VsbGlwc2lzLCAwXSkpCiAgICAoJ3phLHh6YScsICd4eicsIFthLCBiXSkKICAgIHIBAAAAehFObyBpbnB1dCBvcGVyYW5kc/oBINoAYwEAAAAAAAAAAgAAAAQAAABTAAAAcxQAAABnAHwAXQx9AXQAfAGDAZECcQRTAHIMAAAAKQFyBwAAACkC2gIuMNoBdnIMAAAAcgwAAAByEQAAAPoKPGxpc3Rjb21wPiIBAABzAgAAAAYAeidfcGFyc2VfZWluc3VtX2lucHV0Ljxsb2NhbHM+LjxsaXN0Y29tcD5yCwAAAE56BC4sLT56I0NoYXJhY3RlciAlcyBpcyBub3QgYSB2YWxpZCBzeW1ib2wuciEAAADp/////2MBAAAAAAAAAAIAAAAEAAAAUwAAAHMUAAAAZwB8AF0MfQF0AHwBgwGRAnEEUwByDAAAACkBcgcAAAApAnI7AAAAcjwAAAByDAAAAHIMAAAAchEAAAByPQAAADQBAABzAgAAAAYAegMuLi56PUZvciB0aGlzIGlucHV0IHR5cGUgbGlzdHMgbXVzdCBjb250YWluIGVpdGhlciBpbnQgb3IgRWxsaXBzaXP6ASx6Ai0++gEt+gE+eiVTdWJzY3JpcHRzIGNhbiBvbmx5IGNvbnRhaW4gb25lICctPicu2gEuVEbpAwAAAHoRSW52YWxpZCBFbGxpcHNlcy5yDAAAAHoeRWxsaXBzZXMgbGVuZ3RocyBkbyBub3QgbWF0Y2guei9PdXRwdXQgY2hhcmFjdGVyICVzIGRpZCBub3QgYXBwZWFyIGluIHRoZSBpbnB1dHpETnVtYmVyIG9mIGVpbnN1bSBzdWJzY3JpcHRzIG11c3QgYmUgZXF1YWwgdG8gdGhlIG51bWJlciBvZiBvcGVyYW5kcy4pF3InAAAA2gpWYWx1ZUVycm9y2gppc2luc3RhbmNl2gNzdHLaB3JlcGxhY2XaDmVpbnN1bV9zeW1ib2xz2gRsaXN0ciYAAAByFgAAANoDcG9wchUAAADaCEVsbGlwc2lz2gNpbnTaCVR5cGVFcnJvctoFY291bnTaEmVpbnN1bV9zeW1ib2xzX3NldHITAAAA2gRqb2lu2gVzcGxpdNoFc2hhcGXaA21heNoEbmRpbdoGc29ydGVkKRzaCG9wZXJhbmRz2gpzdWJzY3JpcHRz2gFz2gx0bXBfb3BlcmFuZHNaDG9wZXJhbmRfbGlzdFoOc3Vic2NyaXB0X2xpc3TaAXBaC291dHB1dF9saXN02gRsYXN02gNudW3aA3N1YtoHaW52YWxpZNoEdXNlZFoGdW51c2VkWgxlbGxpcHNlX2luZHPaB2xvbmdlc3RaCWlucHV0X3RtcFoKb3V0cHV0X3N1YloQc3BsaXRfc3Vic2NyaXB0c1oHb3V0X3N1YloNZWxsaXBzZV9jb3VudFoIcmVwX2luZHNaC291dF9lbGxpcHNl2hBvdXRwdXRfc3Vic2NyaXB0Wg50bXBfc3Vic2NyaXB0c1oLbm9ybWFsX2luZHPaEGlucHV0X3N1YnNjcmlwdHPaBGNoYXJyDAAAAHIMAAAAchEAAADaE19wYXJzZV9laW5zdW1faW5wdXQDAQAAc8oAAAAAGgwBCAIOARABFgMKAQgBAgEIARQDCAEEAQQBFgEQARQCFAEOAQQBDAESAQoBCgEKAQwBDgIOAggBDAIKAQgBCgEKAQoBDAEOAg4DFAEeARYBCAMKARwBEAEKAQQCCgEOAQoBBgIKAQQCEgEKASABCAMQAQYCEAEQAgoBBAIKAQoBCgESAg4BFgIKAQoBBgIOAgYBFgMEAQwBEgEKAQwBEAEOAQwBDgIQAwoBEAIEAgwBBAESAQoBDAEQAQ4DCgEKAQQBDgMYAQgDcmQAAABjAAAAAAAAAAA1AAAABwAAAA8AAABzQAUAAGQBZAJnAokBhwFmAWQDZASECHwBoAChAEQAgwF9AnQBfAKDAXIydAJkBXwCFgCDAYIBfAGgA2QBZAahAn0DfANkB2sIckpkCH0DfANkCWsIclZkBn0DZAl9BHwDZAZrCHPWdAR8A3QFgwJybm5odAF8A4MBcoR8A2QKGQBkC2sCcoRuUnQBfAODAWQMawJyxnQEfANkChkAdAWDAnLGdAR8A2QNGQB0BnQHZgKDAnLGdAZ8A2QNGQCDAX0EfANkChkAfQNuEHQCZA50BXwDgwEWAIMBggF8AaADZAJkBqECfQV0CHwAgwFcA30GfQd9AHwGZA8XAHwHFwB9CHwGoAlkEKEBfQlkEWQEhAB8CUQAgwF9CnQKfAeDAX0LdAp8BqALZBBkEqECgwF9DGkAiQB4lHQMfAmDAUQAXYhcAn0NfQ58AHwNGQBqDX0PdAF8D4MBdAF8DoMBawOQAXJudA5kE3wGfA0ZAHwNgwOCAXhQdAx8DoMBRABdRFwCfRB9EXwPfBAZAH0SfBGIAKAPoQBrBpABcrKIAHwRGQB8EmsDkAFyunQOZBR8EXwNgwOCAW4IfBKIAHwRPACQAXF4VwCQAXE6VwBnAH0TeCR8CXwHZwEXAEQAXRZ9DnwToBB0EXwOiACDAqEBAQCQAXHWVwB0EnwTgwF9FHwEZAlrCJACcgh8FH0VbgR8BH0VdBF8DIgAgwJ9FnwGoAtkEGQSoQJ9F3QSdAF8CYMBZA0YAGQNgwJ9GHQBfBeDAXQBdAp8F4MBgwEYAJACclJ8GGQMOQB9GHwWfBg5AH0WfANkBmsIkAJzfHQBfAmDAWQVawaQAnN8fAx8C2sCkAJykHQTdBR0AXwJgwGDAYMBZwF9GW5kfANkCGsCkAJytHQVfBV8FIMCfRV0FnwKfAuIAHwVgwR9GW5AfANkFmsCkAJyznQXfAp8C4gAfBWDBH0ZbiZ8A2QKGQBkC2sCkAJy6nwDZA1kCYUCGQB9GW4KdBhkF3wDgwKCAWcAZwBnAGcAZgRcBH0afRt9E30ckAF4JHQMfBmDAUQAkAFdFlwCfRB9HXQTdBl0GnwdgwFkB2QYjQKDAX0ddBt8HXwKfAuDA30efB5cBH0ffQp9IH0hdBF8IYgAgwJ9InwgkANyYnwiZAw5AH0ifBqgEHwioQEBAHwboBB0AXwhgwGhAQEAfBOgEHQRfB+IAIMCoQEBAGcAfSN4HnwdRABdFn0kfCOgEHwJoAN8JKEBoQEBAJADcZRXAHwQdAF8GYMBGABkGWsCkANyxnwHfSVuKocAZgFkGmQEhAh8H0QAgwF9JmQSoBxkG2QEhAB0GXwmgwFEAIMBoQF9JXwJoBB8JaEBAQBkEKAcfCOhAWQPFwB8JRcAfSd8HXwgfCd8CWQJZAmFAhkAZgR9KHwcoBB8KKEBAQCQA3EUVwB0HXwagwFkDRcAfSl8BZAEckp8AHwcZgJTAHwGZA8XAHwHFwB9KmQcfSt8FnwpGwB9LHQSfBODAX0tZB18KhYAfS58LmQedAF8DIMBFgA3AH0ufC5kH3QSfBuDARYANwB9LnwuZCB8FhYANwB9LnwuZCF8KRYANwB9LnwuZCJ8LBYANwB9LnwuZCN8LRYANwB9LnwuZCQ3AH0ufC5kJXwrFgA3AH0ufC5kJjcAfS54TnQMfByDAUQAXUJcAn0vfSh8KFwEfTB9MX0nfTJkEKAcfDKhAWQPFwB8BxcAfTN8G3wvGQB8J3wzZgN9NHwuZCd8NBYANwB9LpAEcehXAGQLZwF8GRcAfRl8GXwuZgJTACkoYbMRAAAKICAgIGVpbnN1bV9wYXRoKHN1YnNjcmlwdHMsICpvcGVyYW5kcywgb3B0aW1pemU9J2dyZWVkeScpCgogICAgRXZhbHVhdGVzIHRoZSBsb3dlc3QgY29zdCBjb250cmFjdGlvbiBvcmRlciBmb3IgYW4gZWluc3VtIGV4cHJlc3Npb24gYnkKICAgIGNvbnNpZGVyaW5nIHRoZSBjcmVhdGlvbiBvZiBpbnRlcm1lZGlhdGUgYXJyYXlzLgoKICAgIFBhcmFtZXRlcnMKICAgIC0tLS0tLS0tLS0KICAgIHN1YnNjcmlwdHMgOiBzdHIKICAgICAgICBTcGVjaWZpZXMgdGhlIHN1YnNjcmlwdHMgZm9yIHN1bW1hdGlvbi4KICAgICpvcGVyYW5kcyA6IGxpc3Qgb2YgYXJyYXlfbGlrZQogICAgICAgIFRoZXNlIGFyZSB0aGUgYXJyYXlzIGZvciB0aGUgb3BlcmF0aW9uLgogICAgb3B0aW1pemUgOiB7Ym9vbCwgbGlzdCwgdHVwbGUsICdncmVlZHknLCAnb3B0aW1hbCd9CiAgICAgICAgQ2hvb3NlIHRoZSB0eXBlIG9mIHBhdGguIElmIGEgdHVwbGUgaXMgcHJvdmlkZWQsIHRoZSBzZWNvbmQgYXJndW1lbnQgaXMKICAgICAgICBhc3N1bWVkIHRvIGJlIHRoZSBtYXhpbXVtIGludGVybWVkaWF0ZSBzaXplIGNyZWF0ZWQuIElmIG9ubHkgYSBzaW5nbGUKICAgICAgICBhcmd1bWVudCBpcyBwcm92aWRlZCB0aGUgbGFyZ2VzdCBpbnB1dCBvciBvdXRwdXQgYXJyYXkgc2l6ZSBpcyB1c2VkCiAgICAgICAgYXMgYSBtYXhpbXVtIGludGVybWVkaWF0ZSBzaXplLgoKICAgICAgICAqIGlmIGEgbGlzdCBpcyBnaXZlbiB0aGF0IHN0YXJ0cyB3aXRoIGBgZWluc3VtX3BhdGhgYCwgdXNlcyB0aGlzIGFzIHRoZQogICAgICAgICAgY29udHJhY3Rpb24gcGF0aAogICAgICAgICogaWYgRmFsc2Ugbm8gb3B0aW1pemF0aW9uIGlzIHRha2VuCiAgICAgICAgKiBpZiBUcnVlIGRlZmF1bHRzIHRvIHRoZSAnZ3JlZWR5JyBhbGdvcml0aG0KICAgICAgICAqICdvcHRpbWFsJyBBbiBhbGdvcml0aG0gdGhhdCBjb21iaW5hdG9yaWFsbHkgZXhwbG9yZXMgYWxsIHBvc3NpYmxlCiAgICAgICAgICB3YXlzIG9mIGNvbnRyYWN0aW5nIHRoZSBsaXN0ZWQgdGVuc29ycyBhbmQgY2hvb3Nlc3QgdGhlIGxlYXN0IGNvc3RseQogICAgICAgICAgcGF0aC4gU2NhbGVzIGV4cG9uZW50aWFsbHkgd2l0aCB0aGUgbnVtYmVyIG9mIHRlcm1zIGluIHRoZQogICAgICAgICAgY29udHJhY3Rpb24uCiAgICAgICAgKiAnZ3JlZWR5JyBBbiBhbGdvcml0aG0gdGhhdCBjaG9vc2VzIHRoZSBiZXN0IHBhaXIgY29udHJhY3Rpb24KICAgICAgICAgIGF0IGVhY2ggc3RlcC4gRWZmZWN0aXZlbHksIHRoaXMgYWxnb3JpdGhtIHNlYXJjaGVzIHRoZSBsYXJnZXN0IGlubmVyLAogICAgICAgICAgSGFkYW1hcmQsIGFuZCB0aGVuIG91dGVyIHByb2R1Y3RzIGF0IGVhY2ggc3RlcC4gU2NhbGVzIGN1YmljYWxseSB3aXRoCiAgICAgICAgICB0aGUgbnVtYmVyIG9mIHRlcm1zIGluIHRoZSBjb250cmFjdGlvbi4gRXF1aXZhbGVudCB0byB0aGUgJ29wdGltYWwnCiAgICAgICAgICBwYXRoIGZvciBtb3N0IGNvbnRyYWN0aW9ucy4KCiAgICAgICAgRGVmYXVsdCBpcyAnZ3JlZWR5Jy4KCiAgICBSZXR1cm5zCiAgICAtLS0tLS0tCiAgICBwYXRoIDogbGlzdCBvZiB0dXBsZXMKICAgICAgICBBIGxpc3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVpbnN1bSBwYXRoLgogICAgc3RyaW5nX3JlcHIgOiBzdHIKICAgICAgICBBIHByaW50YWJsZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgZWluc3VtIHBhdGguCgogICAgTm90ZXMKICAgIC0tLS0tCiAgICBUaGUgcmVzdWx0aW5nIHBhdGggaW5kaWNhdGVzIHdoaWNoIHRlcm1zIG9mIHRoZSBpbnB1dCBjb250cmFjdGlvbiBzaG91bGQgYmUKICAgIGNvbnRyYWN0ZWQgZmlyc3QsIHRoZSByZXN1bHQgb2YgdGhpcyBjb250cmFjdGlvbiBpcyB0aGVuIGFwcGVuZGVkIHRvIHRoZQogICAgZW5kIG9mIHRoZSBjb250cmFjdGlvbiBsaXN0LiBUaGlzIGxpc3QgY2FuIHRoZW4gYmUgaXRlcmF0ZWQgb3ZlciB1bnRpbCBhbGwKICAgIGludGVybWVkaWF0ZSBjb250cmFjdGlvbnMgYXJlIGNvbXBsZXRlLgoKICAgIFNlZSBBbHNvCiAgICAtLS0tLS0tLQogICAgZWluc3VtLCBsaW5hbGcubXVsdGlfZG90CgogICAgRXhhbXBsZXMKICAgIC0tLS0tLS0tCgogICAgV2UgY2FuIGJlZ2luIHdpdGggYSBjaGFpbiBkb3QgZXhhbXBsZS4gSW4gdGhpcyBjYXNlLCBpdCBpcyBvcHRpbWFsIHRvCiAgICBjb250cmFjdCB0aGUgYGBiYGAgYW5kIGBgY2BgIHRlbnNvcnMgZmlyc3QgYXMgcmVwcnNlbnRlZCBieSB0aGUgZmlyc3QKICAgIGVsZW1lbnQgb2YgdGhlIHBhdGggYGAoMSwgMilgYC4gVGhlIHJlc3VsdGluZyB0ZW5zb3IgaXMgYWRkZWQgdG8gdGhlIGVuZAogICAgb2YgdGhlIGNvbnRyYWN0aW9uIGFuZCB0aGUgcmVtYWluaW5nIGNvbnRyYWN0aW9uIGBgKDAsIDEpYGAgaXMgdGhlbgogICAgY29tcGxldGVkLgoKICAgID4+PiBhID0gbnAucmFuZG9tLnJhbmQoMiwgMikKICAgID4+PiBiID0gbnAucmFuZG9tLnJhbmQoMiwgNSkKICAgID4+PiBjID0gbnAucmFuZG9tLnJhbmQoNSwgMikKICAgID4+PiBwYXRoX2luZm8gPSBucC5laW5zdW1fcGF0aCgnaWosamssa2wtPmlsJywgYSwgYiwgYywgb3B0aW1pemU9J2dyZWVkeScpCiAgICA+Pj4gcHJpbnQocGF0aF9pbmZvWzBdKQogICAgWydlaW5zdW1fcGF0aCcsICgxLCAyKSwgKDAsIDEpXQogICAgPj4+IHByaW50KHBhdGhfaW5mb1sxXSkKICAgICAgQ29tcGxldGUgY29udHJhY3Rpb246ICBpaixqayxrbC0+aWwKICAgICAgICAgICAgIE5haXZlIHNjYWxpbmc6ICA0CiAgICAgICAgIE9wdGltaXplZCBzY2FsaW5nOiAgMwogICAgICAgICAgTmFpdmUgRkxPUCBjb3VudDogIDEuNjAwZSswMgogICAgICBPcHRpbWl6ZWQgRkxPUCBjb3VudDogIDUuNjAwZSswMQogICAgICAgVGhlb3JldGljYWwgc3BlZWR1cDogIDIuODU3CiAgICAgIExhcmdlc3QgaW50ZXJtZWRpYXRlOiAgNC4wMDBlKzAwIGVsZW1lbnRzCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBzY2FsaW5nICAgICAgICAgICAgICAgICAgY3VycmVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAzICAgICAgICAgICAgICAgICAgIGtsLGprLT5qbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWosamwtPmlsCiAgICAgICAzICAgICAgICAgICAgICAgICAgIGpsLGlqLT5pbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWwtPmlsCgoKICAgIEEgbW9yZSBjb21wbGV4IGluZGV4IHRyYW5zZm9ybWF0aW9uIGV4YW1wbGUuCgogICAgPj4+IEkgPSBucC5yYW5kb20ucmFuZCgxMCwgMTAsIDEwLCAxMCkKICAgID4+PiBDID0gbnAucmFuZG9tLnJhbmQoMTAsIDEwKQogICAgPj4+IHBhdGhfaW5mbyA9IG5wLmVpbnN1bV9wYXRoKCdlYSxmYixhYmNkLGdjLGhkLT5lZmdoJywgQywgQywgSSwgQywgQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpbWl6ZT0nZ3JlZWR5JykKCiAgICA+Pj4gcHJpbnQocGF0aF9pbmZvWzBdKQogICAgWydlaW5zdW1fcGF0aCcsICgwLCAyKSwgKDAsIDMpLCAoMCwgMiksICgwLCAxKV0KICAgID4+PiBwcmludChwYXRoX2luZm9bMV0pCiAgICAgIENvbXBsZXRlIGNvbnRyYWN0aW9uOiAgZWEsZmIsYWJjZCxnYyxoZC0+ZWZnaAogICAgICAgICAgICAgTmFpdmUgc2NhbGluZzogIDgKICAgICAgICAgT3B0aW1pemVkIHNjYWxpbmc6ICA1CiAgICAgICAgICBOYWl2ZSBGTE9QIGNvdW50OiAgOC4wMDBlKzA4CiAgICAgIE9wdGltaXplZCBGTE9QIGNvdW50OiAgOC4wMDBlKzA1CiAgICAgICBUaGVvcmV0aWNhbCBzcGVlZHVwOiAgMTAwMC4wMDAKICAgICAgTGFyZ2VzdCBpbnRlcm1lZGlhdGU6ICAxLjAwMGUrMDQgZWxlbWVudHMKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBzY2FsaW5nICAgICAgICAgICAgICAgICAgY3VycmVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAgNSAgICAgICAgICAgICAgIGFi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fA6gB3wAoAB8D6EBoQEBAHHMVwB8BZABcgR8CGQPFwB0A3wHgwFrApABcgR8BnwDZAM8AHQBfAxmAXwOngJ8A44BfRB8AKAHfBChAQEAfg5+EHGuVwB8BZABcjB8BlMAfABkEBkAUwBkDFMAKRFhTSEAAAogICAgZWluc3VtKHN1YnNjcmlwdHMsICpvcGVyYW5kcywgb3V0PU5vbmUsIGR0eXBlPU5vbmUsIG9yZGVyPSdLJywKICAgICAgICAgICBjYXN0aW5nPSdzYWZlJywgb3B0aW1pemU9RmFsc2UpCgogICAgRXZhbHVhdGVzIHRoZSBFaW5zdGVpbiBzdW1tYXRpb24gY29udmVudGlvbiBvbiB0aGUgb3BlcmFuZHMuCgogICAgVXNpbmcgdGhlIEVpbnN0ZWluIHN1bW1hdGlvbiBjb252ZW50aW9uLCBtYW55IGNvbW1vbiBtdWx0aS1kaW1lbnNpb25hbAogICAgYXJyYXkgb3BlcmF0aW9ucyBjYW4gYmUgcmVwcmVzZW50ZWQgaW4gYSBzaW1wbGUgZmFzaGlvbi4gIFRoaXMgZnVuY3Rpb24KICAgIHByb3ZpZGVzIGEgd2F5IHRvIGNvbXB1dGUgc3VjaCBzdW1tYXRpb25zLiBUaGUgYmVzdCB3YXkgdG8gdW5kZXJzdGFuZCB0aGlzCiAgICBmdW5jdGlvbiBpcyB0byB0cnkgdGhlIGV4YW1wbGVzIGJlbG93LCB3aGljaCBzaG93IGhvdyBtYW55IGNvbW1vbiBOdW1QeQogICAgZnVuY3Rpb25zIGNhbiBiZSBpbXBsZW1lbnRlZCBhcyBjYWxscyB0byBgZWluc3VtYC4KCiAgICBQYXJhbWV0ZXJzCiAgICAtLS0tLS0tLS0tCiAgICBzdWJzY3JpcHRzIDogc3RyCiAgICAgICAgU3BlY2lmaWVzIHRoZSBzdWJzY3JpcHRzIGZvciBzdW1tYXRpb24uCiAgICBvcGVyYW5kcyA6IGxpc3Qgb2YgYXJyYXlfbGlrZQogICAgICAgIFRoZXNlIGFyZSB0aGUgYXJyYXlzIGZvciB0aGUgb3BlcmF0aW9uLgogICAgb3V0IDoge25kYXJyYXksIE5vbmV9LCBvcHRpb25hbAogICAgICAgIElmIHByb3ZpZGVkLCB0aGUgY2FsY3VsYXRpb24gaXMgZG9uZSBpbnRvIHRoaXMgYXJyYXkuCiAgICBkdHlwZSA6IHtkYXRhLXR5cGUsIE5vbmV9LCBvcHRpb25hbAogICAgICAgIElmIHByb3ZpZGVkLCBmb3JjZXMgdGhlIGNhbGN1bGF0aW9uIHRvIHVzZSB0aGUgZGF0YSB0eXBlIHNwZWNpZmllZC4KICAgICAgICBOb3RlIHRoYXQgeW91IG1heSBoYXZlIHRvIGFsc28gZ2l2ZSBhIG1vcmUgbGliZXJhbCBgY2FzdGluZ2AKICAgICAgICBwYXJhbWV0ZXIgdG8gYWxsb3cgdGhlIGNvbnZlcnNpb25zLiBEZWZhdWx0IGlzIE5vbmUuCiAgICBvcmRlciA6IHsnQycsICdGJywgJ0EnLCAnSyd9LCBvcHRpb25hbAogICAgICAgIENvbnRyb2xzIHRoZSBtZW1vcnkgbGF5b3V0IG9mIHRoZSBvdXRwdXQuICdDJyBtZWFucyBpdCBzaG91bGQKICAgICAgICBiZSBDIGNvbnRpZ3VvdXMuICdGJyBtZWFucyBpdCBzaG91bGQgYmUgRm9ydHJhbiBjb250aWd1b3VzLAogICAgICAgICdBJyBtZWFucyBpdCBzaG91bGQgYmUgJ0YnIGlmIHRoZSBpbnB1dHMgYXJlIGFsbCAnRicsICdDJyBvdGhlcndpc2UuCiAgICAgICAgJ0snIG1lYW5zIGl0IHNob3VsZCBiZSBhcyBjbG9zZSB0byB0aGUgbGF5b3V0IGFzIHRoZSBpbnB1dHMgYXMKICAgICAgICBpcyBwb3NzaWJsZSwgaW5jbHVkaW5nIGFyYml0cmFyaWx5IHBlcm11dGVkIGF4ZXMuCiAgICAgICAgRGVmYXVsdCBpcyAnSycuCiAgICBjYXN0aW5nIDogeydubycsICdlcXVpdicsICdzYWZlJywgJ3NhbWVfa2luZCcsICd1bnNhZmUnfSwgb3B0aW9uYWwKICAgICAgICBDb250cm9scyB3aGF0IGtpbmQgb2YgZGF0YSBjYXN0aW5nIG1heSBvY2N1ci4gIFNldHRpbmcgdGhpcyB0bwogICAgICAgICd1bnNhZmUnIGlzIG5vdCByZWNvbW1lbmRlZCwgYXMgaXQgY2FuIGFkdmVyc2VseSBhZmZlY3QgYWNjdW11bGF0aW9ucy4KCiAgICAgICAgICAqICdubycgbWVhbnMgdGhlIGRhdGEgdHlwZXMgc2hvdWxkIG5vdCBiZSBjYXN0IGF0IGFsbC4KICAgICAgICAgICogJ2VxdWl2JyBtZWFucyBvbmx5IGJ5dGUtb3JkZXIgY2hhbmdlcyBhcmUgYWxsb3dlZC4KICAgICAgICAgICogJ3NhZmUnIG1lYW5zIG9ubHkgY2FzdHMgd2hpY2ggY2FuIHByZXNlcnZlIHZhbHVlcyBhcmUgYWxsb3dlZC4KICAgICAgICAgICogJ3NhbWVfa2luZCcgbWVhbnMgb25seSBzYWZlIGNhc3RzIG9yIGNhc3RzIHdpdGhpbiBhIGtpbmQsCiAgICAgICAgICAgIGxpa2UgZmxvYXQ2NCB0byBmbG9hdDMyLCBhcmUgYWxsb3dlZC4KICAgICAgICAgICogJ3Vuc2FmZScgbWVhbnMgYW55IGRhdGEgY29udmVyc2lvbnMgbWF5IGJlIGRvbmUuCgogICAgICAgIERlZmF1bHQgaXMgJ3NhZmUnLgogICAgb3B0aW1pemUgOiB7RmFsc2UsIFRydWUsICdncmVlZHknLCAnb3B0aW1hbCd9LCBvcHRpb25hbAogICAgICAgIENvbnRyb2xzIGlmIGludGVybWVkaWF0ZSBvcHRpbWl6YXRpb24gc2hvdWxkIG9jY3VyLiBObyBvcHRpbWl6YXRpb24KICAgICAgICB3aWxsIG9jY3VyIGlmIEZhbHNlIGFuZCBUcnVlIHdpbGwgZGVmYXVsdCB0byB0aGUgJ2dyZWVkeScgYWxnb3JpdGhtLgogICAgICAgIEFsc28gYWNjZXB0cyBhbiBleHBsaWNpdCBjb250cmFjdGlvbiBsaXN0IGZyb20gdGhlIGBgbnAuZWluc3VtX3BhdGhgYAogICAgICAgIGZ1bmN0aW9uLiBTZWUgYGBucC5laW5zdW1fcGF0aGBgIGZvciBtb3JlIGRldGFpbHMuIERlZmF1bHQgaXMgRmFsc2UuCgogICAgUmV0dXJucwogICAgLS0tLS0tLQogICAgb3V0cHV0IDogbmRhcnJheQogICAgICAgIFRoZSBjYWxjdWxhdGlvbiBiYXNlZCBvbiB0aGUgRWluc3RlaW4gc3VtbWF0aW9uIGNvbnZlbnRpb24uCgogICAgU2VlIEFsc28KICAgIC0tLS0tLS0tCiAgICBlaW5zdW1fcGF0aCwgZG90LCBpbm5lciwgb3V0ZXIsIHRlbnNvcmRvdCwgbGluYWxnLm11bHRpX2RvdAoKICAgIE5vdGVzCiAgICAtLS0tLQogICAgLi4gdmVyc2lvbmFkZGVkOjogMS42LjAKCiAgICBUaGUgc3Vic2NyaXB0cyBzdHJpbmcgaXMgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBzdWJzY3JpcHQgbGFiZWxzLAogICAgd2hlcmUgZWFjaCBsYWJlbCByZWZlcnMgdG8gYSBkaW1lbnNpb24gb2YgdGhlIGNvcnJlc3BvbmRpbmcgb3BlcmFuZC4KICAgIFJlcGVhdGVkIHN1YnNjcmlwdHMgbGFiZWxzIGluIG9uZSBvcGVyYW5kIHRha2UgdGhlIGRpYWdvbmFsLiAgRm9yIGV4YW1wbGUsCiAgICBgYG5wLmVpbnN1bSgnaWknLCBhKWBgIGlzIGVxdWl2YWxlbnQgdG8gYGBucC50cmFjZShhKWBgLgoKICAgIFdoZW5ldmVyIGEgbGFiZWwgaXMgcmVwZWF0ZWQsIGl0IGlzIHN1bW1lZCwgc28gYGBucC5laW5zdW0oJ2ksaScsIGEsIGIpYGAKICAgIGlzIGVxdWl2YWxlbnQgdG8gYGBucC5pbm5lcihhLGIpYGAuICBJZiBhIGxhYmVsIGFwcGVhcnMgb25seSBvbmNlLAogICAgaXQgaXMgbm90IHN1bW1lZCwgc28gYGBucC5laW5zdW0oJ2knLCBhKWBgIHByb2R1Y2VzIGEgdmlldyBvZiBgYGFgYAogICAgd2l0aCBubyBjaGFuZ2VzLgoKICAgIFRoZSBvcmRlciBvZiBsYWJlbHMgaW4gdGhlIG91dHB1dCBpcyBieSBkZWZhdWx0IGFscGhhYmV0aWNhbC4gIFRoaXMKICAgIG1lYW5zIHRoYXQgYGBucC5laW5zdW0oJ2lqJywgYSlgYCBkb2Vzbid0IGFmZmVjdCBhIDJEIGFycmF5LCB3aGlsZQogICAgYGBucC5laW5zdW0oJ2ppJywgYSlgYCB0YWtlcyBpdHMgdHJhbnNwb3NlLgoKICAgIFRoZSBvdXRwdXQgY2FuIGJlIGNvbnRyb2xsZWQgYnkgc3BlY2lmeWluZyBvdXRwdXQgc3Vic2NyaXB0IGxhYmVscwogICAgYXMgd2VsbC4gIFRoaXMgc3BlY2lmaWVzIHRoZSBsYWJlbCBvcmRlciwgYW5kIGFsbG93cyBzdW1taW5nIHRvCiAgICBiZSBkaXNhbGxvd2VkIG9yIGZvcmNlZCB3aGVuIGRlc2lyZWQuICBUaGUgY2FsbCBgYG5wLmVpbnN1bSgnaS0+JywgYSlgYAogICAgaXMgbGlrZSBgYG5wLnN1bShhLCBheGlzPS0xKWBgLCBhbmQgYGBucC5laW5zdW0oJ2lpLT5pJywgYSlgYAogICAgaXMgbGlrZSBgYG5wLmRpYWcoYSlgYC4gIFRoZSBkaWZmZXJlbmNlIGlzIHRoYXQgYGVpbnN1bWAgZG9lcyBub3QKICAgIGFsbG93IGJyb2FkY2FzdGluZyBieSBkZWZhdWx0LgoKICAgIFRvIGVuYWJsZSBhbmQgY29udHJvbCBicm9hZGNhc3RpbmcsIHVzZSBhbiBlbGxpcHNpcy4gIERlZmF1bHQKICAgIE51bVB5LXN0eWxlIGJyb2FkY2FzdGluZyBpcyBkb25lIGJ5IGFkZGluZyBhbiBlbGxpcHNpcwogICAgdG8gdGhlIGxlZnQgb2YgZWFjaCB0ZXJtLCBsaWtlIGBgbnAuZWluc3VtKCcuLi5paS0+Li4uaScsIGEpYGAuCiAgICBUbyB0YWtlIHRoZSB0cmFjZSBhbG9uZyB0aGUgZmlyc3QgYW5kIGxhc3QgYXhlcywKICAgIHlvdSBjYW4gZG8gYGBucC5laW5zdW0oJ2kuLi5pJywgYSlgYCwgb3IgdG8gZG8gYSBtYXRyaXgtbWF0cml4CiAgICBwcm9kdWN0IHdpdGggdGhlIGxlZnQtbW9zdCBpbmRpY2VzIGluc3RlYWQgb2YgcmlnaHRtb3N0LCB5b3UgY2FuIGRvCiAgICBgYG5wLmVpbnN1bSgnaWouLi4samsuLi4tPmlrLi4uJywgYSwgYilgYC4KCiAgICBXaGVuIHRoZXJlIGlzIG9ubHkgb25lIG9wZXJhbmQsIG5vIGF4ZXMgYXJlIHN1bW1lZCwgYW5kIG5vIG91dHB1dAogICAgcGFyYW1ldGVyIGlzIHByb3ZpZGVkLCBhIHZpZXcgaW50byB0aGUgb3BlcmFuZCBpcyByZXR1cm5lZCBpbnN0ZWFkCiAgICBvZiBhIG5ldyBhcnJheS4gIFRodXMsIHRha2luZyB0aGUgZGlhZ29uYWwgYXMgYGBucC5laW5zdW0oJ2lpLT5pJywgYSlgYAogICAgcHJvZHVjZXMgYSB2aWV3LgoKICAgIEFuIGFsdGVybmF0aXZlIHdheSB0byBwcm92aWRlIHRoZSBzdWJzY3JpcHRzIGFuZCBvcGVyYW5kcyBpcyBhcwogICAgYGBlaW5zdW0ob3AwLCBzdWJsaXN0MCwgb3AxLCBzdWJsaXN0MSwgLi4uLCBbc3VibGlzdG91dF0pYGAuIFRoZSBleGFtcGxlcwogICAgYmVsb3cgaGF2ZSBjb3JyZXNwb25kaW5nIGBlaW5zdW1gIGNhbGxzIHdpdGggdGhlIHR3byBwYXJhbWV0ZXIgbWV0aG9kcy4KCiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxLjEwLjAKCiAgICBWaWV3cyByZXR1cm5lZCBmcm9tIGVpbnN1bSBhcmUgbm93IHdyaXRlYWJsZSB3aGVuZXZlciB0aGUgaW5wdXQgYXJyYXkKICAgIGlzIHdyaXRlYWJsZS4gRm9yIGV4YW1wbGUsIGBgbnAuZWluc3VtKCdpamsuLi4tPmtqaS4uLicsIGEpYGAgd2lsbCBub3cKICAgIGhhdmUgdGhlIHNhbWUgZWZmZWN0IGFzIGBgbnAuc3dhcGF4ZXMoYSwgMCwgMilgYCBhbmQKICAgIGBgbnAuZWluc3VtKCdpaS0+aScsIGEpYGAgd2lsbCByZXR1cm4gYSB3cml0ZWFibGUgdmlldyBvZiB0aGUgZGlhZ29uYWwKICAgIG9mIGEgMkQgYXJyYXkuCgogICAgLi4gdmVyc2lvbmFkZGVkOjogMS4xMi4wCgogICAgQWRkZWQgdGhlIGBgb3B0aW1pemVgYCBhcmd1bWVudCB3aGljaCB3aWxsIG9wdGltaXplIHRoZSBjb250cmFjdGlvbiBvcmRlcgogICAgb2YgYW4gZWluc3VtIGV4cHJlc3Npb24uIEZvciBhIGNvbnRyYWN0aW9uIHdpdGggdGhyZWUgb3IgbW9yZSBvcGVyYW5kcyB0aGlzCiAgICBjYW4gZ3JlYXRseSBpbmNyZWFzZSB0aGUgY29tcHV0YXRpb25hbCBlZmZpY2llbmN5IGF0IHRoZSBjb3N0IG9mIGEgbGFyZ2VyCiAgICBtZW1vcnkgZm9vdHByaW50IGR1cmluZyBjb21wdXRhdGlvbi4KCiAgICBTZWUgYGBucC5laW5zdW1fcGF0aGBgIGZvciBtb3JlIGRldGFpbHMuCgogICAgRXhhbXBsZXMKICAgIC0tLS0tLS0tCiAgICA+Pj4gYSA9IG5wLmFyYW5nZSgyNSkucmVzaGFwZSg1LDUpCiAgICA+Pj4gYiA9IG5wLmFyYW5nZSg1KQogICAgPj4+IGMgPSBucC5hcmFuZ2UoNikucmVzaGFwZSgyLDMpCgogICAgPj4+IG5wLmVpbnN1bSgnaWknLCBhKQogICAgNjAKICAgID4+PiBucC5laW5zdW0oYSwgWzAsMF0pCiAgICA2MAogICAgPj4+IG5wLnRyYWNlKGEpCiAgICA2MAoKICAgID4+PiBucC5laW5zdW0oJ2lpLT5pJywgYSkKICAgIGFycmF5KFsgMCwgIDYsIDEyLCAxOCwgMjRdKQogICAgPj4+IG5wLmVpbnN1bShhLCBbMCwwXSwgWzBdKQogICAgYXJyYXkoWyAwLCAgNiwgMTIsIDE4LCAyNF0pCiAgICA+Pj4gbnAuZGlhZyhhKQogICAgYXJyYXkoWyAwLCAgNiwgMTIsIDE4LCAyNF0pCgogICAgPj4+IG5wLmVpbnN1bSgnaWosaicsIGEsIGIpCiAgICBhcnJheShbIDMwLCAgODAsIDEzMCwgMTgwLCAyMzBdKQogICAgPj4+IG5wLmVpbnN1bShhLCBbMCwxXSwgYiwgWzFdKQogICAgYXJyYXkoWyAzMCwgIDgwLCAxMzAsIDE4MCwgMjMwXSkKICAgID4+PiBucC5kb3QoYSwgYikKICAgIGFycmF5KFsgMzAsICA4MCwgMTMwLCAxODAsIDIzMF0pCiAgICA+Pj4gbnAuZWluc3VtKCcuLi5qLGonLCBhLCBiKQogICAgYXJyYXkoWyAzMCwgIDgwLCAxMzAsIDE4MCwgMjMwXSkKCiAgICA+Pj4gbnAuZWluc3VtKCdqaScsIGMpCiAgICBhcnJheShbWzAsIDNdLAogICAgICAgICAgIFsxLCA0XSwKICAgICAgICAgICBbMiwgNV1dKQogICAgPj4+IG5wLmVpbnN1bShjLCBbMSwwXSkKICAgIGFycmF5KFtbMCwgM10sCiAgICAgICAgICAgWzEsIDRdLAogICAgICAgICAgIFsyLCA1XV0pCiAgICA+Pj4gYy5UCiAgICBhcnJheShbWzAsIDNdLAogICAgICAgICAgIFsxLCA0XSwKICAgICAgICAgICBbMiwgNV1dKQoKICAgID4+PiBucC5laW5zdW0oJy4uLiwgLi4uJywgMywgYykKICAgIGFycmF5KFtbIDAsICAzLCAgNl0sCiAgICAgICAgICAgWyA5LCAxMiwgMTVdXSkKICAgID4+PiBucC5laW5zdW0oJyxpaicsIDMsIEMpCiAgICBhcnJheShbWyAwLCAgMywgIDZdLAogICAgICAgICAgIFsgOSwgMTIsIDE1XV0pCiAgICA+Pj4gbnAuZWluc3VtKDMsIFtFbGxpcHNpc10sIGMsIFtFbGxpcHNpc10pCiAgICBhcnJheShbWyAwLCAgMywgIDZdLAogICAgICAgICAgIFsgOSwgMTIsIDE1XV0pCiAgICA+Pj4gbnAubXVsdGlwbHkoMywgYykKICAgIGFycmF5KFtbIDAsICAzLCAgNl0sCiAgICAgICAgICAgWyA5LCAxMiwgMTVdXSkKCiAgICA+Pj4gbnAuZWluc3VtKCdpLGknLCBiLCBiKQogICAgMzAKICAgID4+PiBucC5laW5zdW0oYiwgWzBdLCBiLCBbMF0pCiAgICAzMAogICAgPj4+IG5wLmlubmVyKGIsYikKICAgIDMwCgogICAgPj4+IG5wLmVpbnN1bSgnaSxqJywgbnAuYXJhbmdlKDIpKzEsIGIpCiAgICBhcnJheShbWzAsIDEsIDIsIDMsIDRdLAogICAgICAgICAgIFswLCAyLCA0LCA2LCA4XV0pCiAgICA+Pj4gbnAuZWluc3VtKG5wLmFyYW5nZSgyKSsxLCBbMF0sIGIsIFsxXSkKICAgIGFycmF5KFtbMCwgMSwgMiwgMywgNF0sCiAgICAgICAgICAgWzAsIDIsIDQsIDYsIDhdXSkKICAgID4+PiBucC5vdXRlcihucC5hcmFuZ2UoMikrMSwgYikKICAgIGFycmF5KFtbMCwgMSwgMiwgMywgNF0sCiAgICAgICAgICAgWzAsIDIsIDQsIDYsIDhdXSkKCiAgICA+Pj4gbnAuZWluc3VtKCdpLi4uLT4uLi4nLCBhKQogICAgYXJyYXkoWzUwLCA1NSwgNjAsIDY1LCA3MF0pCiAgICA+Pj4gbnAuZWluc3VtKGEsIFswLEVsbGlwc2lzXSwgW0VsbGlwc2lzXSkKICAgIGFycmF5KFs1MCwgNTUsIDYwLCA2NSwgNzBdKQogICAgPj4+IG5wLnN1bShhLCBheGlzPTApCiAgICBhcnJheShbNTAsIDU1LCA2MCwgNjUsIDcwXSkKCiAgICA+Pj4gYSA9IG5wLmFyYW5nZSg2MC4pLnJlc2hhcGUoMyw0LDUpCiAgICA+Pj4gYiA9IG5wLmFyYW5nZSgyNC4pLnJlc2hhcGUoNCwzLDIpCiAgICA+Pj4gbnAuZWluc3VtKCdpamssamlsLT5rbCcsIGEsIGIpCiAgICBhcnJheShbWyA0NDAwLiwgIDQ3MzAuXSwKICAgICAgICAgICBbIDQ1MzIuLCAgNDg3NC5dLAogICAgICAgICAgIFsgNDY2NC4sICA1MDE4Ll0sCiAgICAgICAgICAgWyA0Nzk2LiwgIDUxNjIuXSwKICAgICAgICAgICBbIDQ5MjguLCAgNTMwNi5dXSkKICAgID4+PiBucC5laW5zdW0oYSwgWzAsMSwyXSwgYiwgWzEsMCwzXSwgWzIsM10pCiAgICBhcnJheShbWyA0NDAwLiwgIDQ3MzAuXSwKICAgICAgICAgICBbIDQ1MzIuLCAgNDg3NC5dLAogICAgICAgICAgIFsgNDY2NC4sICA1MDE4Ll0sCiAgICAgICAgICAgWyA0Nzk2LiwgIDUxNjIuXSwKICAgICAgICAgICBbIDQ5MjguLCAgNTMwNi5dXSkKICAgID4+PiBucC50ZW5zb3Jkb3QoYSxiLCBheGVzPShbMSwwXSxbMCwxXSkpCiAgICBhcnJheShbWyA0NDAwLiwgIDQ3MzAuXSwKICAgICAgICAgICBbIDQ1MzIuLCAgNDg3NC5dLAogICAgICAgICAgIFsgNDY2NC4sICA1MDE4Ll0sCiAgICAgICAgICAgWyA0Nzk2LiwgIDUxNjIuXSwKICAgICAgICAgICBbIDQ5MjguLCAgNTMwNi5dXSkKCiAgICA+Pj4gYSA9IG5wLmFyYW5nZSg2KS5yZXNoYXBlKCgzLDIpKQogICAgPj4+IGIgPSBucC5hcmFuZ2UoMTIpLnJlc2hhcGUoKDQsMykpCiAgICA+Pj4gbnAuZWluc3VtKCdraSxqay0+aWonLCBhLCBiKQogICAgYXJyYXkoW1sxMCwgMjgsIDQ2LCA2NF0sCiAgICAgICAgICAgWzEzLCA0MCwgNjcsIDk0XV0pCiAgICA+Pj4gbnAuZWluc3VtKCdraSwuLi5rLT5pLi4uJywgYSwgYikKICAgIGFycmF5KFtbMTAsIDI4LCA0NiwgNjRdLAogICAgICAgICAgIFsxMywgNDAsIDY3LCA5NF1dKQogICAgPj4+IG5wLmVpbnN1bSgnay4uLixqaycsIGEsIGIpCiAgICBhcnJheShbWzEwLCAyOCwgNDYsIDY0XSwKICAgICAgICAgICBbMTMsIDQwLCA2NywgOTRdXSkKCiAgICA+Pj4gIyBzaW5jZSB2ZXJzaW9uIDEuMTAuMAogICAgPj4+IGEgPSBucC56ZXJvcygoMywgMykpCiAgICA+Pj4gbnAuZWluc3VtKCdpaS0+aScsIGEpWzpdID0gMQogICAgPj4+IGEKICAgIGFycmF5KFtbIDEuLCAgMC4sICAwLl0sCiAgICAgICAgICAgWyAwLiwgIDEuLCAgMC5dLAogICAgICAgICAgIFsgMC4sICAwLiwgIDEuXV0pCgogICAgcmUAAABG2gNvdXRaBWR0eXBl2gVvcmRlcloHY2FzdGluZ2MBAAAAAAAAAAMAAAAEAAAAEwAAAHMeAAAAaQB8AF0WXAJ9AX0CfAGIAGsGcgR8AnwBkwJxBFMAcgwAAAByDAAAACkDcjsAAAByZwAAAHI8AAAAKQHaE3ZhbGlkX2VpbnN1bV9rd2FyZ3NyDAAAAHIRAAAA+go8ZGljdGNvbXA+twMAAHMEAAAABgAGAXoaZWluc3VtLjxsb2NhbHM+LjxkaWN0Y29tcD5jAQAAAAAAAAADAAAABAAAABMAAABzHAAAAGcAfABdFFwCfQF9AnwBiABrB3IEfAGRAnEEUwByDAAAAHIMAAAAKQNyOwAAAHJnAAAAcjwAAAApAXJoAAAAcgwAAAByEQAAAHI9AAAAvAMAAHMEAAAABgAGAXoaZWluc3VtLjxsb2NhbHM+LjxsaXN0Y29tcD56K0RpZCBub3QgdW5kZXJzdGFuZCB0aGUgZm9sbG93aW5nIGt3YXJnczogJXNOVCkCcmUAAAByZgAAAHILAAAAcgEAAAApCHJKAAAAcgUAAABybAAAAHInAAAAck0AAAByCgAAAHIVAAAAchYAAAApEXJWAAAAcnEAAABaDG9wdGltaXplX2FyZ1oNZWluc3VtX2t3YXJnc3JyAAAAWg1zcGVjaWZpZWRfb3V0WglvdXRfYXJyYXlydgAAAHJcAAAAcngAAAByewAAAHJ8AAAAcncAAAByGwAAAHJZAAAAciIAAABaCG5ld192aWV3cgwAAAApAnJoAAAAcn8AAAByEQAAAHIJAAAAvwIAAHM8AAAAAH8AcgwDCAEKAgwBFgQKARYDCAEEAQgDBAEMAQgBBAMGAQ4CEgEMAQQBCgEUAxgBCAMQAwoBCAIGAQQCTikW2gdfX2RvY19f2gpfX2Z1dHVyZV9fcgIAAAByAwAAAHIEAAAAWhVudW1weS5jb3JlLm11bHRpYXJyYXlyBQAAAFoSbnVtcHkuY29yZS5udW1lcmljcgYAAAByBwAAAHIIAAAA2gdfX2FsbF9fckgAAAByEwAAAHJPAAAAchIAAAByIAAAAHIzAAAAcjgAAAByZAAAAHIKAAAAcgkAAAByDAAAAHIMAAAAcgwAAAByEQAAANoIPG1vZHVsZT4EAAAAcyAAAAAEARQCDAEUAggCBAEIAwgdCDwISwhPCH8AKQh/AH8AFg==
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 20
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
arrayprint.cpython-37.pyc
24.12 KB
lrw-r--r--
2023-04-24 19:38:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cversions.cpython-37.pyc
627 B
lrw-r--r--
2023-04-24 19:38:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
defchararray.cpython-37.pyc
65.72 KB
lrw-r--r--
2023-04-24 19:38:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
einsumfunc.cpython-37.pyc
26.91 KB
lrw-r--r--
2023-04-24 19:38:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
fromnumeric.cpython-37.pyc
95.70 KB
lrw-r--r--
2023-04-24 19:38:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
function_base.cpython-37.pyc
10.68 KB
lrw-r--r--
2023-04-24 19:38:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
generate_numpy_api.cpython-37.pyc
6.17 KB
lrw-r--r--
2023-04-24 19:38:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
getlimits.cpython-37.pyc
13.52 KB
lrw-r--r--
2023-04-24 19:38:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
info.cpython-37.pyc
4.78 KB
lrw-r--r--
2023-04-24 19:38:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
machar.cpython-37.pyc
7.52 KB
lrw-r--r--
2023-04-24 19:38:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
memmap.cpython-37.pyc
9.92 KB
lrw-r--r--
2023-04-24 19:38:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
numeric.cpython-37.pyc
85.29 KB
lrw-r--r--
2023-04-24 19:38:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
numerictypes.cpython-37.pyc
23.35 KB
lrw-r--r--
2023-04-24 19:38:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
records.cpython-37.pyc
21.76 KB
lrw-r--r--
2023-04-24 19:38:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
setup.cpython-37.pyc
21.43 KB
lrw-r--r--
2023-04-24 19:38:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
setup_common.cpython-37.pyc
9.63 KB
lrw-r--r--
2023-04-24 19:38:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
shape_base.cpython-37.pyc
18.88 KB
lrw-r--r--
2023-04-24 19:38:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
_internal.cpython-37.pyc
17.55 KB
lrw-r--r--
2023-04-24 19:38:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
_methods.cpython-37.pyc
3.55 KB
lrw-r--r--
2023-04-24 19:38:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-37.pyc
2.34 KB
lrw-r--r--
2023-04-24 19:38:35
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).