@eco-incorp/sauce 0.99.0 → 0.99.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/sdk/dist/artifacts/V12Deployments.json +64 -0
- package/sdk/dist/artifacts/V12RuntimeBytecode.json +1 -1
- package/sdk/dist/artifacts/svm/engine-devnet.so +0 -0
- package/sdk/dist/artifacts/svm/engine-mainnet.so +0 -0
- package/sdk/dist/deployments/index.d.ts +12 -4
- package/sdk/dist/deployments/index.d.ts.map +1 -1
- package/sdk/dist/deployments/index.js +13 -4
- package/sdk/dist/deployments/index.js.map +1 -1
- package/sdk/dist/deployments/v12-addresses.d.ts +81 -0
- package/sdk/dist/deployments/v12-addresses.d.ts.map +1 -0
- package/sdk/dist/deployments/v12-addresses.js +52 -0
- package/sdk/dist/deployments/v12-addresses.js.map +1 -0
- package/sdk/dist/verify/wire.d.ts +4 -2
- package/sdk/dist/verify/wire.d.ts.map +1 -1
- package/sdk/dist/verify/wire.js +4 -2
- package/sdk/dist/verify/wire.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eco-incorp/sauce",
|
|
3
|
-
"version": "0.99.
|
|
3
|
+
"version": "0.99.1",
|
|
4
4
|
"description": "Sauce protocol tooling: SDK, action primitives, and a local dev environment.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
"@solana/kit": "^6.10.0",
|
|
99
99
|
"acorn": "^8.15.0",
|
|
100
100
|
"dotenv": "^17.3.1",
|
|
101
|
-
"sauce-compiler": "npm:@eco-incorp/sauce-compiler@^2.2.
|
|
101
|
+
"sauce-compiler": "npm:@eco-incorp/sauce-compiler@^2.2.1",
|
|
102
102
|
"typescript": "^5.7.0",
|
|
103
103
|
"viem": "^2.45.3"
|
|
104
104
|
},
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0.0",
|
|
3
|
+
"commit": "f2f6dfbe38809304d83ca755eb7975c19d35ceab",
|
|
4
|
+
"evm": {
|
|
5
|
+
"chainIndependent": true,
|
|
6
|
+
"factory": "0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed",
|
|
7
|
+
"deployer": "0x6Ab56944462222A2405ffb87d01A29e37890abC3",
|
|
8
|
+
"contracts": {
|
|
9
|
+
"engine": {
|
|
10
|
+
"address": "0x7d6FB016aa99425b6b490aDB520839b3A2342d3F",
|
|
11
|
+
"saltName": "Engine",
|
|
12
|
+
"rawSalt": "0x6ab56944462222a2405ffb87d01a29e37890abc300456e67696e650000010000",
|
|
13
|
+
"guardedSalt": "0x8a75428505a2ae0e25db2ef82c8dcb5a062b943f30ffc18525c6721d970f8fab",
|
|
14
|
+
"derivation": "CREATE(CREATE2(factory, guardedSalt, keccak256(CreateX proxy initcode)), 1)"
|
|
15
|
+
},
|
|
16
|
+
"router": {
|
|
17
|
+
"address": "0xB820759EDD59318C2BD8B303C51Ad0E5176B608D",
|
|
18
|
+
"saltName": "Router",
|
|
19
|
+
"rawSalt": "0x6ab56944462222a2405ffb87d01a29e37890abc300526f757465720000000002",
|
|
20
|
+
"guardedSalt": "0x1777eb6e606524722e6b410e789c2fab1fb9d27f2cfa743ba22346d622ce2844",
|
|
21
|
+
"derivation": "CREATE(CREATE2(factory, guardedSalt, keccak256(CreateX proxy initcode)), 1)"
|
|
22
|
+
},
|
|
23
|
+
"kitchen": {
|
|
24
|
+
"address": "0x19845b22989150E6B09dE55a661295Dd9188506b",
|
|
25
|
+
"saltName": "Kitchen",
|
|
26
|
+
"rawSalt": "0x6ab56944462222a2405ffb87d01a29e37890abc3004b69746368656e00000002",
|
|
27
|
+
"guardedSalt": "0xb8d1641d5eba3797376adb85f5e4fd7049660a39bb1ecf9825588e60f4b4c324",
|
|
28
|
+
"derivation": "CREATE(CREATE2(factory, guardedSalt, keccak256(CreateX proxy initcode)), 1)",
|
|
29
|
+
"proxyKind": "uups",
|
|
30
|
+
"generation": 2,
|
|
31
|
+
"note": "the UUPS proxy — generation 2 starts a new Kitchen/Pot address family; existing Pots stay at their original addresses"
|
|
32
|
+
},
|
|
33
|
+
"kitchenImplementation": {
|
|
34
|
+
"address": "0x07E7dfc8389269EC5cd796E55e408aDB98D365c2",
|
|
35
|
+
"saltName": "KitchenI",
|
|
36
|
+
"rawSalt": "0x6ab56944462222a2405ffb87d01a29e37890abc3004b69746368656e49010000",
|
|
37
|
+
"guardedSalt": "0x315d3a6196bd5b0a650bac815b651cf33f35532edc4db4777568b82e3145398d",
|
|
38
|
+
"derivation": "CREATE(CREATE2(factory, guardedSalt, keccak256(CreateX proxy initcode)), 1)"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"pot": {
|
|
42
|
+
"deployer": "0x19845b22989150E6B09dE55a661295Dd9188506b",
|
|
43
|
+
"initCodeHash": "0x47913cfa9c7a1dcfe6b69ea8f3ab25a579befbcb732fa65498e6be8be6613739",
|
|
44
|
+
"saltFormula": "keccak256(abi.encode(owner, salt))",
|
|
45
|
+
"derivation": "CREATE2(kitchen, keccak256(abi.encode(owner, salt)), initCodeHash)"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"svm": {
|
|
49
|
+
"clusterIndependent": true,
|
|
50
|
+
"programs": {
|
|
51
|
+
"engine": {
|
|
52
|
+
"programId": "DnR2g6w9gVhqcR68QEpuw7Wm7MuoKxRVEtKZDXGes3Nj",
|
|
53
|
+
"label": "engine@1.0.0",
|
|
54
|
+
"derivation": "ed25519 keypair from sha256(SOLANA_PROGRAM_KEY_SEED, label)",
|
|
55
|
+
"upgradeAuthority": "none — deployed --final, so this program can never be upgraded or closed"
|
|
56
|
+
},
|
|
57
|
+
"kitchen": {
|
|
58
|
+
"programId": "SauceYLdWyabKFwtevSAgsSDoMjCoTKtx1HTb63eJot",
|
|
59
|
+
"derivation": "fixed keypair, held as SOLANA_KITCHEN_PROGRAM_KEYPAIR; this release's IDL declares the same address",
|
|
60
|
+
"upgradeAuthority": "our deploy authority — the program is upgraded in place, so every Pot survives a release"
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
{
|
|
2
|
-
"runtimeCreationCode": "0x615408808038035f393081526020015ff3602060203803608039608051301461001a573060e05261001f565b3360e0525b5f60205263eb77129b60e01b6101205260206020600461012060e0515afa1561014357610147565b6101605160e0518181141561014357815f5260205f207f243f6a8885a308d313198a2e03707344a4093822299f31d0082efa98ec4e6c8918815f5260205f207f452821e638d01377be5466cf34e90c6cc0ac29b7c97c50dd3f84d5b5b54709171860206080206102006152085f39805f5b80518218815260200180610200116100b85750505f61020052825f5b80518218815260200180610200116100d45750505f6102a052805f5b80518218815260200180610200116100f057505061030061024052815f5b805182188152602001806102001161010e575050505050505061dead6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b7f9e3779b97f4a7c159e3779b97f4a7c159e3779b97f4a7c159e3779b97f4a7c1560a052602060a020807ff698f2638ab1c8273f2b253967d5020f0df917af17b3046c2628460ab7e5142118604052806101605273ffffffffffffffffffffffffffffffffffffffff16738dfa7c88ecd6bc82d4014762d8dc6d5cc00c7373185f5260ff600b536055600b2073ffffffffffffffffffffffffffffffffffffffff1661016052610047565b61519e565b5f5ffd5b806102005180600101610200523560f81c60011b5160f01c565b816102005180600101610200523560f81c60011b5160f01c565b826102005180600101610200523560f81c60011b5160f01c565b836102005180600101610200523560f81c60011b5160f01c565b846102005180600101610200523560f81c60011b5160f01c565b856102005180600101610200523560f81c60011b5160f01c565b866102005180600101610200523560f81c60011b5160f01c565b876102005180600101610200523560f81c60011b5160f01c565b886102005180600101610200523560f81c60011b5160f01c565b896102005180600101610200523560f81c60011b5160f01c565b8a6102005180600101610200523560f81c60011b5160f01c565b8b6102005180600101610200523560f81c60011b5160f01c565b8c6102005180600101610200523560f81c60011b5160f01c565b8d6102005180600101610200523560f81c60011b5160f01c565b8e6102005180600101610200523560f81c60011b5160f01c565b8f6102005180600101610200523560f81c60011b5160f01c565b506102005180600101610200523560f81c60011b5160f01c565b906102005180600101610200523560f81c60011b5160f01c565b916102005180600101610200523560f81c60011b5160f01c565b926102005180600101610200523560f81c60011b5160f01c565b936102005180600101610200523560f81c60011b5160f01c565b946102005180600101610200523560f81c60011b5160f01c565b956102005180600101610200523560f81c60011b5160f01c565b966102005180600101610200523560f81c60011b5160f01c565b976102005180600101610200523560f81c60011b5160f01c565b986102005180600101610200523560f81c60011b5160f01c565b996102005180600101610200523560f81c60011b5160f01c565b9a6102005180600101610200523560f81c60011b5160f01c565b9b6102005180600101610200523560f81c60011b5160f01c565b9c6102005180600101610200523560f81c60011b5160f01c565b9d6102005180600101610200523560f81c60011b5160f01c565b9e6102005180600101610200523560f81c60011b5160f01c565b9f6102005180600101610200523560f81c60011b5160f01c565b90916102005180600101610200523560f81c60011b5160f01c565b6102005180600101803610610c4957610200523560f81c6102005180600101610200523560f81c60011b5160f01c565b6102005180600201803610610c4957610200523560f01c6102005180600101610200523560f81c60011b5160f01c565b6102005180600301803610610c4957610200523560e81c6102005180600101610200523560f81c60011b5160f01c565b6102005180600401803610610c4957610200523560e01c6102005180600101610200523560f81c60011b5160f01c565b6102005180600501803610610c4957610200523560d81c6102005180600101610200523560f81c60011b5160f01c565b6102005180600601803610610c4957610200523560d01c6102005180600101610200523560f81c60011b5160f01c565b6102005180600701803610610c4957610200523560c81c6102005180600101610200523560f81c60011b5160f01c565b6102005180600801803610610c4957610200523560c01c6102005180600101610200523560f81c60011b5160f01c565b6102005180600901803610610c4957610200523560b81c6102005180600101610200523560f81c60011b5160f01c565b6102005180600a01803610610c4957610200523560b01c6102005180600101610200523560f81c60011b5160f01c565b6102005180600b01803610610c4957610200523560a81c6102005180600101610200523560f81c60011b5160f01c565b6102005180600c01803610610c4957610200523560a01c6102005180600101610200523560f81c60011b5160f01c565b6102005180600d01803610610c4957610200523560981c6102005180600101610200523560f81c60011b5160f01c565b6102005180600e01803610610c4957610200523560901c6102005180600101610200523560f81c60011b5160f01c565b6102005180600f01803610610c4957610200523560881c6102005180600101610200523560f81c60011b5160f01c565b6102005180601001803610610c4957610200523560801c6102005180600101610200523560f81c60011b5160f01c565b6102005180601101803610610c4957610200523560781c6102005180600101610200523560f81c60011b5160f01c565b6102005180601201803610610c4957610200523560701c6102005180600101610200523560f81c60011b5160f01c565b6102005180601301803610610c4957610200523560681c6102005180600101610200523560f81c60011b5160f01c565b6102005180601401803610610c4957610200523560601c6102005180600101610200523560f81c60011b5160f01c565b6102005180601501803610610c4957610200523560581c6102005180600101610200523560f81c60011b5160f01c565b6102005180601601803610610c4957610200523560501c6102005180600101610200523560f81c60011b5160f01c565b6102005180601701803610610c4957610200523560481c6102005180600101610200523560f81c60011b5160f01c565b6102005180601801803610610c4957610200523560401c6102005180600101610200523560f81c60011b5160f01c565b6102005180601901803610610c4957610200523560381c6102005180600101610200523560f81c60011b5160f01c565b6102005180601a01803610610c4957610200523560301c6102005180600101610200523560f81c60011b5160f01c565b6102005180601b01803610610c4957610200523560281c6102005180600101610200523560f81c60011b5160f01c565b6102005180601c01803610610c4957610200523560201c6102005180600101610200523560f81c60011b5160f01c565b6102005180601d01803610610c4957610200523560181c6102005180600101610200523560f81c60011b5160f01c565b6102005180601e01803610610c4957610200523560101c6102005180600101610200523560f81c60011b5160f01c565b6102005180601f01803610610c4957610200523560081c6102005180600101610200523560f81c60011b5160f01c565b6102005180602001803610610c495761020052356102005180600101610200523560f81c60011b5160f01c565b610200513560f81c806102005101600101803610610c49576102405182610200516001018237808301601f01601f1916806303ffffe010611734576102405290610200529060201b176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610200513560f01c806102005101600201803610610c49576102405182610200516002018237808301601f01601f1916806303ffffe010611734576102405290610200529060201b176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b807dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660501c610cf3578060f01c15610c9a57808060f01c6140001615159060481c60ff166094141615610cf3575b8060481c60ff168015610cf15780609011610d0c57609110610d0c578060201c63ffffffff1660208111610d0c579063ffffffff1651906020036008021c6102005180600101610200523560f81c60011b5160f01c565b505b6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b807dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660501c610dd0578060f01c15610d5d57808060f01c6140001615159060481c60ff166094141615610dd0575b8060481c60ff168015610dce5780609011610de957609110610de9578060201c63ffffffff1660208111610de9579063ffffffff16515f5f5b838114610db15782811a816008021b90911790600101610d96565b509150506102005180600101610200523560f81c60011b5160f01c565b505b6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b8101809111610f57576102005180600101610200523560f81c60011b5160f01c565b818110610f5757036102005180600101610200523560f81c60011b5160f01c565b8082028115610e46578181048314610e46575f5ffd5b9150506102005180600101610200523560f81c60011b5160f01c565b8115610f5757046102005180600101610200523560f81c60011b5160f01c565b8115610f5757066102005180600101610200523560f81c60011b5160f01c565b8115610f1e578015610f3b5760015b8260011615610ed557818082028115610ed1578181048314610ed1575f5ffd5b9150505b9160011c918215610f025781808082028115610ef8578181048314610ef8575f5ffd5b9150509150610eb1565b9150506102005180600101610200523560f81c60011b5160f01c565b505060016102005180600101610200523560f81c60011b5160f01c565b50505f6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b166102005180600101610200523560f81c60011b5160f01c565b176102005180600101610200523560f81c60011b5160f01c565b186102005180600101610200523560f81c60011b5160f01c565b196102005180600101610200523560f81c60011b5160f01c565b1b6102005180600101610200523560f81c60011b5160f01c565b1c6102005180600101610200523560f81c60011b5160f01c565b806002116110f4578060018160801c15611014579060801c9060401b5b8160401c15611026579060401c9060201b5b8160201c15611038579060201c9060101b5b8160101c1561104a579060101c9060081b5b8160081c1561105c579060081c9060041b5b8160041c1561106e579060041c9060021b5b9060041161107a5760011b5b806002020160011c818190040160011c818190040160011c818190040160011c818190040160011c818190040160011c818190040160011c8181900491508181116110da5790506102005180600101610200523560f81c60011b5160f01c565b506102005180600101610200523560f81c60011b5160f01c565b6102005180600101610200523560f81c60011b5160f01c565b8282025f19838509818110908290030380156111a557828110156111c95782848609828111909103910382805f031683819004935080910490805f03046001019091021781806003026002188181026002030281810260020302818102600203028181026002030281810260020302818102600203029050029050905090506102005180600101610200523560f81c60011b5160f01c565b5081156111c957049150506102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f036102005180600101610200523560f81c60011b5160f01c565b91086102005180600101610200523560f81c60011b5160f01c565b91096102005180600101610200523560f81c60011b5160f01c565b056102005180600101610200523560f81c60011b5160f01c565b076102005180600101610200523560f81c60011b5160f01c565b1d6102005180600101610200523560f81c60011b5160f01c565b0b6102005180600101610200523560f81c60011b5160f01c565b156102005180600101610200523560f81c60011b5160f01c565b15156102005180600101610200523560f81c60011b5160f01c565b3b15156102005180600101610200523560f81c60011b5160f01c565b3b156102005180600101610200523560f81c60011b5160f01c565b156102005180600101610200523560f81c60011b5160f01c565b146102005180600101610200523560f81c60011b5160f01c565b14156102005180600101610200523560f81c60011b5160f01c565b116102005180600101610200523560f81c60011b5160f01c565b106102005180600101610200523560f81c60011b5160f01c565b10156102005180600101610200523560f81c60011b5160f01c565b11156102005180600101610200523560f81c60011b5160f01c565b136102005180600101610200523560f81c60011b5160f01c565b126102005180600101610200523560f81c60011b5160f01c565b12156102005180600101610200523560f81c60011b5160f01c565b13156102005180600101610200523560f81c60011b5160f01c565b15901517156102005180600101610200523560f81c60011b5160f01c565b1715156102005180600101610200523560f81c60011b5160f01c565b159015186102005180600101610200523560f81c60011b5160f01c565b336102005180600101610200523560f81c60011b5160f01c565b326102005180600101610200523560f81c60011b5160f01c565b5a6102005180600101610200523560f81c60011b5160f01c565b466102005180600101610200523560f81c60011b5160f01c565b306102005180600101610200523560f81c60011b5160f01c565b436102005180600101610200523560f81c60011b5160f01c565b426102005180600101610200523560f81c60011b5160f01c565b416102005180600101610200523560f81c60011b5160f01c565b446102005180600101610200523560f81c60011b5160f01c565b456102005180600101610200523560f81c60011b5160f01c565b476102005180600101610200523560f81c60011b5160f01c565b346102005180600101610200523560f81c60011b5160f01c565b486102005180600101610200523560f81c60011b5160f01c565b3a6102005180600101610200523560f81c60011b5160f01c565b604a6102005180600101610200523560f81c60011b5160f01c565b316102005180600101610200523560f81c60011b5160f01c565b406102005180600101610200523560f81c60011b5160f01c565b3b6102005180600101610200523560f81c60011b5160f01c565b3f6102005180600101610200523560f81c60011b5160f01c565b496102005180600101610200523560f81c60011b5160f01c565b3b15156102005180600101610200523560f81c60011b5160f01c565b3b156102005180600101610200523560f81c60011b5160f01c565b3661024051815f8237808201601f01601f1916806303ffffe01061173457610240529060201b176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b6102405180630400000003821161173057809101601f01601f1916610240526102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f5ffd5b806103001161177e57526102005180600101610200523560f81c60011b5160f01c565b806103001161177e57516102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5c6102005180600101610200523560f81c60011b5160f01c565b546102005180600101610200523560f81c60011b5160f01c565b5d6102005180600101610200523560f81c60011b5160f01c565b556102005180600101610200523560f81c60011b5160f01c565b610200526102005180600101610200523560f81c60011b5160f01c565b906117ea57506102005180600101610200523560f81c60011b5160f01c565b8060201c63ffffffff169063ffffffff16fd5b8060201c63ffffffff169063ffffffff16206102005180600101610200523560f81c60011b5160f01c565b8060201c63ffffffff169063ffffffff1681604114156119ef578373ffffffffffffffffffffffffffffffffffffffff1693508380156119ed5750610240518060e001806303ffffe010611734576102405281518260200151836040015160f81c86845280846020015282846040015281846060015260208460800160808660015afa1561192c5783608001518814806119015750505050611930565b9360e03682376102405250505093505050506102005180600101610200523560f81c60011b5160f01c565b5050505b843b156119c6577f1626ba7e000000000000000000000000000000000000000000000000000000008152838160040152604081602401528281604401528282826064015e60208160c0018460640183885afa156119c657601f3d11156119c6578060c0015160e01c631626ba7e149060e03682376102405293505050506102005180600101610200523560f81c60011b5160f01c565b60e036823761024052505050505f6102005180600101610200523560f81c60011b5160f01c565b505b505050505f6102005180600101610200523560f81c60011b5160f01c565b8060201c63ffffffff169063ffffffff165f5f83836102405180602001806303ffffe010611734576102405260206020380382398051906020368237610240525afa91505015611aee575f6102a052610240513d8015611ac857815f82913e818101601f01601f1916806303ffffe0106117345761024052640100000000811015611b1557640100000000821015611b155760201b176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b506990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b3d610280526102405180610260525f3d913e610280518015611b105761026051fd5b505f5ffd5b5f5ffd5b8060481c60ff166092141561210e578060401c60ff168060901490806092149060941417171561210e578063ffffffff169060201c63ffffffff168060051c80600f1061211257610240518061044001806303ffffe0106117345761024052805f5b838114611bc1578060051b8601518060481c60ff1660901415612116578060201c63ffffffff168060201061211a579063ffffffff168190845e90910190600101611b7b565b50808261034001528581600101527f50726f6772616d446572697665644164647265737300000000000000000000008160210152808290036036018261036001525060ff8161038001526020816102600152602081610260016020015260208161026001604001527f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8161026001608001527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed816102600160a001525b8061038001518060e0116121265781610340015153602081610240018261036001518360025afa1561211e57806102400151807fff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff001660081c907fff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00191660081b17807fffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00001660101c907fffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000191660101b17807fffffffff00000000ffffffff00000000ffffffff00000000ffffffff000000001660201c907fffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000191660201b17807fffffffffffffffff0000000000000000ffffffffffffffff00000000000000001660401c907fffffffffffffffff0000000000000000ffffffffffffffff0000000000000000191660401b178060801c9060801b17600160ff1b1916816103a00152806103a00151807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed600190037f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9108826103c001527f52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a37f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed910960017f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9108816103e00152806103e0015180807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109907f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816104000152806104000151807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816103e001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816103c001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed91098161026001606001526020816103200160c0836102600160055afa1561212257806103c001518161040001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed91098161032001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816104200152806104200151807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816103e001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed910980826103c001511490826103c001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed031417156120d55780610380015160019003816103800152611c7e565b80610240015181610380015191610440368237610240529150915091509150906102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b8060201c63ffffffff169063ffffffff165f5f838386885af19350505050156121f5573d156121cc573d610280526102405180610260525f3d913e610260513d01601f01601f1916806303ffffe01061173457610240526401000000003d101561225057640100000000610260511015612250573d60201b61026051176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610240516990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610200513560f81c60b71461222b573d610280526102405180610260525f3d913e6102805180156122265761026051fd5b505f5ffd5b5f6102805260016102a0525f6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b8060201c63ffffffff169063ffffffff165f5f8383865afa925050501561231d573d156122f4573d610280526102405180610260525f3d913e610260513d01601f01601f1916806303ffffe01061173457610240526401000000003d101561237857640100000000610260511015612378573d60201b61026051176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610240516990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610200513560f81c60b714612353573d610280526102405180610260525f3d913e61028051801561234e5761026051fd5b505f5ffd5b5f6102805260016102a0525f6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b8060201c63ffffffff169063ffffffff165f5f8383865af49250505015612445573d1561241c573d610280526102405180610260525f3d913e610260513d01601f01601f1916806303ffffe01061173457610240526401000000003d10156124a0576401000000006102605110156124a0573d60201b61026051176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610240516990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610200513560f81c60b71461247b573d610280526102405180610260525f3d913e6102805180156124765761026051fd5b505f5ffd5b5f6102805260016102a0525f6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b610200513560f81c6102a051156124df575f6102a0526102005160010161020052506102005180600101610200523560f81c60011b5160f01c565b6102005101600101610200526102005180600101610200523560f81c60011b5160f01c565b8060481c60ff168060941461256057806092146125865760901461253e575060206102005180600101610200523560f81c60011b5160f01c565b60201c63ffffffff166102005180600101610200523560f81c60011b5160f01c565b5060201c63ffffffff1660051c6102005180600101610200523560f81c60011b5160f01c565b508060401c60ff16801581602010176125bd579060201c63ffffffff16046102005180600101610200523560f81c60011b5160f01c565b5060251c6307ffffff166102005180600101610200523560f81c60011b5160f01c565b8260481c60ff16801581609014176126ca576094146126b5578260401c60ff168060401b69920000000000000000001793929190801581602010176126ad575b826304000000106127305781630400000010612642575b80910291029061264f565b9050630400000090612637565b8260201c63ffffffff1682811115612730578290038181101561266e57905b508263ffffffff1682019060201b1783806994000000000000000000146126de5717925050506102005180600101610200523560f81c60011b5160f01c565b506020612620565b69940000000000000000009291906020612620565b50699000000000000000000092919061264f565b6126fa8263ffffffff168360201c63ffffffff1660051c613155565b60f01b17178060201c63ffffffff1660051c60ff1660401b17925050506102005180600101610200523560f81c60011b5160f01c565b5050505061024051178060481c60ff16609414612760576102005180600101610200523560f81c60011b5160f01c565b6180006140001760f01b176102005180600101610200523560f81c60011b5160f01c565b610200513560f81c610200516001016102005280156129ae57806001146129d8578160481c60ff16806094146127ce57806092146127e057506990000000000000000000906127f9565b506994000000000000000000906127f9565b508160401c60ff1660401b699200000000000000000017905b5f91906102405180915b8015612905578360481c60ff168060941461284257806092146128a957505b8560481c60ff16801561283c578060901461283c576129f2565b506128d0565b508560481c60ff1680609414612857576129f2565b508560f01c6140001615151561289a578560f01c61400061800017809116141561288b57938560f01c6107ff1601936128d0565b936501000000000017936128d0565b936502000000000017936128d0565b508560481c60ff1680609214156129f257508360401c60ff168660401c60ff1614156129f2575b8560201c63ffffffff1680156128ff578663ffffffff168190845e909101905b94509091929360019003612803565b506128f0565b5080601f01601f1916806303ffffe01061173457610240528190036401000000008110156129f2576401000000008210156129f257828069940000000000000000001461296f579060201b1717905090506102005180600101610200523560f81c60011b5160f01c565b8461297990613200565b60f01b17908060051c60ff1660401b9091179060201b1717905090506102005180600101610200523560f81c60011b5160f01c565b50610240516990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b506102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b6102005180600101610200523560f81c8015612b8d575f9061024051808260051b0180806303ffffe0106117345761024052915090815b847dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168069ffffffffffffffffffff10158160481c60ff1680609014908060921490609414171716905015612aef578460f01c15612ac257848060f01c6140001615159060481c60ff166094141615612aef578460f01c614000618000178091161415612ad157928460f01c6107ff160192612b1d565b8460481c60ff16609414612ae0575b92650100000000001792612b1d565b92650200000000001792612b1d565b6102405185815280602001806303ffffe0106117345761024052692000000000200000000017945092600101925b8481529350909192602001808214612b3457612a2d565b5081900360051c6401000000008210156131295791612b5290613200565b60f01b918060ff1660401b9060251b1769940000000000000000001717176102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b50610240516994000000000000000000176180006140001760f01b176102005180600101610200523560f81c60011b5160f01c565b61020051358060f81c9060f01c60ff166102005160020161020052612bfe565b61020051358060f01c9060e81c60ff1661020051600301610200525b80156131255780602111612d4e5780609014612c295780609214612c295780609414612c2957613125565b908015612d1f5761024051808260051b0180806303ffffe0106117345761024052915090815b847dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168069ffffffffffffffffffff10158160481c60ff16806090149080609214906094141717169050612cc4576102405185815280602001806303ffffe010611734576102405269200000000020000000001794505b8481529350909192602001808214612cdb57612c4f565b5081900360051c64010000000082101561312957909160401b9060251b17699200000000000000000017176102005180600101610200523560f81c60011b5160f01c565b50610240519060401b176992000000000000000000176102005180600101610200523560f81c60011b5160f01c565b8181026102405180820180601f01601f1916602001806303ffffe01061173457610240528415612dab5791509250909190815b8360200360031b85901b815293509091928301808214612da057612d81565b508190039091612db5565b9350925090612db5565b6401000000008310156131295760401b9060201b17699200000000000000000017176102005180600101610200523560f81c60011b5160f01c565b8060481c60ff1680609414612e3e5780609214612e6457505b8060201c63ffffffff168210156131215763ffffffff16015160f81c6102005180600101610200523560f81c60011b5160f01c565b508060201c63ffffffff1660051c8210156131215763ffffffff169060051b0151612ee0565b508060401c60ff168015612ebe578060211115612ebe578160201c63ffffffff16819004831015613121579063ffffffff1682820201519060200360031b1c90506102005180600101610200523560f81c60011b5160f01c565b508060201c63ffffffff1660051c8210156131215763ffffffff169060051b01515b8060481c60ff168015612f0d57602111612f27576102005180600101610200523560f81c60011b5160f01c565b506102005180600101610200523560f81c60011b5160f01c565b63ffffffff16516102005180600101610200523560f81c60011b5160f01c565b919081908160481c60ff1680609414612f9457609214156130a6578160401c60ff1680602014612f8e5780609014612f8e5780609214612f8e5780609414612f8e576130a6565b50612f96565b505b8160201c63ffffffff1680601f166130a65760051c8110156130a65760051b9063ffffffff1680610300116130a657018060200161024051106130a6579063ffffffff191617908160481c60ff16806094146130aa5760921415613085578160401c60ff168060901490806092149060941417171561308557807dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168069ffffffffffffffffffff10158160481c60ff16806090149080609214906094141717169050613085575b6102405181815280602001806303ffffe010611734576102405269200000000020000000001790505b9063ffffffff16526102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b50807dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168069ffffffffffffffffffff10158160481c60ff168060901490806092149060941417171690501561305c578060f01c1561308557808060f01c6140001615159060481c60ff16609414161561305c57613085565b5f5ffd5b5f5ffd5b5f5ffd5b7f53415543650000000000000000000000000000000000000000000000000000005f5260045ffd5b5f5f5b8282146131f857838260051b01518060481c60ff1680156131cc57806021116131885760941461319757506131e9565b50506001019060010190613158565b8060f01c614000161515156131d9578060f01c6140006180001780911614156131d35760f01c6107ff16019060010190613158565b50506131e9565b506131e9565b50905065020000000000176131fb565b905065010000000000176131fb565b90505b905090505b8065010000000000116132265780650200000000001161321f57505f90565b5061400090565b806107ff10612b8957618000614000171790565b610200513560f81c61020051600101610200528015613271578060011461329e57806002146132cc57806003146132fa575061332b565b508063ffffffff169060201c63ffffffff1690a06102005180600101610200523560f81c60011b5160f01c565b50908063ffffffff169060201c63ffffffff1690a16102005180600101610200523560f81c60011b5160f01c565b50918063ffffffff169060201c63ffffffff1690a26102005180600101610200523560f81c60011b5160f01c565b50929091908063ffffffff169060201c63ffffffff1690a36102005180600101610200523560f81c60011b5160f01c565b939092908063ffffffff169060201c63ffffffff1690a46102005180600101610200523560f81c60011b5160f01c565b8063ffffffff169060201c63ffffffff1691f06102005180600101610200523560f81c60011b5160f01c565b8063ffffffff169060201c63ffffffff169192f56102005180600101610200523560f81c60011b5160f01c565b6102405180608001806303ffffe010611734576102405283816015015260ff8160200153828160350152818160550152605581602001209060803682376102405273ffffffffffffffffffffffffffffffffffffffff16925050506102005180600101610200523560f81c60011b5160f01c565b6102405180604001806303ffffe01061173457610240529080156134a757806080116134b85780610100116134c6578062010000116134db57806301000000116134f957806401000000001161352057806501000000000011613550578066010000000000001161356557806701000000000000001161357a5761358f565b5060808160360153601760d66135a4565b8160360153601760d66135a4565b608182603601538160370153601860d76135a4565b608282603601538060081c82603701538160380153601960d86135a4565b608382603601538060101c82603701538060081c82603801538160390153601a60d96135a4565b608482603601538060181c82603701538060101c82603801538060081c826039015381603a0153601b60da6135a4565b81601c015260858160360153601c60db6135a4565b81601d015260868160360153601d60dc6135a4565b81601e015260878160360153601e60dd6135a4565b81601f015260888160360153601f60de6135a4565b83836016015260948360210153826020015381602001209060403682376102405273ffffffffffffffffffffffffffffffffffffffff1690506102005180600101610200523560f81c60011b5160f01c565b610240518060a001806303ffffe01061173457610240528163ffffffff1681529060201c63ffffffff1681602001526f67363d3d37363d34f03d5260086018f360801b8160400152816010826040015ff580156136c6575f5f8360200151845187855af1156136ca5780826076015260d682608001536094826081015360018260960153601782608001209160a0368237610240529073ffffffffffffffffffffffffffffffffffffffff16803b156136ce57925050506102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f5ffd5b5f5ffd5b6102405180608001806303ffffe010611734576102405230816015015260ff81602001538181603501527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f81605501526055816020012073ffffffffffffffffffffffffffffffffffffffff1680826016015260d68260200153609482602101536001826036015360178260200120916080368237610240529073ffffffffffffffffffffffffffffffffffffffff169150506102005180600101610200523560f81c60011b5160f01c565b6102c051156137ac576137c9565b61024051806102c05261016001806303ffffe01061173457610240525b5f6102c0516101000152610240516102c051608001525b8060201c63ffffffff1660051c6102c0516040015263ffffffff166102c051606001525b5f6102c051602001525f6102c051525b6102c051604001516102c0515110156138d1576102c051606001516102c0515160051b01518060481c60ff1660941461386d57506102c051602001516001016102c051602001526102c051516001016102c05152613814565b8060f01c6140006180001780911614156138ab5760f01c6107ff166102c05160200151016102c051602001526102c051516001016102c05152613814565b506102c051602001516001016102c051602001526102c051516001016102c05152613814565b6102c0516020015160051b6102c05160800151016102c05160a001525f6102c051602001525f6102c051525b6102c051604001516102c051511015613e57576102c051606001516102c0515160051b01518060481c60ff1680156139cc578060211161398a57806090146139cc5780609414613ab65780609214613cac57506102c051608001516102c0516020015160051b01526102c051602001516001016102c051602001526102c051516001016102c051526138fd565b5063ffffffff16516102c051608001516102c0516020015160051b01526102c051602001516001016102c051602001526102c051516001016102c051526138fd565b506102c051608001516102c05160a00151036102c051608001516102c0516020015160051b01528060201c63ffffffff169063ffffffff16816102c05160a00151528115613a7c5781906102c05160a001516020015e80601f01601f1916819003366102c05160a00151602001830137601f01601f19166020016102c05160a00151016102c05160a001526102c051602001516001016102c051602001526102c051516001016102c051526138fd565b50506102c05160a001516020016102c05160a001526102c051602001516001016102c051602001526102c051516001016102c051526138fd565b508060f01c614000618000178091161415613c05578060f01c6107ff166102c05161014001528060201c63ffffffff1660051c60201b9063ffffffff1660401b17700100000000000000000000000000000000905b8070010000000000000000000000000000000014613be3578063ffffffff168160201c63ffffffff1614613bdd578060401c63ffffffff168163ffffffff1660051b01518060481c60ff16609414613bb85763ffffffff16516102c051610140015115613f23576102c0516101400151600190036102c05161014001526102c051608001516102c0516020015160051b01526102c051602001516001016102c05160200152600101613b0b565b90600101908060201c63ffffffff1660051c60201b9063ffffffff1660401b17613b0b565b50613b0b565b506102c05161014001511515613f23576102c051516001016102c051526138fd565b6102c051608001516102c05160a00151036102c051608001516102c0516020015160051b01526102c051602001516001016102c051602001526102c051516001016102c051526102c05161012001526102c05161010001516001016102c05161010001526102c051602001516102c051604001516102c051606001516102c051608001516102c051516102c05160a001516102c051608001526102c05161012001516137e0565b506102c051608001516102c05160a00151036102c051608001516102c0516020015160051b01528060401c60ff166102c05160e001528060201c63ffffffff169063ffffffff166102c05160c001526102c05160e0015115613dae5760206102c05160e0015111613dae576102c05160e001519004806102c05160a00151525f5b81811015613d71576102c05160c001516102c05160e00151820201516102c05160e0015160200360031b1c6102c05160a001516020018260051b0152600101613d2d565b5060051b6020016102c05160a00151016102c05160a001526102c051602001516001016102c051602001526102c051516001016102c051526138fd565b60051c806102c05160a00151526102c05161012001526102c051602001516001016102c051602001526102c051516001016102c051526102c05161010001516001016102c05161010001526102c051602001516102c051604001516102c051606001516102c051608001516102c051516102c05160a001516020016102c051608001526102c05160c001516102c051606001526102c05161012001516102c05160400152613804565b6102c051610100015115613ea45760016102c0516101000151036102c05161010001526102c051526102c051608001526102c051606001526102c051604001526102c051602001526138fd565b6102c051608001516102c05160a00151036102c051608001516102c05160a00151601f01601f1916806303ffffe0106117345761024052640100000000811015613f1f57640100000000821015613f1f579060201b176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f5ffd5b6102005180600101610200523560f81c6102e05115613f4557613f62565b61024051806102e05261020001806303ffffe01061173457610240525b908060201c63ffffffff166102e0516101e0015263ffffffff166102e051604001526102e051604001516102e0516101e00151016102e0511015613fb6576102e051604001516102e0516102000111614cee575b806102e0516020015261024051806102e051608001529060051b01806303ffffe01061173457610240525f6102e051606001525f6102e051525f6102e05160a001525f6102e05160e001525b6102e051602001516102e0515114614bd0576102e05160a001511561402e576102e05160c00151610200525b610200513560f81c61020051600101610200528060901461411f578060941461426e578060921461477c575b801561406d578060201061406d57614071565b5060205b6102e05161010001526102e051606001516020016102e0516101e0015110614cee576102e051604001516102e0516060015101516102e051610100015160031b6001901b60019003166102405190815280602001806303ffffe0106117345761024052642000000000176102e051610100015160481b176102e051608001516102e0515160051b01526102e051516001016102e051526102e051606001516020016102e05160600152614002565b506102e051606001516020016102e0516101e0015110614cee576102e051604001516102e051606001510151806102e0516101e0015110614cee57806020016102e0516101e0015110614cee57806102e051604001510151806303ffffe010614cea578082016020016102e0516101e0015110614cee576102e05161010001526102e05160400151016020016102e0516101200152610240516102e05161014001526102e051610100015115614215576102e05161010001516102e05161012001516102e05161014001515e6102e0516101000151601f01601f19166102e051610140015101806303ffffe01061173457610240525b6102e051610100015160201b6102e0516101400151176990000000000000000000176102e051608001516102e0515160051b01526102e051516001016102e051526102e051606001516020016102e05160600152614002565b50610200513560f81c6102e051610100015261020051600101610200525f6102e05161018001525f6102e0516101a001526102e05161010001516102e0516101c00152610200515b6102e0516101c001511561433f57803560f81c90600101906102e0516101c00151600190036102e0516101c001528060941461430d57602010614339576102e05161018001516001016102e05161018001526142b6565b5060016102e0516101a00152803560f81c6102e0516101c00151016102e0516101c001526001016142b6565b5061448d565b506102e0516101a00151156145dd575b6102e051610180015160051b6102e0516060015101806102e0516101e0015110614cee576102e051604001516102e05160600151016102e05161012001526102e051606001516102e0516101e00151036102e05161016001526102e0516060015261024051806102e05161014001526102e051610100015160051b01806303ffffe01061173457610240526102e05160e001516001016102e05160e001526102e0516101e001516102e05160c001516102e05160a001516102e051608001516102e051606001516102e051604001516102e051602001516102e051516102e05161012001516102e051604001526102e05161016001516102e0516101e001526102e05161010001516102e051602001526102e05161014001516102e051608001525f6102e051606001525f6102e051525f6102e05160a00152614002565b6102e051606001516020016102e0516101e0015110614cee576102e051604001516102e051606001510151806102e0516101e0015110614cee57806102e05160400151016102e05161012001526102e0516101e00151036102e05161016001526102e051606001516020016102e0516060015261024051806102e05161014001526102e051610100015160051b01806303ffffe01061173457610240526102e05160e001516001016102e05160e001526102e0516101e001516102e05160c001516102e05160a001516102e051608001516102e051606001516102e051604001516102e051602001516102e051516102e05161012001516102e051604001526102e05161016001516102e0516101e001526102e05161010001516102e051602001526102e05161014001516102e051608001525f6102e051606001525f6102e051525f6102e05160a00152614002565b6102e051610100015160051b6102e05160600151016102e0516101e0015110614cee576102e051604001516102e05160600151016102e051610120015261024051806102e05161014001526102e051610100015160051b01806303ffffe01061173457610240525f5b806102e0516101000151146146f157610200513560f81c6102005160010161020052801561467b578060201061467b5761467f565b5060205b6102e05161016001526102e05161012001518160051b01516102e051610160015160031b6001901b60019003166102405190815280602001806303ffffe0106117345761024052642000000000176102e051610160015160481b176102e05161014001518260051b0152600101614646565b5061470c6102e05161014001516102e0516101000151613155565b60f01b6102e05161010001518060ff1660401b9060251b176994000000000000000000176102e051610140015117176102e051608001516102e0515160051b01526102e051516001016102e051526102e051610100015160051b6102e05160600151016102e05160600152614002565b50610200516102e05161010001526102e05161010001513560f81c6102e05161012001526102e051606001516020016102e0516101e0015110614cee576102e051604001516102e051606001510151806102e0516101e0015110614cee57806020016102e0516101e0015110614cee57806102e05160400151018051806303ffffe060051c10614ce6578060051b60200183016102e0516101e0015110614cee576102e05161014001526020016102e05161016001526020016102e0516101e00151036102e0516101a001526102e051606001516020016102e051606001526102e05161012001518015614ce25780602111614a37578060901461488f578060921461488f578060941461488f57614ce2565b506102e0516101400151156149a55761024051806102e05161018001526102e051610140015160051b018063040000001061312d57806303ffffe01061173457610240526102e05160e001516001016102e05160e001526102e0516101e001516102e05160c001516102e05160a001516102e051608001516102e051606001516102e051604001516102e051602001516102e051516102e05161016001516102e051604001526102e0516101a001516102e0516101e001526102e05161014001516102e051602001526102e05161018001516102e051608001525f6102e051606001525f6102e0515260016102e05160a001526102e05161010001516102e05160c001526102e051610100015161020052614002565b6102005160015b80156149f157813560f81c9160010191806094146149d657806092146149eb5750600190036149ac565b50813560f81c019060010190600190036149ac565b506149ac565b50610200526102e051610120015160401b69920000000000000000001761024051176102e051608001516102e0515160051b01526102e051516001016102e05152614002565b5061020051600101610200526102e051610140015115614b8f576102e05161014001516102e0516101200151026102e0516101800152610240516102e0516101a001525f6102e0516101c001525b6102e0516101c001516102e051610140015114614b10576102e05161016001516102e0516101c0015160051b01516102e051610120015160031b6001901b60019003166102e051610120015160200360031b1b6102e0516101c001516102e0516101200151026102e0516101a0015101526102e0516101c001516001016102e0516101c00152614a85565b6102e0516101800151601f01601f19166020016102e0516101a0015101806303ffffe01061173457610240526102e051610180015160201b6102e0516101a00151176102e051610120015160401b176992000000000000000000176102e051608001516102e0515160051b01526102e051516001016102e05152614002565b610240516102e051610120015160401b699200000000000000000017176102e051608001516102e0515160051b01526102e051516001016102e05152614002565b6102e05160e0015115614cf25760016102e05160e00151036102e05160e001526102e05160a0015115614c32576102e05160c001513560f81c60401b6992000000000000000000176102e0516020015160251b176102e0516080015117614c78565b614c4a6102e051608001516102e05160200151613155565b60f01b6102e051602001518060ff1660401b9060251b176994000000000000000000176102e0516080015117175b906102e05152906102e05160200152906102e05160400152906102e05160600152906102e05160800152906102e05160a00152906102e05160c00152906102e0516101e001526102e051608001516102e0515160051b01526102e051516001016102e05152614002565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b614d0a6102e051608001516102e05160200151613155565b60f01b6102e051602001518060ff1660401b9060251b176994000000000000000000176102e0516080015117176102005180600101610200523560f81c60011b5160f01c565b6102e05115614d5e57614d7b565b61024051806102e05261020001806303ffffe01061173457610240525b8060481c6090141561519a578063ffffffff16806103001161519a57806102e051529060201c63ffffffff160180610240511061519a576102e05160200152610200518060020180361061519a57903560f01c0180361061519a576102e0516040015261020051600201610200525f6102e0516060015260046102e05151808201806102e051602001511061519a576102e05152519060200360031b1c6353410100141561519a57614e2b614e69565b6102e051516102e05160200151141561519a57610200516102e05160400151141561519a576102005180600101610200523560f81c60011b5160f01c565b6102e051606001516001018060201061519a576102e05160600152600161020051808201806102e051604001511061519a5761020052359060200360031b1c80602014614ed55780604014614ed55780609014614f3b5780609214614f9357806094146150b15761519a565b60016102e05151808201806102e051602001511061519a576102e05152519060200360031b1c8060201061519a576102e05151808201806102e051602001511061519a576102e05152519060200360031b1c90604014614f3457615183565b1515615183565b5060046102e05151808201806102e051602001511061519a576102e05152519060200360031b1c6102e05151808201806102e051602001511061519a576102e051529060201b17699000000000000000000017615183565b50600261020051808201806102e051604001511061519a5761020052359060200360031b1c801561519a5761020051808201806102e051604001511061519a57915060046102e05151808201806102e051602001511061519a576102e05152519060200360031b1c806303ffffe060051c1061519a57610240518160051b8101806303ffffe0106117345761024052823560f81c8060401461503457615038565b5060205b8060201461505d578060901461505d578060921461505d578060941461505d5761519a565b60401b8260251b17811769920000000000000000001791905b81156150a4578361020052615089614e69565b81528461020051141561519a57602001906001900390615076565b5050916102005250615183565b50600261020051808201806102e051604001511061519a5761020052359060200360031b1c806303ffffe060051c1061519a57610240518160051b8101806303ffffe01061173457610240528160251b81176994000000000000000000178290915b811561516a57610200513560f81c615129614e69565b81604010615158576102405180602001806303ffffe01061173457610240529081526920000000002000000000175b90508152602001906001900390615113565b505061517c8163ffffffff1683613155565b60f01b1790505b6102e05160600151600190036102e0516060015290565b5f5ffd5b6102a051156151bc576102805180156151b75761026051fd5b505f5ffd5b8061dead14615203578060201c63ffffffff169063ffffffff1681156151fc5780610300116151f85781810161024051106151f85781905f5e5ff35b5f5ffd5b5050505f5ff35b505f5ff360e54e1eb8d31e74ab4dead131f979b862651765e7c3665d302a289d5ee96d8e6957431eb5d31374a44de5d13ef976b86d651865eac36b5d3d2a259d53e96e8e6a574683b37c1594a32fe263393b70df75a80058f10b730e25b43d154b5b77f26e4c441bb2fc140da28ee33c366e7edf65521062e11460fa365d2eda58fe6469739159ceaf8108a8be6bffa024c26c5d7735023ef32672d224503b384d3a71d160e06e6aa54a03c0a100e1f1366e643165521062e11460fa365d2eda58fe6469757b5fe8a9d30f1eb999f80f22916a0a719904c3f5937487220e3a934cd1646974e45d63ab540de5bb16fe5a254e7edf65521062e11460fa365d2eda58fe646976955cf28e282f8c9ecadf55026f49fa73fe06adf61b60fa365d2eda58fe64696a7a40b596b1304684bbc901101d52d865521062faee4e4a7afa2eda58fe6469568974499c5939f08e31fa4d366e7edf65521062e11460fa365d2eda58fe646976fd5369bc841a53acbaed162fbf5b8c65521062e11460fa365d2eda58fe646960e04a99bc841a53bafbfb3105a37edf65521062e11460fa365d2eda58fe646960ec497bbf5c19edaf2eee9c350e7d99666e1370e21c621434992c605a6e661f628c48dbbebc184da94ee8fc33ae7b7960ce1510e47c65b433792bc05c0e60bf642c4e3baa4b1a53acbaed16366e7edf65521062e11460fa365d2eda58fe6469"
|
|
2
|
+
"runtimeCreationCode": "0x615432808038035f393081526020015ff3602060203803608039608051301461001a573060e05261001f565b3360e0525b5f60205263eb77129b60e01b6101205260206020600461012060e0515afa1561014357610147565b6101605160e0518181141561014357815f5260205f207f243f6a8885a308d313198a2e03707344a4093822299f31d0082efa98ec4e6c8918815f5260205f207f452821e638d01377be5466cf34e90c6cc0ac29b7c97c50dd3f84d5b5b54709171860206080206102006152325f39805f5b80518218815260200180610200116100b85750505f61020052825f5b80518218815260200180610200116100d45750505f6102a052805f5b80518218815260200180610200116100f057505061030061024052815f5b805182188152602001806102001161010e575050505050505061dead6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b7f9e3779b97f4a7c159e3779b97f4a7c159e3779b97f4a7c159e3779b97f4a7c1560a052602060a020807ff698f2638ab1c8273f2b253967d5020f0df917af17b3046c2628460ab7e5142118604052806101605273ffffffffffffffffffffffffffffffffffffffff16738dfa7c88ecd6bc82d4014762d8dc6d5cc00c7373185f5260ff600b536055600b2073ffffffffffffffffffffffffffffffffffffffff1661016052610047565b6151c8565b5f5ffd5b806102005180600101610200523560f81c60011b5160f01c565b816102005180600101610200523560f81c60011b5160f01c565b826102005180600101610200523560f81c60011b5160f01c565b836102005180600101610200523560f81c60011b5160f01c565b846102005180600101610200523560f81c60011b5160f01c565b856102005180600101610200523560f81c60011b5160f01c565b866102005180600101610200523560f81c60011b5160f01c565b876102005180600101610200523560f81c60011b5160f01c565b886102005180600101610200523560f81c60011b5160f01c565b896102005180600101610200523560f81c60011b5160f01c565b8a6102005180600101610200523560f81c60011b5160f01c565b8b6102005180600101610200523560f81c60011b5160f01c565b8c6102005180600101610200523560f81c60011b5160f01c565b8d6102005180600101610200523560f81c60011b5160f01c565b8e6102005180600101610200523560f81c60011b5160f01c565b8f6102005180600101610200523560f81c60011b5160f01c565b506102005180600101610200523560f81c60011b5160f01c565b906102005180600101610200523560f81c60011b5160f01c565b916102005180600101610200523560f81c60011b5160f01c565b926102005180600101610200523560f81c60011b5160f01c565b936102005180600101610200523560f81c60011b5160f01c565b946102005180600101610200523560f81c60011b5160f01c565b956102005180600101610200523560f81c60011b5160f01c565b966102005180600101610200523560f81c60011b5160f01c565b976102005180600101610200523560f81c60011b5160f01c565b986102005180600101610200523560f81c60011b5160f01c565b996102005180600101610200523560f81c60011b5160f01c565b9a6102005180600101610200523560f81c60011b5160f01c565b9b6102005180600101610200523560f81c60011b5160f01c565b9c6102005180600101610200523560f81c60011b5160f01c565b9d6102005180600101610200523560f81c60011b5160f01c565b9e6102005180600101610200523560f81c60011b5160f01c565b9f6102005180600101610200523560f81c60011b5160f01c565b90916102005180600101610200523560f81c60011b5160f01c565b6102005180600101803610610c4957610200523560f81c6102005180600101610200523560f81c60011b5160f01c565b6102005180600201803610610c4957610200523560f01c6102005180600101610200523560f81c60011b5160f01c565b6102005180600301803610610c4957610200523560e81c6102005180600101610200523560f81c60011b5160f01c565b6102005180600401803610610c4957610200523560e01c6102005180600101610200523560f81c60011b5160f01c565b6102005180600501803610610c4957610200523560d81c6102005180600101610200523560f81c60011b5160f01c565b6102005180600601803610610c4957610200523560d01c6102005180600101610200523560f81c60011b5160f01c565b6102005180600701803610610c4957610200523560c81c6102005180600101610200523560f81c60011b5160f01c565b6102005180600801803610610c4957610200523560c01c6102005180600101610200523560f81c60011b5160f01c565b6102005180600901803610610c4957610200523560b81c6102005180600101610200523560f81c60011b5160f01c565b6102005180600a01803610610c4957610200523560b01c6102005180600101610200523560f81c60011b5160f01c565b6102005180600b01803610610c4957610200523560a81c6102005180600101610200523560f81c60011b5160f01c565b6102005180600c01803610610c4957610200523560a01c6102005180600101610200523560f81c60011b5160f01c565b6102005180600d01803610610c4957610200523560981c6102005180600101610200523560f81c60011b5160f01c565b6102005180600e01803610610c4957610200523560901c6102005180600101610200523560f81c60011b5160f01c565b6102005180600f01803610610c4957610200523560881c6102005180600101610200523560f81c60011b5160f01c565b6102005180601001803610610c4957610200523560801c6102005180600101610200523560f81c60011b5160f01c565b6102005180601101803610610c4957610200523560781c6102005180600101610200523560f81c60011b5160f01c565b6102005180601201803610610c4957610200523560701c6102005180600101610200523560f81c60011b5160f01c565b6102005180601301803610610c4957610200523560681c6102005180600101610200523560f81c60011b5160f01c565b6102005180601401803610610c4957610200523560601c6102005180600101610200523560f81c60011b5160f01c565b6102005180601501803610610c4957610200523560581c6102005180600101610200523560f81c60011b5160f01c565b6102005180601601803610610c4957610200523560501c6102005180600101610200523560f81c60011b5160f01c565b6102005180601701803610610c4957610200523560481c6102005180600101610200523560f81c60011b5160f01c565b6102005180601801803610610c4957610200523560401c6102005180600101610200523560f81c60011b5160f01c565b6102005180601901803610610c4957610200523560381c6102005180600101610200523560f81c60011b5160f01c565b6102005180601a01803610610c4957610200523560301c6102005180600101610200523560f81c60011b5160f01c565b6102005180601b01803610610c4957610200523560281c6102005180600101610200523560f81c60011b5160f01c565b6102005180601c01803610610c4957610200523560201c6102005180600101610200523560f81c60011b5160f01c565b6102005180601d01803610610c4957610200523560181c6102005180600101610200523560f81c60011b5160f01c565b6102005180601e01803610610c4957610200523560101c6102005180600101610200523560f81c60011b5160f01c565b6102005180601f01803610610c4957610200523560081c6102005180600101610200523560f81c60011b5160f01c565b6102005180602001803610610c495761020052356102005180600101610200523560f81c60011b5160f01c565b610200513560f81c806102005101600101803610610c49576102405182610200516001018237808301601f01601f1916806303ffffe010611734576102405290610200529060201b176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610200513560f01c806102005101600201803610610c49576102405182610200516002018237808301601f01601f1916806303ffffe010611734576102405290610200529060201b176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b807dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660501c610cf3578060f01c15610c9a57808060f01c6140001615159060481c60ff166094141615610cf3575b8060481c60ff168015610cf15780609011610d0c57609110610d0c578060201c63ffffffff1660208111610d0c579063ffffffff1651906020036008021c6102005180600101610200523560f81c60011b5160f01c565b505b6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b807dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660501c610dd0578060f01c15610d5d57808060f01c6140001615159060481c60ff166094141615610dd0575b8060481c60ff168015610dce5780609011610de957609110610de9578060201c63ffffffff1660208111610de9579063ffffffff16515f5f5b838114610db15782811a816008021b90911790600101610d96565b509150506102005180600101610200523560f81c60011b5160f01c565b505b6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b8101809111610f57576102005180600101610200523560f81c60011b5160f01c565b818110610f5757036102005180600101610200523560f81c60011b5160f01c565b8082028115610e46578181048314610e46575f5ffd5b9150506102005180600101610200523560f81c60011b5160f01c565b8115610f5757046102005180600101610200523560f81c60011b5160f01c565b8115610f5757066102005180600101610200523560f81c60011b5160f01c565b8115610f1e578015610f3b5760015b8260011615610ed557818082028115610ed1578181048314610ed1575f5ffd5b9150505b9160011c918215610f025781808082028115610ef8578181048314610ef8575f5ffd5b9150509150610eb1565b9150506102005180600101610200523560f81c60011b5160f01c565b505060016102005180600101610200523560f81c60011b5160f01c565b50505f6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b166102005180600101610200523560f81c60011b5160f01c565b176102005180600101610200523560f81c60011b5160f01c565b186102005180600101610200523560f81c60011b5160f01c565b196102005180600101610200523560f81c60011b5160f01c565b1b6102005180600101610200523560f81c60011b5160f01c565b1c6102005180600101610200523560f81c60011b5160f01c565b806002116110f4578060018160801c15611014579060801c9060401b5b8160401c15611026579060401c9060201b5b8160201c15611038579060201c9060101b5b8160101c1561104a579060101c9060081b5b8160081c1561105c579060081c9060041b5b8160041c1561106e579060041c9060021b5b9060041161107a5760011b5b806002020160011c818190040160011c818190040160011c818190040160011c818190040160011c818190040160011c818190040160011c8181900491508181116110da5790506102005180600101610200523560f81c60011b5160f01c565b506102005180600101610200523560f81c60011b5160f01c565b6102005180600101610200523560f81c60011b5160f01c565b8282025f19838509818110908290030380156111a557828110156111c95782848609828111909103910382805f031683819004935080910490805f03046001019091021781806003026002188181026002030281810260020302818102600203028181026002030281810260020302818102600203029050029050905090506102005180600101610200523560f81c60011b5160f01c565b5081156111c957049150506102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f036102005180600101610200523560f81c60011b5160f01c565b91086102005180600101610200523560f81c60011b5160f01c565b91096102005180600101610200523560f81c60011b5160f01c565b056102005180600101610200523560f81c60011b5160f01c565b076102005180600101610200523560f81c60011b5160f01c565b1d6102005180600101610200523560f81c60011b5160f01c565b0b6102005180600101610200523560f81c60011b5160f01c565b156102005180600101610200523560f81c60011b5160f01c565b15156102005180600101610200523560f81c60011b5160f01c565b3b15156102005180600101610200523560f81c60011b5160f01c565b3b156102005180600101610200523560f81c60011b5160f01c565b156102005180600101610200523560f81c60011b5160f01c565b146102005180600101610200523560f81c60011b5160f01c565b14156102005180600101610200523560f81c60011b5160f01c565b116102005180600101610200523560f81c60011b5160f01c565b106102005180600101610200523560f81c60011b5160f01c565b10156102005180600101610200523560f81c60011b5160f01c565b11156102005180600101610200523560f81c60011b5160f01c565b136102005180600101610200523560f81c60011b5160f01c565b126102005180600101610200523560f81c60011b5160f01c565b12156102005180600101610200523560f81c60011b5160f01c565b13156102005180600101610200523560f81c60011b5160f01c565b15901517156102005180600101610200523560f81c60011b5160f01c565b1715156102005180600101610200523560f81c60011b5160f01c565b159015186102005180600101610200523560f81c60011b5160f01c565b336102005180600101610200523560f81c60011b5160f01c565b326102005180600101610200523560f81c60011b5160f01c565b5a6102005180600101610200523560f81c60011b5160f01c565b466102005180600101610200523560f81c60011b5160f01c565b306102005180600101610200523560f81c60011b5160f01c565b436102005180600101610200523560f81c60011b5160f01c565b426102005180600101610200523560f81c60011b5160f01c565b416102005180600101610200523560f81c60011b5160f01c565b446102005180600101610200523560f81c60011b5160f01c565b456102005180600101610200523560f81c60011b5160f01c565b476102005180600101610200523560f81c60011b5160f01c565b346102005180600101610200523560f81c60011b5160f01c565b486102005180600101610200523560f81c60011b5160f01c565b3a6102005180600101610200523560f81c60011b5160f01c565b604a6102005180600101610200523560f81c60011b5160f01c565b316102005180600101610200523560f81c60011b5160f01c565b406102005180600101610200523560f81c60011b5160f01c565b3b6102005180600101610200523560f81c60011b5160f01c565b3f6102005180600101610200523560f81c60011b5160f01c565b496102005180600101610200523560f81c60011b5160f01c565b3b15156102005180600101610200523560f81c60011b5160f01c565b3b156102005180600101610200523560f81c60011b5160f01c565b3661024051815f8237808201601f01601f1916806303ffffe01061173457610240529060201b176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b6102405180630400000003821161173057809101601f01601f1916610240526102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f5ffd5b806103001161177e57526102005180600101610200523560f81c60011b5160f01c565b806103001161177e57516102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5c6102005180600101610200523560f81c60011b5160f01c565b546102005180600101610200523560f81c60011b5160f01c565b5d6102005180600101610200523560f81c60011b5160f01c565b556102005180600101610200523560f81c60011b5160f01c565b610200526102005180600101610200523560f81c60011b5160f01c565b906117ea57506102005180600101610200523560f81c60011b5160f01c565b8060201c63ffffffff169063ffffffff16fd5b8060201c63ffffffff169063ffffffff16206102005180600101610200523560f81c60011b5160f01c565b8060201c63ffffffff169063ffffffff1681604114156119ef578373ffffffffffffffffffffffffffffffffffffffff1693508380156119ed5750610240518060e001806303ffffe010611734576102405281518260200151836040015160f81c86845280846020015282846040015281846060015260208460800160808660015afa1561192c5783608001518814806119015750505050611930565b9360e03682376102405250505093505050506102005180600101610200523560f81c60011b5160f01c565b5050505b843b156119c6577f1626ba7e000000000000000000000000000000000000000000000000000000008152838160040152604081602401528281604401528282826064015e60208160c0018460640183885afa156119c657601f3d11156119c6578060c0015160e01c631626ba7e149060e03682376102405293505050506102005180600101610200523560f81c60011b5160f01c565b60e036823761024052505050505f6102005180600101610200523560f81c60011b5160f01c565b505b505050505f6102005180600101610200523560f81c60011b5160f01c565b8060201c63ffffffff169063ffffffff165f5f83836102405180602001806303ffffe010611734576102405260206020380382398051906020368237610240525afa91505015611aee575f6102a052610240513d8015611ac857815f82913e818101601f01601f1916806303ffffe0106117345761024052640100000000811015611b1557640100000000821015611b155760201b176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b506990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b3d610280526102405180610260525f3d913e610280518015611b105761026051fd5b505f5ffd5b5f5ffd5b8060481c60ff1660921415612138578060401c60ff1680609014908060921490609414171715612138578063ffffffff169060201c63ffffffff168161030011612138578181016102405110612138578060051c80600f1061213c57610240518061044001806303ffffe0106117345761024052805f5b838114611beb578060051b8601518060481c60ff1660901415612140578060201c63ffffffff1680602010612144579063ffffffff168061030011612140578082016102405110612140578190845e90910190600101611b90565b50808261034001528581600101527f50726f6772616d446572697665644164647265737300000000000000000000008160210152808290036036018261036001525060ff8161038001526020816102600152602081610260016020015260208161026001604001527f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8161026001608001527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed816102600160a001525b8061038001518060e0116121505781610340015153602081610240018261036001518360025afa1561214857806102400151807fff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff001660081c907fff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00191660081b17807fffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00001660101c907fffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000191660101b17807fffffffff00000000ffffffff00000000ffffffff00000000ffffffff000000001660201c907fffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000191660201b17807fffffffffffffffff0000000000000000ffffffffffffffff00000000000000001660401c907fffffffffffffffff0000000000000000ffffffffffffffff0000000000000000191660401b178060801c9060801b17600160ff1b1916816103a00152806103a00151807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed600190037f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9108826103c001527f52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a37f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed910960017f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9108816103e00152806103e0015180807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109907f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816104000152806104000151807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816103e001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816103c001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed91098161026001606001526020816103200160c0836102600160055afa1561214c57806103c001518161040001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed91098161032001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816104200152806104200151807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed9109816103e001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed910980826103c001511490826103c001517f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed031417156120ff5780610380015160019003816103800152611ca8565b80610240015181610380015191610440368237610240529150915091509150906102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b8060201c63ffffffff169063ffffffff165f5f838386885af193505050501561221f573d156121f6573d610280526102405180610260525f3d913e610260513d01601f01601f1916806303ffffe01061173457610240526401000000003d101561227a5764010000000061026051101561227a573d60201b61026051176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610240516990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610200513560f81c60b714612255573d610280526102405180610260525f3d913e6102805180156122505761026051fd5b505f5ffd5b5f6102805260016102a0525f6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b8060201c63ffffffff169063ffffffff165f5f8383865afa9250505015612347573d1561231e573d610280526102405180610260525f3d913e610260513d01601f01601f1916806303ffffe01061173457610240526401000000003d10156123a2576401000000006102605110156123a2573d60201b61026051176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610240516990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610200513560f81c60b71461237d573d610280526102405180610260525f3d913e6102805180156123785761026051fd5b505f5ffd5b5f6102805260016102a0525f6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b8060201c63ffffffff169063ffffffff165f5f8383865af4925050501561246f573d15612446573d610280526102405180610260525f3d913e610260513d01601f01601f1916806303ffffe01061173457610240526401000000003d10156124ca576401000000006102605110156124ca573d60201b61026051176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610240516990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b610200513560f81c60b7146124a5573d610280526102405180610260525f3d913e6102805180156124a05761026051fd5b505f5ffd5b5f6102805260016102a0525f6102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b610200513560f81c6102a05115612509575f6102a0526102005160010161020052506102005180600101610200523560f81c60011b5160f01c565b6102005101600101610200526102005180600101610200523560f81c60011b5160f01c565b8060481c60ff168060941461258a57806092146125b057609014612568575060206102005180600101610200523560f81c60011b5160f01c565b60201c63ffffffff166102005180600101610200523560f81c60011b5160f01c565b5060201c63ffffffff1660051c6102005180600101610200523560f81c60011b5160f01c565b508060401c60ff16801581602010176125e7579060201c63ffffffff16046102005180600101610200523560f81c60011b5160f01c565b5060251c6307ffffff166102005180600101610200523560f81c60011b5160f01c565b8260481c60ff16801581609014176126f4576094146126df578260401c60ff168060401b69920000000000000000001793929190801581602010176126d7575b8263040000001061275a578163040000001061266c575b809102910290612679565b9050630400000090612661565b8260201c63ffffffff168281111561275a578290038181101561269857905b508263ffffffff1682019060201b1783806994000000000000000000146127085717925050506102005180600101610200523560f81c60011b5160f01c565b50602061264a565b6994000000000000000000929190602061264a565b506990000000000000000000929190612679565b6127248263ffffffff168360201c63ffffffff1660051c61317f565b60f01b17178060201c63ffffffff1660051c60ff1660401b17925050506102005180600101610200523560f81c60011b5160f01c565b5050505061024051178060481c60ff1660941461278a576102005180600101610200523560f81c60011b5160f01c565b6180006140001760f01b176102005180600101610200523560f81c60011b5160f01c565b610200513560f81c610200516001016102005280156129d85780600114612a02578160481c60ff16806094146127f8578060921461280a5750699000000000000000000090612823565b50699400000000000000000090612823565b508160401c60ff1660401b699200000000000000000017905b5f91906102405180915b801561292f578360481c60ff168060941461286c57806092146128d357505b8560481c60ff168015612866578060901461286657612a1c565b506128fa565b508560481c60ff168060941461288157612a1c565b508560f01c614000161515156128c4578560f01c6140006180001780911614156128b557938560f01c6107ff1601936128fa565b936501000000000017936128fa565b936502000000000017936128fa565b508560481c60ff168060921415612a1c57508360401c60ff168660401c60ff161415612a1c575b8560201c63ffffffff168015612929578663ffffffff168190845e909101905b9450909192936001900361282d565b5061291a565b5080601f01601f1916806303ffffe0106117345761024052819003640100000000811015612a1c57640100000000821015612a1c578280699400000000000000000014612999579060201b1717905090506102005180600101610200523560f81c60011b5160f01c565b846129a39061322a565b60f01b17908060051c60ff1660401b9091179060201b1717905090506102005180600101610200523560f81c60011b5160f01c565b50610240516990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b506102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b6102005180600101610200523560f81c8015612bb7575f9061024051808260051b0180806303ffffe0106117345761024052915090815b847dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168069ffffffffffffffffffff10158160481c60ff1680609014908060921490609414171716905015612b19578460f01c15612aec57848060f01c6140001615159060481c60ff166094141615612b19578460f01c614000618000178091161415612afb57928460f01c6107ff160192612b47565b8460481c60ff16609414612b0a575b92650100000000001792612b47565b92650200000000001792612b47565b6102405185815280602001806303ffffe0106117345761024052692000000000200000000017945092600101925b8481529350909192602001808214612b5e57612a57565b5081900360051c6401000000008210156131535791612b7c9061322a565b60f01b918060ff1660401b9060251b1769940000000000000000001717176102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b50610240516994000000000000000000176180006140001760f01b176102005180600101610200523560f81c60011b5160f01c565b61020051358060f81c9060f01c60ff166102005160020161020052612c28565b61020051358060f01c9060e81c60ff1661020051600301610200525b801561314f5780602111612d785780609014612c535780609214612c535780609414612c535761314f565b908015612d495761024051808260051b0180806303ffffe0106117345761024052915090815b847dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168069ffffffffffffffffffff10158160481c60ff16806090149080609214906094141717169050612cee576102405185815280602001806303ffffe010611734576102405269200000000020000000001794505b8481529350909192602001808214612d0557612c79565b5081900360051c64010000000082101561315357909160401b9060251b17699200000000000000000017176102005180600101610200523560f81c60011b5160f01c565b50610240519060401b176992000000000000000000176102005180600101610200523560f81c60011b5160f01c565b8181026102405180820180601f01601f1916602001806303ffffe01061173457610240528415612dd55791509250909190815b8360200360031b85901b815293509091928301808214612dca57612dab565b508190039091612ddf565b9350925090612ddf565b6401000000008310156131535760401b9060201b17699200000000000000000017176102005180600101610200523560f81c60011b5160f01c565b8060481c60ff1680609414612e685780609214612e8e57505b8060201c63ffffffff1682101561314b5763ffffffff16015160f81c6102005180600101610200523560f81c60011b5160f01c565b508060201c63ffffffff1660051c82101561314b5763ffffffff169060051b0151612f0a565b508060401c60ff168015612ee8578060211115612ee8578160201c63ffffffff1681900483101561314b579063ffffffff1682820201519060200360031b1c90506102005180600101610200523560f81c60011b5160f01c565b508060201c63ffffffff1660051c82101561314b5763ffffffff169060051b01515b8060481c60ff168015612f3757602111612f51576102005180600101610200523560f81c60011b5160f01c565b506102005180600101610200523560f81c60011b5160f01c565b63ffffffff16516102005180600101610200523560f81c60011b5160f01c565b919081908160481c60ff1680609414612fbe57609214156130d0578160401c60ff1680602014612fb85780609014612fb85780609214612fb85780609414612fb8576130d0565b50612fc0565b505b8160201c63ffffffff1680601f166130d05760051c8110156130d05760051b9063ffffffff1680610300116130d057018060200161024051106130d0579063ffffffff191617908160481c60ff16806094146130d457609214156130af578160401c60ff16806090149080609214906094141717156130af57807dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168069ffffffffffffffffffff10158160481c60ff168060901490806092149060941417171690506130af575b6102405181815280602001806303ffffe010611734576102405269200000000020000000001790505b9063ffffffff16526102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b50807dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff168069ffffffffffffffffffff10158160481c60ff1680609014908060921490609414171716905015613086578060f01c156130af57808060f01c6140001615159060481c60ff166094141615613086576130af565b5f5ffd5b5f5ffd5b5f5ffd5b7f53415543650000000000000000000000000000000000000000000000000000005f5260045ffd5b5f5f5b82821461322257838260051b01518060481c60ff1680156131f657806021116131b2576094146131c15750613213565b50506001019060010190613182565b8060f01c61400016151515613203578060f01c6140006180001780911614156131fd5760f01c6107ff16019060010190613182565b5050613213565b50613213565b5090506502000000000017613225565b90506501000000000017613225565b90505b905090505b8065010000000000116132505780650200000000001161324957505f90565b5061400090565b806107ff10612bb357618000614000171790565b610200513560f81c6102005160010161020052801561329b57806001146132c857806002146132f657806003146133245750613355565b508063ffffffff169060201c63ffffffff1690a06102005180600101610200523560f81c60011b5160f01c565b50908063ffffffff169060201c63ffffffff1690a16102005180600101610200523560f81c60011b5160f01c565b50918063ffffffff169060201c63ffffffff1690a26102005180600101610200523560f81c60011b5160f01c565b50929091908063ffffffff169060201c63ffffffff1690a36102005180600101610200523560f81c60011b5160f01c565b939092908063ffffffff169060201c63ffffffff1690a46102005180600101610200523560f81c60011b5160f01c565b8063ffffffff169060201c63ffffffff1691f06102005180600101610200523560f81c60011b5160f01c565b8063ffffffff169060201c63ffffffff169192f56102005180600101610200523560f81c60011b5160f01c565b6102405180608001806303ffffe010611734576102405283816015015260ff8160200153828160350152818160550152605581602001209060803682376102405273ffffffffffffffffffffffffffffffffffffffff16925050506102005180600101610200523560f81c60011b5160f01c565b6102405180604001806303ffffe01061173457610240529080156134d157806080116134e25780610100116134f057806201000011613505578063010000001161352357806401000000001161354a5780650100000000001161357a578066010000000000001161358f5780670100000000000000116135a4576135b9565b5060808160360153601760d66135ce565b8160360153601760d66135ce565b608182603601538160370153601860d76135ce565b608282603601538060081c82603701538160380153601960d86135ce565b608382603601538060101c82603701538060081c82603801538160390153601a60d96135ce565b608482603601538060181c82603701538060101c82603801538060081c826039015381603a0153601b60da6135ce565b81601c015260858160360153601c60db6135ce565b81601d015260868160360153601d60dc6135ce565b81601e015260878160360153601e60dd6135ce565b81601f015260888160360153601f60de6135ce565b83836016015260948360210153826020015381602001209060403682376102405273ffffffffffffffffffffffffffffffffffffffff1690506102005180600101610200523560f81c60011b5160f01c565b610240518060a001806303ffffe01061173457610240528163ffffffff1681529060201c63ffffffff1681602001526f67363d3d37363d34f03d5260086018f360801b8160400152816010826040015ff580156136f0575f5f8360200151845187855af1156136f45780826076015260d682608001536094826081015360018260960153601782608001209160a0368237610240529073ffffffffffffffffffffffffffffffffffffffff16803b156136f857925050506102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f5ffd5b5f5ffd5b6102405180608001806303ffffe010611734576102405230816015015260ff81602001538181603501527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f81605501526055816020012073ffffffffffffffffffffffffffffffffffffffff1680826016015260d68260200153609482602101536001826036015360178260200120916080368237610240529073ffffffffffffffffffffffffffffffffffffffff169150506102005180600101610200523560f81c60011b5160f01c565b6102c051156137d6576137f3565b61024051806102c05261016001806303ffffe01061173457610240525b5f6102c0516101000152610240516102c051608001525b8060201c63ffffffff1660051c6102c0516040015263ffffffff166102c051606001525b5f6102c051602001525f6102c051525b6102c051604001516102c0515110156138fb576102c051606001516102c0515160051b01518060481c60ff1660941461389757506102c051602001516001016102c051602001526102c051516001016102c0515261383e565b8060f01c6140006180001780911614156138d55760f01c6107ff166102c05160200151016102c051602001526102c051516001016102c0515261383e565b506102c051602001516001016102c051602001526102c051516001016102c0515261383e565b6102c0516020015160051b6102c05160800151016102c05160a001525f6102c051602001525f6102c051525b6102c051604001516102c051511015613e81576102c051606001516102c0515160051b01518060481c60ff1680156139f657806021116139b457806090146139f65780609414613ae05780609214613cd657506102c051608001516102c0516020015160051b01526102c051602001516001016102c051602001526102c051516001016102c05152613927565b5063ffffffff16516102c051608001516102c0516020015160051b01526102c051602001516001016102c051602001526102c051516001016102c05152613927565b506102c051608001516102c05160a00151036102c051608001516102c0516020015160051b01528060201c63ffffffff169063ffffffff16816102c05160a00151528115613aa65781906102c05160a001516020015e80601f01601f1916819003366102c05160a00151602001830137601f01601f19166020016102c05160a00151016102c05160a001526102c051602001516001016102c051602001526102c051516001016102c05152613927565b50506102c05160a001516020016102c05160a001526102c051602001516001016102c051602001526102c051516001016102c05152613927565b508060f01c614000618000178091161415613c2f578060f01c6107ff166102c05161014001528060201c63ffffffff1660051c60201b9063ffffffff1660401b17700100000000000000000000000000000000905b8070010000000000000000000000000000000014613c0d578063ffffffff168160201c63ffffffff1614613c07578060401c63ffffffff168163ffffffff1660051b01518060481c60ff16609414613be25763ffffffff16516102c051610140015115613f4d576102c0516101400151600190036102c05161014001526102c051608001516102c0516020015160051b01526102c051602001516001016102c05160200152600101613b35565b90600101908060201c63ffffffff1660051c60201b9063ffffffff1660401b17613b35565b50613b35565b506102c05161014001511515613f4d576102c051516001016102c05152613927565b6102c051608001516102c05160a00151036102c051608001516102c0516020015160051b01526102c051602001516001016102c051602001526102c051516001016102c051526102c05161012001526102c05161010001516001016102c05161010001526102c051602001516102c051604001516102c051606001516102c051608001516102c051516102c05160a001516102c051608001526102c051610120015161380a565b506102c051608001516102c05160a00151036102c051608001516102c0516020015160051b01528060401c60ff166102c05160e001528060201c63ffffffff169063ffffffff166102c05160c001526102c05160e0015115613dd85760206102c05160e0015111613dd8576102c05160e001519004806102c05160a00151525f5b81811015613d9b576102c05160c001516102c05160e00151820201516102c05160e0015160200360031b1c6102c05160a001516020018260051b0152600101613d57565b5060051b6020016102c05160a00151016102c05160a001526102c051602001516001016102c051602001526102c051516001016102c05152613927565b60051c806102c05160a00151526102c05161012001526102c051602001516001016102c051602001526102c051516001016102c051526102c05161010001516001016102c05161010001526102c051602001516102c051604001516102c051606001516102c051608001516102c051516102c05160a001516020016102c051608001526102c05160c001516102c051606001526102c05161012001516102c0516040015261382e565b6102c051610100015115613ece5760016102c0516101000151036102c05161010001526102c051526102c051608001526102c051606001526102c051604001526102c05160200152613927565b6102c051608001516102c05160a00151036102c051608001516102c05160a00151601f01601f1916806303ffffe0106117345761024052640100000000811015613f4957640100000000821015613f49579060201b176990000000000000000000176102005180600101610200523560f81c60011b5160f01c565b5f5ffd5b5f5ffd5b6102005180600101610200523560f81c6102e05115613f6f57613f8c565b61024051806102e05261020001806303ffffe01061173457610240525b908060201c63ffffffff166102e0516101e0015263ffffffff166102e051604001526102e051604001516102e0516101e00151016102e0511015613fe0576102e051604001516102e0516102000111614d18575b806102e0516020015261024051806102e051608001529060051b01806303ffffe01061173457610240525f6102e051606001525f6102e051525f6102e05160a001525f6102e05160e001525b6102e051602001516102e0515114614bfa576102e05160a0015115614058576102e05160c00151610200525b610200513560f81c610200516001016102005280609014614149578060941461429857806092146147a6575b801561409757806020106140975761409b565b5060205b6102e05161010001526102e051606001516020016102e0516101e0015110614d18576102e051604001516102e0516060015101516102e051610100015160031b6001901b60019003166102405190815280602001806303ffffe0106117345761024052642000000000176102e051610100015160481b176102e051608001516102e0515160051b01526102e051516001016102e051526102e051606001516020016102e0516060015261402c565b506102e051606001516020016102e0516101e0015110614d18576102e051604001516102e051606001510151806102e0516101e0015110614d1857806020016102e0516101e0015110614d1857806102e051604001510151806303ffffe010614d14578082016020016102e0516101e0015110614d18576102e05161010001526102e05160400151016020016102e0516101200152610240516102e05161014001526102e05161010001511561423f576102e05161010001516102e05161012001516102e05161014001515e6102e0516101000151601f01601f19166102e051610140015101806303ffffe01061173457610240525b6102e051610100015160201b6102e0516101400151176990000000000000000000176102e051608001516102e0515160051b01526102e051516001016102e051526102e051606001516020016102e0516060015261402c565b50610200513560f81c6102e051610100015261020051600101610200525f6102e05161018001525f6102e0516101a001526102e05161010001516102e0516101c00152610200515b6102e0516101c001511561436957803560f81c90600101906102e0516101c00151600190036102e0516101c001528060941461433757602010614363576102e05161018001516001016102e05161018001526142e0565b5060016102e0516101a00152803560f81c6102e0516101c00151016102e0516101c001526001016142e0565b506144b7565b506102e0516101a0015115614607575b6102e051610180015160051b6102e0516060015101806102e0516101e0015110614d18576102e051604001516102e05160600151016102e05161012001526102e051606001516102e0516101e00151036102e05161016001526102e0516060015261024051806102e05161014001526102e051610100015160051b01806303ffffe01061173457610240526102e05160e001516001016102e05160e001526102e0516101e001516102e05160c001516102e05160a001516102e051608001516102e051606001516102e051604001516102e051602001516102e051516102e05161012001516102e051604001526102e05161016001516102e0516101e001526102e05161010001516102e051602001526102e05161014001516102e051608001525f6102e051606001525f6102e051525f6102e05160a0015261402c565b6102e051606001516020016102e0516101e0015110614d18576102e051604001516102e051606001510151806102e0516101e0015110614d1857806102e05160400151016102e05161012001526102e0516101e00151036102e05161016001526102e051606001516020016102e0516060015261024051806102e05161014001526102e051610100015160051b01806303ffffe01061173457610240526102e05160e001516001016102e05160e001526102e0516101e001516102e05160c001516102e05160a001516102e051608001516102e051606001516102e051604001516102e051602001516102e051516102e05161012001516102e051604001526102e05161016001516102e0516101e001526102e05161010001516102e051602001526102e05161014001516102e051608001525f6102e051606001525f6102e051525f6102e05160a0015261402c565b6102e051610100015160051b6102e05160600151016102e0516101e0015110614d18576102e051604001516102e05160600151016102e051610120015261024051806102e05161014001526102e051610100015160051b01806303ffffe01061173457610240525f5b806102e05161010001511461471b57610200513560f81c610200516001016102005280156146a557806020106146a5576146a9565b5060205b6102e05161016001526102e05161012001518160051b01516102e051610160015160031b6001901b60019003166102405190815280602001806303ffffe0106117345761024052642000000000176102e051610160015160481b176102e05161014001518260051b0152600101614670565b506147366102e05161014001516102e051610100015161317f565b60f01b6102e05161010001518060ff1660401b9060251b176994000000000000000000176102e051610140015117176102e051608001516102e0515160051b01526102e051516001016102e051526102e051610100015160051b6102e05160600151016102e0516060015261402c565b50610200516102e05161010001526102e05161010001513560f81c6102e05161012001526102e051606001516020016102e0516101e0015110614d18576102e051604001516102e051606001510151806102e0516101e0015110614d1857806020016102e0516101e0015110614d1857806102e05160400151018051806303ffffe060051c10614d10578060051b60200183016102e0516101e0015110614d18576102e05161014001526020016102e05161016001526020016102e0516101e00151036102e0516101a001526102e051606001516020016102e051606001526102e05161012001518015614d0c5780602111614a6157806090146148b957806092146148b957806094146148b957614d0c565b506102e0516101400151156149cf5761024051806102e05161018001526102e051610140015160051b018063040000001061315757806303ffffe01061173457610240526102e05160e001516001016102e05160e001526102e0516101e001516102e05160c001516102e05160a001516102e051608001516102e051606001516102e051604001516102e051602001516102e051516102e05161016001516102e051604001526102e0516101a001516102e0516101e001526102e05161014001516102e051602001526102e05161018001516102e051608001525f6102e051606001525f6102e0515260016102e05160a001526102e05161010001516102e05160c001526102e05161010001516102005261402c565b6102005160015b8015614a1b57813560f81c916001019180609414614a005780609214614a155750600190036149d6565b50813560f81c019060010190600190036149d6565b506149d6565b50610200526102e051610120015160401b69920000000000000000001761024051176102e051608001516102e0515160051b01526102e051516001016102e0515261402c565b5061020051600101610200526102e051610140015115614bb9576102e05161014001516102e0516101200151026102e0516101800152610240516102e0516101a001525f6102e0516101c001525b6102e0516101c001516102e051610140015114614b3a576102e05161016001516102e0516101c0015160051b01516102e051610120015160031b6001901b60019003166102e051610120015160200360031b1b6102e0516101c001516102e0516101200151026102e0516101a0015101526102e0516101c001516001016102e0516101c00152614aaf565b6102e0516101800151601f01601f19166020016102e0516101a0015101806303ffffe01061173457610240526102e051610180015160201b6102e0516101a00151176102e051610120015160401b176992000000000000000000176102e051608001516102e0515160051b01526102e051516001016102e0515261402c565b610240516102e051610120015160401b699200000000000000000017176102e051608001516102e0515160051b01526102e051516001016102e0515261402c565b6102e05160e0015115614d1c5760016102e05160e00151036102e05160e001526102e05160a0015115614c5c576102e05160c001513560f81c60401b6992000000000000000000176102e0516020015160251b176102e0516080015117614ca2565b614c746102e051608001516102e0516020015161317f565b60f01b6102e051602001518060ff1660401b9060251b176994000000000000000000176102e0516080015117175b906102e05152906102e05160200152906102e05160400152906102e05160600152906102e05160800152906102e05160a00152906102e05160c00152906102e0516101e001526102e051608001516102e0515160051b01526102e051516001016102e0515261402c565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b614d346102e051608001516102e0516020015161317f565b60f01b6102e051602001518060ff1660401b9060251b176994000000000000000000176102e0516080015117176102005180600101610200523560f81c60011b5160f01c565b6102e05115614d8857614da5565b61024051806102e05261020001806303ffffe01061173457610240525b8060481c609014156151c4578063ffffffff1680610300116151c457806102e051529060201c63ffffffff16018061024051106151c4576102e0516020015261020051806002018036106151c457903560f01c018036106151c4576102e0516040015261020051600201610200525f6102e0516060015260046102e05151808201806102e05160200151106151c4576102e05152519060200360031b1c635341010014156151c457614e55614e93565b6102e051516102e0516020015114156151c457610200516102e0516040015114156151c4576102005180600101610200523560f81c60011b5160f01c565b6102e05160600151600101806020106151c4576102e05160600152600161020051808201806102e05160400151106151c45761020052359060200360031b1c80602014614eff5780604014614eff5780609014614f655780609214614fbd57806094146150db576151c4565b60016102e05151808201806102e05160200151106151c4576102e05152519060200360031b1c806020106151c4576102e05151808201806102e05160200151106151c4576102e05152519060200360031b1c90604014614f5e576151ad565b15156151ad565b5060046102e05151808201806102e05160200151106151c4576102e05152519060200360031b1c6102e05151808201806102e05160200151106151c4576102e051529060201b176990000000000000000000176151ad565b50600261020051808201806102e05160400151106151c45761020052359060200360031b1c80156151c45761020051808201806102e05160400151106151c457915060046102e05151808201806102e05160200151106151c4576102e05152519060200360031b1c806303ffffe060051c106151c457610240518160051b8101806303ffffe0106117345761024052823560f81c8060401461505e57615062565b5060205b80602014615087578060901461508757806092146150875780609414615087576151c4565b60401b8260251b17811769920000000000000000001791905b81156150ce5783610200526150b3614e93565b8152846102005114156151c4576020019060019003906150a0565b50509161020052506151ad565b50600261020051808201806102e05160400151106151c45761020052359060200360031b1c806303ffffe060051c106151c457610240518160051b8101806303ffffe01061173457610240528160251b81176994000000000000000000178290915b811561519457610200513560f81c615153614e93565b81604010615182576102405180602001806303ffffe01061173457610240529081526920000000002000000000175b9050815260200190600190039061513d565b50506151a68163ffffffff168361317f565b60f01b1790505b6102e05160600151600190036102e0516060015290565b5f5ffd5b6102a051156151e6576102805180156151e15761026051fd5b505f5ffd5b8061dead1461522d578060201c63ffffffff169063ffffffff1681156152265780610300116152225781810161024051106152225781905f5e5ff35b5f5ffd5b5050505f5ff35b505f5ff360e54e1eb8d31e74ab4dead131f979b862651765e7c3665d302a289d5ee96d8e6957431eb5d31374a44de5d13ef976b86d651865eac36b5d3d2a259d53e96e8e6a574683b37c1594a32fe263393b70df75a80058f10b730e25b43d154b5b77f26e4c441bb2fc140da28ee33c366e7edf65521062e11460fa365d2eda58fe6469739159ceaf8108a8be6bffa024c26c5d7735023ef32672d224503b384d3a71d160e06e40a54a03c0a100e1f1366e643165521062e11460fa365d2eda58fe6469757b5fe8a9d30f1eb999f80f22916a0a719904c3f5937487220e3a934cd1646974e45d63ab540de5bb16fe5a254e7edf65521062e11460fa365d2eda58fe646976955cf28ef62ff69efcdf3f01b949d473fe06adf61b60fa365d2eda58fe64696a7a40b5969f37a8876dcaeb1037513265521062faee4e7c7ad02eda58fe646956df743f9c2739da8eebfa4d366e7edf65521062e11460fa365d2eda58fe646976fd5369bc841a53acbaed162fbf5be665521062e11460fa365d2eda58fe646960e04a99bc841a53bafbfb3105fd7edf65521062e11460fa365d2eda58fe646960ec497bbf5c19edaf2eee9c350e7d99666e1370e21c621434992c605a6e661f628c48dbbebc184da94ee8fc33ae7b7960ce1510e47c65b433792bc05c0e60bf642c4e3baa4b1a53acbaed16366e7edf65521062e11460fa365d2eda58fe6469"
|
|
3
3
|
}
|
|
Binary file
|
|
Binary file
|
|
@@ -5,10 +5,17 @@
|
|
|
5
5
|
* v12 runtime creation code, but not the ADDRESSES of the deployed contracts —
|
|
6
6
|
* so a consumer could encode a call and had nowhere to send it, and
|
|
7
7
|
* `createSauceSvmClient` (which takes a required `programId`) had no default to
|
|
8
|
-
* offer.
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* offer.
|
|
9
|
+
*
|
|
10
|
+
* TWO sources live here, and the split is deliberate:
|
|
11
|
+
* - CURRENT ADDRESSES — `./v12-addresses.ts` (`v12EngineAddress`, `v12RouterAddress`,
|
|
12
|
+
* `v12KitchenAddress`, `v12SvmEngineProgramId`, …). Assembled by the sync from each release's
|
|
13
|
+
* `addresses.json` and shipped as `artifacts/V12Deployments.json`. This is what to read for the
|
|
14
|
+
* address of the deployed Kitchen / engine / Router today.
|
|
15
|
+
* - CHAIN LIVENESS — `v12.generated.ts` below (`isV12Live`, `v12LiveChainIds`, `v12ChainSlug`). A
|
|
16
|
+
* hand-maintained roster of WHICH chains the stack is deployed on. Its ADDRESS constants record
|
|
17
|
+
* the PREVIOUS (pre-`cook`) deployment and are superseded by the current addresses above — see
|
|
18
|
+
* that file's header before relying on `V12_EVM_CONTRACTS` / `v12SvmProgramId`.
|
|
12
19
|
*
|
|
13
20
|
* The addresses are chain-invariant — the same on every chain they were deployed
|
|
14
21
|
* to — which is why this exposes one flat address set plus per-chain liveness
|
|
@@ -18,6 +25,7 @@
|
|
|
18
25
|
*/
|
|
19
26
|
import { V12_EVM_CHAINS, V12_EVM_CONTRACTS, V12_GENERATED_BY, V12_SALT, V12_SVM } from "./v12.generated.js";
|
|
20
27
|
export { V12_EVM_CHAINS, V12_EVM_CONTRACTS, V12_GENERATED_BY, V12_SALT, V12_SVM };
|
|
28
|
+
export * from "./v12-addresses.js";
|
|
21
29
|
/** The three chain-invariant EVM contract addresses. */
|
|
22
30
|
export interface V12EvmContracts {
|
|
23
31
|
/** Swap surface every Pot's fallback delegatecalls into. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/deployments/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/deployments/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACR,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAGlF,cAAc,oBAAoB,CAAC;AAEnC,wDAAwD;AACxD,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,6EAA6E;AAC7E,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,sFAAsF;AACtF,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAOD,4DAA4D;AAC5D,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAItC;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C;AAED,qDAAqD;AACrD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAGlF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGhE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAI1D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAIxE;AAED,6FAA6F;AAC7F,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAcnE;AAED,iFAAiF;AACjF,eAAO,MAAM,eAAe,EAAE,MAA0B,CAAC;AAEzD,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD"}
|
|
@@ -5,10 +5,17 @@
|
|
|
5
5
|
* v12 runtime creation code, but not the ADDRESSES of the deployed contracts —
|
|
6
6
|
* so a consumer could encode a call and had nowhere to send it, and
|
|
7
7
|
* `createSauceSvmClient` (which takes a required `programId`) had no default to
|
|
8
|
-
* offer.
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* offer.
|
|
9
|
+
*
|
|
10
|
+
* TWO sources live here, and the split is deliberate:
|
|
11
|
+
* - CURRENT ADDRESSES — `./v12-addresses.ts` (`v12EngineAddress`, `v12RouterAddress`,
|
|
12
|
+
* `v12KitchenAddress`, `v12SvmEngineProgramId`, …). Assembled by the sync from each release's
|
|
13
|
+
* `addresses.json` and shipped as `artifacts/V12Deployments.json`. This is what to read for the
|
|
14
|
+
* address of the deployed Kitchen / engine / Router today.
|
|
15
|
+
* - CHAIN LIVENESS — `v12.generated.ts` below (`isV12Live`, `v12LiveChainIds`, `v12ChainSlug`). A
|
|
16
|
+
* hand-maintained roster of WHICH chains the stack is deployed on. Its ADDRESS constants record
|
|
17
|
+
* the PREVIOUS (pre-`cook`) deployment and are superseded by the current addresses above — see
|
|
18
|
+
* that file's header before relying on `V12_EVM_CONTRACTS` / `v12SvmProgramId`.
|
|
12
19
|
*
|
|
13
20
|
* The addresses are chain-invariant — the same on every chain they were deployed
|
|
14
21
|
* to — which is why this exposes one flat address set plus per-chain liveness
|
|
@@ -18,6 +25,8 @@
|
|
|
18
25
|
*/
|
|
19
26
|
import { V12_EVM_CHAINS, V12_EVM_CONTRACTS, V12_GENERATED_BY, V12_SALT, V12_SVM, } from "./v12.generated.js";
|
|
20
27
|
export { V12_EVM_CHAINS, V12_EVM_CONTRACTS, V12_GENERATED_BY, V12_SALT, V12_SVM };
|
|
28
|
+
// The CURRENT deployed addresses, assembled from each release's addresses.json (see the header split).
|
|
29
|
+
export * from "./v12-addresses.js";
|
|
21
30
|
const CHAINS = V12_EVM_CHAINS;
|
|
22
31
|
/** Every chain id in the record, live or not, ascending. */
|
|
23
32
|
export function v12ChainIds() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/deployments/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/deployments/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,OAAO,GACR,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAElF,uGAAuG;AACvG,cAAc,oBAAoB,CAAC;AA8BnC,MAAM,MAAM,GAAG,cAGd,CAAC;AAEF,4DAA4D;AAC5D,MAAM,UAAU,WAAW;IACzB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SACvB,GAAG,CAAC,MAAM,CAAC;SACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,eAAe;IAC7B,OAAO,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,iBAAiB;IAC/B,OAAO,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;AACxC,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1B,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;AACzD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1B,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE;QAAE,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;IAC9D,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IACjD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,iBAAiB,EAAE,CAAC;AACzD,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAEtC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,sCAAsC,OAAO,mBAAmB,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC5F,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CACb,kCAAkC,OAAO,KAAK,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,MAAM,GAAG;QAC3E,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CACjD,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,MAAM,eAAe,GAAW,OAAO,CAAC,SAAS,CAAC;AAEzD,uFAAuF;AACvF,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/** One EVM contract as the release records it: the address plus its CREATE3 derivation metadata. */
|
|
2
|
+
export interface V12EvmContractRef {
|
|
3
|
+
address: string;
|
|
4
|
+
saltName?: string;
|
|
5
|
+
rawSalt?: string;
|
|
6
|
+
guardedSalt?: string;
|
|
7
|
+
derivation?: string;
|
|
8
|
+
/** Present on the Kitchen — it is a UUPS proxy. */
|
|
9
|
+
proxyKind?: string;
|
|
10
|
+
generation?: number;
|
|
11
|
+
note?: string;
|
|
12
|
+
}
|
|
13
|
+
/** How a Pot address is derived — `CREATE2(kitchen, keccak256(abi.encode(owner, salt)), initCodeHash)`. */
|
|
14
|
+
export interface V12PotDerivation {
|
|
15
|
+
deployer: string;
|
|
16
|
+
initCodeHash: string;
|
|
17
|
+
saltFormula: string;
|
|
18
|
+
derivation?: string;
|
|
19
|
+
}
|
|
20
|
+
/** One SVM program as the release records it. */
|
|
21
|
+
export interface V12SvmProgramRef {
|
|
22
|
+
programId: string;
|
|
23
|
+
label?: string;
|
|
24
|
+
derivation?: string;
|
|
25
|
+
upgradeAuthority?: string;
|
|
26
|
+
}
|
|
27
|
+
/** The assembled `V12Deployments.json`: the deployed EVM contracts and SVM programs, plus provenance. */
|
|
28
|
+
export interface V12DeployedAddresses {
|
|
29
|
+
/** The release version these addresses come from (all four releases share it), e.g. `"1.0.0"`. */
|
|
30
|
+
version: string;
|
|
31
|
+
/** The v12 commit the releases were cut from. */
|
|
32
|
+
commit: string;
|
|
33
|
+
evm: {
|
|
34
|
+
chainIndependent: true;
|
|
35
|
+
/** The CreateX-style factory every contract is deployed through. */
|
|
36
|
+
factory: string;
|
|
37
|
+
deployer: string;
|
|
38
|
+
contracts: {
|
|
39
|
+
/** The Huff interpreter runtime that executes Sauce bytecode. */
|
|
40
|
+
engine: V12EvmContractRef;
|
|
41
|
+
/** Swap surface every Pot's fallback delegatecalls into. */
|
|
42
|
+
router: V12EvmContractRef;
|
|
43
|
+
/** The UUPS Kitchen proxy — mints Pots and gates every cook. */
|
|
44
|
+
kitchen: V12EvmContractRef;
|
|
45
|
+
/** The Kitchen implementation behind the proxy. */
|
|
46
|
+
kitchenImplementation: V12EvmContractRef;
|
|
47
|
+
};
|
|
48
|
+
pot: V12PotDerivation;
|
|
49
|
+
};
|
|
50
|
+
svm: {
|
|
51
|
+
clusterIndependent: true;
|
|
52
|
+
programs: {
|
|
53
|
+
/** The SVM engine program — pass as `programId` to `createSauceSvmClient`. */
|
|
54
|
+
engine: V12SvmProgramRef;
|
|
55
|
+
/** The SVM Kitchen program every cook is gated to. */
|
|
56
|
+
kitchen: V12SvmProgramRef;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The assembled deployed-address record. Read lazily and memoized, so importing this module never
|
|
62
|
+
* throws — only calling it without a synced artifact does, with a remedy in the message.
|
|
63
|
+
*/
|
|
64
|
+
export declare function v12DeployedAddresses(): V12DeployedAddresses;
|
|
65
|
+
/** The release version the current addresses come from (e.g. `"1.0.0"`). */
|
|
66
|
+
export declare const v12DeployedVersion: () => string;
|
|
67
|
+
/** The current EVM engine (interpreter runtime) address. */
|
|
68
|
+
export declare const v12EngineAddress: () => string;
|
|
69
|
+
/** The current EVM Router address. */
|
|
70
|
+
export declare const v12RouterAddress: () => string;
|
|
71
|
+
/** The current EVM Kitchen (UUPS proxy) address — mints Pots and gates every cook. */
|
|
72
|
+
export declare const v12KitchenAddress: () => string;
|
|
73
|
+
/** The current EVM Kitchen implementation address (behind the proxy). */
|
|
74
|
+
export declare const v12KitchenImplementationAddress: () => string;
|
|
75
|
+
/** How a Pot address is derived from `(owner, salt)` under the current Kitchen. */
|
|
76
|
+
export declare const v12PotDerivation: () => V12PotDerivation;
|
|
77
|
+
/** The current SVM engine program id — pass as `programId` to `createSauceSvmClient`. */
|
|
78
|
+
export declare const v12SvmEngineProgramId: () => string;
|
|
79
|
+
/** The current SVM Kitchen program id every cook is gated to. */
|
|
80
|
+
export declare const v12SvmKitchenProgramId: () => string;
|
|
81
|
+
//# sourceMappingURL=v12-addresses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v12-addresses.d.ts","sourceRoot":"","sources":["../../src/deployments/v12-addresses.ts"],"names":[],"mappings":"AAoBA,oGAAoG;AACpG,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,2GAA2G;AAC3G,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,iDAAiD;AACjD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,yGAAyG;AACzG,MAAM,WAAW,oBAAoB;IACnC,kGAAkG;IAClG,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE;QACH,gBAAgB,EAAE,IAAI,CAAC;QACvB,oEAAoE;QACpE,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE;YACT,iEAAiE;YACjE,MAAM,EAAE,iBAAiB,CAAC;YAC1B,4DAA4D;YAC5D,MAAM,EAAE,iBAAiB,CAAC;YAC1B,gEAAgE;YAChE,OAAO,EAAE,iBAAiB,CAAC;YAC3B,mDAAmD;YACnD,qBAAqB,EAAE,iBAAiB,CAAC;SAC1C,CAAC;QACF,GAAG,EAAE,gBAAgB,CAAC;KACvB,CAAC;IACF,GAAG,EAAE;QACH,kBAAkB,EAAE,IAAI,CAAC;QACzB,QAAQ,EAAE;YACR,8EAA8E;YAC9E,MAAM,EAAE,gBAAgB,CAAC;YACzB,sDAAsD;YACtD,OAAO,EAAE,gBAAgB,CAAC;SAC3B,CAAC;KACH,CAAC;CACH;AAWD;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,oBAAoB,CAU3D;AAED,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,QAAO,MAAwC,CAAC;AAE/E,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB,QAAO,MAA6D,CAAC;AAElG,sCAAsC;AACtC,eAAO,MAAM,gBAAgB,QAAO,MAA6D,CAAC;AAElG,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,QAAO,MAA8D,CAAC;AAEpG,yEAAyE;AACzE,eAAO,MAAM,+BAA+B,QAAO,MACiB,CAAC;AAErE,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,QAAO,gBAAkD,CAAC;AAEvF,yFAAyF;AACzF,eAAO,MAAM,qBAAqB,QAAO,MACa,CAAC;AAEvD,iEAAiE;AACjE,eAAO,MAAM,sBAAsB,QAAO,MACa,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The CURRENT deployed Sauce v12 addresses.
|
|
3
|
+
*
|
|
4
|
+
* `sync-engine-artifacts` assembles these from the `addresses.json` each of the four v12 releases
|
|
5
|
+
* publishes and writes `artifacts/V12Deployments.json` next to this module — `dist/artifacts` in an
|
|
6
|
+
* installed package, `src/artifacts` in a from-source tree — which `files: ["sdk/dist"]` carries into
|
|
7
|
+
* the tarball. It is read at runtime (like `svm/engine-artifacts.ts` reads the `.so`), not imported,
|
|
8
|
+
* so a clean `tsc` never depends on a file the sync produces.
|
|
9
|
+
*
|
|
10
|
+
* These are the deterministic addresses — CREATE3 on EVM, a fixed/derived keypair on SVM — so they are
|
|
11
|
+
* `chainIndependent` / `clusterIndependent`: one address set, the same everywhere it is deployed. They
|
|
12
|
+
* are ADDRESSES, not liveness: the deployed Kitchen does not have code on every chain yet, so to ask
|
|
13
|
+
* "is the stack usable on chain X" use the roster helpers in `./index.ts` (`isV12Live`,
|
|
14
|
+
* `v12LiveChainIds`), which is why the older `v12.generated.ts` set is kept. These supersede that set's
|
|
15
|
+
* ADDRESSES — `v12.generated.ts` records the pre-`cook` stack, and its Kitchen/Router are not these.
|
|
16
|
+
*/
|
|
17
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
18
|
+
import { dirname, resolve } from "node:path";
|
|
19
|
+
import { fileURLToPath } from "node:url";
|
|
20
|
+
const ARTIFACT = resolve(dirname(fileURLToPath(import.meta.url)), "..", "artifacts", "V12Deployments.json");
|
|
21
|
+
let cached;
|
|
22
|
+
/**
|
|
23
|
+
* The assembled deployed-address record. Read lazily and memoized, so importing this module never
|
|
24
|
+
* throws — only calling it without a synced artifact does, with a remedy in the message.
|
|
25
|
+
*/
|
|
26
|
+
export function v12DeployedAddresses() {
|
|
27
|
+
if (cached !== undefined)
|
|
28
|
+
return cached;
|
|
29
|
+
if (!existsSync(ARTIFACT)) {
|
|
30
|
+
throw new Error(`V12Deployments.json not found at ${ARTIFACT}. It ships in the published package; from a source ` +
|
|
31
|
+
`checkout run \`pnpm --filter './sdk' sync-engine-artifacts\`.`);
|
|
32
|
+
}
|
|
33
|
+
cached = JSON.parse(readFileSync(ARTIFACT, "utf8"));
|
|
34
|
+
return cached;
|
|
35
|
+
}
|
|
36
|
+
/** The release version the current addresses come from (e.g. `"1.0.0"`). */
|
|
37
|
+
export const v12DeployedVersion = () => v12DeployedAddresses().version;
|
|
38
|
+
/** The current EVM engine (interpreter runtime) address. */
|
|
39
|
+
export const v12EngineAddress = () => v12DeployedAddresses().evm.contracts.engine.address;
|
|
40
|
+
/** The current EVM Router address. */
|
|
41
|
+
export const v12RouterAddress = () => v12DeployedAddresses().evm.contracts.router.address;
|
|
42
|
+
/** The current EVM Kitchen (UUPS proxy) address — mints Pots and gates every cook. */
|
|
43
|
+
export const v12KitchenAddress = () => v12DeployedAddresses().evm.contracts.kitchen.address;
|
|
44
|
+
/** The current EVM Kitchen implementation address (behind the proxy). */
|
|
45
|
+
export const v12KitchenImplementationAddress = () => v12DeployedAddresses().evm.contracts.kitchenImplementation.address;
|
|
46
|
+
/** How a Pot address is derived from `(owner, salt)` under the current Kitchen. */
|
|
47
|
+
export const v12PotDerivation = () => v12DeployedAddresses().evm.pot;
|
|
48
|
+
/** The current SVM engine program id — pass as `programId` to `createSauceSvmClient`. */
|
|
49
|
+
export const v12SvmEngineProgramId = () => v12DeployedAddresses().svm.programs.engine.programId;
|
|
50
|
+
/** The current SVM Kitchen program id every cook is gated to. */
|
|
51
|
+
export const v12SvmKitchenProgramId = () => v12DeployedAddresses().svm.programs.kitchen.programId;
|
|
52
|
+
//# sourceMappingURL=v12-addresses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v12-addresses.js","sourceRoot":"","sources":["../../src/deployments/v12-addresses.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAiEzC,MAAM,QAAQ,GAAG,OAAO,CACtB,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACvC,IAAI,EACJ,WAAW,EACX,qBAAqB,CACtB,CAAC;AAEF,IAAI,MAAwC,CAAC;AAE7C;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,oCAAoC,QAAQ,qDAAqD;YAC/F,+DAA+D,CAClE,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAyB,CAAC;IAC5E,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAW,EAAE,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC;AAE/E,4DAA4D;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAW,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;AAElG,sCAAsC;AACtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAW,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;AAElG,sFAAsF;AACtF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAW,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;AAEpG,yEAAyE;AACzE,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAW,EAAE,CAC1D,oBAAoB,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAAC,OAAO,CAAC;AAErE,mFAAmF;AACnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAqB,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;AAEvF,yFAAyF;AACzF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAW,EAAE,CAChD,oBAAoB,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;AAEvD,iEAAiE;AACjE,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAW,EAAE,CACjD,oBAAoB,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC"}
|
|
@@ -22,9 +22,11 @@ export declare const SETTLE_WIRE: {
|
|
|
22
22
|
* directions, and neither did 1.0.0 → 2.0.0 — whose major is an artifact of the release config
|
|
23
23
|
* rather than a compiler change. 2.0.0 → 2.1.0 DID: 370 → 363, on the element/field write
|
|
24
24
|
* boxing change. 2.1.0 → 2.2.0 DID too: 363 → 362, on the UNPACK opcode and the entry-argument
|
|
25
|
-
* lowering it came with.
|
|
25
|
+
* lowering it came with. 2.2.0 → 2.2.1 did NOT: its two compiler fixes both tighten what the
|
|
26
|
+
* frontend REFUSES, so nothing this program already compiled to could move. So a compiler bump
|
|
27
|
+
* is not evidence either way: this string changes
|
|
26
28
|
* every time, the hash only when the output does, and the tests above tell them apart. */
|
|
27
|
-
readonly PROGRAM_COMPILER: "@eco-incorp/sauce-compiler@2.2.
|
|
29
|
+
readonly PROGRAM_COMPILER: "@eco-incorp/sauce-compiler@2.2.1";
|
|
28
30
|
/** `keccak256` of those `PROGRAM_BYTES` bytes — the authenticity pin `validateSettleProgram`
|
|
29
31
|
* enforces, and the reason a matching payload runs the audited program and nothing else.
|
|
30
32
|
* Whole-program, not a body slice: program and arguments are disjoint byte regions on this wire.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/verify/wire.ts"],"names":[],"mappings":"AAkBA,yEAAyE;AACzE,eAAO,MAAM,WAAW;IACtB;;+EAE2E;;IAE3E
|
|
1
|
+
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/verify/wire.ts"],"names":[],"mappings":"AAkBA,yEAAyE;AACzE,eAAO,MAAM,WAAW;IACtB;;+EAE2E;;IAE3E;;;;;;;;;;;;;;;;;;;;;+FAqB2F;;IAE3F;;;2GAGuG;;IAEvG,mDAAmD;;IAEnD,wFAAwF;;IAExF,iGAAiG;;IAEjG;;8CAE0C;;CAElC,CAAC"}
|
package/sdk/dist/verify/wire.js
CHANGED
|
@@ -39,9 +39,11 @@ export const SETTLE_WIRE = {
|
|
|
39
39
|
* directions, and neither did 1.0.0 → 2.0.0 — whose major is an artifact of the release config
|
|
40
40
|
* rather than a compiler change. 2.0.0 → 2.1.0 DID: 370 → 363, on the element/field write
|
|
41
41
|
* boxing change. 2.1.0 → 2.2.0 DID too: 363 → 362, on the UNPACK opcode and the entry-argument
|
|
42
|
-
* lowering it came with.
|
|
42
|
+
* lowering it came with. 2.2.0 → 2.2.1 did NOT: its two compiler fixes both tighten what the
|
|
43
|
+
* frontend REFUSES, so nothing this program already compiled to could move. So a compiler bump
|
|
44
|
+
* is not evidence either way: this string changes
|
|
43
45
|
* every time, the hash only when the output does, and the tests above tell them apart. */
|
|
44
|
-
PROGRAM_COMPILER: "@eco-incorp/sauce-compiler@2.2.
|
|
46
|
+
PROGRAM_COMPILER: "@eco-incorp/sauce-compiler@2.2.1",
|
|
45
47
|
/** `keccak256` of those `PROGRAM_BYTES` bytes — the authenticity pin `validateSettleProgram`
|
|
46
48
|
* enforces, and the reason a matching payload runs the audited program and nothing else.
|
|
47
49
|
* Whole-program, not a body slice: program and arguments are disjoint byte regions on this wire.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/verify/wire.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,kGAAkG;AAClG,qEAAqE;AACrE,EAAE;AACF,0FAA0F;AAC1F,4FAA4F;AAC5F,EAAE;AACF,8FAA8F;AAC9F,oGAAoG;AACpG,kGAAkG;AAClG,mGAAmG;AACnG,kFAAkF;AAClF,EAAE;AACF,oGAAoG;AACpG,kGAAkG;AAClG,qGAAqG;AACrG,0FAA0F;AAE1F,yEAAyE;AACzE,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB;;+EAE2E;IAC3E,aAAa,EAAE,GAAG;IAClB
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/verify/wire.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,kGAAkG;AAClG,qEAAqE;AACrE,EAAE;AACF,0FAA0F;AAC1F,4FAA4F;AAC5F,EAAE;AACF,8FAA8F;AAC9F,oGAAoG;AACpG,kGAAkG;AAClG,mGAAmG;AACnG,kFAAkF;AAClF,EAAE;AACF,oGAAoG;AACpG,kGAAkG;AAClG,qGAAqG;AACrG,0FAA0F;AAE1F,yEAAyE;AACzE,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB;;+EAE2E;IAC3E,aAAa,EAAE,GAAG;IAClB;;;;;;;;;;;;;;;;;;;;;+FAqB2F;IAC3F,gBAAgB,EAAE,kCAAkC;IACpD;;;2GAGuG;IACvG,YAAY,EAAE,oEAAoE;IAClF,mDAAmD;IACnD,UAAU,EAAE,EAAE;IACd,wFAAwF;IACxF,aAAa,EAAE,EAAE;IACjB,iGAAiG;IACjG,UAAU,EAAE,CAAC;IACb;;8CAE0C;IAC1C,UAAU,EAAE,EAAE;CACN,CAAC"}
|