github.com/ethereum-optimism/optimism@v1.7.2/packages/chain-mon/src/abi/OptimismPortal.json (about) 1 { 2 "abi": [ 3 { 4 "inputs": [], 5 "stateMutability": "nonpayable", 6 "type": "constructor" 7 }, 8 { 9 "anonymous": false, 10 "inputs": [ 11 { 12 "indexed": false, 13 "internalType": "uint8", 14 "name": "version", 15 "type": "uint8" 16 } 17 ], 18 "name": "Initialized", 19 "type": "event" 20 }, 21 { 22 "anonymous": false, 23 "inputs": [ 24 { 25 "indexed": false, 26 "internalType": "address", 27 "name": "account", 28 "type": "address" 29 } 30 ], 31 "name": "Paused", 32 "type": "event" 33 }, 34 { 35 "anonymous": false, 36 "inputs": [ 37 { 38 "indexed": true, 39 "internalType": "address", 40 "name": "from", 41 "type": "address" 42 }, 43 { 44 "indexed": true, 45 "internalType": "address", 46 "name": "to", 47 "type": "address" 48 }, 49 { 50 "indexed": true, 51 "internalType": "uint256", 52 "name": "version", 53 "type": "uint256" 54 }, 55 { 56 "indexed": false, 57 "internalType": "bytes", 58 "name": "opaqueData", 59 "type": "bytes" 60 } 61 ], 62 "name": "TransactionDeposited", 63 "type": "event" 64 }, 65 { 66 "anonymous": false, 67 "inputs": [ 68 { 69 "indexed": false, 70 "internalType": "address", 71 "name": "account", 72 "type": "address" 73 } 74 ], 75 "name": "Unpaused", 76 "type": "event" 77 }, 78 { 79 "anonymous": false, 80 "inputs": [ 81 { 82 "indexed": true, 83 "internalType": "bytes32", 84 "name": "withdrawalHash", 85 "type": "bytes32" 86 }, 87 { 88 "indexed": false, 89 "internalType": "bool", 90 "name": "success", 91 "type": "bool" 92 } 93 ], 94 "name": "WithdrawalFinalized", 95 "type": "event" 96 }, 97 { 98 "anonymous": false, 99 "inputs": [ 100 { 101 "indexed": true, 102 "internalType": "bytes32", 103 "name": "withdrawalHash", 104 "type": "bytes32" 105 }, 106 { 107 "indexed": true, 108 "internalType": "address", 109 "name": "from", 110 "type": "address" 111 }, 112 { 113 "indexed": true, 114 "internalType": "address", 115 "name": "to", 116 "type": "address" 117 } 118 ], 119 "name": "WithdrawalProven", 120 "type": "event" 121 }, 122 { 123 "inputs": [], 124 "name": "GUARDIAN", 125 "outputs": [ 126 { 127 "internalType": "address", 128 "name": "", 129 "type": "address" 130 } 131 ], 132 "stateMutability": "view", 133 "type": "function" 134 }, 135 { 136 "inputs": [], 137 "name": "L2_ORACLE", 138 "outputs": [ 139 { 140 "internalType": "contract L2OutputOracle", 141 "name": "", 142 "type": "address" 143 } 144 ], 145 "stateMutability": "view", 146 "type": "function" 147 }, 148 { 149 "inputs": [], 150 "name": "SYSTEM_CONFIG", 151 "outputs": [ 152 { 153 "internalType": "contract SystemConfig", 154 "name": "", 155 "type": "address" 156 } 157 ], 158 "stateMutability": "view", 159 "type": "function" 160 }, 161 { 162 "inputs": [ 163 { 164 "internalType": "address", 165 "name": "_to", 166 "type": "address" 167 }, 168 { 169 "internalType": "uint256", 170 "name": "_value", 171 "type": "uint256" 172 }, 173 { 174 "internalType": "uint64", 175 "name": "_gasLimit", 176 "type": "uint64" 177 }, 178 { 179 "internalType": "bool", 180 "name": "_isCreation", 181 "type": "bool" 182 }, 183 { 184 "internalType": "bytes", 185 "name": "_data", 186 "type": "bytes" 187 } 188 ], 189 "name": "depositTransaction", 190 "outputs": [], 191 "stateMutability": "payable", 192 "type": "function" 193 }, 194 { 195 "inputs": [], 196 "name": "donateETH", 197 "outputs": [], 198 "stateMutability": "payable", 199 "type": "function" 200 }, 201 { 202 "inputs": [ 203 { 204 "components": [ 205 { 206 "internalType": "uint256", 207 "name": "nonce", 208 "type": "uint256" 209 }, 210 { 211 "internalType": "address", 212 "name": "sender", 213 "type": "address" 214 }, 215 { 216 "internalType": "address", 217 "name": "target", 218 "type": "address" 219 }, 220 { 221 "internalType": "uint256", 222 "name": "value", 223 "type": "uint256" 224 }, 225 { 226 "internalType": "uint256", 227 "name": "gasLimit", 228 "type": "uint256" 229 }, 230 { 231 "internalType": "bytes", 232 "name": "data", 233 "type": "bytes" 234 } 235 ], 236 "internalType": "struct Types.WithdrawalTransaction", 237 "name": "_tx", 238 "type": "tuple" 239 } 240 ], 241 "name": "finalizeWithdrawalTransaction", 242 "outputs": [], 243 "stateMutability": "nonpayable", 244 "type": "function" 245 }, 246 { 247 "inputs": [ 248 { 249 "internalType": "bytes32", 250 "name": "", 251 "type": "bytes32" 252 } 253 ], 254 "name": "finalizedWithdrawals", 255 "outputs": [ 256 { 257 "internalType": "bool", 258 "name": "", 259 "type": "bool" 260 } 261 ], 262 "stateMutability": "view", 263 "type": "function" 264 }, 265 { 266 "inputs": [], 267 "name": "guardian", 268 "outputs": [ 269 { 270 "internalType": "address", 271 "name": "", 272 "type": "address" 273 } 274 ], 275 "stateMutability": "view", 276 "type": "function" 277 }, 278 { 279 "inputs": [ 280 { 281 "internalType": "contract L2OutputOracle", 282 "name": "_l2Oracle", 283 "type": "address" 284 }, 285 { 286 "internalType": "address", 287 "name": "_guardian", 288 "type": "address" 289 }, 290 { 291 "internalType": "contract SystemConfig", 292 "name": "_systemConfig", 293 "type": "address" 294 }, 295 { 296 "internalType": "bool", 297 "name": "_paused", 298 "type": "bool" 299 } 300 ], 301 "name": "initialize", 302 "outputs": [], 303 "stateMutability": "nonpayable", 304 "type": "function" 305 }, 306 { 307 "inputs": [ 308 { 309 "internalType": "uint256", 310 "name": "_l2OutputIndex", 311 "type": "uint256" 312 } 313 ], 314 "name": "isOutputFinalized", 315 "outputs": [ 316 { 317 "internalType": "bool", 318 "name": "", 319 "type": "bool" 320 } 321 ], 322 "stateMutability": "view", 323 "type": "function" 324 }, 325 { 326 "inputs": [], 327 "name": "l2Oracle", 328 "outputs": [ 329 { 330 "internalType": "contract L2OutputOracle", 331 "name": "", 332 "type": "address" 333 } 334 ], 335 "stateMutability": "view", 336 "type": "function" 337 }, 338 { 339 "inputs": [], 340 "name": "l2Sender", 341 "outputs": [ 342 { 343 "internalType": "address", 344 "name": "", 345 "type": "address" 346 } 347 ], 348 "stateMutability": "view", 349 "type": "function" 350 }, 351 { 352 "inputs": [ 353 { 354 "internalType": "uint64", 355 "name": "_byteCount", 356 "type": "uint64" 357 } 358 ], 359 "name": "minimumGasLimit", 360 "outputs": [ 361 { 362 "internalType": "uint64", 363 "name": "", 364 "type": "uint64" 365 } 366 ], 367 "stateMutability": "pure", 368 "type": "function" 369 }, 370 { 371 "inputs": [], 372 "name": "params", 373 "outputs": [ 374 { 375 "internalType": "uint128", 376 "name": "prevBaseFee", 377 "type": "uint128" 378 }, 379 { 380 "internalType": "uint64", 381 "name": "prevBoughtGas", 382 "type": "uint64" 383 }, 384 { 385 "internalType": "uint64", 386 "name": "prevBlockNum", 387 "type": "uint64" 388 } 389 ], 390 "stateMutability": "view", 391 "type": "function" 392 }, 393 { 394 "inputs": [], 395 "name": "pause", 396 "outputs": [], 397 "stateMutability": "nonpayable", 398 "type": "function" 399 }, 400 { 401 "inputs": [], 402 "name": "paused", 403 "outputs": [ 404 { 405 "internalType": "bool", 406 "name": "", 407 "type": "bool" 408 } 409 ], 410 "stateMutability": "view", 411 "type": "function" 412 }, 413 { 414 "inputs": [ 415 { 416 "components": [ 417 { 418 "internalType": "uint256", 419 "name": "nonce", 420 "type": "uint256" 421 }, 422 { 423 "internalType": "address", 424 "name": "sender", 425 "type": "address" 426 }, 427 { 428 "internalType": "address", 429 "name": "target", 430 "type": "address" 431 }, 432 { 433 "internalType": "uint256", 434 "name": "value", 435 "type": "uint256" 436 }, 437 { 438 "internalType": "uint256", 439 "name": "gasLimit", 440 "type": "uint256" 441 }, 442 { 443 "internalType": "bytes", 444 "name": "data", 445 "type": "bytes" 446 } 447 ], 448 "internalType": "struct Types.WithdrawalTransaction", 449 "name": "_tx", 450 "type": "tuple" 451 }, 452 { 453 "internalType": "uint256", 454 "name": "_l2OutputIndex", 455 "type": "uint256" 456 }, 457 { 458 "components": [ 459 { 460 "internalType": "bytes32", 461 "name": "version", 462 "type": "bytes32" 463 }, 464 { 465 "internalType": "bytes32", 466 "name": "stateRoot", 467 "type": "bytes32" 468 }, 469 { 470 "internalType": "bytes32", 471 "name": "messagePasserStorageRoot", 472 "type": "bytes32" 473 }, 474 { 475 "internalType": "bytes32", 476 "name": "latestBlockhash", 477 "type": "bytes32" 478 } 479 ], 480 "internalType": "struct Types.OutputRootProof", 481 "name": "_outputRootProof", 482 "type": "tuple" 483 }, 484 { 485 "internalType": "bytes[]", 486 "name": "_withdrawalProof", 487 "type": "bytes[]" 488 } 489 ], 490 "name": "proveWithdrawalTransaction", 491 "outputs": [], 492 "stateMutability": "nonpayable", 493 "type": "function" 494 }, 495 { 496 "inputs": [ 497 { 498 "internalType": "bytes32", 499 "name": "", 500 "type": "bytes32" 501 } 502 ], 503 "name": "provenWithdrawals", 504 "outputs": [ 505 { 506 "internalType": "bytes32", 507 "name": "outputRoot", 508 "type": "bytes32" 509 }, 510 { 511 "internalType": "uint128", 512 "name": "timestamp", 513 "type": "uint128" 514 }, 515 { 516 "internalType": "uint128", 517 "name": "l2OutputIndex", 518 "type": "uint128" 519 } 520 ], 521 "stateMutability": "view", 522 "type": "function" 523 }, 524 { 525 "inputs": [], 526 "name": "systemConfig", 527 "outputs": [ 528 { 529 "internalType": "contract SystemConfig", 530 "name": "", 531 "type": "address" 532 } 533 ], 534 "stateMutability": "view", 535 "type": "function" 536 }, 537 { 538 "inputs": [], 539 "name": "unpause", 540 "outputs": [], 541 "stateMutability": "nonpayable", 542 "type": "function" 543 }, 544 { 545 "inputs": [], 546 "name": "version", 547 "outputs": [ 548 { 549 "internalType": "string", 550 "name": "", 551 "type": "string" 552 } 553 ], 554 "stateMutability": "view", 555 "type": "function" 556 }, 557 { 558 "stateMutability": "payable", 559 "type": "receive" 560 } 561 ], 562 "bytecode": { 563 "object": "0x60806040523480156200001157600080fd5b506200002260008080600162000028565b62000224565b600054600390610100900460ff161580156200004b575060005460ff8083169116105b620000b45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805461ffff191660ff831617610100908117909155603280546001600160a01b031990811661dead1790915560358054603680546001600160a01b0389811691861691909117909155603780548a831695169490941790935585151592891690930260ff19166001600160a81b0319909316929092171790556200013962000181565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b600054610100900460ff16620001ee5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620000ab565b60408051606081018252633b9aca0080825260006020830152436001600160401b031691909201819052600160c01b0217600155565b61545c80620002346000396000f3fe60806040526004361061016d5760003560e01c80638b4c40b0116100cb578063a35d99df1161007f578063e9e05c4211610059578063e9e05c4214610573578063f049875014610586578063fecf9734146105b157600080fd5b8063a35d99df1461040d578063cff0ab9614610446578063e965084c146104e757600080fd5b80639b5f694a116100b05780639b5f694a1461037e5780639bf62d82146103b0578063a14238e7146103dd57600080fd5b80638b4c40b0146101925780638c3152e91461035e57600080fd5b806354fd4d50116101225780636dbffb78116101075780636dbffb78146102fe578063724c184c1461031e5780638456cb591461034957600080fd5b806354fd4d501461027e5780635c975abb146102d457600080fd5b80633f4ba83a116101535780633f4ba83a1461021c578063452a9320146102315780634870496f1461025e57600080fd5b80621c2ff61461019957806333d7e2bd146101ef57600080fd5b36610194576101923334620186a06000604051806020016040528060008152506105d1565b005b600080fd5b3480156101a557600080fd5b50603554610100900473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101fb57600080fd5b506036546101c59073ffffffffffffffffffffffffffffffffffffffff1681565b34801561022857600080fd5b5061019261086c565b34801561023d57600080fd5b506037546101c59073ffffffffffffffffffffffffffffffffffffffff1681565b34801561026a57600080fd5b50610192610279366004614a4a565b610971565b34801561028a57600080fd5b506102c76040518060400160405280600681526020017f312e31302e30000000000000000000000000000000000000000000000000000081525081565b6040516101e69190614ba0565b3480156102e057600080fd5b506035546102ee9060ff1681565b60405190151581526020016101e6565b34801561030a57600080fd5b506102ee610319366004614bb3565b610fa6565b34801561032a57600080fd5b5060375473ffffffffffffffffffffffffffffffffffffffff166101c5565b34801561035557600080fd5b50610192611065565b34801561036a57600080fd5b50610192610379366004614bcc565b611167565b34801561038a57600080fd5b506035546101c590610100900473ffffffffffffffffffffffffffffffffffffffff1681565b3480156103bc57600080fd5b506032546101c59073ffffffffffffffffffffffffffffffffffffffff1681565b3480156103e957600080fd5b506102ee6103f8366004614bb3565b60336020526000908152604090205460ff1681565b34801561041957600080fd5b5061042d610428366004614c26565b611a2b565b60405167ffffffffffffffff90911681526020016101e6565b34801561045257600080fd5b506001546104ae906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff92831660208501529116908201526060016101e6565b3480156104f357600080fd5b50610545610502366004614bb3565b603460205260009081526040902080546001909101546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041683565b604080519384526fffffffffffffffffffffffffffffffff92831660208501529116908201526060016101e6565b610192610581366004614c51565b6105d1565b34801561059257600080fd5b5060365473ffffffffffffffffffffffffffffffffffffffff166101c5565b3480156105bd57600080fd5b506101926105cc366004614ccc565b611a44565b8260005a905083156106885773ffffffffffffffffffffffffffffffffffffffff87161561068857604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f4f7074696d69736d506f7274616c3a206d7573742073656e6420746f2061646460448201527f72657373283029207768656e206372656174696e67206120636f6e747261637460648201526084015b60405180910390fd5b6106928351611a2b565b67ffffffffffffffff168567ffffffffffffffff161015610735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f7074696d69736d506f7274616c3a20676173206c696d697420746f6f20736d60448201527f616c6c0000000000000000000000000000000000000000000000000000000000606482015260840161067f565b6201d4c0835111156107a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4f7074696d69736d506f7274616c3a206461746120746f6f206c617267650000604482015260640161067f565b333281146107c4575033731111000000000000000000000000000000001111015b600034888888886040516020016107df959493929190614d26565b604051602081830303815290604052905060008973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c328460405161084f9190614ba0565b60405180910390a450506108638282611c52565b50505050505050565b60375473ffffffffffffffffffffffffffffffffffffffff163314610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f7074696d69736d506f7274616c3a206f6e6c7920677561726469616e20636160448201527f6e20756e70617573650000000000000000000000000000000000000000000000606482015260840161067f565b603580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b60355460ff16156109de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f7074696d69736d506f7274616c3a2070617573656400000000000000000000604482015260640161067f565b3073ffffffffffffffffffffffffffffffffffffffff16856040015173ffffffffffffffffffffffffffffffffffffffff1603610a9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a20796f752063616e6e6f742073656e642060448201527f6d6573736167657320746f2074686520706f7274616c20636f6e747261637400606482015260840161067f565b6035546040517fa25ae55700000000000000000000000000000000000000000000000000000000815260048101869052600091610100900473ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa158015610b12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b369190614dab565b519050610b50610b4b36869003860186614e10565b611f7f565b8114610bde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f7074696d69736d506f7274616c3a20696e76616c6964206f7574707574207260448201527f6f6f742070726f6f660000000000000000000000000000000000000000000000606482015260840161067f565b6000610be987611fdb565b6000818152603460209081526040918290208251606081018452815481526001909101546fffffffffffffffffffffffffffffffff8082169383018490527001000000000000000000000000000000009091041692810192909252919250901580610d035750805160355460408084015190517fa25ae5570000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff909116600482015261010090910473ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa158015610cdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cff9190614dab565b5114155b610d8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173682060448201527f68617320616c7265616479206265656e2070726f76656e000000000000000000606482015260840161067f565b60408051602081018490526000918101829052606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201209083018190529250610e589101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828201909152600182527f0100000000000000000000000000000000000000000000000000000000000000602083015290610e4e888a614e76565b8a6040013561200b565b610ee4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4f7074696d69736d506f7274616c3a20696e76616c696420776974686472617760448201527f616c20696e636c7573696f6e2070726f6f660000000000000000000000000000606482015260840161067f565b604080516060810182528581526fffffffffffffffffffffffffffffffff42811660208084019182528c831684860190815260008981526034835286812095518655925190518416700100000000000000000000000000000000029316929092176001909301929092558b830151908c0151925173ffffffffffffffffffffffffffffffffffffffff918216939091169186917f67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f629190a4505050505050505050565b6035546040517fa25ae5570000000000000000000000000000000000000000000000000000000081526004810183905260009161105f9161010090910473ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa158015611020573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110449190614dab565b602001516fffffffffffffffffffffffffffffffff1661202f565b92915050565b60375473ffffffffffffffffffffffffffffffffffffffff16331461110c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4f7074696d69736d506f7274616c3a206f6e6c7920677561726469616e20636160448201527f6e20706175736500000000000000000000000000000000000000000000000000606482015260840161067f565b603580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610967565b60355460ff16156111d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f7074696d69736d506f7274616c3a2070617573656400000000000000000000604482015260640161067f565b60325473ffffffffffffffffffffffffffffffffffffffff1661dead1461127d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a2063616e206f6e6c79207472696767657260448201527f206f6e65207769746864726177616c20706572207472616e73616374696f6e00606482015260840161067f565b600061128882611fdb565b60008181526034602090815260408083208151606081018352815481526001909101546fffffffffffffffffffffffffffffffff80821694830185905270010000000000000000000000000000000090910416918101919091529293509003611373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206e60448201527f6f74206265656e2070726f76656e207965740000000000000000000000000000606482015260840161067f565b603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663887862726040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114049190614efa565b81602001516fffffffffffffffffffffffffffffffff1610156114cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f4f7074696d69736d506f7274616c3a207769746864726177616c2074696d657360448201527f74616d70206c657373207468616e204c32204f7261636c65207374617274696e60648201527f672074696d657374616d70000000000000000000000000000000000000000000608482015260a40161067f565b6114ee81602001516fffffffffffffffffffffffffffffffff1661202f565b6115a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4f7074696d69736d506f7274616c3a2070726f76656e2077697468647261776160448201527f6c2066696e616c697a6174696f6e20706572696f6420686173206e6f7420656c60648201527f6170736564000000000000000000000000000000000000000000000000000000608482015260a40161067f565b60355460408281015190517fa25ae5570000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff9091166004820152600091610100900473ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa15801561162c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116509190614dab565b825181519192501461170a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f4f7074696d69736d506f7274616c3a206f757470757420726f6f742070726f7660448201527f656e206973206e6f74207468652073616d652061732063757272656e74206f7560648201527f7470757420726f6f740000000000000000000000000000000000000000000000608482015260a40161067f565b61172981602001516fffffffffffffffffffffffffffffffff1661202f565b6117db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f4f7074696d69736d506f7274616c3a206f75747075742070726f706f73616c2060448201527f66696e616c697a6174696f6e20706572696f6420686173206e6f7420656c617060648201527f7365640000000000000000000000000000000000000000000000000000000000608482015260a40161067f565b60008381526033602052604090205460ff161561187a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206160448201527f6c7265616479206265656e2066696e616c697a65640000000000000000000000606482015260840161067f565b600083815260336020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055908601516032805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff00000000000000000000000000000000000000009092169190911790558501516080860151606087015160a088015161191c939291906120d4565b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905560405190915084907fdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b9061198190841515815260200190565b60405180910390a2801580156119975750326001145b15611a24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4f7074696d69736d506f7274616c3a207769746864726177616c206661696c6560448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161067f565b5050505050565b6000611a38826010614f42565b61105f90615208614f72565b600054600390610100900460ff16158015611a66575060005460ff8083169116105b611af2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161067f565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100908117909155603280547fffffffffffffffffffffffff000000000000000000000000000000000000000090811661dead17909155603580546036805473ffffffffffffffffffffffffffffffffffffffff89811691861691909117909155603780548a83169516949094179093558515159289169093027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217179055611bed612132565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b600154600090611c88907801000000000000000000000000000000000000000000000000900467ffffffffffffffff1643614f9e565b90506000611c94612215565b90506000816020015160ff16826000015163ffffffff16611cb59190614fe4565b90508215611dec57600154600090611cec908390700100000000000000000000000000000000900467ffffffffffffffff1661504c565b90506000836040015160ff1683611d0391906150c0565b600154611d239084906fffffffffffffffffffffffffffffffff166150c0565b611d2d9190614fe4565b600154909150600090611d7e90611d579084906fffffffffffffffffffffffffffffffff1661517c565b866060015163ffffffff168760a001516fffffffffffffffffffffffffffffffff166122db565b90506001861115611dad57611daa611d5782876040015160ff1660018a611da59190614f9e565b6122fa565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b60018054869190601090611e1f908490700100000000000000000000000000000000900467ffffffffffffffff16614f72565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550816000015163ffffffff16600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff161315611f02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5265736f757263654d65746572696e673a2063616e6e6f7420627579206d6f7260448201527f6520676173207468616e20617661696c61626c6520676173206c696d69740000606482015260840161067f565b600154600090611f2e906fffffffffffffffffffffffffffffffff1667ffffffffffffffff88166151f0565b90506000611f4048633b9aca0061234f565b611f4a908361522d565b905060005a611f599088614f9e565b905080821115611f7557611f75611f708284614f9e565b612366565b5050505050505050565b60008160000151826020015183604001518460600151604051602001611fbe949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b80516020808301516040808501516060860151608087015160a08801519351600097611fbe979096959101615241565b60008061201786612394565b9050612025818686866123c6565b9695505050505050565b6000603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f4daa2916040518163ffffffff1660e01b8152600401602060405180830381865afa15801561209e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c29190614efa565b6120cc9083615298565b421192915050565b60008060006120e48660006123f6565b90508061211a576308c379a06000526020805278185361666543616c6c3a204e6f7420656e6f756768206761736058526064601cfd5b600080855160208701888b5af1979650505050505050565b600054610100900460ff166121c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161067f565b60408051606081018252633b9aca00808252600060208301524367ffffffffffffffff169190920181905278010000000000000000000000000000000000000000000000000217600155565b6040805160c08082018352600080835260208301819052828401819052606083018190526080830181905260a083015260365483517fcc731b020000000000000000000000000000000000000000000000000000000081529351929373ffffffffffffffffffffffffffffffffffffffff9091169263cc731b02926004808401939192918290030181865afa1580156122b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d691906152d5565b905090565b60006122f06122ea8585612414565b83612424565b90505b9392505050565b6000670de0b6b3a764000061233b6123128583614fe4565b61232490670de0b6b3a764000061504c565b61233685670de0b6b3a76400006150c0565b612433565b61234590866150c0565b6122f09190614fe4565b60008183101561235f57816122f3565b5090919050565b6000805a90505b825a6123799083614f9e565b101561238f5761238882615374565b915061236d565b505050565b606081805190602001206040516020016123b091815260200190565b6040516020818303038152906040529050919050565b60006123ed846123d7878686612464565b8051602091820120825192909101919091201490565b95945050505050565b600080603f83619c4001026040850201603f5a021015949350505050565b60008183121561235f57816122f3565b600081831261235f57816122f3565b60006122f3670de0b6b3a76400008361244b86612ee2565b61245591906150c0565b61245f9190614fe4565b613126565b606060008451116124d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d65726b6c65547269653a20656d707479206b65790000000000000000000000604482015260640161067f565b60006124dc84613365565b905060006124e986613451565b905060008460405160200161250091815260200190565b60405160208183030381529060405290506000805b8451811015612e59576000858281518110612532576125326153ac565b6020026020010151905084518311156125cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4d65726b6c65547269653a206b657920696e646578206578636565647320746f60448201527f74616c206b6579206c656e677468000000000000000000000000000000000000606482015260840161067f565b82600003612686578051805160209182012060405161261b926125f592910190815260200190565b604051602081830303815290604052858051602091820120825192909101919091201490565b612681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f742068617368000000604482015260640161067f565b6127dd565b80515160201161273c57805180516020918201206040516126b0926125f592910190815260200190565b612681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e60448201527f616c206861736800000000000000000000000000000000000000000000000000606482015260840161067f565b8051845160208087019190912082519190920120146127dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f6460448201527f6520686173680000000000000000000000000000000000000000000000000000606482015260840161067f565b6127e960106001615298565b816020015151036129c5578451830361295d576128238160200151601081518110612816576128166153ac565b60200260200101516134b4565b965060008751116128b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286272616e6368290000000000606482015260840161067f565b600186516128c49190614f9e565b8214612952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286272616e636829000000000000606482015260840161067f565b5050505050506122f3565b6000858481518110612971576129716153ac565b602001015160f81c60f81b60f81c9050600082602001518260ff168151811061299c5761299c6153ac565b602002602001015190506129af81613614565b95506129bc600186615298565b94505050612e46565b600281602001515103612dbe5760006129dd82613639565b90506000816000815181106129f4576129f46153ac565b016020015160f81c90506000612a0b6002836153db565b612a169060026153fd565b90506000612a27848360ff1661365d565b90506000612a358a8961365d565b90506000612a438383613693565b905080835114612ad5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a20706174682072656d61696e646572206d7573742060448201527f736861726520616c6c206e6962626c65732077697468206b6579000000000000606482015260840161067f565b60ff851660021480612aea575060ff85166003145b15612cd95780825114612b7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4d65726b6c65547269653a206b65792072656d61696e646572206d757374206260448201527f65206964656e746963616c20746f20706174682072656d61696e646572000000606482015260840161067f565b612b998760200151600181518110612816576128166153ac565b9c5060008d5111612c2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286c6561662900000000000000606482015260840161067f565b60018c51612c3a9190614f9e565b8814612cc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286c656166290000000000000000606482015260840161067f565b5050505050505050505050506122f3565b60ff85161580612cec575060ff85166001145b15612d2b57612d188760200151600181518110612d0b57612d0b6153ac565b6020026020010151613614565b9950612d24818a615298565b9850612db3565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f6465207769746860448201527f20616e20756e6b6e6f776e207072656669780000000000000000000000000000606482015260840161067f565b505050505050612e46565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e70617273656160448201527f626c65206e6f6465000000000000000000000000000000000000000000000000606482015260840161067f565b5080612e5181615374565b915050612515565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4d65726b6c65547269653a2072616e206f7574206f662070726f6f6620656c6560448201527f6d656e7473000000000000000000000000000000000000000000000000000000606482015260840161067f565b6000808213612f4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e45440000000000000000000000000000000000000000000000604482015260640161067f565b60006060612f5a84613747565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c1821361315757506000919050565b680755bf798b4a1bf1e582126131c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4558505f4f564552464c4f570000000000000000000000000000000000000000604482015260640161067f565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b80516060908067ffffffffffffffff8111156133835761338361486a565b6040519080825280602002602001820160405280156133c857816020015b60408051808201909152606080825260208201528152602001906001900390816133a15790505b50915060005b8181101561344a5760405180604001604052808583815181106133f3576133f36153ac565b60200260200101518152602001613422868481518110613415576134156153ac565b602002602001015161381d565b815250838281518110613437576134376153ac565b60209081029190910101526001016133ce565b5050919050565b606080604051905082518060011b603f8101601f1916830160405280835250602084016020830160005b838110156134a9578060011b82018184015160001a8060041c8253600f81166001830153505060010161347b565b509295945050505050565b606060008060006134c485613830565b9194509250905060008160018111156134df576134df615420565b1461356c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206279746573206973206e6f7420612064617461206974656d00000000000000606482015260840161067f565b6135768284615298565b855114613605576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f524c505265616465723a2062797465732076616c756520636f6e7461696e732060448201527f616e20696e76616c69642072656d61696e646572000000000000000000000000606482015260840161067f565b6123ed8560200151848461429d565b606060208260000151106136305761362b826134b4565b61105f565b61105f82614331565b606061105f6136588360200151600081518110612816576128166153ac565b613451565b60608251821061367c575060408051602081019091526000815261105f565b6122f3838384865161368e9190614f9e565b614347565b60008082518451106136a65782516136a9565b83515b90505b808210801561373057508282815181106136c8576136c86153ac565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848381518110613707576137076153ac565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b15613740578160010191506136ac565b5092915050565b60008082116137b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e45440000000000000000000000000000000000000000000000604482015260640161067f565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b606061105f61382b8361451f565b614608565b6000806000808460000151116138ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a40161067f565b6020840151805160001a607f8111613913576000600160009450945094505050614296565b60b78111613b21576000613928608083614f9e565b9050808760000151116139e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604e60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20737472696e67206c656e6774682060648201527f2873686f727420737472696e6729000000000000000000000000000000000000608482015260a40161067f565b6001838101517fff00000000000000000000000000000000000000000000000000000000000000169082141580613a5c57507f80000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610155b613b0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a20696e76616c6964207072656669782c2073696e676c60448201527f652062797465203c203078383020617265206e6f74207072656669786564202860648201527f73686f727420737472696e672900000000000000000000000000000000000000608482015260a40161067f565b5060019550935060009250614296915050565b60bf8111613e6f576000613b3660b783614f9e565b905080876000015111613bf1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605160248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f6620737472696e67206c656e60648201527f67746820286c6f6e6720737472696e6729000000000000000000000000000000608482015260a40161067f565b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003613ccf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e6720737472696e672900000000000000000000000000000000000000000000608482015260a40161067f565b600184015160088302610100031c60378111613d93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f20737472696e6729000000000000000000000000000000000000000000000000608482015260a40161067f565b613d9d8184615298565b895111613e52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e6720737472696e67290000000000000000000000000000000000000000608482015260a40161067f565b613e5d836001615298565b97509550600094506142969350505050565b60f78111613f50576000613e8460c083614f9e565b905080876000015111613f3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e206c697374206c656e67746820287360648201527f686f7274206c6973742900000000000000000000000000000000000000000000608482015260a40161067f565b600195509350849250614296915050565b6000613f5d60f783614f9e565b905080876000015111614018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f66206c697374206c656e677460648201527f6820286c6f6e67206c6973742900000000000000000000000000000000000000608482015260a40161067f565b60018301517fff000000000000000000000000000000000000000000000000000000000000001660008190036140f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e67206c69737429000000000000000000000000000000000000000000000000608482015260a40161067f565b600184015160088302610100031c603781116141ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604660248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f206c697374290000000000000000000000000000000000000000000000000000608482015260a40161067f565b6141c48184615298565b895111614279576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e67206c6973742900000000000000000000000000000000000000000000608482015260a40161067f565b614284836001615298565b97509550600194506142969350505050565b9193909250565b60608167ffffffffffffffff8111156142b8576142b861486a565b6040519080825280601f01601f1916602001820160405280156142e2576020820181803683370190505b50905081156122f35760006142f78486615298565b90506020820160005b84811015614318578281015182820152602001614300565b84811115614327576000858301525b5050509392505050565b606061105f82602001516000846000015161429d565b60608182601f0110156143b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015260640161067f565b828284011015614422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015260640161067f565b8183018451101561448f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015260640161067f565b6060821580156144ae5760405191506000825260208201604052614516565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156144e75780518352602092830192016144cf565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b604080518082019091526000808252602082015260008251116145ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a40161067f565b50604080518082019091528151815260209182019181019190915290565b6060600080600061461885613830565b91945092509050600181600181111561463357614633615420565b146146c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206c697374206973206e6f742061206c697374206974656d0000000000000000606482015260840161067f565b84516146cc8385615298565b14614759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f524c505265616465723a206c697374206974656d2068617320616e20696e766160448201527f6c696420646174612072656d61696e6465720000000000000000000000000000606482015260840161067f565b604080516020808252610420820190925290816020015b60408051808201909152600080825260208201528152602001906001900390816147705790505093506000835b865181101561485e576000806147e36040518060400160405280858c600001516147c79190614f9e565b8152602001858c602001516147dc9190615298565b9052613830565b5091509150604051806040016040528083836147ff9190615298565b8152602001848b602001516148149190615298565b815250888581518110614829576148296153ac565b602090810291909101015261483f600185615298565b935061484b8183615298565b6148559084615298565b9250505061479d565b50845250919392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156148e0576148e061486a565b604052919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461490a57600080fd5b50565b600082601f83011261491e57600080fd5b813567ffffffffffffffff8111156149385761493861486a565b61496960207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614899565b81815284602083860101111561497e57600080fd5b816020850160208301376000918101602001919091529392505050565b600060c082840312156149ad57600080fd5b60405160c0810167ffffffffffffffff82821081831117156149d1576149d161486a565b8160405282935084358352602085013591506149ec826148e8565b81602084015260408501359150614a02826148e8565b816040840152606085013560608401526080850135608084015260a0850135915080821115614a3057600080fd5b50614a3d8582860161490d565b60a0830152505092915050565b600080600080600085870360e0811215614a6357600080fd5b863567ffffffffffffffff80821115614a7b57600080fd5b614a878a838b0161499b565b97506020890135965060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc084011215614ac057600080fd5b60408901955060c0890135925080831115614ada57600080fd5b828901925089601f840112614aee57600080fd5b8235915080821115614aff57600080fd5b508860208260051b8401011115614b1557600080fd5b959894975092955050506020019190565b60005b83811015614b41578181015183820152602001614b29565b83811115614b50576000848401525b50505050565b60008151808452614b6e816020860160208601614b26565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006122f36020830184614b56565b600060208284031215614bc557600080fd5b5035919050565b600060208284031215614bde57600080fd5b813567ffffffffffffffff811115614bf557600080fd5b614c018482850161499b565b949350505050565b803567ffffffffffffffff81168114614c2157600080fd5b919050565b600060208284031215614c3857600080fd5b6122f382614c09565b80358015158114614c2157600080fd5b600080600080600060a08688031215614c6957600080fd5b8535614c74816148e8565b945060208601359350614c8960408701614c09565b9250614c9760608701614c41565b9150608086013567ffffffffffffffff811115614cb357600080fd5b614cbf8882890161490d565b9150509295509295909350565b60008060008060808587031215614ce257600080fd5b8435614ced816148e8565b93506020850135614cfd816148e8565b92506040850135614d0d816148e8565b9150614d1b60608601614c41565b905092959194509250565b8581528460208201527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b16604082015282151560f81b604882015260008251614d7a816049850160208701614b26565b919091016049019695505050505050565b80516fffffffffffffffffffffffffffffffff81168114614c2157600080fd5b600060608284031215614dbd57600080fd5b6040516060810181811067ffffffffffffffff82111715614de057614de061486a565b60405282518152614df360208401614d8b565b6020820152614e0460408401614d8b565b60408201529392505050565b600060808284031215614e2257600080fd5b6040516080810181811067ffffffffffffffff82111715614e4557614e4561486a565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600067ffffffffffffffff80841115614e9157614e9161486a565b8360051b6020614ea2818301614899565b868152918501918181019036841115614eba57600080fd5b865b84811015614eee57803586811115614ed45760008081fd5b614ee036828b0161490d565b845250918301918301614ebc565b50979650505050505050565b600060208284031215614f0c57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615614f6957614f69614f13565b02949350505050565b600067ffffffffffffffff808316818516808303821115614f9557614f95614f13565b01949350505050565b600082821015614fb057614fb0614f13565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614ff357614ff3614fb5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f80000000000000000000000000000000000000000000000000000000000000008314161561504757615047614f13565b500590565b6000808312837f80000000000000000000000000000000000000000000000000000000000000000183128115161561508657615086614f13565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0183138116156150ba576150ba614f13565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60008413600084138583048511828216161561510157615101614f13565b7f8000000000000000000000000000000000000000000000000000000000000000600087128682058812818416161561513c5761513c614f13565b6000871292508782058712848416161561515857615158614f13565b8785058712818416161561516e5761516e614f13565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038413811516156151b6576151b6614f13565b827f80000000000000000000000000000000000000000000000000000000000000000384128116156151ea576151ea614f13565b50500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561522857615228614f13565b500290565b60008261523c5761523c614fb5565b500490565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a083015261528c60c0830184614b56565b98975050505050505050565b600082198211156152ab576152ab614f13565b500190565b805163ffffffff81168114614c2157600080fd5b805160ff81168114614c2157600080fd5b600060c082840312156152e757600080fd5b60405160c0810181811067ffffffffffffffff8211171561530a5761530a61486a565b604052615316836152b0565b8152615324602084016152c4565b6020820152615335604084016152c4565b6040820152615346606084016152b0565b6060820152615357608084016152b0565b608082015261536860a08401614d8b565b60a08201529392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036153a5576153a5614f13565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff8316806153ee576153ee614fb5565b8060ff84160691505092915050565b600060ff821660ff84168082101561541757615417614f13565b90039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a", 564 "sourceMap": "1135:20265:110:-:0;;;4982:219;;;;;;;;;-1:-1:-1;5006:188:110;5065:1;;;5179:4;5006:10;:188::i;:::-;1135:20265;;5491:423;4396:13:36;;2762:1:158;;4396:13:36;;;;;4395:14;:40;;;;-1:-1:-1;4413:12:36;;:22;;;;:12;;:22;4395:40;4387:99;;;;-1:-1:-1;;;4387:99:36;;216:2:285;4387:99:36;;;198:21:285;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:285;;;338:44;399:19;;4387:99:36;;;;;;;;;4496:12;:22;;-1:-1:-1;;4528:20:36;4496:22;;;4528:20;4496:22;4528:20;;;;;;5710:8:110::1;:38:::0;;-1:-1:-1;;;;;;5710:38:110;;::::1;1337:42:158;5710:38:110;::::0;;;5758:8:::1;:20:::0;;5788:12:::1;:28:::0;;-1:-1:-1;;;;;5788:28:110;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;5826:8:::1;:20:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;5856:16;::::1;;5758:20:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;5856:16:110;-1:-1:-1;;;;;;5856:16:110;;;;;;;::::1;::::0;;5882:25:::1;:23;:25::i;:::-;4585:5:36::0;4569:21;;-1:-1:-1;;4569:21:36;;;4605:20;;601:4:285;589:17;;571:36;;4605:20:36;;559:2:285;544:18;4605:20:36;;;;;;;5491:423:110;;;;;:::o;8362:180:112:-;4888:13:36;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:36;;820:2:285;4880:69:36;;;802:21:285;859:2;839:18;;;832:30;898:34;878:18;;;871:62;-1:-1:-1;;;949:18:285;;;942:41;1000:19;;4880:69:36;618:407:285;4880:69:36;8442:93:112::1;::::0;;::::1;::::0;::::1;::::0;;8472:6:::1;8442:93:::0;;;-1:-1:-1;8442:93:112::1;::::0;::::1;::::0;8519:12:::1;-1:-1:-1::0;;;;;8442:93:112::1;::::0;;;;;;;-1:-1:-1;;;8433:102:112::1;;:6;:102:::0;8362:180::o;618:407:285:-;1135:20265:110;;;;;;", 565 "linkReferences": {} 566 }, 567 "deployedBytecode": { 568 "object": "0x60806040526004361061016d5760003560e01c80638b4c40b0116100cb578063a35d99df1161007f578063e9e05c4211610059578063e9e05c4214610573578063f049875014610586578063fecf9734146105b157600080fd5b8063a35d99df1461040d578063cff0ab9614610446578063e965084c146104e757600080fd5b80639b5f694a116100b05780639b5f694a1461037e5780639bf62d82146103b0578063a14238e7146103dd57600080fd5b80638b4c40b0146101925780638c3152e91461035e57600080fd5b806354fd4d50116101225780636dbffb78116101075780636dbffb78146102fe578063724c184c1461031e5780638456cb591461034957600080fd5b806354fd4d501461027e5780635c975abb146102d457600080fd5b80633f4ba83a116101535780633f4ba83a1461021c578063452a9320146102315780634870496f1461025e57600080fd5b80621c2ff61461019957806333d7e2bd146101ef57600080fd5b36610194576101923334620186a06000604051806020016040528060008152506105d1565b005b600080fd5b3480156101a557600080fd5b50603554610100900473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101fb57600080fd5b506036546101c59073ffffffffffffffffffffffffffffffffffffffff1681565b34801561022857600080fd5b5061019261086c565b34801561023d57600080fd5b506037546101c59073ffffffffffffffffffffffffffffffffffffffff1681565b34801561026a57600080fd5b50610192610279366004614a4a565b610971565b34801561028a57600080fd5b506102c76040518060400160405280600681526020017f312e31302e30000000000000000000000000000000000000000000000000000081525081565b6040516101e69190614ba0565b3480156102e057600080fd5b506035546102ee9060ff1681565b60405190151581526020016101e6565b34801561030a57600080fd5b506102ee610319366004614bb3565b610fa6565b34801561032a57600080fd5b5060375473ffffffffffffffffffffffffffffffffffffffff166101c5565b34801561035557600080fd5b50610192611065565b34801561036a57600080fd5b50610192610379366004614bcc565b611167565b34801561038a57600080fd5b506035546101c590610100900473ffffffffffffffffffffffffffffffffffffffff1681565b3480156103bc57600080fd5b506032546101c59073ffffffffffffffffffffffffffffffffffffffff1681565b3480156103e957600080fd5b506102ee6103f8366004614bb3565b60336020526000908152604090205460ff1681565b34801561041957600080fd5b5061042d610428366004614c26565b611a2b565b60405167ffffffffffffffff90911681526020016101e6565b34801561045257600080fd5b506001546104ae906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff92831660208501529116908201526060016101e6565b3480156104f357600080fd5b50610545610502366004614bb3565b603460205260009081526040902080546001909101546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041683565b604080519384526fffffffffffffffffffffffffffffffff92831660208501529116908201526060016101e6565b610192610581366004614c51565b6105d1565b34801561059257600080fd5b5060365473ffffffffffffffffffffffffffffffffffffffff166101c5565b3480156105bd57600080fd5b506101926105cc366004614ccc565b611a44565b8260005a905083156106885773ffffffffffffffffffffffffffffffffffffffff87161561068857604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f4f7074696d69736d506f7274616c3a206d7573742073656e6420746f2061646460448201527f72657373283029207768656e206372656174696e67206120636f6e747261637460648201526084015b60405180910390fd5b6106928351611a2b565b67ffffffffffffffff168567ffffffffffffffff161015610735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f7074696d69736d506f7274616c3a20676173206c696d697420746f6f20736d60448201527f616c6c0000000000000000000000000000000000000000000000000000000000606482015260840161067f565b6201d4c0835111156107a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4f7074696d69736d506f7274616c3a206461746120746f6f206c617267650000604482015260640161067f565b333281146107c4575033731111000000000000000000000000000000001111015b600034888888886040516020016107df959493929190614d26565b604051602081830303815290604052905060008973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c328460405161084f9190614ba0565b60405180910390a450506108638282611c52565b50505050505050565b60375473ffffffffffffffffffffffffffffffffffffffff163314610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f7074696d69736d506f7274616c3a206f6e6c7920677561726469616e20636160448201527f6e20756e70617573650000000000000000000000000000000000000000000000606482015260840161067f565b603580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b60355460ff16156109de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f7074696d69736d506f7274616c3a2070617573656400000000000000000000604482015260640161067f565b3073ffffffffffffffffffffffffffffffffffffffff16856040015173ffffffffffffffffffffffffffffffffffffffff1603610a9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a20796f752063616e6e6f742073656e642060448201527f6d6573736167657320746f2074686520706f7274616c20636f6e747261637400606482015260840161067f565b6035546040517fa25ae55700000000000000000000000000000000000000000000000000000000815260048101869052600091610100900473ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa158015610b12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b369190614dab565b519050610b50610b4b36869003860186614e10565b611f7f565b8114610bde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f7074696d69736d506f7274616c3a20696e76616c6964206f7574707574207260448201527f6f6f742070726f6f660000000000000000000000000000000000000000000000606482015260840161067f565b6000610be987611fdb565b6000818152603460209081526040918290208251606081018452815481526001909101546fffffffffffffffffffffffffffffffff8082169383018490527001000000000000000000000000000000009091041692810192909252919250901580610d035750805160355460408084015190517fa25ae5570000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff909116600482015261010090910473ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa158015610cdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cff9190614dab565b5114155b610d8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173682060448201527f68617320616c7265616479206265656e2070726f76656e000000000000000000606482015260840161067f565b60408051602081018490526000918101829052606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201209083018190529250610e589101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828201909152600182527f0100000000000000000000000000000000000000000000000000000000000000602083015290610e4e888a614e76565b8a6040013561200b565b610ee4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4f7074696d69736d506f7274616c3a20696e76616c696420776974686472617760448201527f616c20696e636c7573696f6e2070726f6f660000000000000000000000000000606482015260840161067f565b604080516060810182528581526fffffffffffffffffffffffffffffffff42811660208084019182528c831684860190815260008981526034835286812095518655925190518416700100000000000000000000000000000000029316929092176001909301929092558b830151908c0151925173ffffffffffffffffffffffffffffffffffffffff918216939091169186917f67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f629190a4505050505050505050565b6035546040517fa25ae5570000000000000000000000000000000000000000000000000000000081526004810183905260009161105f9161010090910473ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa158015611020573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110449190614dab565b602001516fffffffffffffffffffffffffffffffff1661202f565b92915050565b60375473ffffffffffffffffffffffffffffffffffffffff16331461110c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4f7074696d69736d506f7274616c3a206f6e6c7920677561726469616e20636160448201527f6e20706175736500000000000000000000000000000000000000000000000000606482015260840161067f565b603580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610967565b60355460ff16156111d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f7074696d69736d506f7274616c3a2070617573656400000000000000000000604482015260640161067f565b60325473ffffffffffffffffffffffffffffffffffffffff1661dead1461127d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a2063616e206f6e6c79207472696767657260448201527f206f6e65207769746864726177616c20706572207472616e73616374696f6e00606482015260840161067f565b600061128882611fdb565b60008181526034602090815260408083208151606081018352815481526001909101546fffffffffffffffffffffffffffffffff80821694830185905270010000000000000000000000000000000090910416918101919091529293509003611373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206e60448201527f6f74206265656e2070726f76656e207965740000000000000000000000000000606482015260840161067f565b603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663887862726040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114049190614efa565b81602001516fffffffffffffffffffffffffffffffff1610156114cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f4f7074696d69736d506f7274616c3a207769746864726177616c2074696d657360448201527f74616d70206c657373207468616e204c32204f7261636c65207374617274696e60648201527f672074696d657374616d70000000000000000000000000000000000000000000608482015260a40161067f565b6114ee81602001516fffffffffffffffffffffffffffffffff1661202f565b6115a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4f7074696d69736d506f7274616c3a2070726f76656e2077697468647261776160448201527f6c2066696e616c697a6174696f6e20706572696f6420686173206e6f7420656c60648201527f6170736564000000000000000000000000000000000000000000000000000000608482015260a40161067f565b60355460408281015190517fa25ae5570000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff9091166004820152600091610100900473ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa15801561162c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116509190614dab565b825181519192501461170a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f4f7074696d69736d506f7274616c3a206f757470757420726f6f742070726f7660448201527f656e206973206e6f74207468652073616d652061732063757272656e74206f7560648201527f7470757420726f6f740000000000000000000000000000000000000000000000608482015260a40161067f565b61172981602001516fffffffffffffffffffffffffffffffff1661202f565b6117db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f4f7074696d69736d506f7274616c3a206f75747075742070726f706f73616c2060448201527f66696e616c697a6174696f6e20706572696f6420686173206e6f7420656c617060648201527f7365640000000000000000000000000000000000000000000000000000000000608482015260a40161067f565b60008381526033602052604090205460ff161561187a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206160448201527f6c7265616479206265656e2066696e616c697a65640000000000000000000000606482015260840161067f565b600083815260336020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055908601516032805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff00000000000000000000000000000000000000009092169190911790558501516080860151606087015160a088015161191c939291906120d4565b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905560405190915084907fdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b9061198190841515815260200190565b60405180910390a2801580156119975750326001145b15611a24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4f7074696d69736d506f7274616c3a207769746864726177616c206661696c6560448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161067f565b5050505050565b6000611a38826010614f42565b61105f90615208614f72565b600054600390610100900460ff16158015611a66575060005460ff8083169116105b611af2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161067f565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100908117909155603280547fffffffffffffffffffffffff000000000000000000000000000000000000000090811661dead17909155603580546036805473ffffffffffffffffffffffffffffffffffffffff89811691861691909117909155603780548a83169516949094179093558515159289169093027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217179055611bed612132565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b600154600090611c88907801000000000000000000000000000000000000000000000000900467ffffffffffffffff1643614f9e565b90506000611c94612215565b90506000816020015160ff16826000015163ffffffff16611cb59190614fe4565b90508215611dec57600154600090611cec908390700100000000000000000000000000000000900467ffffffffffffffff1661504c565b90506000836040015160ff1683611d0391906150c0565b600154611d239084906fffffffffffffffffffffffffffffffff166150c0565b611d2d9190614fe4565b600154909150600090611d7e90611d579084906fffffffffffffffffffffffffffffffff1661517c565b866060015163ffffffff168760a001516fffffffffffffffffffffffffffffffff166122db565b90506001861115611dad57611daa611d5782876040015160ff1660018a611da59190614f9e565b6122fa565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b60018054869190601090611e1f908490700100000000000000000000000000000000900467ffffffffffffffff16614f72565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550816000015163ffffffff16600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff161315611f02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5265736f757263654d65746572696e673a2063616e6e6f7420627579206d6f7260448201527f6520676173207468616e20617661696c61626c6520676173206c696d69740000606482015260840161067f565b600154600090611f2e906fffffffffffffffffffffffffffffffff1667ffffffffffffffff88166151f0565b90506000611f4048633b9aca0061234f565b611f4a908361522d565b905060005a611f599088614f9e565b905080821115611f7557611f75611f708284614f9e565b612366565b5050505050505050565b60008160000151826020015183604001518460600151604051602001611fbe949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b80516020808301516040808501516060860151608087015160a08801519351600097611fbe979096959101615241565b60008061201786612394565b9050612025818686866123c6565b9695505050505050565b6000603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f4daa2916040518163ffffffff1660e01b8152600401602060405180830381865afa15801561209e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c29190614efa565b6120cc9083615298565b421192915050565b60008060006120e48660006123f6565b90508061211a576308c379a06000526020805278185361666543616c6c3a204e6f7420656e6f756768206761736058526064601cfd5b600080855160208701888b5af1979650505050505050565b600054610100900460ff166121c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161067f565b60408051606081018252633b9aca00808252600060208301524367ffffffffffffffff169190920181905278010000000000000000000000000000000000000000000000000217600155565b6040805160c08082018352600080835260208301819052828401819052606083018190526080830181905260a083015260365483517fcc731b020000000000000000000000000000000000000000000000000000000081529351929373ffffffffffffffffffffffffffffffffffffffff9091169263cc731b02926004808401939192918290030181865afa1580156122b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d691906152d5565b905090565b60006122f06122ea8585612414565b83612424565b90505b9392505050565b6000670de0b6b3a764000061233b6123128583614fe4565b61232490670de0b6b3a764000061504c565b61233685670de0b6b3a76400006150c0565b612433565b61234590866150c0565b6122f09190614fe4565b60008183101561235f57816122f3565b5090919050565b6000805a90505b825a6123799083614f9e565b101561238f5761238882615374565b915061236d565b505050565b606081805190602001206040516020016123b091815260200190565b6040516020818303038152906040529050919050565b60006123ed846123d7878686612464565b8051602091820120825192909101919091201490565b95945050505050565b600080603f83619c4001026040850201603f5a021015949350505050565b60008183121561235f57816122f3565b600081831261235f57816122f3565b60006122f3670de0b6b3a76400008361244b86612ee2565b61245591906150c0565b61245f9190614fe4565b613126565b606060008451116124d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d65726b6c65547269653a20656d707479206b65790000000000000000000000604482015260640161067f565b60006124dc84613365565b905060006124e986613451565b905060008460405160200161250091815260200190565b60405160208183030381529060405290506000805b8451811015612e59576000858281518110612532576125326153ac565b6020026020010151905084518311156125cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4d65726b6c65547269653a206b657920696e646578206578636565647320746f60448201527f74616c206b6579206c656e677468000000000000000000000000000000000000606482015260840161067f565b82600003612686578051805160209182012060405161261b926125f592910190815260200190565b604051602081830303815290604052858051602091820120825192909101919091201490565b612681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f742068617368000000604482015260640161067f565b6127dd565b80515160201161273c57805180516020918201206040516126b0926125f592910190815260200190565b612681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e60448201527f616c206861736800000000000000000000000000000000000000000000000000606482015260840161067f565b8051845160208087019190912082519190920120146127dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f6460448201527f6520686173680000000000000000000000000000000000000000000000000000606482015260840161067f565b6127e960106001615298565b816020015151036129c5578451830361295d576128238160200151601081518110612816576128166153ac565b60200260200101516134b4565b965060008751116128b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286272616e6368290000000000606482015260840161067f565b600186516128c49190614f9e565b8214612952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286272616e636829000000000000606482015260840161067f565b5050505050506122f3565b6000858481518110612971576129716153ac565b602001015160f81c60f81b60f81c9050600082602001518260ff168151811061299c5761299c6153ac565b602002602001015190506129af81613614565b95506129bc600186615298565b94505050612e46565b600281602001515103612dbe5760006129dd82613639565b90506000816000815181106129f4576129f46153ac565b016020015160f81c90506000612a0b6002836153db565b612a169060026153fd565b90506000612a27848360ff1661365d565b90506000612a358a8961365d565b90506000612a438383613693565b905080835114612ad5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a20706174682072656d61696e646572206d7573742060448201527f736861726520616c6c206e6962626c65732077697468206b6579000000000000606482015260840161067f565b60ff851660021480612aea575060ff85166003145b15612cd95780825114612b7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4d65726b6c65547269653a206b65792072656d61696e646572206d757374206260448201527f65206964656e746963616c20746f20706174682072656d61696e646572000000606482015260840161067f565b612b998760200151600181518110612816576128166153ac565b9c5060008d5111612c2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286c6561662900000000000000606482015260840161067f565b60018c51612c3a9190614f9e565b8814612cc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286c656166290000000000000000606482015260840161067f565b5050505050505050505050506122f3565b60ff85161580612cec575060ff85166001145b15612d2b57612d188760200151600181518110612d0b57612d0b6153ac565b6020026020010151613614565b9950612d24818a615298565b9850612db3565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f6465207769746860448201527f20616e20756e6b6e6f776e207072656669780000000000000000000000000000606482015260840161067f565b505050505050612e46565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e70617273656160448201527f626c65206e6f6465000000000000000000000000000000000000000000000000606482015260840161067f565b5080612e5181615374565b915050612515565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4d65726b6c65547269653a2072616e206f7574206f662070726f6f6620656c6560448201527f6d656e7473000000000000000000000000000000000000000000000000000000606482015260840161067f565b6000808213612f4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e45440000000000000000000000000000000000000000000000604482015260640161067f565b60006060612f5a84613747565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c1821361315757506000919050565b680755bf798b4a1bf1e582126131c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4558505f4f564552464c4f570000000000000000000000000000000000000000604482015260640161067f565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b80516060908067ffffffffffffffff8111156133835761338361486a565b6040519080825280602002602001820160405280156133c857816020015b60408051808201909152606080825260208201528152602001906001900390816133a15790505b50915060005b8181101561344a5760405180604001604052808583815181106133f3576133f36153ac565b60200260200101518152602001613422868481518110613415576134156153ac565b602002602001015161381d565b815250838281518110613437576134376153ac565b60209081029190910101526001016133ce565b5050919050565b606080604051905082518060011b603f8101601f1916830160405280835250602084016020830160005b838110156134a9578060011b82018184015160001a8060041c8253600f81166001830153505060010161347b565b509295945050505050565b606060008060006134c485613830565b9194509250905060008160018111156134df576134df615420565b1461356c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206279746573206973206e6f7420612064617461206974656d00000000000000606482015260840161067f565b6135768284615298565b855114613605576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f524c505265616465723a2062797465732076616c756520636f6e7461696e732060448201527f616e20696e76616c69642072656d61696e646572000000000000000000000000606482015260840161067f565b6123ed8560200151848461429d565b606060208260000151106136305761362b826134b4565b61105f565b61105f82614331565b606061105f6136588360200151600081518110612816576128166153ac565b613451565b60608251821061367c575060408051602081019091526000815261105f565b6122f3838384865161368e9190614f9e565b614347565b60008082518451106136a65782516136a9565b83515b90505b808210801561373057508282815181106136c8576136c86153ac565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848381518110613707576137076153ac565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b15613740578160010191506136ac565b5092915050565b60008082116137b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e45440000000000000000000000000000000000000000000000604482015260640161067f565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b606061105f61382b8361451f565b614608565b6000806000808460000151116138ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a40161067f565b6020840151805160001a607f8111613913576000600160009450945094505050614296565b60b78111613b21576000613928608083614f9e565b9050808760000151116139e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604e60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20737472696e67206c656e6774682060648201527f2873686f727420737472696e6729000000000000000000000000000000000000608482015260a40161067f565b6001838101517fff00000000000000000000000000000000000000000000000000000000000000169082141580613a5c57507f80000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610155b613b0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a20696e76616c6964207072656669782c2073696e676c60448201527f652062797465203c203078383020617265206e6f74207072656669786564202860648201527f73686f727420737472696e672900000000000000000000000000000000000000608482015260a40161067f565b5060019550935060009250614296915050565b60bf8111613e6f576000613b3660b783614f9e565b905080876000015111613bf1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605160248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f6620737472696e67206c656e60648201527f67746820286c6f6e6720737472696e6729000000000000000000000000000000608482015260a40161067f565b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003613ccf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e6720737472696e672900000000000000000000000000000000000000000000608482015260a40161067f565b600184015160088302610100031c60378111613d93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f20737472696e6729000000000000000000000000000000000000000000000000608482015260a40161067f565b613d9d8184615298565b895111613e52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e6720737472696e67290000000000000000000000000000000000000000608482015260a40161067f565b613e5d836001615298565b97509550600094506142969350505050565b60f78111613f50576000613e8460c083614f9e565b905080876000015111613f3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e206c697374206c656e67746820287360648201527f686f7274206c6973742900000000000000000000000000000000000000000000608482015260a40161067f565b600195509350849250614296915050565b6000613f5d60f783614f9e565b905080876000015111614018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f66206c697374206c656e677460648201527f6820286c6f6e67206c6973742900000000000000000000000000000000000000608482015260a40161067f565b60018301517fff000000000000000000000000000000000000000000000000000000000000001660008190036140f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e67206c69737429000000000000000000000000000000000000000000000000608482015260a40161067f565b600184015160088302610100031c603781116141ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604660248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f206c697374290000000000000000000000000000000000000000000000000000608482015260a40161067f565b6141c48184615298565b895111614279576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e67206c6973742900000000000000000000000000000000000000000000608482015260a40161067f565b614284836001615298565b97509550600194506142969350505050565b9193909250565b60608167ffffffffffffffff8111156142b8576142b861486a565b6040519080825280601f01601f1916602001820160405280156142e2576020820181803683370190505b50905081156122f35760006142f78486615298565b90506020820160005b84811015614318578281015182820152602001614300565b84811115614327576000858301525b5050509392505050565b606061105f82602001516000846000015161429d565b60608182601f0110156143b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015260640161067f565b828284011015614422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015260640161067f565b8183018451101561448f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015260640161067f565b6060821580156144ae5760405191506000825260208201604052614516565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156144e75780518352602092830192016144cf565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b604080518082019091526000808252602082015260008251116145ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a40161067f565b50604080518082019091528151815260209182019181019190915290565b6060600080600061461885613830565b91945092509050600181600181111561463357614633615420565b146146c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206c697374206973206e6f742061206c697374206974656d0000000000000000606482015260840161067f565b84516146cc8385615298565b14614759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f524c505265616465723a206c697374206974656d2068617320616e20696e766160448201527f6c696420646174612072656d61696e6465720000000000000000000000000000606482015260840161067f565b604080516020808252610420820190925290816020015b60408051808201909152600080825260208201528152602001906001900390816147705790505093506000835b865181101561485e576000806147e36040518060400160405280858c600001516147c79190614f9e565b8152602001858c602001516147dc9190615298565b9052613830565b5091509150604051806040016040528083836147ff9190615298565b8152602001848b602001516148149190615298565b815250888581518110614829576148296153ac565b602090810291909101015261483f600185615298565b935061484b8183615298565b6148559084615298565b9250505061479d565b50845250919392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156148e0576148e061486a565b604052919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461490a57600080fd5b50565b600082601f83011261491e57600080fd5b813567ffffffffffffffff8111156149385761493861486a565b61496960207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614899565b81815284602083860101111561497e57600080fd5b816020850160208301376000918101602001919091529392505050565b600060c082840312156149ad57600080fd5b60405160c0810167ffffffffffffffff82821081831117156149d1576149d161486a565b8160405282935084358352602085013591506149ec826148e8565b81602084015260408501359150614a02826148e8565b816040840152606085013560608401526080850135608084015260a0850135915080821115614a3057600080fd5b50614a3d8582860161490d565b60a0830152505092915050565b600080600080600085870360e0811215614a6357600080fd5b863567ffffffffffffffff80821115614a7b57600080fd5b614a878a838b0161499b565b97506020890135965060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc084011215614ac057600080fd5b60408901955060c0890135925080831115614ada57600080fd5b828901925089601f840112614aee57600080fd5b8235915080821115614aff57600080fd5b508860208260051b8401011115614b1557600080fd5b959894975092955050506020019190565b60005b83811015614b41578181015183820152602001614b29565b83811115614b50576000848401525b50505050565b60008151808452614b6e816020860160208601614b26565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006122f36020830184614b56565b600060208284031215614bc557600080fd5b5035919050565b600060208284031215614bde57600080fd5b813567ffffffffffffffff811115614bf557600080fd5b614c018482850161499b565b949350505050565b803567ffffffffffffffff81168114614c2157600080fd5b919050565b600060208284031215614c3857600080fd5b6122f382614c09565b80358015158114614c2157600080fd5b600080600080600060a08688031215614c6957600080fd5b8535614c74816148e8565b945060208601359350614c8960408701614c09565b9250614c9760608701614c41565b9150608086013567ffffffffffffffff811115614cb357600080fd5b614cbf8882890161490d565b9150509295509295909350565b60008060008060808587031215614ce257600080fd5b8435614ced816148e8565b93506020850135614cfd816148e8565b92506040850135614d0d816148e8565b9150614d1b60608601614c41565b905092959194509250565b8581528460208201527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b16604082015282151560f81b604882015260008251614d7a816049850160208701614b26565b919091016049019695505050505050565b80516fffffffffffffffffffffffffffffffff81168114614c2157600080fd5b600060608284031215614dbd57600080fd5b6040516060810181811067ffffffffffffffff82111715614de057614de061486a565b60405282518152614df360208401614d8b565b6020820152614e0460408401614d8b565b60408201529392505050565b600060808284031215614e2257600080fd5b6040516080810181811067ffffffffffffffff82111715614e4557614e4561486a565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600067ffffffffffffffff80841115614e9157614e9161486a565b8360051b6020614ea2818301614899565b868152918501918181019036841115614eba57600080fd5b865b84811015614eee57803586811115614ed45760008081fd5b614ee036828b0161490d565b845250918301918301614ebc565b50979650505050505050565b600060208284031215614f0c57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615614f6957614f69614f13565b02949350505050565b600067ffffffffffffffff808316818516808303821115614f9557614f95614f13565b01949350505050565b600082821015614fb057614fb0614f13565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614ff357614ff3614fb5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f80000000000000000000000000000000000000000000000000000000000000008314161561504757615047614f13565b500590565b6000808312837f80000000000000000000000000000000000000000000000000000000000000000183128115161561508657615086614f13565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0183138116156150ba576150ba614f13565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60008413600084138583048511828216161561510157615101614f13565b7f8000000000000000000000000000000000000000000000000000000000000000600087128682058812818416161561513c5761513c614f13565b6000871292508782058712848416161561515857615158614f13565b8785058712818416161561516e5761516e614f13565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038413811516156151b6576151b6614f13565b827f80000000000000000000000000000000000000000000000000000000000000000384128116156151ea576151ea614f13565b50500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561522857615228614f13565b500290565b60008261523c5761523c614fb5565b500490565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a083015261528c60c0830184614b56565b98975050505050505050565b600082198211156152ab576152ab614f13565b500190565b805163ffffffff81168114614c2157600080fd5b805160ff81168114614c2157600080fd5b600060c082840312156152e757600080fd5b60405160c0810181811067ffffffffffffffff8211171561530a5761530a61486a565b604052615316836152b0565b8152615324602084016152c4565b6020820152615335604084016152c4565b6040820152615346606084016152b0565b6060820152615357608084016152b0565b608082015261536860a08401614d8b565b60a08201529392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036153a5576153a5614f13565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff8316806153ee576153ee614fb5565b8060ff84160691505092915050565b600060ff821660ff84168082101561541757615417614f13565b90039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a", 569 "sourceMap": "1135:20265:110:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7915:86;7934:10;7946:9;1866:7;7984:5;7991:9;;;;;;;;;;;;7915:18;:86::i;:::-;1135:20265;;;;;5989:92;;;;;;;;;;-1:-1:-1;6066:8:110;;;;;;;5989:92;;;214:42:285;202:55;;;184:74;;172:2;157:18;5989:92:110;;;;;;;;2856:32;;;;;;;;;;-1:-1:-1;2856:32:110;;;;;;;;6664:180;;;;;;;;;;;;;:::i;3007:23::-;;;;;;;;;;-1:-1:-1;3007:23:110;;;;;;;;9088:3746;;;;;;;;;;-1:-1:-1;9088:3746:110;;;;;:::i;:::-;;:::i;4878:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2618:18::-;;;;;;;;;;-1:-1:-1;2618:18:110;;;;;;;;;;;5224:14:285;;5217:22;5199:41;;5187:2;5172:18;2618::110;5059:187:285;20785:180:110;;;;;;;;;;-1:-1:-1;20785:180:110;;;;;:::i;:::-;;:::i;6321:84::-;;;;;;;;;;-1:-1:-1;6390:8:110;;;;6321:84;;6447:173;;;;;;;;;;;;;:::i;12947:4839::-;;;;;;;;;;-1:-1:-1;12947:4839:110;;;;;:::i;:::-;;:::i;2732:30::-;;;;;;;;;;-1:-1:-1;2732:30:110;;;;;;;;;;;2129:23;;;;;;;;;;-1:-1:-1;2129:23:110;;;;;;;;2243:52;;;;;;;;;;-1:-1:-1;2243:52:110;;;;;:::i;:::-;;;;;;;;;;;;;;;;7337:120;;;;;;;;;;-1:-1:-1;7337:120:110;;;;;:::i;:::-;;:::i;:::-;;;6539:18:285;6527:31;;;6509:50;;6497:2;6482:18;7337:120:110;6365:200:285;2999:28:112;;;;;;;;;;-1:-1:-1;2999:28:112;;;;;;;;;;;;;;;;;;;;;;;;;6798:34:285;6786:47;;;6768:66;;6853:18;6907:15;;;6902:2;6887:18;;6880:43;6959:15;;6939:18;;;6932:43;6756:2;6741:18;2999:28:112;6570:411:285;2377:61:110;;;;;;;;;;-1:-1:-1;2377:61:110;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7188:25:285;;;7232:34;7302:15;;;7297:2;7282:18;;7275:43;7354:15;;7334:18;;;7327:43;7176:2;7161:18;2377:61:110;6986:390:285;18516:1971:110;;;;;;:::i;:::-;;:::i;6154:98::-;;;;;;;;;;-1:-1:-1;6233:12:110;;;;6154:98;;5491:423;;;;;;;;;;-1:-1:-1;5491:423:110;;;;;:::i;:::-;;:::i;18516:1971::-;18722:9;3417:18:112;3438:9;3417:30;;18876:11:110::1;18872:136;;;18911:17;::::0;::::1;::::0;18903:94:::1;;;::::0;;::::1;::::0;;9067:2:285;18903:94:110::1;::::0;::::1;9049:21:285::0;9086:18;;;9079:30;;;;9145:34;9125:18;;;9118:62;9216:34;9196:18;;;9189:62;9268:19;;18903:94:110::1;;;;;;;;;19176:37;19199:5;:12;19176:15;:37::i;:::-;19163:50;;:9;:50;;;;19155:98;;;::::0;::::1;::::0;;9500:2:285;19155:98:110::1;::::0;::::1;9482:21:285::0;9539:2;9519:18;;;9512:30;9578:34;9558:18;;;9551:62;9649:5;9629:18;;;9622:33;9672:19;;19155:98:110::1;9298:399:285::0;19155:98:110::1;19648:7;19632:5;:12;:23;;19624:66;;;::::0;::::1;::::0;;9904:2:285;19624:66:110::1;::::0;::::1;9886:21:285::0;9943:2;9923:18;;;9916:30;9982:32;9962:18;;;9955:60;10032:18;;19624:66:110::1;9702:354:285::0;19624:66:110::1;19796:10;19834:9;19820:23:::0;::::1;19816:108;;-1:-1:-1::0;19902:10:110::1;741:42:204::0;1213:27;19816:108:110::1;20181:23;20224:9;20235:6;20243:9;20254:11;20267:5;20207:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;20181:92;;1716:1;20447:3;20420:60;;20441:4;20420:60;;;20469:10;20420:60;;;;;;:::i;:::-;;;;;;;;18737:1750;;3548:29:112::0;3557:7;3566:10;3548:8;:29::i;:::-;3339:245;18516:1971:110;;;;;;:::o;6664:180::-;6724:8;;;;6710:10;:22;6702:76;;;;;;;11133:2:285;6702:76:110;;;11115:21:285;11172:2;11152:18;;;11145:30;11211:34;11191:18;;;11184:62;11282:11;11262:18;;;11255:39;11311:19;;6702:76:110;10931:405:285;6702:76:110;6788:6;:14;;;;;;6817:20;;6826:10;184:74:285;;6817:20:110;;172:2:285;157:18;6817:20:110;;;;;;;;6664:180::o;9088:3746::-;4748:6;;;;:15;4740:50;;;;;;;11543:2:285;4740:50:110;;;11525:21:285;11582:2;11562:18;;;11555:30;11621:24;11601:18;;;11594:52;11663:18;;4740:50:110;11341:346:285;4740:50:110;9620:4:::1;9598:27;;:3;:10;;;:27;;::::0;9590:103:::1;;;::::0;::::1;::::0;;11894:2:285;9590:103:110::1;::::0;::::1;11876:21:285::0;11933:2;11913:18;;;11906:30;11972:34;11952:18;;;11945:62;12043:33;12023:18;;;12016:61;12094:19;;9590:103:110::1;11692:427:285::0;9590:103:110::1;9891:8;::::0;:36:::1;::::0;;;;::::1;::::0;::::1;12270:25:285::0;;;9870:18:110::1;::::0;9891:8:::1;::::0;::::1;;;::::0;:20:::1;::::0;12243:18:285;;9891:36:110::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47:::0;;-1:-1:-1;10072:45:110::1;;;::::0;;::::1;::::0;::::1;10100:16:::0;10072:45:::1;:::i;:::-;:27;:45::i;:::-;10058:10;:59;10037:135;;;::::0;::::1;::::0;;13978:2:285;10037:135:110::1;::::0;::::1;13960:21:285::0;14017:2;13997:18;;;13990:30;14056:34;14036:18;;;14029:62;14127:11;14107:18;;;14100:39;14156:19;;10037:135:110::1;13776:405:285::0;10037:135:110::1;10283:22;10308:27;10331:3;10308:22;:27::i;:::-;10345:40;10388:33:::0;;;:17:::1;:33;::::0;;;;;;;;10345:76;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;::::1;;::::0;;;;;;;10283:52;;-1:-1:-1;10345:76:110;10975:31;;:145:::1;;-1:-1:-1::0;11093:27:110;;11026:8:::1;::::0;11047:30:::1;::::0;;::::1;::::0;11026:52;;;;;14362:34:285;14350:47;;;11026:52:110::1;::::0;::::1;14332:66:285::0;11026:8:110::1;::::0;;::::1;;;::::0;:20:::1;::::0;14305:18:285;;11026:52:110::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:63:::0;:94:::1;;10975:145;10954:247;;;::::0;::::1;::::0;;14611:2:285;10954:247:110::1;::::0;::::1;14593:21:285::0;14650:2;14630:18;;;14623:30;14689:34;14669:18;;;14662:62;14760:25;14740:18;;;14733:53;14803:19;;10954:247:110::1;14409:419:285::0;10954:247:110::1;11481:147;::::0;;::::1;::::0;::::1;15007:25:285::0;;;11437:18:110::1;15048::285::0;;;15041:34;;;14980:18;;11481:147:110::1;::::0;;;;;::::1;::::0;;;;;;11458:180;;11481:147:::1;11458:180:::0;;::::1;::::0;12046:22;;::::1;12270:25:285::0;;;11458:180:110;-1:-1:-1;11991:161:110::1;::::0;12243:18:285;12046:22:110::1;::::0;;;;;::::1;::::0;;;11991:161;;::::1;::::0;;;::::1;::::0;;::::1;12046:22;11991:161:::0;::::1;::::0;12046:22;11991:161:::1;12079:16:::0;;11991:161:::1;:::i;:::-;12097:16;:41;;;11991:37;:161::i;:::-;11970:258;;;::::0;::::1;::::0;;16409:2:285;11970:258:110::1;::::0;::::1;16391:21:285::0;16448:2;16428:18;;;16421:30;16487:34;16467:18;;;16460:62;16558:20;16538:18;;;16531:48;16596:19;;11970:258:110::1;16207:414:285::0;11970:258:110::1;12546:165;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;12632:15;12546:165:::0;::::1;;::::0;;::::1;::::0;;;;;::::1;::::0;;;;;;-1:-1:-1;12510:33:110;;;:17:::1;:33:::0;;;;;:201;;;;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;;::::0;;::::1;::::0;;;;12816:10;;::::1;::::0;12804;;::::1;::::0;12771:56;;::::1;::::0;;::::1;::::0;;;::::1;::::0;12528:14;;12771:56:::1;::::0;-1:-1:-1;12771:56:110::1;9353:3481;;;;9088:3746:::0;;;;;:::o;20785:180::-;20911:8;;:36;;;;;;;;12270:25:285;;;20859:4:110;;20882:76;;20911:8;;;;;;;:20;;12243:18:285;;20911:36:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:46;;;20882:76;;:28;:76::i;:::-;20875:83;20785:180;-1:-1:-1;;20785:180:110:o;6447:173::-;6505:8;;;;6491:10;:22;6483:74;;;;;;;16828:2:285;6483:74:110;;;16810:21:285;16867:2;16847:18;;;16840:30;16906:34;16886:18;;;16879:62;16977:9;16957:18;;;16950:37;17004:19;;6483:74:110;16626:403:285;6483:74:110;6567:6;:13;;;;6576:4;6567:13;;;6595:18;;6602:10;184:74:285;;6595:18:110;;172:2:285;157:18;6595::110;14:250:285;12947:4839:110;4748:6;;;;:15;4740:50;;;;;;;11543:2:285;4740:50:110;;;11525:21:285;11582:2;11562:18;;;11555:30;11621:24;11601:18;;;11594:52;11663:18;;4740:50:110;11341:346:285;4740:50:110;13315:8:::1;::::0;:39:::1;:8;1337:42:158;13315:39:110;13294:137;;;::::0;::::1;::::0;;17236:2:285;13294:137:110::1;::::0;::::1;17218:21:285::0;17275:2;17255:18;;;17248:30;17314:34;17294:18;;;17287:62;17385:33;17365:18;;;17358:61;17436:19;;13294:137:110::1;17034:427:285::0;13294:137:110::1;13514:22;13539:27;13562:3;13539:22;:27::i;:::-;13576:40;13619:33:::0;;;:17:::1;:33;::::0;;;;;;;13576:76;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;::::1;;::::0;;;;;;;13514:52;;-1:-1:-1;13902:31:110;;13894:94:::1;;;::::0;::::1;::::0;;17668:2:285;13894:94:110::1;::::0;::::1;17650:21:285::0;17707:2;17687:18;;;17680:30;17746:34;17726:18;;;17719:62;17817:20;17797:18;;;17790:48;17855:19;;13894:94:110::1;17466:414:285::0;13894:94:110::1;14305:8;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14275:16;:26;;;:58;;;;14254:180;;;::::0;::::1;::::0;;18276:2:285;14254:180:110::1;::::0;::::1;18258:21:285::0;18315:2;18295:18;;;18288:30;18354:34;18334:18;;;18327:62;18425:34;18405:18;;;18398:62;18497:13;18476:19;;;18469:42;18528:19;;14254:180:110::1;18074:479:285::0;14254:180:110::1;14824:56;14853:16;:26;;;14824:56;;:28;:56::i;:::-;14803:172;;;::::0;::::1;::::0;;18760:2:285;14803:172:110::1;::::0;::::1;18742:21:285::0;18799:2;18779:18;;;18772:30;18838:34;18818:18;;;18811:62;18909:34;18889:18;;;18882:62;18981:7;18960:19;;;18953:36;19006:19;;14803:172:110::1;18558:473:285::0;14803:172:110::1;15185:8;::::0;15206:30:::1;::::0;;::::1;::::0;15185:52;;;;;14362:34:285;14350:47;;;15185:52:110::1;::::0;::::1;14332:66:285::0;15146:36:110::1;::::0;15185:8:::1;::::0;::::1;;;::::0;:20:::1;::::0;14305:18:285;;15185:52:110::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15548:27:::0;;15525:19;;15146:91;;-1:-1:-1;15525:50:110::1;15504:170;;;::::0;::::1;::::0;;19238:2:285;15504:170:110::1;::::0;::::1;19220:21:285::0;19277:2;19257:18;;;19250:30;19316:34;19296:18;;;19289:62;19387:34;19367:18;;;19360:62;19459:11;19438:19;;;19431:40;19488:19;;15504:170:110::1;19036:477:285::0;15504:170:110::1;15773:48;15802:8;:18;;;15773:48;;:28;:48::i;:::-;15752:162;;;::::0;::::1;::::0;;19720:2:285;15752:162:110::1;::::0;::::1;19702:21:285::0;19759:2;19739:18;;;19732:30;19798:34;19778:18;;;19771:62;19869:34;19849:18;;;19842:62;19941:5;19920:19;;;19913:34;19964:19;;15752:162:110::1;19518:471:285::0;15752:162:110::1;16030:36;::::0;;;:20:::1;:36;::::0;;;;;::::1;;:45;16022:111;;;::::0;::::1;::::0;;20196:2:285;16022:111:110::1;::::0;::::1;20178:21:285::0;20235:2;20215:18;;;20208:30;20274:34;20254:18;;;20247:62;20345:23;20325:18;;;20318:51;20386:19;;16022:111:110::1;19994:417:285::0;16022:111:110::1;16213:36;::::0;;;:20:::1;:36;::::0;;;;;;;:43;;;::::1;16252:4;16213:43;::::0;;16361:10;;::::1;::::0;16350:8:::1;:21:::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;17030:10;::::1;::::0;17042:12:::1;::::0;::::1;::::0;17056:9:::1;::::0;::::1;::::0;17067:8:::1;::::0;::::1;::::0;17006:70:::1;::::0;17030:10;17042:12;17056:9;17006:23:::1;:70::i;:::-;17144:8;:38:::0;;;::::1;1337:42:158;17144:38:110;::::0;;17341:44:::1;::::0;16991:85;;-1:-1:-1;17361:14:110;;17341:44:::1;::::0;::::1;::::0;16991:85;5224:14:285;5217:22;5199:41;;5187:2;5172:18;;5059:187;17341:44:110::1;;;;;;;;17649:16:::0;::::1;::::0;::::1;:61;;-1:-1:-1::0;17669:9:110::1;1015:1:158;17669:41:110;17649:61;17645:135;;;17726:43;::::0;::::1;::::0;;20618:2:285;17726:43:110::1;::::0;::::1;20600:21:285::0;20657:2;20637:18;;;20630:30;20696:34;20676:18;;;20669:62;20767:3;20747:18;;;20740:31;20788:19;;17726:43:110::1;20416:397:285::0;17645:135:110::1;13049:4737;;;;12947:4839:::0;:::o;7337:120::-;7402:6;7427:15;:10;7440:2;7427:15;:::i;:::-;:23;;7445:5;7427:23;:::i;5491:423::-;4396:13:36;;2762:1:158;;4396:13:36;;;;;4395:14;:40;;;;-1:-1:-1;4413:12:36;;:22;;;;:12;;:22;4395:40;4387:99;;;;;;;21725:2:285;4387:99:36;;;21707:21:285;21764:2;21744:18;;;21737:30;21803:34;21783:18;;;21776:62;21874:16;21854:18;;;21847:44;21908:19;;4387:99:36;21523:410:285;4387:99:36;4496:12;:22;;4528:20;;4496:22;;;4528:20;4496:22;4528:20;;;;;;5710:8:110::1;:38:::0;;;;;::::1;1337:42:158;5710:38:110;::::0;;;5758:8:::1;:20:::0;;5788:12:::1;:28:::0;;5710:38:::1;5788:28:::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;5826:8:::1;:20:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;5856:16;::::1;;5758:20:::0;;::::1;::::0;;::::1;4496:22:36::0;5856:16:110;;;;;;;;;::::1;::::0;;5882:25:::1;:23;:25::i;:::-;4585:5:36::0;4569:21;;;;;;4605:20;;22110:4:285;22098:17;;22080:36;;4605:20:36;;22068:2:285;22053:18;4605:20:36;;;;;;;5491:423:110;;;;;:::o;3817:4037:112:-;3984:6;:19;3949:17;;3969:34;;3984:19;;;;;3969:12;:34;:::i;:::-;3949:54;;4014:28;4045:17;:15;:17::i;:::-;4014:48;;4072:26;4171:6;:27;;;4163:36;;4128:6;:23;;;4120:32;;4113:87;;;;:::i;:::-;4072:128;-1:-1:-1;4215:13:112;;4211:2229;;4572:6;:20;4535:19;;4557:59;;4597:19;;4572:20;;;;;4557:59;:::i;:::-;4535:81;;4630:19;4761:6;:34;;;4753:43;;4724:19;:73;;;;:::i;:::-;4668:6;:18;4653:50;;4691:12;;4668:18;;4653:50;:::i;:::-;4652:146;;;;:::i;:::-;5017:6;:18;4630:168;;-1:-1:-1;4939:17:112;;4959:232;;5002:50;;4630:168;;5017:18;;5002:50;:::i;:::-;5091:6;:21;;;5083:30;;5153:6;:21;;;5145:30;;4959:16;:232::i;:::-;4939:252;;5468:1;5456:9;:13;5452:741;;;5741:437;5788:239;5845:10;5910:6;:34;;;5902:43;;6002:1;5990:9;:13;;;;:::i;:::-;5788:16;:239::i;5741:437::-;5728:450;;5452:741;6286:49;;6387:42;6349:24;6416:12;6387:42;;;6286:6;6387:42;-1:-1:-1;;4211:2229:112;6534:6;:31;;6558:7;;6534:6;:20;;:31;;6558:7;;6534:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6652:6;:23;;;6644:32;;6611:6;:20;;;;;;;;;;;;6603:29;;6596:81;;6575:190;;;;;;;24367:2:285;6575:190:112;;;24349:21:285;24406:2;24386:18;;;24379:30;24445:34;24425:18;;;24418:62;24516:32;24496:18;;;24489:60;24566:19;;6575:190:112;24165:426:285;6575:190:112;6877:6;:18;6827:20;;6850:46;;6877:18;;6850:16;;;:46;:::i;:::-;6827:69;;7378:15;7411:31;7420:13;7435:6;7411:8;:31::i;:::-;7396:46;;:12;:46;:::i;:::-;7378:64;;7722:15;7754:9;7740:23;;:11;:23;:::i;:::-;7722:41;;7787:7;7777;:17;7773:75;;;7810:27;7819:17;7829:7;7819;:17;:::i;:::-;7810:8;:27::i;:::-;3881:3973;;;;;;3817:4037;;:::o;4937:384:162:-;5036:7;5113:16;:24;;;5155:16;:26;;;5199:16;:41;;;5258:16;:32;;;5085:219;;;;;;;;;;25185:25:285;;;25241:2;25226:18;;25219:34;;;;25284:2;25269:18;;25262:34;25327:2;25312:18;;25305:34;25172:3;25157:19;;24954:391;5085:219:162;;;;;;;;;;;;;5062:252;;;;;;5055:259;;4937:384;;;:::o;4432:211::-;4566:9;;4577:10;;;;;4589;;;;;4601:9;;;;4612:12;;;;4626:8;;;;4555:80;;4519:7;;4555:80;;4566:9;;4577:10;4626:8;4555:80;;:::i;1041:343:171:-;1234:11;1261:16;1280:19;1294:4;1280:13;:19::i;:::-;1261:38;;1318:59;1350:3;1355:6;1363;1371:5;1318:31;:59::i;:::-;1309:68;1041:343;-1:-1:-1;;;;;;1041:343:171:o;21218:180:110:-;21299:4;21353:8;;;;;;;;;;;:36;;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21340:51;;:10;:51;:::i;:::-;21322:15;:69;;21218:180;-1:-1:-1;;21218:180:110:o;4419:2320:165:-;4589:4;4609:13;4632:15;4650:21;4660:7;4669:1;4650:9;:21::i;:::-;4632:39;;4782:10;4772:1146;;4894:10;4891:1;4884:21;5009:2;5005;4998:14;5747:56;5743:2;5736:68;5900:3;5896:2;5889:15;4772:1146;6666:4;6630;6589:9;6583:16;6549:2;6538:9;6534:18;6491:6;6449:7;6415:5;6389:309;6361:337;4419:2320;-1:-1:-1;;;;;;;4419:2320:165:o;8362:180:112:-;4888:13:36;;;;;;;4880:69;;;;;;;26346:2:285;4880:69:36;;;26328:21:285;26385:2;26365:18;;;26358:30;26424:34;26404:18;;;26397:62;26495:13;26475:18;;;26468:41;26526:19;;4880:69:36;26144:407:285;4880:69:36;8442:93:112::1;::::0;;::::1;::::0;::::1;::::0;;8472:6:::1;8442:93:::0;;;-1:-1:-1;8442:93:112::1;::::0;::::1;::::0;8519:12:::1;8442:93;;::::0;;;;;;;8433:102;::::1;;:6;:102:::0;8362:180::o;8548:152:110:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8664:12:110;;:29;;;;;;;-1:-1:-1;;8664:12:110;;;;;:27;;:29;;;;;-1:-1:-1;;8664:29:110;;;;;;:12;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8657:36;;8548:152;:::o;537:161:154:-;616:6;641:50;656:28;671:6;679:4;656:14;:28::i;:::-;686:4;641:14;:50::i;:::-;634:57;;537:161;;;;;;:::o;1040:228::-;1138:6;1257:4;1180:72;1213:19;1220:12;1257:4;1213:19;:::i;:::-;1205:28;;:4;:28;:::i;:::-;1235:16;:9;1247:4;1235:16;:::i;:::-;1180:24;:72::i;:::-;1164:89;;:12;:89;:::i;:::-;1163:98;;;;:::i;413:105:62:-;471:7;502:1;497;:6;;:14;;510:1;497:14;;;-1:-1:-1;506:1:62;;490:21;-1:-1:-1;413:105:62:o;407:192:155:-;461:9;484:18;505:9;484:30;;524:69;556:7;544:9;531:22;;:10;:22;:::i;:::-;:32;524:69;;;579:3;;;:::i;:::-;;;524:69;;;451:148;;407:192;:::o;2052:142:171:-;2116:18;2181:4;2171:15;;;;;;2154:33;;;;;;28115:19:285;;28159:2;28150:12;;27986:182;2154:33:171;;;;;;;;;;;;;2146:41;;2052:142;;;:::o;2253:281:170:-;2446:11;2482:45;2494:6;2502:24;2506:4;2512:6;2520:5;2502:3;:24::i;:::-;6693:17:156;;;;;;;6672;;;;;;;;;;:38;;6569:148;2482:45:170;2473:54;2253:281;-1:-1:-1;;;;;2253:281:170:o;3615:365:165:-;3696:4;3712:15;3931:2;3916:12;3909:5;3905:24;3901:33;3896:2;3887:7;3883:16;3879:56;3874:2;3867:5;3863:14;3860:76;3853:84;;3615:365;-1:-1:-1;;;;3615:365:165:o;311:102:64:-;367:6;397:1;392;:6;;:14;;405:1;392:14;;491:101;547:6;576:1;572;:5;:13;;584:1;572:13;;1208:273:88;1267:6;1391:36;491:4;1410:1;1399:8;1405:1;1399:5;:8::i;:::-;:12;;;;:::i;:::-;1398:28;;;;:::i;:::-;1391:6;:36::i;2830:6314:170:-;2923:19;2976:1;2962:4;:11;:15;2954:49;;;;;;;28375:2:285;2954:49:170;;;28357:21:285;28414:2;28394:18;;;28387:30;28453:23;28433:18;;;28426:51;28494:18;;2954:49:170;28173:345:285;2954:49:170;3014:23;3040:19;3052:6;3040:11;:19::i;:::-;3014:45;;3069:16;3088:21;3104:4;3088:15;:21::i;:::-;3069:40;;3119:26;3165:5;3148:23;;;;;;28115:19:285;;28159:2;28150:12;;27986:182;3148:23:170;;;;;;;;;;;;;3119:52;;3181:23;3295:9;3290:5790;3314:5;:12;3310:1;:16;3290:5790;;;3347:27;3377:5;3383:1;3377:8;;;;;;;;:::i;:::-;;;;;;;3347:38;;3516:3;:10;3497:15;:29;;3489:88;;;;;;;28914:2:285;3489:88:170;;;28896:21:285;28953:2;28933:18;;;28926:30;28992:34;28972:18;;;28965:62;29063:16;29043:18;;;29036:44;29097:19;;3489:88:170;28712:410:285;3489:88:170;3596:15;3615:1;3596:20;3592:837;;3768:19;;3758:30;;;;;;;3741:48;;3729:76;;3741:48;;3758:30;3741:48;28115:19:285;;;28159:2;28150:12;;27986:182;3741:48:170;;;;;;;;;;;;;3791:13;6693:17:156;;;;;;;6672;;;;;;;;;;:38;;6569:148;3729:76:170;3700:176;;;;;;;29329:2:285;3700:176:170;;;29311:21:285;29368:2;29348:18;;;29341:30;29407:31;29387:18;;;29380:59;29456:18;;3700:176:170;29127:353:285;3700:176:170;3592:837;;;3901:19;;:26;3931:2;-1:-1:-1;3897:532:170;;4097:19;;4087:30;;;;;;;4070:48;;4058:76;;4070:48;;4087:30;4070:48;28115:19:285;;;28159:2;28150:12;;27986:182;4058:76:170;4029:186;;;;;;;29687:2:285;4029:186:170;;;29669:21:285;29726:2;29706:18;;;29699:30;29765:34;29745:18;;;29738:62;29836:9;29816:18;;;29809:37;29863:19;;4029:186:170;29485:403:285;3897:532:170;4336:19;;6693:17:156;;;;;;;;;;6672;;;;;;;:38;4316:98:170;;;;;;;30095:2:285;4316:98:170;;;30077:21:285;30134:2;30114:18;;;30107:30;30173:34;30153:18;;;30146:62;30244:8;30224:18;;;30217:36;30270:19;;4316:98:170;29893:402:285;4316:98:170;936:14;803:2;949:1;936:14;:::i;:::-;4447:11;:19;;;:26;:48;4443:4627;;4538:3;:10;4519:15;:29;4515:1346;;5047:52;5067:11;:19;;;803:2;5067:31;;;;;;;;:::i;:::-;;;;;;;5047:19;:52::i;:::-;5038:61;;5145:1;5129:6;:13;:17;5121:89;;;;;;;30502:2:285;5121:89:170;;;30484:21:285;30541:2;30521:18;;;30514:30;30580:34;30560:18;;;30553:62;30651:29;30631:18;;;30624:57;30698:19;;5121:89:170;30300:423:285;5121:89:170;5322:1;5307:5;:12;:16;;;;:::i;:::-;5302:1;:21;5294:92;;;;;;;30930:2:285;5294:92:170;;;30912:21:285;30969:2;30949:18;;;30942:30;31008:34;30988:18;;;30981:62;31079:28;31059:18;;;31052:56;31125:19;;5294:92:170;30728:422:285;5294:92:170;5409:13;;;;;;;;4515:1346;5609:15;5633:3;5637:15;5633:20;;;;;;;;:::i;:::-;;;;;;;;;5627:27;;5609:45;;5676:33;5712:11;:19;;;5732:9;5712:30;;;;;;;;;;:::i;:::-;;;;;;;5676:66;;5780:20;5791:8;5780:10;:20::i;:::-;5764:36;-1:-1:-1;5822:20:170;5841:1;5822:20;;:::i;:::-;;;5447:414;;4443:4627;;;1105:1;5885:11;:19;;;:26;:59;5881:3189;;5964:17;5984:25;5997:11;5984:12;:25::i;:::-;5964:45;;6027:12;6048:4;6053:1;6048:7;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6074:12:170;6094:10;6103:1;6048:7;6094:10;:::i;:::-;6089:16;;:1;:16;:::i;:::-;6074:31;;6123:26;6152:25;6164:4;6170:6;6152:25;;:11;:25::i;:::-;6123:54;;6195:25;6223:33;6235:3;6240:15;6223:11;:33::i;:::-;6195:61;;6274:26;6303:51;6326:13;6341:12;6303:22;:51::i;:::-;6274:80;;6661:18;6637:13;:20;:42;6608:171;;;;;;;31719:2:285;6608:171:170;;;31701:21:285;31758:2;31738:18;;;31731:30;31797:34;31777:18;;;31770:62;31868:28;31848:18;;;31841:56;31914:19;;6608:171:170;31517:422:285;6608:171:170;6802:26;;;1447:1;6802:26;;:55;;-1:-1:-1;6832:25:170;;;1553:1;6832:25;6802:55;6798:2169;;;7498:18;7475:12;:19;:41;7442:185;;;;;;;32146:2:285;7442:185:170;;;32128:21:285;32185:2;32165:18;;;32158:30;32224:34;32204:18;;;32197:62;32295:31;32275:18;;;32268:59;32344:19;;7442:185:170;31944:425:285;7442:185:170;7985:43;8005:11;:19;;;8025:1;8005:22;;;;;;;;:::i;7985:43::-;7976:52;;8074:1;8058:6;:13;:17;8050:87;;;;;;;32576:2:285;8050:87:170;;;32558:21:285;32615:2;32595:18;;;32588:30;32654:34;32634:18;;;32627:62;32725:27;32705:18;;;32698:55;32770:19;;8050:87:170;32374:421:285;8050:87:170;8249:1;8234:5;:12;:16;;;;:::i;:::-;8229:1;:21;8221:90;;;;;;;33002:2:285;8221:90:170;;;32984:21:285;33041:2;33021:18;;;33014:30;33080:34;33060:18;;;33053:62;33151:26;33131:18;;;33124:54;33195:19;;8221:90:170;32800:420:285;8221:90:170;8334:13;;;;;;;;;;;;;;6798:2169;8376:31;;;;;:65;;-1:-1:-1;8411:30:170;;;1339:1;8411:30;8376:65;8372:595;;;8748:34;8759:11;:19;;;8779:1;8759:22;;;;;;;;:::i;:::-;;;;;;;8748:10;:34::i;:::-;8732:50;-1:-1:-1;8804:37:170;8823:18;8804:37;;:::i;:::-;;;8372:595;;;8888:60;;;;;33427:2:285;8888:60:170;;;33409:21:285;33466:2;33446:18;;;33439:30;33505:34;33485:18;;;33478:62;33576:20;33556:18;;;33549:48;33614:19;;8888:60:170;33225:414:285;8372:595:170;5946:3035;;;;;;5881:3189;;;9005:50;;;;;33846:2:285;9005:50:170;;;33828:21:285;33885:2;33865:18;;;33858:30;33924:34;33904:18;;;33897:62;33995:10;33975:18;;;33968:38;34023:19;;9005:50:170;33644:404:285;5881:3189:170;-1:-1:-1;3328:3:170;;;;:::i;:::-;;;;3290:5790;;;-1:-1:-1;9090:47:170;;;;;34255:2:285;9090:47:170;;;34237:21:285;34294:2;34274:18;;;34267:30;34333:34;34313:18;;;34306:62;34404:7;34384:18;;;34377:35;34429:19;;9090:47:170;34053:401:285;4596:2947:88;4644:8;4700:1;4696;:5;4688:27;;;;;;;34661:2:285;4688:27:88;;;34643:21:285;34700:1;34680:18;;;34673:29;34738:11;34718:18;;;34711:39;34767:18;;4688:27:88;34459:332:285;4688:27:88;5107:8;5145:2;5125:16;5138:1;5125:4;:16::i;:::-;5118:29;5175:3;:7;;;5161:22;;;;5208:17;;;6001:31;5997:35;;6052:5;;5459:2;6051:13;;;6068:32;6050:50;6120:5;;6119:13;;6136:33;6118:51;6189:5;;6188:13;;6205:33;6187:51;6258:5;;6257:13;;6274:33;6256:51;6327:5;;6326:13;;6343:32;6325:50;6395:5;;6394:13;;6411:30;6393:48;5398:31;5394:35;;5449:5;;5448:13;;5465:32;5447:50;5517:5;;5516:13;;5533:32;5515:50;5585:5;;5584:13;;5583:50;;5653:5;;5652:13;;5651:50;;5721:5;;5720:13;;;5719:50;;5787:5;;;:46;;6735:10;7125:43;7120:48;7232:71;:75;;;;7227:80;;;;7380:72;7375:77;7523:3;7517:9;;;-1:-1:-1;;4596:2947:88:o;1487:3103::-;1536:8;1718:21;1713:1;:26;1709:40;;-1:-1:-1;1748:1:88;;1487:3103;-1:-1:-1;1487:3103:88:o;1709:40::-;1948:21;1943:1;:26;1939:54;;1971:22;;;;;34998:2:285;1971:22:88;;;34980:21:285;35037:2;35017:18;;;35010:30;35076:14;35056:18;;;35049:42;35108:18;;1971:22:88;34796:336:285;1939:54:88;2266:5;2260:2;2255:7;;;2254:17;;-1:-1:-1;2535:8:88;2601:2;2559:29;2548:7;;;2547:41;2591:5;2547:49;2546:57;;2629:29;2625:33;;2621:37;;;3300:35;;;3355:5;;2935:2;3354:13;;;3371:32;3353:50;3423:5;;3422:13;;3421:51;;3492:5;;3491:13;;3508:34;3490:52;3562:5;;3561:13;;3560:53;;3633:5;;3632:13;;3649:35;3631:53;2941:32;2874:31;2870:35;;2925:5;;2924:13;;2923:50;;;2998:5;;;:40;;3058:5;3057:13;;;3074:35;3056:53;3127:5;;;3136:40;3127:50;4002:10;4502:49;4489:62;4564:3;:7;;;;4488:84;;;;;;-1:-1:-1;;1487:3103:88:o;9434:390:170:-;9553:13;;9500:24;;9553:13;9585:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;9585:22:170;;;;;;;;;;;;;;;;9576:31;;9622:9;9617:201;9641:6;9637:1;:10;9617:201;;;9676:72;;;;;;;;9696:6;9703:1;9696:9;;;;;;;;:::i;:::-;;;;;;;9676:72;;;;9716:29;9735:6;9742:1;9735:9;;;;;;;;:::i;:::-;;;;;;;9716:18;:29::i;:::-;9676:72;;;9664:6;9671:1;9664:9;;;;;;;;:::i;:::-;;;;;;;;;;:84;9790:3;;9617:201;;;;9526:298;9434:390;;;:::o;4332:1978:156:-;4395:12;4419:21;4550:4;4544:11;4532:23;;4663:6;4657:13;4836:11;4830:4;4826:22;5195:4;5180:13;5176:24;5169:4;5165:9;5161:40;5151:8;5147:55;5141:4;5134:69;5293:13;5283:8;5276:31;;5434:4;5426:6;5422:17;5571:4;5561:8;5557:19;5662:4;5647:622;5675:11;5672:1;5669:18;5647:622;;;5854:1;5848:4;5844:12;5830;5826:31;5996:1;5984:10;5980:18;5974:25;5968:4;5963:37;6119:1;6113:4;6109:12;6101:6;6093:29;6249:4;6246:1;6242:12;6235:4;6227:6;6223:17;6215:40;-1:-1:-1;;5702:4:156;5695:12;5647:622;;;-1:-1:-1;6295:8:156;;4332:1978;-1:-1:-1;;;;;4332:1978:156:o;3993:464:168:-;4055:17;4085:18;4105;4125:20;4149:18;4163:3;4149:13;:18::i;:::-;4084:83;;-1:-1:-1;4084:83:168;-1:-1:-1;4084:83:168;-1:-1:-1;4198:21:168;4186:8;:33;;;;;;;;:::i;:::-;;4178:103;;;;;;;35528:2:285;4178:103:168;;;35510:21:285;35567:2;35547:18;;;35540:30;35606:34;35586:18;;;35579:62;35677:27;35657:18;;;35650:55;35722:19;;4178:103:168;35326:421:285;4178:103:168;4314:23;4327:10;4314;:23;:::i;:::-;4300:10;;:37;4292:102;;;;;;;35954:2:285;4292:102:168;;;35936:21:285;35993:2;35973:18;;;35966:30;36032:34;36012:18;;;36005:62;36103:22;36083:18;;;36076:50;36143:19;;4292:102:168;35752:416:285;4292:102:168;4412:38;4418:3;:7;;;4427:10;4439;4412:5;:38::i;10121:193:170:-;10195:16;10244:2;10229:5;:12;;;:17;:78;;10281:26;10301:5;10281:19;:26::i;:::-;10229:78;;;10249:29;10272:5;10249:22;:29::i;10495:172::-;10562:21;10606:54;10622:37;10642:5;:13;;;10656:1;10642:16;;;;;;;;:::i;10622:37::-;10606:15;:54::i;3805:237:156:-;3880:12;3918:6;:13;3908:6;:23;3904:70;;-1:-1:-1;3954:9:156;;;;;;;;;-1:-1:-1;3954:9:156;;3947:16;;3904:70;3990:45;3996:6;4004;4028;4012;:13;:22;;;;:::i;:::-;3990:5;:45::i;10892:321:170:-;10980:15;11007:11;11034:2;:9;11022:2;:9;:21;11021:47;;11059:2;:9;11021:47;;;11047:2;:9;11021:47;11007:61;;11078:129;11095:3;11085:7;:13;:43;;;;;11117:2;11120:7;11117:11;;;;;;;;:::i;:::-;;;;;;;;;11102:26;;;:2;11105:7;11102:11;;;;;;;;:::i;:::-;;;;;;;:26;11085:43;11078:129;;;11173:9;;;;;11078:129;;;10997:216;10892:321;;;;:::o;15328:575:88:-;15376:9;15409:1;15405;:5;15397:27;;;;;;;34661:2:285;15397:27:88;;;34643:21:285;34700:1;34680:18;;;34673:29;34738:11;34718:18;;;34711:39;34767:18;;15397:27:88;34459:332:285;15397:27:88;-1:-1:-1;15821:1:88;15473:34;-1:-1:-1;;15467:1:88;15463:49;15566:9;;;15546:18;15543:33;15540:1;15536:41;15530:48;15624:9;;;15612:10;15609:25;15606:1;15602:33;15596:40;15678:9;;;15670:6;15667:21;15664:1;15660:29;15654:36;15730:9;;;15724:4;15721:19;15718:1;15714:27;;;15708:34;;;15781:9;;;15776:3;15773:18;15770:1;15766:26;15760:33;15832:9;;;15824:18;;;15817:26;;15811:33;15876:9;;;-1:-1:-1;15862:25:88;;15328:575::o;3732:130:168:-;3791:21;3831:24;3840:14;3850:3;3840:9;:14::i;:::-;3831:8;:24::i;5246:4079::-;5335:15;5352;5369:17;5705:1;5692:3;:10;;;:14;5684:101;;;;;;;36375:2:285;5684:101:168;;;36357:21:285;36414:2;36394:18;;;36387:30;36453:34;36433:18;;;36426:62;36524:34;36504:18;;;36497:62;36596:12;36575:19;;;36568:41;36626:19;;5684:101:168;36173:478:285;5684:101:168;5816:7;;;;5898:10;;5796:17;5890:19;5943:4;5933:14;;5929:3390;;5999:1;6002;6005:21;5991:36;;;;;;;;;;5929:3390;6058:4;6048:6;:14;6044:3275;;6164:14;6181:13;6190:4;6181:6;:13;:::i;:::-;6164:30;;6247:6;6234:3;:10;;;:19;6209:140;;;;;;;36858:2:285;6209:140:168;;;36840:21:285;36897:2;36877:18;;;36870:30;36936:34;36916:18;;;36909:62;37007:34;36987:18;;;36980:62;37079:16;37058:19;;;37051:45;37113:19;;6209:140:168;36656:482:285;6209:140:168;6471:1;6462:11;;;6456:18;6476:14;6452:39;;6544:11;;;;:41;;-1:-1:-1;6559:26:168;;;;;;6544:41;6519:177;;;;;;;37345:2:285;6519:177:168;;;37327:21:285;37384:2;37364:18;;;37357:30;37423:34;37403:18;;;37396:62;37494:34;37474:18;;;37467:62;37566:15;37545:19;;;37538:44;37599:19;;6519:177:168;37143:481:285;6519:177:168;-1:-1:-1;6719:1:168;;-1:-1:-1;6722:6:168;-1:-1:-1;6730:21:168;;-1:-1:-1;6711:41:168;;-1:-1:-1;;6711:41:168;6044:3275;6783:4;6773:6;:14;6769:2550;;6831:19;6853:13;6862:4;6853:6;:13;:::i;:::-;6831:35;;6919:11;6906:3;:10;;;:24;6881:164;;;;;;;37831:2:285;6881:164:168;;;37813:21:285;37870:2;37850:18;;;37843:30;37909:34;37889:18;;;37882:62;37980:34;37960:18;;;37953:62;38052:19;38031;;;38024:48;38089:19;;6881:164:168;37629:485:285;6881:164:168;7167:1;7158:11;;7152:18;7172:14;7148:39;7060:25;7240:26;;;7215:143;;;;;;;38321:2:285;7215:143:168;;;38303:21:285;38360:2;38340:18;;;38333:30;38399:34;38379:18;;;38372:62;38470:34;38450:18;;;38443:62;38542:12;38521:19;;;38514:41;38572:19;;7215:143:168;38119:478:285;7215:143:168;7488:1;7479:11;;7473:18;7455:1;7451:19;;7446:3;7442:29;7438:54;7537:2;7528:11;;7520:96;;;;;;;38804:2:285;7520:96:168;;;38786:21:285;38843:2;38823:18;;;38816:30;38882:34;38862:18;;;38855:62;38953:34;38933:18;;;38926:62;39025:10;39004:19;;;38997:39;39053:19;;7520:96:168;38602:476:285;7520:96:168;7669:20;7683:6;7669:11;:20;:::i;:::-;7656:10;;:33;7631:168;;;;;;;39285:2:285;7631:168:168;;;39267:21:285;39324:2;39304:18;;;39297:30;39363:34;39343:18;;;39336:62;39434:34;39414:18;;;39407:62;39506:14;39485:19;;;39478:43;39538:19;;7631:168:168;39083:480:285;7631:168:168;7822:15;7826:11;7822:1;:15;:::i;:::-;7814:55;-1:-1:-1;7839:6:168;-1:-1:-1;7847:21:168;;-1:-1:-1;7814:55:168;;-1:-1:-1;;;;7814:55:168;6769:2550;7900:4;7890:6;:14;7886:1433;;8003:15;8021:13;8030:4;8021:6;:13;:::i;:::-;8003:31;;8070:7;8057:3;:10;;;:20;8049:107;;;;;;;39770:2:285;8049:107:168;;;39752:21:285;39809:2;39789:18;;;39782:30;39848:34;39828:18;;;39821:62;39919:34;39899:18;;;39892:62;39991:12;39970:19;;;39963:41;40021:19;;8049:107:168;39568:478:285;8049:107:168;8179:1;;-1:-1:-1;8182:7:168;-1:-1:-1;8179:1:168;;-1:-1:-1;8171:42:168;;-1:-1:-1;;8171:42:168;7886:1433;8270:20;8293:13;8302:4;8293:6;:13;:::i;:::-;8270:36;;8359:12;8346:3;:10;;;:25;8321:161;;;;;;;40253:2:285;8321:161:168;;;40235:21:285;40292:2;40272:18;;;40265:30;40331:34;40311:18;;;40304:62;40402:34;40382:18;;;40375:62;40474:15;40453:19;;;40446:44;40507:19;;8321:161:168;40051:481:285;8321:161:168;8604:1;8595:11;;8589:18;8609:14;8585:39;8497:25;8677:26;;;8652:141;;;;;;;40739:2:285;8652:141:168;;;40721:21:285;40778:2;40758:18;;;40751:30;40817:34;40797:18;;;40790:62;40888:34;40868:18;;;40861:62;40960:10;40939:19;;;40932:39;40988:19;;8652:141:168;40537:476:285;8652:141:168;8926:1;8917:11;;8911:18;8892:1;8888:20;;8883:3;8879:30;8875:55;8976:2;8966:12;;8958:95;;;;;;;41220:2:285;8958:95:168;;;41202:21:285;41259:2;41239:18;;;41232:30;41298:34;41278:18;;;41271:62;41369:34;41349:18;;;41342:62;41441:8;41420:19;;;41413:37;41467:19;;8958:95:168;41018:474:285;8958:95:168;9106:22;9121:7;9106:12;:22;:::i;:::-;9093:10;;:35;9068:168;;;;;;;41699:2:285;9068:168:168;;;41681:21:285;41738:2;41718:18;;;41711:30;41777:34;41757:18;;;41750:62;41848:34;41828:18;;;41821:62;41920:12;41899:19;;;41892:41;41950:19;;9068:168:168;41497:478:285;9068:168:168;9259:16;9263:12;9259:1;:16;:::i;:::-;9251:57;-1:-1:-1;9277:7:168;-1:-1:-1;9286:21:168;;-1:-1:-1;9251:57:168;;-1:-1:-1;;;;9251:57:168;5246:4079;;;;;;:::o;9585:780::-;9676:17;9722:7;9712:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9712:18:168;-1:-1:-1;9705:25:168;-1:-1:-1;9740:54:168;;9772:11;9740:54;10053:11;10067:36;10096:7;10088:4;10067:36;:::i;:::-;10053:50;;10158:2;10152:4;10148:13;10183:1;10197:87;10211:7;10208:1;10205:14;10197:87;;;10269:11;;;10263:18;10249:12;;;10242:40;10234:2;10227:10;10197:87;;;10307:7;10304:1;10301:14;10298:51;;;10345:1;10335:7;10329:4;10325:18;10318:29;10298:51;;;10122:237;9585:780;;;;;:::o;4847:137::-;4912:17;4948:29;4954:3;:7;;;4963:1;4966:3;:10;;;4948:5;:29::i;660:2816:156:-;752:12;824:7;808;818:2;808:12;:23;;800:50;;;;;;;42182:2:285;800:50:156;;;42164:21:285;42221:2;42201:18;;;42194:30;42260:16;42240:18;;;42233:44;42294:18;;800:50:156;41980:338:285;800:50:156;892:6;881:7;872:6;:16;:26;;864:53;;;;;;;42182:2:285;864:53:156;;;42164:21:285;42221:2;42201:18;;;42194:30;42260:16;42240:18;;;42233:44;42294:18;;864:53:156;41980:338:285;864:53:156;965:7;956:6;:16;939:6;:13;:33;;931:63;;;;;;;42525:2:285;931:63:156;;;42507:21:285;42564:2;42544:18;;;42537:30;42603:19;42583:18;;;42576:47;42640:18;;931:63:156;42323:341:285;931:63:156;1015:22;1078:15;;1106:1931;;;;3178:4;3172:11;3159:24;;3365:1;3354:9;3347:20;3413:4;3402:9;3398:20;3392:4;3385:34;1071:2362;;1106:1931;1288:4;1282:11;1269:24;;1947:2;1938:7;1934:16;2329:9;2322:17;2316:4;2312:28;2300:9;2289;2285:25;2281:60;2377:7;2373:2;2369:16;2629:6;2615:9;2608:17;2602:4;2598:28;2586:9;2578:6;2574:22;2570:57;2566:70;2403:389;2662:3;2658:2;2655:11;2403:389;;;2780:9;;2769:21;;2703:4;2695:13;;;;2735;2403:389;;;-1:-1:-1;;2810:26:156;;;3018:2;3001:11;3014:7;2997:25;2991:4;2984:39;-1:-1:-1;1071:2362:156;-1:-1:-1;3460:9:156;660:2816;-1:-1:-1;;;;660:2816:156:o;1298:390:168:-;-1:-1:-1;;;;;;;;;;;;;;;;;1453:1:168;1440:3;:10;:14;1432:101;;;;;;;36375:2:285;1432:101:168;;;36357:21:285;36414:2;36394:18;;;36387:30;36453:34;36433:18;;;36426:62;36524:34;36504:18;;;36497:62;36596:12;36575:19;;;36568:41;36626:19;;1432:101:168;36173:478:285;1432:101:168;-1:-1:-1;1640:41:168;;;;;;;;;1658:10;;1640:41;;1610:2;1601:12;;;1640:41;;;;;;;;1298:390::o;1840:1740::-;1901:21;1935:18;1955;1975:20;1999:18;2013:3;1999:13;:18::i;:::-;1934:83;;-1:-1:-1;1934:83:168;-1:-1:-1;1934:83:168;-1:-1:-1;2048:21:168;2036:8;:33;;;;;;;;:::i;:::-;;2028:102;;;;;;;42871:2:285;2028:102:168;;;42853:21:285;42910:2;42890:18;;;42883:30;42949:34;42929:18;;;42922:62;43020:26;43000:18;;;42993:54;43064:19;;2028:102:168;42669:420:285;2028:102:168;2176:10;;2149:23;2162:10;2149;:23;:::i;:::-;:37;2141:100;;;;;;;43296:2:285;2141:100:168;;;43278:21:285;43335:2;43315:18;;;43308:30;43374:34;43354:18;;;43347:62;43445:20;43425:18;;;43418:48;43483:19;;2141:100:168;43094:414:285;2141:100:168;2651:30;;;1123:2;2651:30;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;2651:30:168;;;;;;;;;;;;;;-1:-1:-1;2644:37:168;-1:-1:-1;2692:17:168;2740:10;2760:681;2776:10;;2767:19;;2760:681;;;2803:18;2823;2846:150;2877:105;;;;;;;;2908:6;2895:3;:10;;;:19;;;;:::i;:::-;2877:105;;;;2972:6;2961:3;:7;;;2940:38;;;;:::i;:::-;2877:105;;2846:13;:150::i;:::-;2802:194;;;;;3201:153;;;;;;;;3248:10;3235;:23;;;;:::i;:::-;3201:153;;;;3332:6;3321:3;:7;;;3300:38;;;;:::i;:::-;3201:153;;;3183:4;3188:9;3183:15;;;;;;;;:::i;:::-;;;;;;;;;;:171;3369:14;3382:1;3369:14;;:::i;:::-;;-1:-1:-1;3407:23:168;3420:10;3407;:23;:::i;:::-;3397:33;;;;:::i;:::-;;;2788:653;;2760:681;;;-1:-1:-1;3541:23:168;;-1:-1:-1;3548:4:168;;1840:1740;-1:-1:-1;;;1840:1740:168:o;753:184:285:-;805:77;802:1;795:88;902:4;899:1;892:15;926:4;923:1;916:15;942:334;1013:2;1007:9;1069:2;1059:13;;1074:66;1055:86;1043:99;;1172:18;1157:34;;1193:22;;;1154:62;1151:88;;;1219:18;;:::i;:::-;1255:2;1248:22;942:334;;-1:-1:-1;942:334:285:o;1281:154::-;1367:42;1360:5;1356:54;1349:5;1346:65;1336:93;;1425:1;1422;1415:12;1336:93;1281:154;:::o;1440:589::-;1482:5;1535:3;1528:4;1520:6;1516:17;1512:27;1502:55;;1553:1;1550;1543:12;1502:55;1589:6;1576:20;1615:18;1611:2;1608:26;1605:52;;;1637:18;;:::i;:::-;1681:114;1789:4;1720:66;1713:4;1709:2;1705:13;1701:86;1697:97;1681:114;:::i;:::-;1820:2;1811:7;1804:19;1866:3;1859:4;1854:2;1846:6;1842:15;1838:26;1835:35;1832:55;;;1883:1;1880;1873:12;1832:55;1948:2;1941:4;1933:6;1929:17;1922:4;1913:7;1909:18;1896:55;1996:1;1971:16;;;1989:4;1967:27;1960:38;;;;1975:7;1440:589;-1:-1:-1;;;1440:589:285:o;2034:1032::-;2102:5;2150:4;2138:9;2133:3;2129:19;2125:30;2122:50;;;2168:1;2165;2158:12;2122:50;2201:2;2195:9;2243:4;2235:6;2231:17;2267:18;2335:6;2323:10;2320:22;2315:2;2303:10;2300:18;2297:46;2294:72;;;2346:18;;:::i;:::-;2386:10;2382:2;2375:22;2415:6;2406:15;;2458:9;2445:23;2437:6;2430:39;2521:2;2510:9;2506:18;2493:32;2478:47;;2534:33;2559:7;2534:33;:::i;:::-;2600:7;2595:2;2587:6;2583:15;2576:32;2660:2;2649:9;2645:18;2632:32;2617:47;;2673:33;2698:7;2673:33;:::i;:::-;2739:7;2734:2;2726:6;2722:15;2715:32;2808:2;2797:9;2793:18;2780:32;2775:2;2767:6;2763:15;2756:57;2875:3;2864:9;2860:19;2847:33;2841:3;2833:6;2829:16;2822:59;2932:3;2921:9;2917:19;2904:33;2890:47;;2960:2;2952:6;2949:14;2946:34;;;2976:1;2973;2966:12;2946:34;;3014:45;3055:3;3046:6;3035:9;3031:22;3014:45;:::i;:::-;3008:3;3000:6;2996:16;2989:71;;;2034:1032;;;;:::o;3071:1173::-;3271:6;3279;3287;3295;3303;3347:9;3338:7;3334:23;3377:3;3373:2;3369:12;3366:32;;;3394:1;3391;3384:12;3366:32;3434:9;3421:23;3463:18;3504:2;3496:6;3493:14;3490:34;;;3520:1;3517;3510:12;3490:34;3543:72;3607:7;3598:6;3587:9;3583:22;3543:72;:::i;:::-;3533:82;;3662:2;3651:9;3647:18;3634:32;3624:42;;3759:3;3690:66;3686:2;3682:75;3678:85;3675:105;;;3776:1;3773;3766:12;3675:105;3814:2;3803:9;3799:18;3789:28;;3870:3;3859:9;3855:19;3842:33;3826:49;;3900:2;3890:8;3887:16;3884:36;;;3916:1;3913;3906:12;3884:36;3954:8;3943:9;3939:24;3929:34;;4001:7;3994:4;3990:2;3986:13;3982:27;3972:55;;4023:1;4020;4013:12;3972:55;4063:2;4050:16;4036:30;;4089:2;4081:6;4078:14;4075:34;;;4105:1;4102;4095:12;4075:34;;4158:7;4153:2;4143:6;4140:1;4136:14;4132:2;4128:23;4124:32;4121:45;4118:65;;;4179:1;4176;4169:12;4118:65;3071:1173;;;;-1:-1:-1;3071:1173:285;;-1:-1:-1;;;4210:2:285;4202:11;;4232:6;3071:1173::o;4249:258::-;4321:1;4331:113;4345:6;4342:1;4339:13;4331:113;;;4421:11;;;4415:18;4402:11;;;4395:39;4367:2;4360:10;4331:113;;;4462:6;4459:1;4456:13;4453:48;;;4497:1;4488:6;4483:3;4479:16;4472:27;4453:48;;4249:258;;;:::o;4512:317::-;4554:3;4592:5;4586:12;4619:6;4614:3;4607:19;4635:63;4691:6;4684:4;4679:3;4675:14;4668:4;4661:5;4657:16;4635:63;:::i;:::-;4743:2;4731:15;4748:66;4727:88;4718:98;;;;4818:4;4714:109;;4512:317;-1:-1:-1;;4512:317:285:o;4834:220::-;4983:2;4972:9;4965:21;4946:4;5003:45;5044:2;5033:9;5029:18;5021:6;5003:45;:::i;5251:180::-;5310:6;5363:2;5351:9;5342:7;5338:23;5334:32;5331:52;;;5379:1;5376;5369:12;5331:52;-1:-1:-1;5402:23:285;;5251:180;-1:-1:-1;5251:180:285:o;5436:374::-;5535:6;5588:2;5576:9;5567:7;5563:23;5559:32;5556:52;;;5604:1;5601;5594:12;5556:52;5644:9;5631:23;5677:18;5669:6;5666:30;5663:50;;;5709:1;5706;5699:12;5663:50;5732:72;5796:7;5787:6;5776:9;5772:22;5732:72;:::i;:::-;5722:82;5436:374;-1:-1:-1;;;;5436:374:285:o;6000:171::-;6067:20;;6127:18;6116:30;;6106:41;;6096:69;;6161:1;6158;6151:12;6096:69;6000:171;;;:::o;6176:184::-;6234:6;6287:2;6275:9;6266:7;6262:23;6258:32;6255:52;;;6303:1;6300;6293:12;6255:52;6326:28;6344:9;6326:28;:::i;7381:160::-;7446:20;;7502:13;;7495:21;7485:32;;7475:60;;7531:1;7528;7521:12;7546:665;7646:6;7654;7662;7670;7678;7731:3;7719:9;7710:7;7706:23;7702:33;7699:53;;;7748:1;7745;7738:12;7699:53;7787:9;7774:23;7806:31;7831:5;7806:31;:::i;:::-;7856:5;-1:-1:-1;7908:2:285;7893:18;;7880:32;;-1:-1:-1;7931:37:285;7964:2;7949:18;;7931:37;:::i;:::-;7921:47;;7987:35;8018:2;8007:9;8003:18;7987:35;:::i;:::-;7977:45;;8073:3;8062:9;8058:19;8045:33;8101:18;8093:6;8090:30;8087:50;;;8133:1;8130;8123:12;8087:50;8156:49;8197:7;8188:6;8177:9;8173:22;8156:49;:::i;:::-;8146:59;;;7546:665;;;;;;;;:::o;8216:644::-;8345:6;8353;8361;8369;8422:3;8410:9;8401:7;8397:23;8393:33;8390:53;;;8439:1;8436;8429:12;8390:53;8478:9;8465:23;8497:31;8522:5;8497:31;:::i;:::-;8547:5;-1:-1:-1;8604:2:285;8589:18;;8576:32;8617:33;8576:32;8617:33;:::i;:::-;8669:7;-1:-1:-1;8728:2:285;8713:18;;8700:32;8741:33;8700:32;8741:33;:::i;:::-;8793:7;-1:-1:-1;8819:35:285;8850:2;8835:18;;8819:35;:::i;:::-;8809:45;;8216:644;;;;;;;:::o;10061:642::-;10324:6;10319:3;10312:19;10361:6;10356:2;10351:3;10347:12;10340:28;10420:66;10411:6;10406:3;10402:16;10398:89;10393:2;10388:3;10384:12;10377:111;10541:6;10534:14;10527:22;10522:3;10518:32;10513:2;10508:3;10504:12;10497:54;10294:3;10580:6;10574:13;10596:60;10649:6;10644:2;10639:3;10635:12;10630:2;10622:6;10618:15;10596:60;:::i;:::-;10676:16;;;;10694:2;10672:25;;10061:642;-1:-1:-1;;;;;;10061:642:285:o;12306:192::-;12385:13;;12438:34;12427:46;;12417:57;;12407:85;;12488:1;12485;12478:12;12503:616;12606:6;12659:2;12647:9;12638:7;12634:23;12630:32;12627:52;;;12675:1;12672;12665:12;12627:52;12708:2;12702:9;12750:2;12742:6;12738:15;12819:6;12807:10;12804:22;12783:18;12771:10;12768:34;12765:62;12762:88;;;12830:18;;:::i;:::-;12866:2;12859:22;12905:16;;12890:32;;12955:49;13000:2;12985:18;;12955:49;:::i;:::-;12950:2;12942:6;12938:15;12931:74;13038:49;13083:2;13072:9;13068:18;13038:49;:::i;:::-;13033:2;13021:15;;13014:74;13025:6;12503:616;-1:-1:-1;;;12503:616:285:o;13124:647::-;13217:6;13270:3;13258:9;13249:7;13245:23;13241:33;13238:53;;;13287:1;13284;13277:12;13238:53;13320:2;13314:9;13362:3;13354:6;13350:16;13432:6;13420:10;13417:22;13396:18;13384:10;13381:34;13378:62;13375:88;;;13443:18;;:::i;:::-;13483:10;13479:2;13472:22;;13531:9;13518:23;13510:6;13503:39;13603:2;13592:9;13588:18;13575:32;13570:2;13562:6;13558:15;13551:57;13669:2;13658:9;13654:18;13641:32;13636:2;13628:6;13624:15;13617:57;13735:2;13724:9;13720:18;13707:32;13702:2;13694:6;13690:15;13683:57;13759:6;13749:16;;;13124:647;;;;:::o;15268:934::-;15404:9;15438:18;15479:2;15471:6;15468:14;15465:40;;;15485:18;;:::i;:::-;15531:6;15528:1;15524:14;15557:4;15581:28;15605:2;15601;15597:11;15581:28;:::i;:::-;15643:19;;;15713:14;;;;15678:12;;;;15750:14;15739:26;;15736:46;;;15778:1;15775;15768:12;15736:46;15802:5;15816:353;15832:6;15827:3;15824:15;15816:353;;;15918:3;15905:17;15954:2;15941:11;15938:19;15935:109;;;15998:1;16027:2;16023;16016:14;15935:109;16069:57;16111:14;16097:11;16090:5;16086:23;16069:57;:::i;:::-;16057:70;;-1:-1:-1;16147:12:285;;;;15849;;15816:353;;;-1:-1:-1;16191:5:285;15268:934;-1:-1:-1;;;;;;;15268:934:285:o;17885:184::-;17955:6;18008:2;17996:9;17987:7;17983:23;17979:32;17976:52;;;18024:1;18021;18014:12;17976:52;-1:-1:-1;18047:16:285;;17885:184;-1:-1:-1;17885:184:285:o;20818:::-;20870:77;20867:1;20860:88;20967:4;20964:1;20957:15;20991:4;20988:1;20981:15;21007:270;21046:7;21078:18;21123:2;21120:1;21116:10;21153:2;21150:1;21146:10;21209:3;21205:2;21201:12;21196:3;21193:21;21186:3;21179:11;21172:19;21168:47;21165:73;;;21218:18;;:::i;:::-;21258:13;;21007:270;-1:-1:-1;;;;21007:270:285:o;21282:236::-;21321:3;21349:18;21394:2;21391:1;21387:10;21424:2;21421:1;21417:10;21455:3;21451:2;21447:12;21442:3;21439:21;21436:47;;;21463:18;;:::i;:::-;21499:13;;21282:236;-1:-1:-1;;;;21282:236:285:o;22127:125::-;22167:4;22195:1;22192;22189:8;22186:34;;;22200:18;;:::i;:::-;-1:-1:-1;22237:9:285;;22127:125::o;22257:184::-;22309:77;22306:1;22299:88;22406:4;22403:1;22396:15;22430:4;22427:1;22420:15;22446:308;22485:1;22511;22501:35;;22516:18;;:::i;:::-;22633:66;22630:1;22627:73;22558:66;22555:1;22552:73;22548:153;22545:179;;;22704:18;;:::i;:::-;-1:-1:-1;22738:10:285;;22446:308::o;22759:369::-;22798:4;22834:1;22831;22827:9;22943:1;22875:66;22871:74;22868:1;22864:82;22859:2;22852:10;22848:99;22845:125;;;22950:18;;:::i;:::-;23069:1;23001:66;22997:74;22994:1;22990:82;22986:2;22982:91;22979:117;;;23076:18;;:::i;:::-;-1:-1:-1;;23113:9:285;;22759:369::o;23133:655::-;23172:7;23204:66;23296:1;23293;23289:9;23324:1;23321;23317:9;23369:1;23365:2;23361:10;23358:1;23355:17;23350:2;23346;23342:11;23338:35;23335:61;;;23376:18;;:::i;:::-;23415:66;23507:1;23504;23500:9;23554:1;23550:2;23545:11;23542:1;23538:19;23533:2;23529;23525:11;23521:37;23518:63;;;23561:18;;:::i;:::-;23607:1;23604;23600:9;23590:19;;23654:1;23650:2;23645:11;23642:1;23638:19;23633:2;23629;23625:11;23621:37;23618:63;;;23661:18;;:::i;:::-;23726:1;23722:2;23717:11;23714:1;23710:19;23705:2;23701;23697:11;23693:37;23690:63;;;23733:18;;:::i;:::-;-1:-1:-1;;;23773:9:285;;;;;23133:655;-1:-1:-1;;;23133:655:285:o;23793:367::-;23832:3;23867:1;23864;23860:9;23976:1;23908:66;23904:74;23901:1;23897:82;23892:2;23885:10;23881:99;23878:125;;;23983:18;;:::i;:::-;24102:1;24034:66;24030:74;24027:1;24023:82;24019:2;24015:91;24012:117;;;24109:18;;:::i;:::-;-1:-1:-1;;24145:9:285;;23793:367::o;24596:228::-;24636:7;24762:1;24694:66;24690:74;24687:1;24684:81;24679:1;24672:9;24665:17;24661:105;24658:131;;;24769:18;;:::i;:::-;-1:-1:-1;24809:9:285;;24596:228::o;24829:120::-;24869:1;24895;24885:35;;24900:18;;:::i;:::-;-1:-1:-1;24934:9:285;;24829:120::o;25350:656::-;25637:6;25626:9;25619:25;25600:4;25663:42;25753:2;25745:6;25741:15;25736:2;25725:9;25721:18;25714:43;25805:2;25797:6;25793:15;25788:2;25777:9;25773:18;25766:43;;25845:6;25840:2;25829:9;25825:18;25818:34;25889:6;25883:3;25872:9;25868:19;25861:35;25933:3;25927;25916:9;25912:19;25905:32;25954:46;25995:3;25984:9;25980:19;25972:6;25954:46;:::i;:::-;25946:54;25350:656;-1:-1:-1;;;;;;;;25350:656:285:o;26011:128::-;26051:3;26082:1;26078:6;26075:1;26072:13;26069:39;;;26088:18;;:::i;:::-;-1:-1:-1;26124:9:285;;26011:128::o;26556:167::-;26634:13;;26687:10;26676:22;;26666:33;;26656:61;;26713:1;26710;26703:12;26728:160;26805:13;;26858:4;26847:16;;26837:27;;26827:55;;26878:1;26875;26868:12;26893:888;26996:6;27049:3;27037:9;27028:7;27024:23;27020:33;27017:53;;;27066:1;27063;27056:12;27017:53;27099:2;27093:9;27141:3;27133:6;27129:16;27211:6;27199:10;27196:22;27175:18;27163:10;27160:34;27157:62;27154:88;;;27222:18;;:::i;:::-;27258:2;27251:22;27297:39;27326:9;27297:39;:::i;:::-;27289:6;27282:55;27370:47;27413:2;27402:9;27398:18;27370:47;:::i;:::-;27365:2;27357:6;27353:15;27346:72;27451:47;27494:2;27483:9;27479:18;27451:47;:::i;:::-;27446:2;27438:6;27434:15;27427:72;27532:48;27576:2;27565:9;27561:18;27532:48;:::i;:::-;27527:2;27519:6;27515:15;27508:73;27615:49;27659:3;27648:9;27644:19;27615:49;:::i;:::-;27609:3;27601:6;27597:16;27590:75;27699:50;27744:3;27733:9;27729:19;27699:50;:::i;:::-;27693:3;27681:16;;27674:76;27685:6;26893:888;-1:-1:-1;;;26893:888:285:o;27786:195::-;27825:3;27856:66;27849:5;27846:77;27843:103;;27926:18;;:::i;:::-;-1:-1:-1;27973:1:285;27962:13;;27786:195::o;28523:184::-;28575:77;28572:1;28565:88;28672:4;28669:1;28662:15;28696:4;28693:1;28686:15;31155:157;31185:1;31219:4;31216:1;31212:12;31243:3;31233:37;;31250:18;;:::i;:::-;31302:3;31295:4;31292:1;31288:12;31284:22;31279:27;;;31155:157;;;;:::o;31317:195::-;31355:4;31392;31389:1;31385:12;31424:4;31421:1;31417:12;31449:3;31444;31441:12;31438:38;;;31456:18;;:::i;:::-;31493:13;;;31317:195;-1:-1:-1;;;31317:195:285:o;35137:184::-;35189:77;35186:1;35179:88;35286:4;35283:1;35276:15;35310:4;35307:1;35300:15", 570 "linkReferences": {} 571 }, 572 "methodIdentifiers": { 573 "GUARDIAN()": "724c184c", 574 "L2_ORACLE()": "001c2ff6", 575 "SYSTEM_CONFIG()": "f0498750", 576 "depositTransaction(address,uint256,uint64,bool,bytes)": "e9e05c42", 577 "donateETH()": "8b4c40b0", 578 "finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))": "8c3152e9", 579 "finalizedWithdrawals(bytes32)": "a14238e7", 580 "guardian()": "452a9320", 581 "initialize(address,address,address,bool)": "fecf9734", 582 "isOutputFinalized(uint256)": "6dbffb78", 583 "l2Oracle()": "9b5f694a", 584 "l2Sender()": "9bf62d82", 585 "minimumGasLimit(uint64)": "a35d99df", 586 "params()": "cff0ab96", 587 "pause()": "8456cb59", 588 "paused()": "5c975abb", 589 "proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])": "4870496f", 590 "provenWithdrawals(bytes32)": "e965084c", 591 "systemConfig()": "33d7e2bd", 592 "unpause()": "3f4ba83a", 593 "version()": "54fd4d50" 594 }, 595 "rawMetadata": "{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"opaqueData\",\"type\":\"bytes\"}],\"name\":\"TransactionDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"withdrawalHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"name\":\"WithdrawalFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"withdrawalHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"WithdrawalProven\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"GUARDIAN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"L2_ORACLE\",\"outputs\":[{\"internalType\":\"contract L2OutputOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SYSTEM_CONFIG\",\"outputs\":[{\"internalType\":\"contract SystemConfig\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"_gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"_isCreation\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"depositTransaction\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"donateETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.WithdrawalTransaction\",\"name\":\"_tx\",\"type\":\"tuple\"}],\"name\":\"finalizeWithdrawalTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"finalizedWithdrawals\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract L2OutputOracle\",\"name\":\"_l2Oracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_guardian\",\"type\":\"address\"},{\"internalType\":\"contract SystemConfig\",\"name\":\"_systemConfig\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_paused\",\"type\":\"bool\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_l2OutputIndex\",\"type\":\"uint256\"}],\"name\":\"isOutputFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2Oracle\",\"outputs\":[{\"internalType\":\"contract L2OutputOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2Sender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_byteCount\",\"type\":\"uint64\"}],\"name\":\"minimumGasLimit\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"params\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"prevBaseFee\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"prevBoughtGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevBlockNum\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.WithdrawalTransaction\",\"name\":\"_tx\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"_l2OutputIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"messagePasserStorageRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"latestBlockhash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.OutputRootProof\",\"name\":\"_outputRootProof\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"_withdrawalProof\",\"type\":\"bytes[]\"}],\"name\":\"proveWithdrawalTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"provenWithdrawals\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"outputRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"l2OutputIndex\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"systemConfig\",\"outputs\":[{\"internalType\":\"contract SystemConfig\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@title OptimismPortal\",\"events\":{\"Paused(address)\":{\"params\":{\"account\":\"Address of the account triggering the pause.\"}},\"TransactionDeposited(address,address,uint256,bytes)\":{\"params\":{\"from\":\"Address that triggered the deposit transaction.\",\"opaqueData\":\"ABI encoded deposit data to be parsed off-chain.\",\"to\":\"Address that the deposit transaction is directed to.\",\"version\":\"Version of this deposit transaction event.\"}},\"Unpaused(address)\":{\"params\":{\"account\":\"Address of the account triggering the unpause.\"}},\"WithdrawalFinalized(bytes32,bool)\":{\"params\":{\"success\":\"Whether the withdrawal transaction was successful.\",\"withdrawalHash\":\"Hash of the withdrawal transaction.\"}},\"WithdrawalProven(bytes32,address,address)\":{\"params\":{\"from\":\"Address that triggered the withdrawal transaction.\",\"to\":\"Address that the withdrawal transaction is directed to.\",\"withdrawalHash\":\"Hash of the withdrawal transaction.\"}}},\"kind\":\"dev\",\"methods\":{\"GUARDIAN()\":{\"custom:legacy\":\"\"},\"L2_ORACLE()\":{\"custom:legacy\":\"\"},\"SYSTEM_CONFIG()\":{\"custom:legacy\":\"\"},\"depositTransaction(address,uint256,uint64,bool,bytes)\":{\"params\":{\"_data\":\"Data to trigger the recipient with.\",\"_gasLimit\":\"Amount of L2 gas to purchase by burning gas on L1.\",\"_isCreation\":\"Whether or not the transaction is a contract creation.\",\"_to\":\"Target address on L2.\",\"_value\":\"ETH value to send to the recipient.\"}},\"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))\":{\"params\":{\"_tx\":\"Withdrawal transaction to finalize.\"}},\"initialize(address,address,address,bool)\":{\"params\":{\"_guardian\":\"Address that can pause withdrawals.\",\"_l2Oracle\":\"Address of the L2OutputOracle contract.\",\"_paused\":\"Sets the contract's pausability state.\",\"_systemConfig\":\"Address of the SystemConfig contract.\"}},\"isOutputFinalized(uint256)\":{\"params\":{\"_l2OutputIndex\":\"Index of the L2 output to check.\"},\"returns\":{\"_0\":\"Whether or not the output is finalized.\"}},\"minimumGasLimit(uint64)\":{\"params\":{\"_byteCount\":\"Number of bytes in the calldata.\"},\"returns\":{\"_0\":\"The minimum gas limit for a deposit.\"}},\"proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])\":{\"params\":{\"_l2OutputIndex\":\"L2 output index to prove against.\",\"_outputRootProof\":\"Inclusion proof of the L2ToL1MessagePasser contract's storage root.\",\"_tx\":\"Withdrawal transaction to finalize.\",\"_withdrawalProof\":\"Inclusion proof of the withdrawal in L2ToL1MessagePasser contract.\"}}},\"stateVariables\":{\"guardian\":{\"custom:network-specific\":\"\"},\"l2Oracle\":{\"custom:network-specific\":\"\"},\"systemConfig\":{\"custom:network-specific\":\"\"},\"version\":{\"custom:semver\":\"1.10.0\"}},\"version\":1},\"userdoc\":{\"events\":{\"Paused(address)\":{\"notice\":\"Emitted when the pause is triggered.\"},\"TransactionDeposited(address,address,uint256,bytes)\":{\"notice\":\"Emitted when a transaction is deposited from L1 to L2. The parameters of this event are read by the rollup node and used to derive deposit transactions on L2.\"},\"Unpaused(address)\":{\"notice\":\"Emitted when the pause is lifted.\"},\"WithdrawalFinalized(bytes32,bool)\":{\"notice\":\"Emitted when a withdrawal transaction is finalized.\"},\"WithdrawalProven(bytes32,address,address)\":{\"notice\":\"Emitted when a withdrawal transaction is proven.\"}},\"kind\":\"user\",\"methods\":{\"GUARDIAN()\":{\"notice\":\"Getter for the Guardian\"},\"L2_ORACLE()\":{\"notice\":\"Getter for the L2OutputOracle\"},\"SYSTEM_CONFIG()\":{\"notice\":\"Getter for the SystemConfig\"},\"constructor\":{\"notice\":\"Constructs the OptimismPortal contract.\"},\"depositTransaction(address,uint256,uint64,bool,bytes)\":{\"notice\":\"Accepts deposits of ETH and data, and emits a TransactionDeposited event for use in deriving deposit transactions. Note that if a deposit is made by a contract, its address will be aliased when retrieved using `tx.origin` or `msg.sender`. Consider using the CrossDomainMessenger contracts for a simpler developer experience.\"},\"donateETH()\":{\"notice\":\"Accepts ETH value without triggering a deposit to L2. This function mainly exists for the sake of the migration between the legacy Optimism system and Bedrock.\"},\"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))\":{\"notice\":\"Finalizes a withdrawal transaction.\"},\"finalizedWithdrawals(bytes32)\":{\"notice\":\"A list of withdrawal hashes which have been successfully finalized.\"},\"guardian()\":{\"notice\":\"Address that has the ability to pause and unpause withdrawals.\"},\"initialize(address,address,address,bool)\":{\"notice\":\"Initializer.\"},\"isOutputFinalized(uint256)\":{\"notice\":\"Determine if a given output is finalized. Reverts if the call to L2_ORACLE.getL2Output reverts. Returns a boolean otherwise.\"},\"l2Oracle()\":{\"notice\":\"Address of the L2OutputOracle contract.\"},\"l2Sender()\":{\"notice\":\"Address of the L2 account which initiated a withdrawal in this transaction. If the of this variable is the default L2 sender address, then we are NOT inside of a call to finalizeWithdrawalTransaction.\"},\"minimumGasLimit(uint64)\":{\"notice\":\"Computes the minimum gas limit for a deposit. The minimum gas limit linearly increases based on the size of the calldata. This is to prevent users from creating L2 resource usage without paying for it. This function can be used when interacting with the portal to ensure forwards compatibility.\"},\"params()\":{\"notice\":\"EIP-1559 style gas parameters.\"},\"pause()\":{\"notice\":\"Pauses withdrawals.\"},\"paused()\":{\"notice\":\"Determines if cross domain messaging is paused. When set to true, withdrawals are paused. This may be removed in the future.\"},\"proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])\":{\"notice\":\"Proves a withdrawal transaction.\"},\"provenWithdrawals(bytes32)\":{\"notice\":\"A mapping of withdrawal hashes to `ProvenWithdrawal` data.\"},\"systemConfig()\":{\"notice\":\"Address of the SystemConfig contract.\"},\"unpause()\":{\"notice\":\"Unpauses withdrawals.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"The OptimismPortal is a low-level contract responsible for passing messages between L1 and L2. Messages sent directly to the OptimismPortal have no form of replayability. Users are encouraged to use the L1CrossDomainMessenger for a higher-level interface.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L1/OptimismPortal.sol\":\"OptimismPortal\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/L2OutputOracle.sol\":{\"keccak256\":\"0x60042eb3e619518cab9a8f2480b62871c2d813716e2e60d9a5e0c5f271c58705\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08538ef2aa99c508b56a8bb9b3c7b93476cba9dbf0b47783141e5e50a02156cc\",\"dweb:/ipfs/QmdvFZ1fUaTkNdmtB66rNAo73RxY7kccsgR6Uqz7psoXGN\"]},\"src/L1/OptimismPortal.sol\":{\"keccak256\":\"0xdca91a921b402d82b455d7f11027514e8a16dca906cf820b3afffe271beb8a13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://688912b9d6005af8395d5c2eb5c4e3367a8be7b50ea97c34fc6a7ac0e2d8fd6a\",\"dweb:/ipfs/QmNPJDwHpNmJ5VPWAJB8muRpZxYeySZDVoV1TMVN7roijJ\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0xa4d524f2a5e91a0b63a62603e712001c51c77e8371b93cbb576bcb7d074b7588\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6d8141b6c6dc72d2e684c1ae388c005fd78c9ca7fc9c15dddebd227ca4fd730\",\"dweb:/ipfs/QmPfJrR4qssu769TDWJnxdTozqKtZUxiY8fs95bhfECTvG\"]},\"src/L1/SystemConfig.sol\":{\"keccak256\":\"0x4bbbc7868e948c44f29285a69383e93251a0c330a67929fb72def01cec060d4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e7ea2f8b3d49bee9c753f107ede6eda93b2cc0e34d0643fa14ebbb26c19e71b\",\"dweb:/ipfs/QmRP81F8FRVXVZs6u2f2poEPDnbFZhNwNYxHgCVEhGpEmB\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x06a5a8b00527843f0cfc1bb3c0661316966a6cc432f88be31f23cde78cd07560\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5209e78e5415c0bf8b350362a825cc56152811abd6fcf2df3d4fa47766d3dee\",\"dweb:/ipfs/Qmf43xyc4Um32NmccayDfhm8kSnS2mhHXpPZnwABJS7cWm\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Bytes.sol\":{\"keccak256\":\"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782\",\"dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe12e392f05f80d3837c9392d016471181ae1ee6b84ea91b4e125e6523e5f18a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3509231c228b7a4352573cd422cf0260dcbb94cfd915e5b664643db5475a5b7\",\"dweb:/ipfs/QmU2QERY4mHxqWFqSE5Exsy6Ftc5MTjTtYHC11fahLJWDC\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0xd5bbcb7da113e69562498d9543765e03912558ad66348682c2049c31e19f9d9b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc6656ea10062c0c9d0817bb8683636caebf9222c9c102f29ea54fff74a2f93\",\"dweb:/ipfs/QmTNWtMgrTRHM6XtdUmA8bMZcuFpXoFCXgXR5vRihZWLuW\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x44e2b2dcfffc39c0fc95ccd3c2118c7e7585fadf3dca327877d5756c7d4b21c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c89e0d9cfcb08a0d3c46c85367a32bbd9703468ba4c0c5bb6e124c1d173b26b\",\"dweb:/ipfs/QmaY3nQHBBhHK1wrurVXiEeNL8hfZ1pRmhpqW44tFDJnDf\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Storage.sol\":{\"keccak256\":\"0x902a0a815272a5b76c647d9e82101aca765e9835a6624d0857088b9da0f58afd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9c39a697aacb0a2eac0bf1fbd7790d835a685c61006f6d3464e19cbc96a24480\",\"dweb:/ipfs/QmV3T8ZTRWPB5CNuZjxwWQNoENd7W4SoBMnFG6Y6g6xYV4\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPReader.sol\":{\"keccak256\":\"0x9ba74a3b0a11693e622380807d213d5d1250d974e18b2cd768da9cbe719a6778\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0808d721ed9e05707526ee134faa051d707a95ee6b8bd6e0b1972275da8e5723\",\"dweb:/ipfs/QmcTTPu9xgckfWdbFUAcr2RAgk3J6vzyR4FpV798TjFMeN\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/libraries/trie/MerkleTrie.sol\":{\"keccak256\":\"0xf8ba770ee6666e73ae43184c700e9c704b2c4ace71f9e3c2227ddc11a8148b4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4702ccee1fe44aea3ee01d59e6152eb755da083f786f00947fec4437c064fe74\",\"dweb:/ipfs/QmQjFj5J7hrEM1dxJjFszzW2Cs7g7eMhYNBXonF2DXBstE\"]},\"src/libraries/trie/SecureMerkleTrie.sol\":{\"keccak256\":\"0xeaff8315cfd21197bc6bc859c2decf5d4f4838c9c357c502cdf2b1eac863d288\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79dcdcaa560aea51d138da4f5dc553a1808b6de090b2dc1629f18375edbff681\",\"dweb:/ipfs/QmbE4pUPhf5fLKW4W6cEjhQs55gEDvHmbmoBqkW1yz3bnw\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/vendor/AddressAliasHelper.sol\":{\"keccak256\":\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\",\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\"]}},\"version\":1}", 596 "metadata": { 597 "compiler": { 598 "version": "0.8.15+commit.e14f2714" 599 }, 600 "language": "Solidity", 601 "output": { 602 "abi": [ 603 { 604 "inputs": [], 605 "stateMutability": "nonpayable", 606 "type": "constructor" 607 }, 608 { 609 "inputs": [ 610 { 611 "internalType": "uint8", 612 "name": "version", 613 "type": "uint8", 614 "indexed": false 615 } 616 ], 617 "type": "event", 618 "name": "Initialized", 619 "anonymous": false 620 }, 621 { 622 "inputs": [ 623 { 624 "internalType": "address", 625 "name": "account", 626 "type": "address", 627 "indexed": false 628 } 629 ], 630 "type": "event", 631 "name": "Paused", 632 "anonymous": false 633 }, 634 { 635 "inputs": [ 636 { 637 "internalType": "address", 638 "name": "from", 639 "type": "address", 640 "indexed": true 641 }, 642 { 643 "internalType": "address", 644 "name": "to", 645 "type": "address", 646 "indexed": true 647 }, 648 { 649 "internalType": "uint256", 650 "name": "version", 651 "type": "uint256", 652 "indexed": true 653 }, 654 { 655 "internalType": "bytes", 656 "name": "opaqueData", 657 "type": "bytes", 658 "indexed": false 659 } 660 ], 661 "type": "event", 662 "name": "TransactionDeposited", 663 "anonymous": false 664 }, 665 { 666 "inputs": [ 667 { 668 "internalType": "address", 669 "name": "account", 670 "type": "address", 671 "indexed": false 672 } 673 ], 674 "type": "event", 675 "name": "Unpaused", 676 "anonymous": false 677 }, 678 { 679 "inputs": [ 680 { 681 "internalType": "bytes32", 682 "name": "withdrawalHash", 683 "type": "bytes32", 684 "indexed": true 685 }, 686 { 687 "internalType": "bool", 688 "name": "success", 689 "type": "bool", 690 "indexed": false 691 } 692 ], 693 "type": "event", 694 "name": "WithdrawalFinalized", 695 "anonymous": false 696 }, 697 { 698 "inputs": [ 699 { 700 "internalType": "bytes32", 701 "name": "withdrawalHash", 702 "type": "bytes32", 703 "indexed": true 704 }, 705 { 706 "internalType": "address", 707 "name": "from", 708 "type": "address", 709 "indexed": true 710 }, 711 { 712 "internalType": "address", 713 "name": "to", 714 "type": "address", 715 "indexed": true 716 } 717 ], 718 "type": "event", 719 "name": "WithdrawalProven", 720 "anonymous": false 721 }, 722 { 723 "inputs": [], 724 "stateMutability": "view", 725 "type": "function", 726 "name": "GUARDIAN", 727 "outputs": [ 728 { 729 "internalType": "address", 730 "name": "", 731 "type": "address" 732 } 733 ] 734 }, 735 { 736 "inputs": [], 737 "stateMutability": "view", 738 "type": "function", 739 "name": "L2_ORACLE", 740 "outputs": [ 741 { 742 "internalType": "contract L2OutputOracle", 743 "name": "", 744 "type": "address" 745 } 746 ] 747 }, 748 { 749 "inputs": [], 750 "stateMutability": "view", 751 "type": "function", 752 "name": "SYSTEM_CONFIG", 753 "outputs": [ 754 { 755 "internalType": "contract SystemConfig", 756 "name": "", 757 "type": "address" 758 } 759 ] 760 }, 761 { 762 "inputs": [ 763 { 764 "internalType": "address", 765 "name": "_to", 766 "type": "address" 767 }, 768 { 769 "internalType": "uint256", 770 "name": "_value", 771 "type": "uint256" 772 }, 773 { 774 "internalType": "uint64", 775 "name": "_gasLimit", 776 "type": "uint64" 777 }, 778 { 779 "internalType": "bool", 780 "name": "_isCreation", 781 "type": "bool" 782 }, 783 { 784 "internalType": "bytes", 785 "name": "_data", 786 "type": "bytes" 787 } 788 ], 789 "stateMutability": "payable", 790 "type": "function", 791 "name": "depositTransaction" 792 }, 793 { 794 "inputs": [], 795 "stateMutability": "payable", 796 "type": "function", 797 "name": "donateETH" 798 }, 799 { 800 "inputs": [ 801 { 802 "internalType": "struct Types.WithdrawalTransaction", 803 "name": "_tx", 804 "type": "tuple", 805 "components": [ 806 { 807 "internalType": "uint256", 808 "name": "nonce", 809 "type": "uint256" 810 }, 811 { 812 "internalType": "address", 813 "name": "sender", 814 "type": "address" 815 }, 816 { 817 "internalType": "address", 818 "name": "target", 819 "type": "address" 820 }, 821 { 822 "internalType": "uint256", 823 "name": "value", 824 "type": "uint256" 825 }, 826 { 827 "internalType": "uint256", 828 "name": "gasLimit", 829 "type": "uint256" 830 }, 831 { 832 "internalType": "bytes", 833 "name": "data", 834 "type": "bytes" 835 } 836 ] 837 } 838 ], 839 "stateMutability": "nonpayable", 840 "type": "function", 841 "name": "finalizeWithdrawalTransaction" 842 }, 843 { 844 "inputs": [ 845 { 846 "internalType": "bytes32", 847 "name": "", 848 "type": "bytes32" 849 } 850 ], 851 "stateMutability": "view", 852 "type": "function", 853 "name": "finalizedWithdrawals", 854 "outputs": [ 855 { 856 "internalType": "bool", 857 "name": "", 858 "type": "bool" 859 } 860 ] 861 }, 862 { 863 "inputs": [], 864 "stateMutability": "view", 865 "type": "function", 866 "name": "guardian", 867 "outputs": [ 868 { 869 "internalType": "address", 870 "name": "", 871 "type": "address" 872 } 873 ] 874 }, 875 { 876 "inputs": [ 877 { 878 "internalType": "contract L2OutputOracle", 879 "name": "_l2Oracle", 880 "type": "address" 881 }, 882 { 883 "internalType": "address", 884 "name": "_guardian", 885 "type": "address" 886 }, 887 { 888 "internalType": "contract SystemConfig", 889 "name": "_systemConfig", 890 "type": "address" 891 }, 892 { 893 "internalType": "bool", 894 "name": "_paused", 895 "type": "bool" 896 } 897 ], 898 "stateMutability": "nonpayable", 899 "type": "function", 900 "name": "initialize" 901 }, 902 { 903 "inputs": [ 904 { 905 "internalType": "uint256", 906 "name": "_l2OutputIndex", 907 "type": "uint256" 908 } 909 ], 910 "stateMutability": "view", 911 "type": "function", 912 "name": "isOutputFinalized", 913 "outputs": [ 914 { 915 "internalType": "bool", 916 "name": "", 917 "type": "bool" 918 } 919 ] 920 }, 921 { 922 "inputs": [], 923 "stateMutability": "view", 924 "type": "function", 925 "name": "l2Oracle", 926 "outputs": [ 927 { 928 "internalType": "contract L2OutputOracle", 929 "name": "", 930 "type": "address" 931 } 932 ] 933 }, 934 { 935 "inputs": [], 936 "stateMutability": "view", 937 "type": "function", 938 "name": "l2Sender", 939 "outputs": [ 940 { 941 "internalType": "address", 942 "name": "", 943 "type": "address" 944 } 945 ] 946 }, 947 { 948 "inputs": [ 949 { 950 "internalType": "uint64", 951 "name": "_byteCount", 952 "type": "uint64" 953 } 954 ], 955 "stateMutability": "pure", 956 "type": "function", 957 "name": "minimumGasLimit", 958 "outputs": [ 959 { 960 "internalType": "uint64", 961 "name": "", 962 "type": "uint64" 963 } 964 ] 965 }, 966 { 967 "inputs": [], 968 "stateMutability": "view", 969 "type": "function", 970 "name": "params", 971 "outputs": [ 972 { 973 "internalType": "uint128", 974 "name": "prevBaseFee", 975 "type": "uint128" 976 }, 977 { 978 "internalType": "uint64", 979 "name": "prevBoughtGas", 980 "type": "uint64" 981 }, 982 { 983 "internalType": "uint64", 984 "name": "prevBlockNum", 985 "type": "uint64" 986 } 987 ] 988 }, 989 { 990 "inputs": [], 991 "stateMutability": "nonpayable", 992 "type": "function", 993 "name": "pause" 994 }, 995 { 996 "inputs": [], 997 "stateMutability": "view", 998 "type": "function", 999 "name": "paused", 1000 "outputs": [ 1001 { 1002 "internalType": "bool", 1003 "name": "", 1004 "type": "bool" 1005 } 1006 ] 1007 }, 1008 { 1009 "inputs": [ 1010 { 1011 "internalType": "struct Types.WithdrawalTransaction", 1012 "name": "_tx", 1013 "type": "tuple", 1014 "components": [ 1015 { 1016 "internalType": "uint256", 1017 "name": "nonce", 1018 "type": "uint256" 1019 }, 1020 { 1021 "internalType": "address", 1022 "name": "sender", 1023 "type": "address" 1024 }, 1025 { 1026 "internalType": "address", 1027 "name": "target", 1028 "type": "address" 1029 }, 1030 { 1031 "internalType": "uint256", 1032 "name": "value", 1033 "type": "uint256" 1034 }, 1035 { 1036 "internalType": "uint256", 1037 "name": "gasLimit", 1038 "type": "uint256" 1039 }, 1040 { 1041 "internalType": "bytes", 1042 "name": "data", 1043 "type": "bytes" 1044 } 1045 ] 1046 }, 1047 { 1048 "internalType": "uint256", 1049 "name": "_l2OutputIndex", 1050 "type": "uint256" 1051 }, 1052 { 1053 "internalType": "struct Types.OutputRootProof", 1054 "name": "_outputRootProof", 1055 "type": "tuple", 1056 "components": [ 1057 { 1058 "internalType": "bytes32", 1059 "name": "version", 1060 "type": "bytes32" 1061 }, 1062 { 1063 "internalType": "bytes32", 1064 "name": "stateRoot", 1065 "type": "bytes32" 1066 }, 1067 { 1068 "internalType": "bytes32", 1069 "name": "messagePasserStorageRoot", 1070 "type": "bytes32" 1071 }, 1072 { 1073 "internalType": "bytes32", 1074 "name": "latestBlockhash", 1075 "type": "bytes32" 1076 } 1077 ] 1078 }, 1079 { 1080 "internalType": "bytes[]", 1081 "name": "_withdrawalProof", 1082 "type": "bytes[]" 1083 } 1084 ], 1085 "stateMutability": "nonpayable", 1086 "type": "function", 1087 "name": "proveWithdrawalTransaction" 1088 }, 1089 { 1090 "inputs": [ 1091 { 1092 "internalType": "bytes32", 1093 "name": "", 1094 "type": "bytes32" 1095 } 1096 ], 1097 "stateMutability": "view", 1098 "type": "function", 1099 "name": "provenWithdrawals", 1100 "outputs": [ 1101 { 1102 "internalType": "bytes32", 1103 "name": "outputRoot", 1104 "type": "bytes32" 1105 }, 1106 { 1107 "internalType": "uint128", 1108 "name": "timestamp", 1109 "type": "uint128" 1110 }, 1111 { 1112 "internalType": "uint128", 1113 "name": "l2OutputIndex", 1114 "type": "uint128" 1115 } 1116 ] 1117 }, 1118 { 1119 "inputs": [], 1120 "stateMutability": "view", 1121 "type": "function", 1122 "name": "systemConfig", 1123 "outputs": [ 1124 { 1125 "internalType": "contract SystemConfig", 1126 "name": "", 1127 "type": "address" 1128 } 1129 ] 1130 }, 1131 { 1132 "inputs": [], 1133 "stateMutability": "nonpayable", 1134 "type": "function", 1135 "name": "unpause" 1136 }, 1137 { 1138 "inputs": [], 1139 "stateMutability": "view", 1140 "type": "function", 1141 "name": "version", 1142 "outputs": [ 1143 { 1144 "internalType": "string", 1145 "name": "", 1146 "type": "string" 1147 } 1148 ] 1149 }, 1150 { 1151 "inputs": [], 1152 "stateMutability": "payable", 1153 "type": "receive" 1154 } 1155 ], 1156 "devdoc": { 1157 "kind": "dev", 1158 "methods": { 1159 "GUARDIAN()": { 1160 "custom:legacy": "" 1161 }, 1162 "L2_ORACLE()": { 1163 "custom:legacy": "" 1164 }, 1165 "SYSTEM_CONFIG()": { 1166 "custom:legacy": "" 1167 }, 1168 "depositTransaction(address,uint256,uint64,bool,bytes)": { 1169 "params": { 1170 "_data": "Data to trigger the recipient with.", 1171 "_gasLimit": "Amount of L2 gas to purchase by burning gas on L1.", 1172 "_isCreation": "Whether or not the transaction is a contract creation.", 1173 "_to": "Target address on L2.", 1174 "_value": "ETH value to send to the recipient." 1175 } 1176 }, 1177 "finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))": { 1178 "params": { 1179 "_tx": "Withdrawal transaction to finalize." 1180 } 1181 }, 1182 "initialize(address,address,address,bool)": { 1183 "params": { 1184 "_guardian": "Address that can pause withdrawals.", 1185 "_l2Oracle": "Address of the L2OutputOracle contract.", 1186 "_paused": "Sets the contract's pausability state.", 1187 "_systemConfig": "Address of the SystemConfig contract." 1188 } 1189 }, 1190 "isOutputFinalized(uint256)": { 1191 "params": { 1192 "_l2OutputIndex": "Index of the L2 output to check." 1193 }, 1194 "returns": { 1195 "_0": "Whether or not the output is finalized." 1196 } 1197 }, 1198 "minimumGasLimit(uint64)": { 1199 "params": { 1200 "_byteCount": "Number of bytes in the calldata." 1201 }, 1202 "returns": { 1203 "_0": "The minimum gas limit for a deposit." 1204 } 1205 }, 1206 "proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])": { 1207 "params": { 1208 "_l2OutputIndex": "L2 output index to prove against.", 1209 "_outputRootProof": "Inclusion proof of the L2ToL1MessagePasser contract's storage root.", 1210 "_tx": "Withdrawal transaction to finalize.", 1211 "_withdrawalProof": "Inclusion proof of the withdrawal in L2ToL1MessagePasser contract." 1212 } 1213 } 1214 }, 1215 "version": 1 1216 }, 1217 "userdoc": { 1218 "kind": "user", 1219 "methods": { 1220 "GUARDIAN()": { 1221 "notice": "Getter for the Guardian" 1222 }, 1223 "L2_ORACLE()": { 1224 "notice": "Getter for the L2OutputOracle" 1225 }, 1226 "SYSTEM_CONFIG()": { 1227 "notice": "Getter for the SystemConfig" 1228 }, 1229 "constructor": { 1230 "notice": "Constructs the OptimismPortal contract." 1231 }, 1232 "depositTransaction(address,uint256,uint64,bool,bytes)": { 1233 "notice": "Accepts deposits of ETH and data, and emits a TransactionDeposited event for use in deriving deposit transactions. Note that if a deposit is made by a contract, its address will be aliased when retrieved using `tx.origin` or `msg.sender`. Consider using the CrossDomainMessenger contracts for a simpler developer experience." 1234 }, 1235 "donateETH()": { 1236 "notice": "Accepts ETH value without triggering a deposit to L2. This function mainly exists for the sake of the migration between the legacy Optimism system and Bedrock." 1237 }, 1238 "finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))": { 1239 "notice": "Finalizes a withdrawal transaction." 1240 }, 1241 "finalizedWithdrawals(bytes32)": { 1242 "notice": "A list of withdrawal hashes which have been successfully finalized." 1243 }, 1244 "guardian()": { 1245 "notice": "Address that has the ability to pause and unpause withdrawals." 1246 }, 1247 "initialize(address,address,address,bool)": { 1248 "notice": "Initializer." 1249 }, 1250 "isOutputFinalized(uint256)": { 1251 "notice": "Determine if a given output is finalized. Reverts if the call to L2_ORACLE.getL2Output reverts. Returns a boolean otherwise." 1252 }, 1253 "l2Oracle()": { 1254 "notice": "Address of the L2OutputOracle contract." 1255 }, 1256 "l2Sender()": { 1257 "notice": "Address of the L2 account which initiated a withdrawal in this transaction. If the of this variable is the default L2 sender address, then we are NOT inside of a call to finalizeWithdrawalTransaction." 1258 }, 1259 "minimumGasLimit(uint64)": { 1260 "notice": "Computes the minimum gas limit for a deposit. The minimum gas limit linearly increases based on the size of the calldata. This is to prevent users from creating L2 resource usage without paying for it. This function can be used when interacting with the portal to ensure forwards compatibility." 1261 }, 1262 "params()": { 1263 "notice": "EIP-1559 style gas parameters." 1264 }, 1265 "pause()": { 1266 "notice": "Pauses withdrawals." 1267 }, 1268 "paused()": { 1269 "notice": "Determines if cross domain messaging is paused. When set to true, withdrawals are paused. This may be removed in the future." 1270 }, 1271 "proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])": { 1272 "notice": "Proves a withdrawal transaction." 1273 }, 1274 "provenWithdrawals(bytes32)": { 1275 "notice": "A mapping of withdrawal hashes to `ProvenWithdrawal` data." 1276 }, 1277 "systemConfig()": { 1278 "notice": "Address of the SystemConfig contract." 1279 }, 1280 "unpause()": { 1281 "notice": "Unpauses withdrawals." 1282 }, 1283 "version()": { 1284 "notice": "Semantic version." 1285 } 1286 }, 1287 "version": 1 1288 } 1289 }, 1290 "settings": { 1291 "remappings": [ 1292 "@cwia/=lib/clones-with-immutable-args/src/", 1293 "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", 1294 "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", 1295 "@rari-capital/solmate/=lib/solmate/", 1296 "clones-with-immutable-args/=lib/clones-with-immutable-args/src/", 1297 "ds-test/=lib/forge-std/lib/ds-test/src/", 1298 "forge-std/=lib/forge-std/src/", 1299 "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", 1300 "openzeppelin-contracts/=lib/openzeppelin-contracts/", 1301 "safe-contracts/=lib/safe-contracts/contracts/", 1302 "solmate/=lib/solmate/src/" 1303 ], 1304 "optimizer": { 1305 "enabled": true, 1306 "runs": 999999 1307 }, 1308 "metadata": { 1309 "bytecodeHash": "none" 1310 }, 1311 "compilationTarget": { 1312 "src/L1/OptimismPortal.sol": "OptimismPortal" 1313 }, 1314 "libraries": {} 1315 }, 1316 "sources": { 1317 "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol": { 1318 "keccak256": "0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888", 1319 "urls": [ 1320 "bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a", 1321 "dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb" 1322 ], 1323 "license": "MIT" 1324 }, 1325 "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol": { 1326 "keccak256": "0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e", 1327 "urls": [ 1328 "bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497", 1329 "dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8" 1330 ], 1331 "license": "MIT" 1332 }, 1333 "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol": { 1334 "keccak256": "0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3", 1335 "urls": [ 1336 "bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4", 1337 "dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt" 1338 ], 1339 "license": "MIT" 1340 }, 1341 "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol": { 1342 "keccak256": "0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149", 1343 "urls": [ 1344 "bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c", 1345 "dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a" 1346 ], 1347 "license": "MIT" 1348 }, 1349 "lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol": { 1350 "keccak256": "0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66", 1351 "urls": [ 1352 "bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f", 1353 "dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV" 1354 ], 1355 "license": "MIT" 1356 }, 1357 "lib/openzeppelin-contracts/contracts/utils/Address.sol": { 1358 "keccak256": "0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10", 1359 "urls": [ 1360 "bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487", 1361 "dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG" 1362 ], 1363 "license": "MIT" 1364 }, 1365 "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { 1366 "keccak256": "0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0", 1367 "urls": [ 1368 "bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929", 1369 "dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC" 1370 ], 1371 "license": "MIT" 1372 }, 1373 "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol": { 1374 "keccak256": "0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7", 1375 "urls": [ 1376 "bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689", 1377 "dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy" 1378 ], 1379 "license": "MIT" 1380 }, 1381 "lib/solmate/src/utils/FixedPointMathLib.sol": { 1382 "keccak256": "0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d", 1383 "urls": [ 1384 "bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c", 1385 "dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8" 1386 ], 1387 "license": "MIT" 1388 }, 1389 "src/L1/L2OutputOracle.sol": { 1390 "keccak256": "0x60042eb3e619518cab9a8f2480b62871c2d813716e2e60d9a5e0c5f271c58705", 1391 "urls": [ 1392 "bzz-raw://08538ef2aa99c508b56a8bb9b3c7b93476cba9dbf0b47783141e5e50a02156cc", 1393 "dweb:/ipfs/QmdvFZ1fUaTkNdmtB66rNAo73RxY7kccsgR6Uqz7psoXGN" 1394 ], 1395 "license": "MIT" 1396 }, 1397 "src/L1/OptimismPortal.sol": { 1398 "keccak256": "0xdca91a921b402d82b455d7f11027514e8a16dca906cf820b3afffe271beb8a13", 1399 "urls": [ 1400 "bzz-raw://688912b9d6005af8395d5c2eb5c4e3367a8be7b50ea97c34fc6a7ac0e2d8fd6a", 1401 "dweb:/ipfs/QmNPJDwHpNmJ5VPWAJB8muRpZxYeySZDVoV1TMVN7roijJ" 1402 ], 1403 "license": "MIT" 1404 }, 1405 "src/L1/ResourceMetering.sol": { 1406 "keccak256": "0xa4d524f2a5e91a0b63a62603e712001c51c77e8371b93cbb576bcb7d074b7588", 1407 "urls": [ 1408 "bzz-raw://d6d8141b6c6dc72d2e684c1ae388c005fd78c9ca7fc9c15dddebd227ca4fd730", 1409 "dweb:/ipfs/QmPfJrR4qssu769TDWJnxdTozqKtZUxiY8fs95bhfECTvG" 1410 ], 1411 "license": "MIT" 1412 }, 1413 "src/L1/SystemConfig.sol": { 1414 "keccak256": "0x4bbbc7868e948c44f29285a69383e93251a0c330a67929fb72def01cec060d4e", 1415 "urls": [ 1416 "bzz-raw://1e7ea2f8b3d49bee9c753f107ede6eda93b2cc0e34d0643fa14ebbb26c19e71b", 1417 "dweb:/ipfs/QmRP81F8FRVXVZs6u2f2poEPDnbFZhNwNYxHgCVEhGpEmB" 1418 ], 1419 "license": "MIT" 1420 }, 1421 "src/libraries/Arithmetic.sol": { 1422 "keccak256": "0x06a5a8b00527843f0cfc1bb3c0661316966a6cc432f88be31f23cde78cd07560", 1423 "urls": [ 1424 "bzz-raw://d5209e78e5415c0bf8b350362a825cc56152811abd6fcf2df3d4fa47766d3dee", 1425 "dweb:/ipfs/Qmf43xyc4Um32NmccayDfhm8kSnS2mhHXpPZnwABJS7cWm" 1426 ], 1427 "license": "MIT" 1428 }, 1429 "src/libraries/Burn.sol": { 1430 "keccak256": "0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010", 1431 "urls": [ 1432 "bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f", 1433 "dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb" 1434 ], 1435 "license": "MIT" 1436 }, 1437 "src/libraries/Bytes.sol": { 1438 "keccak256": "0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859", 1439 "urls": [ 1440 "bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782", 1441 "dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9" 1442 ], 1443 "license": "MIT" 1444 }, 1445 "src/libraries/Constants.sol": { 1446 "keccak256": "0xe12e392f05f80d3837c9392d016471181ae1ee6b84ea91b4e125e6523e5f18a2", 1447 "urls": [ 1448 "bzz-raw://a3509231c228b7a4352573cd422cf0260dcbb94cfd915e5b664643db5475a5b7", 1449 "dweb:/ipfs/QmU2QERY4mHxqWFqSE5Exsy6Ftc5MTjTtYHC11fahLJWDC" 1450 ], 1451 "license": "MIT" 1452 }, 1453 "src/libraries/Encoding.sol": { 1454 "keccak256": "0xd5bbcb7da113e69562498d9543765e03912558ad66348682c2049c31e19f9d9b", 1455 "urls": [ 1456 "bzz-raw://afc6656ea10062c0c9d0817bb8683636caebf9222c9c102f29ea54fff74a2f93", 1457 "dweb:/ipfs/QmTNWtMgrTRHM6XtdUmA8bMZcuFpXoFCXgXR5vRihZWLuW" 1458 ], 1459 "license": "MIT" 1460 }, 1461 "src/libraries/Hashing.sol": { 1462 "keccak256": "0x44e2b2dcfffc39c0fc95ccd3c2118c7e7585fadf3dca327877d5756c7d4b21c3", 1463 "urls": [ 1464 "bzz-raw://6c89e0d9cfcb08a0d3c46c85367a32bbd9703468ba4c0c5bb6e124c1d173b26b", 1465 "dweb:/ipfs/QmaY3nQHBBhHK1wrurVXiEeNL8hfZ1pRmhpqW44tFDJnDf" 1466 ], 1467 "license": "MIT" 1468 }, 1469 "src/libraries/SafeCall.sol": { 1470 "keccak256": "0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f", 1471 "urls": [ 1472 "bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a", 1473 "dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq" 1474 ], 1475 "license": "MIT" 1476 }, 1477 "src/libraries/Storage.sol": { 1478 "keccak256": "0x902a0a815272a5b76c647d9e82101aca765e9835a6624d0857088b9da0f58afd", 1479 "urls": [ 1480 "bzz-raw://9c39a697aacb0a2eac0bf1fbd7790d835a685c61006f6d3464e19cbc96a24480", 1481 "dweb:/ipfs/QmV3T8ZTRWPB5CNuZjxwWQNoENd7W4SoBMnFG6Y6g6xYV4" 1482 ], 1483 "license": "MIT" 1484 }, 1485 "src/libraries/Types.sol": { 1486 "keccak256": "0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4", 1487 "urls": [ 1488 "bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e", 1489 "dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc" 1490 ], 1491 "license": "MIT" 1492 }, 1493 "src/libraries/rlp/RLPReader.sol": { 1494 "keccak256": "0x9ba74a3b0a11693e622380807d213d5d1250d974e18b2cd768da9cbe719a6778", 1495 "urls": [ 1496 "bzz-raw://0808d721ed9e05707526ee134faa051d707a95ee6b8bd6e0b1972275da8e5723", 1497 "dweb:/ipfs/QmcTTPu9xgckfWdbFUAcr2RAgk3J6vzyR4FpV798TjFMeN" 1498 ], 1499 "license": "MIT" 1500 }, 1501 "src/libraries/rlp/RLPWriter.sol": { 1502 "keccak256": "0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6", 1503 "urls": [ 1504 "bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b", 1505 "dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV" 1506 ], 1507 "license": "MIT" 1508 }, 1509 "src/libraries/trie/MerkleTrie.sol": { 1510 "keccak256": "0xf8ba770ee6666e73ae43184c700e9c704b2c4ace71f9e3c2227ddc11a8148b4c", 1511 "urls": [ 1512 "bzz-raw://4702ccee1fe44aea3ee01d59e6152eb755da083f786f00947fec4437c064fe74", 1513 "dweb:/ipfs/QmQjFj5J7hrEM1dxJjFszzW2Cs7g7eMhYNBXonF2DXBstE" 1514 ], 1515 "license": "MIT" 1516 }, 1517 "src/libraries/trie/SecureMerkleTrie.sol": { 1518 "keccak256": "0xeaff8315cfd21197bc6bc859c2decf5d4f4838c9c357c502cdf2b1eac863d288", 1519 "urls": [ 1520 "bzz-raw://79dcdcaa560aea51d138da4f5dc553a1808b6de090b2dc1629f18375edbff681", 1521 "dweb:/ipfs/QmbE4pUPhf5fLKW4W6cEjhQs55gEDvHmbmoBqkW1yz3bnw" 1522 ], 1523 "license": "MIT" 1524 }, 1525 "src/universal/ISemver.sol": { 1526 "keccak256": "0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44", 1527 "urls": [ 1528 "bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a", 1529 "dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR" 1530 ], 1531 "license": "MIT" 1532 }, 1533 "src/vendor/AddressAliasHelper.sol": { 1534 "keccak256": "0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237", 1535 "urls": [ 1536 "bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88", 1537 "dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR" 1538 ], 1539 "license": "Apache-2.0" 1540 } 1541 }, 1542 "version": 1 1543 }, 1544 "storageLayout": { 1545 "storage": [ 1546 { 1547 "astId": 32100, 1548 "contract": "src/L1/OptimismPortal.sol:OptimismPortal", 1549 "label": "_initialized", 1550 "offset": 0, 1551 "slot": "0", 1552 "type": "t_uint8" 1553 }, 1554 { 1555 "astId": 32103, 1556 "contract": "src/L1/OptimismPortal.sol:OptimismPortal", 1557 "label": "_initializing", 1558 "offset": 1, 1559 "slot": "0", 1560 "type": "t_bool" 1561 }, 1562 { 1563 "astId": 60287, 1564 "contract": "src/L1/OptimismPortal.sol:OptimismPortal", 1565 "label": "params", 1566 "offset": 0, 1567 "slot": "1", 1568 "type": "t_struct(ResourceParams)60270_storage" 1569 }, 1570 { 1571 "astId": 60292, 1572 "contract": "src/L1/OptimismPortal.sol:OptimismPortal", 1573 "label": "__gap", 1574 "offset": 0, 1575 "slot": "2", 1576 "type": "t_array(t_uint256)48_storage" 1577 }, 1578 { 1579 "astId": 59323, 1580 "contract": "src/L1/OptimismPortal.sol:OptimismPortal", 1581 "label": "l2Sender", 1582 "offset": 0, 1583 "slot": "50", 1584 "type": "t_address" 1585 }, 1586 { 1587 "astId": 59328, 1588 "contract": "src/L1/OptimismPortal.sol:OptimismPortal", 1589 "label": "finalizedWithdrawals", 1590 "offset": 0, 1591 "slot": "51", 1592 "type": "t_mapping(t_bytes32,t_bool)" 1593 }, 1594 { 1595 "astId": 59334, 1596 "contract": "src/L1/OptimismPortal.sol:OptimismPortal", 1597 "label": "provenWithdrawals", 1598 "offset": 0, 1599 "slot": "52", 1600 "type": "t_mapping(t_bytes32,t_struct(ProvenWithdrawal)59312_storage)" 1601 }, 1602 { 1603 "astId": 59337, 1604 "contract": "src/L1/OptimismPortal.sol:OptimismPortal", 1605 "label": "paused", 1606 "offset": 0, 1607 "slot": "53", 1608 "type": "t_bool" 1609 }, 1610 { 1611 "astId": 59341, 1612 "contract": "src/L1/OptimismPortal.sol:OptimismPortal", 1613 "label": "l2Oracle", 1614 "offset": 1, 1615 "slot": "53", 1616 "type": "t_contract(L2OutputOracle)59272" 1617 }, 1618 { 1619 "astId": 59345, 1620 "contract": "src/L1/OptimismPortal.sol:OptimismPortal", 1621 "label": "systemConfig", 1622 "offset": 0, 1623 "slot": "54", 1624 "type": "t_contract(SystemConfig)61393" 1625 }, 1626 { 1627 "astId": 59348, 1628 "contract": "src/L1/OptimismPortal.sol:OptimismPortal", 1629 "label": "guardian", 1630 "offset": 0, 1631 "slot": "55", 1632 "type": "t_address" 1633 } 1634 ], 1635 "types": { 1636 "t_address": { 1637 "encoding": "inplace", 1638 "label": "address", 1639 "numberOfBytes": "20" 1640 }, 1641 "t_array(t_uint256)48_storage": { 1642 "encoding": "inplace", 1643 "label": "uint256[48]", 1644 "numberOfBytes": "1536", 1645 "base": "t_uint256" 1646 }, 1647 "t_bool": { 1648 "encoding": "inplace", 1649 "label": "bool", 1650 "numberOfBytes": "1" 1651 }, 1652 "t_bytes32": { 1653 "encoding": "inplace", 1654 "label": "bytes32", 1655 "numberOfBytes": "32" 1656 }, 1657 "t_contract(L2OutputOracle)59272": { 1658 "encoding": "inplace", 1659 "label": "contract L2OutputOracle", 1660 "numberOfBytes": "20" 1661 }, 1662 "t_contract(SystemConfig)61393": { 1663 "encoding": "inplace", 1664 "label": "contract SystemConfig", 1665 "numberOfBytes": "20" 1666 }, 1667 "t_mapping(t_bytes32,t_bool)": { 1668 "encoding": "mapping", 1669 "key": "t_bytes32", 1670 "label": "mapping(bytes32 => bool)", 1671 "numberOfBytes": "32", 1672 "value": "t_bool" 1673 }, 1674 "t_mapping(t_bytes32,t_struct(ProvenWithdrawal)59312_storage)": { 1675 "encoding": "mapping", 1676 "key": "t_bytes32", 1677 "label": "mapping(bytes32 => struct OptimismPortal.ProvenWithdrawal)", 1678 "numberOfBytes": "32", 1679 "value": "t_struct(ProvenWithdrawal)59312_storage" 1680 }, 1681 "t_struct(ProvenWithdrawal)59312_storage": { 1682 "encoding": "inplace", 1683 "label": "struct OptimismPortal.ProvenWithdrawal", 1684 "numberOfBytes": "64", 1685 "members": [ 1686 { 1687 "astId": 59307, 1688 "contract": "src/L1/OptimismPortal.sol:OptimismPortal", 1689 "label": "outputRoot", 1690 "offset": 0, 1691 "slot": "0", 1692 "type": "t_bytes32" 1693 }, 1694 { 1695 "astId": 59309, 1696 "contract": "src/L1/OptimismPortal.sol:OptimismPortal", 1697 "label": "timestamp", 1698 "offset": 0, 1699 "slot": "1", 1700 "type": "t_uint128" 1701 }, 1702 { 1703 "astId": 59311, 1704 "contract": "src/L1/OptimismPortal.sol:OptimismPortal", 1705 "label": "l2OutputIndex", 1706 "offset": 16, 1707 "slot": "1", 1708 "type": "t_uint128" 1709 } 1710 ] 1711 }, 1712 "t_struct(ResourceParams)60270_storage": { 1713 "encoding": "inplace", 1714 "label": "struct ResourceMetering.ResourceParams", 1715 "numberOfBytes": "32", 1716 "members": [ 1717 { 1718 "astId": 60265, 1719 "contract": "src/L1/OptimismPortal.sol:OptimismPortal", 1720 "label": "prevBaseFee", 1721 "offset": 0, 1722 "slot": "0", 1723 "type": "t_uint128" 1724 }, 1725 { 1726 "astId": 60267, 1727 "contract": "src/L1/OptimismPortal.sol:OptimismPortal", 1728 "label": "prevBoughtGas", 1729 "offset": 16, 1730 "slot": "0", 1731 "type": "t_uint64" 1732 }, 1733 { 1734 "astId": 60269, 1735 "contract": "src/L1/OptimismPortal.sol:OptimismPortal", 1736 "label": "prevBlockNum", 1737 "offset": 24, 1738 "slot": "0", 1739 "type": "t_uint64" 1740 } 1741 ] 1742 }, 1743 "t_uint128": { 1744 "encoding": "inplace", 1745 "label": "uint128", 1746 "numberOfBytes": "16" 1747 }, 1748 "t_uint256": { 1749 "encoding": "inplace", 1750 "label": "uint256", 1751 "numberOfBytes": "32" 1752 }, 1753 "t_uint64": { 1754 "encoding": "inplace", 1755 "label": "uint64", 1756 "numberOfBytes": "8" 1757 }, 1758 "t_uint8": { 1759 "encoding": "inplace", 1760 "label": "uint8", 1761 "numberOfBytes": "1" 1762 } 1763 } 1764 }, 1765 "userdoc": { 1766 "version": 1, 1767 "kind": "user", 1768 "methods": { 1769 "GUARDIAN()": { 1770 "notice": "Getter for the Guardian" 1771 }, 1772 "L2_ORACLE()": { 1773 "notice": "Getter for the L2OutputOracle" 1774 }, 1775 "SYSTEM_CONFIG()": { 1776 "notice": "Getter for the SystemConfig" 1777 }, 1778 "constructor": { 1779 "notice": "Constructs the OptimismPortal contract." 1780 }, 1781 "depositTransaction(address,uint256,uint64,bool,bytes)": { 1782 "notice": "Accepts deposits of ETH and data, and emits a TransactionDeposited event for use in deriving deposit transactions. Note that if a deposit is made by a contract, its address will be aliased when retrieved using `tx.origin` or `msg.sender`. Consider using the CrossDomainMessenger contracts for a simpler developer experience." 1783 }, 1784 "donateETH()": { 1785 "notice": "Accepts ETH value without triggering a deposit to L2. This function mainly exists for the sake of the migration between the legacy Optimism system and Bedrock." 1786 }, 1787 "finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))": { 1788 "notice": "Finalizes a withdrawal transaction." 1789 }, 1790 "finalizedWithdrawals(bytes32)": { 1791 "notice": "A list of withdrawal hashes which have been successfully finalized." 1792 }, 1793 "guardian()": { 1794 "notice": "Address that has the ability to pause and unpause withdrawals." 1795 }, 1796 "initialize(address,address,address,bool)": { 1797 "notice": "Initializer." 1798 }, 1799 "isOutputFinalized(uint256)": { 1800 "notice": "Determine if a given output is finalized. Reverts if the call to L2_ORACLE.getL2Output reverts. Returns a boolean otherwise." 1801 }, 1802 "l2Oracle()": { 1803 "notice": "Address of the L2OutputOracle contract." 1804 }, 1805 "l2Sender()": { 1806 "notice": "Address of the L2 account which initiated a withdrawal in this transaction. If the of this variable is the default L2 sender address, then we are NOT inside of a call to finalizeWithdrawalTransaction." 1807 }, 1808 "minimumGasLimit(uint64)": { 1809 "notice": "Computes the minimum gas limit for a deposit. The minimum gas limit linearly increases based on the size of the calldata. This is to prevent users from creating L2 resource usage without paying for it. This function can be used when interacting with the portal to ensure forwards compatibility." 1810 }, 1811 "params()": { 1812 "notice": "EIP-1559 style gas parameters." 1813 }, 1814 "pause()": { 1815 "notice": "Pauses withdrawals." 1816 }, 1817 "paused()": { 1818 "notice": "Determines if cross domain messaging is paused. When set to true, withdrawals are paused. This may be removed in the future." 1819 }, 1820 "proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])": { 1821 "notice": "Proves a withdrawal transaction." 1822 }, 1823 "provenWithdrawals(bytes32)": { 1824 "notice": "A mapping of withdrawal hashes to `ProvenWithdrawal` data." 1825 }, 1826 "systemConfig()": { 1827 "notice": "Address of the SystemConfig contract." 1828 }, 1829 "unpause()": { 1830 "notice": "Unpauses withdrawals." 1831 }, 1832 "version()": { 1833 "notice": "Semantic version." 1834 } 1835 }, 1836 "events": { 1837 "Paused(address)": { 1838 "notice": "Emitted when the pause is triggered." 1839 }, 1840 "TransactionDeposited(address,address,uint256,bytes)": { 1841 "notice": "Emitted when a transaction is deposited from L1 to L2. The parameters of this event are read by the rollup node and used to derive deposit transactions on L2." 1842 }, 1843 "Unpaused(address)": { 1844 "notice": "Emitted when the pause is lifted." 1845 }, 1846 "WithdrawalFinalized(bytes32,bool)": { 1847 "notice": "Emitted when a withdrawal transaction is finalized." 1848 }, 1849 "WithdrawalProven(bytes32,address,address)": { 1850 "notice": "Emitted when a withdrawal transaction is proven." 1851 } 1852 }, 1853 "notice": "The OptimismPortal is a low-level contract responsible for passing messages between L1 and L2. Messages sent directly to the OptimismPortal have no form of replayability. Users are encouraged to use the L1CrossDomainMessenger for a higher-level interface." 1854 }, 1855 "devdoc": { 1856 "version": 1, 1857 "kind": "dev", 1858 "methods": { 1859 "GUARDIAN()": {}, 1860 "L2_ORACLE()": {}, 1861 "SYSTEM_CONFIG()": {}, 1862 "depositTransaction(address,uint256,uint64,bool,bytes)": { 1863 "params": { 1864 "_data": "Data to trigger the recipient with.", 1865 "_gasLimit": "Amount of L2 gas to purchase by burning gas on L1.", 1866 "_isCreation": "Whether or not the transaction is a contract creation.", 1867 "_to": "Target address on L2.", 1868 "_value": "ETH value to send to the recipient." 1869 } 1870 }, 1871 "finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))": { 1872 "params": { 1873 "_tx": "Withdrawal transaction to finalize." 1874 } 1875 }, 1876 "initialize(address,address,address,bool)": { 1877 "params": { 1878 "_guardian": "Address that can pause withdrawals.", 1879 "_l2Oracle": "Address of the L2OutputOracle contract.", 1880 "_paused": "Sets the contract's pausability state.", 1881 "_systemConfig": "Address of the SystemConfig contract." 1882 } 1883 }, 1884 "isOutputFinalized(uint256)": { 1885 "params": { 1886 "_l2OutputIndex": "Index of the L2 output to check." 1887 }, 1888 "returns": { 1889 "_0": "Whether or not the output is finalized." 1890 } 1891 }, 1892 "minimumGasLimit(uint64)": { 1893 "params": { 1894 "_byteCount": "Number of bytes in the calldata." 1895 }, 1896 "returns": { 1897 "_0": "The minimum gas limit for a deposit." 1898 } 1899 }, 1900 "proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])": { 1901 "params": { 1902 "_l2OutputIndex": "L2 output index to prove against.", 1903 "_outputRootProof": "Inclusion proof of the L2ToL1MessagePasser contract's storage root.", 1904 "_tx": "Withdrawal transaction to finalize.", 1905 "_withdrawalProof": "Inclusion proof of the withdrawal in L2ToL1MessagePasser contract." 1906 } 1907 } 1908 }, 1909 "events": { 1910 "Paused(address)": { 1911 "params": { 1912 "account": "Address of the account triggering the pause." 1913 } 1914 }, 1915 "TransactionDeposited(address,address,uint256,bytes)": { 1916 "params": { 1917 "from": "Address that triggered the deposit transaction.", 1918 "opaqueData": "ABI encoded deposit data to be parsed off-chain.", 1919 "to": "Address that the deposit transaction is directed to.", 1920 "version": "Version of this deposit transaction event." 1921 } 1922 }, 1923 "Unpaused(address)": { 1924 "params": { 1925 "account": "Address of the account triggering the unpause." 1926 } 1927 }, 1928 "WithdrawalFinalized(bytes32,bool)": { 1929 "params": { 1930 "success": "Whether the withdrawal transaction was successful.", 1931 "withdrawalHash": "Hash of the withdrawal transaction." 1932 } 1933 }, 1934 "WithdrawalProven(bytes32,address,address)": { 1935 "params": { 1936 "from": "Address that triggered the withdrawal transaction.", 1937 "to": "Address that the withdrawal transaction is directed to.", 1938 "withdrawalHash": "Hash of the withdrawal transaction." 1939 } 1940 } 1941 } 1942 }, 1943 "ast": { 1944 "absolutePath": "src/L1/OptimismPortal.sol", 1945 "id": 59998, 1946 "exportedSymbols": { 1947 "AddressAliasHelper": [ 1948 78127 1949 ], 1950 "Constants": [ 1951 69571 1952 ], 1953 "Hashing": [ 1954 70279 1955 ], 1956 "ISemver": [ 1957 75669 1958 ], 1959 "Initializable": [ 1960 32244 1961 ], 1962 "L2OutputOracle": [ 1963 59272 1964 ], 1965 "OptimismPortal": [ 1966 59997 1967 ], 1968 "ResourceMetering": [ 1969 60599 1970 ], 1971 "SafeCall": [ 1972 70479 1973 ], 1974 "SecureMerkleTrie": [ 1975 72279 1976 ], 1977 "SystemConfig": [ 1978 61393 1979 ], 1980 "Types": [ 1981 70595 1982 ] 1983 }, 1984 "nodeType": "SourceUnit", 1985 "src": "32:21369:110", 1986 "nodes": [ 1987 { 1988 "id": 59274, 1989 "nodeType": "PragmaDirective", 1990 "src": "32:23:110", 1991 "nodes": [], 1992 "literals": [ 1993 "solidity", 1994 "0.8", 1995 ".15" 1996 ] 1997 }, 1998 { 1999 "id": 59276, 2000 "nodeType": "ImportDirective", 2001 "src": "57:86:110", 2002 "nodes": [], 2003 "absolutePath": "lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol", 2004 "file": "@openzeppelin/contracts/proxy/utils/Initializable.sol", 2005 "nameLocation": "-1:-1:-1", 2006 "scope": 59998, 2007 "sourceUnit": 32245, 2008 "symbolAliases": [ 2009 { 2010 "foreign": { 2011 "id": 59275, 2012 "name": "Initializable", 2013 "nodeType": "Identifier", 2014 "overloadedDeclarations": [], 2015 "referencedDeclaration": 32244, 2016 "src": "66:13:110", 2017 "typeDescriptions": {} 2018 }, 2019 "nameLocation": "-1:-1:-1" 2020 } 2021 ], 2022 "unitAlias": "" 2023 }, 2024 { 2025 "id": 59278, 2026 "nodeType": "ImportDirective", 2027 "src": "144:54:110", 2028 "nodes": [], 2029 "absolutePath": "src/libraries/SafeCall.sol", 2030 "file": "src/libraries/SafeCall.sol", 2031 "nameLocation": "-1:-1:-1", 2032 "scope": 59998, 2033 "sourceUnit": 70480, 2034 "symbolAliases": [ 2035 { 2036 "foreign": { 2037 "id": 59277, 2038 "name": "SafeCall", 2039 "nodeType": "Identifier", 2040 "overloadedDeclarations": [], 2041 "referencedDeclaration": 70479, 2042 "src": "153:8:110", 2043 "typeDescriptions": {} 2044 }, 2045 "nameLocation": "-1:-1:-1" 2046 } 2047 ], 2048 "unitAlias": "" 2049 }, 2050 { 2051 "id": 59280, 2052 "nodeType": "ImportDirective", 2053 "src": "199:59:110", 2054 "nodes": [], 2055 "absolutePath": "src/L1/L2OutputOracle.sol", 2056 "file": "src/L1/L2OutputOracle.sol", 2057 "nameLocation": "-1:-1:-1", 2058 "scope": 59998, 2059 "sourceUnit": 59273, 2060 "symbolAliases": [ 2061 { 2062 "foreign": { 2063 "id": 59279, 2064 "name": "L2OutputOracle", 2065 "nodeType": "Identifier", 2066 "overloadedDeclarations": [], 2067 "referencedDeclaration": 59272, 2068 "src": "208:14:110", 2069 "typeDescriptions": {} 2070 }, 2071 "nameLocation": "-1:-1:-1" 2072 } 2073 ], 2074 "unitAlias": "" 2075 }, 2076 { 2077 "id": 59282, 2078 "nodeType": "ImportDirective", 2079 "src": "259:55:110", 2080 "nodes": [], 2081 "absolutePath": "src/L1/SystemConfig.sol", 2082 "file": "src/L1/SystemConfig.sol", 2083 "nameLocation": "-1:-1:-1", 2084 "scope": 59998, 2085 "sourceUnit": 61394, 2086 "symbolAliases": [ 2087 { 2088 "foreign": { 2089 "id": 59281, 2090 "name": "SystemConfig", 2091 "nodeType": "Identifier", 2092 "overloadedDeclarations": [], 2093 "referencedDeclaration": 61393, 2094 "src": "268:12:110", 2095 "typeDescriptions": {} 2096 }, 2097 "nameLocation": "-1:-1:-1" 2098 } 2099 ], 2100 "unitAlias": "" 2101 }, 2102 { 2103 "id": 59284, 2104 "nodeType": "ImportDirective", 2105 "src": "315:56:110", 2106 "nodes": [], 2107 "absolutePath": "src/libraries/Constants.sol", 2108 "file": "src/libraries/Constants.sol", 2109 "nameLocation": "-1:-1:-1", 2110 "scope": 59998, 2111 "sourceUnit": 69572, 2112 "symbolAliases": [ 2113 { 2114 "foreign": { 2115 "id": 59283, 2116 "name": "Constants", 2117 "nodeType": "Identifier", 2118 "overloadedDeclarations": [], 2119 "referencedDeclaration": 69571, 2120 "src": "324:9:110", 2121 "typeDescriptions": {} 2122 }, 2123 "nameLocation": "-1:-1:-1" 2124 } 2125 ], 2126 "unitAlias": "" 2127 }, 2128 { 2129 "id": 59286, 2130 "nodeType": "ImportDirective", 2131 "src": "372:48:110", 2132 "nodes": [], 2133 "absolutePath": "src/libraries/Types.sol", 2134 "file": "src/libraries/Types.sol", 2135 "nameLocation": "-1:-1:-1", 2136 "scope": 59998, 2137 "sourceUnit": 70596, 2138 "symbolAliases": [ 2139 { 2140 "foreign": { 2141 "id": 59285, 2142 "name": "Types", 2143 "nodeType": "Identifier", 2144 "overloadedDeclarations": [], 2145 "referencedDeclaration": 70595, 2146 "src": "381:5:110", 2147 "typeDescriptions": {} 2148 }, 2149 "nameLocation": "-1:-1:-1" 2150 } 2151 ], 2152 "unitAlias": "" 2153 }, 2154 { 2155 "id": 59288, 2156 "nodeType": "ImportDirective", 2157 "src": "421:52:110", 2158 "nodes": [], 2159 "absolutePath": "src/libraries/Hashing.sol", 2160 "file": "src/libraries/Hashing.sol", 2161 "nameLocation": "-1:-1:-1", 2162 "scope": 59998, 2163 "sourceUnit": 70280, 2164 "symbolAliases": [ 2165 { 2166 "foreign": { 2167 "id": 59287, 2168 "name": "Hashing", 2169 "nodeType": "Identifier", 2170 "overloadedDeclarations": [], 2171 "referencedDeclaration": 70279, 2172 "src": "430:7:110", 2173 "typeDescriptions": {} 2174 }, 2175 "nameLocation": "-1:-1:-1" 2176 } 2177 ], 2178 "unitAlias": "" 2179 }, 2180 { 2181 "id": 59290, 2182 "nodeType": "ImportDirective", 2183 "src": "474:75:110", 2184 "nodes": [], 2185 "absolutePath": "src/libraries/trie/SecureMerkleTrie.sol", 2186 "file": "src/libraries/trie/SecureMerkleTrie.sol", 2187 "nameLocation": "-1:-1:-1", 2188 "scope": 59998, 2189 "sourceUnit": 72280, 2190 "symbolAliases": [ 2191 { 2192 "foreign": { 2193 "id": 59289, 2194 "name": "SecureMerkleTrie", 2195 "nodeType": "Identifier", 2196 "overloadedDeclarations": [], 2197 "referencedDeclaration": 72279, 2198 "src": "483:16:110", 2199 "typeDescriptions": {} 2200 }, 2201 "nameLocation": "-1:-1:-1" 2202 } 2203 ], 2204 "unitAlias": "" 2205 }, 2206 { 2207 "id": 59292, 2208 "nodeType": "ImportDirective", 2209 "src": "550:71:110", 2210 "nodes": [], 2211 "absolutePath": "src/vendor/AddressAliasHelper.sol", 2212 "file": "src/vendor/AddressAliasHelper.sol", 2213 "nameLocation": "-1:-1:-1", 2214 "scope": 59998, 2215 "sourceUnit": 78128, 2216 "symbolAliases": [ 2217 { 2218 "foreign": { 2219 "id": 59291, 2220 "name": "AddressAliasHelper", 2221 "nodeType": "Identifier", 2222 "overloadedDeclarations": [], 2223 "referencedDeclaration": 78127, 2224 "src": "559:18:110", 2225 "typeDescriptions": {} 2226 }, 2227 "nameLocation": "-1:-1:-1" 2228 } 2229 ], 2230 "unitAlias": "" 2231 }, 2232 { 2233 "id": 59294, 2234 "nodeType": "ImportDirective", 2235 "src": "622:63:110", 2236 "nodes": [], 2237 "absolutePath": "src/L1/ResourceMetering.sol", 2238 "file": "src/L1/ResourceMetering.sol", 2239 "nameLocation": "-1:-1:-1", 2240 "scope": 59998, 2241 "sourceUnit": 60600, 2242 "symbolAliases": [ 2243 { 2244 "foreign": { 2245 "id": 59293, 2246 "name": "ResourceMetering", 2247 "nodeType": "Identifier", 2248 "overloadedDeclarations": [], 2249 "referencedDeclaration": 60599, 2250 "src": "631:16:110", 2251 "typeDescriptions": {} 2252 }, 2253 "nameLocation": "-1:-1:-1" 2254 } 2255 ], 2256 "unitAlias": "" 2257 }, 2258 { 2259 "id": 59296, 2260 "nodeType": "ImportDirective", 2261 "src": "686:52:110", 2262 "nodes": [], 2263 "absolutePath": "src/universal/ISemver.sol", 2264 "file": "src/universal/ISemver.sol", 2265 "nameLocation": "-1:-1:-1", 2266 "scope": 59998, 2267 "sourceUnit": 75670, 2268 "symbolAliases": [ 2269 { 2270 "foreign": { 2271 "id": 59295, 2272 "name": "ISemver", 2273 "nodeType": "Identifier", 2274 "overloadedDeclarations": [], 2275 "referencedDeclaration": 75669, 2276 "src": "695:7:110", 2277 "typeDescriptions": {} 2278 }, 2279 "nameLocation": "-1:-1:-1" 2280 } 2281 ], 2282 "unitAlias": "" 2283 }, 2284 { 2285 "id": 59298, 2286 "nodeType": "ImportDirective", 2287 "src": "739:56:110", 2288 "nodes": [], 2289 "absolutePath": "src/libraries/Constants.sol", 2290 "file": "src/libraries/Constants.sol", 2291 "nameLocation": "-1:-1:-1", 2292 "scope": 59998, 2293 "sourceUnit": 69572, 2294 "symbolAliases": [ 2295 { 2296 "foreign": { 2297 "id": 59297, 2298 "name": "Constants", 2299 "nodeType": "Identifier", 2300 "overloadedDeclarations": [], 2301 "referencedDeclaration": 69571, 2302 "src": "748:9:110", 2303 "typeDescriptions": {} 2304 }, 2305 "nameLocation": "-1:-1:-1" 2306 } 2307 ], 2308 "unitAlias": "" 2309 }, 2310 { 2311 "id": 59997, 2312 "nodeType": "ContractDefinition", 2313 "src": "1135:20265:110", 2314 "nodes": [ 2315 { 2316 "id": 59312, 2317 "nodeType": "StructDefinition", 2318 "src": "1503:117:110", 2319 "nodes": [], 2320 "canonicalName": "OptimismPortal.ProvenWithdrawal", 2321 "members": [ 2322 { 2323 "constant": false, 2324 "id": 59307, 2325 "mutability": "mutable", 2326 "name": "outputRoot", 2327 "nameLocation": "1545:10:110", 2328 "nodeType": "VariableDeclaration", 2329 "scope": 59312, 2330 "src": "1537:18:110", 2331 "stateVariable": false, 2332 "storageLocation": "default", 2333 "typeDescriptions": { 2334 "typeIdentifier": "t_bytes32", 2335 "typeString": "bytes32" 2336 }, 2337 "typeName": { 2338 "id": 59306, 2339 "name": "bytes32", 2340 "nodeType": "ElementaryTypeName", 2341 "src": "1537:7:110", 2342 "typeDescriptions": { 2343 "typeIdentifier": "t_bytes32", 2344 "typeString": "bytes32" 2345 } 2346 }, 2347 "visibility": "internal" 2348 }, 2349 { 2350 "constant": false, 2351 "id": 59309, 2352 "mutability": "mutable", 2353 "name": "timestamp", 2354 "nameLocation": "1573:9:110", 2355 "nodeType": "VariableDeclaration", 2356 "scope": 59312, 2357 "src": "1565:17:110", 2358 "stateVariable": false, 2359 "storageLocation": "default", 2360 "typeDescriptions": { 2361 "typeIdentifier": "t_uint128", 2362 "typeString": "uint128" 2363 }, 2364 "typeName": { 2365 "id": 59308, 2366 "name": "uint128", 2367 "nodeType": "ElementaryTypeName", 2368 "src": "1565:7:110", 2369 "typeDescriptions": { 2370 "typeIdentifier": "t_uint128", 2371 "typeString": "uint128" 2372 } 2373 }, 2374 "visibility": "internal" 2375 }, 2376 { 2377 "constant": false, 2378 "id": 59311, 2379 "mutability": "mutable", 2380 "name": "l2OutputIndex", 2381 "nameLocation": "1600:13:110", 2382 "nodeType": "VariableDeclaration", 2383 "scope": 59312, 2384 "src": "1592:21:110", 2385 "stateVariable": false, 2386 "storageLocation": "default", 2387 "typeDescriptions": { 2388 "typeIdentifier": "t_uint128", 2389 "typeString": "uint128" 2390 }, 2391 "typeName": { 2392 "id": 59310, 2393 "name": "uint128", 2394 "nodeType": "ElementaryTypeName", 2395 "src": "1592:7:110", 2396 "typeDescriptions": { 2397 "typeIdentifier": "t_uint128", 2398 "typeString": "uint128" 2399 } 2400 }, 2401 "visibility": "internal" 2402 } 2403 ], 2404 "name": "ProvenWithdrawal", 2405 "nameLocation": "1510:16:110", 2406 "scope": 59997, 2407 "visibility": "public" 2408 }, 2409 { 2410 "id": 59316, 2411 "nodeType": "VariableDeclaration", 2412 "src": "1672:45:110", 2413 "nodes": [], 2414 "constant": true, 2415 "documentation": { 2416 "id": 59313, 2417 "nodeType": "StructuredDocumentation", 2418 "src": "1626:41:110", 2419 "text": "@notice Version of the deposit event." 2420 }, 2421 "mutability": "constant", 2422 "name": "DEPOSIT_VERSION", 2423 "nameLocation": "1698:15:110", 2424 "scope": 59997, 2425 "stateVariable": true, 2426 "storageLocation": "default", 2427 "typeDescriptions": { 2428 "typeIdentifier": "t_uint256", 2429 "typeString": "uint256" 2430 }, 2431 "typeName": { 2432 "id": 59314, 2433 "name": "uint256", 2434 "nodeType": "ElementaryTypeName", 2435 "src": "1672:7:110", 2436 "typeDescriptions": { 2437 "typeIdentifier": "t_uint256", 2438 "typeString": "uint256" 2439 } 2440 }, 2441 "value": { 2442 "hexValue": "30", 2443 "id": 59315, 2444 "isConstant": false, 2445 "isLValue": false, 2446 "isPure": true, 2447 "kind": "number", 2448 "lValueRequested": false, 2449 "nodeType": "Literal", 2450 "src": "1716:1:110", 2451 "typeDescriptions": { 2452 "typeIdentifier": "t_rational_0_by_1", 2453 "typeString": "int_const 0" 2454 }, 2455 "value": "0" 2456 }, 2457 "visibility": "internal" 2458 }, 2459 { 2460 "id": 59320, 2461 "nodeType": "VariableDeclaration", 2462 "src": "1813:60:110", 2463 "nodes": [], 2464 "constant": true, 2465 "documentation": { 2466 "id": 59317, 2467 "nodeType": "StructuredDocumentation", 2468 "src": "1724:84:110", 2469 "text": "@notice The L2 gas limit set when eth is deposited using the receive() function." 2470 }, 2471 "mutability": "constant", 2472 "name": "RECEIVE_DEFAULT_GAS_LIMIT", 2473 "nameLocation": "1838:25:110", 2474 "scope": 59997, 2475 "stateVariable": true, 2476 "storageLocation": "default", 2477 "typeDescriptions": { 2478 "typeIdentifier": "t_uint64", 2479 "typeString": "uint64" 2480 }, 2481 "typeName": { 2482 "id": 59318, 2483 "name": "uint64", 2484 "nodeType": "ElementaryTypeName", 2485 "src": "1813:6:110", 2486 "typeDescriptions": { 2487 "typeIdentifier": "t_uint64", 2488 "typeString": "uint64" 2489 } 2490 }, 2491 "value": { 2492 "hexValue": "3130305f303030", 2493 "id": 59319, 2494 "isConstant": false, 2495 "isLValue": false, 2496 "isPure": true, 2497 "kind": "number", 2498 "lValueRequested": false, 2499 "nodeType": "Literal", 2500 "src": "1866:7:110", 2501 "typeDescriptions": { 2502 "typeIdentifier": "t_rational_100000_by_1", 2503 "typeString": "int_const 100000" 2504 }, 2505 "value": "100_000" 2506 }, 2507 "visibility": "internal" 2508 }, 2509 { 2510 "id": 59323, 2511 "nodeType": "VariableDeclaration", 2512 "src": "2129:23:110", 2513 "nodes": [], 2514 "constant": false, 2515 "documentation": { 2516 "id": 59321, 2517 "nodeType": "StructuredDocumentation", 2518 "src": "1880:244:110", 2519 "text": "@notice Address of the L2 account which initiated a withdrawal in this transaction.\n If the of this variable is the default L2 sender address, then we are NOT inside of\n a call to finalizeWithdrawalTransaction." 2520 }, 2521 "functionSelector": "9bf62d82", 2522 "mutability": "mutable", 2523 "name": "l2Sender", 2524 "nameLocation": "2144:8:110", 2525 "scope": 59997, 2526 "stateVariable": true, 2527 "storageLocation": "default", 2528 "typeDescriptions": { 2529 "typeIdentifier": "t_address", 2530 "typeString": "address" 2531 }, 2532 "typeName": { 2533 "id": 59322, 2534 "name": "address", 2535 "nodeType": "ElementaryTypeName", 2536 "src": "2129:7:110", 2537 "stateMutability": "nonpayable", 2538 "typeDescriptions": { 2539 "typeIdentifier": "t_address", 2540 "typeString": "address" 2541 } 2542 }, 2543 "visibility": "public" 2544 }, 2545 { 2546 "id": 59328, 2547 "nodeType": "VariableDeclaration", 2548 "src": "2243:52:110", 2549 "nodes": [], 2550 "constant": false, 2551 "documentation": { 2552 "id": 59324, 2553 "nodeType": "StructuredDocumentation", 2554 "src": "2159:79:110", 2555 "text": "@notice A list of withdrawal hashes which have been successfully finalized." 2556 }, 2557 "functionSelector": "a14238e7", 2558 "mutability": "mutable", 2559 "name": "finalizedWithdrawals", 2560 "nameLocation": "2275:20:110", 2561 "scope": 59997, 2562 "stateVariable": true, 2563 "storageLocation": "default", 2564 "typeDescriptions": { 2565 "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", 2566 "typeString": "mapping(bytes32 => bool)" 2567 }, 2568 "typeName": { 2569 "id": 59327, 2570 "keyType": { 2571 "id": 59325, 2572 "name": "bytes32", 2573 "nodeType": "ElementaryTypeName", 2574 "src": "2251:7:110", 2575 "typeDescriptions": { 2576 "typeIdentifier": "t_bytes32", 2577 "typeString": "bytes32" 2578 } 2579 }, 2580 "nodeType": "Mapping", 2581 "src": "2243:24:110", 2582 "typeDescriptions": { 2583 "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", 2584 "typeString": "mapping(bytes32 => bool)" 2585 }, 2586 "valueType": { 2587 "id": 59326, 2588 "name": "bool", 2589 "nodeType": "ElementaryTypeName", 2590 "src": "2262:4:110", 2591 "typeDescriptions": { 2592 "typeIdentifier": "t_bool", 2593 "typeString": "bool" 2594 } 2595 } 2596 }, 2597 "visibility": "public" 2598 }, 2599 { 2600 "id": 59334, 2601 "nodeType": "VariableDeclaration", 2602 "src": "2377:61:110", 2603 "nodes": [], 2604 "constant": false, 2605 "documentation": { 2606 "id": 59329, 2607 "nodeType": "StructuredDocumentation", 2608 "src": "2302:70:110", 2609 "text": "@notice A mapping of withdrawal hashes to `ProvenWithdrawal` data." 2610 }, 2611 "functionSelector": "e965084c", 2612 "mutability": "mutable", 2613 "name": "provenWithdrawals", 2614 "nameLocation": "2421:17:110", 2615 "scope": 59997, 2616 "stateVariable": true, 2617 "storageLocation": "default", 2618 "typeDescriptions": { 2619 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProvenWithdrawal_$59312_storage_$", 2620 "typeString": "mapping(bytes32 => struct OptimismPortal.ProvenWithdrawal)" 2621 }, 2622 "typeName": { 2623 "id": 59333, 2624 "keyType": { 2625 "id": 59330, 2626 "name": "bytes32", 2627 "nodeType": "ElementaryTypeName", 2628 "src": "2385:7:110", 2629 "typeDescriptions": { 2630 "typeIdentifier": "t_bytes32", 2631 "typeString": "bytes32" 2632 } 2633 }, 2634 "nodeType": "Mapping", 2635 "src": "2377:36:110", 2636 "typeDescriptions": { 2637 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProvenWithdrawal_$59312_storage_$", 2638 "typeString": "mapping(bytes32 => struct OptimismPortal.ProvenWithdrawal)" 2639 }, 2640 "valueType": { 2641 "id": 59332, 2642 "nodeType": "UserDefinedTypeName", 2643 "pathNode": { 2644 "id": 59331, 2645 "name": "ProvenWithdrawal", 2646 "nodeType": "IdentifierPath", 2647 "referencedDeclaration": 59312, 2648 "src": "2396:16:110" 2649 }, 2650 "referencedDeclaration": 59312, 2651 "src": "2396:16:110", 2652 "typeDescriptions": { 2653 "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_storage_ptr", 2654 "typeString": "struct OptimismPortal.ProvenWithdrawal" 2655 } 2656 } 2657 }, 2658 "visibility": "public" 2659 }, 2660 { 2661 "id": 59337, 2662 "nodeType": "VariableDeclaration", 2663 "src": "2618:18:110", 2664 "nodes": [], 2665 "constant": false, 2666 "documentation": { 2667 "id": 59335, 2668 "nodeType": "StructuredDocumentation", 2669 "src": "2445:168:110", 2670 "text": "@notice Determines if cross domain messaging is paused.\n When set to true, withdrawals are paused.\n This may be removed in the future." 2671 }, 2672 "functionSelector": "5c975abb", 2673 "mutability": "mutable", 2674 "name": "paused", 2675 "nameLocation": "2630:6:110", 2676 "scope": 59997, 2677 "stateVariable": true, 2678 "storageLocation": "default", 2679 "typeDescriptions": { 2680 "typeIdentifier": "t_bool", 2681 "typeString": "bool" 2682 }, 2683 "typeName": { 2684 "id": 59336, 2685 "name": "bool", 2686 "nodeType": "ElementaryTypeName", 2687 "src": "2618:4:110", 2688 "typeDescriptions": { 2689 "typeIdentifier": "t_bool", 2690 "typeString": "bool" 2691 } 2692 }, 2693 "visibility": "public" 2694 }, 2695 { 2696 "id": 59341, 2697 "nodeType": "VariableDeclaration", 2698 "src": "2732:30:110", 2699 "nodes": [], 2700 "constant": false, 2701 "documentation": { 2702 "id": 59338, 2703 "nodeType": "StructuredDocumentation", 2704 "src": "2643:84:110", 2705 "text": "@notice Address of the L2OutputOracle contract.\n @custom:network-specific" 2706 }, 2707 "functionSelector": "9b5f694a", 2708 "mutability": "mutable", 2709 "name": "l2Oracle", 2710 "nameLocation": "2754:8:110", 2711 "scope": 59997, 2712 "stateVariable": true, 2713 "storageLocation": "default", 2714 "typeDescriptions": { 2715 "typeIdentifier": "t_contract$_L2OutputOracle_$59272", 2716 "typeString": "contract L2OutputOracle" 2717 }, 2718 "typeName": { 2719 "id": 59340, 2720 "nodeType": "UserDefinedTypeName", 2721 "pathNode": { 2722 "id": 59339, 2723 "name": "L2OutputOracle", 2724 "nodeType": "IdentifierPath", 2725 "referencedDeclaration": 59272, 2726 "src": "2732:14:110" 2727 }, 2728 "referencedDeclaration": 59272, 2729 "src": "2732:14:110", 2730 "typeDescriptions": { 2731 "typeIdentifier": "t_contract$_L2OutputOracle_$59272", 2732 "typeString": "contract L2OutputOracle" 2733 } 2734 }, 2735 "visibility": "public" 2736 }, 2737 { 2738 "id": 59345, 2739 "nodeType": "VariableDeclaration", 2740 "src": "2856:32:110", 2741 "nodes": [], 2742 "constant": false, 2743 "documentation": { 2744 "id": 59342, 2745 "nodeType": "StructuredDocumentation", 2746 "src": "2769:82:110", 2747 "text": "@notice Address of the SystemConfig contract.\n @custom:network-specific" 2748 }, 2749 "functionSelector": "33d7e2bd", 2750 "mutability": "mutable", 2751 "name": "systemConfig", 2752 "nameLocation": "2876:12:110", 2753 "scope": 59997, 2754 "stateVariable": true, 2755 "storageLocation": "default", 2756 "typeDescriptions": { 2757 "typeIdentifier": "t_contract$_SystemConfig_$61393", 2758 "typeString": "contract SystemConfig" 2759 }, 2760 "typeName": { 2761 "id": 59344, 2762 "nodeType": "UserDefinedTypeName", 2763 "pathNode": { 2764 "id": 59343, 2765 "name": "SystemConfig", 2766 "nodeType": "IdentifierPath", 2767 "referencedDeclaration": 61393, 2768 "src": "2856:12:110" 2769 }, 2770 "referencedDeclaration": 61393, 2771 "src": "2856:12:110", 2772 "typeDescriptions": { 2773 "typeIdentifier": "t_contract$_SystemConfig_$61393", 2774 "typeString": "contract SystemConfig" 2775 } 2776 }, 2777 "visibility": "public" 2778 }, 2779 { 2780 "id": 59348, 2781 "nodeType": "VariableDeclaration", 2782 "src": "3007:23:110", 2783 "nodes": [], 2784 "constant": false, 2785 "documentation": { 2786 "id": 59346, 2787 "nodeType": "StructuredDocumentation", 2788 "src": "2895:107:110", 2789 "text": "@notice Address that has the ability to pause and unpause withdrawals.\n @custom:network-specific" 2790 }, 2791 "functionSelector": "452a9320", 2792 "mutability": "mutable", 2793 "name": "guardian", 2794 "nameLocation": "3022:8:110", 2795 "scope": 59997, 2796 "stateVariable": true, 2797 "storageLocation": "default", 2798 "typeDescriptions": { 2799 "typeIdentifier": "t_address", 2800 "typeString": "address" 2801 }, 2802 "typeName": { 2803 "id": 59347, 2804 "name": "address", 2805 "nodeType": "ElementaryTypeName", 2806 "src": "3007:7:110", 2807 "stateMutability": "nonpayable", 2808 "typeDescriptions": { 2809 "typeIdentifier": "t_address", 2810 "typeString": "address" 2811 } 2812 }, 2813 "visibility": "public" 2814 }, 2815 { 2816 "id": 59359, 2817 "nodeType": "EventDefinition", 2818 "src": "3541:112:110", 2819 "nodes": [], 2820 "anonymous": false, 2821 "documentation": { 2822 "id": 59349, 2823 "nodeType": "StructuredDocumentation", 2824 "src": "3037:499:110", 2825 "text": "@notice Emitted when a transaction is deposited from L1 to L2.\n The parameters of this event are read by the rollup node and used to derive deposit\n transactions on L2.\n @param from Address that triggered the deposit transaction.\n @param to Address that the deposit transaction is directed to.\n @param version Version of this deposit transaction event.\n @param opaqueData ABI encoded deposit data to be parsed off-chain." 2826 }, 2827 "eventSelector": "b3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c32", 2828 "name": "TransactionDeposited", 2829 "nameLocation": "3547:20:110", 2830 "parameters": { 2831 "id": 59358, 2832 "nodeType": "ParameterList", 2833 "parameters": [ 2834 { 2835 "constant": false, 2836 "id": 59351, 2837 "indexed": true, 2838 "mutability": "mutable", 2839 "name": "from", 2840 "nameLocation": "3584:4:110", 2841 "nodeType": "VariableDeclaration", 2842 "scope": 59359, 2843 "src": "3568:20:110", 2844 "stateVariable": false, 2845 "storageLocation": "default", 2846 "typeDescriptions": { 2847 "typeIdentifier": "t_address", 2848 "typeString": "address" 2849 }, 2850 "typeName": { 2851 "id": 59350, 2852 "name": "address", 2853 "nodeType": "ElementaryTypeName", 2854 "src": "3568:7:110", 2855 "stateMutability": "nonpayable", 2856 "typeDescriptions": { 2857 "typeIdentifier": "t_address", 2858 "typeString": "address" 2859 } 2860 }, 2861 "visibility": "internal" 2862 }, 2863 { 2864 "constant": false, 2865 "id": 59353, 2866 "indexed": true, 2867 "mutability": "mutable", 2868 "name": "to", 2869 "nameLocation": "3606:2:110", 2870 "nodeType": "VariableDeclaration", 2871 "scope": 59359, 2872 "src": "3590:18:110", 2873 "stateVariable": false, 2874 "storageLocation": "default", 2875 "typeDescriptions": { 2876 "typeIdentifier": "t_address", 2877 "typeString": "address" 2878 }, 2879 "typeName": { 2880 "id": 59352, 2881 "name": "address", 2882 "nodeType": "ElementaryTypeName", 2883 "src": "3590:7:110", 2884 "stateMutability": "nonpayable", 2885 "typeDescriptions": { 2886 "typeIdentifier": "t_address", 2887 "typeString": "address" 2888 } 2889 }, 2890 "visibility": "internal" 2891 }, 2892 { 2893 "constant": false, 2894 "id": 59355, 2895 "indexed": true, 2896 "mutability": "mutable", 2897 "name": "version", 2898 "nameLocation": "3626:7:110", 2899 "nodeType": "VariableDeclaration", 2900 "scope": 59359, 2901 "src": "3610:23:110", 2902 "stateVariable": false, 2903 "storageLocation": "default", 2904 "typeDescriptions": { 2905 "typeIdentifier": "t_uint256", 2906 "typeString": "uint256" 2907 }, 2908 "typeName": { 2909 "id": 59354, 2910 "name": "uint256", 2911 "nodeType": "ElementaryTypeName", 2912 "src": "3610:7:110", 2913 "typeDescriptions": { 2914 "typeIdentifier": "t_uint256", 2915 "typeString": "uint256" 2916 } 2917 }, 2918 "visibility": "internal" 2919 }, 2920 { 2921 "constant": false, 2922 "id": 59357, 2923 "indexed": false, 2924 "mutability": "mutable", 2925 "name": "opaqueData", 2926 "nameLocation": "3641:10:110", 2927 "nodeType": "VariableDeclaration", 2928 "scope": 59359, 2929 "src": "3635:16:110", 2930 "stateVariable": false, 2931 "storageLocation": "default", 2932 "typeDescriptions": { 2933 "typeIdentifier": "t_bytes_memory_ptr", 2934 "typeString": "bytes" 2935 }, 2936 "typeName": { 2937 "id": 59356, 2938 "name": "bytes", 2939 "nodeType": "ElementaryTypeName", 2940 "src": "3635:5:110", 2941 "typeDescriptions": { 2942 "typeIdentifier": "t_bytes_storage_ptr", 2943 "typeString": "bytes" 2944 } 2945 }, 2946 "visibility": "internal" 2947 } 2948 ], 2949 "src": "3567:85:110" 2950 } 2951 }, 2952 { 2953 "id": 59368, 2954 "nodeType": "EventDefinition", 2955 "src": "3957:97:110", 2956 "nodes": [], 2957 "anonymous": false, 2958 "documentation": { 2959 "id": 59360, 2960 "nodeType": "StructuredDocumentation", 2961 "src": "3659:293:110", 2962 "text": "@notice Emitted when a withdrawal transaction is proven.\n @param withdrawalHash Hash of the withdrawal transaction.\n @param from Address that triggered the withdrawal transaction.\n @param to Address that the withdrawal transaction is directed to." 2963 }, 2964 "eventSelector": "67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f62", 2965 "name": "WithdrawalProven", 2966 "nameLocation": "3963:16:110", 2967 "parameters": { 2968 "id": 59367, 2969 "nodeType": "ParameterList", 2970 "parameters": [ 2971 { 2972 "constant": false, 2973 "id": 59362, 2974 "indexed": true, 2975 "mutability": "mutable", 2976 "name": "withdrawalHash", 2977 "nameLocation": "3996:14:110", 2978 "nodeType": "VariableDeclaration", 2979 "scope": 59368, 2980 "src": "3980:30:110", 2981 "stateVariable": false, 2982 "storageLocation": "default", 2983 "typeDescriptions": { 2984 "typeIdentifier": "t_bytes32", 2985 "typeString": "bytes32" 2986 }, 2987 "typeName": { 2988 "id": 59361, 2989 "name": "bytes32", 2990 "nodeType": "ElementaryTypeName", 2991 "src": "3980:7:110", 2992 "typeDescriptions": { 2993 "typeIdentifier": "t_bytes32", 2994 "typeString": "bytes32" 2995 } 2996 }, 2997 "visibility": "internal" 2998 }, 2999 { 3000 "constant": false, 3001 "id": 59364, 3002 "indexed": true, 3003 "mutability": "mutable", 3004 "name": "from", 3005 "nameLocation": "4028:4:110", 3006 "nodeType": "VariableDeclaration", 3007 "scope": 59368, 3008 "src": "4012:20:110", 3009 "stateVariable": false, 3010 "storageLocation": "default", 3011 "typeDescriptions": { 3012 "typeIdentifier": "t_address", 3013 "typeString": "address" 3014 }, 3015 "typeName": { 3016 "id": 59363, 3017 "name": "address", 3018 "nodeType": "ElementaryTypeName", 3019 "src": "4012:7:110", 3020 "stateMutability": "nonpayable", 3021 "typeDescriptions": { 3022 "typeIdentifier": "t_address", 3023 "typeString": "address" 3024 } 3025 }, 3026 "visibility": "internal" 3027 }, 3028 { 3029 "constant": false, 3030 "id": 59366, 3031 "indexed": true, 3032 "mutability": "mutable", 3033 "name": "to", 3034 "nameLocation": "4050:2:110", 3035 "nodeType": "VariableDeclaration", 3036 "scope": 59368, 3037 "src": "4034:18:110", 3038 "stateVariable": false, 3039 "storageLocation": "default", 3040 "typeDescriptions": { 3041 "typeIdentifier": "t_address", 3042 "typeString": "address" 3043 }, 3044 "typeName": { 3045 "id": 59365, 3046 "name": "address", 3047 "nodeType": "ElementaryTypeName", 3048 "src": "4034:7:110", 3049 "stateMutability": "nonpayable", 3050 "typeDescriptions": { 3051 "typeIdentifier": "t_address", 3052 "typeString": "address" 3053 } 3054 }, 3055 "visibility": "internal" 3056 } 3057 ], 3058 "src": "3979:74:110" 3059 } 3060 }, 3061 { 3062 "id": 59375, 3063 "nodeType": "EventDefinition", 3064 "src": "4275:72:110", 3065 "nodes": [], 3066 "anonymous": false, 3067 "documentation": { 3068 "id": 59369, 3069 "nodeType": "StructuredDocumentation", 3070 "src": "4060:210:110", 3071 "text": "@notice Emitted when a withdrawal transaction is finalized.\n @param withdrawalHash Hash of the withdrawal transaction.\n @param success Whether the withdrawal transaction was successful." 3072 }, 3073 "eventSelector": "db5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b", 3074 "name": "WithdrawalFinalized", 3075 "nameLocation": "4281:19:110", 3076 "parameters": { 3077 "id": 59374, 3078 "nodeType": "ParameterList", 3079 "parameters": [ 3080 { 3081 "constant": false, 3082 "id": 59371, 3083 "indexed": true, 3084 "mutability": "mutable", 3085 "name": "withdrawalHash", 3086 "nameLocation": "4317:14:110", 3087 "nodeType": "VariableDeclaration", 3088 "scope": 59375, 3089 "src": "4301:30:110", 3090 "stateVariable": false, 3091 "storageLocation": "default", 3092 "typeDescriptions": { 3093 "typeIdentifier": "t_bytes32", 3094 "typeString": "bytes32" 3095 }, 3096 "typeName": { 3097 "id": 59370, 3098 "name": "bytes32", 3099 "nodeType": "ElementaryTypeName", 3100 "src": "4301:7:110", 3101 "typeDescriptions": { 3102 "typeIdentifier": "t_bytes32", 3103 "typeString": "bytes32" 3104 } 3105 }, 3106 "visibility": "internal" 3107 }, 3108 { 3109 "constant": false, 3110 "id": 59373, 3111 "indexed": false, 3112 "mutability": "mutable", 3113 "name": "success", 3114 "nameLocation": "4338:7:110", 3115 "nodeType": "VariableDeclaration", 3116 "scope": 59375, 3117 "src": "4333:12:110", 3118 "stateVariable": false, 3119 "storageLocation": "default", 3120 "typeDescriptions": { 3121 "typeIdentifier": "t_bool", 3122 "typeString": "bool" 3123 }, 3124 "typeName": { 3125 "id": 59372, 3126 "name": "bool", 3127 "nodeType": "ElementaryTypeName", 3128 "src": "4333:4:110", 3129 "typeDescriptions": { 3130 "typeIdentifier": "t_bool", 3131 "typeString": "bool" 3132 } 3133 }, 3134 "visibility": "internal" 3135 } 3136 ], 3137 "src": "4300:46:110" 3138 } 3139 }, 3140 { 3141 "id": 59380, 3142 "nodeType": "EventDefinition", 3143 "src": "4474:30:110", 3144 "nodes": [], 3145 "anonymous": false, 3146 "documentation": { 3147 "id": 59376, 3148 "nodeType": "StructuredDocumentation", 3149 "src": "4353:116:110", 3150 "text": "@notice Emitted when the pause is triggered.\n @param account Address of the account triggering the pause." 3151 }, 3152 "eventSelector": "62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258", 3153 "name": "Paused", 3154 "nameLocation": "4480:6:110", 3155 "parameters": { 3156 "id": 59379, 3157 "nodeType": "ParameterList", 3158 "parameters": [ 3159 { 3160 "constant": false, 3161 "id": 59378, 3162 "indexed": false, 3163 "mutability": "mutable", 3164 "name": "account", 3165 "nameLocation": "4495:7:110", 3166 "nodeType": "VariableDeclaration", 3167 "scope": 59380, 3168 "src": "4487:15:110", 3169 "stateVariable": false, 3170 "storageLocation": "default", 3171 "typeDescriptions": { 3172 "typeIdentifier": "t_address", 3173 "typeString": "address" 3174 }, 3175 "typeName": { 3176 "id": 59377, 3177 "name": "address", 3178 "nodeType": "ElementaryTypeName", 3179 "src": "4487:7:110", 3180 "stateMutability": "nonpayable", 3181 "typeDescriptions": { 3182 "typeIdentifier": "t_address", 3183 "typeString": "address" 3184 } 3185 }, 3186 "visibility": "internal" 3187 } 3188 ], 3189 "src": "4486:17:110" 3190 } 3191 }, 3192 { 3193 "id": 59385, 3194 "nodeType": "EventDefinition", 3195 "src": "4630:32:110", 3196 "nodes": [], 3197 "anonymous": false, 3198 "documentation": { 3199 "id": 59381, 3200 "nodeType": "StructuredDocumentation", 3201 "src": "4510:115:110", 3202 "text": "@notice Emitted when the pause is lifted.\n @param account Address of the account triggering the unpause." 3203 }, 3204 "eventSelector": "5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa", 3205 "name": "Unpaused", 3206 "nameLocation": "4636:8:110", 3207 "parameters": { 3208 "id": 59384, 3209 "nodeType": "ParameterList", 3210 "parameters": [ 3211 { 3212 "constant": false, 3213 "id": 59383, 3214 "indexed": false, 3215 "mutability": "mutable", 3216 "name": "account", 3217 "nameLocation": "4653:7:110", 3218 "nodeType": "VariableDeclaration", 3219 "scope": 59385, 3220 "src": "4645:15:110", 3221 "stateVariable": false, 3222 "storageLocation": "default", 3223 "typeDescriptions": { 3224 "typeIdentifier": "t_address", 3225 "typeString": "address" 3226 }, 3227 "typeName": { 3228 "id": 59382, 3229 "name": "address", 3230 "nodeType": "ElementaryTypeName", 3231 "src": "4645:7:110", 3232 "stateMutability": "nonpayable", 3233 "typeDescriptions": { 3234 "typeIdentifier": "t_address", 3235 "typeString": "address" 3236 } 3237 }, 3238 "visibility": "internal" 3239 } 3240 ], 3241 "src": "4644:17:110" 3242 } 3243 }, 3244 { 3245 "id": 59397, 3246 "nodeType": "ModifierDefinition", 3247 "src": "4705:103:110", 3248 "nodes": [], 3249 "body": { 3250 "id": 59396, 3251 "nodeType": "Block", 3252 "src": "4730:78:110", 3253 "nodes": [], 3254 "statements": [ 3255 { 3256 "expression": { 3257 "arguments": [ 3258 { 3259 "commonType": { 3260 "typeIdentifier": "t_bool", 3261 "typeString": "bool" 3262 }, 3263 "id": 59391, 3264 "isConstant": false, 3265 "isLValue": false, 3266 "isPure": false, 3267 "lValueRequested": false, 3268 "leftExpression": { 3269 "id": 59389, 3270 "name": "paused", 3271 "nodeType": "Identifier", 3272 "overloadedDeclarations": [], 3273 "referencedDeclaration": 59337, 3274 "src": "4748:6:110", 3275 "typeDescriptions": { 3276 "typeIdentifier": "t_bool", 3277 "typeString": "bool" 3278 } 3279 }, 3280 "nodeType": "BinaryOperation", 3281 "operator": "==", 3282 "rightExpression": { 3283 "hexValue": "66616c7365", 3284 "id": 59390, 3285 "isConstant": false, 3286 "isLValue": false, 3287 "isPure": true, 3288 "kind": "bool", 3289 "lValueRequested": false, 3290 "nodeType": "Literal", 3291 "src": "4758:5:110", 3292 "typeDescriptions": { 3293 "typeIdentifier": "t_bool", 3294 "typeString": "bool" 3295 }, 3296 "value": "false" 3297 }, 3298 "src": "4748:15:110", 3299 "typeDescriptions": { 3300 "typeIdentifier": "t_bool", 3301 "typeString": "bool" 3302 } 3303 }, 3304 { 3305 "hexValue": "4f7074696d69736d506f7274616c3a20706175736564", 3306 "id": 59392, 3307 "isConstant": false, 3308 "isLValue": false, 3309 "isPure": true, 3310 "kind": "string", 3311 "lValueRequested": false, 3312 "nodeType": "Literal", 3313 "src": "4765:24:110", 3314 "typeDescriptions": { 3315 "typeIdentifier": "t_stringliteral_b66caa771ead292be27065b6fdbf17fc2b4f01cda6f3a71dafb599bc9ced165d", 3316 "typeString": "literal_string \"OptimismPortal: paused\"" 3317 }, 3318 "value": "OptimismPortal: paused" 3319 } 3320 ], 3321 "expression": { 3322 "argumentTypes": [ 3323 { 3324 "typeIdentifier": "t_bool", 3325 "typeString": "bool" 3326 }, 3327 { 3328 "typeIdentifier": "t_stringliteral_b66caa771ead292be27065b6fdbf17fc2b4f01cda6f3a71dafb599bc9ced165d", 3329 "typeString": "literal_string \"OptimismPortal: paused\"" 3330 } 3331 ], 3332 "id": 59388, 3333 "name": "require", 3334 "nodeType": "Identifier", 3335 "overloadedDeclarations": [ 3336 -18, 3337 -18 3338 ], 3339 "referencedDeclaration": -18, 3340 "src": "4740:7:110", 3341 "typeDescriptions": { 3342 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", 3343 "typeString": "function (bool,string memory) pure" 3344 } 3345 }, 3346 "id": 59393, 3347 "isConstant": false, 3348 "isLValue": false, 3349 "isPure": false, 3350 "kind": "functionCall", 3351 "lValueRequested": false, 3352 "names": [], 3353 "nodeType": "FunctionCall", 3354 "src": "4740:50:110", 3355 "tryCall": false, 3356 "typeDescriptions": { 3357 "typeIdentifier": "t_tuple$__$", 3358 "typeString": "tuple()" 3359 } 3360 }, 3361 "id": 59394, 3362 "nodeType": "ExpressionStatement", 3363 "src": "4740:50:110" 3364 }, 3365 { 3366 "id": 59395, 3367 "nodeType": "PlaceholderStatement", 3368 "src": "4800:1:110" 3369 } 3370 ] 3371 }, 3372 "documentation": { 3373 "id": 59386, 3374 "nodeType": "StructuredDocumentation", 3375 "src": "4668:32:110", 3376 "text": "@notice Reverts when paused." 3377 }, 3378 "name": "whenNotPaused", 3379 "nameLocation": "4714:13:110", 3380 "parameters": { 3381 "id": 59387, 3382 "nodeType": "ParameterList", 3383 "parameters": [], 3384 "src": "4727:2:110" 3385 }, 3386 "virtual": false, 3387 "visibility": "internal" 3388 }, 3389 { 3390 "id": 59401, 3391 "nodeType": "VariableDeclaration", 3392 "src": "4878:41:110", 3393 "nodes": [], 3394 "baseFunctions": [ 3395 75668 3396 ], 3397 "constant": true, 3398 "documentation": { 3399 "id": 59398, 3400 "nodeType": "StructuredDocumentation", 3401 "src": "4814:59:110", 3402 "text": "@notice Semantic version.\n @custom:semver 1.10.0" 3403 }, 3404 "functionSelector": "54fd4d50", 3405 "mutability": "constant", 3406 "name": "version", 3407 "nameLocation": "4901:7:110", 3408 "scope": 59997, 3409 "stateVariable": true, 3410 "storageLocation": "default", 3411 "typeDescriptions": { 3412 "typeIdentifier": "t_string_memory_ptr", 3413 "typeString": "string" 3414 }, 3415 "typeName": { 3416 "id": 59399, 3417 "name": "string", 3418 "nodeType": "ElementaryTypeName", 3419 "src": "4878:6:110", 3420 "typeDescriptions": { 3421 "typeIdentifier": "t_string_storage_ptr", 3422 "typeString": "string" 3423 } 3424 }, 3425 "value": { 3426 "hexValue": "312e31302e30", 3427 "id": 59400, 3428 "isConstant": false, 3429 "isLValue": false, 3430 "isPure": true, 3431 "kind": "string", 3432 "lValueRequested": false, 3433 "nodeType": "Literal", 3434 "src": "4911:8:110", 3435 "typeDescriptions": { 3436 "typeIdentifier": "t_stringliteral_0da5b5e4c121ebd588f58cd2a27b23bac1ec4a69fdf68241600b139ec2a21f64", 3437 "typeString": "literal_string \"1.10.0\"" 3438 }, 3439 "value": "1.10.0" 3440 }, 3441 "visibility": "public" 3442 }, 3443 { 3444 "id": 59426, 3445 "nodeType": "FunctionDefinition", 3446 "src": "4982:219:110", 3447 "nodes": [], 3448 "body": { 3449 "id": 59425, 3450 "nodeType": "Block", 3451 "src": "4996:205:110", 3452 "nodes": [], 3453 "statements": [ 3454 { 3455 "expression": { 3456 "arguments": [ 3457 { 3458 "arguments": [ 3459 { 3460 "arguments": [ 3461 { 3462 "hexValue": "30", 3463 "id": 59409, 3464 "isConstant": false, 3465 "isLValue": false, 3466 "isPure": true, 3467 "kind": "number", 3468 "lValueRequested": false, 3469 "nodeType": "Literal", 3470 "src": "5065:1:110", 3471 "typeDescriptions": { 3472 "typeIdentifier": "t_rational_0_by_1", 3473 "typeString": "int_const 0" 3474 }, 3475 "value": "0" 3476 } 3477 ], 3478 "expression": { 3479 "argumentTypes": [ 3480 { 3481 "typeIdentifier": "t_rational_0_by_1", 3482 "typeString": "int_const 0" 3483 } 3484 ], 3485 "id": 59408, 3486 "isConstant": false, 3487 "isLValue": false, 3488 "isPure": true, 3489 "lValueRequested": false, 3490 "nodeType": "ElementaryTypeNameExpression", 3491 "src": "5057:7:110", 3492 "typeDescriptions": { 3493 "typeIdentifier": "t_type$_t_address_$", 3494 "typeString": "type(address)" 3495 }, 3496 "typeName": { 3497 "id": 59407, 3498 "name": "address", 3499 "nodeType": "ElementaryTypeName", 3500 "src": "5057:7:110", 3501 "typeDescriptions": {} 3502 } 3503 }, 3504 "id": 59410, 3505 "isConstant": false, 3506 "isLValue": false, 3507 "isPure": true, 3508 "kind": "typeConversion", 3509 "lValueRequested": false, 3510 "names": [], 3511 "nodeType": "FunctionCall", 3512 "src": "5057:10:110", 3513 "tryCall": false, 3514 "typeDescriptions": { 3515 "typeIdentifier": "t_address", 3516 "typeString": "address" 3517 } 3518 } 3519 ], 3520 "expression": { 3521 "argumentTypes": [ 3522 { 3523 "typeIdentifier": "t_address", 3524 "typeString": "address" 3525 } 3526 ], 3527 "id": 59406, 3528 "name": "L2OutputOracle", 3529 "nodeType": "Identifier", 3530 "overloadedDeclarations": [], 3531 "referencedDeclaration": 59272, 3532 "src": "5042:14:110", 3533 "typeDescriptions": { 3534 "typeIdentifier": "t_type$_t_contract$_L2OutputOracle_$59272_$", 3535 "typeString": "type(contract L2OutputOracle)" 3536 } 3537 }, 3538 "id": 59411, 3539 "isConstant": false, 3540 "isLValue": false, 3541 "isPure": true, 3542 "kind": "typeConversion", 3543 "lValueRequested": false, 3544 "names": [], 3545 "nodeType": "FunctionCall", 3546 "src": "5042:26:110", 3547 "tryCall": false, 3548 "typeDescriptions": { 3549 "typeIdentifier": "t_contract$_L2OutputOracle_$59272", 3550 "typeString": "contract L2OutputOracle" 3551 } 3552 }, 3553 { 3554 "arguments": [ 3555 { 3556 "hexValue": "30", 3557 "id": 59414, 3558 "isConstant": false, 3559 "isLValue": false, 3560 "isPure": true, 3561 "kind": "number", 3562 "lValueRequested": false, 3563 "nodeType": "Literal", 3564 "src": "5101:1:110", 3565 "typeDescriptions": { 3566 "typeIdentifier": "t_rational_0_by_1", 3567 "typeString": "int_const 0" 3568 }, 3569 "value": "0" 3570 } 3571 ], 3572 "expression": { 3573 "argumentTypes": [ 3574 { 3575 "typeIdentifier": "t_rational_0_by_1", 3576 "typeString": "int_const 0" 3577 } 3578 ], 3579 "id": 59413, 3580 "isConstant": false, 3581 "isLValue": false, 3582 "isPure": true, 3583 "lValueRequested": false, 3584 "nodeType": "ElementaryTypeNameExpression", 3585 "src": "5093:7:110", 3586 "typeDescriptions": { 3587 "typeIdentifier": "t_type$_t_address_$", 3588 "typeString": "type(address)" 3589 }, 3590 "typeName": { 3591 "id": 59412, 3592 "name": "address", 3593 "nodeType": "ElementaryTypeName", 3594 "src": "5093:7:110", 3595 "typeDescriptions": {} 3596 } 3597 }, 3598 "id": 59415, 3599 "isConstant": false, 3600 "isLValue": false, 3601 "isPure": true, 3602 "kind": "typeConversion", 3603 "lValueRequested": false, 3604 "names": [], 3605 "nodeType": "FunctionCall", 3606 "src": "5093:10:110", 3607 "tryCall": false, 3608 "typeDescriptions": { 3609 "typeIdentifier": "t_address", 3610 "typeString": "address" 3611 } 3612 }, 3613 { 3614 "arguments": [ 3615 { 3616 "arguments": [ 3617 { 3618 "hexValue": "30", 3619 "id": 59419, 3620 "isConstant": false, 3621 "isLValue": false, 3622 "isPure": true, 3623 "kind": "number", 3624 "lValueRequested": false, 3625 "nodeType": "Literal", 3626 "src": "5153:1:110", 3627 "typeDescriptions": { 3628 "typeIdentifier": "t_rational_0_by_1", 3629 "typeString": "int_const 0" 3630 }, 3631 "value": "0" 3632 } 3633 ], 3634 "expression": { 3635 "argumentTypes": [ 3636 { 3637 "typeIdentifier": "t_rational_0_by_1", 3638 "typeString": "int_const 0" 3639 } 3640 ], 3641 "id": 59418, 3642 "isConstant": false, 3643 "isLValue": false, 3644 "isPure": true, 3645 "lValueRequested": false, 3646 "nodeType": "ElementaryTypeNameExpression", 3647 "src": "5145:7:110", 3648 "typeDescriptions": { 3649 "typeIdentifier": "t_type$_t_address_$", 3650 "typeString": "type(address)" 3651 }, 3652 "typeName": { 3653 "id": 59417, 3654 "name": "address", 3655 "nodeType": "ElementaryTypeName", 3656 "src": "5145:7:110", 3657 "typeDescriptions": {} 3658 } 3659 }, 3660 "id": 59420, 3661 "isConstant": false, 3662 "isLValue": false, 3663 "isPure": true, 3664 "kind": "typeConversion", 3665 "lValueRequested": false, 3666 "names": [], 3667 "nodeType": "FunctionCall", 3668 "src": "5145:10:110", 3669 "tryCall": false, 3670 "typeDescriptions": { 3671 "typeIdentifier": "t_address", 3672 "typeString": "address" 3673 } 3674 } 3675 ], 3676 "expression": { 3677 "argumentTypes": [ 3678 { 3679 "typeIdentifier": "t_address", 3680 "typeString": "address" 3681 } 3682 ], 3683 "id": 59416, 3684 "name": "SystemConfig", 3685 "nodeType": "Identifier", 3686 "overloadedDeclarations": [], 3687 "referencedDeclaration": 61393, 3688 "src": "5132:12:110", 3689 "typeDescriptions": { 3690 "typeIdentifier": "t_type$_t_contract$_SystemConfig_$61393_$", 3691 "typeString": "type(contract SystemConfig)" 3692 } 3693 }, 3694 "id": 59421, 3695 "isConstant": false, 3696 "isLValue": false, 3697 "isPure": true, 3698 "kind": "typeConversion", 3699 "lValueRequested": false, 3700 "names": [], 3701 "nodeType": "FunctionCall", 3702 "src": "5132:24:110", 3703 "tryCall": false, 3704 "typeDescriptions": { 3705 "typeIdentifier": "t_contract$_SystemConfig_$61393", 3706 "typeString": "contract SystemConfig" 3707 } 3708 }, 3709 { 3710 "hexValue": "74727565", 3711 "id": 59422, 3712 "isConstant": false, 3713 "isLValue": false, 3714 "isPure": true, 3715 "kind": "bool", 3716 "lValueRequested": false, 3717 "nodeType": "Literal", 3718 "src": "5179:4:110", 3719 "typeDescriptions": { 3720 "typeIdentifier": "t_bool", 3721 "typeString": "bool" 3722 }, 3723 "value": "true" 3724 } 3725 ], 3726 "expression": { 3727 "argumentTypes": [ 3728 { 3729 "typeIdentifier": "t_contract$_L2OutputOracle_$59272", 3730 "typeString": "contract L2OutputOracle" 3731 }, 3732 { 3733 "typeIdentifier": "t_address", 3734 "typeString": "address" 3735 }, 3736 { 3737 "typeIdentifier": "t_contract$_SystemConfig_$61393", 3738 "typeString": "contract SystemConfig" 3739 }, 3740 { 3741 "typeIdentifier": "t_bool", 3742 "typeString": "bool" 3743 } 3744 ], 3745 "id": 59405, 3746 "name": "initialize", 3747 "nodeType": "Identifier", 3748 "overloadedDeclarations": [], 3749 "referencedDeclaration": 59469, 3750 "src": "5006:10:110", 3751 "typeDescriptions": { 3752 "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_L2OutputOracle_$59272_$_t_address_$_t_contract$_SystemConfig_$61393_$_t_bool_$returns$__$", 3753 "typeString": "function (contract L2OutputOracle,address,contract SystemConfig,bool)" 3754 } 3755 }, 3756 "id": 59423, 3757 "isConstant": false, 3758 "isLValue": false, 3759 "isPure": false, 3760 "kind": "functionCall", 3761 "lValueRequested": false, 3762 "names": [ 3763 "_l2Oracle", 3764 "_guardian", 3765 "_systemConfig", 3766 "_paused" 3767 ], 3768 "nodeType": "FunctionCall", 3769 "src": "5006:188:110", 3770 "tryCall": false, 3771 "typeDescriptions": { 3772 "typeIdentifier": "t_tuple$__$", 3773 "typeString": "tuple()" 3774 } 3775 }, 3776 "id": 59424, 3777 "nodeType": "ExpressionStatement", 3778 "src": "5006:188:110" 3779 } 3780 ] 3781 }, 3782 "documentation": { 3783 "id": 59402, 3784 "nodeType": "StructuredDocumentation", 3785 "src": "4926:51:110", 3786 "text": "@notice Constructs the OptimismPortal contract." 3787 }, 3788 "implemented": true, 3789 "kind": "constructor", 3790 "modifiers": [], 3791 "name": "", 3792 "nameLocation": "-1:-1:-1", 3793 "parameters": { 3794 "id": 59403, 3795 "nodeType": "ParameterList", 3796 "parameters": [], 3797 "src": "4993:2:110" 3798 }, 3799 "returnParameters": { 3800 "id": 59404, 3801 "nodeType": "ParameterList", 3802 "parameters": [], 3803 "src": "4996:0:110" 3804 }, 3805 "scope": 59997, 3806 "stateMutability": "nonpayable", 3807 "virtual": false, 3808 "visibility": "public" 3809 }, 3810 { 3811 "id": 59469, 3812 "nodeType": "FunctionDefinition", 3813 "src": "5491:423:110", 3814 "nodes": [], 3815 "body": { 3816 "id": 59468, 3817 "nodeType": "Block", 3818 "src": "5700:214:110", 3819 "nodes": [], 3820 "statements": [ 3821 { 3822 "expression": { 3823 "id": 59447, 3824 "isConstant": false, 3825 "isLValue": false, 3826 "isPure": false, 3827 "lValueRequested": false, 3828 "leftHandSide": { 3829 "id": 59444, 3830 "name": "l2Sender", 3831 "nodeType": "Identifier", 3832 "overloadedDeclarations": [], 3833 "referencedDeclaration": 59323, 3834 "src": "5710:8:110", 3835 "typeDescriptions": { 3836 "typeIdentifier": "t_address", 3837 "typeString": "address" 3838 } 3839 }, 3840 "nodeType": "Assignment", 3841 "operator": "=", 3842 "rightHandSide": { 3843 "expression": { 3844 "id": 59445, 3845 "name": "Constants", 3846 "nodeType": "Identifier", 3847 "overloadedDeclarations": [], 3848 "referencedDeclaration": 69571, 3849 "src": "5721:9:110", 3850 "typeDescriptions": { 3851 "typeIdentifier": "t_type$_t_contract$_Constants_$69571_$", 3852 "typeString": "type(library Constants)" 3853 } 3854 }, 3855 "id": 59446, 3856 "isConstant": false, 3857 "isLValue": false, 3858 "isPure": false, 3859 "lValueRequested": false, 3860 "memberName": "DEFAULT_L2_SENDER", 3861 "nodeType": "MemberAccess", 3862 "referencedDeclaration": 69529, 3863 "src": "5721:27:110", 3864 "typeDescriptions": { 3865 "typeIdentifier": "t_address", 3866 "typeString": "address" 3867 } 3868 }, 3869 "src": "5710:38:110", 3870 "typeDescriptions": { 3871 "typeIdentifier": "t_address", 3872 "typeString": "address" 3873 } 3874 }, 3875 "id": 59448, 3876 "nodeType": "ExpressionStatement", 3877 "src": "5710:38:110" 3878 }, 3879 { 3880 "expression": { 3881 "id": 59451, 3882 "isConstant": false, 3883 "isLValue": false, 3884 "isPure": false, 3885 "lValueRequested": false, 3886 "leftHandSide": { 3887 "id": 59449, 3888 "name": "l2Oracle", 3889 "nodeType": "Identifier", 3890 "overloadedDeclarations": [], 3891 "referencedDeclaration": 59341, 3892 "src": "5758:8:110", 3893 "typeDescriptions": { 3894 "typeIdentifier": "t_contract$_L2OutputOracle_$59272", 3895 "typeString": "contract L2OutputOracle" 3896 } 3897 }, 3898 "nodeType": "Assignment", 3899 "operator": "=", 3900 "rightHandSide": { 3901 "id": 59450, 3902 "name": "_l2Oracle", 3903 "nodeType": "Identifier", 3904 "overloadedDeclarations": [], 3905 "referencedDeclaration": 59430, 3906 "src": "5769:9:110", 3907 "typeDescriptions": { 3908 "typeIdentifier": "t_contract$_L2OutputOracle_$59272", 3909 "typeString": "contract L2OutputOracle" 3910 } 3911 }, 3912 "src": "5758:20:110", 3913 "typeDescriptions": { 3914 "typeIdentifier": "t_contract$_L2OutputOracle_$59272", 3915 "typeString": "contract L2OutputOracle" 3916 } 3917 }, 3918 "id": 59452, 3919 "nodeType": "ExpressionStatement", 3920 "src": "5758:20:110" 3921 }, 3922 { 3923 "expression": { 3924 "id": 59455, 3925 "isConstant": false, 3926 "isLValue": false, 3927 "isPure": false, 3928 "lValueRequested": false, 3929 "leftHandSide": { 3930 "id": 59453, 3931 "name": "systemConfig", 3932 "nodeType": "Identifier", 3933 "overloadedDeclarations": [], 3934 "referencedDeclaration": 59345, 3935 "src": "5788:12:110", 3936 "typeDescriptions": { 3937 "typeIdentifier": "t_contract$_SystemConfig_$61393", 3938 "typeString": "contract SystemConfig" 3939 } 3940 }, 3941 "nodeType": "Assignment", 3942 "operator": "=", 3943 "rightHandSide": { 3944 "id": 59454, 3945 "name": "_systemConfig", 3946 "nodeType": "Identifier", 3947 "overloadedDeclarations": [], 3948 "referencedDeclaration": 59435, 3949 "src": "5803:13:110", 3950 "typeDescriptions": { 3951 "typeIdentifier": "t_contract$_SystemConfig_$61393", 3952 "typeString": "contract SystemConfig" 3953 } 3954 }, 3955 "src": "5788:28:110", 3956 "typeDescriptions": { 3957 "typeIdentifier": "t_contract$_SystemConfig_$61393", 3958 "typeString": "contract SystemConfig" 3959 } 3960 }, 3961 "id": 59456, 3962 "nodeType": "ExpressionStatement", 3963 "src": "5788:28:110" 3964 }, 3965 { 3966 "expression": { 3967 "id": 59459, 3968 "isConstant": false, 3969 "isLValue": false, 3970 "isPure": false, 3971 "lValueRequested": false, 3972 "leftHandSide": { 3973 "id": 59457, 3974 "name": "guardian", 3975 "nodeType": "Identifier", 3976 "overloadedDeclarations": [], 3977 "referencedDeclaration": 59348, 3978 "src": "5826:8:110", 3979 "typeDescriptions": { 3980 "typeIdentifier": "t_address", 3981 "typeString": "address" 3982 } 3983 }, 3984 "nodeType": "Assignment", 3985 "operator": "=", 3986 "rightHandSide": { 3987 "id": 59458, 3988 "name": "_guardian", 3989 "nodeType": "Identifier", 3990 "overloadedDeclarations": [], 3991 "referencedDeclaration": 59432, 3992 "src": "5837:9:110", 3993 "typeDescriptions": { 3994 "typeIdentifier": "t_address", 3995 "typeString": "address" 3996 } 3997 }, 3998 "src": "5826:20:110", 3999 "typeDescriptions": { 4000 "typeIdentifier": "t_address", 4001 "typeString": "address" 4002 } 4003 }, 4004 "id": 59460, 4005 "nodeType": "ExpressionStatement", 4006 "src": "5826:20:110" 4007 }, 4008 { 4009 "expression": { 4010 "id": 59463, 4011 "isConstant": false, 4012 "isLValue": false, 4013 "isPure": false, 4014 "lValueRequested": false, 4015 "leftHandSide": { 4016 "id": 59461, 4017 "name": "paused", 4018 "nodeType": "Identifier", 4019 "overloadedDeclarations": [], 4020 "referencedDeclaration": 59337, 4021 "src": "5856:6:110", 4022 "typeDescriptions": { 4023 "typeIdentifier": "t_bool", 4024 "typeString": "bool" 4025 } 4026 }, 4027 "nodeType": "Assignment", 4028 "operator": "=", 4029 "rightHandSide": { 4030 "id": 59462, 4031 "name": "_paused", 4032 "nodeType": "Identifier", 4033 "overloadedDeclarations": [], 4034 "referencedDeclaration": 59437, 4035 "src": "5865:7:110", 4036 "typeDescriptions": { 4037 "typeIdentifier": "t_bool", 4038 "typeString": "bool" 4039 } 4040 }, 4041 "src": "5856:16:110", 4042 "typeDescriptions": { 4043 "typeIdentifier": "t_bool", 4044 "typeString": "bool" 4045 } 4046 }, 4047 "id": 59464, 4048 "nodeType": "ExpressionStatement", 4049 "src": "5856:16:110" 4050 }, 4051 { 4052 "expression": { 4053 "arguments": [], 4054 "expression": { 4055 "argumentTypes": [], 4056 "id": 59465, 4057 "name": "__ResourceMetering_init", 4058 "nodeType": "Identifier", 4059 "overloadedDeclarations": [], 4060 "referencedDeclaration": 60598, 4061 "src": "5882:23:110", 4062 "typeDescriptions": { 4063 "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", 4064 "typeString": "function ()" 4065 } 4066 }, 4067 "id": 59466, 4068 "isConstant": false, 4069 "isLValue": false, 4070 "isPure": false, 4071 "kind": "functionCall", 4072 "lValueRequested": false, 4073 "names": [], 4074 "nodeType": "FunctionCall", 4075 "src": "5882:25:110", 4076 "tryCall": false, 4077 "typeDescriptions": { 4078 "typeIdentifier": "t_tuple$__$", 4079 "typeString": "tuple()" 4080 } 4081 }, 4082 "id": 59467, 4083 "nodeType": "ExpressionStatement", 4084 "src": "5882:25:110" 4085 } 4086 ] 4087 }, 4088 "documentation": { 4089 "id": 59427, 4090 "nodeType": "StructuredDocumentation", 4091 "src": "5207:279:110", 4092 "text": "@notice Initializer.\n @param _l2Oracle Address of the L2OutputOracle contract.\n @param _guardian Address that can pause withdrawals.\n @param _paused Sets the contract's pausability state.\n @param _systemConfig Address of the SystemConfig contract." 4093 }, 4094 "functionSelector": "fecf9734", 4095 "implemented": true, 4096 "kind": "function", 4097 "modifiers": [ 4098 { 4099 "arguments": [ 4100 { 4101 "expression": { 4102 "id": 59440, 4103 "name": "Constants", 4104 "nodeType": "Identifier", 4105 "overloadedDeclarations": [], 4106 "referencedDeclaration": 69571, 4107 "src": "5673:9:110", 4108 "typeDescriptions": { 4109 "typeIdentifier": "t_type$_t_contract$_Constants_$69571_$", 4110 "typeString": "type(library Constants)" 4111 } 4112 }, 4113 "id": 59441, 4114 "isConstant": false, 4115 "isLValue": false, 4116 "isPure": false, 4117 "lValueRequested": false, 4118 "memberName": "INITIALIZER", 4119 "nodeType": "MemberAccess", 4120 "referencedDeclaration": 69570, 4121 "src": "5673:21:110", 4122 "typeDescriptions": { 4123 "typeIdentifier": "t_uint8", 4124 "typeString": "uint8" 4125 } 4126 } 4127 ], 4128 "id": 59442, 4129 "kind": "modifierInvocation", 4130 "modifierName": { 4131 "id": 59439, 4132 "name": "reinitializer", 4133 "nodeType": "IdentifierPath", 4134 "referencedDeclaration": 32197, 4135 "src": "5659:13:110" 4136 }, 4137 "nodeType": "ModifierInvocation", 4138 "src": "5659:36:110" 4139 } 4140 ], 4141 "name": "initialize", 4142 "nameLocation": "5500:10:110", 4143 "parameters": { 4144 "id": 59438, 4145 "nodeType": "ParameterList", 4146 "parameters": [ 4147 { 4148 "constant": false, 4149 "id": 59430, 4150 "mutability": "mutable", 4151 "name": "_l2Oracle", 4152 "nameLocation": "5535:9:110", 4153 "nodeType": "VariableDeclaration", 4154 "scope": 59469, 4155 "src": "5520:24:110", 4156 "stateVariable": false, 4157 "storageLocation": "default", 4158 "typeDescriptions": { 4159 "typeIdentifier": "t_contract$_L2OutputOracle_$59272", 4160 "typeString": "contract L2OutputOracle" 4161 }, 4162 "typeName": { 4163 "id": 59429, 4164 "nodeType": "UserDefinedTypeName", 4165 "pathNode": { 4166 "id": 59428, 4167 "name": "L2OutputOracle", 4168 "nodeType": "IdentifierPath", 4169 "referencedDeclaration": 59272, 4170 "src": "5520:14:110" 4171 }, 4172 "referencedDeclaration": 59272, 4173 "src": "5520:14:110", 4174 "typeDescriptions": { 4175 "typeIdentifier": "t_contract$_L2OutputOracle_$59272", 4176 "typeString": "contract L2OutputOracle" 4177 } 4178 }, 4179 "visibility": "internal" 4180 }, 4181 { 4182 "constant": false, 4183 "id": 59432, 4184 "mutability": "mutable", 4185 "name": "_guardian", 4186 "nameLocation": "5562:9:110", 4187 "nodeType": "VariableDeclaration", 4188 "scope": 59469, 4189 "src": "5554:17:110", 4190 "stateVariable": false, 4191 "storageLocation": "default", 4192 "typeDescriptions": { 4193 "typeIdentifier": "t_address", 4194 "typeString": "address" 4195 }, 4196 "typeName": { 4197 "id": 59431, 4198 "name": "address", 4199 "nodeType": "ElementaryTypeName", 4200 "src": "5554:7:110", 4201 "stateMutability": "nonpayable", 4202 "typeDescriptions": { 4203 "typeIdentifier": "t_address", 4204 "typeString": "address" 4205 } 4206 }, 4207 "visibility": "internal" 4208 }, 4209 { 4210 "constant": false, 4211 "id": 59435, 4212 "mutability": "mutable", 4213 "name": "_systemConfig", 4214 "nameLocation": "5594:13:110", 4215 "nodeType": "VariableDeclaration", 4216 "scope": 59469, 4217 "src": "5581:26:110", 4218 "stateVariable": false, 4219 "storageLocation": "default", 4220 "typeDescriptions": { 4221 "typeIdentifier": "t_contract$_SystemConfig_$61393", 4222 "typeString": "contract SystemConfig" 4223 }, 4224 "typeName": { 4225 "id": 59434, 4226 "nodeType": "UserDefinedTypeName", 4227 "pathNode": { 4228 "id": 59433, 4229 "name": "SystemConfig", 4230 "nodeType": "IdentifierPath", 4231 "referencedDeclaration": 61393, 4232 "src": "5581:12:110" 4233 }, 4234 "referencedDeclaration": 61393, 4235 "src": "5581:12:110", 4236 "typeDescriptions": { 4237 "typeIdentifier": "t_contract$_SystemConfig_$61393", 4238 "typeString": "contract SystemConfig" 4239 } 4240 }, 4241 "visibility": "internal" 4242 }, 4243 { 4244 "constant": false, 4245 "id": 59437, 4246 "mutability": "mutable", 4247 "name": "_paused", 4248 "nameLocation": "5622:7:110", 4249 "nodeType": "VariableDeclaration", 4250 "scope": 59469, 4251 "src": "5617:12:110", 4252 "stateVariable": false, 4253 "storageLocation": "default", 4254 "typeDescriptions": { 4255 "typeIdentifier": "t_bool", 4256 "typeString": "bool" 4257 }, 4258 "typeName": { 4259 "id": 59436, 4260 "name": "bool", 4261 "nodeType": "ElementaryTypeName", 4262 "src": "5617:4:110", 4263 "typeDescriptions": { 4264 "typeIdentifier": "t_bool", 4265 "typeString": "bool" 4266 } 4267 }, 4268 "visibility": "internal" 4269 } 4270 ], 4271 "src": "5510:125:110" 4272 }, 4273 "returnParameters": { 4274 "id": 59443, 4275 "nodeType": "ParameterList", 4276 "parameters": [], 4277 "src": "5700:0:110" 4278 }, 4279 "scope": 59997, 4280 "stateMutability": "nonpayable", 4281 "virtual": false, 4282 "visibility": "public" 4283 }, 4284 { 4285 "id": 59479, 4286 "nodeType": "FunctionDefinition", 4287 "src": "5989:92:110", 4288 "nodes": [], 4289 "body": { 4290 "id": 59478, 4291 "nodeType": "Block", 4292 "src": "6049:32:110", 4293 "nodes": [], 4294 "statements": [ 4295 { 4296 "expression": { 4297 "id": 59476, 4298 "name": "l2Oracle", 4299 "nodeType": "Identifier", 4300 "overloadedDeclarations": [], 4301 "referencedDeclaration": 59341, 4302 "src": "6066:8:110", 4303 "typeDescriptions": { 4304 "typeIdentifier": "t_contract$_L2OutputOracle_$59272", 4305 "typeString": "contract L2OutputOracle" 4306 } 4307 }, 4308 "functionReturnParameters": 59475, 4309 "id": 59477, 4310 "nodeType": "Return", 4311 "src": "6059:15:110" 4312 } 4313 ] 4314 }, 4315 "documentation": { 4316 "id": 59470, 4317 "nodeType": "StructuredDocumentation", 4318 "src": "5920:64:110", 4319 "text": "@notice Getter for the L2OutputOracle\n @custom:legacy" 4320 }, 4321 "functionSelector": "001c2ff6", 4322 "implemented": true, 4323 "kind": "function", 4324 "modifiers": [], 4325 "name": "L2_ORACLE", 4326 "nameLocation": "5998:9:110", 4327 "parameters": { 4328 "id": 59471, 4329 "nodeType": "ParameterList", 4330 "parameters": [], 4331 "src": "6007:2:110" 4332 }, 4333 "returnParameters": { 4334 "id": 59475, 4335 "nodeType": "ParameterList", 4336 "parameters": [ 4337 { 4338 "constant": false, 4339 "id": 59474, 4340 "mutability": "mutable", 4341 "name": "", 4342 "nameLocation": "-1:-1:-1", 4343 "nodeType": "VariableDeclaration", 4344 "scope": 59479, 4345 "src": "6033:14:110", 4346 "stateVariable": false, 4347 "storageLocation": "default", 4348 "typeDescriptions": { 4349 "typeIdentifier": "t_contract$_L2OutputOracle_$59272", 4350 "typeString": "contract L2OutputOracle" 4351 }, 4352 "typeName": { 4353 "id": 59473, 4354 "nodeType": "UserDefinedTypeName", 4355 "pathNode": { 4356 "id": 59472, 4357 "name": "L2OutputOracle", 4358 "nodeType": "IdentifierPath", 4359 "referencedDeclaration": 59272, 4360 "src": "6033:14:110" 4361 }, 4362 "referencedDeclaration": 59272, 4363 "src": "6033:14:110", 4364 "typeDescriptions": { 4365 "typeIdentifier": "t_contract$_L2OutputOracle_$59272", 4366 "typeString": "contract L2OutputOracle" 4367 } 4368 }, 4369 "visibility": "internal" 4370 } 4371 ], 4372 "src": "6032:16:110" 4373 }, 4374 "scope": 59997, 4375 "stateMutability": "view", 4376 "virtual": false, 4377 "visibility": "external" 4378 }, 4379 { 4380 "id": 59489, 4381 "nodeType": "FunctionDefinition", 4382 "src": "6154:98:110", 4383 "nodes": [], 4384 "body": { 4385 "id": 59488, 4386 "nodeType": "Block", 4387 "src": "6216:36:110", 4388 "nodes": [], 4389 "statements": [ 4390 { 4391 "expression": { 4392 "id": 59486, 4393 "name": "systemConfig", 4394 "nodeType": "Identifier", 4395 "overloadedDeclarations": [], 4396 "referencedDeclaration": 59345, 4397 "src": "6233:12:110", 4398 "typeDescriptions": { 4399 "typeIdentifier": "t_contract$_SystemConfig_$61393", 4400 "typeString": "contract SystemConfig" 4401 } 4402 }, 4403 "functionReturnParameters": 59485, 4404 "id": 59487, 4405 "nodeType": "Return", 4406 "src": "6226:19:110" 4407 } 4408 ] 4409 }, 4410 "documentation": { 4411 "id": 59480, 4412 "nodeType": "StructuredDocumentation", 4413 "src": "6087:62:110", 4414 "text": "@notice Getter for the SystemConfig\n @custom:legacy" 4415 }, 4416 "functionSelector": "f0498750", 4417 "implemented": true, 4418 "kind": "function", 4419 "modifiers": [], 4420 "name": "SYSTEM_CONFIG", 4421 "nameLocation": "6163:13:110", 4422 "parameters": { 4423 "id": 59481, 4424 "nodeType": "ParameterList", 4425 "parameters": [], 4426 "src": "6176:2:110" 4427 }, 4428 "returnParameters": { 4429 "id": 59485, 4430 "nodeType": "ParameterList", 4431 "parameters": [ 4432 { 4433 "constant": false, 4434 "id": 59484, 4435 "mutability": "mutable", 4436 "name": "", 4437 "nameLocation": "-1:-1:-1", 4438 "nodeType": "VariableDeclaration", 4439 "scope": 59489, 4440 "src": "6202:12:110", 4441 "stateVariable": false, 4442 "storageLocation": "default", 4443 "typeDescriptions": { 4444 "typeIdentifier": "t_contract$_SystemConfig_$61393", 4445 "typeString": "contract SystemConfig" 4446 }, 4447 "typeName": { 4448 "id": 59483, 4449 "nodeType": "UserDefinedTypeName", 4450 "pathNode": { 4451 "id": 59482, 4452 "name": "SystemConfig", 4453 "nodeType": "IdentifierPath", 4454 "referencedDeclaration": 61393, 4455 "src": "6202:12:110" 4456 }, 4457 "referencedDeclaration": 61393, 4458 "src": "6202:12:110", 4459 "typeDescriptions": { 4460 "typeIdentifier": "t_contract$_SystemConfig_$61393", 4461 "typeString": "contract SystemConfig" 4462 } 4463 }, 4464 "visibility": "internal" 4465 } 4466 ], 4467 "src": "6201:14:110" 4468 }, 4469 "scope": 59997, 4470 "stateMutability": "view", 4471 "virtual": false, 4472 "visibility": "external" 4473 }, 4474 { 4475 "id": 59498, 4476 "nodeType": "FunctionDefinition", 4477 "src": "6321:84:110", 4478 "nodes": [], 4479 "body": { 4480 "id": 59497, 4481 "nodeType": "Block", 4482 "src": "6373:32:110", 4483 "nodes": [], 4484 "statements": [ 4485 { 4486 "expression": { 4487 "id": 59495, 4488 "name": "guardian", 4489 "nodeType": "Identifier", 4490 "overloadedDeclarations": [], 4491 "referencedDeclaration": 59348, 4492 "src": "6390:8:110", 4493 "typeDescriptions": { 4494 "typeIdentifier": "t_address", 4495 "typeString": "address" 4496 } 4497 }, 4498 "functionReturnParameters": 59494, 4499 "id": 59496, 4500 "nodeType": "Return", 4501 "src": "6383:15:110" 4502 } 4503 ] 4504 }, 4505 "documentation": { 4506 "id": 59490, 4507 "nodeType": "StructuredDocumentation", 4508 "src": "6258:58:110", 4509 "text": "@notice Getter for the Guardian\n @custom:legacy" 4510 }, 4511 "functionSelector": "724c184c", 4512 "implemented": true, 4513 "kind": "function", 4514 "modifiers": [], 4515 "name": "GUARDIAN", 4516 "nameLocation": "6330:8:110", 4517 "parameters": { 4518 "id": 59491, 4519 "nodeType": "ParameterList", 4520 "parameters": [], 4521 "src": "6338:2:110" 4522 }, 4523 "returnParameters": { 4524 "id": 59494, 4525 "nodeType": "ParameterList", 4526 "parameters": [ 4527 { 4528 "constant": false, 4529 "id": 59493, 4530 "mutability": "mutable", 4531 "name": "", 4532 "nameLocation": "-1:-1:-1", 4533 "nodeType": "VariableDeclaration", 4534 "scope": 59498, 4535 "src": "6364:7:110", 4536 "stateVariable": false, 4537 "storageLocation": "default", 4538 "typeDescriptions": { 4539 "typeIdentifier": "t_address", 4540 "typeString": "address" 4541 }, 4542 "typeName": { 4543 "id": 59492, 4544 "name": "address", 4545 "nodeType": "ElementaryTypeName", 4546 "src": "6364:7:110", 4547 "stateMutability": "nonpayable", 4548 "typeDescriptions": { 4549 "typeIdentifier": "t_address", 4550 "typeString": "address" 4551 } 4552 }, 4553 "visibility": "internal" 4554 } 4555 ], 4556 "src": "6363:9:110" 4557 }, 4558 "scope": 59997, 4559 "stateMutability": "view", 4560 "virtual": false, 4561 "visibility": "external" 4562 }, 4563 { 4564 "id": 59520, 4565 "nodeType": "FunctionDefinition", 4566 "src": "6447:173:110", 4567 "nodes": [], 4568 "body": { 4569 "id": 59519, 4570 "nodeType": "Block", 4571 "src": "6473:147:110", 4572 "nodes": [], 4573 "statements": [ 4574 { 4575 "expression": { 4576 "arguments": [ 4577 { 4578 "commonType": { 4579 "typeIdentifier": "t_address", 4580 "typeString": "address" 4581 }, 4582 "id": 59506, 4583 "isConstant": false, 4584 "isLValue": false, 4585 "isPure": false, 4586 "lValueRequested": false, 4587 "leftExpression": { 4588 "expression": { 4589 "id": 59503, 4590 "name": "msg", 4591 "nodeType": "Identifier", 4592 "overloadedDeclarations": [], 4593 "referencedDeclaration": -15, 4594 "src": "6491:3:110", 4595 "typeDescriptions": { 4596 "typeIdentifier": "t_magic_message", 4597 "typeString": "msg" 4598 } 4599 }, 4600 "id": 59504, 4601 "isConstant": false, 4602 "isLValue": false, 4603 "isPure": false, 4604 "lValueRequested": false, 4605 "memberName": "sender", 4606 "nodeType": "MemberAccess", 4607 "src": "6491:10:110", 4608 "typeDescriptions": { 4609 "typeIdentifier": "t_address", 4610 "typeString": "address" 4611 } 4612 }, 4613 "nodeType": "BinaryOperation", 4614 "operator": "==", 4615 "rightExpression": { 4616 "id": 59505, 4617 "name": "guardian", 4618 "nodeType": "Identifier", 4619 "overloadedDeclarations": [], 4620 "referencedDeclaration": 59348, 4621 "src": "6505:8:110", 4622 "typeDescriptions": { 4623 "typeIdentifier": "t_address", 4624 "typeString": "address" 4625 } 4626 }, 4627 "src": "6491:22:110", 4628 "typeDescriptions": { 4629 "typeIdentifier": "t_bool", 4630 "typeString": "bool" 4631 } 4632 }, 4633 { 4634 "hexValue": "4f7074696d69736d506f7274616c3a206f6e6c7920677561726469616e2063616e207061757365", 4635 "id": 59507, 4636 "isConstant": false, 4637 "isLValue": false, 4638 "isPure": true, 4639 "kind": "string", 4640 "lValueRequested": false, 4641 "nodeType": "Literal", 4642 "src": "6515:41:110", 4643 "typeDescriptions": { 4644 "typeIdentifier": "t_stringliteral_a662ad7462f0018e8b171ba19146984ad716c45a2c8d7c903bdd6e1628b95f08", 4645 "typeString": "literal_string \"OptimismPortal: only guardian can pause\"" 4646 }, 4647 "value": "OptimismPortal: only guardian can pause" 4648 } 4649 ], 4650 "expression": { 4651 "argumentTypes": [ 4652 { 4653 "typeIdentifier": "t_bool", 4654 "typeString": "bool" 4655 }, 4656 { 4657 "typeIdentifier": "t_stringliteral_a662ad7462f0018e8b171ba19146984ad716c45a2c8d7c903bdd6e1628b95f08", 4658 "typeString": "literal_string \"OptimismPortal: only guardian can pause\"" 4659 } 4660 ], 4661 "id": 59502, 4662 "name": "require", 4663 "nodeType": "Identifier", 4664 "overloadedDeclarations": [ 4665 -18, 4666 -18 4667 ], 4668 "referencedDeclaration": -18, 4669 "src": "6483:7:110", 4670 "typeDescriptions": { 4671 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", 4672 "typeString": "function (bool,string memory) pure" 4673 } 4674 }, 4675 "id": 59508, 4676 "isConstant": false, 4677 "isLValue": false, 4678 "isPure": false, 4679 "kind": "functionCall", 4680 "lValueRequested": false, 4681 "names": [], 4682 "nodeType": "FunctionCall", 4683 "src": "6483:74:110", 4684 "tryCall": false, 4685 "typeDescriptions": { 4686 "typeIdentifier": "t_tuple$__$", 4687 "typeString": "tuple()" 4688 } 4689 }, 4690 "id": 59509, 4691 "nodeType": "ExpressionStatement", 4692 "src": "6483:74:110" 4693 }, 4694 { 4695 "expression": { 4696 "id": 59512, 4697 "isConstant": false, 4698 "isLValue": false, 4699 "isPure": false, 4700 "lValueRequested": false, 4701 "leftHandSide": { 4702 "id": 59510, 4703 "name": "paused", 4704 "nodeType": "Identifier", 4705 "overloadedDeclarations": [], 4706 "referencedDeclaration": 59337, 4707 "src": "6567:6:110", 4708 "typeDescriptions": { 4709 "typeIdentifier": "t_bool", 4710 "typeString": "bool" 4711 } 4712 }, 4713 "nodeType": "Assignment", 4714 "operator": "=", 4715 "rightHandSide": { 4716 "hexValue": "74727565", 4717 "id": 59511, 4718 "isConstant": false, 4719 "isLValue": false, 4720 "isPure": true, 4721 "kind": "bool", 4722 "lValueRequested": false, 4723 "nodeType": "Literal", 4724 "src": "6576:4:110", 4725 "typeDescriptions": { 4726 "typeIdentifier": "t_bool", 4727 "typeString": "bool" 4728 }, 4729 "value": "true" 4730 }, 4731 "src": "6567:13:110", 4732 "typeDescriptions": { 4733 "typeIdentifier": "t_bool", 4734 "typeString": "bool" 4735 } 4736 }, 4737 "id": 59513, 4738 "nodeType": "ExpressionStatement", 4739 "src": "6567:13:110" 4740 }, 4741 { 4742 "eventCall": { 4743 "arguments": [ 4744 { 4745 "expression": { 4746 "id": 59515, 4747 "name": "msg", 4748 "nodeType": "Identifier", 4749 "overloadedDeclarations": [], 4750 "referencedDeclaration": -15, 4751 "src": "6602:3:110", 4752 "typeDescriptions": { 4753 "typeIdentifier": "t_magic_message", 4754 "typeString": "msg" 4755 } 4756 }, 4757 "id": 59516, 4758 "isConstant": false, 4759 "isLValue": false, 4760 "isPure": false, 4761 "lValueRequested": false, 4762 "memberName": "sender", 4763 "nodeType": "MemberAccess", 4764 "src": "6602:10:110", 4765 "typeDescriptions": { 4766 "typeIdentifier": "t_address", 4767 "typeString": "address" 4768 } 4769 } 4770 ], 4771 "expression": { 4772 "argumentTypes": [ 4773 { 4774 "typeIdentifier": "t_address", 4775 "typeString": "address" 4776 } 4777 ], 4778 "id": 59514, 4779 "name": "Paused", 4780 "nodeType": "Identifier", 4781 "overloadedDeclarations": [], 4782 "referencedDeclaration": 59380, 4783 "src": "6595:6:110", 4784 "typeDescriptions": { 4785 "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", 4786 "typeString": "function (address)" 4787 } 4788 }, 4789 "id": 59517, 4790 "isConstant": false, 4791 "isLValue": false, 4792 "isPure": false, 4793 "kind": "functionCall", 4794 "lValueRequested": false, 4795 "names": [], 4796 "nodeType": "FunctionCall", 4797 "src": "6595:18:110", 4798 "tryCall": false, 4799 "typeDescriptions": { 4800 "typeIdentifier": "t_tuple$__$", 4801 "typeString": "tuple()" 4802 } 4803 }, 4804 "id": 59518, 4805 "nodeType": "EmitStatement", 4806 "src": "6590:23:110" 4807 } 4808 ] 4809 }, 4810 "documentation": { 4811 "id": 59499, 4812 "nodeType": "StructuredDocumentation", 4813 "src": "6411:31:110", 4814 "text": "@notice Pauses withdrawals." 4815 }, 4816 "functionSelector": "8456cb59", 4817 "implemented": true, 4818 "kind": "function", 4819 "modifiers": [], 4820 "name": "pause", 4821 "nameLocation": "6456:5:110", 4822 "parameters": { 4823 "id": 59500, 4824 "nodeType": "ParameterList", 4825 "parameters": [], 4826 "src": "6461:2:110" 4827 }, 4828 "returnParameters": { 4829 "id": 59501, 4830 "nodeType": "ParameterList", 4831 "parameters": [], 4832 "src": "6473:0:110" 4833 }, 4834 "scope": 59997, 4835 "stateMutability": "nonpayable", 4836 "virtual": false, 4837 "visibility": "external" 4838 }, 4839 { 4840 "id": 59542, 4841 "nodeType": "FunctionDefinition", 4842 "src": "6664:180:110", 4843 "nodes": [], 4844 "body": { 4845 "id": 59541, 4846 "nodeType": "Block", 4847 "src": "6692:152:110", 4848 "nodes": [], 4849 "statements": [ 4850 { 4851 "expression": { 4852 "arguments": [ 4853 { 4854 "commonType": { 4855 "typeIdentifier": "t_address", 4856 "typeString": "address" 4857 }, 4858 "id": 59528, 4859 "isConstant": false, 4860 "isLValue": false, 4861 "isPure": false, 4862 "lValueRequested": false, 4863 "leftExpression": { 4864 "expression": { 4865 "id": 59525, 4866 "name": "msg", 4867 "nodeType": "Identifier", 4868 "overloadedDeclarations": [], 4869 "referencedDeclaration": -15, 4870 "src": "6710:3:110", 4871 "typeDescriptions": { 4872 "typeIdentifier": "t_magic_message", 4873 "typeString": "msg" 4874 } 4875 }, 4876 "id": 59526, 4877 "isConstant": false, 4878 "isLValue": false, 4879 "isPure": false, 4880 "lValueRequested": false, 4881 "memberName": "sender", 4882 "nodeType": "MemberAccess", 4883 "src": "6710:10:110", 4884 "typeDescriptions": { 4885 "typeIdentifier": "t_address", 4886 "typeString": "address" 4887 } 4888 }, 4889 "nodeType": "BinaryOperation", 4890 "operator": "==", 4891 "rightExpression": { 4892 "id": 59527, 4893 "name": "guardian", 4894 "nodeType": "Identifier", 4895 "overloadedDeclarations": [], 4896 "referencedDeclaration": 59348, 4897 "src": "6724:8:110", 4898 "typeDescriptions": { 4899 "typeIdentifier": "t_address", 4900 "typeString": "address" 4901 } 4902 }, 4903 "src": "6710:22:110", 4904 "typeDescriptions": { 4905 "typeIdentifier": "t_bool", 4906 "typeString": "bool" 4907 } 4908 }, 4909 { 4910 "hexValue": "4f7074696d69736d506f7274616c3a206f6e6c7920677561726469616e2063616e20756e7061757365", 4911 "id": 59529, 4912 "isConstant": false, 4913 "isLValue": false, 4914 "isPure": true, 4915 "kind": "string", 4916 "lValueRequested": false, 4917 "nodeType": "Literal", 4918 "src": "6734:43:110", 4919 "typeDescriptions": { 4920 "typeIdentifier": "t_stringliteral_9b69e94c34df6db33f20b596e1e1d19a7e5843e1b38ae4395fe1bbf64e89e262", 4921 "typeString": "literal_string \"OptimismPortal: only guardian can unpause\"" 4922 }, 4923 "value": "OptimismPortal: only guardian can unpause" 4924 } 4925 ], 4926 "expression": { 4927 "argumentTypes": [ 4928 { 4929 "typeIdentifier": "t_bool", 4930 "typeString": "bool" 4931 }, 4932 { 4933 "typeIdentifier": "t_stringliteral_9b69e94c34df6db33f20b596e1e1d19a7e5843e1b38ae4395fe1bbf64e89e262", 4934 "typeString": "literal_string \"OptimismPortal: only guardian can unpause\"" 4935 } 4936 ], 4937 "id": 59524, 4938 "name": "require", 4939 "nodeType": "Identifier", 4940 "overloadedDeclarations": [ 4941 -18, 4942 -18 4943 ], 4944 "referencedDeclaration": -18, 4945 "src": "6702:7:110", 4946 "typeDescriptions": { 4947 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", 4948 "typeString": "function (bool,string memory) pure" 4949 } 4950 }, 4951 "id": 59530, 4952 "isConstant": false, 4953 "isLValue": false, 4954 "isPure": false, 4955 "kind": "functionCall", 4956 "lValueRequested": false, 4957 "names": [], 4958 "nodeType": "FunctionCall", 4959 "src": "6702:76:110", 4960 "tryCall": false, 4961 "typeDescriptions": { 4962 "typeIdentifier": "t_tuple$__$", 4963 "typeString": "tuple()" 4964 } 4965 }, 4966 "id": 59531, 4967 "nodeType": "ExpressionStatement", 4968 "src": "6702:76:110" 4969 }, 4970 { 4971 "expression": { 4972 "id": 59534, 4973 "isConstant": false, 4974 "isLValue": false, 4975 "isPure": false, 4976 "lValueRequested": false, 4977 "leftHandSide": { 4978 "id": 59532, 4979 "name": "paused", 4980 "nodeType": "Identifier", 4981 "overloadedDeclarations": [], 4982 "referencedDeclaration": 59337, 4983 "src": "6788:6:110", 4984 "typeDescriptions": { 4985 "typeIdentifier": "t_bool", 4986 "typeString": "bool" 4987 } 4988 }, 4989 "nodeType": "Assignment", 4990 "operator": "=", 4991 "rightHandSide": { 4992 "hexValue": "66616c7365", 4993 "id": 59533, 4994 "isConstant": false, 4995 "isLValue": false, 4996 "isPure": true, 4997 "kind": "bool", 4998 "lValueRequested": false, 4999 "nodeType": "Literal", 5000 "src": "6797:5:110", 5001 "typeDescriptions": { 5002 "typeIdentifier": "t_bool", 5003 "typeString": "bool" 5004 }, 5005 "value": "false" 5006 }, 5007 "src": "6788:14:110", 5008 "typeDescriptions": { 5009 "typeIdentifier": "t_bool", 5010 "typeString": "bool" 5011 } 5012 }, 5013 "id": 59535, 5014 "nodeType": "ExpressionStatement", 5015 "src": "6788:14:110" 5016 }, 5017 { 5018 "eventCall": { 5019 "arguments": [ 5020 { 5021 "expression": { 5022 "id": 59537, 5023 "name": "msg", 5024 "nodeType": "Identifier", 5025 "overloadedDeclarations": [], 5026 "referencedDeclaration": -15, 5027 "src": "6826:3:110", 5028 "typeDescriptions": { 5029 "typeIdentifier": "t_magic_message", 5030 "typeString": "msg" 5031 } 5032 }, 5033 "id": 59538, 5034 "isConstant": false, 5035 "isLValue": false, 5036 "isPure": false, 5037 "lValueRequested": false, 5038 "memberName": "sender", 5039 "nodeType": "MemberAccess", 5040 "src": "6826:10:110", 5041 "typeDescriptions": { 5042 "typeIdentifier": "t_address", 5043 "typeString": "address" 5044 } 5045 } 5046 ], 5047 "expression": { 5048 "argumentTypes": [ 5049 { 5050 "typeIdentifier": "t_address", 5051 "typeString": "address" 5052 } 5053 ], 5054 "id": 59536, 5055 "name": "Unpaused", 5056 "nodeType": "Identifier", 5057 "overloadedDeclarations": [], 5058 "referencedDeclaration": 59385, 5059 "src": "6817:8:110", 5060 "typeDescriptions": { 5061 "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", 5062 "typeString": "function (address)" 5063 } 5064 }, 5065 "id": 59539, 5066 "isConstant": false, 5067 "isLValue": false, 5068 "isPure": false, 5069 "kind": "functionCall", 5070 "lValueRequested": false, 5071 "names": [], 5072 "nodeType": "FunctionCall", 5073 "src": "6817:20:110", 5074 "tryCall": false, 5075 "typeDescriptions": { 5076 "typeIdentifier": "t_tuple$__$", 5077 "typeString": "tuple()" 5078 } 5079 }, 5080 "id": 59540, 5081 "nodeType": "EmitStatement", 5082 "src": "6812:25:110" 5083 } 5084 ] 5085 }, 5086 "documentation": { 5087 "id": 59521, 5088 "nodeType": "StructuredDocumentation", 5089 "src": "6626:33:110", 5090 "text": "@notice Unpauses withdrawals." 5091 }, 5092 "functionSelector": "3f4ba83a", 5093 "implemented": true, 5094 "kind": "function", 5095 "modifiers": [], 5096 "name": "unpause", 5097 "nameLocation": "6673:7:110", 5098 "parameters": { 5099 "id": 59522, 5100 "nodeType": "ParameterList", 5101 "parameters": [], 5102 "src": "6680:2:110" 5103 }, 5104 "returnParameters": { 5105 "id": 59523, 5106 "nodeType": "ParameterList", 5107 "parameters": [], 5108 "src": "6692:0:110" 5109 }, 5110 "scope": 59997, 5111 "stateMutability": "nonpayable", 5112 "virtual": false, 5113 "visibility": "external" 5114 }, 5115 { 5116 "id": 59557, 5117 "nodeType": "FunctionDefinition", 5118 "src": "7337:120:110", 5119 "nodes": [], 5120 "body": { 5121 "id": 59556, 5122 "nodeType": "Block", 5123 "src": "7410:47:110", 5124 "nodes": [], 5125 "statements": [ 5126 { 5127 "expression": { 5128 "commonType": { 5129 "typeIdentifier": "t_uint64", 5130 "typeString": "uint64" 5131 }, 5132 "id": 59554, 5133 "isConstant": false, 5134 "isLValue": false, 5135 "isPure": false, 5136 "lValueRequested": false, 5137 "leftExpression": { 5138 "commonType": { 5139 "typeIdentifier": "t_uint64", 5140 "typeString": "uint64" 5141 }, 5142 "id": 59552, 5143 "isConstant": false, 5144 "isLValue": false, 5145 "isPure": false, 5146 "lValueRequested": false, 5147 "leftExpression": { 5148 "id": 59550, 5149 "name": "_byteCount", 5150 "nodeType": "Identifier", 5151 "overloadedDeclarations": [], 5152 "referencedDeclaration": 59545, 5153 "src": "7427:10:110", 5154 "typeDescriptions": { 5155 "typeIdentifier": "t_uint64", 5156 "typeString": "uint64" 5157 } 5158 }, 5159 "nodeType": "BinaryOperation", 5160 "operator": "*", 5161 "rightExpression": { 5162 "hexValue": "3136", 5163 "id": 59551, 5164 "isConstant": false, 5165 "isLValue": false, 5166 "isPure": true, 5167 "kind": "number", 5168 "lValueRequested": false, 5169 "nodeType": "Literal", 5170 "src": "7440:2:110", 5171 "typeDescriptions": { 5172 "typeIdentifier": "t_rational_16_by_1", 5173 "typeString": "int_const 16" 5174 }, 5175 "value": "16" 5176 }, 5177 "src": "7427:15:110", 5178 "typeDescriptions": { 5179 "typeIdentifier": "t_uint64", 5180 "typeString": "uint64" 5181 } 5182 }, 5183 "nodeType": "BinaryOperation", 5184 "operator": "+", 5185 "rightExpression": { 5186 "hexValue": "3231303030", 5187 "id": 59553, 5188 "isConstant": false, 5189 "isLValue": false, 5190 "isPure": true, 5191 "kind": "number", 5192 "lValueRequested": false, 5193 "nodeType": "Literal", 5194 "src": "7445:5:110", 5195 "typeDescriptions": { 5196 "typeIdentifier": "t_rational_21000_by_1", 5197 "typeString": "int_const 21000" 5198 }, 5199 "value": "21000" 5200 }, 5201 "src": "7427:23:110", 5202 "typeDescriptions": { 5203 "typeIdentifier": "t_uint64", 5204 "typeString": "uint64" 5205 } 5206 }, 5207 "functionReturnParameters": 59549, 5208 "id": 59555, 5209 "nodeType": "Return", 5210 "src": "7420:30:110" 5211 } 5212 ] 5213 }, 5214 "documentation": { 5215 "id": 59543, 5216 "nodeType": "StructuredDocumentation", 5217 "src": "6850:482:110", 5218 "text": "@notice Computes the minimum gas limit for a deposit.\n The minimum gas limit linearly increases based on the size of the calldata.\n This is to prevent users from creating L2 resource usage without paying for it.\n This function can be used when interacting with the portal to ensure forwards\n compatibility.\n @param _byteCount Number of bytes in the calldata.\n @return The minimum gas limit for a deposit." 5219 }, 5220 "functionSelector": "a35d99df", 5221 "implemented": true, 5222 "kind": "function", 5223 "modifiers": [], 5224 "name": "minimumGasLimit", 5225 "nameLocation": "7346:15:110", 5226 "parameters": { 5227 "id": 59546, 5228 "nodeType": "ParameterList", 5229 "parameters": [ 5230 { 5231 "constant": false, 5232 "id": 59545, 5233 "mutability": "mutable", 5234 "name": "_byteCount", 5235 "nameLocation": "7369:10:110", 5236 "nodeType": "VariableDeclaration", 5237 "scope": 59557, 5238 "src": "7362:17:110", 5239 "stateVariable": false, 5240 "storageLocation": "default", 5241 "typeDescriptions": { 5242 "typeIdentifier": "t_uint64", 5243 "typeString": "uint64" 5244 }, 5245 "typeName": { 5246 "id": 59544, 5247 "name": "uint64", 5248 "nodeType": "ElementaryTypeName", 5249 "src": "7362:6:110", 5250 "typeDescriptions": { 5251 "typeIdentifier": "t_uint64", 5252 "typeString": "uint64" 5253 } 5254 }, 5255 "visibility": "internal" 5256 } 5257 ], 5258 "src": "7361:19:110" 5259 }, 5260 "returnParameters": { 5261 "id": 59549, 5262 "nodeType": "ParameterList", 5263 "parameters": [ 5264 { 5265 "constant": false, 5266 "id": 59548, 5267 "mutability": "mutable", 5268 "name": "", 5269 "nameLocation": "-1:-1:-1", 5270 "nodeType": "VariableDeclaration", 5271 "scope": 59557, 5272 "src": "7402:6:110", 5273 "stateVariable": false, 5274 "storageLocation": "default", 5275 "typeDescriptions": { 5276 "typeIdentifier": "t_uint64", 5277 "typeString": "uint64" 5278 }, 5279 "typeName": { 5280 "id": 59547, 5281 "name": "uint64", 5282 "nodeType": "ElementaryTypeName", 5283 "src": "7402:6:110", 5284 "typeDescriptions": { 5285 "typeIdentifier": "t_uint64", 5286 "typeString": "uint64" 5287 } 5288 }, 5289 "visibility": "internal" 5290 } 5291 ], 5292 "src": "7401:8:110" 5293 }, 5294 "scope": 59997, 5295 "stateMutability": "pure", 5296 "virtual": false, 5297 "visibility": "public" 5298 }, 5299 { 5300 "id": 59575, 5301 "nodeType": "FunctionDefinition", 5302 "src": "7878:130:110", 5303 "nodes": [], 5304 "body": { 5305 "id": 59574, 5306 "nodeType": "Block", 5307 "src": "7905:103:110", 5308 "nodes": [], 5309 "statements": [ 5310 { 5311 "expression": { 5312 "arguments": [ 5313 { 5314 "expression": { 5315 "id": 59562, 5316 "name": "msg", 5317 "nodeType": "Identifier", 5318 "overloadedDeclarations": [], 5319 "referencedDeclaration": -15, 5320 "src": "7934:3:110", 5321 "typeDescriptions": { 5322 "typeIdentifier": "t_magic_message", 5323 "typeString": "msg" 5324 } 5325 }, 5326 "id": 59563, 5327 "isConstant": false, 5328 "isLValue": false, 5329 "isPure": false, 5330 "lValueRequested": false, 5331 "memberName": "sender", 5332 "nodeType": "MemberAccess", 5333 "src": "7934:10:110", 5334 "typeDescriptions": { 5335 "typeIdentifier": "t_address", 5336 "typeString": "address" 5337 } 5338 }, 5339 { 5340 "expression": { 5341 "id": 59564, 5342 "name": "msg", 5343 "nodeType": "Identifier", 5344 "overloadedDeclarations": [], 5345 "referencedDeclaration": -15, 5346 "src": "7946:3:110", 5347 "typeDescriptions": { 5348 "typeIdentifier": "t_magic_message", 5349 "typeString": "msg" 5350 } 5351 }, 5352 "id": 59565, 5353 "isConstant": false, 5354 "isLValue": false, 5355 "isPure": false, 5356 "lValueRequested": false, 5357 "memberName": "value", 5358 "nodeType": "MemberAccess", 5359 "src": "7946:9:110", 5360 "typeDescriptions": { 5361 "typeIdentifier": "t_uint256", 5362 "typeString": "uint256" 5363 } 5364 }, 5365 { 5366 "id": 59566, 5367 "name": "RECEIVE_DEFAULT_GAS_LIMIT", 5368 "nodeType": "Identifier", 5369 "overloadedDeclarations": [], 5370 "referencedDeclaration": 59320, 5371 "src": "7957:25:110", 5372 "typeDescriptions": { 5373 "typeIdentifier": "t_uint64", 5374 "typeString": "uint64" 5375 } 5376 }, 5377 { 5378 "hexValue": "66616c7365", 5379 "id": 59567, 5380 "isConstant": false, 5381 "isLValue": false, 5382 "isPure": true, 5383 "kind": "bool", 5384 "lValueRequested": false, 5385 "nodeType": "Literal", 5386 "src": "7984:5:110", 5387 "typeDescriptions": { 5388 "typeIdentifier": "t_bool", 5389 "typeString": "bool" 5390 }, 5391 "value": "false" 5392 }, 5393 { 5394 "arguments": [ 5395 { 5396 "hexValue": "", 5397 "id": 59570, 5398 "isConstant": false, 5399 "isLValue": false, 5400 "isPure": true, 5401 "kind": "string", 5402 "lValueRequested": false, 5403 "nodeType": "Literal", 5404 "src": "7997:2:110", 5405 "typeDescriptions": { 5406 "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", 5407 "typeString": "literal_string \"\"" 5408 }, 5409 "value": "" 5410 } 5411 ], 5412 "expression": { 5413 "argumentTypes": [ 5414 { 5415 "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", 5416 "typeString": "literal_string \"\"" 5417 } 5418 ], 5419 "id": 59569, 5420 "isConstant": false, 5421 "isLValue": false, 5422 "isPure": true, 5423 "lValueRequested": false, 5424 "nodeType": "ElementaryTypeNameExpression", 5425 "src": "7991:5:110", 5426 "typeDescriptions": { 5427 "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", 5428 "typeString": "type(bytes storage pointer)" 5429 }, 5430 "typeName": { 5431 "id": 59568, 5432 "name": "bytes", 5433 "nodeType": "ElementaryTypeName", 5434 "src": "7991:5:110", 5435 "typeDescriptions": {} 5436 } 5437 }, 5438 "id": 59571, 5439 "isConstant": false, 5440 "isLValue": false, 5441 "isPure": true, 5442 "kind": "typeConversion", 5443 "lValueRequested": false, 5444 "names": [], 5445 "nodeType": "FunctionCall", 5446 "src": "7991:9:110", 5447 "tryCall": false, 5448 "typeDescriptions": { 5449 "typeIdentifier": "t_bytes_memory_ptr", 5450 "typeString": "bytes memory" 5451 } 5452 } 5453 ], 5454 "expression": { 5455 "argumentTypes": [ 5456 { 5457 "typeIdentifier": "t_address", 5458 "typeString": "address" 5459 }, 5460 { 5461 "typeIdentifier": "t_uint256", 5462 "typeString": "uint256" 5463 }, 5464 { 5465 "typeIdentifier": "t_uint64", 5466 "typeString": "uint64" 5467 }, 5468 { 5469 "typeIdentifier": "t_bool", 5470 "typeString": "bool" 5471 }, 5472 { 5473 "typeIdentifier": "t_bytes_memory_ptr", 5474 "typeString": "bytes memory" 5475 } 5476 ], 5477 "id": 59561, 5478 "name": "depositTransaction", 5479 "nodeType": "Identifier", 5480 "overloadedDeclarations": [], 5481 "referencedDeclaration": 59961, 5482 "src": "7915:18:110", 5483 "typeDescriptions": { 5484 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint64_$_t_bool_$_t_bytes_memory_ptr_$returns$__$", 5485 "typeString": "function (address,uint256,uint64,bool,bytes memory)" 5486 } 5487 }, 5488 "id": 59572, 5489 "isConstant": false, 5490 "isLValue": false, 5491 "isPure": false, 5492 "kind": "functionCall", 5493 "lValueRequested": false, 5494 "names": [], 5495 "nodeType": "FunctionCall", 5496 "src": "7915:86:110", 5497 "tryCall": false, 5498 "typeDescriptions": { 5499 "typeIdentifier": "t_tuple$__$", 5500 "typeString": "tuple()" 5501 } 5502 }, 5503 "id": 59573, 5504 "nodeType": "ExpressionStatement", 5505 "src": "7915:86:110" 5506 } 5507 ] 5508 }, 5509 "documentation": { 5510 "id": 59558, 5511 "nodeType": "StructuredDocumentation", 5512 "src": "7463:368:110", 5513 "text": "@notice Accepts value so that users can send ETH directly to this contract and have the\n funds be deposited to their address on L2. This is intended as a convenience\n function for EOAs. Contracts should call the depositTransaction() function directly\n otherwise any deposited funds will be lost due to address aliasing." 5514 }, 5515 "implemented": true, 5516 "kind": "receive", 5517 "modifiers": [], 5518 "name": "", 5519 "nameLocation": "-1:-1:-1", 5520 "parameters": { 5521 "id": 59559, 5522 "nodeType": "ParameterList", 5523 "parameters": [], 5524 "src": "7885:2:110" 5525 }, 5526 "returnParameters": { 5527 "id": 59560, 5528 "nodeType": "ParameterList", 5529 "parameters": [], 5530 "src": "7905:0:110" 5531 }, 5532 "scope": 59997, 5533 "stateMutability": "payable", 5534 "virtual": false, 5535 "visibility": "external" 5536 }, 5537 { 5538 "id": 59580, 5539 "nodeType": "FunctionDefinition", 5540 "src": "8222:77:110", 5541 "nodes": [], 5542 "body": { 5543 "id": 59579, 5544 "nodeType": "Block", 5545 "src": "8260:39:110", 5546 "nodes": [], 5547 "statements": [] 5548 }, 5549 "documentation": { 5550 "id": 59576, 5551 "nodeType": "StructuredDocumentation", 5552 "src": "8014:203:110", 5553 "text": "@notice Accepts ETH value without triggering a deposit to L2.\n This function mainly exists for the sake of the migration between the legacy\n Optimism system and Bedrock." 5554 }, 5555 "functionSelector": "8b4c40b0", 5556 "implemented": true, 5557 "kind": "function", 5558 "modifiers": [], 5559 "name": "donateETH", 5560 "nameLocation": "8231:9:110", 5561 "parameters": { 5562 "id": 59577, 5563 "nodeType": "ParameterList", 5564 "parameters": [], 5565 "src": "8240:2:110" 5566 }, 5567 "returnParameters": { 5568 "id": 59578, 5569 "nodeType": "ParameterList", 5570 "parameters": [], 5571 "src": "8260:0:110" 5572 }, 5573 "scope": 59997, 5574 "stateMutability": "payable", 5575 "virtual": false, 5576 "visibility": "external" 5577 }, 5578 { 5579 "id": 59593, 5580 "nodeType": "FunctionDefinition", 5581 "src": "8548:152:110", 5582 "nodes": [], 5583 "body": { 5584 "id": 59592, 5585 "nodeType": "Block", 5586 "src": "8647:53:110", 5587 "nodes": [], 5588 "statements": [ 5589 { 5590 "expression": { 5591 "arguments": [], 5592 "expression": { 5593 "argumentTypes": [], 5594 "expression": { 5595 "id": 59588, 5596 "name": "systemConfig", 5597 "nodeType": "Identifier", 5598 "overloadedDeclarations": [], 5599 "referencedDeclaration": 59345, 5600 "src": "8664:12:110", 5601 "typeDescriptions": { 5602 "typeIdentifier": "t_contract$_SystemConfig_$61393", 5603 "typeString": "contract SystemConfig" 5604 } 5605 }, 5606 "id": 59589, 5607 "isConstant": false, 5608 "isLValue": false, 5609 "isPure": false, 5610 "lValueRequested": false, 5611 "memberName": "resourceConfig", 5612 "nodeType": "MemberAccess", 5613 "referencedDeclaration": 61313, 5614 "src": "8664:27:110", 5615 "typeDescriptions": { 5616 "typeIdentifier": "t_function_external_view$__$returns$_t_struct$_ResourceConfig_$60283_memory_ptr_$", 5617 "typeString": "function () view external returns (struct ResourceMetering.ResourceConfig memory)" 5618 } 5619 }, 5620 "id": 59590, 5621 "isConstant": false, 5622 "isLValue": false, 5623 "isPure": false, 5624 "kind": "functionCall", 5625 "lValueRequested": false, 5626 "names": [], 5627 "nodeType": "FunctionCall", 5628 "src": "8664:29:110", 5629 "tryCall": false, 5630 "typeDescriptions": { 5631 "typeIdentifier": "t_struct$_ResourceConfig_$60283_memory_ptr", 5632 "typeString": "struct ResourceMetering.ResourceConfig memory" 5633 } 5634 }, 5635 "functionReturnParameters": 59587, 5636 "id": 59591, 5637 "nodeType": "Return", 5638 "src": "8657:36:110" 5639 } 5640 ] 5641 }, 5642 "baseFunctions": [ 5643 60579 5644 ], 5645 "documentation": { 5646 "id": 59581, 5647 "nodeType": "StructuredDocumentation", 5648 "src": "8305:238:110", 5649 "text": "@notice Getter for the resource config.\n Used internally by the ResourceMetering contract.\n The SystemConfig is the source of truth for the resource config.\n @return ResourceMetering ResourceConfig" 5650 }, 5651 "implemented": true, 5652 "kind": "function", 5653 "modifiers": [], 5654 "name": "_resourceConfig", 5655 "nameLocation": "8557:15:110", 5656 "overrides": { 5657 "id": 59583, 5658 "nodeType": "OverrideSpecifier", 5659 "overrides": [], 5660 "src": "8589:8:110" 5661 }, 5662 "parameters": { 5663 "id": 59582, 5664 "nodeType": "ParameterList", 5665 "parameters": [], 5666 "src": "8572:2:110" 5667 }, 5668 "returnParameters": { 5669 "id": 59587, 5670 "nodeType": "ParameterList", 5671 "parameters": [ 5672 { 5673 "constant": false, 5674 "id": 59586, 5675 "mutability": "mutable", 5676 "name": "", 5677 "nameLocation": "-1:-1:-1", 5678 "nodeType": "VariableDeclaration", 5679 "scope": 59593, 5680 "src": "8607:38:110", 5681 "stateVariable": false, 5682 "storageLocation": "memory", 5683 "typeDescriptions": { 5684 "typeIdentifier": "t_struct$_ResourceConfig_$60283_memory_ptr", 5685 "typeString": "struct ResourceMetering.ResourceConfig" 5686 }, 5687 "typeName": { 5688 "id": 59585, 5689 "nodeType": "UserDefinedTypeName", 5690 "pathNode": { 5691 "id": 59584, 5692 "name": "ResourceMetering.ResourceConfig", 5693 "nodeType": "IdentifierPath", 5694 "referencedDeclaration": 60283, 5695 "src": "8607:31:110" 5696 }, 5697 "referencedDeclaration": 60283, 5698 "src": "8607:31:110", 5699 "typeDescriptions": { 5700 "typeIdentifier": "t_struct$_ResourceConfig_$60283_storage_ptr", 5701 "typeString": "struct ResourceMetering.ResourceConfig" 5702 } 5703 }, 5704 "visibility": "internal" 5705 } 5706 ], 5707 "src": "8606:40:110" 5708 }, 5709 "scope": 59997, 5710 "stateMutability": "view", 5711 "virtual": false, 5712 "visibility": "internal" 5713 }, 5714 { 5715 "id": 59725, 5716 "nodeType": "FunctionDefinition", 5717 "src": "9088:3746:110", 5718 "nodes": [], 5719 "body": { 5720 "id": 59724, 5721 "nodeType": "Block", 5722 "src": "9353:3481:110", 5723 "nodes": [], 5724 "statements": [ 5725 { 5726 "expression": { 5727 "arguments": [ 5728 { 5729 "commonType": { 5730 "typeIdentifier": "t_address", 5731 "typeString": "address" 5732 }, 5733 "id": 59617, 5734 "isConstant": false, 5735 "isLValue": false, 5736 "isPure": false, 5737 "lValueRequested": false, 5738 "leftExpression": { 5739 "expression": { 5740 "id": 59611, 5741 "name": "_tx", 5742 "nodeType": "Identifier", 5743 "overloadedDeclarations": [], 5744 "referencedDeclaration": 59597, 5745 "src": "9598:3:110", 5746 "typeDescriptions": { 5747 "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr", 5748 "typeString": "struct Types.WithdrawalTransaction memory" 5749 } 5750 }, 5751 "id": 59612, 5752 "isConstant": false, 5753 "isLValue": true, 5754 "isPure": false, 5755 "lValueRequested": false, 5756 "memberName": "target", 5757 "nodeType": "MemberAccess", 5758 "referencedDeclaration": 70587, 5759 "src": "9598:10:110", 5760 "typeDescriptions": { 5761 "typeIdentifier": "t_address", 5762 "typeString": "address" 5763 } 5764 }, 5765 "nodeType": "BinaryOperation", 5766 "operator": "!=", 5767 "rightExpression": { 5768 "arguments": [ 5769 { 5770 "id": 59615, 5771 "name": "this", 5772 "nodeType": "Identifier", 5773 "overloadedDeclarations": [], 5774 "referencedDeclaration": -28, 5775 "src": "9620:4:110", 5776 "typeDescriptions": { 5777 "typeIdentifier": "t_contract$_OptimismPortal_$59997", 5778 "typeString": "contract OptimismPortal" 5779 } 5780 } 5781 ], 5782 "expression": { 5783 "argumentTypes": [ 5784 { 5785 "typeIdentifier": "t_contract$_OptimismPortal_$59997", 5786 "typeString": "contract OptimismPortal" 5787 } 5788 ], 5789 "id": 59614, 5790 "isConstant": false, 5791 "isLValue": false, 5792 "isPure": true, 5793 "lValueRequested": false, 5794 "nodeType": "ElementaryTypeNameExpression", 5795 "src": "9612:7:110", 5796 "typeDescriptions": { 5797 "typeIdentifier": "t_type$_t_address_$", 5798 "typeString": "type(address)" 5799 }, 5800 "typeName": { 5801 "id": 59613, 5802 "name": "address", 5803 "nodeType": "ElementaryTypeName", 5804 "src": "9612:7:110", 5805 "typeDescriptions": {} 5806 } 5807 }, 5808 "id": 59616, 5809 "isConstant": false, 5810 "isLValue": false, 5811 "isPure": false, 5812 "kind": "typeConversion", 5813 "lValueRequested": false, 5814 "names": [], 5815 "nodeType": "FunctionCall", 5816 "src": "9612:13:110", 5817 "tryCall": false, 5818 "typeDescriptions": { 5819 "typeIdentifier": "t_address", 5820 "typeString": "address" 5821 } 5822 }, 5823 "src": "9598:27:110", 5824 "typeDescriptions": { 5825 "typeIdentifier": "t_bool", 5826 "typeString": "bool" 5827 } 5828 }, 5829 { 5830 "hexValue": "4f7074696d69736d506f7274616c3a20796f752063616e6e6f742073656e64206d6573736167657320746f2074686520706f7274616c20636f6e7472616374", 5831 "id": 59618, 5832 "isConstant": false, 5833 "isLValue": false, 5834 "isPure": true, 5835 "kind": "string", 5836 "lValueRequested": false, 5837 "nodeType": "Literal", 5838 "src": "9627:65:110", 5839 "typeDescriptions": { 5840 "typeIdentifier": "t_stringliteral_57e41062e2e7b97ddf730827f5249d28f602a3846dfe107ce36292fb1c029eb8", 5841 "typeString": "literal_string \"OptimismPortal: you cannot send messages to the portal contract\"" 5842 }, 5843 "value": "OptimismPortal: you cannot send messages to the portal contract" 5844 } 5845 ], 5846 "expression": { 5847 "argumentTypes": [ 5848 { 5849 "typeIdentifier": "t_bool", 5850 "typeString": "bool" 5851 }, 5852 { 5853 "typeIdentifier": "t_stringliteral_57e41062e2e7b97ddf730827f5249d28f602a3846dfe107ce36292fb1c029eb8", 5854 "typeString": "literal_string \"OptimismPortal: you cannot send messages to the portal contract\"" 5855 } 5856 ], 5857 "id": 59610, 5858 "name": "require", 5859 "nodeType": "Identifier", 5860 "overloadedDeclarations": [ 5861 -18, 5862 -18 5863 ], 5864 "referencedDeclaration": -18, 5865 "src": "9590:7:110", 5866 "typeDescriptions": { 5867 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", 5868 "typeString": "function (bool,string memory) pure" 5869 } 5870 }, 5871 "id": 59619, 5872 "isConstant": false, 5873 "isLValue": false, 5874 "isPure": false, 5875 "kind": "functionCall", 5876 "lValueRequested": false, 5877 "names": [], 5878 "nodeType": "FunctionCall", 5879 "src": "9590:103:110", 5880 "tryCall": false, 5881 "typeDescriptions": { 5882 "typeIdentifier": "t_tuple$__$", 5883 "typeString": "tuple()" 5884 } 5885 }, 5886 "id": 59620, 5887 "nodeType": "ExpressionStatement", 5888 "src": "9590:103:110" 5889 }, 5890 { 5891 "assignments": [ 5892 59622 5893 ], 5894 "declarations": [ 5895 { 5896 "constant": false, 5897 "id": 59622, 5898 "mutability": "mutable", 5899 "name": "outputRoot", 5900 "nameLocation": "9878:10:110", 5901 "nodeType": "VariableDeclaration", 5902 "scope": 59724, 5903 "src": "9870:18:110", 5904 "stateVariable": false, 5905 "storageLocation": "default", 5906 "typeDescriptions": { 5907 "typeIdentifier": "t_bytes32", 5908 "typeString": "bytes32" 5909 }, 5910 "typeName": { 5911 "id": 59621, 5912 "name": "bytes32", 5913 "nodeType": "ElementaryTypeName", 5914 "src": "9870:7:110", 5915 "typeDescriptions": { 5916 "typeIdentifier": "t_bytes32", 5917 "typeString": "bytes32" 5918 } 5919 }, 5920 "visibility": "internal" 5921 } 5922 ], 5923 "id": 59628, 5924 "initialValue": { 5925 "expression": { 5926 "arguments": [ 5927 { 5928 "id": 59625, 5929 "name": "_l2OutputIndex", 5930 "nodeType": "Identifier", 5931 "overloadedDeclarations": [], 5932 "referencedDeclaration": 59599, 5933 "src": "9912:14:110", 5934 "typeDescriptions": { 5935 "typeIdentifier": "t_uint256", 5936 "typeString": "uint256" 5937 } 5938 } 5939 ], 5940 "expression": { 5941 "argumentTypes": [ 5942 { 5943 "typeIdentifier": "t_uint256", 5944 "typeString": "uint256" 5945 } 5946 ], 5947 "expression": { 5948 "id": 59623, 5949 "name": "l2Oracle", 5950 "nodeType": "Identifier", 5951 "overloadedDeclarations": [], 5952 "referencedDeclaration": 59341, 5953 "src": "9891:8:110", 5954 "typeDescriptions": { 5955 "typeIdentifier": "t_contract$_L2OutputOracle_$59272", 5956 "typeString": "contract L2OutputOracle" 5957 } 5958 }, 5959 "id": 59624, 5960 "isConstant": false, 5961 "isLValue": false, 5962 "isPure": false, 5963 "lValueRequested": false, 5964 "memberName": "getL2Output", 5965 "nodeType": "MemberAccess", 5966 "referencedDeclaration": 59112, 5967 "src": "9891:20:110", 5968 "typeDescriptions": { 5969 "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_OutputProposal_$70553_memory_ptr_$", 5970 "typeString": "function (uint256) view external returns (struct Types.OutputProposal memory)" 5971 } 5972 }, 5973 "id": 59626, 5974 "isConstant": false, 5975 "isLValue": false, 5976 "isPure": false, 5977 "kind": "functionCall", 5978 "lValueRequested": false, 5979 "names": [], 5980 "nodeType": "FunctionCall", 5981 "src": "9891:36:110", 5982 "tryCall": false, 5983 "typeDescriptions": { 5984 "typeIdentifier": "t_struct$_OutputProposal_$70553_memory_ptr", 5985 "typeString": "struct Types.OutputProposal memory" 5986 } 5987 }, 5988 "id": 59627, 5989 "isConstant": false, 5990 "isLValue": true, 5991 "isPure": false, 5992 "lValueRequested": false, 5993 "memberName": "outputRoot", 5994 "nodeType": "MemberAccess", 5995 "referencedDeclaration": 70548, 5996 "src": "9891:47:110", 5997 "typeDescriptions": { 5998 "typeIdentifier": "t_bytes32", 5999 "typeString": "bytes32" 6000 } 6001 }, 6002 "nodeType": "VariableDeclarationStatement", 6003 "src": "9870:68:110" 6004 }, 6005 { 6006 "expression": { 6007 "arguments": [ 6008 { 6009 "commonType": { 6010 "typeIdentifier": "t_bytes32", 6011 "typeString": "bytes32" 6012 }, 6013 "id": 59635, 6014 "isConstant": false, 6015 "isLValue": false, 6016 "isPure": false, 6017 "lValueRequested": false, 6018 "leftExpression": { 6019 "id": 59630, 6020 "name": "outputRoot", 6021 "nodeType": "Identifier", 6022 "overloadedDeclarations": [], 6023 "referencedDeclaration": 59622, 6024 "src": "10058:10:110", 6025 "typeDescriptions": { 6026 "typeIdentifier": "t_bytes32", 6027 "typeString": "bytes32" 6028 } 6029 }, 6030 "nodeType": "BinaryOperation", 6031 "operator": "==", 6032 "rightExpression": { 6033 "arguments": [ 6034 { 6035 "id": 59633, 6036 "name": "_outputRootProof", 6037 "nodeType": "Identifier", 6038 "overloadedDeclarations": [], 6039 "referencedDeclaration": 59602, 6040 "src": "10100:16:110", 6041 "typeDescriptions": { 6042 "typeIdentifier": "t_struct$_OutputRootProof_$70562_calldata_ptr", 6043 "typeString": "struct Types.OutputRootProof calldata" 6044 } 6045 } 6046 ], 6047 "expression": { 6048 "argumentTypes": [ 6049 { 6050 "typeIdentifier": "t_struct$_OutputRootProof_$70562_calldata_ptr", 6051 "typeString": "struct Types.OutputRootProof calldata" 6052 } 6053 ], 6054 "expression": { 6055 "id": 59631, 6056 "name": "Hashing", 6057 "nodeType": "Identifier", 6058 "overloadedDeclarations": [], 6059 "referencedDeclaration": 70279, 6060 "src": "10072:7:110", 6061 "typeDescriptions": { 6062 "typeIdentifier": "t_type$_t_contract$_Hashing_$70279_$", 6063 "typeString": "type(library Hashing)" 6064 } 6065 }, 6066 "id": 59632, 6067 "isConstant": false, 6068 "isLValue": false, 6069 "isPure": false, 6070 "lValueRequested": false, 6071 "memberName": "hashOutputRootProof", 6072 "nodeType": "MemberAccess", 6073 "referencedDeclaration": 70278, 6074 "src": "10072:27:110", 6075 "typeDescriptions": { 6076 "typeIdentifier": "t_function_internal_pure$_t_struct$_OutputRootProof_$70562_memory_ptr_$returns$_t_bytes32_$", 6077 "typeString": "function (struct Types.OutputRootProof memory) pure returns (bytes32)" 6078 } 6079 }, 6080 "id": 59634, 6081 "isConstant": false, 6082 "isLValue": false, 6083 "isPure": false, 6084 "kind": "functionCall", 6085 "lValueRequested": false, 6086 "names": [], 6087 "nodeType": "FunctionCall", 6088 "src": "10072:45:110", 6089 "tryCall": false, 6090 "typeDescriptions": { 6091 "typeIdentifier": "t_bytes32", 6092 "typeString": "bytes32" 6093 } 6094 }, 6095 "src": "10058:59:110", 6096 "typeDescriptions": { 6097 "typeIdentifier": "t_bool", 6098 "typeString": "bool" 6099 } 6100 }, 6101 { 6102 "hexValue": "4f7074696d69736d506f7274616c3a20696e76616c6964206f757470757420726f6f742070726f6f66", 6103 "id": 59636, 6104 "isConstant": false, 6105 "isLValue": false, 6106 "isPure": true, 6107 "kind": "string", 6108 "lValueRequested": false, 6109 "nodeType": "Literal", 6110 "src": "10119:43:110", 6111 "typeDescriptions": { 6112 "typeIdentifier": "t_stringliteral_490ec653897228799e7e4c4af8b1fd3b4a0688df98d026b46afa352ce9876996", 6113 "typeString": "literal_string \"OptimismPortal: invalid output root proof\"" 6114 }, 6115 "value": "OptimismPortal: invalid output root proof" 6116 } 6117 ], 6118 "expression": { 6119 "argumentTypes": [ 6120 { 6121 "typeIdentifier": "t_bool", 6122 "typeString": "bool" 6123 }, 6124 { 6125 "typeIdentifier": "t_stringliteral_490ec653897228799e7e4c4af8b1fd3b4a0688df98d026b46afa352ce9876996", 6126 "typeString": "literal_string \"OptimismPortal: invalid output root proof\"" 6127 } 6128 ], 6129 "id": 59629, 6130 "name": "require", 6131 "nodeType": "Identifier", 6132 "overloadedDeclarations": [ 6133 -18, 6134 -18 6135 ], 6136 "referencedDeclaration": -18, 6137 "src": "10037:7:110", 6138 "typeDescriptions": { 6139 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", 6140 "typeString": "function (bool,string memory) pure" 6141 } 6142 }, 6143 "id": 59637, 6144 "isConstant": false, 6145 "isLValue": false, 6146 "isPure": false, 6147 "kind": "functionCall", 6148 "lValueRequested": false, 6149 "names": [], 6150 "nodeType": "FunctionCall", 6151 "src": "10037:135:110", 6152 "tryCall": false, 6153 "typeDescriptions": { 6154 "typeIdentifier": "t_tuple$__$", 6155 "typeString": "tuple()" 6156 } 6157 }, 6158 "id": 59638, 6159 "nodeType": "ExpressionStatement", 6160 "src": "10037:135:110" 6161 }, 6162 { 6163 "assignments": [ 6164 59640 6165 ], 6166 "declarations": [ 6167 { 6168 "constant": false, 6169 "id": 59640, 6170 "mutability": "mutable", 6171 "name": "withdrawalHash", 6172 "nameLocation": "10291:14:110", 6173 "nodeType": "VariableDeclaration", 6174 "scope": 59724, 6175 "src": "10283:22:110", 6176 "stateVariable": false, 6177 "storageLocation": "default", 6178 "typeDescriptions": { 6179 "typeIdentifier": "t_bytes32", 6180 "typeString": "bytes32" 6181 }, 6182 "typeName": { 6183 "id": 59639, 6184 "name": "bytes32", 6185 "nodeType": "ElementaryTypeName", 6186 "src": "10283:7:110", 6187 "typeDescriptions": { 6188 "typeIdentifier": "t_bytes32", 6189 "typeString": "bytes32" 6190 } 6191 }, 6192 "visibility": "internal" 6193 } 6194 ], 6195 "id": 59645, 6196 "initialValue": { 6197 "arguments": [ 6198 { 6199 "id": 59643, 6200 "name": "_tx", 6201 "nodeType": "Identifier", 6202 "overloadedDeclarations": [], 6203 "referencedDeclaration": 59597, 6204 "src": "10331:3:110", 6205 "typeDescriptions": { 6206 "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr", 6207 "typeString": "struct Types.WithdrawalTransaction memory" 6208 } 6209 } 6210 ], 6211 "expression": { 6212 "argumentTypes": [ 6213 { 6214 "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr", 6215 "typeString": "struct Types.WithdrawalTransaction memory" 6216 } 6217 ], 6218 "expression": { 6219 "id": 59641, 6220 "name": "Hashing", 6221 "nodeType": "Identifier", 6222 "overloadedDeclarations": [], 6223 "referencedDeclaration": 70279, 6224 "src": "10308:7:110", 6225 "typeDescriptions": { 6226 "typeIdentifier": "t_type$_t_contract$_Hashing_$70279_$", 6227 "typeString": "type(library Hashing)" 6228 } 6229 }, 6230 "id": 59642, 6231 "isConstant": false, 6232 "isLValue": false, 6233 "isPure": false, 6234 "lValueRequested": false, 6235 "memberName": "hashWithdrawal", 6236 "nodeType": "MemberAccess", 6237 "referencedDeclaration": 70254, 6238 "src": "10308:22:110", 6239 "typeDescriptions": { 6240 "typeIdentifier": "t_function_internal_pure$_t_struct$_WithdrawalTransaction_$70594_memory_ptr_$returns$_t_bytes32_$", 6241 "typeString": "function (struct Types.WithdrawalTransaction memory) pure returns (bytes32)" 6242 } 6243 }, 6244 "id": 59644, 6245 "isConstant": false, 6246 "isLValue": false, 6247 "isPure": false, 6248 "kind": "functionCall", 6249 "lValueRequested": false, 6250 "names": [], 6251 "nodeType": "FunctionCall", 6252 "src": "10308:27:110", 6253 "tryCall": false, 6254 "typeDescriptions": { 6255 "typeIdentifier": "t_bytes32", 6256 "typeString": "bytes32" 6257 } 6258 }, 6259 "nodeType": "VariableDeclarationStatement", 6260 "src": "10283:52:110" 6261 }, 6262 { 6263 "assignments": [ 6264 59648 6265 ], 6266 "declarations": [ 6267 { 6268 "constant": false, 6269 "id": 59648, 6270 "mutability": "mutable", 6271 "name": "provenWithdrawal", 6272 "nameLocation": "10369:16:110", 6273 "nodeType": "VariableDeclaration", 6274 "scope": 59724, 6275 "src": "10345:40:110", 6276 "stateVariable": false, 6277 "storageLocation": "memory", 6278 "typeDescriptions": { 6279 "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr", 6280 "typeString": "struct OptimismPortal.ProvenWithdrawal" 6281 }, 6282 "typeName": { 6283 "id": 59647, 6284 "nodeType": "UserDefinedTypeName", 6285 "pathNode": { 6286 "id": 59646, 6287 "name": "ProvenWithdrawal", 6288 "nodeType": "IdentifierPath", 6289 "referencedDeclaration": 59312, 6290 "src": "10345:16:110" 6291 }, 6292 "referencedDeclaration": 59312, 6293 "src": "10345:16:110", 6294 "typeDescriptions": { 6295 "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_storage_ptr", 6296 "typeString": "struct OptimismPortal.ProvenWithdrawal" 6297 } 6298 }, 6299 "visibility": "internal" 6300 } 6301 ], 6302 "id": 59652, 6303 "initialValue": { 6304 "baseExpression": { 6305 "id": 59649, 6306 "name": "provenWithdrawals", 6307 "nodeType": "Identifier", 6308 "overloadedDeclarations": [], 6309 "referencedDeclaration": 59334, 6310 "src": "10388:17:110", 6311 "typeDescriptions": { 6312 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProvenWithdrawal_$59312_storage_$", 6313 "typeString": "mapping(bytes32 => struct OptimismPortal.ProvenWithdrawal storage ref)" 6314 } 6315 }, 6316 "id": 59651, 6317 "indexExpression": { 6318 "id": 59650, 6319 "name": "withdrawalHash", 6320 "nodeType": "Identifier", 6321 "overloadedDeclarations": [], 6322 "referencedDeclaration": 59640, 6323 "src": "10406:14:110", 6324 "typeDescriptions": { 6325 "typeIdentifier": "t_bytes32", 6326 "typeString": "bytes32" 6327 } 6328 }, 6329 "isConstant": false, 6330 "isLValue": true, 6331 "isPure": false, 6332 "lValueRequested": false, 6333 "nodeType": "IndexAccess", 6334 "src": "10388:33:110", 6335 "typeDescriptions": { 6336 "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_storage", 6337 "typeString": "struct OptimismPortal.ProvenWithdrawal storage ref" 6338 } 6339 }, 6340 "nodeType": "VariableDeclarationStatement", 6341 "src": "10345:76:110" 6342 }, 6343 { 6344 "expression": { 6345 "arguments": [ 6346 { 6347 "commonType": { 6348 "typeIdentifier": "t_bool", 6349 "typeString": "bool" 6350 }, 6351 "id": 59667, 6352 "isConstant": false, 6353 "isLValue": false, 6354 "isPure": false, 6355 "lValueRequested": false, 6356 "leftExpression": { 6357 "commonType": { 6358 "typeIdentifier": "t_uint128", 6359 "typeString": "uint128" 6360 }, 6361 "id": 59657, 6362 "isConstant": false, 6363 "isLValue": false, 6364 "isPure": false, 6365 "lValueRequested": false, 6366 "leftExpression": { 6367 "expression": { 6368 "id": 59654, 6369 "name": "provenWithdrawal", 6370 "nodeType": "Identifier", 6371 "overloadedDeclarations": [], 6372 "referencedDeclaration": 59648, 6373 "src": "10975:16:110", 6374 "typeDescriptions": { 6375 "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr", 6376 "typeString": "struct OptimismPortal.ProvenWithdrawal memory" 6377 } 6378 }, 6379 "id": 59655, 6380 "isConstant": false, 6381 "isLValue": true, 6382 "isPure": false, 6383 "lValueRequested": false, 6384 "memberName": "timestamp", 6385 "nodeType": "MemberAccess", 6386 "referencedDeclaration": 59309, 6387 "src": "10975:26:110", 6388 "typeDescriptions": { 6389 "typeIdentifier": "t_uint128", 6390 "typeString": "uint128" 6391 } 6392 }, 6393 "nodeType": "BinaryOperation", 6394 "operator": "==", 6395 "rightExpression": { 6396 "hexValue": "30", 6397 "id": 59656, 6398 "isConstant": false, 6399 "isLValue": false, 6400 "isPure": true, 6401 "kind": "number", 6402 "lValueRequested": false, 6403 "nodeType": "Literal", 6404 "src": "11005:1:110", 6405 "typeDescriptions": { 6406 "typeIdentifier": "t_rational_0_by_1", 6407 "typeString": "int_const 0" 6408 }, 6409 "value": "0" 6410 }, 6411 "src": "10975:31:110", 6412 "typeDescriptions": { 6413 "typeIdentifier": "t_bool", 6414 "typeString": "bool" 6415 } 6416 }, 6417 "nodeType": "BinaryOperation", 6418 "operator": "||", 6419 "rightExpression": { 6420 "commonType": { 6421 "typeIdentifier": "t_bytes32", 6422 "typeString": "bytes32" 6423 }, 6424 "id": 59666, 6425 "isConstant": false, 6426 "isLValue": false, 6427 "isPure": false, 6428 "lValueRequested": false, 6429 "leftExpression": { 6430 "expression": { 6431 "arguments": [ 6432 { 6433 "expression": { 6434 "id": 59660, 6435 "name": "provenWithdrawal", 6436 "nodeType": "Identifier", 6437 "overloadedDeclarations": [], 6438 "referencedDeclaration": 59648, 6439 "src": "11047:16:110", 6440 "typeDescriptions": { 6441 "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr", 6442 "typeString": "struct OptimismPortal.ProvenWithdrawal memory" 6443 } 6444 }, 6445 "id": 59661, 6446 "isConstant": false, 6447 "isLValue": true, 6448 "isPure": false, 6449 "lValueRequested": false, 6450 "memberName": "l2OutputIndex", 6451 "nodeType": "MemberAccess", 6452 "referencedDeclaration": 59311, 6453 "src": "11047:30:110", 6454 "typeDescriptions": { 6455 "typeIdentifier": "t_uint128", 6456 "typeString": "uint128" 6457 } 6458 } 6459 ], 6460 "expression": { 6461 "argumentTypes": [ 6462 { 6463 "typeIdentifier": "t_uint128", 6464 "typeString": "uint128" 6465 } 6466 ], 6467 "expression": { 6468 "id": 59658, 6469 "name": "l2Oracle", 6470 "nodeType": "Identifier", 6471 "overloadedDeclarations": [], 6472 "referencedDeclaration": 59341, 6473 "src": "11026:8:110", 6474 "typeDescriptions": { 6475 "typeIdentifier": "t_contract$_L2OutputOracle_$59272", 6476 "typeString": "contract L2OutputOracle" 6477 } 6478 }, 6479 "id": 59659, 6480 "isConstant": false, 6481 "isLValue": false, 6482 "isPure": false, 6483 "lValueRequested": false, 6484 "memberName": "getL2Output", 6485 "nodeType": "MemberAccess", 6486 "referencedDeclaration": 59112, 6487 "src": "11026:20:110", 6488 "typeDescriptions": { 6489 "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_OutputProposal_$70553_memory_ptr_$", 6490 "typeString": "function (uint256) view external returns (struct Types.OutputProposal memory)" 6491 } 6492 }, 6493 "id": 59662, 6494 "isConstant": false, 6495 "isLValue": false, 6496 "isPure": false, 6497 "kind": "functionCall", 6498 "lValueRequested": false, 6499 "names": [], 6500 "nodeType": "FunctionCall", 6501 "src": "11026:52:110", 6502 "tryCall": false, 6503 "typeDescriptions": { 6504 "typeIdentifier": "t_struct$_OutputProposal_$70553_memory_ptr", 6505 "typeString": "struct Types.OutputProposal memory" 6506 } 6507 }, 6508 "id": 59663, 6509 "isConstant": false, 6510 "isLValue": true, 6511 "isPure": false, 6512 "lValueRequested": false, 6513 "memberName": "outputRoot", 6514 "nodeType": "MemberAccess", 6515 "referencedDeclaration": 70548, 6516 "src": "11026:63:110", 6517 "typeDescriptions": { 6518 "typeIdentifier": "t_bytes32", 6519 "typeString": "bytes32" 6520 } 6521 }, 6522 "nodeType": "BinaryOperation", 6523 "operator": "!=", 6524 "rightExpression": { 6525 "expression": { 6526 "id": 59664, 6527 "name": "provenWithdrawal", 6528 "nodeType": "Identifier", 6529 "overloadedDeclarations": [], 6530 "referencedDeclaration": 59648, 6531 "src": "11093:16:110", 6532 "typeDescriptions": { 6533 "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr", 6534 "typeString": "struct OptimismPortal.ProvenWithdrawal memory" 6535 } 6536 }, 6537 "id": 59665, 6538 "isConstant": false, 6539 "isLValue": true, 6540 "isPure": false, 6541 "lValueRequested": false, 6542 "memberName": "outputRoot", 6543 "nodeType": "MemberAccess", 6544 "referencedDeclaration": 59307, 6545 "src": "11093:27:110", 6546 "typeDescriptions": { 6547 "typeIdentifier": "t_bytes32", 6548 "typeString": "bytes32" 6549 } 6550 }, 6551 "src": "11026:94:110", 6552 "typeDescriptions": { 6553 "typeIdentifier": "t_bool", 6554 "typeString": "bool" 6555 } 6556 }, 6557 "src": "10975:145:110", 6558 "typeDescriptions": { 6559 "typeIdentifier": "t_bool", 6560 "typeString": "bool" 6561 } 6562 }, 6563 { 6564 "hexValue": "4f7074696d69736d506f7274616c3a207769746864726177616c20686173682068617320616c7265616479206265656e2070726f76656e", 6565 "id": 59668, 6566 "isConstant": false, 6567 "isLValue": false, 6568 "isPure": true, 6569 "kind": "string", 6570 "lValueRequested": false, 6571 "nodeType": "Literal", 6572 "src": "11134:57:110", 6573 "typeDescriptions": { 6574 "typeIdentifier": "t_stringliteral_5238e365e021f6fd781c2264a5a09100f0670031b56dacfc224b453789ac1dd0", 6575 "typeString": "literal_string \"OptimismPortal: withdrawal hash has already been proven\"" 6576 }, 6577 "value": "OptimismPortal: withdrawal hash has already been proven" 6578 } 6579 ], 6580 "expression": { 6581 "argumentTypes": [ 6582 { 6583 "typeIdentifier": "t_bool", 6584 "typeString": "bool" 6585 }, 6586 { 6587 "typeIdentifier": "t_stringliteral_5238e365e021f6fd781c2264a5a09100f0670031b56dacfc224b453789ac1dd0", 6588 "typeString": "literal_string \"OptimismPortal: withdrawal hash has already been proven\"" 6589 } 6590 ], 6591 "id": 59653, 6592 "name": "require", 6593 "nodeType": "Identifier", 6594 "overloadedDeclarations": [ 6595 -18, 6596 -18 6597 ], 6598 "referencedDeclaration": -18, 6599 "src": "10954:7:110", 6600 "typeDescriptions": { 6601 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", 6602 "typeString": "function (bool,string memory) pure" 6603 } 6604 }, 6605 "id": 59669, 6606 "isConstant": false, 6607 "isLValue": false, 6608 "isPure": false, 6609 "kind": "functionCall", 6610 "lValueRequested": false, 6611 "names": [], 6612 "nodeType": "FunctionCall", 6613 "src": "10954:247:110", 6614 "tryCall": false, 6615 "typeDescriptions": { 6616 "typeIdentifier": "t_tuple$__$", 6617 "typeString": "tuple()" 6618 } 6619 }, 6620 "id": 59670, 6621 "nodeType": "ExpressionStatement", 6622 "src": "10954:247:110" 6623 }, 6624 { 6625 "assignments": [ 6626 59672 6627 ], 6628 "declarations": [ 6629 { 6630 "constant": false, 6631 "id": 59672, 6632 "mutability": "mutable", 6633 "name": "storageKey", 6634 "nameLocation": "11445:10:110", 6635 "nodeType": "VariableDeclaration", 6636 "scope": 59724, 6637 "src": "11437:18:110", 6638 "stateVariable": false, 6639 "storageLocation": "default", 6640 "typeDescriptions": { 6641 "typeIdentifier": "t_bytes32", 6642 "typeString": "bytes32" 6643 }, 6644 "typeName": { 6645 "id": 59671, 6646 "name": "bytes32", 6647 "nodeType": "ElementaryTypeName", 6648 "src": "11437:7:110", 6649 "typeDescriptions": { 6650 "typeIdentifier": "t_bytes32", 6651 "typeString": "bytes32" 6652 } 6653 }, 6654 "visibility": "internal" 6655 } 6656 ], 6657 "id": 59683, 6658 "initialValue": { 6659 "arguments": [ 6660 { 6661 "arguments": [ 6662 { 6663 "id": 59676, 6664 "name": "withdrawalHash", 6665 "nodeType": "Identifier", 6666 "overloadedDeclarations": [], 6667 "referencedDeclaration": 59640, 6668 "src": "11509:14:110", 6669 "typeDescriptions": { 6670 "typeIdentifier": "t_bytes32", 6671 "typeString": "bytes32" 6672 } 6673 }, 6674 { 6675 "arguments": [ 6676 { 6677 "hexValue": "30", 6678 "id": 59679, 6679 "isConstant": false, 6680 "isLValue": false, 6681 "isPure": true, 6682 "kind": "number", 6683 "lValueRequested": false, 6684 "nodeType": "Literal", 6685 "src": "11549:1:110", 6686 "typeDescriptions": { 6687 "typeIdentifier": "t_rational_0_by_1", 6688 "typeString": "int_const 0" 6689 }, 6690 "value": "0" 6691 } 6692 ], 6693 "expression": { 6694 "argumentTypes": [ 6695 { 6696 "typeIdentifier": "t_rational_0_by_1", 6697 "typeString": "int_const 0" 6698 } 6699 ], 6700 "id": 59678, 6701 "isConstant": false, 6702 "isLValue": false, 6703 "isPure": true, 6704 "lValueRequested": false, 6705 "nodeType": "ElementaryTypeNameExpression", 6706 "src": "11541:7:110", 6707 "typeDescriptions": { 6708 "typeIdentifier": "t_type$_t_uint256_$", 6709 "typeString": "type(uint256)" 6710 }, 6711 "typeName": { 6712 "id": 59677, 6713 "name": "uint256", 6714 "nodeType": "ElementaryTypeName", 6715 "src": "11541:7:110", 6716 "typeDescriptions": {} 6717 } 6718 }, 6719 "id": 59680, 6720 "isConstant": false, 6721 "isLValue": false, 6722 "isPure": true, 6723 "kind": "typeConversion", 6724 "lValueRequested": false, 6725 "names": [], 6726 "nodeType": "FunctionCall", 6727 "src": "11541:10:110", 6728 "tryCall": false, 6729 "typeDescriptions": { 6730 "typeIdentifier": "t_uint256", 6731 "typeString": "uint256" 6732 } 6733 } 6734 ], 6735 "expression": { 6736 "argumentTypes": [ 6737 { 6738 "typeIdentifier": "t_bytes32", 6739 "typeString": "bytes32" 6740 }, 6741 { 6742 "typeIdentifier": "t_uint256", 6743 "typeString": "uint256" 6744 } 6745 ], 6746 "expression": { 6747 "id": 59674, 6748 "name": "abi", 6749 "nodeType": "Identifier", 6750 "overloadedDeclarations": [], 6751 "referencedDeclaration": -1, 6752 "src": "11481:3:110", 6753 "typeDescriptions": { 6754 "typeIdentifier": "t_magic_abi", 6755 "typeString": "abi" 6756 } 6757 }, 6758 "id": 59675, 6759 "isConstant": false, 6760 "isLValue": false, 6761 "isPure": true, 6762 "lValueRequested": false, 6763 "memberName": "encode", 6764 "nodeType": "MemberAccess", 6765 "src": "11481:10:110", 6766 "typeDescriptions": { 6767 "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", 6768 "typeString": "function () pure returns (bytes memory)" 6769 } 6770 }, 6771 "id": 59681, 6772 "isConstant": false, 6773 "isLValue": false, 6774 "isPure": false, 6775 "kind": "functionCall", 6776 "lValueRequested": false, 6777 "names": [], 6778 "nodeType": "FunctionCall", 6779 "src": "11481:147:110", 6780 "tryCall": false, 6781 "typeDescriptions": { 6782 "typeIdentifier": "t_bytes_memory_ptr", 6783 "typeString": "bytes memory" 6784 } 6785 } 6786 ], 6787 "expression": { 6788 "argumentTypes": [ 6789 { 6790 "typeIdentifier": "t_bytes_memory_ptr", 6791 "typeString": "bytes memory" 6792 } 6793 ], 6794 "id": 59673, 6795 "name": "keccak256", 6796 "nodeType": "Identifier", 6797 "overloadedDeclarations": [], 6798 "referencedDeclaration": -8, 6799 "src": "11458:9:110", 6800 "typeDescriptions": { 6801 "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", 6802 "typeString": "function (bytes memory) pure returns (bytes32)" 6803 } 6804 }, 6805 "id": 59682, 6806 "isConstant": false, 6807 "isLValue": false, 6808 "isPure": false, 6809 "kind": "functionCall", 6810 "lValueRequested": false, 6811 "names": [], 6812 "nodeType": "FunctionCall", 6813 "src": "11458:180:110", 6814 "tryCall": false, 6815 "typeDescriptions": { 6816 "typeIdentifier": "t_bytes32", 6817 "typeString": "bytes32" 6818 } 6819 }, 6820 "nodeType": "VariableDeclarationStatement", 6821 "src": "11437:201:110" 6822 }, 6823 { 6824 "expression": { 6825 "arguments": [ 6826 { 6827 "arguments": [ 6828 { 6829 "arguments": [ 6830 { 6831 "id": 59689, 6832 "name": "storageKey", 6833 "nodeType": "Identifier", 6834 "overloadedDeclarations": [], 6835 "referencedDeclaration": 59672, 6836 "src": "12057:10:110", 6837 "typeDescriptions": { 6838 "typeIdentifier": "t_bytes32", 6839 "typeString": "bytes32" 6840 } 6841 } 6842 ], 6843 "expression": { 6844 "argumentTypes": [ 6845 { 6846 "typeIdentifier": "t_bytes32", 6847 "typeString": "bytes32" 6848 } 6849 ], 6850 "expression": { 6851 "id": 59687, 6852 "name": "abi", 6853 "nodeType": "Identifier", 6854 "overloadedDeclarations": [], 6855 "referencedDeclaration": -1, 6856 "src": "12046:3:110", 6857 "typeDescriptions": { 6858 "typeIdentifier": "t_magic_abi", 6859 "typeString": "abi" 6860 } 6861 }, 6862 "id": 59688, 6863 "isConstant": false, 6864 "isLValue": false, 6865 "isPure": true, 6866 "lValueRequested": false, 6867 "memberName": "encode", 6868 "nodeType": "MemberAccess", 6869 "src": "12046:10:110", 6870 "typeDescriptions": { 6871 "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", 6872 "typeString": "function () pure returns (bytes memory)" 6873 } 6874 }, 6875 "id": 59690, 6876 "isConstant": false, 6877 "isLValue": false, 6878 "isPure": false, 6879 "kind": "functionCall", 6880 "lValueRequested": false, 6881 "names": [], 6882 "nodeType": "FunctionCall", 6883 "src": "12046:22:110", 6884 "tryCall": false, 6885 "typeDescriptions": { 6886 "typeIdentifier": "t_bytes_memory_ptr", 6887 "typeString": "bytes memory" 6888 } 6889 }, 6890 { 6891 "hexValue": "01", 6892 "id": 59691, 6893 "isConstant": false, 6894 "isLValue": false, 6895 "isPure": true, 6896 "kind": "hexString", 6897 "lValueRequested": false, 6898 "nodeType": "Literal", 6899 "src": "12070:7:110", 6900 "typeDescriptions": { 6901 "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", 6902 "typeString": "literal_string hex\"01\"" 6903 }, 6904 "value": "\u0001" 6905 }, 6906 { 6907 "id": 59692, 6908 "name": "_withdrawalProof", 6909 "nodeType": "Identifier", 6910 "overloadedDeclarations": [], 6911 "referencedDeclaration": 59605, 6912 "src": "12079:16:110", 6913 "typeDescriptions": { 6914 "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", 6915 "typeString": "bytes calldata[] calldata" 6916 } 6917 }, 6918 { 6919 "expression": { 6920 "id": 59693, 6921 "name": "_outputRootProof", 6922 "nodeType": "Identifier", 6923 "overloadedDeclarations": [], 6924 "referencedDeclaration": 59602, 6925 "src": "12097:16:110", 6926 "typeDescriptions": { 6927 "typeIdentifier": "t_struct$_OutputRootProof_$70562_calldata_ptr", 6928 "typeString": "struct Types.OutputRootProof calldata" 6929 } 6930 }, 6931 "id": 59694, 6932 "isConstant": false, 6933 "isLValue": false, 6934 "isPure": false, 6935 "lValueRequested": false, 6936 "memberName": "messagePasserStorageRoot", 6937 "nodeType": "MemberAccess", 6938 "referencedDeclaration": 70559, 6939 "src": "12097:41:110", 6940 "typeDescriptions": { 6941 "typeIdentifier": "t_bytes32", 6942 "typeString": "bytes32" 6943 } 6944 } 6945 ], 6946 "expression": { 6947 "argumentTypes": [ 6948 { 6949 "typeIdentifier": "t_bytes_memory_ptr", 6950 "typeString": "bytes memory" 6951 }, 6952 { 6953 "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", 6954 "typeString": "literal_string hex\"01\"" 6955 }, 6956 { 6957 "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", 6958 "typeString": "bytes calldata[] calldata" 6959 }, 6960 { 6961 "typeIdentifier": "t_bytes32", 6962 "typeString": "bytes32" 6963 } 6964 ], 6965 "expression": { 6966 "id": 59685, 6967 "name": "SecureMerkleTrie", 6968 "nodeType": "Identifier", 6969 "overloadedDeclarations": [], 6970 "referencedDeclaration": 72279, 6971 "src": "11991:16:110", 6972 "typeDescriptions": { 6973 "typeIdentifier": "t_type$_t_contract$_SecureMerkleTrie_$72279_$", 6974 "typeString": "type(library SecureMerkleTrie)" 6975 } 6976 }, 6977 "id": 59686, 6978 "isConstant": false, 6979 "isLValue": false, 6980 "isPure": false, 6981 "lValueRequested": false, 6982 "memberName": "verifyInclusionProof", 6983 "nodeType": "MemberAccess", 6984 "referencedDeclaration": 72231, 6985 "src": "11991:37:110", 6986 "typeDescriptions": { 6987 "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$_t_bool_$", 6988 "typeString": "function (bytes memory,bytes memory,bytes memory[] memory,bytes32) pure returns (bool)" 6989 } 6990 }, 6991 "id": 59695, 6992 "isConstant": false, 6993 "isLValue": false, 6994 "isPure": false, 6995 "kind": "functionCall", 6996 "lValueRequested": false, 6997 "names": [], 6998 "nodeType": "FunctionCall", 6999 "src": "11991:161:110", 7000 "tryCall": false, 7001 "typeDescriptions": { 7002 "typeIdentifier": "t_bool", 7003 "typeString": "bool" 7004 } 7005 }, 7006 { 7007 "hexValue": "4f7074696d69736d506f7274616c3a20696e76616c6964207769746864726177616c20696e636c7573696f6e2070726f6f66", 7008 "id": 59696, 7009 "isConstant": false, 7010 "isLValue": false, 7011 "isPure": true, 7012 "kind": "string", 7013 "lValueRequested": false, 7014 "nodeType": "Literal", 7015 "src": "12166:52:110", 7016 "typeDescriptions": { 7017 "typeIdentifier": "t_stringliteral_11b666636981dad70da1c1a9e87589eb7d9c042eacd4d25e887aac557f6cd6b9", 7018 "typeString": "literal_string \"OptimismPortal: invalid withdrawal inclusion proof\"" 7019 }, 7020 "value": "OptimismPortal: invalid withdrawal inclusion proof" 7021 } 7022 ], 7023 "expression": { 7024 "argumentTypes": [ 7025 { 7026 "typeIdentifier": "t_bool", 7027 "typeString": "bool" 7028 }, 7029 { 7030 "typeIdentifier": "t_stringliteral_11b666636981dad70da1c1a9e87589eb7d9c042eacd4d25e887aac557f6cd6b9", 7031 "typeString": "literal_string \"OptimismPortal: invalid withdrawal inclusion proof\"" 7032 } 7033 ], 7034 "id": 59684, 7035 "name": "require", 7036 "nodeType": "Identifier", 7037 "overloadedDeclarations": [ 7038 -18, 7039 -18 7040 ], 7041 "referencedDeclaration": -18, 7042 "src": "11970:7:110", 7043 "typeDescriptions": { 7044 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", 7045 "typeString": "function (bool,string memory) pure" 7046 } 7047 }, 7048 "id": 59697, 7049 "isConstant": false, 7050 "isLValue": false, 7051 "isPure": false, 7052 "kind": "functionCall", 7053 "lValueRequested": false, 7054 "names": [], 7055 "nodeType": "FunctionCall", 7056 "src": "11970:258:110", 7057 "tryCall": false, 7058 "typeDescriptions": { 7059 "typeIdentifier": "t_tuple$__$", 7060 "typeString": "tuple()" 7061 } 7062 }, 7063 "id": 59698, 7064 "nodeType": "ExpressionStatement", 7065 "src": "11970:258:110" 7066 }, 7067 { 7068 "expression": { 7069 "id": 59714, 7070 "isConstant": false, 7071 "isLValue": false, 7072 "isPure": false, 7073 "lValueRequested": false, 7074 "leftHandSide": { 7075 "baseExpression": { 7076 "id": 59699, 7077 "name": "provenWithdrawals", 7078 "nodeType": "Identifier", 7079 "overloadedDeclarations": [], 7080 "referencedDeclaration": 59334, 7081 "src": "12510:17:110", 7082 "typeDescriptions": { 7083 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProvenWithdrawal_$59312_storage_$", 7084 "typeString": "mapping(bytes32 => struct OptimismPortal.ProvenWithdrawal storage ref)" 7085 } 7086 }, 7087 "id": 59701, 7088 "indexExpression": { 7089 "id": 59700, 7090 "name": "withdrawalHash", 7091 "nodeType": "Identifier", 7092 "overloadedDeclarations": [], 7093 "referencedDeclaration": 59640, 7094 "src": "12528:14:110", 7095 "typeDescriptions": { 7096 "typeIdentifier": "t_bytes32", 7097 "typeString": "bytes32" 7098 } 7099 }, 7100 "isConstant": false, 7101 "isLValue": true, 7102 "isPure": false, 7103 "lValueRequested": true, 7104 "nodeType": "IndexAccess", 7105 "src": "12510:33:110", 7106 "typeDescriptions": { 7107 "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_storage", 7108 "typeString": "struct OptimismPortal.ProvenWithdrawal storage ref" 7109 } 7110 }, 7111 "nodeType": "Assignment", 7112 "operator": "=", 7113 "rightHandSide": { 7114 "arguments": [ 7115 { 7116 "id": 59703, 7117 "name": "outputRoot", 7118 "nodeType": "Identifier", 7119 "overloadedDeclarations": [], 7120 "referencedDeclaration": 59622, 7121 "src": "12589:10:110", 7122 "typeDescriptions": { 7123 "typeIdentifier": "t_bytes32", 7124 "typeString": "bytes32" 7125 } 7126 }, 7127 { 7128 "arguments": [ 7129 { 7130 "expression": { 7131 "id": 59706, 7132 "name": "block", 7133 "nodeType": "Identifier", 7134 "overloadedDeclarations": [], 7135 "referencedDeclaration": -4, 7136 "src": "12632:5:110", 7137 "typeDescriptions": { 7138 "typeIdentifier": "t_magic_block", 7139 "typeString": "block" 7140 } 7141 }, 7142 "id": 59707, 7143 "isConstant": false, 7144 "isLValue": false, 7145 "isPure": false, 7146 "lValueRequested": false, 7147 "memberName": "timestamp", 7148 "nodeType": "MemberAccess", 7149 "src": "12632:15:110", 7150 "typeDescriptions": { 7151 "typeIdentifier": "t_uint256", 7152 "typeString": "uint256" 7153 } 7154 } 7155 ], 7156 "expression": { 7157 "argumentTypes": [ 7158 { 7159 "typeIdentifier": "t_uint256", 7160 "typeString": "uint256" 7161 } 7162 ], 7163 "id": 59705, 7164 "isConstant": false, 7165 "isLValue": false, 7166 "isPure": true, 7167 "lValueRequested": false, 7168 "nodeType": "ElementaryTypeNameExpression", 7169 "src": "12624:7:110", 7170 "typeDescriptions": { 7171 "typeIdentifier": "t_type$_t_uint128_$", 7172 "typeString": "type(uint128)" 7173 }, 7174 "typeName": { 7175 "id": 59704, 7176 "name": "uint128", 7177 "nodeType": "ElementaryTypeName", 7178 "src": "12624:7:110", 7179 "typeDescriptions": {} 7180 } 7181 }, 7182 "id": 59708, 7183 "isConstant": false, 7184 "isLValue": false, 7185 "isPure": false, 7186 "kind": "typeConversion", 7187 "lValueRequested": false, 7188 "names": [], 7189 "nodeType": "FunctionCall", 7190 "src": "12624:24:110", 7191 "tryCall": false, 7192 "typeDescriptions": { 7193 "typeIdentifier": "t_uint128", 7194 "typeString": "uint128" 7195 } 7196 }, 7197 { 7198 "arguments": [ 7199 { 7200 "id": 59711, 7201 "name": "_l2OutputIndex", 7202 "nodeType": "Identifier", 7203 "overloadedDeclarations": [], 7204 "referencedDeclaration": 59599, 7205 "src": "12685:14:110", 7206 "typeDescriptions": { 7207 "typeIdentifier": "t_uint256", 7208 "typeString": "uint256" 7209 } 7210 } 7211 ], 7212 "expression": { 7213 "argumentTypes": [ 7214 { 7215 "typeIdentifier": "t_uint256", 7216 "typeString": "uint256" 7217 } 7218 ], 7219 "id": 59710, 7220 "isConstant": false, 7221 "isLValue": false, 7222 "isPure": true, 7223 "lValueRequested": false, 7224 "nodeType": "ElementaryTypeNameExpression", 7225 "src": "12677:7:110", 7226 "typeDescriptions": { 7227 "typeIdentifier": "t_type$_t_uint128_$", 7228 "typeString": "type(uint128)" 7229 }, 7230 "typeName": { 7231 "id": 59709, 7232 "name": "uint128", 7233 "nodeType": "ElementaryTypeName", 7234 "src": "12677:7:110", 7235 "typeDescriptions": {} 7236 } 7237 }, 7238 "id": 59712, 7239 "isConstant": false, 7240 "isLValue": false, 7241 "isPure": false, 7242 "kind": "typeConversion", 7243 "lValueRequested": false, 7244 "names": [], 7245 "nodeType": "FunctionCall", 7246 "src": "12677:23:110", 7247 "tryCall": false, 7248 "typeDescriptions": { 7249 "typeIdentifier": "t_uint128", 7250 "typeString": "uint128" 7251 } 7252 } 7253 ], 7254 "expression": { 7255 "argumentTypes": [ 7256 { 7257 "typeIdentifier": "t_bytes32", 7258 "typeString": "bytes32" 7259 }, 7260 { 7261 "typeIdentifier": "t_uint128", 7262 "typeString": "uint128" 7263 }, 7264 { 7265 "typeIdentifier": "t_uint128", 7266 "typeString": "uint128" 7267 } 7268 ], 7269 "id": 59702, 7270 "name": "ProvenWithdrawal", 7271 "nodeType": "Identifier", 7272 "overloadedDeclarations": [], 7273 "referencedDeclaration": 59312, 7274 "src": "12546:16:110", 7275 "typeDescriptions": { 7276 "typeIdentifier": "t_type$_t_struct$_ProvenWithdrawal_$59312_storage_ptr_$", 7277 "typeString": "type(struct OptimismPortal.ProvenWithdrawal storage pointer)" 7278 } 7279 }, 7280 "id": 59713, 7281 "isConstant": false, 7282 "isLValue": false, 7283 "isPure": false, 7284 "kind": "structConstructorCall", 7285 "lValueRequested": false, 7286 "names": [ 7287 "outputRoot", 7288 "timestamp", 7289 "l2OutputIndex" 7290 ], 7291 "nodeType": "FunctionCall", 7292 "src": "12546:165:110", 7293 "tryCall": false, 7294 "typeDescriptions": { 7295 "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr", 7296 "typeString": "struct OptimismPortal.ProvenWithdrawal memory" 7297 } 7298 }, 7299 "src": "12510:201:110", 7300 "typeDescriptions": { 7301 "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_storage", 7302 "typeString": "struct OptimismPortal.ProvenWithdrawal storage ref" 7303 } 7304 }, 7305 "id": 59715, 7306 "nodeType": "ExpressionStatement", 7307 "src": "12510:201:110" 7308 }, 7309 { 7310 "eventCall": { 7311 "arguments": [ 7312 { 7313 "id": 59717, 7314 "name": "withdrawalHash", 7315 "nodeType": "Identifier", 7316 "overloadedDeclarations": [], 7317 "referencedDeclaration": 59640, 7318 "src": "12788:14:110", 7319 "typeDescriptions": { 7320 "typeIdentifier": "t_bytes32", 7321 "typeString": "bytes32" 7322 } 7323 }, 7324 { 7325 "expression": { 7326 "id": 59718, 7327 "name": "_tx", 7328 "nodeType": "Identifier", 7329 "overloadedDeclarations": [], 7330 "referencedDeclaration": 59597, 7331 "src": "12804:3:110", 7332 "typeDescriptions": { 7333 "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr", 7334 "typeString": "struct Types.WithdrawalTransaction memory" 7335 } 7336 }, 7337 "id": 59719, 7338 "isConstant": false, 7339 "isLValue": true, 7340 "isPure": false, 7341 "lValueRequested": false, 7342 "memberName": "sender", 7343 "nodeType": "MemberAccess", 7344 "referencedDeclaration": 70585, 7345 "src": "12804:10:110", 7346 "typeDescriptions": { 7347 "typeIdentifier": "t_address", 7348 "typeString": "address" 7349 } 7350 }, 7351 { 7352 "expression": { 7353 "id": 59720, 7354 "name": "_tx", 7355 "nodeType": "Identifier", 7356 "overloadedDeclarations": [], 7357 "referencedDeclaration": 59597, 7358 "src": "12816:3:110", 7359 "typeDescriptions": { 7360 "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr", 7361 "typeString": "struct Types.WithdrawalTransaction memory" 7362 } 7363 }, 7364 "id": 59721, 7365 "isConstant": false, 7366 "isLValue": true, 7367 "isPure": false, 7368 "lValueRequested": false, 7369 "memberName": "target", 7370 "nodeType": "MemberAccess", 7371 "referencedDeclaration": 70587, 7372 "src": "12816:10:110", 7373 "typeDescriptions": { 7374 "typeIdentifier": "t_address", 7375 "typeString": "address" 7376 } 7377 } 7378 ], 7379 "expression": { 7380 "argumentTypes": [ 7381 { 7382 "typeIdentifier": "t_bytes32", 7383 "typeString": "bytes32" 7384 }, 7385 { 7386 "typeIdentifier": "t_address", 7387 "typeString": "address" 7388 }, 7389 { 7390 "typeIdentifier": "t_address", 7391 "typeString": "address" 7392 } 7393 ], 7394 "id": 59716, 7395 "name": "WithdrawalProven", 7396 "nodeType": "Identifier", 7397 "overloadedDeclarations": [], 7398 "referencedDeclaration": 59368, 7399 "src": "12771:16:110", 7400 "typeDescriptions": { 7401 "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", 7402 "typeString": "function (bytes32,address,address)" 7403 } 7404 }, 7405 "id": 59722, 7406 "isConstant": false, 7407 "isLValue": false, 7408 "isPure": false, 7409 "kind": "functionCall", 7410 "lValueRequested": false, 7411 "names": [], 7412 "nodeType": "FunctionCall", 7413 "src": "12771:56:110", 7414 "tryCall": false, 7415 "typeDescriptions": { 7416 "typeIdentifier": "t_tuple$__$", 7417 "typeString": "tuple()" 7418 } 7419 }, 7420 "id": 59723, 7421 "nodeType": "EmitStatement", 7422 "src": "12766:61:110" 7423 } 7424 ] 7425 }, 7426 "documentation": { 7427 "id": 59594, 7428 "nodeType": "StructuredDocumentation", 7429 "src": "8706:377:110", 7430 "text": "@notice Proves a withdrawal transaction.\n @param _tx Withdrawal transaction to finalize.\n @param _l2OutputIndex L2 output index to prove against.\n @param _outputRootProof Inclusion proof of the L2ToL1MessagePasser contract's storage root.\n @param _withdrawalProof Inclusion proof of the withdrawal in L2ToL1MessagePasser contract." 7431 }, 7432 "functionSelector": "4870496f", 7433 "implemented": true, 7434 "kind": "function", 7435 "modifiers": [ 7436 { 7437 "id": 59608, 7438 "kind": "modifierInvocation", 7439 "modifierName": { 7440 "id": 59607, 7441 "name": "whenNotPaused", 7442 "nodeType": "IdentifierPath", 7443 "referencedDeclaration": 59397, 7444 "src": "9335:13:110" 7445 }, 7446 "nodeType": "ModifierInvocation", 7447 "src": "9335:13:110" 7448 } 7449 ], 7450 "name": "proveWithdrawalTransaction", 7451 "nameLocation": "9097:26:110", 7452 "parameters": { 7453 "id": 59606, 7454 "nodeType": "ParameterList", 7455 "parameters": [ 7456 { 7457 "constant": false, 7458 "id": 59597, 7459 "mutability": "mutable", 7460 "name": "_tx", 7461 "nameLocation": "9168:3:110", 7462 "nodeType": "VariableDeclaration", 7463 "scope": 59725, 7464 "src": "9133:38:110", 7465 "stateVariable": false, 7466 "storageLocation": "memory", 7467 "typeDescriptions": { 7468 "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr", 7469 "typeString": "struct Types.WithdrawalTransaction" 7470 }, 7471 "typeName": { 7472 "id": 59596, 7473 "nodeType": "UserDefinedTypeName", 7474 "pathNode": { 7475 "id": 59595, 7476 "name": "Types.WithdrawalTransaction", 7477 "nodeType": "IdentifierPath", 7478 "referencedDeclaration": 70594, 7479 "src": "9133:27:110" 7480 }, 7481 "referencedDeclaration": 70594, 7482 "src": "9133:27:110", 7483 "typeDescriptions": { 7484 "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_storage_ptr", 7485 "typeString": "struct Types.WithdrawalTransaction" 7486 } 7487 }, 7488 "visibility": "internal" 7489 }, 7490 { 7491 "constant": false, 7492 "id": 59599, 7493 "mutability": "mutable", 7494 "name": "_l2OutputIndex", 7495 "nameLocation": "9189:14:110", 7496 "nodeType": "VariableDeclaration", 7497 "scope": 59725, 7498 "src": "9181:22:110", 7499 "stateVariable": false, 7500 "storageLocation": "default", 7501 "typeDescriptions": { 7502 "typeIdentifier": "t_uint256", 7503 "typeString": "uint256" 7504 }, 7505 "typeName": { 7506 "id": 59598, 7507 "name": "uint256", 7508 "nodeType": "ElementaryTypeName", 7509 "src": "9181:7:110", 7510 "typeDescriptions": { 7511 "typeIdentifier": "t_uint256", 7512 "typeString": "uint256" 7513 } 7514 }, 7515 "visibility": "internal" 7516 }, 7517 { 7518 "constant": false, 7519 "id": 59602, 7520 "mutability": "mutable", 7521 "name": "_outputRootProof", 7522 "nameLocation": "9244:16:110", 7523 "nodeType": "VariableDeclaration", 7524 "scope": 59725, 7525 "src": "9213:47:110", 7526 "stateVariable": false, 7527 "storageLocation": "calldata", 7528 "typeDescriptions": { 7529 "typeIdentifier": "t_struct$_OutputRootProof_$70562_calldata_ptr", 7530 "typeString": "struct Types.OutputRootProof" 7531 }, 7532 "typeName": { 7533 "id": 59601, 7534 "nodeType": "UserDefinedTypeName", 7535 "pathNode": { 7536 "id": 59600, 7537 "name": "Types.OutputRootProof", 7538 "nodeType": "IdentifierPath", 7539 "referencedDeclaration": 70562, 7540 "src": "9213:21:110" 7541 }, 7542 "referencedDeclaration": 70562, 7543 "src": "9213:21:110", 7544 "typeDescriptions": { 7545 "typeIdentifier": "t_struct$_OutputRootProof_$70562_storage_ptr", 7546 "typeString": "struct Types.OutputRootProof" 7547 } 7548 }, 7549 "visibility": "internal" 7550 }, 7551 { 7552 "constant": false, 7553 "id": 59605, 7554 "mutability": "mutable", 7555 "name": "_withdrawalProof", 7556 "nameLocation": "9287:16:110", 7557 "nodeType": "VariableDeclaration", 7558 "scope": 59725, 7559 "src": "9270:33:110", 7560 "stateVariable": false, 7561 "storageLocation": "calldata", 7562 "typeDescriptions": { 7563 "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", 7564 "typeString": "bytes[]" 7565 }, 7566 "typeName": { 7567 "baseType": { 7568 "id": 59603, 7569 "name": "bytes", 7570 "nodeType": "ElementaryTypeName", 7571 "src": "9270:5:110", 7572 "typeDescriptions": { 7573 "typeIdentifier": "t_bytes_storage_ptr", 7574 "typeString": "bytes" 7575 } 7576 }, 7577 "id": 59604, 7578 "nodeType": "ArrayTypeName", 7579 "src": "9270:7:110", 7580 "typeDescriptions": { 7581 "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", 7582 "typeString": "bytes[]" 7583 } 7584 }, 7585 "visibility": "internal" 7586 } 7587 ], 7588 "src": "9123:186:110" 7589 }, 7590 "returnParameters": { 7591 "id": 59609, 7592 "nodeType": "ParameterList", 7593 "parameters": [], 7594 "src": "9353:0:110" 7595 }, 7596 "scope": 59997, 7597 "stateMutability": "nonpayable", 7598 "virtual": false, 7599 "visibility": "external" 7600 }, 7601 { 7602 "id": 59870, 7603 "nodeType": "FunctionDefinition", 7604 "src": "12947:4839:110", 7605 "nodes": [], 7606 "body": { 7607 "id": 59869, 7608 "nodeType": "Block", 7609 "src": "13049:4737:110", 7610 "nodes": [], 7611 "statements": [ 7612 { 7613 "expression": { 7614 "arguments": [ 7615 { 7616 "commonType": { 7617 "typeIdentifier": "t_address", 7618 "typeString": "address" 7619 }, 7620 "id": 59738, 7621 "isConstant": false, 7622 "isLValue": false, 7623 "isPure": false, 7624 "lValueRequested": false, 7625 "leftExpression": { 7626 "id": 59735, 7627 "name": "l2Sender", 7628 "nodeType": "Identifier", 7629 "overloadedDeclarations": [], 7630 "referencedDeclaration": 59323, 7631 "src": "13315:8:110", 7632 "typeDescriptions": { 7633 "typeIdentifier": "t_address", 7634 "typeString": "address" 7635 } 7636 }, 7637 "nodeType": "BinaryOperation", 7638 "operator": "==", 7639 "rightExpression": { 7640 "expression": { 7641 "id": 59736, 7642 "name": "Constants", 7643 "nodeType": "Identifier", 7644 "overloadedDeclarations": [], 7645 "referencedDeclaration": 69571, 7646 "src": "13327:9:110", 7647 "typeDescriptions": { 7648 "typeIdentifier": "t_type$_t_contract$_Constants_$69571_$", 7649 "typeString": "type(library Constants)" 7650 } 7651 }, 7652 "id": 59737, 7653 "isConstant": false, 7654 "isLValue": false, 7655 "isPure": false, 7656 "lValueRequested": false, 7657 "memberName": "DEFAULT_L2_SENDER", 7658 "nodeType": "MemberAccess", 7659 "referencedDeclaration": 69529, 7660 "src": "13327:27:110", 7661 "typeDescriptions": { 7662 "typeIdentifier": "t_address", 7663 "typeString": "address" 7664 } 7665 }, 7666 "src": "13315:39:110", 7667 "typeDescriptions": { 7668 "typeIdentifier": "t_bool", 7669 "typeString": "bool" 7670 } 7671 }, 7672 { 7673 "hexValue": "4f7074696d69736d506f7274616c3a2063616e206f6e6c792074726967676572206f6e65207769746864726177616c20706572207472616e73616374696f6e", 7674 "id": 59739, 7675 "isConstant": false, 7676 "isLValue": false, 7677 "isPure": true, 7678 "kind": "string", 7679 "lValueRequested": false, 7680 "nodeType": "Literal", 7681 "src": "13356:65:110", 7682 "typeDescriptions": { 7683 "typeIdentifier": "t_stringliteral_452e6500a4013b85635a7a9b231d68a5197c7f7579d0b96d0b2f2e5fe6b5995b", 7684 "typeString": "literal_string \"OptimismPortal: can only trigger one withdrawal per transaction\"" 7685 }, 7686 "value": "OptimismPortal: can only trigger one withdrawal per transaction" 7687 } 7688 ], 7689 "expression": { 7690 "argumentTypes": [ 7691 { 7692 "typeIdentifier": "t_bool", 7693 "typeString": "bool" 7694 }, 7695 { 7696 "typeIdentifier": "t_stringliteral_452e6500a4013b85635a7a9b231d68a5197c7f7579d0b96d0b2f2e5fe6b5995b", 7697 "typeString": "literal_string \"OptimismPortal: can only trigger one withdrawal per transaction\"" 7698 } 7699 ], 7700 "id": 59734, 7701 "name": "require", 7702 "nodeType": "Identifier", 7703 "overloadedDeclarations": [ 7704 -18, 7705 -18 7706 ], 7707 "referencedDeclaration": -18, 7708 "src": "13294:7:110", 7709 "typeDescriptions": { 7710 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", 7711 "typeString": "function (bool,string memory) pure" 7712 } 7713 }, 7714 "id": 59740, 7715 "isConstant": false, 7716 "isLValue": false, 7717 "isPure": false, 7718 "kind": "functionCall", 7719 "lValueRequested": false, 7720 "names": [], 7721 "nodeType": "FunctionCall", 7722 "src": "13294:137:110", 7723 "tryCall": false, 7724 "typeDescriptions": { 7725 "typeIdentifier": "t_tuple$__$", 7726 "typeString": "tuple()" 7727 } 7728 }, 7729 "id": 59741, 7730 "nodeType": "ExpressionStatement", 7731 "src": "13294:137:110" 7732 }, 7733 { 7734 "assignments": [ 7735 59743 7736 ], 7737 "declarations": [ 7738 { 7739 "constant": false, 7740 "id": 59743, 7741 "mutability": "mutable", 7742 "name": "withdrawalHash", 7743 "nameLocation": "13522:14:110", 7744 "nodeType": "VariableDeclaration", 7745 "scope": 59869, 7746 "src": "13514:22:110", 7747 "stateVariable": false, 7748 "storageLocation": "default", 7749 "typeDescriptions": { 7750 "typeIdentifier": "t_bytes32", 7751 "typeString": "bytes32" 7752 }, 7753 "typeName": { 7754 "id": 59742, 7755 "name": "bytes32", 7756 "nodeType": "ElementaryTypeName", 7757 "src": "13514:7:110", 7758 "typeDescriptions": { 7759 "typeIdentifier": "t_bytes32", 7760 "typeString": "bytes32" 7761 } 7762 }, 7763 "visibility": "internal" 7764 } 7765 ], 7766 "id": 59748, 7767 "initialValue": { 7768 "arguments": [ 7769 { 7770 "id": 59746, 7771 "name": "_tx", 7772 "nodeType": "Identifier", 7773 "overloadedDeclarations": [], 7774 "referencedDeclaration": 59729, 7775 "src": "13562:3:110", 7776 "typeDescriptions": { 7777 "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr", 7778 "typeString": "struct Types.WithdrawalTransaction memory" 7779 } 7780 } 7781 ], 7782 "expression": { 7783 "argumentTypes": [ 7784 { 7785 "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr", 7786 "typeString": "struct Types.WithdrawalTransaction memory" 7787 } 7788 ], 7789 "expression": { 7790 "id": 59744, 7791 "name": "Hashing", 7792 "nodeType": "Identifier", 7793 "overloadedDeclarations": [], 7794 "referencedDeclaration": 70279, 7795 "src": "13539:7:110", 7796 "typeDescriptions": { 7797 "typeIdentifier": "t_type$_t_contract$_Hashing_$70279_$", 7798 "typeString": "type(library Hashing)" 7799 } 7800 }, 7801 "id": 59745, 7802 "isConstant": false, 7803 "isLValue": false, 7804 "isPure": false, 7805 "lValueRequested": false, 7806 "memberName": "hashWithdrawal", 7807 "nodeType": "MemberAccess", 7808 "referencedDeclaration": 70254, 7809 "src": "13539:22:110", 7810 "typeDescriptions": { 7811 "typeIdentifier": "t_function_internal_pure$_t_struct$_WithdrawalTransaction_$70594_memory_ptr_$returns$_t_bytes32_$", 7812 "typeString": "function (struct Types.WithdrawalTransaction memory) pure returns (bytes32)" 7813 } 7814 }, 7815 "id": 59747, 7816 "isConstant": false, 7817 "isLValue": false, 7818 "isPure": false, 7819 "kind": "functionCall", 7820 "lValueRequested": false, 7821 "names": [], 7822 "nodeType": "FunctionCall", 7823 "src": "13539:27:110", 7824 "tryCall": false, 7825 "typeDescriptions": { 7826 "typeIdentifier": "t_bytes32", 7827 "typeString": "bytes32" 7828 } 7829 }, 7830 "nodeType": "VariableDeclarationStatement", 7831 "src": "13514:52:110" 7832 }, 7833 { 7834 "assignments": [ 7835 59751 7836 ], 7837 "declarations": [ 7838 { 7839 "constant": false, 7840 "id": 59751, 7841 "mutability": "mutable", 7842 "name": "provenWithdrawal", 7843 "nameLocation": "13600:16:110", 7844 "nodeType": "VariableDeclaration", 7845 "scope": 59869, 7846 "src": "13576:40:110", 7847 "stateVariable": false, 7848 "storageLocation": "memory", 7849 "typeDescriptions": { 7850 "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr", 7851 "typeString": "struct OptimismPortal.ProvenWithdrawal" 7852 }, 7853 "typeName": { 7854 "id": 59750, 7855 "nodeType": "UserDefinedTypeName", 7856 "pathNode": { 7857 "id": 59749, 7858 "name": "ProvenWithdrawal", 7859 "nodeType": "IdentifierPath", 7860 "referencedDeclaration": 59312, 7861 "src": "13576:16:110" 7862 }, 7863 "referencedDeclaration": 59312, 7864 "src": "13576:16:110", 7865 "typeDescriptions": { 7866 "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_storage_ptr", 7867 "typeString": "struct OptimismPortal.ProvenWithdrawal" 7868 } 7869 }, 7870 "visibility": "internal" 7871 } 7872 ], 7873 "id": 59755, 7874 "initialValue": { 7875 "baseExpression": { 7876 "id": 59752, 7877 "name": "provenWithdrawals", 7878 "nodeType": "Identifier", 7879 "overloadedDeclarations": [], 7880 "referencedDeclaration": 59334, 7881 "src": "13619:17:110", 7882 "typeDescriptions": { 7883 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProvenWithdrawal_$59312_storage_$", 7884 "typeString": "mapping(bytes32 => struct OptimismPortal.ProvenWithdrawal storage ref)" 7885 } 7886 }, 7887 "id": 59754, 7888 "indexExpression": { 7889 "id": 59753, 7890 "name": "withdrawalHash", 7891 "nodeType": "Identifier", 7892 "overloadedDeclarations": [], 7893 "referencedDeclaration": 59743, 7894 "src": "13637:14:110", 7895 "typeDescriptions": { 7896 "typeIdentifier": "t_bytes32", 7897 "typeString": "bytes32" 7898 } 7899 }, 7900 "isConstant": false, 7901 "isLValue": true, 7902 "isPure": false, 7903 "lValueRequested": false, 7904 "nodeType": "IndexAccess", 7905 "src": "13619:33:110", 7906 "typeDescriptions": { 7907 "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_storage", 7908 "typeString": "struct OptimismPortal.ProvenWithdrawal storage ref" 7909 } 7910 }, 7911 "nodeType": "VariableDeclarationStatement", 7912 "src": "13576:76:110" 7913 }, 7914 { 7915 "expression": { 7916 "arguments": [ 7917 { 7918 "commonType": { 7919 "typeIdentifier": "t_uint128", 7920 "typeString": "uint128" 7921 }, 7922 "id": 59760, 7923 "isConstant": false, 7924 "isLValue": false, 7925 "isPure": false, 7926 "lValueRequested": false, 7927 "leftExpression": { 7928 "expression": { 7929 "id": 59757, 7930 "name": "provenWithdrawal", 7931 "nodeType": "Identifier", 7932 "overloadedDeclarations": [], 7933 "referencedDeclaration": 59751, 7934 "src": "13902:16:110", 7935 "typeDescriptions": { 7936 "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr", 7937 "typeString": "struct OptimismPortal.ProvenWithdrawal memory" 7938 } 7939 }, 7940 "id": 59758, 7941 "isConstant": false, 7942 "isLValue": true, 7943 "isPure": false, 7944 "lValueRequested": false, 7945 "memberName": "timestamp", 7946 "nodeType": "MemberAccess", 7947 "referencedDeclaration": 59309, 7948 "src": "13902:26:110", 7949 "typeDescriptions": { 7950 "typeIdentifier": "t_uint128", 7951 "typeString": "uint128" 7952 } 7953 }, 7954 "nodeType": "BinaryOperation", 7955 "operator": "!=", 7956 "rightExpression": { 7957 "hexValue": "30", 7958 "id": 59759, 7959 "isConstant": false, 7960 "isLValue": false, 7961 "isPure": true, 7962 "kind": "number", 7963 "lValueRequested": false, 7964 "nodeType": "Literal", 7965 "src": "13932:1:110", 7966 "typeDescriptions": { 7967 "typeIdentifier": "t_rational_0_by_1", 7968 "typeString": "int_const 0" 7969 }, 7970 "value": "0" 7971 }, 7972 "src": "13902:31:110", 7973 "typeDescriptions": { 7974 "typeIdentifier": "t_bool", 7975 "typeString": "bool" 7976 } 7977 }, 7978 { 7979 "hexValue": "4f7074696d69736d506f7274616c3a207769746864726177616c20686173206e6f74206265656e2070726f76656e20796574", 7980 "id": 59761, 7981 "isConstant": false, 7982 "isLValue": false, 7983 "isPure": true, 7984 "kind": "string", 7985 "lValueRequested": false, 7986 "nodeType": "Literal", 7987 "src": "13935:52:110", 7988 "typeDescriptions": { 7989 "typeIdentifier": "t_stringliteral_bc94f9f4f2ecd47ddd807efca122bcc34325481f7fe9d60687e25c709aff1610", 7990 "typeString": "literal_string \"OptimismPortal: withdrawal has not been proven yet\"" 7991 }, 7992 "value": "OptimismPortal: withdrawal has not been proven yet" 7993 } 7994 ], 7995 "expression": { 7996 "argumentTypes": [ 7997 { 7998 "typeIdentifier": "t_bool", 7999 "typeString": "bool" 8000 }, 8001 { 8002 "typeIdentifier": "t_stringliteral_bc94f9f4f2ecd47ddd807efca122bcc34325481f7fe9d60687e25c709aff1610", 8003 "typeString": "literal_string \"OptimismPortal: withdrawal has not been proven yet\"" 8004 } 8005 ], 8006 "id": 59756, 8007 "name": "require", 8008 "nodeType": "Identifier", 8009 "overloadedDeclarations": [ 8010 -18, 8011 -18 8012 ], 8013 "referencedDeclaration": -18, 8014 "src": "13894:7:110", 8015 "typeDescriptions": { 8016 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", 8017 "typeString": "function (bool,string memory) pure" 8018 } 8019 }, 8020 "id": 59762, 8021 "isConstant": false, 8022 "isLValue": false, 8023 "isPure": false, 8024 "kind": "functionCall", 8025 "lValueRequested": false, 8026 "names": [], 8027 "nodeType": "FunctionCall", 8028 "src": "13894:94:110", 8029 "tryCall": false, 8030 "typeDescriptions": { 8031 "typeIdentifier": "t_tuple$__$", 8032 "typeString": "tuple()" 8033 } 8034 }, 8035 "id": 59763, 8036 "nodeType": "ExpressionStatement", 8037 "src": "13894:94:110" 8038 }, 8039 { 8040 "expression": { 8041 "arguments": [ 8042 { 8043 "commonType": { 8044 "typeIdentifier": "t_uint256", 8045 "typeString": "uint256" 8046 }, 8047 "id": 59770, 8048 "isConstant": false, 8049 "isLValue": false, 8050 "isPure": false, 8051 "lValueRequested": false, 8052 "leftExpression": { 8053 "expression": { 8054 "id": 59765, 8055 "name": "provenWithdrawal", 8056 "nodeType": "Identifier", 8057 "overloadedDeclarations": [], 8058 "referencedDeclaration": 59751, 8059 "src": "14275:16:110", 8060 "typeDescriptions": { 8061 "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr", 8062 "typeString": "struct OptimismPortal.ProvenWithdrawal memory" 8063 } 8064 }, 8065 "id": 59766, 8066 "isConstant": false, 8067 "isLValue": true, 8068 "isPure": false, 8069 "lValueRequested": false, 8070 "memberName": "timestamp", 8071 "nodeType": "MemberAccess", 8072 "referencedDeclaration": 59309, 8073 "src": "14275:26:110", 8074 "typeDescriptions": { 8075 "typeIdentifier": "t_uint128", 8076 "typeString": "uint128" 8077 } 8078 }, 8079 "nodeType": "BinaryOperation", 8080 "operator": ">=", 8081 "rightExpression": { 8082 "arguments": [], 8083 "expression": { 8084 "argumentTypes": [], 8085 "expression": { 8086 "id": 59767, 8087 "name": "l2Oracle", 8088 "nodeType": "Identifier", 8089 "overloadedDeclarations": [], 8090 "referencedDeclaration": 59341, 8091 "src": "14305:8:110", 8092 "typeDescriptions": { 8093 "typeIdentifier": "t_contract$_L2OutputOracle_$59272", 8094 "typeString": "contract L2OutputOracle" 8095 } 8096 }, 8097 "id": 59768, 8098 "isConstant": false, 8099 "isLValue": false, 8100 "isPure": false, 8101 "lValueRequested": false, 8102 "memberName": "startingTimestamp", 8103 "nodeType": "MemberAccess", 8104 "referencedDeclaration": 58789, 8105 "src": "14305:26:110", 8106 "typeDescriptions": { 8107 "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", 8108 "typeString": "function () view external returns (uint256)" 8109 } 8110 }, 8111 "id": 59769, 8112 "isConstant": false, 8113 "isLValue": false, 8114 "isPure": false, 8115 "kind": "functionCall", 8116 "lValueRequested": false, 8117 "names": [], 8118 "nodeType": "FunctionCall", 8119 "src": "14305:28:110", 8120 "tryCall": false, 8121 "typeDescriptions": { 8122 "typeIdentifier": "t_uint256", 8123 "typeString": "uint256" 8124 } 8125 }, 8126 "src": "14275:58:110", 8127 "typeDescriptions": { 8128 "typeIdentifier": "t_bool", 8129 "typeString": "bool" 8130 } 8131 }, 8132 { 8133 "hexValue": "4f7074696d69736d506f7274616c3a207769746864726177616c2074696d657374616d70206c657373207468616e204c32204f7261636c65207374617274696e672074696d657374616d70", 8134 "id": 59771, 8135 "isConstant": false, 8136 "isLValue": false, 8137 "isPure": true, 8138 "kind": "string", 8139 "lValueRequested": false, 8140 "nodeType": "Literal", 8141 "src": "14347:77:110", 8142 "typeDescriptions": { 8143 "typeIdentifier": "t_stringliteral_5c7c78dd7f8d5d79f2ff5ac1a4442209661a78fffa24392f88331b760a60bedd", 8144 "typeString": "literal_string \"OptimismPortal: withdrawal timestamp less than L2 Oracle starting timestamp\"" 8145 }, 8146 "value": "OptimismPortal: withdrawal timestamp less than L2 Oracle starting timestamp" 8147 } 8148 ], 8149 "expression": { 8150 "argumentTypes": [ 8151 { 8152 "typeIdentifier": "t_bool", 8153 "typeString": "bool" 8154 }, 8155 { 8156 "typeIdentifier": "t_stringliteral_5c7c78dd7f8d5d79f2ff5ac1a4442209661a78fffa24392f88331b760a60bedd", 8157 "typeString": "literal_string \"OptimismPortal: withdrawal timestamp less than L2 Oracle starting timestamp\"" 8158 } 8159 ], 8160 "id": 59764, 8161 "name": "require", 8162 "nodeType": "Identifier", 8163 "overloadedDeclarations": [ 8164 -18, 8165 -18 8166 ], 8167 "referencedDeclaration": -18, 8168 "src": "14254:7:110", 8169 "typeDescriptions": { 8170 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", 8171 "typeString": "function (bool,string memory) pure" 8172 } 8173 }, 8174 "id": 59772, 8175 "isConstant": false, 8176 "isLValue": false, 8177 "isPure": false, 8178 "kind": "functionCall", 8179 "lValueRequested": false, 8180 "names": [], 8181 "nodeType": "FunctionCall", 8182 "src": "14254:180:110", 8183 "tryCall": false, 8184 "typeDescriptions": { 8185 "typeIdentifier": "t_tuple$__$", 8186 "typeString": "tuple()" 8187 } 8188 }, 8189 "id": 59773, 8190 "nodeType": "ExpressionStatement", 8191 "src": "14254:180:110" 8192 }, 8193 { 8194 "expression": { 8195 "arguments": [ 8196 { 8197 "arguments": [ 8198 { 8199 "expression": { 8200 "id": 59776, 8201 "name": "provenWithdrawal", 8202 "nodeType": "Identifier", 8203 "overloadedDeclarations": [], 8204 "referencedDeclaration": 59751, 8205 "src": "14853:16:110", 8206 "typeDescriptions": { 8207 "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr", 8208 "typeString": "struct OptimismPortal.ProvenWithdrawal memory" 8209 } 8210 }, 8211 "id": 59777, 8212 "isConstant": false, 8213 "isLValue": true, 8214 "isPure": false, 8215 "lValueRequested": false, 8216 "memberName": "timestamp", 8217 "nodeType": "MemberAccess", 8218 "referencedDeclaration": 59309, 8219 "src": "14853:26:110", 8220 "typeDescriptions": { 8221 "typeIdentifier": "t_uint128", 8222 "typeString": "uint128" 8223 } 8224 } 8225 ], 8226 "expression": { 8227 "argumentTypes": [ 8228 { 8229 "typeIdentifier": "t_uint128", 8230 "typeString": "uint128" 8231 } 8232 ], 8233 "id": 59775, 8234 "name": "_isFinalizationPeriodElapsed", 8235 "nodeType": "Identifier", 8236 "overloadedDeclarations": [], 8237 "referencedDeclaration": 59996, 8238 "src": "14824:28:110", 8239 "typeDescriptions": { 8240 "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", 8241 "typeString": "function (uint256) view returns (bool)" 8242 } 8243 }, 8244 "id": 59778, 8245 "isConstant": false, 8246 "isLValue": false, 8247 "isPure": false, 8248 "kind": "functionCall", 8249 "lValueRequested": false, 8250 "names": [], 8251 "nodeType": "FunctionCall", 8252 "src": "14824:56:110", 8253 "tryCall": false, 8254 "typeDescriptions": { 8255 "typeIdentifier": "t_bool", 8256 "typeString": "bool" 8257 } 8258 }, 8259 { 8260 "hexValue": "4f7074696d69736d506f7274616c3a2070726f76656e207769746864726177616c2066696e616c697a6174696f6e20706572696f6420686173206e6f7420656c6170736564", 8261 "id": 59779, 8262 "isConstant": false, 8263 "isLValue": false, 8264 "isPure": true, 8265 "kind": "string", 8266 "lValueRequested": false, 8267 "nodeType": "Literal", 8268 "src": "14894:71:110", 8269 "typeDescriptions": { 8270 "typeIdentifier": "t_stringliteral_98a66ca0d4a8e5a839585f0aa5b4b8fc94a946382443fc5580ee1ed6e6237f70", 8271 "typeString": "literal_string \"OptimismPortal: proven withdrawal finalization period has not elapsed\"" 8272 }, 8273 "value": "OptimismPortal: proven withdrawal finalization period has not elapsed" 8274 } 8275 ], 8276 "expression": { 8277 "argumentTypes": [ 8278 { 8279 "typeIdentifier": "t_bool", 8280 "typeString": "bool" 8281 }, 8282 { 8283 "typeIdentifier": "t_stringliteral_98a66ca0d4a8e5a839585f0aa5b4b8fc94a946382443fc5580ee1ed6e6237f70", 8284 "typeString": "literal_string \"OptimismPortal: proven withdrawal finalization period has not elapsed\"" 8285 } 8286 ], 8287 "id": 59774, 8288 "name": "require", 8289 "nodeType": "Identifier", 8290 "overloadedDeclarations": [ 8291 -18, 8292 -18 8293 ], 8294 "referencedDeclaration": -18, 8295 "src": "14803:7:110", 8296 "typeDescriptions": { 8297 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", 8298 "typeString": "function (bool,string memory) pure" 8299 } 8300 }, 8301 "id": 59780, 8302 "isConstant": false, 8303 "isLValue": false, 8304 "isPure": false, 8305 "kind": "functionCall", 8306 "lValueRequested": false, 8307 "names": [], 8308 "nodeType": "FunctionCall", 8309 "src": "14803:172:110", 8310 "tryCall": false, 8311 "typeDescriptions": { 8312 "typeIdentifier": "t_tuple$__$", 8313 "typeString": "tuple()" 8314 } 8315 }, 8316 "id": 59781, 8317 "nodeType": "ExpressionStatement", 8318 "src": "14803:172:110" 8319 }, 8320 { 8321 "assignments": [ 8322 59786 8323 ], 8324 "declarations": [ 8325 { 8326 "constant": false, 8327 "id": 59786, 8328 "mutability": "mutable", 8329 "name": "proposal", 8330 "nameLocation": "15174:8:110", 8331 "nodeType": "VariableDeclaration", 8332 "scope": 59869, 8333 "src": "15146:36:110", 8334 "stateVariable": false, 8335 "storageLocation": "memory", 8336 "typeDescriptions": { 8337 "typeIdentifier": "t_struct$_OutputProposal_$70553_memory_ptr", 8338 "typeString": "struct Types.OutputProposal" 8339 }, 8340 "typeName": { 8341 "id": 59785, 8342 "nodeType": "UserDefinedTypeName", 8343 "pathNode": { 8344 "id": 59784, 8345 "name": "Types.OutputProposal", 8346 "nodeType": "IdentifierPath", 8347 "referencedDeclaration": 70553, 8348 "src": "15146:20:110" 8349 }, 8350 "referencedDeclaration": 70553, 8351 "src": "15146:20:110", 8352 "typeDescriptions": { 8353 "typeIdentifier": "t_struct$_OutputProposal_$70553_storage_ptr", 8354 "typeString": "struct Types.OutputProposal" 8355 } 8356 }, 8357 "visibility": "internal" 8358 } 8359 ], 8360 "id": 59792, 8361 "initialValue": { 8362 "arguments": [ 8363 { 8364 "expression": { 8365 "id": 59789, 8366 "name": "provenWithdrawal", 8367 "nodeType": "Identifier", 8368 "overloadedDeclarations": [], 8369 "referencedDeclaration": 59751, 8370 "src": "15206:16:110", 8371 "typeDescriptions": { 8372 "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr", 8373 "typeString": "struct OptimismPortal.ProvenWithdrawal memory" 8374 } 8375 }, 8376 "id": 59790, 8377 "isConstant": false, 8378 "isLValue": true, 8379 "isPure": false, 8380 "lValueRequested": false, 8381 "memberName": "l2OutputIndex", 8382 "nodeType": "MemberAccess", 8383 "referencedDeclaration": 59311, 8384 "src": "15206:30:110", 8385 "typeDescriptions": { 8386 "typeIdentifier": "t_uint128", 8387 "typeString": "uint128" 8388 } 8389 } 8390 ], 8391 "expression": { 8392 "argumentTypes": [ 8393 { 8394 "typeIdentifier": "t_uint128", 8395 "typeString": "uint128" 8396 } 8397 ], 8398 "expression": { 8399 "id": 59787, 8400 "name": "l2Oracle", 8401 "nodeType": "Identifier", 8402 "overloadedDeclarations": [], 8403 "referencedDeclaration": 59341, 8404 "src": "15185:8:110", 8405 "typeDescriptions": { 8406 "typeIdentifier": "t_contract$_L2OutputOracle_$59272", 8407 "typeString": "contract L2OutputOracle" 8408 } 8409 }, 8410 "id": 59788, 8411 "isConstant": false, 8412 "isLValue": false, 8413 "isPure": false, 8414 "lValueRequested": false, 8415 "memberName": "getL2Output", 8416 "nodeType": "MemberAccess", 8417 "referencedDeclaration": 59112, 8418 "src": "15185:20:110", 8419 "typeDescriptions": { 8420 "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_OutputProposal_$70553_memory_ptr_$", 8421 "typeString": "function (uint256) view external returns (struct Types.OutputProposal memory)" 8422 } 8423 }, 8424 "id": 59791, 8425 "isConstant": false, 8426 "isLValue": false, 8427 "isPure": false, 8428 "kind": "functionCall", 8429 "lValueRequested": false, 8430 "names": [], 8431 "nodeType": "FunctionCall", 8432 "src": "15185:52:110", 8433 "tryCall": false, 8434 "typeDescriptions": { 8435 "typeIdentifier": "t_struct$_OutputProposal_$70553_memory_ptr", 8436 "typeString": "struct Types.OutputProposal memory" 8437 } 8438 }, 8439 "nodeType": "VariableDeclarationStatement", 8440 "src": "15146:91:110" 8441 }, 8442 { 8443 "expression": { 8444 "arguments": [ 8445 { 8446 "commonType": { 8447 "typeIdentifier": "t_bytes32", 8448 "typeString": "bytes32" 8449 }, 8450 "id": 59798, 8451 "isConstant": false, 8452 "isLValue": false, 8453 "isPure": false, 8454 "lValueRequested": false, 8455 "leftExpression": { 8456 "expression": { 8457 "id": 59794, 8458 "name": "proposal", 8459 "nodeType": "Identifier", 8460 "overloadedDeclarations": [], 8461 "referencedDeclaration": 59786, 8462 "src": "15525:8:110", 8463 "typeDescriptions": { 8464 "typeIdentifier": "t_struct$_OutputProposal_$70553_memory_ptr", 8465 "typeString": "struct Types.OutputProposal memory" 8466 } 8467 }, 8468 "id": 59795, 8469 "isConstant": false, 8470 "isLValue": true, 8471 "isPure": false, 8472 "lValueRequested": false, 8473 "memberName": "outputRoot", 8474 "nodeType": "MemberAccess", 8475 "referencedDeclaration": 70548, 8476 "src": "15525:19:110", 8477 "typeDescriptions": { 8478 "typeIdentifier": "t_bytes32", 8479 "typeString": "bytes32" 8480 } 8481 }, 8482 "nodeType": "BinaryOperation", 8483 "operator": "==", 8484 "rightExpression": { 8485 "expression": { 8486 "id": 59796, 8487 "name": "provenWithdrawal", 8488 "nodeType": "Identifier", 8489 "overloadedDeclarations": [], 8490 "referencedDeclaration": 59751, 8491 "src": "15548:16:110", 8492 "typeDescriptions": { 8493 "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr", 8494 "typeString": "struct OptimismPortal.ProvenWithdrawal memory" 8495 } 8496 }, 8497 "id": 59797, 8498 "isConstant": false, 8499 "isLValue": true, 8500 "isPure": false, 8501 "lValueRequested": false, 8502 "memberName": "outputRoot", 8503 "nodeType": "MemberAccess", 8504 "referencedDeclaration": 59307, 8505 "src": "15548:27:110", 8506 "typeDescriptions": { 8507 "typeIdentifier": "t_bytes32", 8508 "typeString": "bytes32" 8509 } 8510 }, 8511 "src": "15525:50:110", 8512 "typeDescriptions": { 8513 "typeIdentifier": "t_bool", 8514 "typeString": "bool" 8515 } 8516 }, 8517 { 8518 "hexValue": "4f7074696d69736d506f7274616c3a206f757470757420726f6f742070726f76656e206973206e6f74207468652073616d652061732063757272656e74206f757470757420726f6f74", 8519 "id": 59799, 8520 "isConstant": false, 8521 "isLValue": false, 8522 "isPure": true, 8523 "kind": "string", 8524 "lValueRequested": false, 8525 "nodeType": "Literal", 8526 "src": "15589:75:110", 8527 "typeDescriptions": { 8528 "typeIdentifier": "t_stringliteral_2bee9e90a055fc3fdea28727a1d039ffb281ae00c8962ca3262d0dabb187a280", 8529 "typeString": "literal_string \"OptimismPortal: output root proven is not the same as current output root\"" 8530 }, 8531 "value": "OptimismPortal: output root proven is not the same as current output root" 8532 } 8533 ], 8534 "expression": { 8535 "argumentTypes": [ 8536 { 8537 "typeIdentifier": "t_bool", 8538 "typeString": "bool" 8539 }, 8540 { 8541 "typeIdentifier": "t_stringliteral_2bee9e90a055fc3fdea28727a1d039ffb281ae00c8962ca3262d0dabb187a280", 8542 "typeString": "literal_string \"OptimismPortal: output root proven is not the same as current output root\"" 8543 } 8544 ], 8545 "id": 59793, 8546 "name": "require", 8547 "nodeType": "Identifier", 8548 "overloadedDeclarations": [ 8549 -18, 8550 -18 8551 ], 8552 "referencedDeclaration": -18, 8553 "src": "15504:7:110", 8554 "typeDescriptions": { 8555 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", 8556 "typeString": "function (bool,string memory) pure" 8557 } 8558 }, 8559 "id": 59800, 8560 "isConstant": false, 8561 "isLValue": false, 8562 "isPure": false, 8563 "kind": "functionCall", 8564 "lValueRequested": false, 8565 "names": [], 8566 "nodeType": "FunctionCall", 8567 "src": "15504:170:110", 8568 "tryCall": false, 8569 "typeDescriptions": { 8570 "typeIdentifier": "t_tuple$__$", 8571 "typeString": "tuple()" 8572 } 8573 }, 8574 "id": 59801, 8575 "nodeType": "ExpressionStatement", 8576 "src": "15504:170:110" 8577 }, 8578 { 8579 "expression": { 8580 "arguments": [ 8581 { 8582 "arguments": [ 8583 { 8584 "expression": { 8585 "id": 59804, 8586 "name": "proposal", 8587 "nodeType": "Identifier", 8588 "overloadedDeclarations": [], 8589 "referencedDeclaration": 59786, 8590 "src": "15802:8:110", 8591 "typeDescriptions": { 8592 "typeIdentifier": "t_struct$_OutputProposal_$70553_memory_ptr", 8593 "typeString": "struct Types.OutputProposal memory" 8594 } 8595 }, 8596 "id": 59805, 8597 "isConstant": false, 8598 "isLValue": true, 8599 "isPure": false, 8600 "lValueRequested": false, 8601 "memberName": "timestamp", 8602 "nodeType": "MemberAccess", 8603 "referencedDeclaration": 70550, 8604 "src": "15802:18:110", 8605 "typeDescriptions": { 8606 "typeIdentifier": "t_uint128", 8607 "typeString": "uint128" 8608 } 8609 } 8610 ], 8611 "expression": { 8612 "argumentTypes": [ 8613 { 8614 "typeIdentifier": "t_uint128", 8615 "typeString": "uint128" 8616 } 8617 ], 8618 "id": 59803, 8619 "name": "_isFinalizationPeriodElapsed", 8620 "nodeType": "Identifier", 8621 "overloadedDeclarations": [], 8622 "referencedDeclaration": 59996, 8623 "src": "15773:28:110", 8624 "typeDescriptions": { 8625 "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", 8626 "typeString": "function (uint256) view returns (bool)" 8627 } 8628 }, 8629 "id": 59806, 8630 "isConstant": false, 8631 "isLValue": false, 8632 "isPure": false, 8633 "kind": "functionCall", 8634 "lValueRequested": false, 8635 "names": [], 8636 "nodeType": "FunctionCall", 8637 "src": "15773:48:110", 8638 "tryCall": false, 8639 "typeDescriptions": { 8640 "typeIdentifier": "t_bool", 8641 "typeString": "bool" 8642 } 8643 }, 8644 { 8645 "hexValue": "4f7074696d69736d506f7274616c3a206f75747075742070726f706f73616c2066696e616c697a6174696f6e20706572696f6420686173206e6f7420656c6170736564", 8646 "id": 59807, 8647 "isConstant": false, 8648 "isLValue": false, 8649 "isPure": true, 8650 "kind": "string", 8651 "lValueRequested": false, 8652 "nodeType": "Literal", 8653 "src": "15835:69:110", 8654 "typeDescriptions": { 8655 "typeIdentifier": "t_stringliteral_e2e53e5f2e5c146290963511529e48aa3e1570a42475ccc1fb3eba5190175c74", 8656 "typeString": "literal_string \"OptimismPortal: output proposal finalization period has not elapsed\"" 8657 }, 8658 "value": "OptimismPortal: output proposal finalization period has not elapsed" 8659 } 8660 ], 8661 "expression": { 8662 "argumentTypes": [ 8663 { 8664 "typeIdentifier": "t_bool", 8665 "typeString": "bool" 8666 }, 8667 { 8668 "typeIdentifier": "t_stringliteral_e2e53e5f2e5c146290963511529e48aa3e1570a42475ccc1fb3eba5190175c74", 8669 "typeString": "literal_string \"OptimismPortal: output proposal finalization period has not elapsed\"" 8670 } 8671 ], 8672 "id": 59802, 8673 "name": "require", 8674 "nodeType": "Identifier", 8675 "overloadedDeclarations": [ 8676 -18, 8677 -18 8678 ], 8679 "referencedDeclaration": -18, 8680 "src": "15752:7:110", 8681 "typeDescriptions": { 8682 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", 8683 "typeString": "function (bool,string memory) pure" 8684 } 8685 }, 8686 "id": 59808, 8687 "isConstant": false, 8688 "isLValue": false, 8689 "isPure": false, 8690 "kind": "functionCall", 8691 "lValueRequested": false, 8692 "names": [], 8693 "nodeType": "FunctionCall", 8694 "src": "15752:162:110", 8695 "tryCall": false, 8696 "typeDescriptions": { 8697 "typeIdentifier": "t_tuple$__$", 8698 "typeString": "tuple()" 8699 } 8700 }, 8701 "id": 59809, 8702 "nodeType": "ExpressionStatement", 8703 "src": "15752:162:110" 8704 }, 8705 { 8706 "expression": { 8707 "arguments": [ 8708 { 8709 "commonType": { 8710 "typeIdentifier": "t_bool", 8711 "typeString": "bool" 8712 }, 8713 "id": 59815, 8714 "isConstant": false, 8715 "isLValue": false, 8716 "isPure": false, 8717 "lValueRequested": false, 8718 "leftExpression": { 8719 "baseExpression": { 8720 "id": 59811, 8721 "name": "finalizedWithdrawals", 8722 "nodeType": "Identifier", 8723 "overloadedDeclarations": [], 8724 "referencedDeclaration": 59328, 8725 "src": "16030:20:110", 8726 "typeDescriptions": { 8727 "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", 8728 "typeString": "mapping(bytes32 => bool)" 8729 } 8730 }, 8731 "id": 59813, 8732 "indexExpression": { 8733 "id": 59812, 8734 "name": "withdrawalHash", 8735 "nodeType": "Identifier", 8736 "overloadedDeclarations": [], 8737 "referencedDeclaration": 59743, 8738 "src": "16051:14:110", 8739 "typeDescriptions": { 8740 "typeIdentifier": "t_bytes32", 8741 "typeString": "bytes32" 8742 } 8743 }, 8744 "isConstant": false, 8745 "isLValue": true, 8746 "isPure": false, 8747 "lValueRequested": false, 8748 "nodeType": "IndexAccess", 8749 "src": "16030:36:110", 8750 "typeDescriptions": { 8751 "typeIdentifier": "t_bool", 8752 "typeString": "bool" 8753 } 8754 }, 8755 "nodeType": "BinaryOperation", 8756 "operator": "==", 8757 "rightExpression": { 8758 "hexValue": "66616c7365", 8759 "id": 59814, 8760 "isConstant": false, 8761 "isLValue": false, 8762 "isPure": true, 8763 "kind": "bool", 8764 "lValueRequested": false, 8765 "nodeType": "Literal", 8766 "src": "16070:5:110", 8767 "typeDescriptions": { 8768 "typeIdentifier": "t_bool", 8769 "typeString": "bool" 8770 }, 8771 "value": "false" 8772 }, 8773 "src": "16030:45:110", 8774 "typeDescriptions": { 8775 "typeIdentifier": "t_bool", 8776 "typeString": "bool" 8777 } 8778 }, 8779 { 8780 "hexValue": "4f7074696d69736d506f7274616c3a207769746864726177616c2068617320616c7265616479206265656e2066696e616c697a6564", 8781 "id": 59816, 8782 "isConstant": false, 8783 "isLValue": false, 8784 "isPure": true, 8785 "kind": "string", 8786 "lValueRequested": false, 8787 "nodeType": "Literal", 8788 "src": "16077:55:110", 8789 "typeDescriptions": { 8790 "typeIdentifier": "t_stringliteral_2a1157cbf4171a399f26106a5211324151853c78d2faca1fb1d3acbf755aa485", 8791 "typeString": "literal_string \"OptimismPortal: withdrawal has already been finalized\"" 8792 }, 8793 "value": "OptimismPortal: withdrawal has already been finalized" 8794 } 8795 ], 8796 "expression": { 8797 "argumentTypes": [ 8798 { 8799 "typeIdentifier": "t_bool", 8800 "typeString": "bool" 8801 }, 8802 { 8803 "typeIdentifier": "t_stringliteral_2a1157cbf4171a399f26106a5211324151853c78d2faca1fb1d3acbf755aa485", 8804 "typeString": "literal_string \"OptimismPortal: withdrawal has already been finalized\"" 8805 } 8806 ], 8807 "id": 59810, 8808 "name": "require", 8809 "nodeType": "Identifier", 8810 "overloadedDeclarations": [ 8811 -18, 8812 -18 8813 ], 8814 "referencedDeclaration": -18, 8815 "src": "16022:7:110", 8816 "typeDescriptions": { 8817 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", 8818 "typeString": "function (bool,string memory) pure" 8819 } 8820 }, 8821 "id": 59817, 8822 "isConstant": false, 8823 "isLValue": false, 8824 "isPure": false, 8825 "kind": "functionCall", 8826 "lValueRequested": false, 8827 "names": [], 8828 "nodeType": "FunctionCall", 8829 "src": "16022:111:110", 8830 "tryCall": false, 8831 "typeDescriptions": { 8832 "typeIdentifier": "t_tuple$__$", 8833 "typeString": "tuple()" 8834 } 8835 }, 8836 "id": 59818, 8837 "nodeType": "ExpressionStatement", 8838 "src": "16022:111:110" 8839 }, 8840 { 8841 "expression": { 8842 "id": 59823, 8843 "isConstant": false, 8844 "isLValue": false, 8845 "isPure": false, 8846 "lValueRequested": false, 8847 "leftHandSide": { 8848 "baseExpression": { 8849 "id": 59819, 8850 "name": "finalizedWithdrawals", 8851 "nodeType": "Identifier", 8852 "overloadedDeclarations": [], 8853 "referencedDeclaration": 59328, 8854 "src": "16213:20:110", 8855 "typeDescriptions": { 8856 "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", 8857 "typeString": "mapping(bytes32 => bool)" 8858 } 8859 }, 8860 "id": 59821, 8861 "indexExpression": { 8862 "id": 59820, 8863 "name": "withdrawalHash", 8864 "nodeType": "Identifier", 8865 "overloadedDeclarations": [], 8866 "referencedDeclaration": 59743, 8867 "src": "16234:14:110", 8868 "typeDescriptions": { 8869 "typeIdentifier": "t_bytes32", 8870 "typeString": "bytes32" 8871 } 8872 }, 8873 "isConstant": false, 8874 "isLValue": true, 8875 "isPure": false, 8876 "lValueRequested": true, 8877 "nodeType": "IndexAccess", 8878 "src": "16213:36:110", 8879 "typeDescriptions": { 8880 "typeIdentifier": "t_bool", 8881 "typeString": "bool" 8882 } 8883 }, 8884 "nodeType": "Assignment", 8885 "operator": "=", 8886 "rightHandSide": { 8887 "hexValue": "74727565", 8888 "id": 59822, 8889 "isConstant": false, 8890 "isLValue": false, 8891 "isPure": true, 8892 "kind": "bool", 8893 "lValueRequested": false, 8894 "nodeType": "Literal", 8895 "src": "16252:4:110", 8896 "typeDescriptions": { 8897 "typeIdentifier": "t_bool", 8898 "typeString": "bool" 8899 }, 8900 "value": "true" 8901 }, 8902 "src": "16213:43:110", 8903 "typeDescriptions": { 8904 "typeIdentifier": "t_bool", 8905 "typeString": "bool" 8906 } 8907 }, 8908 "id": 59824, 8909 "nodeType": "ExpressionStatement", 8910 "src": "16213:43:110" 8911 }, 8912 { 8913 "expression": { 8914 "id": 59828, 8915 "isConstant": false, 8916 "isLValue": false, 8917 "isPure": false, 8918 "lValueRequested": false, 8919 "leftHandSide": { 8920 "id": 59825, 8921 "name": "l2Sender", 8922 "nodeType": "Identifier", 8923 "overloadedDeclarations": [], 8924 "referencedDeclaration": 59323, 8925 "src": "16350:8:110", 8926 "typeDescriptions": { 8927 "typeIdentifier": "t_address", 8928 "typeString": "address" 8929 } 8930 }, 8931 "nodeType": "Assignment", 8932 "operator": "=", 8933 "rightHandSide": { 8934 "expression": { 8935 "id": 59826, 8936 "name": "_tx", 8937 "nodeType": "Identifier", 8938 "overloadedDeclarations": [], 8939 "referencedDeclaration": 59729, 8940 "src": "16361:3:110", 8941 "typeDescriptions": { 8942 "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr", 8943 "typeString": "struct Types.WithdrawalTransaction memory" 8944 } 8945 }, 8946 "id": 59827, 8947 "isConstant": false, 8948 "isLValue": true, 8949 "isPure": false, 8950 "lValueRequested": false, 8951 "memberName": "sender", 8952 "nodeType": "MemberAccess", 8953 "referencedDeclaration": 70585, 8954 "src": "16361:10:110", 8955 "typeDescriptions": { 8956 "typeIdentifier": "t_address", 8957 "typeString": "address" 8958 } 8959 }, 8960 "src": "16350:21:110", 8961 "typeDescriptions": { 8962 "typeIdentifier": "t_address", 8963 "typeString": "address" 8964 } 8965 }, 8966 "id": 59829, 8967 "nodeType": "ExpressionStatement", 8968 "src": "16350:21:110" 8969 }, 8970 { 8971 "assignments": [ 8972 59831 8973 ], 8974 "declarations": [ 8975 { 8976 "constant": false, 8977 "id": 59831, 8978 "mutability": "mutable", 8979 "name": "success", 8980 "nameLocation": "16996:7:110", 8981 "nodeType": "VariableDeclaration", 8982 "scope": 59869, 8983 "src": "16991:12:110", 8984 "stateVariable": false, 8985 "storageLocation": "default", 8986 "typeDescriptions": { 8987 "typeIdentifier": "t_bool", 8988 "typeString": "bool" 8989 }, 8990 "typeName": { 8991 "id": 59830, 8992 "name": "bool", 8993 "nodeType": "ElementaryTypeName", 8994 "src": "16991:4:110", 8995 "typeDescriptions": { 8996 "typeIdentifier": "t_bool", 8997 "typeString": "bool" 8998 } 8999 }, 9000 "visibility": "internal" 9001 } 9002 ], 9003 "id": 59843, 9004 "initialValue": { 9005 "arguments": [ 9006 { 9007 "expression": { 9008 "id": 59834, 9009 "name": "_tx", 9010 "nodeType": "Identifier", 9011 "overloadedDeclarations": [], 9012 "referencedDeclaration": 59729, 9013 "src": "17030:3:110", 9014 "typeDescriptions": { 9015 "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr", 9016 "typeString": "struct Types.WithdrawalTransaction memory" 9017 } 9018 }, 9019 "id": 59835, 9020 "isConstant": false, 9021 "isLValue": true, 9022 "isPure": false, 9023 "lValueRequested": false, 9024 "memberName": "target", 9025 "nodeType": "MemberAccess", 9026 "referencedDeclaration": 70587, 9027 "src": "17030:10:110", 9028 "typeDescriptions": { 9029 "typeIdentifier": "t_address", 9030 "typeString": "address" 9031 } 9032 }, 9033 { 9034 "expression": { 9035 "id": 59836, 9036 "name": "_tx", 9037 "nodeType": "Identifier", 9038 "overloadedDeclarations": [], 9039 "referencedDeclaration": 59729, 9040 "src": "17042:3:110", 9041 "typeDescriptions": { 9042 "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr", 9043 "typeString": "struct Types.WithdrawalTransaction memory" 9044 } 9045 }, 9046 "id": 59837, 9047 "isConstant": false, 9048 "isLValue": true, 9049 "isPure": false, 9050 "lValueRequested": false, 9051 "memberName": "gasLimit", 9052 "nodeType": "MemberAccess", 9053 "referencedDeclaration": 70591, 9054 "src": "17042:12:110", 9055 "typeDescriptions": { 9056 "typeIdentifier": "t_uint256", 9057 "typeString": "uint256" 9058 } 9059 }, 9060 { 9061 "expression": { 9062 "id": 59838, 9063 "name": "_tx", 9064 "nodeType": "Identifier", 9065 "overloadedDeclarations": [], 9066 "referencedDeclaration": 59729, 9067 "src": "17056:3:110", 9068 "typeDescriptions": { 9069 "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr", 9070 "typeString": "struct Types.WithdrawalTransaction memory" 9071 } 9072 }, 9073 "id": 59839, 9074 "isConstant": false, 9075 "isLValue": true, 9076 "isPure": false, 9077 "lValueRequested": false, 9078 "memberName": "value", 9079 "nodeType": "MemberAccess", 9080 "referencedDeclaration": 70589, 9081 "src": "17056:9:110", 9082 "typeDescriptions": { 9083 "typeIdentifier": "t_uint256", 9084 "typeString": "uint256" 9085 } 9086 }, 9087 { 9088 "expression": { 9089 "id": 59840, 9090 "name": "_tx", 9091 "nodeType": "Identifier", 9092 "overloadedDeclarations": [], 9093 "referencedDeclaration": 59729, 9094 "src": "17067:3:110", 9095 "typeDescriptions": { 9096 "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr", 9097 "typeString": "struct Types.WithdrawalTransaction memory" 9098 } 9099 }, 9100 "id": 59841, 9101 "isConstant": false, 9102 "isLValue": true, 9103 "isPure": false, 9104 "lValueRequested": false, 9105 "memberName": "data", 9106 "nodeType": "MemberAccess", 9107 "referencedDeclaration": 70593, 9108 "src": "17067:8:110", 9109 "typeDescriptions": { 9110 "typeIdentifier": "t_bytes_memory_ptr", 9111 "typeString": "bytes memory" 9112 } 9113 } 9114 ], 9115 "expression": { 9116 "argumentTypes": [ 9117 { 9118 "typeIdentifier": "t_address", 9119 "typeString": "address" 9120 }, 9121 { 9122 "typeIdentifier": "t_uint256", 9123 "typeString": "uint256" 9124 }, 9125 { 9126 "typeIdentifier": "t_uint256", 9127 "typeString": "uint256" 9128 }, 9129 { 9130 "typeIdentifier": "t_bytes_memory_ptr", 9131 "typeString": "bytes memory" 9132 } 9133 ], 9134 "expression": { 9135 "id": 59832, 9136 "name": "SafeCall", 9137 "nodeType": "Identifier", 9138 "overloadedDeclarations": [], 9139 "referencedDeclaration": 70479, 9140 "src": "17006:8:110", 9141 "typeDescriptions": { 9142 "typeIdentifier": "t_type$_t_contract$_SafeCall_$70479_$", 9143 "typeString": "type(library SafeCall)" 9144 } 9145 }, 9146 "id": 59833, 9147 "isConstant": false, 9148 "isLValue": false, 9149 "isPure": false, 9150 "lValueRequested": false, 9151 "memberName": "callWithMinGas", 9152 "nodeType": "MemberAccess", 9153 "referencedDeclaration": 70478, 9154 "src": "17006:23:110", 9155 "typeDescriptions": { 9156 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", 9157 "typeString": "function (address,uint256,uint256,bytes memory) returns (bool)" 9158 } 9159 }, 9160 "id": 59842, 9161 "isConstant": false, 9162 "isLValue": false, 9163 "isPure": false, 9164 "kind": "functionCall", 9165 "lValueRequested": false, 9166 "names": [], 9167 "nodeType": "FunctionCall", 9168 "src": "17006:70:110", 9169 "tryCall": false, 9170 "typeDescriptions": { 9171 "typeIdentifier": "t_bool", 9172 "typeString": "bool" 9173 } 9174 }, 9175 "nodeType": "VariableDeclarationStatement", 9176 "src": "16991:85:110" 9177 }, 9178 { 9179 "expression": { 9180 "id": 59847, 9181 "isConstant": false, 9182 "isLValue": false, 9183 "isPure": false, 9184 "lValueRequested": false, 9185 "leftHandSide": { 9186 "id": 59844, 9187 "name": "l2Sender", 9188 "nodeType": "Identifier", 9189 "overloadedDeclarations": [], 9190 "referencedDeclaration": 59323, 9191 "src": "17144:8:110", 9192 "typeDescriptions": { 9193 "typeIdentifier": "t_address", 9194 "typeString": "address" 9195 } 9196 }, 9197 "nodeType": "Assignment", 9198 "operator": "=", 9199 "rightHandSide": { 9200 "expression": { 9201 "id": 59845, 9202 "name": "Constants", 9203 "nodeType": "Identifier", 9204 "overloadedDeclarations": [], 9205 "referencedDeclaration": 69571, 9206 "src": "17155:9:110", 9207 "typeDescriptions": { 9208 "typeIdentifier": "t_type$_t_contract$_Constants_$69571_$", 9209 "typeString": "type(library Constants)" 9210 } 9211 }, 9212 "id": 59846, 9213 "isConstant": false, 9214 "isLValue": false, 9215 "isPure": false, 9216 "lValueRequested": false, 9217 "memberName": "DEFAULT_L2_SENDER", 9218 "nodeType": "MemberAccess", 9219 "referencedDeclaration": 69529, 9220 "src": "17155:27:110", 9221 "typeDescriptions": { 9222 "typeIdentifier": "t_address", 9223 "typeString": "address" 9224 } 9225 }, 9226 "src": "17144:38:110", 9227 "typeDescriptions": { 9228 "typeIdentifier": "t_address", 9229 "typeString": "address" 9230 } 9231 }, 9232 "id": 59848, 9233 "nodeType": "ExpressionStatement", 9234 "src": "17144:38:110" 9235 }, 9236 { 9237 "eventCall": { 9238 "arguments": [ 9239 { 9240 "id": 59850, 9241 "name": "withdrawalHash", 9242 "nodeType": "Identifier", 9243 "overloadedDeclarations": [], 9244 "referencedDeclaration": 59743, 9245 "src": "17361:14:110", 9246 "typeDescriptions": { 9247 "typeIdentifier": "t_bytes32", 9248 "typeString": "bytes32" 9249 } 9250 }, 9251 { 9252 "id": 59851, 9253 "name": "success", 9254 "nodeType": "Identifier", 9255 "overloadedDeclarations": [], 9256 "referencedDeclaration": 59831, 9257 "src": "17377:7:110", 9258 "typeDescriptions": { 9259 "typeIdentifier": "t_bool", 9260 "typeString": "bool" 9261 } 9262 } 9263 ], 9264 "expression": { 9265 "argumentTypes": [ 9266 { 9267 "typeIdentifier": "t_bytes32", 9268 "typeString": "bytes32" 9269 }, 9270 { 9271 "typeIdentifier": "t_bool", 9272 "typeString": "bool" 9273 } 9274 ], 9275 "id": 59849, 9276 "name": "WithdrawalFinalized", 9277 "nodeType": "Identifier", 9278 "overloadedDeclarations": [], 9279 "referencedDeclaration": 59375, 9280 "src": "17341:19:110", 9281 "typeDescriptions": { 9282 "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$", 9283 "typeString": "function (bytes32,bool)" 9284 } 9285 }, 9286 "id": 59852, 9287 "isConstant": false, 9288 "isLValue": false, 9289 "isPure": false, 9290 "kind": "functionCall", 9291 "lValueRequested": false, 9292 "names": [], 9293 "nodeType": "FunctionCall", 9294 "src": "17341:44:110", 9295 "tryCall": false, 9296 "typeDescriptions": { 9297 "typeIdentifier": "t_tuple$__$", 9298 "typeString": "tuple()" 9299 } 9300 }, 9301 "id": 59853, 9302 "nodeType": "EmitStatement", 9303 "src": "17336:49:110" 9304 }, 9305 { 9306 "condition": { 9307 "commonType": { 9308 "typeIdentifier": "t_bool", 9309 "typeString": "bool" 9310 }, 9311 "id": 59862, 9312 "isConstant": false, 9313 "isLValue": false, 9314 "isPure": false, 9315 "lValueRequested": false, 9316 "leftExpression": { 9317 "commonType": { 9318 "typeIdentifier": "t_bool", 9319 "typeString": "bool" 9320 }, 9321 "id": 59856, 9322 "isConstant": false, 9323 "isLValue": false, 9324 "isPure": false, 9325 "lValueRequested": false, 9326 "leftExpression": { 9327 "id": 59854, 9328 "name": "success", 9329 "nodeType": "Identifier", 9330 "overloadedDeclarations": [], 9331 "referencedDeclaration": 59831, 9332 "src": "17649:7:110", 9333 "typeDescriptions": { 9334 "typeIdentifier": "t_bool", 9335 "typeString": "bool" 9336 } 9337 }, 9338 "nodeType": "BinaryOperation", 9339 "operator": "==", 9340 "rightExpression": { 9341 "hexValue": "66616c7365", 9342 "id": 59855, 9343 "isConstant": false, 9344 "isLValue": false, 9345 "isPure": true, 9346 "kind": "bool", 9347 "lValueRequested": false, 9348 "nodeType": "Literal", 9349 "src": "17660:5:110", 9350 "typeDescriptions": { 9351 "typeIdentifier": "t_bool", 9352 "typeString": "bool" 9353 }, 9354 "value": "false" 9355 }, 9356 "src": "17649:16:110", 9357 "typeDescriptions": { 9358 "typeIdentifier": "t_bool", 9359 "typeString": "bool" 9360 } 9361 }, 9362 "nodeType": "BinaryOperation", 9363 "operator": "&&", 9364 "rightExpression": { 9365 "commonType": { 9366 "typeIdentifier": "t_address", 9367 "typeString": "address" 9368 }, 9369 "id": 59861, 9370 "isConstant": false, 9371 "isLValue": false, 9372 "isPure": false, 9373 "lValueRequested": false, 9374 "leftExpression": { 9375 "expression": { 9376 "id": 59857, 9377 "name": "tx", 9378 "nodeType": "Identifier", 9379 "overloadedDeclarations": [], 9380 "referencedDeclaration": -26, 9381 "src": "17669:2:110", 9382 "typeDescriptions": { 9383 "typeIdentifier": "t_magic_transaction", 9384 "typeString": "tx" 9385 } 9386 }, 9387 "id": 59858, 9388 "isConstant": false, 9389 "isLValue": false, 9390 "isPure": false, 9391 "lValueRequested": false, 9392 "memberName": "origin", 9393 "nodeType": "MemberAccess", 9394 "src": "17669:9:110", 9395 "typeDescriptions": { 9396 "typeIdentifier": "t_address", 9397 "typeString": "address" 9398 } 9399 }, 9400 "nodeType": "BinaryOperation", 9401 "operator": "==", 9402 "rightExpression": { 9403 "expression": { 9404 "id": 59859, 9405 "name": "Constants", 9406 "nodeType": "Identifier", 9407 "overloadedDeclarations": [], 9408 "referencedDeclaration": 69571, 9409 "src": "17682:9:110", 9410 "typeDescriptions": { 9411 "typeIdentifier": "t_type$_t_contract$_Constants_$69571_$", 9412 "typeString": "type(library Constants)" 9413 } 9414 }, 9415 "id": 59860, 9416 "isConstant": false, 9417 "isLValue": false, 9418 "isPure": false, 9419 "lValueRequested": false, 9420 "memberName": "ESTIMATION_ADDRESS", 9421 "nodeType": "MemberAccess", 9422 "referencedDeclaration": 69525, 9423 "src": "17682:28:110", 9424 "typeDescriptions": { 9425 "typeIdentifier": "t_address", 9426 "typeString": "address" 9427 } 9428 }, 9429 "src": "17669:41:110", 9430 "typeDescriptions": { 9431 "typeIdentifier": "t_bool", 9432 "typeString": "bool" 9433 } 9434 }, 9435 "src": "17649:61:110", 9436 "typeDescriptions": { 9437 "typeIdentifier": "t_bool", 9438 "typeString": "bool" 9439 } 9440 }, 9441 "id": 59868, 9442 "nodeType": "IfStatement", 9443 "src": "17645:135:110", 9444 "trueBody": { 9445 "id": 59867, 9446 "nodeType": "Block", 9447 "src": "17712:68:110", 9448 "statements": [ 9449 { 9450 "expression": { 9451 "arguments": [ 9452 { 9453 "hexValue": "4f7074696d69736d506f7274616c3a207769746864726177616c206661696c6564", 9454 "id": 59864, 9455 "isConstant": false, 9456 "isLValue": false, 9457 "isPure": true, 9458 "kind": "string", 9459 "lValueRequested": false, 9460 "nodeType": "Literal", 9461 "src": "17733:35:110", 9462 "typeDescriptions": { 9463 "typeIdentifier": "t_stringliteral_a0543a16ebb14b11743ebd89913eeb3a89aab6ee2824b60e6e93ee3d5b6c55bb", 9464 "typeString": "literal_string \"OptimismPortal: withdrawal failed\"" 9465 }, 9466 "value": "OptimismPortal: withdrawal failed" 9467 } 9468 ], 9469 "expression": { 9470 "argumentTypes": [ 9471 { 9472 "typeIdentifier": "t_stringliteral_a0543a16ebb14b11743ebd89913eeb3a89aab6ee2824b60e6e93ee3d5b6c55bb", 9473 "typeString": "literal_string \"OptimismPortal: withdrawal failed\"" 9474 } 9475 ], 9476 "id": 59863, 9477 "name": "revert", 9478 "nodeType": "Identifier", 9479 "overloadedDeclarations": [ 9480 -19, 9481 -19 9482 ], 9483 "referencedDeclaration": -19, 9484 "src": "17726:6:110", 9485 "typeDescriptions": { 9486 "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", 9487 "typeString": "function (string memory) pure" 9488 } 9489 }, 9490 "id": 59865, 9491 "isConstant": false, 9492 "isLValue": false, 9493 "isPure": false, 9494 "kind": "functionCall", 9495 "lValueRequested": false, 9496 "names": [], 9497 "nodeType": "FunctionCall", 9498 "src": "17726:43:110", 9499 "tryCall": false, 9500 "typeDescriptions": { 9501 "typeIdentifier": "t_tuple$__$", 9502 "typeString": "tuple()" 9503 } 9504 }, 9505 "id": 59866, 9506 "nodeType": "ExpressionStatement", 9507 "src": "17726:43:110" 9508 } 9509 ] 9510 } 9511 } 9512 ] 9513 }, 9514 "documentation": { 9515 "id": 59726, 9516 "nodeType": "StructuredDocumentation", 9517 "src": "12840:102:110", 9518 "text": "@notice Finalizes a withdrawal transaction.\n @param _tx Withdrawal transaction to finalize." 9519 }, 9520 "functionSelector": "8c3152e9", 9521 "implemented": true, 9522 "kind": "function", 9523 "modifiers": [ 9524 { 9525 "id": 59732, 9526 "kind": "modifierInvocation", 9527 "modifierName": { 9528 "id": 59731, 9529 "name": "whenNotPaused", 9530 "nodeType": "IdentifierPath", 9531 "referencedDeclaration": 59397, 9532 "src": "13035:13:110" 9533 }, 9534 "nodeType": "ModifierInvocation", 9535 "src": "13035:13:110" 9536 } 9537 ], 9538 "name": "finalizeWithdrawalTransaction", 9539 "nameLocation": "12956:29:110", 9540 "parameters": { 9541 "id": 59730, 9542 "nodeType": "ParameterList", 9543 "parameters": [ 9544 { 9545 "constant": false, 9546 "id": 59729, 9547 "mutability": "mutable", 9548 "name": "_tx", 9549 "nameLocation": "13021:3:110", 9550 "nodeType": "VariableDeclaration", 9551 "scope": 59870, 9552 "src": "12986:38:110", 9553 "stateVariable": false, 9554 "storageLocation": "memory", 9555 "typeDescriptions": { 9556 "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr", 9557 "typeString": "struct Types.WithdrawalTransaction" 9558 }, 9559 "typeName": { 9560 "id": 59728, 9561 "nodeType": "UserDefinedTypeName", 9562 "pathNode": { 9563 "id": 59727, 9564 "name": "Types.WithdrawalTransaction", 9565 "nodeType": "IdentifierPath", 9566 "referencedDeclaration": 70594, 9567 "src": "12986:27:110" 9568 }, 9569 "referencedDeclaration": 70594, 9570 "src": "12986:27:110", 9571 "typeDescriptions": { 9572 "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_storage_ptr", 9573 "typeString": "struct Types.WithdrawalTransaction" 9574 } 9575 }, 9576 "visibility": "internal" 9577 } 9578 ], 9579 "src": "12985:40:110" 9580 }, 9581 "returnParameters": { 9582 "id": 59733, 9583 "nodeType": "ParameterList", 9584 "parameters": [], 9585 "src": "13049:0:110" 9586 }, 9587 "scope": 59997, 9588 "stateMutability": "nonpayable", 9589 "virtual": false, 9590 "visibility": "external" 9591 }, 9592 { 9593 "id": 59961, 9594 "nodeType": "FunctionDefinition", 9595 "src": "18516:1971:110", 9596 "nodes": [], 9597 "body": { 9598 "id": 59960, 9599 "nodeType": "Block", 9600 "src": "18737:1750:110", 9601 "nodes": [], 9602 "statements": [ 9603 { 9604 "condition": { 9605 "id": 59887, 9606 "name": "_isCreation", 9607 "nodeType": "Identifier", 9608 "overloadedDeclarations": [], 9609 "referencedDeclaration": 59879, 9610 "src": "18876:11:110", 9611 "typeDescriptions": { 9612 "typeIdentifier": "t_bool", 9613 "typeString": "bool" 9614 } 9615 }, 9616 "id": 59899, 9617 "nodeType": "IfStatement", 9618 "src": "18872:136:110", 9619 "trueBody": { 9620 "id": 59898, 9621 "nodeType": "Block", 9622 "src": "18889:119:110", 9623 "statements": [ 9624 { 9625 "expression": { 9626 "arguments": [ 9627 { 9628 "commonType": { 9629 "typeIdentifier": "t_address", 9630 "typeString": "address" 9631 }, 9632 "id": 59894, 9633 "isConstant": false, 9634 "isLValue": false, 9635 "isPure": false, 9636 "lValueRequested": false, 9637 "leftExpression": { 9638 "id": 59889, 9639 "name": "_to", 9640 "nodeType": "Identifier", 9641 "overloadedDeclarations": [], 9642 "referencedDeclaration": 59873, 9643 "src": "18911:3:110", 9644 "typeDescriptions": { 9645 "typeIdentifier": "t_address", 9646 "typeString": "address" 9647 } 9648 }, 9649 "nodeType": "BinaryOperation", 9650 "operator": "==", 9651 "rightExpression": { 9652 "arguments": [ 9653 { 9654 "hexValue": "30", 9655 "id": 59892, 9656 "isConstant": false, 9657 "isLValue": false, 9658 "isPure": true, 9659 "kind": "number", 9660 "lValueRequested": false, 9661 "nodeType": "Literal", 9662 "src": "18926:1:110", 9663 "typeDescriptions": { 9664 "typeIdentifier": "t_rational_0_by_1", 9665 "typeString": "int_const 0" 9666 }, 9667 "value": "0" 9668 } 9669 ], 9670 "expression": { 9671 "argumentTypes": [ 9672 { 9673 "typeIdentifier": "t_rational_0_by_1", 9674 "typeString": "int_const 0" 9675 } 9676 ], 9677 "id": 59891, 9678 "isConstant": false, 9679 "isLValue": false, 9680 "isPure": true, 9681 "lValueRequested": false, 9682 "nodeType": "ElementaryTypeNameExpression", 9683 "src": "18918:7:110", 9684 "typeDescriptions": { 9685 "typeIdentifier": "t_type$_t_address_$", 9686 "typeString": "type(address)" 9687 }, 9688 "typeName": { 9689 "id": 59890, 9690 "name": "address", 9691 "nodeType": "ElementaryTypeName", 9692 "src": "18918:7:110", 9693 "typeDescriptions": {} 9694 } 9695 }, 9696 "id": 59893, 9697 "isConstant": false, 9698 "isLValue": false, 9699 "isPure": true, 9700 "kind": "typeConversion", 9701 "lValueRequested": false, 9702 "names": [], 9703 "nodeType": "FunctionCall", 9704 "src": "18918:10:110", 9705 "tryCall": false, 9706 "typeDescriptions": { 9707 "typeIdentifier": "t_address", 9708 "typeString": "address" 9709 } 9710 }, 9711 "src": "18911:17:110", 9712 "typeDescriptions": { 9713 "typeIdentifier": "t_bool", 9714 "typeString": "bool" 9715 } 9716 }, 9717 { 9718 "hexValue": "4f7074696d69736d506f7274616c3a206d7573742073656e6420746f2061646472657373283029207768656e206372656174696e67206120636f6e7472616374", 9719 "id": 59895, 9720 "isConstant": false, 9721 "isLValue": false, 9722 "isPure": true, 9723 "kind": "string", 9724 "lValueRequested": false, 9725 "nodeType": "Literal", 9726 "src": "18930:66:110", 9727 "typeDescriptions": { 9728 "typeIdentifier": "t_stringliteral_35a8c36d4f7649c8575025c089af07faab9c54040307e9d6ec8463fe4050a639", 9729 "typeString": "literal_string \"OptimismPortal: must send to address(0) when creating a contract\"" 9730 }, 9731 "value": "OptimismPortal: must send to address(0) when creating a contract" 9732 } 9733 ], 9734 "expression": { 9735 "argumentTypes": [ 9736 { 9737 "typeIdentifier": "t_bool", 9738 "typeString": "bool" 9739 }, 9740 { 9741 "typeIdentifier": "t_stringliteral_35a8c36d4f7649c8575025c089af07faab9c54040307e9d6ec8463fe4050a639", 9742 "typeString": "literal_string \"OptimismPortal: must send to address(0) when creating a contract\"" 9743 } 9744 ], 9745 "id": 59888, 9746 "name": "require", 9747 "nodeType": "Identifier", 9748 "overloadedDeclarations": [ 9749 -18, 9750 -18 9751 ], 9752 "referencedDeclaration": -18, 9753 "src": "18903:7:110", 9754 "typeDescriptions": { 9755 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", 9756 "typeString": "function (bool,string memory) pure" 9757 } 9758 }, 9759 "id": 59896, 9760 "isConstant": false, 9761 "isLValue": false, 9762 "isPure": false, 9763 "kind": "functionCall", 9764 "lValueRequested": false, 9765 "names": [], 9766 "nodeType": "FunctionCall", 9767 "src": "18903:94:110", 9768 "tryCall": false, 9769 "typeDescriptions": { 9770 "typeIdentifier": "t_tuple$__$", 9771 "typeString": "tuple()" 9772 } 9773 }, 9774 "id": 59897, 9775 "nodeType": "ExpressionStatement", 9776 "src": "18903:94:110" 9777 } 9778 ] 9779 } 9780 }, 9781 { 9782 "expression": { 9783 "arguments": [ 9784 { 9785 "commonType": { 9786 "typeIdentifier": "t_uint64", 9787 "typeString": "uint64" 9788 }, 9789 "id": 59909, 9790 "isConstant": false, 9791 "isLValue": false, 9792 "isPure": false, 9793 "lValueRequested": false, 9794 "leftExpression": { 9795 "id": 59901, 9796 "name": "_gasLimit", 9797 "nodeType": "Identifier", 9798 "overloadedDeclarations": [], 9799 "referencedDeclaration": 59877, 9800 "src": "19163:9:110", 9801 "typeDescriptions": { 9802 "typeIdentifier": "t_uint64", 9803 "typeString": "uint64" 9804 } 9805 }, 9806 "nodeType": "BinaryOperation", 9807 "operator": ">=", 9808 "rightExpression": { 9809 "arguments": [ 9810 { 9811 "arguments": [ 9812 { 9813 "expression": { 9814 "id": 59905, 9815 "name": "_data", 9816 "nodeType": "Identifier", 9817 "overloadedDeclarations": [], 9818 "referencedDeclaration": 59881, 9819 "src": "19199:5:110", 9820 "typeDescriptions": { 9821 "typeIdentifier": "t_bytes_memory_ptr", 9822 "typeString": "bytes memory" 9823 } 9824 }, 9825 "id": 59906, 9826 "isConstant": false, 9827 "isLValue": false, 9828 "isPure": false, 9829 "lValueRequested": false, 9830 "memberName": "length", 9831 "nodeType": "MemberAccess", 9832 "src": "19199:12:110", 9833 "typeDescriptions": { 9834 "typeIdentifier": "t_uint256", 9835 "typeString": "uint256" 9836 } 9837 } 9838 ], 9839 "expression": { 9840 "argumentTypes": [ 9841 { 9842 "typeIdentifier": "t_uint256", 9843 "typeString": "uint256" 9844 } 9845 ], 9846 "id": 59904, 9847 "isConstant": false, 9848 "isLValue": false, 9849 "isPure": true, 9850 "lValueRequested": false, 9851 "nodeType": "ElementaryTypeNameExpression", 9852 "src": "19192:6:110", 9853 "typeDescriptions": { 9854 "typeIdentifier": "t_type$_t_uint64_$", 9855 "typeString": "type(uint64)" 9856 }, 9857 "typeName": { 9858 "id": 59903, 9859 "name": "uint64", 9860 "nodeType": "ElementaryTypeName", 9861 "src": "19192:6:110", 9862 "typeDescriptions": {} 9863 } 9864 }, 9865 "id": 59907, 9866 "isConstant": false, 9867 "isLValue": false, 9868 "isPure": false, 9869 "kind": "typeConversion", 9870 "lValueRequested": false, 9871 "names": [], 9872 "nodeType": "FunctionCall", 9873 "src": "19192:20:110", 9874 "tryCall": false, 9875 "typeDescriptions": { 9876 "typeIdentifier": "t_uint64", 9877 "typeString": "uint64" 9878 } 9879 } 9880 ], 9881 "expression": { 9882 "argumentTypes": [ 9883 { 9884 "typeIdentifier": "t_uint64", 9885 "typeString": "uint64" 9886 } 9887 ], 9888 "id": 59902, 9889 "name": "minimumGasLimit", 9890 "nodeType": "Identifier", 9891 "overloadedDeclarations": [], 9892 "referencedDeclaration": 59557, 9893 "src": "19176:15:110", 9894 "typeDescriptions": { 9895 "typeIdentifier": "t_function_internal_pure$_t_uint64_$returns$_t_uint64_$", 9896 "typeString": "function (uint64) pure returns (uint64)" 9897 } 9898 }, 9899 "id": 59908, 9900 "isConstant": false, 9901 "isLValue": false, 9902 "isPure": false, 9903 "kind": "functionCall", 9904 "lValueRequested": false, 9905 "names": [], 9906 "nodeType": "FunctionCall", 9907 "src": "19176:37:110", 9908 "tryCall": false, 9909 "typeDescriptions": { 9910 "typeIdentifier": "t_uint64", 9911 "typeString": "uint64" 9912 } 9913 }, 9914 "src": "19163:50:110", 9915 "typeDescriptions": { 9916 "typeIdentifier": "t_bool", 9917 "typeString": "bool" 9918 } 9919 }, 9920 { 9921 "hexValue": "4f7074696d69736d506f7274616c3a20676173206c696d697420746f6f20736d616c6c", 9922 "id": 59910, 9923 "isConstant": false, 9924 "isLValue": false, 9925 "isPure": true, 9926 "kind": "string", 9927 "lValueRequested": false, 9928 "nodeType": "Literal", 9929 "src": "19215:37:110", 9930 "typeDescriptions": { 9931 "typeIdentifier": "t_stringliteral_0a0c886a0c5bbb9f3e1be0cff5d8eb64eb65c2a072ac278a98f80049a2d6c3f8", 9932 "typeString": "literal_string \"OptimismPortal: gas limit too small\"" 9933 }, 9934 "value": "OptimismPortal: gas limit too small" 9935 } 9936 ], 9937 "expression": { 9938 "argumentTypes": [ 9939 { 9940 "typeIdentifier": "t_bool", 9941 "typeString": "bool" 9942 }, 9943 { 9944 "typeIdentifier": "t_stringliteral_0a0c886a0c5bbb9f3e1be0cff5d8eb64eb65c2a072ac278a98f80049a2d6c3f8", 9945 "typeString": "literal_string \"OptimismPortal: gas limit too small\"" 9946 } 9947 ], 9948 "id": 59900, 9949 "name": "require", 9950 "nodeType": "Identifier", 9951 "overloadedDeclarations": [ 9952 -18, 9953 -18 9954 ], 9955 "referencedDeclaration": -18, 9956 "src": "19155:7:110", 9957 "typeDescriptions": { 9958 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", 9959 "typeString": "function (bool,string memory) pure" 9960 } 9961 }, 9962 "id": 59911, 9963 "isConstant": false, 9964 "isLValue": false, 9965 "isPure": false, 9966 "kind": "functionCall", 9967 "lValueRequested": false, 9968 "names": [], 9969 "nodeType": "FunctionCall", 9970 "src": "19155:98:110", 9971 "tryCall": false, 9972 "typeDescriptions": { 9973 "typeIdentifier": "t_tuple$__$", 9974 "typeString": "tuple()" 9975 } 9976 }, 9977 "id": 59912, 9978 "nodeType": "ExpressionStatement", 9979 "src": "19155:98:110" 9980 }, 9981 { 9982 "expression": { 9983 "arguments": [ 9984 { 9985 "commonType": { 9986 "typeIdentifier": "t_uint256", 9987 "typeString": "uint256" 9988 }, 9989 "id": 59917, 9990 "isConstant": false, 9991 "isLValue": false, 9992 "isPure": false, 9993 "lValueRequested": false, 9994 "leftExpression": { 9995 "expression": { 9996 "id": 59914, 9997 "name": "_data", 9998 "nodeType": "Identifier", 9999 "overloadedDeclarations": [], 10000 "referencedDeclaration": 59881, 10001 "src": "19632:5:110", 10002 "typeDescriptions": { 10003 "typeIdentifier": "t_bytes_memory_ptr", 10004 "typeString": "bytes memory" 10005 } 10006 }, 10007 "id": 59915, 10008 "isConstant": false, 10009 "isLValue": false, 10010 "isPure": false, 10011 "lValueRequested": false, 10012 "memberName": "length", 10013 "nodeType": "MemberAccess", 10014 "src": "19632:12:110", 10015 "typeDescriptions": { 10016 "typeIdentifier": "t_uint256", 10017 "typeString": "uint256" 10018 } 10019 }, 10020 "nodeType": "BinaryOperation", 10021 "operator": "<=", 10022 "rightExpression": { 10023 "hexValue": "3132305f303030", 10024 "id": 59916, 10025 "isConstant": false, 10026 "isLValue": false, 10027 "isPure": true, 10028 "kind": "number", 10029 "lValueRequested": false, 10030 "nodeType": "Literal", 10031 "src": "19648:7:110", 10032 "typeDescriptions": { 10033 "typeIdentifier": "t_rational_120000_by_1", 10034 "typeString": "int_const 120000" 10035 }, 10036 "value": "120_000" 10037 }, 10038 "src": "19632:23:110", 10039 "typeDescriptions": { 10040 "typeIdentifier": "t_bool", 10041 "typeString": "bool" 10042 } 10043 }, 10044 { 10045 "hexValue": "4f7074696d69736d506f7274616c3a206461746120746f6f206c61726765", 10046 "id": 59918, 10047 "isConstant": false, 10048 "isLValue": false, 10049 "isPure": true, 10050 "kind": "string", 10051 "lValueRequested": false, 10052 "nodeType": "Literal", 10053 "src": "19657:32:110", 10054 "typeDescriptions": { 10055 "typeIdentifier": "t_stringliteral_ed1d4c6d62337124a330de9c9e42dcf809033e5ae909544279fbaee2e389020b", 10056 "typeString": "literal_string \"OptimismPortal: data too large\"" 10057 }, 10058 "value": "OptimismPortal: data too large" 10059 } 10060 ], 10061 "expression": { 10062 "argumentTypes": [ 10063 { 10064 "typeIdentifier": "t_bool", 10065 "typeString": "bool" 10066 }, 10067 { 10068 "typeIdentifier": "t_stringliteral_ed1d4c6d62337124a330de9c9e42dcf809033e5ae909544279fbaee2e389020b", 10069 "typeString": "literal_string \"OptimismPortal: data too large\"" 10070 } 10071 ], 10072 "id": 59913, 10073 "name": "require", 10074 "nodeType": "Identifier", 10075 "overloadedDeclarations": [ 10076 -18, 10077 -18 10078 ], 10079 "referencedDeclaration": -18, 10080 "src": "19624:7:110", 10081 "typeDescriptions": { 10082 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", 10083 "typeString": "function (bool,string memory) pure" 10084 } 10085 }, 10086 "id": 59919, 10087 "isConstant": false, 10088 "isLValue": false, 10089 "isPure": false, 10090 "kind": "functionCall", 10091 "lValueRequested": false, 10092 "names": [], 10093 "nodeType": "FunctionCall", 10094 "src": "19624:66:110", 10095 "tryCall": false, 10096 "typeDescriptions": { 10097 "typeIdentifier": "t_tuple$__$", 10098 "typeString": "tuple()" 10099 } 10100 }, 10101 "id": 59920, 10102 "nodeType": "ExpressionStatement", 10103 "src": "19624:66:110" 10104 }, 10105 { 10106 "assignments": [ 10107 59922 10108 ], 10109 "declarations": [ 10110 { 10111 "constant": false, 10112 "id": 59922, 10113 "mutability": "mutable", 10114 "name": "from", 10115 "nameLocation": "19789:4:110", 10116 "nodeType": "VariableDeclaration", 10117 "scope": 59960, 10118 "src": "19781:12:110", 10119 "stateVariable": false, 10120 "storageLocation": "default", 10121 "typeDescriptions": { 10122 "typeIdentifier": "t_address", 10123 "typeString": "address" 10124 }, 10125 "typeName": { 10126 "id": 59921, 10127 "name": "address", 10128 "nodeType": "ElementaryTypeName", 10129 "src": "19781:7:110", 10130 "stateMutability": "nonpayable", 10131 "typeDescriptions": { 10132 "typeIdentifier": "t_address", 10133 "typeString": "address" 10134 } 10135 }, 10136 "visibility": "internal" 10137 } 10138 ], 10139 "id": 59925, 10140 "initialValue": { 10141 "expression": { 10142 "id": 59923, 10143 "name": "msg", 10144 "nodeType": "Identifier", 10145 "overloadedDeclarations": [], 10146 "referencedDeclaration": -15, 10147 "src": "19796:3:110", 10148 "typeDescriptions": { 10149 "typeIdentifier": "t_magic_message", 10150 "typeString": "msg" 10151 } 10152 }, 10153 "id": 59924, 10154 "isConstant": false, 10155 "isLValue": false, 10156 "isPure": false, 10157 "lValueRequested": false, 10158 "memberName": "sender", 10159 "nodeType": "MemberAccess", 10160 "src": "19796:10:110", 10161 "typeDescriptions": { 10162 "typeIdentifier": "t_address", 10163 "typeString": "address" 10164 } 10165 }, 10166 "nodeType": "VariableDeclarationStatement", 10167 "src": "19781:25:110" 10168 }, 10169 { 10170 "condition": { 10171 "commonType": { 10172 "typeIdentifier": "t_address", 10173 "typeString": "address" 10174 }, 10175 "id": 59930, 10176 "isConstant": false, 10177 "isLValue": false, 10178 "isPure": false, 10179 "lValueRequested": false, 10180 "leftExpression": { 10181 "expression": { 10182 "id": 59926, 10183 "name": "msg", 10184 "nodeType": "Identifier", 10185 "overloadedDeclarations": [], 10186 "referencedDeclaration": -15, 10187 "src": "19820:3:110", 10188 "typeDescriptions": { 10189 "typeIdentifier": "t_magic_message", 10190 "typeString": "msg" 10191 } 10192 }, 10193 "id": 59927, 10194 "isConstant": false, 10195 "isLValue": false, 10196 "isPure": false, 10197 "lValueRequested": false, 10198 "memberName": "sender", 10199 "nodeType": "MemberAccess", 10200 "src": "19820:10:110", 10201 "typeDescriptions": { 10202 "typeIdentifier": "t_address", 10203 "typeString": "address" 10204 } 10205 }, 10206 "nodeType": "BinaryOperation", 10207 "operator": "!=", 10208 "rightExpression": { 10209 "expression": { 10210 "id": 59928, 10211 "name": "tx", 10212 "nodeType": "Identifier", 10213 "overloadedDeclarations": [], 10214 "referencedDeclaration": -26, 10215 "src": "19834:2:110", 10216 "typeDescriptions": { 10217 "typeIdentifier": "t_magic_transaction", 10218 "typeString": "tx" 10219 } 10220 }, 10221 "id": 59929, 10222 "isConstant": false, 10223 "isLValue": false, 10224 "isPure": false, 10225 "lValueRequested": false, 10226 "memberName": "origin", 10227 "nodeType": "MemberAccess", 10228 "src": "19834:9:110", 10229 "typeDescriptions": { 10230 "typeIdentifier": "t_address", 10231 "typeString": "address" 10232 } 10233 }, 10234 "src": "19820:23:110", 10235 "typeDescriptions": { 10236 "typeIdentifier": "t_bool", 10237 "typeString": "bool" 10238 } 10239 }, 10240 "id": 59940, 10241 "nodeType": "IfStatement", 10242 "src": "19816:108:110", 10243 "trueBody": { 10244 "id": 59939, 10245 "nodeType": "Block", 10246 "src": "19845:79:110", 10247 "statements": [ 10248 { 10249 "expression": { 10250 "id": 59937, 10251 "isConstant": false, 10252 "isLValue": false, 10253 "isPure": false, 10254 "lValueRequested": false, 10255 "leftHandSide": { 10256 "id": 59931, 10257 "name": "from", 10258 "nodeType": "Identifier", 10259 "overloadedDeclarations": [], 10260 "referencedDeclaration": 59922, 10261 "src": "19859:4:110", 10262 "typeDescriptions": { 10263 "typeIdentifier": "t_address", 10264 "typeString": "address" 10265 } 10266 }, 10267 "nodeType": "Assignment", 10268 "operator": "=", 10269 "rightHandSide": { 10270 "arguments": [ 10271 { 10272 "expression": { 10273 "id": 59934, 10274 "name": "msg", 10275 "nodeType": "Identifier", 10276 "overloadedDeclarations": [], 10277 "referencedDeclaration": -15, 10278 "src": "19902:3:110", 10279 "typeDescriptions": { 10280 "typeIdentifier": "t_magic_message", 10281 "typeString": "msg" 10282 } 10283 }, 10284 "id": 59935, 10285 "isConstant": false, 10286 "isLValue": false, 10287 "isPure": false, 10288 "lValueRequested": false, 10289 "memberName": "sender", 10290 "nodeType": "MemberAccess", 10291 "src": "19902:10:110", 10292 "typeDescriptions": { 10293 "typeIdentifier": "t_address", 10294 "typeString": "address" 10295 } 10296 } 10297 ], 10298 "expression": { 10299 "argumentTypes": [ 10300 { 10301 "typeIdentifier": "t_address", 10302 "typeString": "address" 10303 } 10304 ], 10305 "expression": { 10306 "id": 59932, 10307 "name": "AddressAliasHelper", 10308 "nodeType": "Identifier", 10309 "overloadedDeclarations": [], 10310 "referencedDeclaration": 78127, 10311 "src": "19866:18:110", 10312 "typeDescriptions": { 10313 "typeIdentifier": "t_type$_t_contract$_AddressAliasHelper_$78127_$", 10314 "typeString": "type(library AddressAliasHelper)" 10315 } 10316 }, 10317 "id": 59933, 10318 "isConstant": false, 10319 "isLValue": false, 10320 "isPure": false, 10321 "lValueRequested": false, 10322 "memberName": "applyL1ToL2Alias", 10323 "nodeType": "MemberAccess", 10324 "referencedDeclaration": 78104, 10325 "src": "19866:35:110", 10326 "typeDescriptions": { 10327 "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_address_$", 10328 "typeString": "function (address) pure returns (address)" 10329 } 10330 }, 10331 "id": 59936, 10332 "isConstant": false, 10333 "isLValue": false, 10334 "isPure": false, 10335 "kind": "functionCall", 10336 "lValueRequested": false, 10337 "names": [], 10338 "nodeType": "FunctionCall", 10339 "src": "19866:47:110", 10340 "tryCall": false, 10341 "typeDescriptions": { 10342 "typeIdentifier": "t_address", 10343 "typeString": "address" 10344 } 10345 }, 10346 "src": "19859:54:110", 10347 "typeDescriptions": { 10348 "typeIdentifier": "t_address", 10349 "typeString": "address" 10350 } 10351 }, 10352 "id": 59938, 10353 "nodeType": "ExpressionStatement", 10354 "src": "19859:54:110" 10355 } 10356 ] 10357 } 10358 }, 10359 { 10360 "assignments": [ 10361 59942 10362 ], 10363 "declarations": [ 10364 { 10365 "constant": false, 10366 "id": 59942, 10367 "mutability": "mutable", 10368 "name": "opaqueData", 10369 "nameLocation": "20194:10:110", 10370 "nodeType": "VariableDeclaration", 10371 "scope": 59960, 10372 "src": "20181:23:110", 10373 "stateVariable": false, 10374 "storageLocation": "memory", 10375 "typeDescriptions": { 10376 "typeIdentifier": "t_bytes_memory_ptr", 10377 "typeString": "bytes" 10378 }, 10379 "typeName": { 10380 "id": 59941, 10381 "name": "bytes", 10382 "nodeType": "ElementaryTypeName", 10383 "src": "20181:5:110", 10384 "typeDescriptions": { 10385 "typeIdentifier": "t_bytes_storage_ptr", 10386 "typeString": "bytes" 10387 } 10388 }, 10389 "visibility": "internal" 10390 } 10391 ], 10392 "id": 59952, 10393 "initialValue": { 10394 "arguments": [ 10395 { 10396 "expression": { 10397 "id": 59945, 10398 "name": "msg", 10399 "nodeType": "Identifier", 10400 "overloadedDeclarations": [], 10401 "referencedDeclaration": -15, 10402 "src": "20224:3:110", 10403 "typeDescriptions": { 10404 "typeIdentifier": "t_magic_message", 10405 "typeString": "msg" 10406 } 10407 }, 10408 "id": 59946, 10409 "isConstant": false, 10410 "isLValue": false, 10411 "isPure": false, 10412 "lValueRequested": false, 10413 "memberName": "value", 10414 "nodeType": "MemberAccess", 10415 "src": "20224:9:110", 10416 "typeDescriptions": { 10417 "typeIdentifier": "t_uint256", 10418 "typeString": "uint256" 10419 } 10420 }, 10421 { 10422 "id": 59947, 10423 "name": "_value", 10424 "nodeType": "Identifier", 10425 "overloadedDeclarations": [], 10426 "referencedDeclaration": 59875, 10427 "src": "20235:6:110", 10428 "typeDescriptions": { 10429 "typeIdentifier": "t_uint256", 10430 "typeString": "uint256" 10431 } 10432 }, 10433 { 10434 "id": 59948, 10435 "name": "_gasLimit", 10436 "nodeType": "Identifier", 10437 "overloadedDeclarations": [], 10438 "referencedDeclaration": 59877, 10439 "src": "20243:9:110", 10440 "typeDescriptions": { 10441 "typeIdentifier": "t_uint64", 10442 "typeString": "uint64" 10443 } 10444 }, 10445 { 10446 "id": 59949, 10447 "name": "_isCreation", 10448 "nodeType": "Identifier", 10449 "overloadedDeclarations": [], 10450 "referencedDeclaration": 59879, 10451 "src": "20254:11:110", 10452 "typeDescriptions": { 10453 "typeIdentifier": "t_bool", 10454 "typeString": "bool" 10455 } 10456 }, 10457 { 10458 "id": 59950, 10459 "name": "_data", 10460 "nodeType": "Identifier", 10461 "overloadedDeclarations": [], 10462 "referencedDeclaration": 59881, 10463 "src": "20267:5:110", 10464 "typeDescriptions": { 10465 "typeIdentifier": "t_bytes_memory_ptr", 10466 "typeString": "bytes memory" 10467 } 10468 } 10469 ], 10470 "expression": { 10471 "argumentTypes": [ 10472 { 10473 "typeIdentifier": "t_uint256", 10474 "typeString": "uint256" 10475 }, 10476 { 10477 "typeIdentifier": "t_uint256", 10478 "typeString": "uint256" 10479 }, 10480 { 10481 "typeIdentifier": "t_uint64", 10482 "typeString": "uint64" 10483 }, 10484 { 10485 "typeIdentifier": "t_bool", 10486 "typeString": "bool" 10487 }, 10488 { 10489 "typeIdentifier": "t_bytes_memory_ptr", 10490 "typeString": "bytes memory" 10491 } 10492 ], 10493 "expression": { 10494 "id": 59943, 10495 "name": "abi", 10496 "nodeType": "Identifier", 10497 "overloadedDeclarations": [], 10498 "referencedDeclaration": -1, 10499 "src": "20207:3:110", 10500 "typeDescriptions": { 10501 "typeIdentifier": "t_magic_abi", 10502 "typeString": "abi" 10503 } 10504 }, 10505 "id": 59944, 10506 "isConstant": false, 10507 "isLValue": false, 10508 "isPure": true, 10509 "lValueRequested": false, 10510 "memberName": "encodePacked", 10511 "nodeType": "MemberAccess", 10512 "src": "20207:16:110", 10513 "typeDescriptions": { 10514 "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", 10515 "typeString": "function () pure returns (bytes memory)" 10516 } 10517 }, 10518 "id": 59951, 10519 "isConstant": false, 10520 "isLValue": false, 10521 "isPure": false, 10522 "kind": "functionCall", 10523 "lValueRequested": false, 10524 "names": [], 10525 "nodeType": "FunctionCall", 10526 "src": "20207:66:110", 10527 "tryCall": false, 10528 "typeDescriptions": { 10529 "typeIdentifier": "t_bytes_memory_ptr", 10530 "typeString": "bytes memory" 10531 } 10532 }, 10533 "nodeType": "VariableDeclarationStatement", 10534 "src": "20181:92:110" 10535 }, 10536 { 10537 "eventCall": { 10538 "arguments": [ 10539 { 10540 "id": 59954, 10541 "name": "from", 10542 "nodeType": "Identifier", 10543 "overloadedDeclarations": [], 10544 "referencedDeclaration": 59922, 10545 "src": "20441:4:110", 10546 "typeDescriptions": { 10547 "typeIdentifier": "t_address", 10548 "typeString": "address" 10549 } 10550 }, 10551 { 10552 "id": 59955, 10553 "name": "_to", 10554 "nodeType": "Identifier", 10555 "overloadedDeclarations": [], 10556 "referencedDeclaration": 59873, 10557 "src": "20447:3:110", 10558 "typeDescriptions": { 10559 "typeIdentifier": "t_address", 10560 "typeString": "address" 10561 } 10562 }, 10563 { 10564 "id": 59956, 10565 "name": "DEPOSIT_VERSION", 10566 "nodeType": "Identifier", 10567 "overloadedDeclarations": [], 10568 "referencedDeclaration": 59316, 10569 "src": "20452:15:110", 10570 "typeDescriptions": { 10571 "typeIdentifier": "t_uint256", 10572 "typeString": "uint256" 10573 } 10574 }, 10575 { 10576 "id": 59957, 10577 "name": "opaqueData", 10578 "nodeType": "Identifier", 10579 "overloadedDeclarations": [], 10580 "referencedDeclaration": 59942, 10581 "src": "20469:10:110", 10582 "typeDescriptions": { 10583 "typeIdentifier": "t_bytes_memory_ptr", 10584 "typeString": "bytes memory" 10585 } 10586 } 10587 ], 10588 "expression": { 10589 "argumentTypes": [ 10590 { 10591 "typeIdentifier": "t_address", 10592 "typeString": "address" 10593 }, 10594 { 10595 "typeIdentifier": "t_address", 10596 "typeString": "address" 10597 }, 10598 { 10599 "typeIdentifier": "t_uint256", 10600 "typeString": "uint256" 10601 }, 10602 { 10603 "typeIdentifier": "t_bytes_memory_ptr", 10604 "typeString": "bytes memory" 10605 } 10606 ], 10607 "id": 59953, 10608 "name": "TransactionDeposited", 10609 "nodeType": "Identifier", 10610 "overloadedDeclarations": [], 10611 "referencedDeclaration": 59359, 10612 "src": "20420:20:110", 10613 "typeDescriptions": { 10614 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", 10615 "typeString": "function (address,address,uint256,bytes memory)" 10616 } 10617 }, 10618 "id": 59958, 10619 "isConstant": false, 10620 "isLValue": false, 10621 "isPure": false, 10622 "kind": "functionCall", 10623 "lValueRequested": false, 10624 "names": [], 10625 "nodeType": "FunctionCall", 10626 "src": "20420:60:110", 10627 "tryCall": false, 10628 "typeDescriptions": { 10629 "typeIdentifier": "t_tuple$__$", 10630 "typeString": "tuple()" 10631 } 10632 }, 10633 "id": 59959, 10634 "nodeType": "EmitStatement", 10635 "src": "20415:65:110" 10636 } 10637 ] 10638 }, 10639 "documentation": { 10640 "id": 59871, 10641 "nodeType": "StructuredDocumentation", 10642 "src": "17792:719:110", 10643 "text": "@notice Accepts deposits of ETH and data, and emits a TransactionDeposited event for use in\n deriving deposit transactions. Note that if a deposit is made by a contract, its\n address will be aliased when retrieved using `tx.origin` or `msg.sender`. Consider\n using the CrossDomainMessenger contracts for a simpler developer experience.\n @param _to Target address on L2.\n @param _value ETH value to send to the recipient.\n @param _gasLimit Amount of L2 gas to purchase by burning gas on L1.\n @param _isCreation Whether or not the transaction is a contract creation.\n @param _data Data to trigger the recipient with." 10644 }, 10645 "functionSelector": "e9e05c42", 10646 "implemented": true, 10647 "kind": "function", 10648 "modifiers": [ 10649 { 10650 "arguments": [ 10651 { 10652 "id": 59884, 10653 "name": "_gasLimit", 10654 "nodeType": "Identifier", 10655 "overloadedDeclarations": [], 10656 "referencedDeclaration": 59877, 10657 "src": "18722:9:110", 10658 "typeDescriptions": { 10659 "typeIdentifier": "t_uint64", 10660 "typeString": "uint64" 10661 } 10662 } 10663 ], 10664 "id": 59885, 10665 "kind": "modifierInvocation", 10666 "modifierName": { 10667 "id": 59883, 10668 "name": "metered", 10669 "nodeType": "IdentifierPath", 10670 "referencedDeclaration": 60309, 10671 "src": "18714:7:110" 10672 }, 10673 "nodeType": "ModifierInvocation", 10674 "src": "18714:18:110" 10675 } 10676 ], 10677 "name": "depositTransaction", 10678 "nameLocation": "18525:18:110", 10679 "parameters": { 10680 "id": 59882, 10681 "nodeType": "ParameterList", 10682 "parameters": [ 10683 { 10684 "constant": false, 10685 "id": 59873, 10686 "mutability": "mutable", 10687 "name": "_to", 10688 "nameLocation": "18561:3:110", 10689 "nodeType": "VariableDeclaration", 10690 "scope": 59961, 10691 "src": "18553:11:110", 10692 "stateVariable": false, 10693 "storageLocation": "default", 10694 "typeDescriptions": { 10695 "typeIdentifier": "t_address", 10696 "typeString": "address" 10697 }, 10698 "typeName": { 10699 "id": 59872, 10700 "name": "address", 10701 "nodeType": "ElementaryTypeName", 10702 "src": "18553:7:110", 10703 "stateMutability": "nonpayable", 10704 "typeDescriptions": { 10705 "typeIdentifier": "t_address", 10706 "typeString": "address" 10707 } 10708 }, 10709 "visibility": "internal" 10710 }, 10711 { 10712 "constant": false, 10713 "id": 59875, 10714 "mutability": "mutable", 10715 "name": "_value", 10716 "nameLocation": "18582:6:110", 10717 "nodeType": "VariableDeclaration", 10718 "scope": 59961, 10719 "src": "18574:14:110", 10720 "stateVariable": false, 10721 "storageLocation": "default", 10722 "typeDescriptions": { 10723 "typeIdentifier": "t_uint256", 10724 "typeString": "uint256" 10725 }, 10726 "typeName": { 10727 "id": 59874, 10728 "name": "uint256", 10729 "nodeType": "ElementaryTypeName", 10730 "src": "18574:7:110", 10731 "typeDescriptions": { 10732 "typeIdentifier": "t_uint256", 10733 "typeString": "uint256" 10734 } 10735 }, 10736 "visibility": "internal" 10737 }, 10738 { 10739 "constant": false, 10740 "id": 59877, 10741 "mutability": "mutable", 10742 "name": "_gasLimit", 10743 "nameLocation": "18605:9:110", 10744 "nodeType": "VariableDeclaration", 10745 "scope": 59961, 10746 "src": "18598:16:110", 10747 "stateVariable": false, 10748 "storageLocation": "default", 10749 "typeDescriptions": { 10750 "typeIdentifier": "t_uint64", 10751 "typeString": "uint64" 10752 }, 10753 "typeName": { 10754 "id": 59876, 10755 "name": "uint64", 10756 "nodeType": "ElementaryTypeName", 10757 "src": "18598:6:110", 10758 "typeDescriptions": { 10759 "typeIdentifier": "t_uint64", 10760 "typeString": "uint64" 10761 } 10762 }, 10763 "visibility": "internal" 10764 }, 10765 { 10766 "constant": false, 10767 "id": 59879, 10768 "mutability": "mutable", 10769 "name": "_isCreation", 10770 "nameLocation": "18629:11:110", 10771 "nodeType": "VariableDeclaration", 10772 "scope": 59961, 10773 "src": "18624:16:110", 10774 "stateVariable": false, 10775 "storageLocation": "default", 10776 "typeDescriptions": { 10777 "typeIdentifier": "t_bool", 10778 "typeString": "bool" 10779 }, 10780 "typeName": { 10781 "id": 59878, 10782 "name": "bool", 10783 "nodeType": "ElementaryTypeName", 10784 "src": "18624:4:110", 10785 "typeDescriptions": { 10786 "typeIdentifier": "t_bool", 10787 "typeString": "bool" 10788 } 10789 }, 10790 "visibility": "internal" 10791 }, 10792 { 10793 "constant": false, 10794 "id": 59881, 10795 "mutability": "mutable", 10796 "name": "_data", 10797 "nameLocation": "18663:5:110", 10798 "nodeType": "VariableDeclaration", 10799 "scope": 59961, 10800 "src": "18650:18:110", 10801 "stateVariable": false, 10802 "storageLocation": "memory", 10803 "typeDescriptions": { 10804 "typeIdentifier": "t_bytes_memory_ptr", 10805 "typeString": "bytes" 10806 }, 10807 "typeName": { 10808 "id": 59880, 10809 "name": "bytes", 10810 "nodeType": "ElementaryTypeName", 10811 "src": "18650:5:110", 10812 "typeDescriptions": { 10813 "typeIdentifier": "t_bytes_storage_ptr", 10814 "typeString": "bytes" 10815 } 10816 }, 10817 "visibility": "internal" 10818 } 10819 ], 10820 "src": "18543:131:110" 10821 }, 10822 "returnParameters": { 10823 "id": 59886, 10824 "nodeType": "ParameterList", 10825 "parameters": [], 10826 "src": "18737:0:110" 10827 }, 10828 "scope": 59997, 10829 "stateMutability": "payable", 10830 "virtual": false, 10831 "visibility": "public" 10832 }, 10833 { 10834 "id": 59978, 10835 "nodeType": "FunctionDefinition", 10836 "src": "20785:180:110", 10837 "nodes": [], 10838 "body": { 10839 "id": 59977, 10840 "nodeType": "Block", 10841 "src": "20865:100:110", 10842 "nodes": [], 10843 "statements": [ 10844 { 10845 "expression": { 10846 "arguments": [ 10847 { 10848 "expression": { 10849 "arguments": [ 10850 { 10851 "id": 59972, 10852 "name": "_l2OutputIndex", 10853 "nodeType": "Identifier", 10854 "overloadedDeclarations": [], 10855 "referencedDeclaration": 59964, 10856 "src": "20932:14:110", 10857 "typeDescriptions": { 10858 "typeIdentifier": "t_uint256", 10859 "typeString": "uint256" 10860 } 10861 } 10862 ], 10863 "expression": { 10864 "argumentTypes": [ 10865 { 10866 "typeIdentifier": "t_uint256", 10867 "typeString": "uint256" 10868 } 10869 ], 10870 "expression": { 10871 "id": 59970, 10872 "name": "l2Oracle", 10873 "nodeType": "Identifier", 10874 "overloadedDeclarations": [], 10875 "referencedDeclaration": 59341, 10876 "src": "20911:8:110", 10877 "typeDescriptions": { 10878 "typeIdentifier": "t_contract$_L2OutputOracle_$59272", 10879 "typeString": "contract L2OutputOracle" 10880 } 10881 }, 10882 "id": 59971, 10883 "isConstant": false, 10884 "isLValue": false, 10885 "isPure": false, 10886 "lValueRequested": false, 10887 "memberName": "getL2Output", 10888 "nodeType": "MemberAccess", 10889 "referencedDeclaration": 59112, 10890 "src": "20911:20:110", 10891 "typeDescriptions": { 10892 "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_OutputProposal_$70553_memory_ptr_$", 10893 "typeString": "function (uint256) view external returns (struct Types.OutputProposal memory)" 10894 } 10895 }, 10896 "id": 59973, 10897 "isConstant": false, 10898 "isLValue": false, 10899 "isPure": false, 10900 "kind": "functionCall", 10901 "lValueRequested": false, 10902 "names": [], 10903 "nodeType": "FunctionCall", 10904 "src": "20911:36:110", 10905 "tryCall": false, 10906 "typeDescriptions": { 10907 "typeIdentifier": "t_struct$_OutputProposal_$70553_memory_ptr", 10908 "typeString": "struct Types.OutputProposal memory" 10909 } 10910 }, 10911 "id": 59974, 10912 "isConstant": false, 10913 "isLValue": true, 10914 "isPure": false, 10915 "lValueRequested": false, 10916 "memberName": "timestamp", 10917 "nodeType": "MemberAccess", 10918 "referencedDeclaration": 70550, 10919 "src": "20911:46:110", 10920 "typeDescriptions": { 10921 "typeIdentifier": "t_uint128", 10922 "typeString": "uint128" 10923 } 10924 } 10925 ], 10926 "expression": { 10927 "argumentTypes": [ 10928 { 10929 "typeIdentifier": "t_uint128", 10930 "typeString": "uint128" 10931 } 10932 ], 10933 "id": 59969, 10934 "name": "_isFinalizationPeriodElapsed", 10935 "nodeType": "Identifier", 10936 "overloadedDeclarations": [], 10937 "referencedDeclaration": 59996, 10938 "src": "20882:28:110", 10939 "typeDescriptions": { 10940 "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", 10941 "typeString": "function (uint256) view returns (bool)" 10942 } 10943 }, 10944 "id": 59975, 10945 "isConstant": false, 10946 "isLValue": false, 10947 "isPure": false, 10948 "kind": "functionCall", 10949 "lValueRequested": false, 10950 "names": [], 10951 "nodeType": "FunctionCall", 10952 "src": "20882:76:110", 10953 "tryCall": false, 10954 "typeDescriptions": { 10955 "typeIdentifier": "t_bool", 10956 "typeString": "bool" 10957 } 10958 }, 10959 "functionReturnParameters": 59968, 10960 "id": 59976, 10961 "nodeType": "Return", 10962 "src": "20875:83:110" 10963 } 10964 ] 10965 }, 10966 "documentation": { 10967 "id": 59962, 10968 "nodeType": "StructuredDocumentation", 10969 "src": "20493:287:110", 10970 "text": "@notice Determine if a given output is finalized.\n Reverts if the call to L2_ORACLE.getL2Output reverts.\n Returns a boolean otherwise.\n @param _l2OutputIndex Index of the L2 output to check.\n @return Whether or not the output is finalized." 10971 }, 10972 "functionSelector": "6dbffb78", 10973 "implemented": true, 10974 "kind": "function", 10975 "modifiers": [], 10976 "name": "isOutputFinalized", 10977 "nameLocation": "20794:17:110", 10978 "parameters": { 10979 "id": 59965, 10980 "nodeType": "ParameterList", 10981 "parameters": [ 10982 { 10983 "constant": false, 10984 "id": 59964, 10985 "mutability": "mutable", 10986 "name": "_l2OutputIndex", 10987 "nameLocation": "20820:14:110", 10988 "nodeType": "VariableDeclaration", 10989 "scope": 59978, 10990 "src": "20812:22:110", 10991 "stateVariable": false, 10992 "storageLocation": "default", 10993 "typeDescriptions": { 10994 "typeIdentifier": "t_uint256", 10995 "typeString": "uint256" 10996 }, 10997 "typeName": { 10998 "id": 59963, 10999 "name": "uint256", 11000 "nodeType": "ElementaryTypeName", 11001 "src": "20812:7:110", 11002 "typeDescriptions": { 11003 "typeIdentifier": "t_uint256", 11004 "typeString": "uint256" 11005 } 11006 }, 11007 "visibility": "internal" 11008 } 11009 ], 11010 "src": "20811:24:110" 11011 }, 11012 "returnParameters": { 11013 "id": 59968, 11014 "nodeType": "ParameterList", 11015 "parameters": [ 11016 { 11017 "constant": false, 11018 "id": 59967, 11019 "mutability": "mutable", 11020 "name": "", 11021 "nameLocation": "-1:-1:-1", 11022 "nodeType": "VariableDeclaration", 11023 "scope": 59978, 11024 "src": "20859:4:110", 11025 "stateVariable": false, 11026 "storageLocation": "default", 11027 "typeDescriptions": { 11028 "typeIdentifier": "t_bool", 11029 "typeString": "bool" 11030 }, 11031 "typeName": { 11032 "id": 59966, 11033 "name": "bool", 11034 "nodeType": "ElementaryTypeName", 11035 "src": "20859:4:110", 11036 "typeDescriptions": { 11037 "typeIdentifier": "t_bool", 11038 "typeString": "bool" 11039 } 11040 }, 11041 "visibility": "internal" 11042 } 11043 ], 11044 "src": "20858:6:110" 11045 }, 11046 "scope": 59997, 11047 "stateMutability": "view", 11048 "virtual": false, 11049 "visibility": "external" 11050 }, 11051 { 11052 "id": 59996, 11053 "nodeType": "FunctionDefinition", 11054 "src": "21218:180:110", 11055 "nodes": [], 11056 "body": { 11057 "id": 59995, 11058 "nodeType": "Block", 11059 "src": "21305:93:110", 11060 "nodes": [], 11061 "statements": [ 11062 { 11063 "expression": { 11064 "commonType": { 11065 "typeIdentifier": "t_uint256", 11066 "typeString": "uint256" 11067 }, 11068 "id": 59993, 11069 "isConstant": false, 11070 "isLValue": false, 11071 "isPure": false, 11072 "lValueRequested": false, 11073 "leftExpression": { 11074 "expression": { 11075 "id": 59986, 11076 "name": "block", 11077 "nodeType": "Identifier", 11078 "overloadedDeclarations": [], 11079 "referencedDeclaration": -4, 11080 "src": "21322:5:110", 11081 "typeDescriptions": { 11082 "typeIdentifier": "t_magic_block", 11083 "typeString": "block" 11084 } 11085 }, 11086 "id": 59987, 11087 "isConstant": false, 11088 "isLValue": false, 11089 "isPure": false, 11090 "lValueRequested": false, 11091 "memberName": "timestamp", 11092 "nodeType": "MemberAccess", 11093 "src": "21322:15:110", 11094 "typeDescriptions": { 11095 "typeIdentifier": "t_uint256", 11096 "typeString": "uint256" 11097 } 11098 }, 11099 "nodeType": "BinaryOperation", 11100 "operator": ">", 11101 "rightExpression": { 11102 "commonType": { 11103 "typeIdentifier": "t_uint256", 11104 "typeString": "uint256" 11105 }, 11106 "id": 59992, 11107 "isConstant": false, 11108 "isLValue": false, 11109 "isPure": false, 11110 "lValueRequested": false, 11111 "leftExpression": { 11112 "id": 59988, 11113 "name": "_timestamp", 11114 "nodeType": "Identifier", 11115 "overloadedDeclarations": [], 11116 "referencedDeclaration": 59981, 11117 "src": "21340:10:110", 11118 "typeDescriptions": { 11119 "typeIdentifier": "t_uint256", 11120 "typeString": "uint256" 11121 } 11122 }, 11123 "nodeType": "BinaryOperation", 11124 "operator": "+", 11125 "rightExpression": { 11126 "arguments": [], 11127 "expression": { 11128 "argumentTypes": [], 11129 "expression": { 11130 "id": 59989, 11131 "name": "l2Oracle", 11132 "nodeType": "Identifier", 11133 "overloadedDeclarations": [], 11134 "referencedDeclaration": 59341, 11135 "src": "21353:8:110", 11136 "typeDescriptions": { 11137 "typeIdentifier": "t_contract$_L2OutputOracle_$59272", 11138 "typeString": "contract L2OutputOracle" 11139 } 11140 }, 11141 "id": 59990, 11142 "isConstant": false, 11143 "isLValue": false, 11144 "isPure": false, 11145 "lValueRequested": false, 11146 "memberName": "FINALIZATION_PERIOD_SECONDS", 11147 "nodeType": "MemberAccess", 11148 "referencedDeclaration": 58783, 11149 "src": "21353:36:110", 11150 "typeDescriptions": { 11151 "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", 11152 "typeString": "function () view external returns (uint256)" 11153 } 11154 }, 11155 "id": 59991, 11156 "isConstant": false, 11157 "isLValue": false, 11158 "isPure": false, 11159 "kind": "functionCall", 11160 "lValueRequested": false, 11161 "names": [], 11162 "nodeType": "FunctionCall", 11163 "src": "21353:38:110", 11164 "tryCall": false, 11165 "typeDescriptions": { 11166 "typeIdentifier": "t_uint256", 11167 "typeString": "uint256" 11168 } 11169 }, 11170 "src": "21340:51:110", 11171 "typeDescriptions": { 11172 "typeIdentifier": "t_uint256", 11173 "typeString": "uint256" 11174 } 11175 }, 11176 "src": "21322:69:110", 11177 "typeDescriptions": { 11178 "typeIdentifier": "t_bool", 11179 "typeString": "bool" 11180 } 11181 }, 11182 "functionReturnParameters": 59985, 11183 "id": 59994, 11184 "nodeType": "Return", 11185 "src": "21315:76:110" 11186 } 11187 ] 11188 }, 11189 "documentation": { 11190 "id": 59979, 11191 "nodeType": "StructuredDocumentation", 11192 "src": "20971:242:110", 11193 "text": "@notice Determines whether the finalization period has elapsed with respect to\n the provided block timestamp.\n @param _timestamp Timestamp to check.\n @return Whether or not the finalization period has elapsed." 11194 }, 11195 "implemented": true, 11196 "kind": "function", 11197 "modifiers": [], 11198 "name": "_isFinalizationPeriodElapsed", 11199 "nameLocation": "21227:28:110", 11200 "parameters": { 11201 "id": 59982, 11202 "nodeType": "ParameterList", 11203 "parameters": [ 11204 { 11205 "constant": false, 11206 "id": 59981, 11207 "mutability": "mutable", 11208 "name": "_timestamp", 11209 "nameLocation": "21264:10:110", 11210 "nodeType": "VariableDeclaration", 11211 "scope": 59996, 11212 "src": "21256:18:110", 11213 "stateVariable": false, 11214 "storageLocation": "default", 11215 "typeDescriptions": { 11216 "typeIdentifier": "t_uint256", 11217 "typeString": "uint256" 11218 }, 11219 "typeName": { 11220 "id": 59980, 11221 "name": "uint256", 11222 "nodeType": "ElementaryTypeName", 11223 "src": "21256:7:110", 11224 "typeDescriptions": { 11225 "typeIdentifier": "t_uint256", 11226 "typeString": "uint256" 11227 } 11228 }, 11229 "visibility": "internal" 11230 } 11231 ], 11232 "src": "21255:20:110" 11233 }, 11234 "returnParameters": { 11235 "id": 59985, 11236 "nodeType": "ParameterList", 11237 "parameters": [ 11238 { 11239 "constant": false, 11240 "id": 59984, 11241 "mutability": "mutable", 11242 "name": "", 11243 "nameLocation": "-1:-1:-1", 11244 "nodeType": "VariableDeclaration", 11245 "scope": 59996, 11246 "src": "21299:4:110", 11247 "stateVariable": false, 11248 "storageLocation": "default", 11249 "typeDescriptions": { 11250 "typeIdentifier": "t_bool", 11251 "typeString": "bool" 11252 }, 11253 "typeName": { 11254 "id": 59983, 11255 "name": "bool", 11256 "nodeType": "ElementaryTypeName", 11257 "src": "21299:4:110", 11258 "typeDescriptions": { 11259 "typeIdentifier": "t_bool", 11260 "typeString": "bool" 11261 } 11262 }, 11263 "visibility": "internal" 11264 } 11265 ], 11266 "src": "21298:6:110" 11267 }, 11268 "scope": 59997, 11269 "stateMutability": "view", 11270 "virtual": false, 11271 "visibility": "internal" 11272 } 11273 ], 11274 "abstract": false, 11275 "baseContracts": [ 11276 { 11277 "baseName": { 11278 "id": 59300, 11279 "name": "Initializable", 11280 "nodeType": "IdentifierPath", 11281 "referencedDeclaration": 32244, 11282 "src": "1162:13:110" 11283 }, 11284 "id": 59301, 11285 "nodeType": "InheritanceSpecifier", 11286 "src": "1162:13:110" 11287 }, 11288 { 11289 "baseName": { 11290 "id": 59302, 11291 "name": "ResourceMetering", 11292 "nodeType": "IdentifierPath", 11293 "referencedDeclaration": 60599, 11294 "src": "1177:16:110" 11295 }, 11296 "id": 59303, 11297 "nodeType": "InheritanceSpecifier", 11298 "src": "1177:16:110" 11299 }, 11300 { 11301 "baseName": { 11302 "id": 59304, 11303 "name": "ISemver", 11304 "nodeType": "IdentifierPath", 11305 "referencedDeclaration": 75669, 11306 "src": "1195:7:110" 11307 }, 11308 "id": 59305, 11309 "nodeType": "InheritanceSpecifier", 11310 "src": "1195:7:110" 11311 } 11312 ], 11313 "canonicalName": "OptimismPortal", 11314 "contractDependencies": [], 11315 "contractKind": "contract", 11316 "documentation": { 11317 "id": 59299, 11318 "nodeType": "StructuredDocumentation", 11319 "src": "797:338:110", 11320 "text": "@custom:proxied\n @title OptimismPortal\n @notice The OptimismPortal is a low-level contract responsible for passing messages between L1\n and L2. Messages sent directly to the OptimismPortal have no form of replayability.\n Users are encouraged to use the L1CrossDomainMessenger for a higher-level interface." 11321 }, 11322 "fullyImplemented": true, 11323 "linearizedBaseContracts": [ 11324 59997, 11325 75669, 11326 60599, 11327 32244 11328 ], 11329 "name": "OptimismPortal", 11330 "nameLocation": "1144:14:110", 11331 "scope": 59998, 11332 "usedErrors": [] 11333 } 11334 ], 11335 "license": "MIT" 11336 }, 11337 "id": 110 11338 }