diff --git a/.github/workflows/solidity-wrappers.yml b/.github/workflows/solidity-wrappers.yml index 38ad046a6c..feff75a873 100644 --- a/.github/workflows/solidity-wrappers.yml +++ b/.github/workflows/solidity-wrappers.yml @@ -64,6 +64,10 @@ # run: make wrappers-all # working-directory: ./contracts # +# - name: Run zksync compile and generate wrappers +# run: make wrappers-zksync +# working-directory: ./contracts +# # - name: Assume role capable of dispatching action # uses: smartcontractkit/.github/actions/setup-github-token@ef78fa97bf3c77de6563db1175422703e9e6674f # setup-github-token@0.2.1 # id: get-gh-token diff --git a/.github/workflows/solidity.yml b/.github/workflows/solidity.yml index 7297c09c5f..eed7a3f22b 100644 --- a/.github/workflows/solidity.yml +++ b/.github/workflows/solidity.yml @@ -121,6 +121,10 @@ jobs: working-directory: ./chainlink/contracts run: make wrappers-all + - name: Run zksync compile and generate wrappers + working-directory: ./chainlink/contracts + run: make wrappers-zksync + - name: Check if Go solidity wrappers are updated if: ${{ needs.changes.outputs.changes == 'true' }} working-directory: chainlink diff --git a/.gitignore b/.gitignore index e620c061c2..627ec3e7cb 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ tmp/ .pnp .pnp.js tools/bin/abigen +tools/bin/forge_zksync /chainlink core/chainlink diff --git a/contracts/.gitignore b/contracts/.gitignore index ddfd43837d..ee18746e78 100644 --- a/contracts/.gitignore +++ b/contracts/.gitignore @@ -2,6 +2,7 @@ artifacts cache node_modules solc +zkout abi coverage coverage.json diff --git a/contracts/FOUNDRY_GUIDE.md b/contracts/FOUNDRY_GUIDE.md index 28fed4e7a8..5dbc351399 100644 --- a/contracts/FOUNDRY_GUIDE.md +++ b/contracts/FOUNDRY_GUIDE.md @@ -219,6 +219,7 @@ Check out the official [Foundry best practices section](https://book.getfoundry. - Use `make snapshot` to generate the correct snapshot for the selected Foundry profile. - Use `make snapshot-diff` to see the diff between the local snapshot and your latest changes. - use `make wrappers` to generate the gethwrappers for the selected Foundry profile. +- use `make wrappers-zksync` to generate the gethwrappers for ZK Sync deployments. - Use `vm.recordLogs();` to record all logs emitted - Use `vm.getRecordedLogs()` to get the logs emitted. - This way you can assert that a log was *not* emitted. diff --git a/contracts/GNUmakefile b/contracts/GNUmakefile index aac1c46c5b..cb643e24df 100644 --- a/contracts/GNUmakefile +++ b/contracts/GNUmakefile @@ -45,6 +45,10 @@ mockery: $(mockery) ## Install mockery. foundry: ## Install foundry. foundryup --install v1.0.0 +.PHONY: forge-zksync +forge-zksync: + ../tools/bin/install_forge_zksync + .PHONY: foundry-refresh foundry-refresh: foundry git submodule deinit -f . @@ -82,6 +86,10 @@ wrappers-all: pnpmdep mockery abigen ## Recompiles solidity contracts and their # go_generate contains a call to compile all contracts before generating wrappers go generate ../gethwrappers/go_generate.go +.PHONY: wrappers-zksync +wrappers-zksync: pnpmdep forge-zksync + go generate ../gethwrappers/zksync/go_generate.go + help: @echo "" @echo " .__ .__ .__ .__ __" diff --git a/contracts/scripts/zksync_compile_all b/contracts/scripts/zksync_compile_all new file mode 100755 index 0000000000..2ab709235c --- /dev/null +++ b/contracts/scripts/zksync_compile_all @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +set -e + +echo " ┌──────────────────────────────────────────────┐" +echo " │ Compiling ZKSync contracts... │" +echo " └──────────────────────────────────────────────┘" + +CONTRACTS_DIR="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; cd ../ && pwd -P )" + +compileContract() { + local contract + contract=$(basename "$1") + echo "Compiling" "$contract" + + export FOUNDRY_PROFILE="$2" + + ${CONTRACTS_DIR}/../tools/bin/forge_zksync build $CONTRACTS_DIR/src/v0.8/"$1.sol" --zksync \ + --root $CONTRACTS_DIR \ + $3 +} + +compileContract shared/token/ERC677/LinkToken shared "--use 0.8.19" +compileContract shared/token/ERC677/BurnMintERC677 shared "--use 0.8.19" +compileContract vendor/multicall/ebd8b64/src/Multicall3 shared "--use 0.8.19" +compileContract keystone/CapabilitiesRegistry keystone diff --git a/gethwrappers/generation/generate/zksync/template.go b/gethwrappers/generation/generate/zksync/template.go new file mode 100644 index 0000000000..76e1f4f3c9 --- /dev/null +++ b/gethwrappers/generation/generate/zksync/template.go @@ -0,0 +1,59 @@ +package zksyncwrapper + +import ( + "context" + "crypto/rand" + "fmt" + + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/zksync-sdk/zksync2-go/accounts" + "github.com/zksync-sdk/zksync2-go/clients" + "github.com/zksync-sdk/zksync2-go/types" +) + +// this file is used as a template. see wrap_zk_bytecode.go before editing +func DeployPlaceholderContractNameZk(deployOpts *accounts.TransactOpts, client *clients.Client, wallet *accounts.Wallet, backend bind.ContractBackend, args ...interface{}) (common.Address, *types.Receipt, *PlaceholderContractName, error) { + var calldata []byte + if len(args) > 0 { + abi, err := PlaceholderContractNameMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + calldata, err = abi.Pack("", args...) + if err != nil { + return common.Address{}, nil, nil, err + } + } + + salt := make([]byte, 32) + n, err := rand.Read(salt) + if err != nil { + return common.Address{}, nil, nil, err + } + if n != len(salt) { + return common.Address{}, nil, nil, fmt.Errorf("failed to read random bytes: expected %d, got %d", len(salt), n) + } + + txHash, err := wallet.Deploy(deployOpts, accounts.Create2Transaction{ + Bytecode: ZkBytecode, + Calldata: calldata, + Salt: salt, + }) + if err != nil { + return common.Address{}, nil, nil, err + } + + receipt, err := client.WaitMined(context.Background(), txHash) + if err != nil { + return common.Address{}, nil, nil, err + } + + address := receipt.ContractAddress + contract, err := NewPlaceholderContractName(address, backend) + if err != nil { + return common.Address{}, nil, nil, err + } + + return address, receipt, contract, nil +} diff --git a/gethwrappers/generation/generate/zksync/vars.go b/gethwrappers/generation/generate/zksync/vars.go new file mode 100644 index 0000000000..28198a7c07 --- /dev/null +++ b/gethwrappers/generation/generate/zksync/vars.go @@ -0,0 +1,26 @@ +package zksyncwrapper + +import ( + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" +) + +// these are mocks for the placeholders used in the template +type PlaceholderContractName struct{} + +type IPlaceholderContractNameMetaData struct { + GetAbi func() (*abi.ABI, error) +} + +var PlaceholderContractNameMetaData = IPlaceholderContractNameMetaData{ + GetAbi: func() (*abi.ABI, error) { + return nil, nil + }, +} + +var ZkBytecode = []byte{} + +func NewPlaceholderContractName(address common.Address, backend bind.ContractBackend) (*PlaceholderContractName, error) { + return nil, nil +} diff --git a/gethwrappers/generation/generate/zksync/zksyncwrapper.go b/gethwrappers/generation/generate/zksync/zksyncwrapper.go new file mode 100644 index 0000000000..fbdc55090e --- /dev/null +++ b/gethwrappers/generation/generate/zksync/zksyncwrapper.go @@ -0,0 +1,156 @@ +package zksyncwrapper + +import ( + "bytes" + _ "embed" + "encoding/json" + "fmt" + "go/ast" + "go/format" + "go/token" + "os" + "strings" +) + +func ReadBytecodeFromForgeJson(srcFile string) string { + jsonData, err := os.ReadFile(srcFile) + if err != nil { + panic(err) + } + + var bytecodeData struct { + Bytecode struct { + Object string `json:"object"` + } `json:"bytecode"` + } + if err := json.Unmarshal(jsonData, &bytecodeData); err != nil { + panic(err) + } + + return bytecodeData.Bytecode.Object +} + +//go:embed template.go +var zksyncDeployTemplate string + +func WrapZksyncDeploy(bytecode, className, pkgName, outPath string) { + fmt.Printf("Generating zk bytecode binding for %s\n", pkgName) + + fileNode := &ast.File{ + Name: ast.NewIdent(pkgName), + Decls: []ast.Decl{ + declareImports(), + declareDeployFunction(className), + declareBytecodeVar(bytecode)}} + + writeFile(fileNode, outPath) +} + +const comment = `// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. +` + +var importValues = []string{ + `"context"`, + `"crypto/rand"`, + `"fmt"`, + `"github.com/ethereum/go-ethereum/accounts/abi/bind"`, + `"github.com/ethereum/go-ethereum/common"`, + `"github.com/zksync-sdk/zksync2-go/accounts"`, + `"github.com/zksync-sdk/zksync2-go/clients"`, + `"github.com/zksync-sdk/zksync2-go/types"`, +} + +func declareImports() ast.Decl { + + specs := make([]ast.Spec, len(importValues)) + for i, value := range importValues { + specs[i] = &ast.ImportSpec{ + Path: &ast.BasicLit{ + Kind: token.STRING, + Value: value}} + } + + return &ast.GenDecl{ + Tok: token.IMPORT, + Specs: specs} +} + +func declareDeployFunction(contractName string) ast.Decl { + template := zksyncDeployTemplate + + sep := "\n" + lines := strings.Split(template, sep) + from := 0 + to := 0 + // get the func body as string + for !strings.Contains(lines[to], "return address, receipt, contract, nil") { + if strings.Contains(lines[to], "DeployPlaceholderContractNameZk") { + from = to + } + to++ + } + template = strings.Join(lines[from+1:to+1], sep) + template = template[1:] // remove the first space + template = strings.Replace(template, "PlaceholderContractName", contractName, 2) + + return &ast.FuncDecl{ + Name: ast.NewIdent("Deploy" + contractName + "Zk"), + Type: &ast.FuncType{ + Params: &ast.FieldList{ + List: []*ast.Field{{ + Names: []*ast.Ident{ast.NewIdent("deployOpts")}, + Type: &ast.Ident{Name: "*accounts.TransactOpts"}}, { + Names: []*ast.Ident{ast.NewIdent("client")}, + Type: &ast.Ident{Name: "*clients.Client"}}, { + Names: []*ast.Ident{ast.NewIdent("wallet")}, + Type: &ast.Ident{Name: "*accounts.Wallet"}}, { + Names: []*ast.Ident{ast.NewIdent("backend")}, + Type: &ast.Ident{Name: "bind.ContractBackend"}}, { + Names: []*ast.Ident{ast.NewIdent("args")}, + Type: &ast.Ellipsis{Elt: &ast.Ident{Name: "interface{}"}}}}}, + Results: &ast.FieldList{ + List: []*ast.Field{ + {Type: &ast.Ident{Name: "common.Address"}}, + {Type: &ast.Ident{Name: "*types.Receipt"}}, + {Type: &ast.StarExpr{X: &ast.Ident{Name: contractName}}}, + {Type: &ast.Ident{Name: "error"}}}}}, + Body: &ast.BlockStmt{ + List: []ast.Stmt{ + &ast.ExprStmt{ + X: &ast.BasicLit{ + Kind: token.STRING, + Value: template}}}}} +} + +func declareBytecodeVar(bytecode string) ast.Decl { + return &ast.GenDecl{ + Tok: token.VAR, + Specs: []ast.Spec{ + &ast.ValueSpec{ + Names: []*ast.Ident{ast.NewIdent("ZkBytecode")}, + Values: []ast.Expr{ + &ast.CallExpr{ + Fun: &ast.SelectorExpr{ + X: ast.NewIdent("common"), + Sel: ast.NewIdent("Hex2Bytes")}, + Args: []ast.Expr{ + &ast.BasicLit{ + Kind: token.STRING, + Value: fmt.Sprintf(`"%s"`, bytecode)}}}}}}} +} + +func writeFile(fileNode *ast.File, dstFile string) { + var buf bytes.Buffer + fset := token.NewFileSet() + if err := format.Node(&buf, fset, fileNode); err != nil { + panic(err) + } + + bs := buf.Bytes() + bs = append([]byte(comment), bs...) + + if err := os.WriteFile(dstFile, bs, 0600); err != nil { + panic(err) + } +} diff --git a/gethwrappers/generation/zksync/wrap.go b/gethwrappers/generation/zksync/wrap.go new file mode 100644 index 0000000000..96cf4d8fc9 --- /dev/null +++ b/gethwrappers/generation/zksync/wrap.go @@ -0,0 +1,30 @@ +package main + +import ( + "fmt" + "os" + "path/filepath" + + "github.com/smartcontractkit/chainlink-evm/gethwrappers" + zksyncwrapper "github.com/smartcontractkit/chainlink-evm/gethwrappers/generation/generate/zksync" +) + +func main() { + project := os.Args[1] + contractName := os.Args[2] + packageName := os.Args[3] + + fmt.Println("Generating", packageName, "contract wrapper") + + cwd, err := os.Getwd() // gethwrappers/zksync directory + if err != nil { + gethwrappers.Exit("could not get working directory", err) + } + + srcFile := filepath.Join(cwd, "..", "..", "contracts", "zkout", contractName+".sol", contractName+".json") + bytecode := zksyncwrapper.ReadBytecodeFromForgeJson(srcFile) + + outPath := filepath.Join(cwd, "..", project, "generated", packageName, packageName+"_zksync.go") + + zksyncwrapper.WrapZksyncDeploy(bytecode, contractName, packageName, outPath) +} diff --git a/gethwrappers/keystone/generated/capabilities_registry/capabilities_registry_zksync.go b/gethwrappers/keystone/generated/capabilities_registry/capabilities_registry_zksync.go new file mode 100644 index 0000000000..56660ce873 --- /dev/null +++ b/gethwrappers/keystone/generated/capabilities_registry/capabilities_registry_zksync.go @@ -0,0 +1,61 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. +package capabilities_registry + +import ( + "context" + "crypto/rand" + "fmt" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/zksync-sdk/zksync2-go/accounts" + "github.com/zksync-sdk/zksync2-go/clients" + "github.com/zksync-sdk/zksync2-go/types" +) + +func DeployCapabilitiesRegistryZk(deployOpts *accounts.TransactOpts, client *clients.Client, wallet *accounts.Wallet, backend bind.ContractBackend, args ...interface{}) (common.Address, *types.Receipt, *CapabilitiesRegistry, error) { + var calldata []byte + if len(args) > 0 { + abi, err := CapabilitiesRegistryMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + calldata, err = abi.Pack("", args...) + if err != nil { + return common.Address{}, nil, nil, err + } + } + + salt := make([]byte, 32) + n, err := rand.Read(salt) + if err != nil { + return common.Address{}, nil, nil, err + } + if n != len(salt) { + return common.Address{}, nil, nil, fmt.Errorf("failed to read random bytes: expected %d, got %d", len(salt), n) + } + + txHash, err := wallet.Deploy(deployOpts, accounts.Create2Transaction{ + Bytecode: ZkBytecode, + Calldata: calldata, + Salt: salt, + }) + if err != nil { + return common.Address{}, nil, nil, err + } + + receipt, err := client.WaitMined(context.Background(), txHash) + if err != nil { + return common.Address{}, nil, nil, err + } + + address := receipt.ContractAddress + contract, err := NewCapabilitiesRegistry(address, backend) + if err != nil { + return common.Address{}, nil, nil, err + } + + return address, receipt, contract, nil +} + +var ZkBytecode = common.Hex2Bytes("000200000000000200140000000000020001000000010355000000600310027000000a5b0030019d000000800d0000390000004000d0043f0000000100200190000001520000c13d00000a5b02300197000000040020008c000013a90000413d000000000301043b000000e00330027000000a630030009c000001620000213d00000a770030009c000001970000213d00000a810030009c0000058c0000a13d00000a820030009c000006a70000213d00000a850030009c000009530000613d00000a860030009c000013a90000c13d000000240020008c000013a90000413d0000000003000416000000000003004b000013a90000c13d0000000403100370000000000303043b00000a910030009c000013a90000213d0000002304300039000000000024004b000013a90000813d0000000404300039000000000141034f000000000101043b000a00000001001d00000a910010009c000013a90000213d000900240030003d0000000a0100002900000005011002100000000901100029000000000021004b000013a90000213d000000000100041a00000a8b011001970000000002000411000000000012004b000014120000c13d0000000a0000006b000001870000613d000c00000000001d0000000c01000029000000050110021000000009011000290000000101100367000000000101043b001100000001001d00000a5b0010009c000013a90000213d0000001101000029000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000201043b000000000102041a001400000001001d000000200110027000000a5b01100197000000000010043f000b00000002001d0000000101200039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000301043b000000000103041a000000000001004b0000801002000039000000900000613d000000140100002900000ad000100198001300000003001d000000ba0000613d0000000001000019001400000001001d000000000030043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c7296829630000040f0000000100200190000013a90000613d000000000101043b0000001401100029000000000101041a000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000201041a00000ad402200197000000000021041b000000140400002900000001044000390000001303000029000000000103041a000000000014004b000080100200003900000000010400190000006b0000413d0000000b01000029000000000101041a00000a990010019800001c9f0000613d0000001101000029000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c7296829630000040f0000000100200190000013a90000613d000000000101043b000000000001041b000000400100043d000000000001043500000a5b0010009c00000a5b010080410000004001100210000000000200041400000a5b0020009c00000a5b02008041000000c002200210000000000112019f00000a95011001c70000800d02000039000000020300003900000ad50400004100000011050000292968295e0000040f0000000100200190000013a90000613d0000000c020000290000000102200039000c00000002001d0000000a0020006c0000003a0000413d000001870000013d001400000000001d000000c50000013d000000000101043b000000000001041b0000001402000029001400010020003d0000001303000029000000000103041a000000140010006b0000801002000039000000900000813d000000000030043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c7296829630000040f0000000100200190000013a90000613d000000000101043b0000001401100029000000000101041a000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000201043b0000001101000029000000000010043f000f00000002001d0000000601200039001000000001001d000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000000000001004b000000be0000613d0000000f020000290000000503200039000000000403041a000000000004004b000080100200003900000ffd0000613d000000000014004b001200000001001d000f00000003001d000001340000613d000e00000004001d000000000030043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c7296829630000040f0000000100200190000013a90000613d0000001202000029000d000100200092000000000101043b0000000f04000029000000000204041a0000000d0020006c00001b560000a13d0000000e02000029000000010220008a0000000001120019000000000101041a000e00000001001d000000000040043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000000d011000290000000e02000029000000000021041b000000000020043f0000001001000029000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000001202000029000000000021041b0000000f03000029000000000103041a001200000001001d000000000001004b000080100200003900001be60000613d000000000030043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c7296829630000040f0000000100200190000013a90000613d0000001202000029000000010220008a000000000101043b0000000001210019000000000001041b0000000f01000029000000000021041b0000001101000029000000000010043f0000001001000029000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000000bc0000c13d000013a90000013d0000000001000416000000000001004b000013a90000c13d0000000001000411000000000001004b000001890000c13d00000a6001000041000000800010043f0000002001000039000000840010043f0000001801000039000000a40010043f00000a6101000041000000c40010043f00000a62010000410000296a0001043000000a640030009c000005470000213d00000a6e0030009c000005a40000a13d00000a6f0030009c000006d90000213d00000a720030009c000009670000613d00000a730030009c000013a90000c13d0000000001000416000000000001004b000013a90000c13d0000000101000039000000000201041a00000a8b032001970000000006000411000000000036004b000013ab0000c13d000000000300041a00000a5c04300197000000000464019f000000000040041b00000a5c02200197000000000021041b000000000100041400000a8b0530019700000a5b0010009c00000a5b01008041000000c00110021000000a8c011001c70000800d02000039000000030300003900000aad040000412968295e0000040f0000000100200190000013a90000613d0000000001000019000029690001042e000000000200041a00000a5c02200197000000000112019f000000000010041b0000000e01000039000000000201041a00000a5d0220019700000a5e022001c7000000000021041b00000020010000390000010000100443000001200000044300000a5f01000041000029690001042e00000a780030009c000005cf0000a13d00000a790030009c000008e80000213d00000a7c0030009c00000c920000613d00000a7d0030009c000013a90000c13d000000240020008c000013a90000413d0000000003000416000000000003004b000013a90000c13d0000000403100370000000000303043b000400000003001d00000a910030009c000013a90000213d00000004030000290000002303300039000000000023004b000013a90000813d00000004030000290000000403300039000000000131034f000000000101043b000300000001001d00000a910010009c000013a90000213d0000000401000029000500240010003d000000030100002900000005011002100000000501100029000000000021004b000013a90000213d000000030000006b000001870000613d000000000100041a00020a8b0010019b000800000000001d0000000801000029000000050110021000000005011000290000000101100367000000000201043b0000000001000031000000040310006a000000c30330008a00000a9d0430019700000a9d05200197000000000645013f000000000045004b000000000400001900000a9d04004041000000000032004b000000000300001900000a9d0300804100000a9d0060009c000000000403c019000000000004004b000013a90000c13d0000000502200029000000000321004900000a9e0030009c000013a90000213d000000a00030008c000013a90000413d000000400300043d000a00000003001d00000aa40030009c000014450000213d0000000a03000029000000a003300039000000400030043f0000000103200367000000000303043b00000a5b0030009c000013a90000213d0000000a04000029000000000534043600000020032000390000000103300367000000000303043b000900000005001d000000000035043500000040032000390000000103300367000000000303043b0000004005400039000700000005001d0000000000350435000000600440003900000060032000390000000103300367000000000303043b000600000004001d000000000034043500000080032000390000000103300367000000000303043b00000a910030009c000013a90000213d00000000032300190000001f02300039000000000012004b000000000400001900000a9d0400804100000a9d0220019700000a9d05100197000000000652013f000000000052004b000000000200001900000a9d0200404100000a9d0060009c000000000204c019000000000002004b000013a90000c13d0000000102300367000000000402043b00000a910040009c000014450000213d00000005054002100000003f0250003900000aa506200197000000400200043d0000000006620019000000000026004b0000000007000039000000010700403900000a910060009c000014450000213d0000000100700190000014450000c13d000000400060043f000000000042043500000020033000390000000004350019000000000014004b000013a90000213d000000000043004b0000022d0000813d00000000010200190000000105300367000000000505043b000000200110003900000000005104350000002003300039000000000043004b000002260000413d0000000a010000290000008001100039001400000001001d000000000021043500000007010000290000000001010433000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000b00000001001d000000000101041a00000a5b01100197000000000010043f0000000b01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000400500043d00000a9f0050009c000014450000213d000000000101043b0000004002500039000000400020043f000000000201041a00000a8b0220019700000000062504360000000101100039000000000201041a000000010320019000000001082002700000007f0880618f0000001f0080008c00000000040000390000000104002039000000000442013f00000001004001900000093f0000c13d000000400700043d0000000004870436000000000003004b000002870000613d000f00000004001d001000000008001d001100000007001d001200000006001d001300000005001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d0000001008000029000000000008004b0000028d0000613d000000000201043b00000000010000190000001305000029000000120600002900000011070000290000000f090000290000000003910019000000000402041a000000000043043500000001022000390000002001100039000000000081004b0000027f0000413d000002910000013d00000ada012001970000000000140435000000000008004b00000020010000390000000001006039000002910000013d00000000010000190000001305000029000000120600002900000011070000290000003f0110003900000adb021001970000000001720019000000000021004b0000000002000039000000010200403900000a910010009c000014450000213d0000000100200190000014450000c13d000000400010043f00000000007604350000000b010000290000000104100039000000000304041a000000000003004b00001cf80000613d0000000001000411000000020010006c000002aa0000613d000000000105043300000a8b011001970000000002000411000000000012004b00001bec0000c13d00000009010000290000000001010433000000000001004b00001c900000613d000000000013004b0000033b0000613d001200000004001d001300000003001d000000000010043f0000000801000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000000000001004b0000001302000029000000120300002900001c900000c13d00000009010000290000000001010433000000000013041b000000000020043f0000000801000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000401041a000000000004004b0000030d0000613d0000000701000039000000000201041a000000000002004b00000ffd0000613d000000010140008a000000000042004b0000001303000029000002fb0000613d000000000012004b00001b560000a13d001200000004001d00000ac40140009a00000ac40220009a000000000202041a000000000021041b000000000020043f0000000801000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000001202000029000000000021041b0000000701000039000000000401041a000000000004004b00001be60000613d000000010140008a000000130300002900000ac40240009a000000000002041b0000000702000039000000000012041b000000000030043f0000000801000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000001041b00000009010000290000000001010433001300000001001d000000000010043f0000000801000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000000000001004b0000033b0000c13d0000000701000039000000000101041a00000a910010009c000014450000213d00000001021000390000000703000039000000000023041b00000aa70110009a0000001302000029000000000021041b000000000103041a001200000001001d000000000020043f0000000801000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000001202000029000000000021041b00000006010000290000000001010433000000000001004b00001cc20000613d00000014010000290000000001010433001300000001001d0000000021010434000d00000002001d000000000001004b000019f60000613d0000000b01000029000000000101041a000000200210027000000a5b0220019700000a5b0020009c00000ffd0000613d00000a98011001970000000102200039000e00000002001d000000200220021000000a9902200197000000000112019f0000000b02000029000000000012041b001100040020003d00000000020000190000035d0000013d0000001402000029000000010220003900000013010000290000000001010433000000000012004b000003c10000813d001400000002001d00000005012002100000000d01100029001200000001001d0000000001010433000000000010043f0000000401000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000000000001004b000019f60000613d0000000e01000029000000000010043f0000001101000029000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000301043b00000013010000290000000001010433000000140010006c00001b560000a13d00000012010000290000000001010433001000000001001d000000000010043f001200000003001d0000000101300039000f00000001001d000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000000000001004b000003570000c13d0000001202000029000000000102041a00000a910010009c000014450000213d000c00000001001d0000000101100039000000000012041b000000000020043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000000c011000290000001002000029000000000021041b0000001201000029000000000101041a001200000001001d000000000020043f0000000f01000029000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000001202000029000000000021041b000003570000013d0000000b01000029000000000101041a0000004001100270000f0a5b0010019c000004520000613d0000000f01000029000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b001400000001001d0000000f01000029000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000000200110027000000a5b01100197000000000010043f00000014010000290000000101100039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000000201100039000000000301041a000000400200043d001300000002001d001400000003001d0000000002320436001200000002001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d0000001405000029000000000005004b0000001202000029000004120000613d000000000101043b00000012020000290000000003000019000000000401041a000000000242043600000001011000390000000103300039000000000053004b0000040c0000413d000000130120006a0000001f0110003900000adb021001970000001301200029000000000021004b0000000002000039000000010200403900000a910010009c000014450000213d0000000100200190000014450000c13d000000400010043f00000013010000290000000001010433000000000001004b000004520000613d0000000e0100002900100a5b0010019b0000000002000019001400000002001d0000001001000029000000000010043f0000001101000029000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000130200002900000000020204330000001403000029000000000032004b00001b560000a13d000000050230021000000012022000290000000002020433000000000101043b000000000020043f0000000101100039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000000000001004b000019e50000613d0000001402000029000000010220003900000013010000290000000001010433000000000012004b000004250000413d0000000b010000290000000501100039000000000301041a000000400200043d000d00000002001d001400000003001d0000000002320436000c00000002001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d0000001405000029000000000005004b0000000c02000029000004710000613d000000000101043b0000000c020000290000000003000019000000000401041a000000000242043600000001011000390000000103300039000000000053004b0000046b0000413d0000000d0120006a0000001f0110003900000adb021001970000000d01200029000000000021004b0000000002000039000000010200403900000a910010009c000014450000213d0000000100200190000014450000c13d000000400010043f0000000d020000290000000002020433000000000002004b0000051d0000613d0000000e0100002900100a5b0010019b0000000002000019000e00000002001d00000005012002100000000c01100029000000000101043300000a5b01100197000f00000001001d000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b001400000001001d0000000f01000029000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000000200110027000000a5b01100197000000000010043f00000014010000290000000101100039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000000201100039000000000301041a000000400200043d001300000002001d001400000003001d0000000002320436001200000002001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d0000001405000029000000000005004b0000001202000029000004d50000613d000000000101043b00000012020000290000000003000019000000000401041a000000000242043600000001011000390000000103300039000000000053004b000004cf0000413d000000130120006a0000001f0110003900000adb021001970000001301200029000000000021004b0000000002000039000000010200403900000a910010009c000014450000213d0000000100200190000014450000c13d000000400010043f00000013010000290000000001010433000000000001004b000005130000613d0000000002000019001400000002001d0000001001000029000000000010043f0000001101000029000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000130200002900000000020204330000001403000029000000000032004b00001b560000a13d000000050230021000000012022000290000000002020433000000000101043b000000000020043f0000000101100039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000000000001004b000019e50000613d0000001402000029000000010220003900000013010000290000000001010433000000000012004b000004e60000413d0000000e0100002900000a5b0010009c00000ffd0000613d000000010110003900000a5b021001970000000d010000290000000001010433000000000012004b000004840000413d000000400100043d0000000a02000029000000000202043300000a5b052001970000000b04000029000000000204041a00000a9a02200197000000000252019f000000000024041b000000070200002900000000020204330000000203400039000000000023041b000000030340003900000006040000290000000004040433000000000043041b0000000903000029000000000303043300000020041000390000000000340435000000000021043500000a5b0010009c00000a5b010080410000004001100210000000000200041400000a5b0020009c00000a5b02008041000000c002200210000000000112019f00000a94011001c70000800d02000039000000020300003900000ac7040000412968295e0000040f0000000100200190000013a90000613d00000008020000290000000102200039000800000002001d000000030020006c000001c00000413d000001870000013d00000a650030009c0000062f0000a13d00000a660030009c000009450000213d00000a690030009c00000dba0000613d00000a6a0030009c000013a90000c13d0000000001000416000000000001004b000013a90000c13d0000000902000039000000000102041a000000800010043f000000000020043f000000000001004b000013b50000c13d000000a001000039000800000001001d000000400010043f000700200000003d000000000200001900000005012002100000003f0310003900000a9203300197000000080330002900000a910030009c000014450000213d000000400030043f00000008030000290000000000230435000000000002004b000005850000613d0000000702000029000000a00220003900000060030000390000000004000019000000400500043d00000a930050009c000014450000213d0000010006500039000000400060043f000000e0065000390000000000360435000000c0065000390000000000360435000000a0065000390000000000060435000000800650003900000000000604350000006006500039000000000006043500000040065000390000000000060435000000200650003900000000000604350000000000050435000000000642001900000000005604350000002004400039000000000014004b0000056c0000413d000000800100043d000000000001004b0000172e0000c13d000000400100043d001400000001001d000000080200002900000e780000013d00000a870030009c00000e540000613d00000a880030009c00000e7a0000613d00000a890030009c000013a90000c13d000000240020008c000013a90000413d0000000002000416000000000002004b000013a90000c13d0000000401100370000000000101043b296829190000040f000000000001004b0000000001000039000000010100c039000000400200043d000000000012043500000a5b0020009c00000a5b02008041000000400120021000000ad8011001c7000029690001042e00000a740030009c00000ebd0000613d00000a750030009c00000ecb0000613d00000a760030009c000013a90000c13d0000000001000416000000000001004b000013a90000c13d0000000e01000039000000000101041a00000a5b01100197001200000001001d000000010110008a00000a5b0010009c00000ffd0000213d000000000301001900000005011002100000003f0210003900000aa5022001970000008002200039000000400020043f000000800030043f000c00000003001d000000000003004b001300000000001d0000141c0000c13d00000013020000290000000c0020006c000005c30000613d000000800020043f000000400100043d00000020020000390000000003210436000000800200043d0000000000230435000000400310003900000005042002100000000007340019000000000002004b0000144b0000c13d000000000217004900000e4c0000013d00000a7e0030009c00000f3e0000613d00000a7f0030009c00000f510000613d00000a800030009c000013a90000c13d000000a40020008c000013a90000413d0000000003000416000000000003004b000013a90000c13d0000000403100370000000000303043b001400000003001d00000a5b0030009c000013a90000213d0000002403100370000000000303043b00000a910030009c000013a90000213d0000002304300039000000000024004b000013a90000813d0000000404300039000000000441034f000000000404043b001300000004001d00000a910040009c000013a90000213d001200240030003d000000130300002900000005033002100000001203300029000000000023004b000013a90000213d0000004403100370000000000303043b00000a910030009c000013a90000213d0000002304300039000000000024004b000013a90000813d0000000404300039000000000441034f000000000404043b001100000004001d00000a910040009c000013a90000213d001000240030003d000000110300002900000005033002100000001003300029000000000023004b000013a90000213d0000006402100370000000000302043b000000000003004b0000000002000039000000010200c039000f00000003001d000000000023004b000013a90000c13d0000008401100370000000000101043b000e00000001001d000000ff0010008c000013a90000213d000000000100041a00000a8b011001970000000002000411000000000012004b000014120000c13d0000001401000029000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000201041a000000200120027000000a5b0110019700000a5b0010009c00000ffd0000613d000000000001004b00001cdc0000c13d000000400100043d00000acf0200004100001bdd0000013d00000a6b0030009c00000fd30000613d00000a6c0030009c00000fdb0000613d00000a6d0030009c000013a90000c13d000000a40020008c000013a90000413d0000000003000416000000000003004b000013a90000c13d0000000403100370000000000303043b00000a910030009c000013a90000213d0000002304300039000000000024004b000013a90000813d0000000404300039000000000441034f000000000404043b001400000004001d00000a910040009c000013a90000213d001300240030003d000000140300002900000005033002100000001303300029000000000023004b000013a90000213d0000002403100370000000000303043b00000a910030009c000013a90000213d0000002304300039000000000024004b000013a90000813d0000000404300039000000000441034f000000000404043b001200000004001d00000a910040009c000013a90000213d001100240030003d000000120300002900000005033002100000001103300029000000000023004b000013a90000213d0000004402100370000000000302043b000000000003004b0000000002000039000000010200c039001000000003001d000000000023004b000013a90000c13d0000006402100370000000000302043b000000000003004b0000000002000039000000010200c039000f00000003001d000000000023004b000013a90000c13d0000008401100370000000000101043b000d00000001001d000000ff0010008c000013a90000213d296822150000040f0000000e01000039000000000101041a000000200110027000000a5b01100197000e00000001001d29681f910000040f0000000e03000039000000000203041a00000a9802200197000000200110021000000a9901100197000000000112019f000000000013041b0000000e01000029000000000010043f0000000d01000039000000200010043f00000040020000390000000001000019296829490000040f000000000201041a00000a9a022001970000000e022001af000000000021041b000000400100043d000c00000001001d29681d8f0000040f0000000c0500002900000080015000390000000d02000029000000000021043500000060015000390000000f0200002900000000002104350000004001500039000000100200002900000000002104350000000101000039000000200250003900000000001204350000000e0100002900000000001504350000001301000029000000140200002900000011030000290000001204000029296823d50000040f0000000001000019000029690001042e00000a830030009c00000ff20000613d00000a840030009c000013a90000c13d000000240020008c000013a90000413d0000000002000416000000000002004b000013a90000c13d0000000401100370000000000101043b001400000001001d00000a5b0010009c000013a90000213d29681f480000040f0000001401000029000000000010043f0000000b01000039000000200010043f00000040020000390000000001000019296829490000040f001100000001001d000000400100043d001400000001001d29681d840000040f0000001103000029000000000103041a00000a8b0110019700000014020000290000000001120436001200000001001d000000400200043d001300000002001d000000010130003929681f580000040f000000130210006a000000130100002929681d9a0000040f0000001201000029000000130200002900000000002104350000002001000039000000400200043d001300000002001d0000000002120436000000140100002929681e650000040f000000130200002900000fe90000013d00000a700030009c000010030000613d00000a710030009c000013a90000c13d000000440020008c000013a90000413d0000000003000416000000000003004b000013a90000c13d0000000403100370000000000303043b00000a910030009c000013a90000213d0000002304300039000000000024004b000013a90000813d0000000404300039000000000441034f000000000404043b000c00000004001d00000a910040009c000013a90000213d000a00240030003d0000000c0300002900000005033002100000000a03300029000000000023004b000013a90000213d0000002403100370000000000303043b000b00000003001d00000a910030009c000013a90000213d0000000b030000290000002303300039000000000023004b000013a90000813d0000000b030000290000000403300039000000000131034f000000000101043b00000a910010009c000013a90000213d0000000b03000029001000240030003d00000005031002100000001003300029000000000023004b000013a90000213d0000000c03000029000000000013004b00001a070000c13d000000000003004b000001870000613d000000000100041a00080a8b0010019b001300000000001d000007310000013d0000001f0420003900000adb0440019700000000023200190000000000020435000000400240003900000a5b0020009c00000a5b02008041000000600220021000000a5b0010009c00000a5b010080410000004001100210000000000112019f000000000200041400000a5b0020009c00000a5b02008041000000c002200210000000000112019f00000a8c011001c70000800d02000039000000030300003900000aa20400004100000012050000292968295e0000040f0000000100200190000013a90000613d00000013020000290000000102200039001300000002001d0000000c0020006c000001870000813d00000013010000290000000502100210001400000002001d0000000a012000290000000101100367000000000101043b001200000001001d00000a5b0010009c000013a90000213d0000001201000029000000000010043f0000000b01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000c01043b00000000010c041a00000a8b0210019800001cd60000613d000000140400002900000010044000290000000103000367000000000443034f000000000504043b00000000040000310000000b0640006a000000630660008a00000a9d0760019700000a9d08500197000000000978013f000000000078004b000000000700001900000a9d07004041000000000065004b000000000600001900000a9d0600804100000a9d0090009c000000000706c019000000000007004b000013a90000c13d0000001005500029000000000654004900000a9e0060009c000013a90000213d000000400060008c000013a90000413d000000400b00043d00000a9f00b0009c000014450000213d0000004006b00039000000400060043f000000000653034f000000000606043b00000a8b0060009c000013a90000213d00000000066b0436001400000006001d0000002006500039000000000663034f000000000606043b00000a910060009c000013a90000213d00000000065600190000001f05600039000000000045004b000000000700001900000a9d0700804100000a9d0550019700000a9d08400197000000000985013f000000000085004b000000000500001900000a9d0500404100000a9d0090009c000000000507c019000000000005004b000013a90000c13d000000000563034f000000000505043b00000a910050009c000014450000213d0000001f0750003900000adb077001970000003f0770003900000adb07700197000000400d00043d00000000077d00190000000000d7004b0000000008000039000000010800403900000a910070009c000014450000213d0000000100800190000014450000c13d0000002008600039000000400070043f00000000065d04360000000007850019000000000047004b000013a90000213d000000000483034f00000adb075001980000000003760019000007a60000613d000000000804034f0000000009060019000000008a08043c0000000009a90436000000000039004b000007a20000c13d0000001f08500190000007b30000613d000000000474034f0000000307800210000000000803043300000000087801cf000000000878022f000000000404043b0000010007700089000000000474022f00000000047401cf000000000484019f00000000004304350000000003560019000000000003043500000014030000290000000000d3043500000000030b043300000a8b0330019800001c0d0000613d0000000004000411000000000024004b000007c00000613d0000000005000411000000080050006c00001bec0000c13d0000000106c00039000000000032004b00110000000b001d000f00000006001d000008620000c13d000000400700043d000000200470003900000020010000390000000000140435000000000106041a000000010210019000000001051002700000007f0550618f0000001f0050008c00000000030000390000000103002039000000000331013f00000001003001900000093f0000c13d00000040037000390000000000530435000000000002004b000e0000000c001d000007f40000613d000700000005001d000d00000004001d000900000007001d000000000060043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000090700002900000060027000390000000706000029000000000006004b000007fb0000613d000000000301043b00000000010000190000000004210019000000000503041a000000000054043500000001033000390000002001100039000000000061004b000007ec0000413d000007fc0000013d00000ada0110019700000060027000390000000000120435000000000005004b00000020010000390000000001006039000007fd0000013d00000000010000190000000d0400002900000000027200490000000001120019000000200210008a00000000002704350000001f0110003900000adb021001970000000001720019000000000021004b0000000002000039000000010200403900000a910010009c000014450000213d0000000100200190000014450000c13d000000400010043f00000a5b0040009c00000a5b040080410000004001400210000000000207043300000a5b0020009c00000a5b020080410000006002200210000000000112019f000000000200041400000a5b0020009c00000a5b02008041000000c002200210000000000112019f00000a8c011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000d00000001001d00000014010000290000000003010433000000400100043d0000002002100039000000200400003900000000004204350000004005100039000000004303043400000000003504350000006005100039000000000003004b000008340000613d000000000600001900000000075600190000000008640019000000000808043300000000008704350000002006600039000000000036004b0000082d0000413d000000000453001900000000000404350000001f0330003900000adb03300197000000400430003900000000004104350000007f0330003900000adb043001970000000003140019000000000043004b0000000004000039000000010400403900000a910030009c000014450000213d0000000100400190000014450000c13d000000400030043f00000a5b0020009c00000a5b020080410000004002200210000000000101043300000a5b0010009c00000a5b010080410000006001100210000000000121019f000000000200041400000a5b0020009c00000a5b02008041000000c002200210000000000112019f00000a8c011001c70000801002000039296829630000040f0000000e0c000029000000110b0000290000000100200190000013a90000613d000000000101043b0000000d0010006b0000072c0000613d0000001401000029000000000d01043300000000010c041a00000000020b043300000a8b032001970000000f0600002900000a5c01100197000000000131019f00000000001c041b00000000040d043300000a910040009c000014450000213d000000000106041a000000010010019000000001031002700000007f0330618f0000001f0030008c00000000020000390000000102002039000000000121013f00000001001001900000093f0000c13d000000200030008c000e0000000d001d000d00000004001d000008950000413d000900000003001d000000000060043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000e0d000029000000110b0000290000000100200190000013a90000613d0000000d040000290000001f024000390000000502200270000000200040008c0000000002004019000000000301043b00000009010000290000001f01100039000000050110027000000000011300190000000002230019000000000012004b0000000f06000029000008950000813d000000000002041b0000000102200039000000000012004b000008910000413d000000200040008c000008c10000413d000000000060043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000e07000029000000110b0000290000000100200190000013a90000613d0000000d0800002900000adb02800198000000000101043b000008e30000613d000000010320008a00000005033002700000000003310019000000010430003900000020030000390000000f0600002900000000057300190000000005050433000000000051041b00000020033000390000000101100039000000000041004b000008ad0000c13d000000000082004b000008be0000813d0000000302800210000000f80220018f00000adc0220027f00000adc0220016700000000037300190000000003030433000000000223016f000000000021041b000000010180021000000001011001bf000008cd0000013d000000000004004b000008cc0000613d000000030140021000000adc0110027f00000adc011001670000002002d000390000000002020433000000000112016f0000000102400210000000000121019f000008cd0000013d0000000001000019000000000016041b00000000050b043300000014010000290000000002010433000000400100043d0000002003000039000000000331043600000000420204340000000000230435000000400310003900000a8b06500197000000000002004b000007130000613d000000000500001900000000073500190000000008540019000000000808043300000000008704350000002005500039000000000025004b000008db0000413d000007130000013d00000020030000390000000f06000029000000000082004b000008b60000413d000008be0000013d00000a7a0030009c000012390000613d00000a7b0030009c000013a90000c13d000000440020008c000013a90000413d0000000002000416000000000002004b000013a90000c13d0000000402100370000000000202043b001400000002001d00000a5b0020009c000013a90000213d0000002401100370000000000101043b001300000001001d0000001401000029000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a001200000001001d0000001401000029000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000001202000029000000200220027000000a5b02200197000000000020043f0000000101100039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000001302000029000000000020043f0000000301100039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000201041a000000010320019000000001052002700000007f0550618f0000001f0050008c00000000040000390000000104002039000000000442013f0000000100400190000019d00000613d00000ab901000041000000000010043f0000002201000039000000040010043f00000aa1010000410000296a0001043000000a670030009c000013a00000613d00000a680030009c000013a90000c13d0000000001000416000000000001004b000013a90000c13d0000000e01000039000000000101041a000000200110027000000a5b01100197000000800010043f00000a8a01000041000029690001042e0000000001000416000000000001004b000013a90000c13d000000c001000039000000400010043f0000001a01000039000000800010043f00000ad601000041000000a00010043f0000002001000039000000c00010043f0000008001000039000000e00200003929681df60000040f000000c00110008a00000a5b0010009c00000a5b01008041000000600110021000000ad7011001c7000029690001042e000000240020008c000013a90000413d0000000003000416000000000003004b000013a90000c13d0000000403100370000000000303043b000a00000003001d00000a910030009c000013a90000213d0000000a030000290000002303300039000000000023004b000013a90000813d0000000a030000290000000403300039000000000131034f000000000101043b000900000001001d00000a910010009c000013a90000213d0000000a01000029000f00240010003d000000090100002900000005011002100000000f01100029000000000021004b000013a90000213d000000000100041a00000a8b011001970000000002000411000000000012004b000014120000c13d000000090000006b000001870000613d001200000000001d000000120100002900000005011002100000000f011000290000000101100367000000000201043b00000000010000310000000a0310006a000000c30330008a00000a9d0430019700000a9d05200197000000000645013f000000000045004b000000000400001900000a9d04004041000000000032004b000000000300001900000a9d0300804100000a9d0060009c000000000403c019000000000004004b000013a90000c13d0000000f02200029000000000321004900000a9e0030009c000013a90000213d000000a00030008c000013a90000413d000000400300043d001400000003001d00000aa40030009c000014450000213d0000001403000029000000a004300039000000400040043f0000000103200367000000000303043b00000a910030009c000013a90000213d00000000062300190000001f03600039000000000013004b000000000500001900000a9d0500804100000a9d0730019700000a9d03100197000000000837013f000000000037004b000000000700001900000a9d0700404100000a9d0080009c000000000705c019000000000007004b000013a90000c13d0000000105600367000000000505043b00000a910050009c000014450000213d0000001f0750003900000adb077001970000003f0770003900000adb07700197000000000747001900000a910070009c000014450000213d0000002006600039000000400070043f00000000005404350000000007650019000000000017004b000013a90000213d00000adb0850019800000001096003670000001406000029000000c0066000390000000007860019000009dd0000613d000000000a09034f000000000b06001900000000ac0a043c000000000bcb043600000000007b004b000009d90000c13d0000001f0a500190000009ea0000613d000000000889034f0000000309a00210000000000a070433000000000a9a01cf000000000a9a022f000000000808043b0000010009900089000000000898022f00000000089801cf0000000008a8019f00000000008704350000000005650019000000000005043500000014050000290000000004450436001100000004001d00000020042000390000000105400367000000000505043b00000a910050009c000013a90000213d00000000022500190000001f05200039000000000015004b000000000600001900000a9d0600804100000a9d05500197000000000735013f000000000035004b000000000300001900000a9d0300404100000a9d0070009c000000000306c019000000000003004b000013a90000c13d0000000103200367000000000503043b00000a910050009c000014450000213d0000001f0350003900000adb033001970000003f0330003900000adb06300197000000400300043d0000000006630019000000000036004b0000000007000039000000010700403900000a910060009c000014450000213d0000000100700190000014450000c13d0000002007200039000000400060043f00000000025304360000000006750019000000000016004b000013a90000213d00000adb065001980000000107700367000000000162001900000a230000613d000000000807034f0000000009020019000000008a08043c0000000009a90436000000000019004b00000a1f0000c13d0000001f0850019000000a300000613d000000000667034f0000000307800210000000000801043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000610435000000000152001900000000000104350000001101000029000000000031043500000020014000390000000104100367000000000404043b000000030040008c000013a90000213d00000014050000290000004005500039000d00000005001d000000000045043500000020011000390000000104100367000000000404043b000000010040008c000013a90000213d00000014050000290000006005500039000c00000005001d000000000045043500000020011000390000000101100367000000000101043b00000a8b0010009c000013a90000213d00000014050000290000008004500039001000000004001d00000000001404350000000005050433000000400100043d0000002004100039000000400600003900000000006404350000006008100039000000007605043400000000006804350000008005100039000000000006004b00000a620000613d00000000080000190000000009580019000000000a870019000000000a0a04330000000000a904350000002008800039000000000068004b00000a5b0000413d000000000756001900000000000704350000001f0660003900000adb06600197000000400710003900000060086000390000000000870435000000000556001900000000030304330000000005350436000000000003004b00000a760000613d000000000600001900000000075600190000000008260019000000000808043300000000008704350000002006600039000000000036004b00000a6f0000413d0000000002530019000000000002043500000000021500490000001f0330003900000adb033001970000000002230019000000200320008a00000000003104350000001f0220003900000adb032001970000000002130019000000000032004b0000000003000039000000010300403900000a910020009c000014450000213d0000000100300190000014450000c13d000000400020043f00000a5b0040009c00000a5b040080410000004002400210000000000101043300000a5b0010009c00000a5b010080410000006001100210000000000121019f000000000200041400000a5b0020009c00000a5b02008041000000c002200210000000000112019f00000a8c011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b001300000001001d000000000010043f0000000401000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000000000001004b00001c8d0000c13d0000000301000039000000000101041a00000a910010009c000014450000213d00000001021000390000000303000039000000000023041b00000aaf0110009a0000001302000029000000000021041b000000000103041a000e00000001001d000000000020043f0000000401000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000000e02000029000000000021041b0000001001000029000000000101043300000a8b0210019800000b780000613d000000400100043d000000200510003900000ab0040000410000000000450435000000240310003900000000004304350000002403000039000000000031043500000ab10010009c000014450000213d0000006003100039000000400030043f00000a5b0050009c00000a5b050080410000004003500210000000000101043300000a5b0010009c00000a5b010080410000006001100210000000000131019f00000ab2011001c7000e00000002001d296829630000040f000000600310027000000a5b03300197000000200030008c00000020050000390000000005034019000000200450019000000af00000613d000000000601034f0000000007000019000000006806043c0000000007870436000000000047004b00000aec0000c13d0000001f0550019000000afd0000613d000000000141034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000001002001900000000e0200002900001bf40000613d000000200030008c00001bf40000413d000000000100043d000000000001004b00001bf40000613d000000400100043d000000200510003900000ab0030000410000000000350435000000240310003900000ab30400004100000000004304350000002403000039000000000031043500000ab10010009c000014450000213d0000006003100039000000400030043f00000a5b0050009c00000a5b050080410000004003500210000000000101043300000a5b0010009c00000a5b010080410000006001100210000000000131019f00000ab2011001c7296829630000040f000000600310027000000a5b03300197000000200030008c00000020050000390000000005034019000000200450019000000b290000613d000000000601034f0000000007000019000000006806043c0000000007870436000000000047004b00000b250000c13d0000001f0550019000000b360000613d000000000141034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000001f0030008c00000000010000390000000101002039000000000112016f000000010010008c0000000e0200002900000b400000c13d000000000100043d000000000001004b00001bf40000c13d000000400100043d000000200510003900000ab0030000410000000000350435000000240310003900000ab40400004100000000004304350000002403000039000000000031043500000ab10010009c000014450000213d0000006003100039000000400030043f00000a5b0050009c00000a5b050080410000004003500210000000000101043300000a5b0010009c00000a5b010080410000006001100210000000000131019f00000ab2011001c7296829630000040f000000600310027000000a5b03300197000000200030008c00000020050000390000000005034019000000200450019000000b640000613d000000000601034f0000000007000019000000006806043c0000000007870436000000000047004b00000b600000c13d0000001f0550019000000b710000613d000000000141034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000010020019000001bf40000613d000000200030008c00001bf40000413d000000000100043d000000000001004b00001bf40000613d0000001301000029000000000010043f0000000201000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000301043b00000014010000290000000005010433000000006405043400000a910040009c000014450000213d000000000103041a000000010010019000000001071002700000007f0770618f0000001f0070008c00000000020000390000000102002039000000000121013f00000001001001900000093f0000c13d000000200070008c001400000003001d000e00000004001d000b00000005001d00000bb90000413d000700000007001d000800000006001d000000000030043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d0000000e040000290000001f024000390000000502200270000000200040008c0000000002004019000000000301043b00000007010000290000001f01100039000000050110027000000000011300190000000002230019000000000012004b0000001403000029000000080600002900000bb90000813d000000000002041b0000000102200039000000000012004b00000bb50000413d0000001f0040008c00000be40000a13d000000000030043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d0000000e0600002900000adb02600198000000000101043b00000c5c0000613d000000010320008a00000005033002700000000003310019000000010430003900000020030000390000000b0700002900000000057300190000000005050433000000000051041b00000020033000390000000101100039000000000041004b00000bcf0000c13d000000000062004b00000be00000813d0000000302600210000000f80220018f00000adc0220027f00000adc0220016700000000037300190000000003030433000000000223016f000000000021041b000000010160021000000001011001bf000000140300002900000bef0000013d000000000004004b00000bee0000613d000000030140021000000adc0110027f00000adc011001670000000002060433000000000112016f0000000102400210000000000121019f00000bef0000013d0000000001000019000000000013041b00000011010000290000000006010433000000007506043400000a910050009c000014450000213d0000000104300039000000000104041a000000010010019000000001081002700000007f0880618f0000001f0080008c00000000020000390000000102002039000000000121013f00000001001001900000093f0000c13d000000200080008c001100000004001d000e00000005001d000b00000006001d00000c250000413d000700000008001d000800000007001d000000000040043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d0000000e050000290000001f025000390000000502200270000000200050008c0000000002004019000000000301043b00000007010000290000001f01100039000000050110027000000000011300190000000002230019000000000012004b00000014030000290000001104000029000000080700002900000c250000813d000000000002041b0000000102200039000000000012004b00000c210000413d000000200050008c00000c520000413d000000000040043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d0000000e0600002900000adb02600198000000000101043b00000c8c0000613d000000010320008a00000005033002700000000003310019000000010430003900000020030000390000000b0700002900000000057300190000000005050433000000000051041b00000020033000390000000101100039000000000041004b00000c3b0000c13d000000000062004b0000000d0500002900000c4d0000813d0000000302600210000000f80220018f00000adc0220027f00000adc0220016700000000037300190000000003030433000000000223016f000000000021041b000000010160021000000001011001bf0000001403000029000000110400002900000c630000013d000000000005004b00000c610000613d000000030150021000000adc0110027f00000adc011001670000000002070433000000000112016f0000000102500210000000000121019f00000c620000013d00000020030000390000000b07000029000000000062004b00000bd80000413d00000be00000013d00000000010000190000000d05000029000000000014041b0000000002050433000000040020008c000019ac0000813d0000000201300039000000000301041a00000ada03300197000000000223019f000000000021041b0000000c030000290000000003030433000000010030008c000019ac0000213d00000ab60220019700000008033002100000ff000330018f000000000223019f00000010030000290000000003030433000000100330021000000ab703300197000000000232019f000000000021041b000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a8c011001c70000800d02000039000000020300003900000ab80400004100000013050000292968295e0000040f0000000100200190000013a90000613d00000012020000290000000102200039001200000002001d000000090020006c0000098b0000413d000001870000013d00000020030000390000000b07000029000000000062004b0000000d0500002900000c450000413d00000c4d0000013d000000240020008c000013a90000413d0000000003000416000000000003004b000013a90000c13d0000000403100370000000000303043b00000a910030009c000013a90000213d0000002304300039000000000024004b000013a90000813d0000000404300039000000000141034f000000000101043b001000000001001d00000a910010009c000013a90000213d000f00240030003d000000100100002900000005011002100000000f01100029000000000021004b000013a90000213d000000100000006b000001870000613d000000000100041a000e0a8b0010019b001400000000001d000000140100002900000005011002100000000f011000290000000101100367000000000101043b001300000001001d000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000301043b0000000101300039000000000101041a001200000001001d000000000001004b00001bb50000613d0000000501300039000000000201041a000000000002004b00001bbb0000c13d001100000003001d000000000103041a000000400210027000000a5b0220019800001bcb0000c13d00000000020004110000000e0020006c00000ce60000613d00000a5b01100197000000000010043f0000000b01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a00000a8b011001970000000002000411000000000012004b00001bec0000c13d0000001201000029000000000010043f0000000801000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000301041a000000000003004b00000d2c0000613d0000000701000039000000000201041a000000000002004b00000ffd0000613d000000010130008a000000000032004b00000d190000613d000000000012004b00001b560000a13d00000ac40130009a00000ac40220009a000000000202041a000000000021041b000000000020043f0000000801000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039000d00000003001d296829630000040f0000000100200190000013a90000613d000000000101043b0000000d02000029000000000021041b0000000701000039000000000301041a000000000003004b00001be60000613d000000010130008a00000ac40230009a000000000002041b0000000702000039000000000012041b0000001201000029000000000010043f0000000801000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000001041b00000011010000290000000201100039000000000101041a001200000001001d000000000010043f0000000a01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000301041a000000000003004b00000d750000613d0000000901000039000000000201041a000000000002004b00000ffd0000613d000000010130008a000000000032004b00000d620000613d000000000012004b00001b560000a13d00000acd0130009a00000acd0220009a000000000202041a000000000021041b000000000020043f0000000a01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039001100000003001d296829630000040f0000000100200190000013a90000613d000000000101043b0000001102000029000000000021041b0000000901000039000000000301041a000000000003004b00001be60000613d000000010130008a00000acd0230009a000000000002041b0000000902000039000000000012041b0000001201000029000000000010043f0000000a01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000001041b0000001301000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000001041b0000000102100039000000000002041b0000000202100039000000000002041b0000000302100039000000000002041b0000000501100039000000000201041a000000000001041b000000000002004b00000da20000613d001200000002001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000001202100029000000000021004b00000da20000813d000000000001041b0000000101100039000000000021004b00000d9e0000413d000000400100043d0000001302000029000000000021043500000a5b0010009c00000a5b010080410000004001100210000000000200041400000a5b0020009c00000a5b02008041000000c002200210000000000112019f00000a95011001c70000800d02000039000000010300003900000ace040000412968295e0000040f0000000100200190000013a90000613d00000014020000290000000102200039001400000002001d000000100020006c00000caf0000413d000001870000013d0000000001000416000000000001004b000013a90000c13d0000000302000039000000000102041a000000800010043f000000000020043f000000000001004b000013cc0000c13d000000a001000039000a00000001001d000000400010043f000900200000003d000000000200001900000005012002100000003f0310003900000a92033001970000000a0330002900000a910030009c000014450000213d000000400030043f0000000a030000290000000000230435000000000002004b00000dee0000613d0000000902000029000000a00220003900000060030000390000000004000019000000400500043d00000a970050009c000014450000213d000000e006500039000000400060043f0000004006500039000000000036043500000020065000390000000000360435000000c0065000390000000000060435000000a006500039000000000006043500000080065000390000000000060435000000600650003900000000000604350000000000050435000000000642001900000000005604350000002004400039000000000014004b00000dd70000413d000000800100043d000000000001004b000018720000c13d000000400100043d000000200200003900000000032104360000000a0f00002900000000020f04330000000000230435000000400310003900000005042002100000000004340019000000000002004b00000e4b0000613d000000e00500003900000000070000190000000008140049000000400880008a0000000003830436000000200ff0003900000000080f043300000000a90804340000000009940436000000000a0a04330000000000590435000000e00c40003900000000b90a043400000000009c0435000001000a400039000000000009004b00000e150000613d000000000c000019000000000dac0019000000000ecb0019000000000e0e04330000000000ed0435000000200cc0003900000000009c004b00000e0e0000413d000000000ba9001900000000000b04350000001f0990003900000adb099001970000000009a90019000000400a800039000000000a0a0433000000000b490049000000400c4000390000000000bc043500000000ba0a04340000000009a9043600000000000a004b00000e2b0000613d000000000c000019000000000d9c0019000000000ecb0019000000000e0e04330000000000ed0435000000200cc000390000000000ac004b00000e240000413d000000000b9a001900000000000b0435000000600b800039000000000b0b04330000000300b0008c000019ac0000213d000000600c4000390000000000bc0435000000800b800039000000000b0b04330000000100b0008c000019ac0000213d000000800c4000390000000000bc0435000000a00b800039000000000b0b043300000a8b0bb00197000000a00c4000390000000000bc0435000000c004400039000000c0088000390000000008080433000000000008004b0000000008000039000000010800c03900000000008404350000001f04a0003900000adb0440019700000000049400190000000107700039000000000027004b00000dfe0000413d000000000214004900000a5b0020009c00000a5b02008041000000600220021000000a5b0010009c00000a5b010080410000004001100210000000000112019f000029690001042e000000240020008c000013a90000413d0000000003000416000000000003004b000013a90000c13d0000000403100370000000000303043b00000a910030009c000013a90000213d0000002304300039000000000024004b000013a90000813d0000000404300039000000000141034f000000000101043b000800000001001d00000a910010009c000013a90000213d000700240030003d000000080100002900000005051002100000000703500029000000000023004b000013a90000213d0000003f0250003900000aa50220019700000a900020009c000014450000213d0000008001200039000000400010043f0000000803000029000000800030043f000000000003004b000019b20000c13d001400000001001d000000800200003929681d350000040f00000fe80000013d000000440020008c000013a90000413d0000000003000416000000000003004b000013a90000c13d0000000403100370000000000403043b00000a910040009c000013a90000213d0000002303400039000000000023004b000013a90000813d0000000405400039000000000351034f000000000303043b00000a910030009c000014450000213d0000001f0730003900000adb077001970000003f0770003900000adb0770019700000a900070009c000014450000213d00000024044000390000008007700039000000400070043f000000800030043f0000000004430019000000000024004b000013a90000213d0000002004500039000000000541034f00000adb063001980000001f0730018f000000a00460003900000ea40000613d000000a008000039000000000905034f000000009a09043c0000000008a80436000000000048004b00000ea00000c13d000000000007004b00000eb10000613d000000000565034f0000000306700210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f0000000000540435000000a00330003900000000000304350000002401100370000000000101043b00000a910010009c000013a90000213d000000040110003929681dac0000040f0000000002010019000000800100003929681ed90000040f0000059d0000013d000000240020008c000013a90000413d0000000002000416000000000002004b000013a90000c13d0000000401100370000000000101043b29681fab0000040f0000002002000039000000400300043d001400000003001d000000000223043629681cfb0000040f00000fe80000013d000000240020008c000013a90000413d0000000003000416000000000003004b000013a90000c13d0000000403100370000000000303043b00000a910030009c000013a90000213d0000002304300039000000000024004b000013a90000813d0000000404300039000000000141034f000000000101043b001100000001001d00000a910010009c000013a90000213d001000240030003d000000110100002900000005011002100000001001100029000000000021004b000013a90000213d000000000100041a00000a8b011001970000000002000411000000000012004b000014120000c13d000000110000006b000001870000613d001300000000001d0000001301000029000000050110021000000010011000290000000101100367000000000101043b001400000001001d000000000010043f0000000401000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000000000001004b00001bd80000613d0000001401000029000000000010043f0000000601000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000000000001004b00001bdb0000c13d0000000503000039000000000103041a00000a910010009c000014450000213d0000000102100039000000000023041b00000abb0110009a0000001402000029000000000021041b000000000103041a001200000001001d000000000020043f0000000601000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000001202000029000000000021041b000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a8c011001c70000800d02000039000000020300003900000abc0400004100000014050000292968295e0000040f0000000100200190000013a90000613d00000013020000290000000102200039001300000002001d000000110020006c00000eeb0000413d000001870000013d000000240020008c000013a90000413d0000000002000416000000000002004b000013a90000c13d0000000401100370000000000101043b001400000001001d00000a5b0010009c000013a90000213d29681f2e0000040f00000014010000292968222c0000040f0000002002000039000000400300043d001400000003001d000000000223043629681e080000040f00000fe80000013d000000240020008c000013a90000413d0000000003000416000000000003004b000013a90000c13d0000000403100370000000000303043b00000a910030009c000013a90000213d0000002304300039000000000024004b000013a90000813d0000000404300039000000000141034f000000000101043b001200000001001d00000a910010009c000013a90000213d001100240030003d000000120100002900000005011002100000001101100029000000000021004b000013a90000213d000000000100041a00000a8b011001970000000002000411000000000012004b000014120000c13d000000120000006b000001870000613d001400000000001d0000001401000029000000050110021000000011011000290000000101100367000000000101043b001300000001001d00000a5b0010009c000013a90000213d0000001301000029000000000010043f0000000b01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000001041b0000000103100039000000000103041a000000010010019000000001041002700000007f0440618f0000001f0040008c00000000020000390000000102002039000000000121013f00000001001001900000093f0000c13d000000000004004b00000fbe0000613d0000001f0040008c00000fbd0000a13d000f00000004001d000000000030043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039001000000003001d296829630000040f0000000100200190000013a90000613d0000001003000029000000000201043b0000000f010000290000001f01100039000000050110027000000000011200190000000102200039000000000012004b00000fb00000813d000000000002041b0000000102200039000000000012004b00000fac0000413d000000000030043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000301043b0000001002000029000000000002041b000000000003041b000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a8c011001c70000800d02000039000000020300003900000ad10400004100000013050000292968295e0000040f0000000100200190000013a90000613d000000140100002900000a5b0010009c00000ffd0000613d000000010110003900000a5b02100197001400000002001d000000120020006c00000f710000413d000001870000013d0000000001000416000000000001004b000013a90000c13d000000000100041a00000a8b01100197000000800010043f00000a8a01000041000029690001042e000000240020008c000013a90000413d0000000002000416000000000002004b000013a90000c13d0000000401100370000000000101043b296820e20000040f0000002002000039000000400300043d001400000003001d000000000223043629681e7f0000040f0000001402000029000000000121004900000a5b0010009c00000a5b01008041000000600110021000000a5b0020009c00000a5b020080410000004002200210000000000121019f000029690001042e0000000001000416000000000001004b000013a90000c13d0000000e01000039000000000101041a000000200110027000000a5b01100197000400000001001d000000010110008a00000a5b0010009c000013e30000a13d00000ab901000041000000000010043f0000001101000039000000040010043f00000aa1010000410000296a00010430000000240020008c000013a90000413d0000000003000416000000000003004b000013a90000c13d0000000403100370000000000303043b000300000003001d00000a910030009c000013a90000213d00000003030000290000002303300039000000000023004b000013a90000813d00000003030000290000000403300039000000000131034f000000000101043b000200000001001d00000a910010009c000013a90000213d0000000301000029000500240010003d000000020100002900000005011002100000000501100029000000000021004b000013a90000213d000000020000006b000001870000613d000000000100041a00010a8b0010019b000800000000001d0000000801000029000000050110021000000005011000290000000101100367000000000201043b0000000001000031000000030310006a000000c30330008a00000a9d0430019700000a9d05200197000000000645013f000000000045004b000000000400001900000a9d04004041000000000032004b000000000300001900000a9d0300804100000a9d0060009c000000000403c019000000000004004b000013a90000c13d0000000502200029000000000321004900000a9e0030009c000013a90000213d000000a00030008c000013a90000413d000000400300043d000b00000003001d00000aa40030009c000014450000213d0000000b03000029000000a003300039000000400030043f0000000103200367000000000303043b00000a5b0030009c000013a90000213d0000000b04000029000000000534043600000020032000390000000103300367000000000303043b000900000005001d000000000035043500000040032000390000000103300367000000000303043b0000004005400039000a00000005001d0000000000350435000000600440003900000060032000390000000103300367000000000303043b000700000004001d000000000034043500000080032000390000000103300367000000000303043b00000a910030009c000013a90000213d00000000032300190000001f02300039000000000012004b000000000400001900000a9d0400804100000a9d0220019700000a9d05100197000000000652013f000000000052004b000000000200001900000a9d0200404100000a9d0060009c000000000204c019000000000002004b000013a90000c13d0000000102300367000000000402043b00000a910040009c000014450000213d00000005054002100000003f0250003900000aa506200197000000400200043d0000000006620019000000000026004b0000000007000039000000010700403900000a910060009c000014450000213d0000000100700190000014450000c13d000000400060043f000000000042043500000020033000390000000004350019000000000014004b000013a90000213d000000000043004b000010910000813d00000000010200190000000105300367000000000505043b000000200110003900000000005104350000002003300039000000000043004b0000108a0000413d0000000b010000290000008003100039001400000003001d0000000000230435000000000101043300000a5b01100197000000000010043f0000000b01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000400500043d00000a9f0050009c000014450000213d000000000101043b0000004002500039000000400020043f000000000201041a00000a8b0220019700000000062504360000000101100039000000000201041a000000010320019000000001082002700000007f0880618f0000001f0080008c00000000040000390000000104002039000000000442013f00000001004001900000093f0000c13d000000400700043d0000000004870436000000000003004b000010db0000613d000f00000004001d001000000008001d001100000007001d001200000006001d001300000005001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d0000001008000029000000000008004b000010e10000613d000000000201043b00000000010000190000001305000029000000120600002900000011070000290000000f090000290000000003910019000000000402041a000000000043043500000001022000390000002001100039000000000081004b000010d30000413d000010e50000013d00000ada012001970000000000140435000000000008004b00000020010000390000000001006039000010e50000013d00000000010000190000001305000029000000120600002900000011070000290000003f0110003900000adb021001970000000001720019000000000021004b0000000002000039000000010200403900000a910010009c000014450000213d0000000100200190000014450000c13d000000400010043f0000000000760435000000000105043300000a8b0110019800001cc50000613d0000000002000411000000010020006c000010f90000613d000000000012004b00001bec0000c13d0000000a010000290000000001010433000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d0000000a020000290000000002020433000000000401043b0000000103400039000000000103041a000000000001004b00001ccc0000c13d000000000002004b00001cd00000613d000600000004001d000400000003001d00000009010000290000000001010433000000000001004b00001c900000613d000000000010043f0000000801000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000000000001004b00001c900000c13d00000007010000290000000001010433000000000001004b000000060400002900001cc20000613d00000014010000290000000001010433001300000001001d0000000021010434000f00000002001d000000000001004b000019f60000613d000000000104041a000000200210027000000a5b0220019700000a5b0020009c00000ffd0000613d00000a9801100197000000200220021000000a9a0220009a00000a9903200197000000000113019f000000000014041b000e00040040003d000d00200020027800000000020000190000114a0000013d000000000101043b0000001202000029000000000021041b0000001402000029000000010220003900000013010000290000000001010433000000000012004b000011ab0000813d001400000002001d00000005012002100000000f01100029001200000001001d0000000001010433000000000010043f0000000401000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000000000001004b000019f60000613d0000000d01000029000000000010043f0000000e01000029000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000301043b00000013010000290000000001010433000000140010006c00001b560000a13d00000012010000290000000001010433001100000001001d000000000010043f001200000003001d0000000101300039001000000001001d000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000000000001004b000011440000c13d0000001202000029000000000102041a00000a910010009c000014450000213d000c00000001001d0000000101100039000000000012041b000000000020043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000000c011000290000001102000029000000000021041b0000001201000029000000000101041a001200000001001d000000000020043f0000001001000029000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000011410000c13d000013a90000013d000000070100002900000000010104330000000604000029000000000204041a0000000303400039000000000013041b00000a9a012001970000000b02000029000000000202043300000a5b02200197000000000112019f000000000014041b00000002014000390000000a020000290000000002020433000000000021041b000000090100002900000000020104330000000401000029000000000021041b001400000002001d000000000020043f0000000801000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000000000001004b000011eb0000c13d0000000701000039000000000101041a00000a910010009c000014450000213d00000001021000390000000703000039000000000023041b00000aa70110009a0000001402000029000000000021041b000000000103041a001300000001001d000000000020043f0000000801000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000001302000029000000000021041b0000000a010000290000000001010433001400000001001d000000000010043f0000000a01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000000000001004b000012190000c13d0000000901000039000000000101041a00000a910010009c000014450000213d00000001021000390000000903000039000000000023041b00000aa80110009a0000001402000029000000000021041b000000000103041a001300000001001d000000000020043f0000000a01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000001302000029000000000021041b0000000b0100002900000000020104330000000a01000029000000000101043300000009030000290000000003030433000000400400043d00000020054000390000000000350435000000000014043500000a5b0040009c00000a5b040080410000004001400210000000000300041400000a5b0030009c00000a5b03008041000000c003300210000000000113019f00000a94011001c700000a5b052001970000800d02000039000000020300003900000aa9040000412968295e0000040f0000000100200190000013a90000613d00000008020000290000000102200039000800000002001d000000020020006c000010240000413d000001870000013d000000240020008c000013a90000413d0000000003000416000000000003004b000013a90000c13d0000000403100370000000000303043b000c00000003001d00000a910030009c000013a90000213d0000000c030000290000002303300039000000000023004b000013a90000813d0000000c030000290000000403300039000000000131034f000000000101043b000b00000001001d00000a910010009c000013a90000213d0000000c01000029001100240010003d0000000b0100002900000005011002100000001101100029000000000021004b000013a90000213d000000000100041a00000a8b011001970000000002000411000000000012004b000014120000c13d0000000b0000006b000001870000613d001400000000001d0000001401000029000000050110021000000011011000290000000101100367000000000201043b00000000010000310000000c0310006a000000630330008a00000a9d0430019700000a9d05200197000000000645013f000000000045004b000000000400001900000a9d04004041000000000032004b000000000300001900000a9d0300804100000a9d0060009c000000000403c019000000000004004b000013a90000c13d0000001102200029000000000321004900000a9e0030009c000013a90000213d000000400030008c000013a90000413d000000400a00043d00000a9f00a0009c000014450000213d0000004003a00039000000400030043f0000000103200367000000000303043b00000a8b0030009c000013a90000213d00000000033a0436001300000003001d00000020032000390000000103300367000000000303043b00000a910030009c000013a90000213d00000000042300190000001f02400039000000000012004b000000000300001900000a9d0300804100000a9d0220019700000a9d05100197000000000652013f000000000052004b000000000200001900000a9d0200404100000a9d0060009c000000000203c019000000000002004b000013a90000c13d0000000102400367000000000302043b00000a910030009c000014450000213d0000001f0230003900000adb022001970000003f0220003900000adb05200197000000400200043d0000000005520019000000000025004b0000000006000039000000010600403900000a910050009c000014450000213d0000000100600190000014450000c13d0000002006400039000000400050043f00000000043204360000000005630019000000000015004b000013a90000213d00000adb0530019800000001066003670000000001540019000012b80000613d000000000706034f0000000008040019000000007907043c0000000008980436000000000018004b000012b40000c13d0000001f07300190000012c50000613d000000000556034f0000000306700210000000000701043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f0000000000510435000000000134001900000000000104350000001301000029000000000021043500000000010a043300000a8b0110019800001c0d0000613d000000400500043d00000a9f0050009c000014450000213d0000000e03000039000000000303041a00000a5b043001970000004003500039000000400030043f001000000005001d0000000001150436000f00000001001d0000000000210435000e00000004001d000000000040043f0000000b01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c7000080100200003900120000000a001d296829630000040f00000012070000290000000100200190000013a90000613d0000001002000029000000000202043300000a8b02200197000000000101043b000000000301041a00000a5c03300197000000000223019f000000000021041b0000000f020000290000000003020433000000005403043400000a910040009c000014450000213d0000000108100039000000000108041a000000010010019000000001061002700000007f0660618f0000001f0060008c00000000020000390000000102002039000000000121013f00000001001001900000093f0000c13d000000200060008c001000000008001d000f00000004001d000d00000003001d000013240000413d000900000006001d000a00000005001d000000000080043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f00000012070000290000000100200190000013a90000613d0000000f040000290000001f024000390000000502200270000000200040008c0000000002004019000000000301043b00000009010000290000001f01100039000000050110027000000000011300190000000002230019000000000012004b00000010080000290000000a05000029000013240000813d000000000002041b0000000102200039000000000012004b000013200000413d000000200040008c000013510000413d000000000080043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f00000012070000290000000100200190000013a90000613d0000000f0900002900000adb02900198000000000101043b000013990000613d000000010320008a00000005033002700000000003310019000000010430003900000020030000390000000e0600003900000010080000290000000d0a0000290000000005a300190000000005050433000000000051041b00000020033000390000000101100039000000000041004b0000133d0000c13d000000000092004b0000134e0000813d0000000302900210000000f80220018f00000adc0220027f00000adc022001670000000003a300190000000003030433000000000223016f000000000021041b000000010190021000000001011001bf0000135d0000013d000000000004004b0000000e060000390000135c0000613d000000030140021000000adc0110027f00000adc011001670000000002050433000000000112016f0000000102400210000000000121019f0000135d0000013d0000000001000019000000000018041b000000000106041a00000a5b0210019700000a5b0020009c00000ffd0000613d00000a9a011001970000000102200039000000000112019f000000000016041b000000000507043300000013010000290000000002010433000000400100043d0000002003000039000000000331043600000000420204340000000000230435000000400310003900000a8b06500197000000000002004b0000137a0000613d000000000500001900000000073500190000000008540019000000000808043300000000008704350000002005500039000000000025004b000013730000413d0000001f0420003900000adb0440019700000000023200190000000000020435000000400240003900000a5b0020009c00000a5b02008041000000600220021000000a5b0010009c00000a5b010080410000004001100210000000000112019f000000000200041400000a5b0020009c00000a5b02008041000000c002200210000000000112019f00000a8c011001c70000800d02000039000000030300003900000ac1040000410000000e050000292968295e0000040f0000000100200190000013a90000613d00000014020000290000000102200039001400000002001d0000000b0020006c0000125d0000413d000001870000013d00000020030000390000000e0600003900000010080000290000000d0a000029000000000092004b000013460000413d0000134e0000013d000000240020008c000013a90000413d0000000002000416000000000002004b000013a90000c13d0000000401100370000000000601043b00000a8b0060009c000014010000a13d00000000010000190000296a0001043000000a6001000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f00000aac01000041000000c40010043f00000a62010000410000296a00010430000000a00400003900000a8f0200004100000000030000190000000005040019000000000402041a000000000445043600000001022000390000000103300039000000000013004b000013b80000413d000000410150008a00000adb01100197000700000001001d00000a900010009c000014450000213d00000007010000290000008001100039000000800200043d000800000001001d000000400010043f00000a910020009c0000055d0000a13d000014450000013d00000a9602000041000000a00300003900000000040000190000000005030019000000000302041a000000000335043600000001022000390000000104400039000000000014004b000013cf0000413d000000410150008a00000adb01100197000900000001001d00000a900010009c000014450000213d00000009010000290000008001100039000000800200043d000a00000001001d000000400010043f00000a910020009c00000dc80000a13d000014450000013d000000000301001900000005011002100000003f0210003900000aa5022001970000008002200039000000400020043f000000800030043f000300000003001d000000000003004b000700000000001d0000142c0000c13d0000000702000029000000030020006c000013f20000613d000000800020043f000000400200043d00000020010000390000000001120436000000800300043d0000000000310435001300000002001d000000400220003900000005013002100000000009210019001200000003001d000000000003004b0000146f0000c13d0000001302000029000000000129004900000fea0000013d000000000100041a00000a8b011001970000000005000411000000000015004b000014120000c13d000000000056004b000016960000c13d00000a6001000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f00000a8e01000041000000c40010043f00000a62010000410000296a0001043000000a6001000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f00000ad301000041000000c40010043f00000a62010000410000296a00010430000000600300003900000000040000190000004005200039000000400050043f000000200520003900000000003504350000000000020435000000a00540003900000000002504350000002004400039000000000014004b000016a70000813d000000400200043d00000a9f0020009c0000141e0000a13d000014450000013d00000060050000390000000003000019000000e004200039000000400040043f000000c0042000390000000000540435000000a0042000390000000000540435000000800420003900000000000404350000006004200039000000000004043500000040042000390000000000040435000000200420003900000000000404350000000000020435000000a00430003900000000002404350000002003300039000000000013004b000014da0000813d000000400200043d00000a970020009c0000142e0000a13d00000ab901000041000000000010043f0000004101000039000000040010043f00000aa1010000410000296a0001043000000040040000390000000006000019000014560000013d0000001f0980003900000adb099001970000000008780019000000000008043500000000077900190000000106600039000000000026004b000005cd0000813d0000000008170049000000400880008a0000000003830436000000200dd0003900000000080d0433000000009808043400000a8b08800197000000000887043600000000090904330000000000480435000000400a700039000000009809043400000000008a04350000006007700039000000000008004b0000144e0000613d000000000a000019000000000b7a0019000000000ca90019000000000c0c04330000000000cb0435000000200aa0003900000000008a004b000014670000413d0000144e0000013d000000800300003900000040060000390000000008000019000014780000013d0000000108800039000000120080006c00000000020400190000001403000029000013fe0000813d000000130190006a000000400110008a00000000021204360000002003300039000000000b03043300000000510b043400000a5b011001970000000001190436000000000505043300000a5b0550019700000000005104350000004001b000390000000001010433000000ff0110018f000000400590003900000000001504350000006001b000390000000001010433000000000001004b0000000001000039000000010100c039000000600590003900000000001504350000008001b000390000000001010433000000000001004b0000000001000039000000010100c03900000080059000390000000000150435000000a001b00039000000000c010433000000a001900039000000e0040000390000000000410435000000e001900039000000000d0c04330000000000d10435000001000a90003900000000000d004b001400000003001d000014a90000613d0000000005000019000000200cc0003900000000010c0433000000000a1a043600000001055000390000000000d5004b000014a30000413d0000000004020019000000c001b00039000000000b01043300000000019a0049000000c0059000390000000000150435000000000c0b04330000000000ca04350000000501c0021000000000011a0019000000200910003900000000000c004b000014730000613d000000000d000019000000000e0a0019000014c10000013d00000000019f001900000000000104350000001f01f0003900000adb011001970000000009910019000000010dd000390000000000cd004b000014730000813d0000000001a90049000000200110008a000000200ee0003900000000001e0435000000200bb0003900000000010b043300000000510104340000000001190436000000000505043300000000006104350000004001900039000000005f0504340000000000f10435000000600990003900000000000f004b000014b90000613d0000000001000019000000000291001900000000031500190000000003030433000000000032043500000020011000390000000000f1004b000014d20000413d000014b90000013d0000000401000029000000020010008c000700000000001d000013ee0000413d0000000102000039000700000000001d000014e60000013d0000000801000029000000010110003900000a5b02100197000000040020006c000013ee0000813d000800000002001d000000000020043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a00000a5b00100198000014e10000613d000000400100043d00000a970010009c0000006003000039000014450000213d000000e002100039000000400020043f000000c0021000390000000000320435000000a00210003900000000003204350000008002100039000000000002043500000060021000390000000000020435000000400210003900000000000204350000002002100039000000000002043500000000000104350000000801000029000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a001400000001001d0000000801000029000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d0000001402000029000000200220027000000a5b02200197000000000101043b000500000002001d000000000020043f0000000101100039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000600000001001d0000000201100039000000000301041a000000400200043d000f00000002001d001400000003001d0000000002320436000e00000002001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d0000001405000029000000000005004b0000000e02000029000015580000613d000000000101043b0000000e020000290000000003000019000000000401041a000000000242043600000001011000390000000103300039000000000053004b000015520000413d0000000f0120006a0000001f0110003900000adb011001970000000f02100029000000000012004b00000000010000390000000101004039001300000002001d00000a910020009c0000006005000039000014450000213d0000000100100190000014450000c13d0000001301000029000000400010043f0000000f01000029000000000201043300000a910020009c000014450000213d00000005012002100000003f0310003900000aa503300197000000130330002900000a910030009c000014450000213d000000400030043f00000013030000290000000003230436001400000003001d000000000002004b000015fc0000613d0000000002000019000000400300043d00000a9f0030009c000014450000213d0000004004300039000000400040043f000000200430003900000000005404350000000000030435000000140420002900000000003404350000002002200039000000000012004b000015780000413d00000013010000290000000001010433000000000001004b000015fc0000613d0000000601000029000d00030010003d00000000020000190000000f010000290000000001010433000000000021004b00001b560000a13d001100000002001d0000000502200210001000000002001d0000000e012000290000000001010433001200000001001d000000000010043f0000000d01000029000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000400500043d00000a9f0050009c000014450000213d0000004002500039000000400020043f00000012020000290000000006250436000000000201041a000000010320019000000001082002700000007f0880618f0000001f0080008c00000000040000390000000104002039000000000043004b0000093f0000c13d000000400700043d0000000004870436000000000003004b000015d70000613d000900000004001d001200000008001d000a00000007001d000b00000006001d000c00000005001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d0000001208000029000000000008004b000015dd0000613d000000000201043b00000000010000190000000c050000290000000b060000290000000a0700002900000009090000290000000003910019000000000402041a000000000043043500000001022000390000002001100039000000000081004b000015cf0000413d000015e10000013d00000ada012001970000000000140435000000000008004b00000020010000390000000001006039000015e10000013d00000000010000190000000c050000290000000b060000290000000a070000290000003f0110003900000adb021001970000000001720019000000000021004b0000000002000039000000010200403900000a910010009c000014450000213d0000000100200190000014450000c13d000000400010043f0000000000760435000000130100002900000000010104330000001102000029000000000021004b00001b560000a13d00000010030000290000001401300029000000000051043500000013010000290000000001010433000000000021004b00001b560000a13d0000000102200039000000000012004b0000158c0000413d0000000801000029000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a001400000001001d0000000801000029000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a001200000001001d0000000801000029000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000e00000001001d0000000801000029000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000d00000001001d0000000601000029000000000301041a000000400200043d001100000002001d000f00000003001d0000000002320436001000000002001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d0000000f06000029000000000006004b0000165b0000613d000000000101043b000000000200001900000011040000290000001005000029000000000301041a000000000535043600000001011000390000000102200039000000000062004b000016540000413d0000165d0000013d0000001104000029000000100500002900000000014500490000001f0110003900000adb021001970000000001420019000000000021004b0000000002000039000000010200403900000a910010009c000014450000213d0000000100200190000014450000c13d000000400010043f00000a970010009c000014450000213d000000e002100039000000400020043f000000c00210003900000013030000290000000000320435000000a00210003900000000004204350000000d0200002900000ad0002001980000000002000039000000010200c039000000800310003900000000002304350000000e0200002900000ad2002001980000000002000039000000010200c0390000006003100039000000000023043500000012020000290000004002200270000000ff0220018f00000040031000390000000000230435000000200210003900000005030000290000000000320435000000140200002900000a5b022001970000000000210435000000800200043d000000070020006c00001b560000a13d00000007030000290000000502300210000000a0022000390000000000120435000000800100043d000000000031004b00001b560000a13d0000000701000029000700010010003d000014e10000013d0000000101000039000000000201041a00000a5c02200197000000000262019f000000000021041b000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a8c011001c70000800d02000039000000030300003900000a8d040000412968295e0000040f0000000100200190000001870000c13d000013a90000013d0000001201000029000000020010008c001300000000001d000005bf0000413d0000000102000039001300000000001d000016b30000013d0000001401000029000000010110003900000a5b02100197000000120020006c000005bf0000813d001400000002001d000000000020043f0000000b01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f000000800d0000390000000100200190000013a90000613d000000000101043b000000000101041a00000a8b00100198000016ae0000613d0000001401000029000000000010043f0000000b01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f000000800d0000390000000100200190000013a90000613d000000400500043d00000a9f0050009c000014450000213d000000000101043b0000004002500039000000400020043f000000000201041a00000a8b0220019700000000062504360000000101100039000000000201041a000000010320019000000001082002700000007f0880618f0000001f0080008c00000000040000390000000104002039000000000442013f00000001004001900000093f0000c13d000000400700043d0000000004870436000000000003004b0000170c0000613d000d00000004001d000e00000008001d000f00000007001d001000000006001d001100000005001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f000000800d0000390000000100200190000013a90000613d0000000e08000029000000000008004b000017120000613d000000000201043b0000000001000019000000110500002900000010060000290000000f070000290000000d090000290000000003910019000000000402041a000000000043043500000001022000390000002001100039000000000081004b000017040000413d000017160000013d00000ada012001970000000000140435000000000008004b00000020010000390000000001006039000017160000013d0000000001000019000000110500002900000010060000290000000f070000290000003f0110003900000adb021001970000000001720019000000000021004b0000000002000039000000010200403900000a910010009c000014450000213d0000000100200190000014450000c13d000000400010043f0000000000760435000000800100043d0000001302000029000000000021004b00001b560000a13d0000000501200210000000a0011000390000000000510435000000800100043d000000000021004b00001b560000a13d001300010020003d000016ae0000013d00008010040000390000000005000019000000400100043d00000a930010009c000014450000213d001200000005001d0000000502500210000000a002200039000f00000002001d00000000050204330000010002100039000000400020043f000000e00210003900000060030000390000000000320435000000c0021000390000000000320435000000a0021000390000000000020435000000800210003900000000000204350000006002100039000000000002043500000040021000390000000000020435000000200210003900000000000204350000000000010435001400000005001d000000000050043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000000002040019296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000e00000001001d0000001401000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000000201100039000000000101041a000d00000001001d0000001401000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000000101100039000000000101041a000c00000001001d0000001401000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000000301100039000000000101041a000b00000001001d0000001401000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b001300000001001d0000001401000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000000200110027000000a5b01100197000000000010043f00000013010000290000000401100039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000301041a000000400200043d001300000002001d001000000003001d0000000002320436001100000002001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d00000014050000290000001007000029000000000007004b000017da0000613d000000000101043b000000000400001900008010020000390000001106000029000000000301041a000000000636043600000001011000390000000104400039000000000074004b000017d30000413d000017dc0000013d00008010020000390000001106000029000000130160006a0000001f0110003900000adb031001970000001301300029000000000031004b0000000003000039000000010300403900000a910010009c000014450000213d0000000100300190000014450000c13d000000400010043f000000000050043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c7296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a001100000001001d0000001401000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000900000001001d0000001401000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000000501100039000000000301041a000000400200043d001400000002001d000a00000003001d0000000002320436001000000002001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d0000000a07000029000000000007004b000018340000613d000000000101043b0000000002000019000080100400003900000012050000290000001006000029000000000301041a000000000636043600000001011000390000000102200039000000000072004b0000182d0000413d000018370000013d000080100400003900000012050000290000001006000029000000140300002900000000013600490000001f0110003900000adb021001970000000001320019000000000021004b0000000002000039000000010200403900000a910010009c000014450000213d0000000100200190000014450000c13d000000400010043f00000a930010009c000014450000213d0000010002100039000000400020043f000000e0021000390000000000320435000000c00210003900000013030000290000000000320435000000a0021000390000000b03000029000000000032043500000080021000390000000d03000029000000000032043500000060021000390000000c0300002900000000003204350000000902000029000000400220027000000a5b02200197000000400310003900000000002304350000001102000029000000200220027000000a5b02200197000000200310003900000000002304350000000e0200002900000a5b02200197000000000021043500000008030000290000000002030433000000000052004b00001b560000a13d0000000f06000029000000070260002900000000001204350000000001030433000000000051004b00001b560000a13d0000000105500039000000800100043d000000000015004b000017300000413d000005880000013d00008010050000390000000006000019000000400100043d00000a970010009c000014450000213d001300000006001d0000000502600210000000a002200039001000000002001d0000000004020433000000e002100039000000400020043f00000040021000390000006003000039000000000032043500000020021000390000000000320435000000c0021000390000000000020435000000a002100039000000000002043500000080021000390000000000020435000000600210003900000000000204350000000000010435001400000004001d000000000040043f0000000201000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000000002050019296829630000040f0000000100200190000013a90000613d000000000101043b001200000001001d0000001401000029000000000010043f0000000201000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b001100000001001d0000001401000029000000000010043f0000000201000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000000201100039000000000101041a000f00000001001d0000001401000029000000000010043f0000000201000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000000201100039000000000101041a000e00000001001d0000001401000029000000000010043f0000000201000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000000201100039000000000101041a000c00000001001d0000001401000029000000000010043f0000000601000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d0000001402000029000000000101043b000000400700043d00000a970070009c00008010050000390000001306000029000014450000213d000000000101041a000b00000001001d000000e001700039000000400010043f00000000082704360000001204000029000000000104041a0000000102100190000000010a1002700000007f0aa0618f0000001f00a0008c00000000030000390000000103002039000000000331013f00000001003001900000093f0000c13d000000400900043d0000000003a90436000000000002004b000d00000007001d000019270000613d000600000003001d00070000000a001d000800000009001d001400000008001d000000000040043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000000002050019296829630000040f0000000100200190000013a90000613d000000070a00002900000000000a004b0000192d0000613d000000000201043b0000000001000019000080100500003900000013060000290000000d0700002900000014080000290000000809000029000000060b0000290000000003b10019000000000402041a0000000000430435000000010220003900000020011000390000000000a1004b0000191f0000413d000019330000013d00000ada01100197000000000013043500000000000a004b00000020010000390000000001006039000019330000013d0000000001000019000080100500003900000013060000290000000d07000029000000140800002900000008090000290000003f0110003900000adb011001970000000002910019000000000012004b0000000001000039000000010100403900000a910020009c000014450000213d0000000100100190000014450000c13d00000011010000290000000101100039000000400020043f0000000000980435000000000201041a000000010320019000000001092002700000007f0990618f0000001f0090008c00000000040000390000000104002039000000000442013f00000001004001900000093f0000c13d000000400800043d0000000004980436000000000003004b0000196e0000613d001100000004001d001200000009001d001400000008001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000000002050019296829630000040f0000000100200190000013a90000613d0000001209000029000000000009004b000019740000613d000000000201043b0000000001000019000080100500003900000013060000290000000d070000290000001408000029000000110a0000290000000003a10019000000000402041a000000000043043500000001022000390000002001100039000000000091004b000019660000413d000019790000013d00000ada012001970000000000140435000000000009004b00000020010000390000000001006039000019790000013d0000000001000019000080100500003900000013060000290000000d0700002900000014080000290000003f0110003900000adb021001970000000001820019000000000021004b0000000002000039000000010200403900000a910010009c000014450000213d0000000100200190000014450000c13d0000000f02000029000000ff0220018f000000400010043f00000040017000390000000000810435000000030020008c0000000a04000029000019ac0000213d0000000e010000290000000801100270000000ff0110018f00000060037000390000000000230435000000010010008c000019ac0000213d0000000b0000006b0000000002000039000000010200c039000000c003700039000000000023043500000080027000390000000000120435000000a0017000390000000c02000029000000100220027000000a8b0220019700000000002104350000000001040433000000000061004b00001b560000a13d0000001002000029000000090120002900000000007104350000000001040433000000000061004b00001b560000a13d0000000106600039000000800100043d000000000016004b000018740000413d00000df10000013d00000ab901000041000000000010043f0000002101000039000000040010043f00000aa1010000410000296a0001043000000ad90020009c000014450000213d000000600400003900000000020000190000010003100039000000400030043f000000e0031000390000000000430435000000c0031000390000000000430435000000a0031000390000000000030435000000800310003900000000000304350000006003100039000000000003043500000040031000390000000000030435000000200310003900000000000304350000000000010435000000a00320003900000000001304350000002002200039000000000052004b00001a0d0000813d000000400100043d00000a930010009c000019b60000a13d000014450000013d000000400400043d001100000004001d001200000005001d0000000004540436001000000004001d000000000003004b00001b5c0000613d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000120000006b00001c010000c13d000000000100001900001b620000013d0000001301000029000000140200002929681ecc0000040f0000000001010433000000400200043d00000024032000390000000f04000029000000000043043500000ac50300004100000000003204350000000403200039000000000013043500000a5b0020009c00000a5b02008041000000400120021000000ac6011001c70000296a00010430000000400200043d001400000002001d00000aaa0100004100000000001204350000000401200039000000130200002929681f9c0000040f0000001402000029000000000121004900000a5b0010009c00000a5b01008041000000600110021000000a5b0020009c00000a5b020080410000004002200210000000000121019f0000296a0001043000000a9b02000041000000800020043f000000840030043f000000a40010043f00000a9c010000410000296a0001043000008010050000390000000003000019001300000003001d0000000502300210001100000002001d0000000701200029000600000001001d0000000101100367000000000301043b000000400100043d00000a930010009c000014450000213d0000010002100039000000400020043f000000e0021000390000000000420435000000c0021000390000000000420435000000a0021000390000000000020435000000800210003900000000000204350000006002100039000000000002043500000040021000390000000000020435000000200210003900000000000204350000000000010435000000000030043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000000002050019001400000003001d296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000e00000001001d0000001401000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000000201100039000000000101041a000d00000001001d0000001401000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000000101100039000000000101041a000c00000001001d0000001401000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000000301100039000000000101041a000b00000001001d0000001401000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b001200000001001d0000001401000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000000200110027000000a5b01100197000000000010043f00000012010000290000000401100039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000301041a000000400200043d001200000002001d000f00000003001d0000000002320436001000000002001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d00000014050000290000000f07000029000000000007004b00001aba0000613d000000000101043b000000000400001900008010020000390000001006000029000000000301041a000000000636043600000001011000390000000104400039000000000074004b00001ab30000413d00001abc0000013d00008010020000390000001006000029000000120160006a0000001f0110003900000adb031001970000001201300029000000000031004b0000000003000039000000010300403900000a910010009c000014450000213d0000000100300190000014450000c13d000000400010043f000000000050043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c7296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a001000000001001d0000001401000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b000000000101041a000900000001001d0000001401000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000000501100039000000000301041a000000400200043d001400000002001d000a00000003001d0000000002320436000f00000002001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000013a90000613d0000000a08000029000000000008004b00001b150000613d000000000101043b00000000020000190000006004000039000080100500003900000014060000290000000f07000029000000000301041a000000000737043600000001011000390000000102200039000000000082004b00001b0e0000413d00001b190000013d0000006004000039000080100500003900000014060000290000000f0700002900000000016700490000001f0110003900000adb021001970000000001620019000000000021004b0000000002000039000000010200403900000a910010009c000014450000213d0000000100200190000014450000c13d000000400010043f00000a930010009c000014450000213d0000010002100039000000400020043f000000e0021000390000000000620435000000c00210003900000012030000290000000000320435000000a0021000390000000b03000029000000000032043500000060021000390000000c0300002900000000003204350000000902000029000000400220027000000a5b02200197000000400310003900000000002304350000001002000029000000200220027000000a5b02200197000000200310003900000000002304350000000e0200002900000a5b02200197000000000021043500000080021000390000000d030000290000000000320435000000800300043d000000130030006c00001b560000a13d0000001103000029000000a00330003900000000001304350000001303000029000000800100043d000000000031004b00001b560000a13d0000000001020433000000000001004b00001c980000613d0000000103300039000000080030006c00001a0f0000413d000000400100043d00000e760000013d00000ab901000041000000000010043f0000003201000039000000040010043f00000aa1010000410000296a0001043000000ada0120019700000010020000290000000000120435000000120000006b000000200100003900000000010060390000003f0110003900000adb021001970000001101200029000000000021004b0000000002000039000000010200403900000a910010009c000014450000213d0000000100200190000014450000c13d000000400010043f0000001301000029000000000010043f0000000201000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000000201100039000000000101041a00000ab70010019800001c100000c13d00000060010000390000008002000039000000400300043d0000004004000039000000000443043600000011050000290000000005050433000000400630003900000000005604350000006006300039000000000005004b000000100a00002900001b940000613d0000000007000019000000000867001900000000097a0019000000000909043300000000009804350000002007700039000000000057004b00001b8d0000413d000000000765001900000000000704350000001f0550003900000adb0550019700000000056500190000000006350049000000000064043500000000040104330000000001450436000000000004004b00001ba70000613d000000000500001900000000061500190000000007520019000000000707043300000000007604350000002005500039000000000045004b00001ba00000413d000000000214001900000000000204350000001f0240003900000adb022001970000000001310049000000000121001900000a5b0010009c00000a5b01008041000000600110021000000a5b0030009c00000a5b030080410000004002300210000000000121019f000029690001042e000000400100043d00000aca0200004100000000002104350000000402100039000000130300002900001be00000013d00000014020000292968292d0000040f00000acb02000041000000400300043d000000000023043500000a5b011001970000000402300039000000000012043500000024013000390000001302000029000000000021043500000a5b0030009c00000a5b03008041000000400130021000000ac6011001c70000296a00010430000000400100043d00000024031000390000001304000029000000000043043500000acc0300004100000000003104350000000403100039000000000023043500000a5b0010009c00000a5b01008041000000400110021000000ac6011001c70000296a00010430000000400100043d00000abd0200004100001bdd0000013d000000400100043d00000aba02000041000000000021043500000004021000390000001403000029000000000032043500000a5b0010009c00000a5b01008041000000400110021000000aa1011001c70000296a0001043000000ab901000041000000000010043f0000003101000039000000040010043f00000aa1010000410000296a00010430000000400100043d00000aa0020000410000000000210435000000000200041100000a8b022001970000000403100039000000000023043500001be10000013d00000010010000290000000001010433000000400200043d00000ab503000041000000000032043500000a8b011001970000000403200039000000000013043500000a5b0020009c00000a5b02008041000000400120021000000aa1011001c70000296a00010430000000000201043b0000000001000019000000100500002900000012060000290000000003510019000000000402041a000000000043043500000001022000390000002001100039000000000061004b00001c050000413d00001b620000013d000000400100043d00000ac20200004100001c920000013d0000001301000029000000000010043f0000000201000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000013a90000613d000000000101043b0000000201100039000000000201041a000000400400043d00000abe01000041000000000014043500000004014000390000001403000029000000000031043500000a5b0040009c001400000004001d00000a5b0100004100000000010440190000004001100210000000000300041400000a5b0030009c00000a5b03008041000000c003300210000000000113019f00000aa1011001c7000000100220027000000a8b02200197296829630000040f00000060031002700000001f0430018f00000abf0530019700000a5b03300197000000010020019000001ca50000613d0000001402500029000000000005004b00001c430000613d000000000601034f0000001407000029000000006806043c0000000007870436000000000027004b00001c3f0000c13d000000000004004b00001c500000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000001f0130003900000ac0021001970000001401200029000000000021004b0000000002000039000000010200403900000a910010009c000014450000213d0000000100200190000014450000c13d000000400010043f000000200030008c000013a90000413d0000001402000029000000000202043300000a910020009c000013a90000213d000000140530002900000014022000290000001f03200039000000000053004b000000000400001900000a9d0400804100000a9d0330019700000a9d06500197000000000763013f000000000063004b000000000300001900000a9d0300404100000a9d0070009c000000000304c019000000000003004b000013a90000c13d000000004302043400000a910030009c000014450000213d0000001f0230003900000adb022001970000003f0220003900000adb02200197000000000212001900000a910020009c000014450000213d000000400020043f00000000023104360000000006430019000000000056004b000013a90000213d000000000003004b00001c8a0000613d000000000500001900000000062500190000000007450019000000000707043300000000007604350000002005500039000000000035004b00001c830000413d0000000003230019000000000003043500001b810000013d000000400100043d00000aae0200004100001bb70000013d000000400100043d00000ac902000041000000000021043500000a5b0010009c00000a5b01008041000000400110021000000ac3011001c70000296a0001043000000006010000290000000101100367000000000101043b000000400200043d00000aca03000041000000000032043500001bfa0000013d000000400100043d00000acf0200004100000000002104350000000402100039000000110300002900001be00000013d000000400200043d0000000006520019000000000005004b00001caf0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000068004b00001cab0000c13d000000000004004b00001cbc0000613d000000000151034f0000000304400210000000000506043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000160435000000600130021000000a5b0020009c00000a5b020080410000004002200210000000000112019f0000296a00010430000000400100043d00000ac80200004100001cd20000013d0000000b010000290000000001010433000000400200043d00000aa303000041000000000032043500000a5b0110019700001bfa0000013d000000400100043d00000aa603000041000000000031043500001bf10000013d000000400100043d00000aab0200004100000000002104350000000402100039000000000002043500001be10000013d000000400100043d00000aa30200004100000000002104350000000402100039000000120300002900001be00000013d000000400500043d00000aa40050009c000014450000213d000000a003500039000000400030043f00000080035000390000000e04000029000000000043043500000ad0002001980000000002000039000000010200c0390000006003500039000000000023043500000040025000390000000f030000290000000000320435000000010110003900000020025000390000000000120435000000140100002900000000001504350000001201000029000000130200002900000010030000290000001104000029296823d50000040f0000000001000019000029690001042e0000000701000029000000000101043300001c9b0000013d000000004301043400000a5b033001970000000003320436000000000404043300000a5b0440019700000000004304350000004003100039000000000303043300000a5b033001970000004004200039000000000034043500000060031000390000000003030433000000600420003900000000003404350000008003100039000000000303043300000080042000390000000000340435000000a0031000390000000003030433000000a0042000390000000000340435000000c0031000390000000004030433000000c003200039000001000500003900000000005304350000010003200039000000000504043300000000005304350000012003200039000000000005004b00001d240000613d00000000060000190000002004400039000000000704043300000000037304360000000106600039000000000056004b00001d1e0000413d000000e00110003900000000040104330000000001230049000000e002200039000000000012043500000000020404330000000001230436000000000002004b00001d340000613d00000000030000190000002004400039000000000504043300000000015104360000000103300039000000000023004b00001d2e0000413d000000000001042d0000002003000039000000000331043600000000040204330000000000430435000000400510003900000005034002100000000003350019000000000004004b00001d820000613d0000010006000039000000000700001900001d440000013d0000000107700039000000000047004b00001d820000813d0000000008130049000000400880008a00000000058504360000002002200039000000000802043300000000a908043400000a5b099001970000000009930436000000000a0a043300000a5b0aa001970000000000a904350000004009800039000000000909043300000a5b09900197000000400a30003900000000009a043500000060098000390000000009090433000000600a30003900000000009a043500000080098000390000000009090433000000800a30003900000000009a0435000000a0098000390000000009090433000000a00a30003900000000009a0435000000c009800039000000000a090433000000c00930003900000000006904350000010009300039000000000b0a04330000000000b90435000001200930003900000000000b004b00001d710000613d000000000c000019000000200aa00039000000000d0a04330000000009d90436000000010cc000390000000000bc004b00001d6b0000413d000000e0088000390000000008080433000000000a390049000000e0033000390000000000a30435000000000a0804330000000003a9043600000000000a004b00001d410000613d00000000090000190000002008800039000000000b0804330000000003b3043600000001099000390000000000a9004b00001d7b0000413d00001d410000013d0000000001030019000000000001042d00000add0010009c00001d890000813d0000004001100039000000400010043f000000000001042d00000ab901000041000000000010043f0000004101000039000000040010043f00000aa1010000410000296a0001043000000ade0010009c00001d940000813d000000a001100039000000400010043f000000000001042d00000ab901000041000000000010043f0000004101000039000000040010043f00000aa1010000410000296a000104300000001f0220003900000adb022001970000000001120019000000000021004b0000000002000039000000010200403900000a910010009c00001da60000213d000000010020019000001da60000c13d000000400010043f000000000001042d00000ab901000041000000000010043f0000004101000039000000040010043f00000aa1010000410000296a0001043000000000030100190000001f01100039000000000021004b000000000400001900000a9d0400404100000a9d0520019700000a9d01100197000000000651013f000000000051004b000000000100001900000a9d0100204100000a9d0060009c000000000104c019000000000001004b00001df40000613d0000000105000367000000000135034f000000000401043b00000adf0040009c00001dee0000813d0000001f0140003900000adb011001970000003f0110003900000adb07100197000000400100043d0000000007710019000000000017004b0000000008000039000000010800403900000a910070009c00001dee0000213d000000010080019000001dee0000c13d0000002008300039000000400070043f00000000034104360000000007840019000000000027004b00001df40000213d000000000585034f00000adb064001980000001f0740018f000000000263001900001dde0000613d000000000805034f0000000009030019000000008a08043c0000000009a90436000000000029004b00001dda0000c13d000000000007004b00001deb0000613d000000000565034f0000000306700210000000000702043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f000000000052043500000000024300190000000000020435000000000001042d00000ab901000041000000000010043f0000004101000039000000040010043f00000aa1010000410000296a0001043000000000010000190000296a0001043000000000430104340000000001320436000000000003004b00001e020000613d000000000200001900000000051200190000000006240019000000000606043300000000006504350000002002200039000000000032004b00001dfb0000413d000000000213001900000000000204350000001f0230003900000adb022001970000000001210019000000000001042d000000004301043400000a5b033001970000000003320436000000000404043300000a5b04400197000000000043043500000040031000390000000003030433000000ff0330018f0000004004200039000000000034043500000060031000390000000003030433000000000003004b0000000003000039000000010300c0390000006004200039000000000034043500000080031000390000000003030433000000000003004b0000000003000039000000010300c03900000080042000390000000000340435000000a0031000390000000004030433000000a003200039000000e0050000390000000000530435000000e003200039000000000504043300000000005304350000010003200039000000000005004b00001e330000613d00000000060000190000002004400039000000000704043300000000037304360000000106600039000000000056004b00001e2d0000413d000000c00110003900000000040104330000000001230049000000c002200039000000000012043500000000020404330000000000230435000000050120021000000000011300190000002001100039000000000002004b00001e640000613d00000040050000390000000007000019000000000803001900001e4b0000013d000000000a19001900000000000a04350000001f0990003900000adb0990019700000000011900190000000107700039000000000027004b00001e640000813d0000000009310049000000200990008a000000200880003900000000009804350000002004400039000000000904043300000000a90904340000000009910436000000000a0a04330000000000590435000000400b10003900000000a90a043400000000009b04350000006001100039000000000009004b00001e430000613d000000000b000019000000000c1b0019000000000dba0019000000000d0d04330000000000dc0435000000200bb0003900000000009b004b00001e5c0000413d00001e430000013d000000000001042d000000003101043400000a8b0110019700000000011204360000000003030433000000400400003900000000004104350000004001200039000000004303043400000000003104350000006001200039000000000003004b00001e790000613d000000000200001900000000051200190000000006240019000000000606043300000000006504350000002002200039000000000032004b00001e720000413d000000000213001900000000000204350000001f0230003900000adb022001970000000001120019000000000001042d000000004301043400000000033204360000000004040433000000e0050000390000000000530435000000e006200039000000005304043400000000003604350000010004200039000000000003004b00001e920000613d000000000600001900000000074600190000000008650019000000000808043300000000008704350000002006600039000000000036004b00001e8b0000413d000000000543001900000000000504350000001f0530003900000adb0550019700000000044500190000004005100039000000000505043300000000062400490000004007200039000000000067043500000000650504340000000004540436000000000005004b00001ea80000613d000000000700001900000000084700190000000009760019000000000909043300000000009804350000002007700039000000000057004b00001ea10000413d0000000006450019000000000006043500000060061000390000000006060433000000040060008c00001ec60000813d0000006007200039000000000067043500000080061000390000000006060433000000010060008c00001ec60000213d00000080072000390000000000670435000000a006100039000000000606043300000a8b06600197000000a0072000390000000000670435000000c002200039000000c0011000390000000001010433000000000001004b0000000001000039000000010100c03900000000001204350000001f0150003900000adb011001970000000001410019000000000001042d00000ab901000041000000000010043f0000002101000039000000040010043f00000aa1010000410000296a000104300000000003010433000000000023004b00001ed30000a13d000000050220021000000000012100190000002001100039000000000001042d00000ab901000041000000000010043f0000003201000039000000040010043f00000aa1010000410000296a00010430000000400300043d0000002004300039000000400500003900000000005404350000006005300039000000006101043400000000001504350000008005300039000000000001004b00001eeb0000613d000000000700001900000000085700190000000009760019000000000909043300000000009804350000002007700039000000000017004b00001ee40000413d000000000651001900000000000604350000001f0610003900000adb06600197000000400730003900000060086000390000000000870435000000000556001900000000620204340000000005250436000000000002004b00001eff0000613d000000000700001900000000085700190000000009760019000000000909043300000000009804350000002007700039000000000027004b00001ef80000413d0000000006520019000000000006043500000000053500490000001f0220003900000adb022001970000000002250019000000200520008a00000000005304350000001f0220003900000adb022001970000000001320019000000000021004b0000000002000039000000010200403900000a910010009c00001f260000213d000000010020019000001f260000c13d000000400010043f00000a5b0040009c00000a5b040080410000004001400210000000000203043300000a5b0020009c00000a5b020080410000006002200210000000000112019f000000000200041400000a5b0020009c00000a5b02008041000000c002200210000000000112019f00000a8c011001c70000801002000039296829630000040f000000010020019000001f2c0000613d000000000101043b000000000001042d00000ab901000041000000000010043f0000004101000039000000040010043f00000aa1010000410000296a0001043000000000010000190000296a00010430000000400100043d00000ae00010009c00001f420000813d000000e002100039000000400020043f000000c00210003900000060030000390000000000320435000000a0021000390000000000320435000000800210003900000000000204350000006002100039000000000002043500000040021000390000000000020435000000200210003900000000000204350000000000010435000000000001042d00000ab901000041000000000010043f0000004101000039000000040010043f00000aa1010000410000296a00010430000000400100043d00000add0010009c00001f520000813d0000004002100039000000400020043f0000002002100039000000600300003900000000003204350000000000010435000000000001042d00000ab901000041000000000010043f0000004101000039000000040010043f00000aa1010000410000296a000104300002000000000002000000000301041a000000010430019000000001063002700000007f0660618f0000001f0060008c00000000050000390000000105002039000000000054004b00001f890000c13d0000000005620436000000000004004b00001f800000613d000200000006001d000100000005001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f000000010020019000001f8f0000613d0000000206000029000000000006004b00001f870000613d000000000201043b000000000100001900000001050000290000000003150019000000000402041a000000000043043500000001022000390000002001100039000000000061004b00001f770000413d0000000001150019000000000001042d00000ada013001970000000000150435000000000006004b000000200100003900000000010060390000000001150019000000000001042d0000000101000029000000000001042d00000ab901000041000000000010043f0000002201000039000000040010043f00000aa1010000410000296a0001043000000000010000190000296a0001043000000a5b0110019700000a5b0010009c00001f960000613d0000000101100039000000000001042d00000ab901000041000000000010043f0000001101000039000000040010043f00000aa1010000410000296a0001043000000020030000390000000004310436000000000302043300000000003404350000004001100039000000000003004b00001faa0000613d00000000040000190000002002200039000000000502043300000000015104360000000104400039000000000034004b00001fa40000413d000000000001042d000a0000000000020000000004010019000000400100043d00000ae10010009c000020dc0000813d0000010002100039000000400020043f000000e00210003900000060030000390000000000320435000000c0021000390000000000320435000000a0021000390000000000020435000000800210003900000000000204350000006002100039000000000002043500000040021000390000000000020435000000200210003900000000000204350000000000010435000000000040043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039000a00000004001d296829630000040f0000000100200190000020da0000613d000000000101043b000000000101041a000600000001001d0000000a01000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000020da0000613d000000000101043b0000000201100039000000000101041a000500000001001d0000000a01000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000020da0000613d000000000101043b0000000101100039000000000101041a000400000001001d0000000a01000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000020da0000613d000000000101043b0000000301100039000000000101041a000300000001001d0000000a01000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000020da0000613d000000000101043b000900000001001d0000000a01000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000020da0000613d000000000101043b000000000101041a000000200110027000000a5b01100197000000000010043f00000009010000290000000401100039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000020da0000613d000000000101043b000000000301041a000000400200043d000900000002001d000800000003001d0000000002320436000700000002001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000020da0000613d0000000c050000390000000a040000290000000807000029000000000007004b000020520000613d000000000101043b00000000020000190000000706000029000000000301041a000000000636043600000001011000390000000102200039000000000072004b0000204b0000413d000020530000013d0000000706000029000000090160006a0000001f0110003900000adb021001970000000901200029000000000021004b0000000002000039000000010200403900000a910010009c000020dc0000213d0000000100200190000020dc0000c13d000000400010043f000000000040043f000000200050043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000020da0000613d000000000101043b000000000101041a000800000001001d0000000a01000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000020da0000613d000000000101043b000000000101041a000100000001001d0000000a01000029000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000020da0000613d000000000101043b0000000501100039000000000301041a000000400200043d000700000002001d000a00000003001d0000000002320436000200000002001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000020da0000613d0000000a07000029000000000007004b000020ab0000613d000000000101043b0000000002000019000000200400008a00000007050000290000000206000029000000000301041a000000000636043600000001011000390000000102200039000000000072004b000020a40000413d000020ae0000013d000000200400008a0000000705000029000000020600002900000000015600490000001f01100039000000000241016f0000000001520019000000000021004b0000000002000039000000010200403900000a910010009c000020dc0000213d0000000100200190000020dc0000c13d000000400010043f00000a930010009c000020dc0000213d0000010002100039000000400020043f000000e0021000390000000000520435000000c00210003900000009030000290000000000320435000000a002100039000000030300002900000000003204350000008002100039000000050300002900000000003204350000006002100039000000040300002900000000003204350000000102000029000000400220027000000a5b02200197000000400310003900000000002304350000000802000029000000200220027000000a5b0220019700000020031000390000000000230435000000060200002900000a5b022001970000000000210435000000000001042d00000000010000190000296a0001043000000ab901000041000000000010043f0000004101000039000000040010043f00000aa1010000410000296a00010430000b0000000000020000000004010019000000400100043d00000ae00010009c000022030000813d000000e002100039000000400020043f00000040021000390000006003000039000000000032043500000020021000390000000000320435000000c0021000390000000000020435000000a002100039000000000002043500000080021000390000000000020435000000600210003900000000000204350000000000010435000000000040043f0000000201000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039000b00000004001d296829630000040f0000000100200190000022010000613d000000000101043b000a00000001001d0000000b01000029000000000010043f0000000201000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000022010000613d000000000101043b000900000001001d0000000b01000029000000000010043f0000000201000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000022010000613d000000000101043b0000000201100039000000000101041a000800000001001d0000000b01000029000000000010043f0000000201000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000022010000613d000000000101043b0000000201100039000000000101041a000700000001001d0000000b01000029000000000010043f0000000201000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000022010000613d000000000101043b0000000201100039000000000101041a000500000001001d0000000b01000029000000000010043f0000000601000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000022010000613d000000000101043b000000400500043d00000a970050009c0000000b02000029000022030000213d000000000101041a000400000001001d000000e001500039000000400010043f00000000072504360000000a04000029000000000104041a000000010210019000000001061002700000007f0660618f0000001f0060008c00000000030000390000000103002039000000000032004b000022090000c13d000000400800043d0000000003680436000000000002004b000600000005001d0000218d0000613d000100000003001d000b00000006001d000200000008001d000300000007001d000000000040043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000022010000613d0000000b06000029000000000006004b000021930000613d000000000201043b000000000100001900000006050000290000000307000029000000020800002900000001090000290000000003910019000000000402041a000000000043043500000001022000390000002001100039000000000061004b000021850000413d000021970000013d00000ada011001970000000000130435000000000006004b00000020010000390000000001006039000021970000013d00000000010000190000000605000029000000030700002900000002080000290000003f01100039000000200600008a000000000161016f0000000002810019000000000012004b0000000001000039000000010100403900000a910020009c000022030000213d0000000100100190000022030000c13d00000009010000290000000101100039000000400020043f0000000000870435000000000201041a000000010320019000000001082002700000007f0880618f0000001f0080008c00000000040000390000000104002039000000000442013f0000000100400190000022090000c13d000000400700043d0000000004870436000000000003004b000021d20000613d000900000004001d000b00000008001d000a00000007001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000022010000613d0000000b08000029000000000008004b000000200600008a000021d80000613d000000000201043b000000000100001900000006050000290000000a0700002900000009090000290000000003910019000000000402041a000000000043043500000001022000390000002001100039000000000081004b000021ca0000413d000021db0000013d00000ada012001970000000000140435000000000008004b00000020010000390000000001006039000021db0000013d000000000100001900000006050000290000000a070000290000003f01100039000000000261016f0000000001720019000000000021004b0000000002000039000000010200403900000a910010009c000022030000213d0000000100200190000022030000c13d0000000802000029000000ff0220018f000000400010043f00000040015000390000000000710435000000040020008c0000220f0000813d00000007010000290000000801100270000000ff0110018f00000060035000390000000000230435000000010010008c0000220f0000213d000000040000006b0000000002000039000000010200c039000000c0035000390000000000230435000000800250003900000000001204350000000501000029000000100110027000000a8b01100197000000a00250003900000000001204350000000001050019000000000001042d00000000010000190000296a0001043000000ab901000041000000000010043f0000004101000039000000040010043f00000aa1010000410000296a0001043000000ab901000041000000000010043f0000002201000039000000040010043f00000aa1010000410000296a0001043000000ab901000041000000000010043f0000002101000039000000040010043f00000aa1010000410000296a00010430000000000100041a00000a8b011001970000000002000411000000000012004b0000221b0000c13d000000000001042d000000400100043d000000440210003900000ad303000041000000000032043500000024021000390000001603000039000000000032043500000a6002000041000000000021043500000004021000390000002003000039000000000032043500000a5b0010009c00000a5b01008041000000400110021000000ae2011001c70000296a00010430000f000000000002000000400200043d00000ae00020009c000023c10000813d000000e003200039000000400030043f000000c00320003900000060040000390000000000430435000000a003200039000000000043043500000080032000390000000000030435000000600320003900000000000304350000004003200039000000000003043500000020032000390000000000030435000000000002043500000a5b01100197000300000001001d000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000023cd0000613d000000000101043b000000000101041a000f00000001001d0000000301000029000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000023cd0000613d0000000f02000029000000200220027000000a5b02200197000000000101043b000100000002001d000000000020043f0000000101100039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000023cd0000613d000000000101043b000200000001001d0000000201100039000000000301041a000000400200043d000a00000002001d000f00000003001d0000000002320436000900000002001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000023cd0000613d0000000f05000029000000000005004b00000009020000290000228f0000613d000000000101043b00000009020000290000000003000019000000000401041a000000000242043600000001011000390000000103300039000000000053004b000022890000413d0000000a0120006a0000001f0110003900000adb011001970000000a02100029000000000012004b00000000010000390000000101004039000e00000002001d00000a910020009c0000006005000039000023c10000213d0000000100100190000023c10000c13d0000000e01000029000000400010043f0000000a01000029000000000201043300000a910020009c000023c10000213d00000005012002100000003f0310003900000aa5033001970000000e0330002900000a910030009c000023c10000213d000000400030043f0000000e030000290000000003230436000f00000003001d000000000002004b000023330000613d0000000002000019000000400300043d00000a9f0030009c000023c10000213d0000004004300039000000400040043f0000002004300039000000000054043500000000000304350000000f0420002900000000003404350000002002200039000000000012004b000022af0000413d0000000e010000290000000001010433000000000001004b000023330000613d0000000201000029000800030010003d00000000020000190000000a010000290000000001010433000000000021004b000023c70000a13d000c00000002001d0000000502200210000b00000002001d00000009012000290000000001010433000d00000001001d000000000010043f0000000801000029000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000023cd0000613d000000000101043b000000400500043d00000a9f0050009c000023c10000213d0000004002500039000000400020043f0000000d020000290000000006250436000000000201041a000000010320019000000001082002700000007f0880618f0000001f0080008c00000000040000390000000104002039000000000043004b000023cf0000c13d000000400700043d0000000004870436000000000003004b0000230e0000613d000400000004001d000d00000008001d000500000007001d000600000006001d000700000005001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000023cd0000613d0000000d08000029000000000008004b000023140000613d000000000201043b000000000100001900000007050000290000000606000029000000050700002900000004090000290000000003910019000000000402041a000000000043043500000001022000390000002001100039000000000081004b000023060000413d000023180000013d00000ada012001970000000000140435000000000008004b00000020010000390000000001006039000023180000013d00000000010000190000000705000029000000060600002900000005070000290000003f0110003900000adb021001970000000001720019000000000021004b0000000002000039000000010200403900000a910010009c000023c10000213d0000000100200190000023c10000c13d000000400010043f00000000007604350000000e0100002900000000010104330000000c02000029000000000021004b000023c70000a13d0000000b030000290000000f0130002900000000005104350000000e010000290000000001010433000000000021004b000023c70000a13d0000000102200039000000000012004b000022c30000413d0000000301000029000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000023cd0000613d000000000101043b000000000101041a000f00000001001d0000000301000029000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000023cd0000613d000000000101043b000000000101041a000d00000001001d0000000301000029000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000023cd0000613d000000000101043b000000000101041a000c00000001001d0000000301000029000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f0000000100200190000023cd0000613d000000000101043b000000000101041a000800000001001d0000000201000029000000000301041a000000400200043d000b00000002001d000900000003001d0000000002320436000a00000002001d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000023cd0000613d0000000906000029000000000006004b000023920000613d000000000101043b00000000020000190000000b040000290000000a05000029000000000301041a000000000535043600000001011000390000000102200039000000000062004b0000238b0000413d000023940000013d0000000b040000290000000a0500002900000000014500490000001f0110003900000adb021001970000000001420019000000000021004b0000000002000039000000010200403900000a910010009c000023c10000213d0000000100200190000023c10000c13d000000400010043f00000a970010009c000023c10000213d000000e002100039000000400020043f000000c0021000390000000e030000290000000000320435000000a0021000390000000000420435000000080200002900000ad0002001980000000002000039000000010200c039000000800310003900000000002304350000000c0200002900000ad2002001980000000002000039000000010200c039000000600310003900000000002304350000000d020000290000004002200270000000ff0220018f000000400310003900000000002304350000002002100039000000010300002900000000003204350000000f0200002900000a5b022001970000000000210435000000000001042d00000ab901000041000000000010043f0000004101000039000000040010043f00000aa1010000410000296a0001043000000ab901000041000000000010043f0000003201000039000000040010043f00000aa1010000410000296a0001043000000000010000190000296a0001043000000ab901000041000000000010043f0000002201000039000000040010043f00000aa1010000410000296a000104300016000000000002000700000004001d000b00000003001d001200000002001d001100000001001d001000000005001d0000000021050434000c00000002001d00000a5b01100197000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000101043b0000000c02000029000000000202043300000a5b02200197000000000020043f0000000101100039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000101043b001500000001001d00000010010000290000008001100039000600000001001d0000000001010433000000ff01100190000029130000613d000000ff0010008c000029070000613d000000120010006c000029130000813d0000000c01000029000000000101043300000ae400100198000024ec0000613d0000001001000029000000000101043300000a5b01100197000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d0000000c02000029000000000202043300000a5b02200197000000010220008a00000a5b0020009c000029070000213d000000000101043b000000000020043f0000000101100039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000301043b000000000103041a000000000001004b000024ec0000613d0000801002000039001600000000001d001300000003001d000000000030043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c7296829630000040f00000001002001900000288e0000613d000000000101043b0000001601100029000000000101041a000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000201043b0000001001000029000000000101043300000a5b01100197000d00000001001d000000000010043f000e00000002001d0000000601200039000f00000001001d000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000101043b000000000101041a000000000001004b000024c40000613d0000000e020000290000000503200039000000000403041a000000000004004b0000801002000039000029070000613d000000000014004b001400000001001d000e00000003001d000024a50000613d000a00000004001d000000000030043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c7296829630000040f00000001002001900000288e0000613d00000014020000290009000100200092000000000101043b0000000e04000029000000000204041a000000090020006c0000801002000039000028d60000a13d0000000a03000029000000010330008a0000000001130019000000000101041a000a00000001001d000000000040043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c7296829630000040f00000001002001900000288e0000613d000000000101043b00000009011000290000000a02000029000000000021041b000000000020043f0000000f01000029000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000101043b0000001402000029000000000021041b0000000e03000029000000000103041a001400000001001d000000000001004b00008010020000390000290d0000613d000000000030043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c7296829630000040f00000001002001900000288e0000613d0000001402000029000000010220008a000000000101043b0000000001210019000000000001041b0000000e01000029000000000021041b0000000d01000029000000000010043f0000000f01000029000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000101043b000000000001041b0000001303000029000000000103041a000000160010006c0000801002000039000028d60000a13d000000000030043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c7296829630000040f00000001002001900000288e0000613d000000000101043b0000001601100029000000000101041a000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000101043b000000000201041a00000ad402200197000000000021041b0000001602000029001600010020003d0000001303000029000000000103041a000000160010006b0000801002000039000024330000413d0000001001000029000d00600010003d0000001501000029001400010010003d0000000002000019000024f70000013d000000000021041b0000000e020000290000000102200039000000120020006c000025c60000813d000e00000002001d00000005012002100000001101100029001600000001001d0000000101100367000000000101043b001300000001001d000000000010043f0000001401000029000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000101043b000000000101041a000000000001004b000028ac0000c13d0000001502000029000000000102041a00000adf0010009c000028a00000813d000f00000001001d0000000101100039000000000012041b000000000020043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000101043b0000000f011000290000001302000029000000000021041b0000001501000029000000000101041a000f00000001001d000000000020043f0000001401000029000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000101043b0000000f02000029000000000021041b0000000d01000029000000000101043300000016020000290000000102200367000000000202043b000000000020043f0000000c02000039000000200020043f000000000001004b0000257d0000613d000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d00000010020000290000000004020433000000000101043b000000000101041a0000004001100270000000000141013f00000a5b00100198000025650000613d00000016010000290000000101100367000000000101043b000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d00000010020000290000000004020433000000000101043b000000000101041a00000ae600100198000028dc0000c13d001300000004001d00000016010000290000000101100367000000000101043b000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d0000001302000029000000400220021000000ae602200197000000000101043b000000000301041a00000ad403300197000000000223019f000024f20000013d000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000201043b0000001001000029000000000101043300000a5b01100197001300000001001d000000000010043f001600000002001d0000000601200039000f00000001001d000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000101043b000000000101041a000000000001004b000024f30000c13d00000016010000290000000502100039000000000102041a00000a910010009c000028a00000213d000a00000001001d0000000101100039000000000012041b001600000002001d000000000020043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000101043b0000000a011000290000001302000029000000000021041b0000001601000029000000000101041a001600000001001d000000000020043f0000000f01000029000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000101043b0000001602000029000024f20000013d000000070000006b000028760000613d0000001502000029000a00020020003d000e00030020003d0000001001000029000500400010003d00000012010000290000000501100210000200c40010003d000300000001001d000100a00010003d0000000002000019000025d80000013d00000009020000290000000102200039000000070020006c000028760000813d000900000002001d00000005012002100000000b0200002900000000012100190000000101100367000000000101043b00000000022000790000003f0220008a00000a9d0310019700000a9d04200197000000000543013f000000000043004b000000000300001900000a9d03004041000000000021004b000000000200001900000a9d0200804100000a9d0050009c000000000302c019000000000003004b00008010030000390000288e0000c13d0000000b01100029000f00000001001d0000000101100367000000000101043b001300000001001d000000000010043f0000000401000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000000002030019296829630000040f00000001002001900000288e0000613d000000000101043b000000000101041a000000000001004b000028be0000613d0000001301000029000000000010043f0000000601000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000101043b000000000101041a000000000001004b000028c10000c13d0000001301000029000000000010043f0000000e01000029000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000101043b000000000101041a000000010210019000000001011002700000007f0110618f0000001f0010008c00000000030000390000000103002039000000000032004b000028a60000c13d000000000001004b0000801003000039000028cc0000c13d0000000002000019001400000002001d00000005012002100000001101100029001600000001001d0000000101100367000000000101043b000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000000002030019296829630000040f00000001002001900000288e0000613d000000000101043b001500000001001d00000016010000290000000101100367000000000101043b000000000010043f0000000c01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000101043b000000000101041a000000200110027000000a5b01100197000000000010043f00000015010000290000000401100039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000101043b0000001302000029000000000020043f0000000101100039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000101043b000000000101041a000000000001004b000028900000613d00000014020000290000000102200039000000120020006c00008010030000390000262f0000413d0000000a01000029000000000101041a00000a910010009c000028a00000213d001600000001001d00000001011000390000000a02000029000000000012041b000000000020043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000101043b00000016011000290000001302000029000000000021041b0000000f04000029001400200040003d00000001020003670000001401200360000000000301043b000000000100003100000000044100490000001f0440008a00000a9d0540019700000a9d06300197000000000756013f000000000056004b000000000500001900000a9d05004041000000000043004b000000000400001900000a9d0400804100000a9d0070009c000000000504c019000000000005004b0000288e0000c13d0000000f03300029000000000232034f000000000502043b00000a910050009c0000288e0000213d0000000001510049000000200630003900000a9d0210019700000a9d03600197000000000423013f000000000023004b000000000200001900000a9d02004041001500000006001d000000000016004b000000000100001900000a9d0100204100000a9d0040009c000000000201c019000000000002004b0000288e0000c13d0000001301000029000000000010043f0000000e01000029000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039001600000005001d296829630000040f000000160400002900000001002001900000288e0000613d000000000601043b000000000106041a000000010010019000000001031002700000007f0330618f0000001f0030008c00000000020000390000000102002039000000000121013f0000000100100190000028a60000c13d000000200030008c0000801002000039000800000006001d000026f50000413d000400000003001d000000000060043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c7296829630000040f000000160400002900000001002001900000288e0000613d0000001f024000390000000502200270000000200040008c0000000002004019000000000301043b00000004010000290000001f01100039000000050110027000000000011300190000000003230019000000000013004b00008010020000390000000806000029000026f50000813d000000000003041b0000000103300039000000000013004b000026f10000413d000000200040008c0000271f0000413d000000000060043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c7296829630000040f000000160600002900000001002001900000288e0000613d00000adb02600198000000000101043b000028710000613d0000000104000367000000000300001900000015070000290000000005730019000000000554034f000000000505043b000000000051041b00000001011000390000002003300039000000000023004b000027070000413d000000000062004b0000271a0000813d0000000302600210000000f80220018f00000adc0220027f00000adc0220016700000000037300190000000103300367000000000303043b000000000223016f000000000021041b000000010160021000000001011001bf000080100200003900000008060000290000272c0000013d000000000004004b00000015050000290000272b0000613d000000030140021000000adc0110027f00000adc011001670000000103500367000000000303043b000000000113016f0000000103400210000000000131019f0000272c0000013d0000000001000019000000000016041b00000005010000290000000001010433001600000001001d0000001001000029000000000101043300000a5b01100197000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c7296829630000040f00000001002001900000288e0000613d000000160000006b00000ae8020000410000000002006019000000000101043b000000000301041a00000ae903300197000000000223019f000000000021041b0000000d010000290000000001010433001600000001001d0000001001000029000000000101043300000a5b01100197000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000160000006b00000aea020000410000000002006019000000000101043b000000000301041a00000aeb03300197000000000223019f000000000021041b00000006010000290000000001010433001600000001001d0000001001000029000000000101043300000a5b01100197000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d0000001602000029000000400220021000000aec02200197000000000101043b000000000301041a00000aed03300197000000000223019f000000000021041b0000000c010000290000000001010433001600000001001d0000001001000029000000000101043300000a5b01100197000000000010043f0000000d01000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d0000001602000029000000200220021000000a9902200197000000000101043b000000000301041a00000a9803300197000000000223019f000000000021041b00000001020003670000001401200360000000000101043b00000000030000310000000f0430006a0000001f0440008a00000a9d0540019700000a9d06100197000000000756013f000000000056004b000000000500001900000a9d05004041000000000041004b000000000400001900000a9d0400804100000a9d0070009c000000000504c019000000000005004b0000288e0000c13d0000000c040000290000000004040433001600000004001d00000010040000290000000004040433001500000004001d0000000f04100029000000000142034f000000000101043b00000a910010009c0000288e0000213d0000000005130049000000200440003900000a9d0650019700000a9d07400197000000000867013f000000000067004b000000000600001900000a9d06004041000000000054004b000000000500001900000a9d0500204100000a9d0080009c000000000605c019000000000006004b0000288e0000c13d0000001f0510003900000adb055001970000003f0550003900000adb05500197000000400700043d0000000005570019000000000075004b0000000006000039000000010600403900000a910050009c000028a00000213d0000000100600190000028a00000c13d000000400050043f000f00000007001d00000000081704360000000005410019000000000035004b0000288e0000213d000000000342034f00000adb041001980000000002480019000027de0000613d000000000503034f0000000006080019000000005705043c0000000006760436000000000026004b000027da0000c13d0000001f05100190000027eb0000613d000000000343034f0000000304500210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000320435000000000118001900000000000104350000001301000029000000000010043f0000000201000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039001400000008001d296829630000040f00000001002001900000288e0000613d000000000101043b0000000201100039000000000101041a00000ab700100198000025d40000613d0000001301000029000000000010043f0000000201000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000288e0000613d000000000101043b0000000201100039000000000101041a00000aee020000410000000000200443000000100110027000000a8b01100197001300000001001d0000000400100443000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000aef011001c70000800202000039296829630000040f0000000100200190000028e60000613d000000000101043b000000000001004b00000014080000290000288e0000613d000000400900043d00000af001000041000000000019043500000004019000390000008002000039000000000021043500000084019000390000001202000029000000000021043500000af10020009c0000288e0000213d0000000305000029000000000005004b000028390000613d00000011010000290000000101100367000000a4029000390000000003520019000000001401043c0000000002420436000000000032004b000028350000c13d000000010000008b0000000f06000029000000160100002900000a5b01100197000000150200002900000a5b0220019700000024039000390000000104000029000000000043043500000000045900190000000003060433000000a4054000390000000000350435000000c404400039000000000003004b000028510000613d000000000500001900000000064500190000000007850019000000000707043300000000007604350000002005500039000000000035004b0000284a0000413d0000000004430019000000000004043500000064049000390000000000240435000000440290003900000000001204350000001f0130003900000adb01100197000000020110002900000a5b0010009c00000a5b01008041000000600110021000000a5b0090009c00000a5b0200004100000000020940190000004002200210000000000121019f000000000200041400000a5b0020009c00000a5b02008041000000c002200210000000000112019f0000001302000029001600000009001d2968295e0000040f0000000100200190000028e70000613d000000160100002900000a910010009c000028a00000213d000000400010043f000025d40000013d00000000030000190000001507000029000000000062004b000027110000413d0000271a0000013d000000100100002900000000020104330000000c01000029000000000101043300000a5b01100197000000400300043d000000000013043500000a5b0030009c00000a5b030080410000004001300210000000000300041400000a5b0030009c00000a5b03008041000000c003300210000000000113019f00000a95011001c700000a5b052001970000800d02000039000000020300003900000ad5040000412968295e0000040f00000001002001900000288e0000613d000000000001042d00000000010000190000296a0001043000000016010000290000000101100367000000000101043b000000400200043d00000024032000390000001304000029000000000043043500000af20300004100000000003204350000000403200039000000000013043500000a5b0020009c00000a5b02008041000000400120021000000ac6011001c70000296a0001043000000ab901000041000000000010043f0000004101000039000000040010043f00000aa1010000410000296a0001043000000ab901000041000000000010043f0000002201000039000000040010043f00000aa1010000410000296a000104300000001001000029000000000101043300000016020000290000000102200367000000000202043b000000400300043d0000002404300039000000000024043500000ae502000041000000000023043500000a5b011001970000000402300039000000000012043500000a5b0030009c00000a5b03008041000000400130021000000ac6011001c70000296a00010430000000400100043d00000abd02000041000028c30000013d000000400100043d00000aba02000041000000000021043500000004021000390000001303000029000000000032043500000a5b0010009c00000a5b01008041000000400110021000000aa1011001c70000296a0001043000000010010000290000000001010433000000400200043d00000024032000390000001304000029000000000043043500000ae703000041000000000032043500000a5b01100197000028990000013d00000ab901000041000000000010043f0000003201000039000000040010043f00000aa1010000410000296a0001043000000016010000290000000101100367000000000101043b000000400200043d0000002403200039000000000013043500000acc01000041000000000012043500000a5b01400197000028990000013d000000000001042f00000060061002700000001f0460018f00000abf05600198000000400200043d0000000003520019000028f30000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b000028ef0000c13d00000a5b06600197000000000004004b000029010000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000600160021000000a5b0020009c00000a5b020080410000004002200210000000000112019f0000296a0001043000000ab901000041000000000010043f0000001101000039000000040010043f00000aa1010000410000296a0001043000000ab901000041000000000010043f0000003101000039000000040010043f00000aa1010000410000296a00010430000000400200043d00000024032000390000001204000029000000000043043500000ae303000041000028980000013d000000000010043f0000000601000039000000200010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a94011001c70000801002000039296829630000040f00000001002001900000292b0000613d000000000101043b000000000101041a000000000001004b0000000001000039000000010100c039000000000001042d00000000010000190000296a000104300001000000000002000000000301041a000100000002001d000000000023004b000029400000a13d000000000010043f000000000100041400000a5b0010009c00000a5b01008041000000c00110021000000a95011001c70000801002000039296829630000040f0000000100200190000029460000613d000000000101043b0000000101100029000000000101041a000000000001042d00000ab901000041000000000010043f0000003201000039000000040010043f00000aa1010000410000296a0001043000000000010000190000296a00010430000000000001042f00000a5b0010009c00000a5b01008041000000400110021000000a5b0020009c00000a5b020080410000006002200210000000000112019f000000000200041400000a5b0020009c00000a5b02008041000000c002200210000000000112019f00000a8c011001c70000801002000039296829630000040f00000001002001900000295c0000613d000000000101043b000000000001042d00000000010000190000296a0001043000002961002104210000000102000039000000000001042d0000000002000019000000000001042d00002966002104230000000102000039000000000001042d0000000002000019000000000001042d0000296800000432000029690001042e0000296a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000100000001000000020000000000000000000000000000004000000100000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616e6e6f7420736574206f776e657220746f207a65726f000000000000000000000000000000000000000000000000000000640000008000000000000000000000000000000000000000000000000000000000000000000000000050c946fd000000000000000000000000000000000000000000000000000000008da5cb5a00000000000000000000000000000000000000000000000000000000ddbe4f8100000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000fcdc8efe00000000000000000000000000000000000000000000000000000000ddbe4f8200000000000000000000000000000000000000000000000000000000e29581aa000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000009cb7c5f400000000000000000000000000000000000000000000000000000000d8bc7b6800000000000000000000000000000000000000000000000000000000715f52940000000000000000000000000000000000000000000000000000000084f5ed890000000000000000000000000000000000000000000000000000000084f5ed8a0000000000000000000000000000000000000000000000000000000086fa424600000000000000000000000000000000000000000000000000000000715f52950000000000000000000000000000000000000000000000000000000079ba50970000000000000000000000000000000000000000000000000000000050c946fe000000000000000000000000000000000000000000000000000000005d83d9670000000000000000000000000000000000000000000000000000000066acaa330000000000000000000000000000000000000000000000000000000023537404000000000000000000000000000000000000000000000000000000002c01a1e700000000000000000000000000000000000000000000000000000000398f377200000000000000000000000000000000000000000000000000000000398f3773000000000000000000000000000000000000000000000000000000003f2a13c9000000000000000000000000000000000000000000000000000000002c01a1e800000000000000000000000000000000000000000000000000000000358039f4000000000000000000000000000000000000000000000000000000002353740500000000000000000000000000000000000000000000000000000000275459f2000000000000000000000000000000000000000000000000000000002a85293300000000000000000000000000000000000000000000000000000000181f5a76000000000000000000000000000000000000000000000000000000002145024200000000000000000000000000000000000000000000000000000000214502430000000000000000000000000000000000000000000000000000000022bdbcbc00000000000000000000000000000000000000000000000000000000181f5a77000000000000000000000000000000000000000000000000000000001d05394c0000000000000000000000000000000000000000000000000000000005a51966000000000000000000000000000000000000000000000000000000000fe5800a00000000000000000000000000000000000000000000000000000000125700110000000000000000000000000000000000000020000000800000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0200000000000000000000000000000000000000000000000000000000000000ed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127843616e6e6f74207472616e7366657220746f2073656c660000000000000000006e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000000000000000003fffffffffffffffe0000000000000000000000000000000000000000000000000fffffffffffffeff02000000000000000000000000000000000000400000000000000000000000000200000000000000000000000000000000000020000000000000000000000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b000000000000000000000000000000000000000000000000ffffffffffffff1fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff000000000000000000000000000000000000000000000000ffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ab8b67c600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004400000080000000000000000080000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffbf9473075d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000086f41145bde5dd7f523305452e4aad3685508c181432ec733d5f345009358a28add9ae1e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe05461848300000000000000000000000000000000000000000000000000000000599336d74a1247d50642b66dd6abeaa5484f6bd96b415b31bb99e26578c9397891eabfe8e493f369f48e58fdf2609ff8809506ce57440a6f25fddc25308a385174becb12a5e8fd0e98077d02dfba8f647c9670c9df177e42c2418cf17a636f053748d4c60000000000000000000000000000000000000000000000000000000064e2ee92000000000000000000000000000000000000000000000000000000004d7573742062652070726f706f736564206f776e6572000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ebf52551000000000000000000000000000000000000000000000000000000003da8a5f161a6c3ff06a60736d0ed24d7963cc6a5c4fafd2fa1dae9bb908e07a501ffc9a700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff9f0000000000007530000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000000000000078bea72100000000000000000000000000000000000000000000000000000000abb5e3fd00000000000000000000000000000000000000000000000000000000ffffffffffffffffffff000000000000000000000000000000000000000000ff00000000000000000000ffffffffffffffffffffffffffffffffffffffff000004f0a9bcf3f3a3b42a4d7ca081119755f82ebe43e0d30c8f7292c4fe0dc4a2ae4e487b7100000000000000000000000000000000000000000000000000000000f7d7a29400000000000000000000000000000000000000000000000000000000fc949c7b4a13586e39d89eead2f38644f9fb3efb5a0490b14f8fc0ceab44c250dcea1b78b6ddc31592a94607d537543fcaafda6cc52d6d5cc7bbfca1422baf21e181733f000000000000000000000000000000000000000000000000000000008318ed5d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffe000000000000000000000000000000000000000000000000000000001ffffffe078e94ca80be2c30abc061b99e7eb8583b1254781734b1e3ce339abb57da2fe8eeeacd939000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000599336d74a1247d50642b66dd6abeaa5484f6bd96b415b31bb99e26578c9397903dcd8620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000440000000000000000000000004b5b465e22eea0c3d40c30e936643245b80d19b2dcf75788c0699fe8d8db645b37d89765000000000000000000000000000000000000000000000000000000008377314600000000000000000000000000000000000000000000000000000000d82f6adb0000000000000000000000000000000000000000000000000000000060a6d8980000000000000000000000000000000000000000000000000000000060b9df730000000000000000000000000000000000000000000000000000000091eabfe8e493f369f48e58fdf2609ff8809506ce57440a6f25fddc25308a38525254e609a97bab37b7cc79fe128f85c097bd6015c6e1624ae0ba392eb97532052b62be9b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff00000000000000000000a59268ca81d40429e65ccea5385b59cf2d3fc6519371dee92f8eb1dae5107a7a00000000000000000000000000000000000000000000ff0000000000000000004f6e6c792063616c6c61626c65206279206f776e657200000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000fffffffffffffffff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c15817036514361706162696c6974696573526567697374727920312e312e300000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffc0000000000000000000000000000000000000000000000000ffffffffffffff600000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffffffffff20000000000000000000000000000000000000000000000000ffffffffffffff00000000000000000000000000000000000000006400000000000000000000000025b4d6180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffe636e4057000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000003927d080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff0000000000000000000000000000000000000000000100000000000000000000ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff0000000000000000000000000000000000000000000000ff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000fba64a7c0000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa7e792500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c65997540cb40e821a1069364841c3059b421bdd885f8091a7d28d67084405d") diff --git a/gethwrappers/shared/generated/burn_mint_erc677/burn_mint_erc677_zksync.go b/gethwrappers/shared/generated/burn_mint_erc677/burn_mint_erc677_zksync.go new file mode 100644 index 0000000000..d508d85b3e --- /dev/null +++ b/gethwrappers/shared/generated/burn_mint_erc677/burn_mint_erc677_zksync.go @@ -0,0 +1,61 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. +package burn_mint_erc677 + +import ( + "context" + "crypto/rand" + "fmt" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/zksync-sdk/zksync2-go/accounts" + "github.com/zksync-sdk/zksync2-go/clients" + "github.com/zksync-sdk/zksync2-go/types" +) + +func DeployBurnMintERC677Zk(deployOpts *accounts.TransactOpts, client *clients.Client, wallet *accounts.Wallet, backend bind.ContractBackend, args ...interface{}) (common.Address, *types.Receipt, *BurnMintERC677, error) { + var calldata []byte + if len(args) > 0 { + abi, err := BurnMintERC677MetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + calldata, err = abi.Pack("", args...) + if err != nil { + return common.Address{}, nil, nil, err + } + } + + salt := make([]byte, 32) + n, err := rand.Read(salt) + if err != nil { + return common.Address{}, nil, nil, err + } + if n != len(salt) { + return common.Address{}, nil, nil, fmt.Errorf("failed to read random bytes: expected %d, got %d", len(salt), n) + } + + txHash, err := wallet.Deploy(deployOpts, accounts.Create2Transaction{ + Bytecode: ZkBytecode, + Calldata: calldata, + Salt: salt, + }) + if err != nil { + return common.Address{}, nil, nil, err + } + + receipt, err := client.WaitMined(context.Background(), txHash) + if err != nil { + return common.Address{}, nil, nil, err + } + + address := receipt.ContractAddress + contract, err := NewBurnMintERC677(address, backend) + if err != nil { + return common.Address{}, nil, nil, err + } + + return address, receipt, contract, nil +} + +var ZkBytecode = common.Hex2Bytes("0002000000000002000c00000000000200010000000103550000006003100270000002e00030019d000002e00330019700000001002001900000003a0000c13d0000008002000039000000400020043f000000040030008c000005210000413d000000000201043b000000e002200270000002eb0020009c000001100000213d000003030020009c0000012e0000213d0000030f0020009c000001d50000213d000003150020009c000002240000213d000003180020009c0000039b0000613d000003190020009c000005210000c13d0000000001000416000000000001004b000005210000c13d0000000303000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0010008c00000000060000390000000106002039000000000662013f0000000100600190000002430000c13d000000800010043f000000000005004b000005380000613d000000000030043f000000020020008c000005770000413d0000034b0200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000014004b000000310000413d000005c50000013d000000c004000039000000400040043f0000000002000416000000000002004b000005210000c13d0000001f02300039000002e102200197000000c002200039000000400020043f0000001f0530018f000002e206300198000000c0026000390000004c0000613d000000000701034f000000007807043c0000000004840436000000000024004b000000480000c13d000000000005004b000000590000613d000000000161034f0000000304500210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000800030008c000005210000413d000000c00400043d000002e30040009c000005210000213d0000001f01400039000000000031004b0000000002000019000002e402008041000002e401100197000000000001004b0000000005000019000002e405004041000002e40010009c000000000502c019000000000005004b000005210000c13d000000c0014000390000000002010433000002e30020009c000004dd0000213d0000001f0120003900000352011001970000003f011000390000035201100197000000400600043d0000000005160019000000000065004b00000000010000390000000101004039000002e30050009c000004dd0000213d0000000100100190000004dd0000c13d000000c001300039000000400050043f000800000006001d0000000005260436000700000005001d000000e0044000390000000005420019000000000015004b000005210000213d000000000002004b00000007080000290000008f0000613d000000000500001900000000065800190000000007450019000000000707043300000000007604350000002005500039000000000025004b000000880000413d000000080220002900000020022000390000000000020435000000e00400043d000002e30040009c000005210000213d0000001f02400039000000000032004b0000000003000019000002e403008041000002e402200197000000000002004b0000000005000019000002e405004041000002e40020009c000000000503c019000000000005004b000005210000c13d000000c0024000390000000002020433000002e30020009c000004dd0000213d0000001f0320003900000352033001970000003f033000390000035203300197000000400600043d0000000003360019000000000063004b00000000050000390000000105004039000002e30030009c000004dd0000213d0000000100500190000004dd0000c13d000000400030043f000600000006001d0000000003260436000500000003001d000000e0034000390000000004320019000000000014004b000005210000213d000000000002004b0000000506000029000000c50000613d000000000100001900000000041600190000000005310019000000000505043300000000005404350000002001100039000000000021004b000000be0000413d000000060120002900000020011000390000000000010435000001000100043d000400000001001d000000ff0010008c000005210000213d00000008010000290000000001010433000002e30010009c000004dd0000213d000300000001001d0000000301000039000000000101041a000000010210019000000001031002700000007f0330618f0000001f0030008c00000000010000390000000101002039000000000012004b000002430000c13d000001200100043d000100000001001d000200000003001d000000200030008c000000fc0000413d0000000301000039000000000010043f0000000001000414000002e00010009c000002e001008041000000c001100210000002e5011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d00000003030000290000001f023000390000000502200270000000200030008c0000000002004019000000000301043b00000002010000290000001f01100039000000050110027000000000011300190000000002230019000000000012004b000000fc0000813d000000000002041b0000000102200039000000000012004b000000f80000413d00000003010000290000001f0010008c000007430000a13d0000000301000039000000000010043f0000000001000414000002e00010009c000002e001008041000000c001100210000002e5011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000200200008a0000000302200180000000000101043b0000079b0000c13d0000002003000039000007a80000013d000002ec0020009c000001530000213d000002f80020009c000001ec0000213d000002fe0020009c000002300000213d000003010020009c000003ae0000613d000003020020009c000005210000c13d0000000001000416000000000001004b000005210000c13d0000000902000039000000000102041a000000800010043f000000000020043f000000000001004b000002020000613d000000a0040000390000032d0200004100000000030000190000000005040019000000000402041a000000000445043600000001022000390000000103300039000000000013004b000001260000413d0000052d0000013d000003040020009c000001f30000213d0000030a0020009c000002490000213d0000030d0020009c000003c10000613d0000030e0020009c000005210000c13d000000240030008c000005210000413d0000000001000416000000000001004b000005210000c13d0000000001000411000000000010043f0000000a01000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b000000000101041a000000000001004b000004680000613d00000004010000390000000101100367000000000201043b00000000010004110b7a0abd0000040f000000000100001900000b7b0001042e000002ed0020009c000002040000213d000002f30020009c000002940000213d000002f60020009c000003e20000613d000002f70020009c000005210000c13d000000240030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000401100370000000000101043b000800000001001d0000031a0010009c000005210000213d0000000501000039000000000101041a0000031a011001970000000002000411000000000012004b0000055a0000c13d0000000801000029000000000010043f0000000801000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b000000000101041a000000000001004b000001a20000c13d0000000701000039000000000201041a000002e30020009c000004dd0000213d0000000103200039000000000031041b000003260220009a0000000803000029000000000032041b000000000101041a000700000001001d000000000030043f0000000801000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b0000000702000029000000000021041b0000000001000414000002e00010009c000002e001008041000000c0011002100000031d011001c70000800d020000390000000203000039000003270400004100000008050000290b7a0b700000040f0000000100200190000005210000613d0000000501000039000000000101041a0000031a011001970000000002000411000000000012004b0000061c0000c13d0000000801000029000000000010043f0000000a01000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b000000000101041a000000000001004b000006660000c13d0000000901000039000000000201041a000002e30020009c000004dd0000213d0000000103200039000000000031041b000003240220009a0000000803000029000000000032041b000000000101041a000700000001001d000000000030043f0000000a01000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b0000000702000029000000000021041b00000000010004140000065b0000013d000003100020009c000002a80000213d000003130020009c000004260000613d000003140020009c000005210000c13d0000000001000416000000000001004b000005210000c13d0000000001000412000c00000001001d000b00000000003d0000800501000039000000440300003900000000040004150000000c0440008a000000050440021000000323020000410b7a0b570000040f000000ff0110018f000000800010043f000003220100004100000b7b0001042e000002f90020009c0000033a0000213d000002fc0020009c0000044a0000613d000002fd0020009c0000039a0000613d000005210000013d000003050020009c000003490000213d000003080020009c0000039a0000613d000003090020009c000005210000c13d0000000001000416000000000001004b000005210000c13d0000000702000039000000000102041a000000800010043f000000000020043f000000000001004b000005230000c13d00000020020000390000052e0000013d000002ee0020009c0000036a0000213d000002f10020009c000004730000613d000002f20020009c000005210000c13d000000440030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000402100370000000000202043b0000031a0020009c000005210000213d0000002401100370000000000101043b000800000001001d0000031a0010009c000005210000213d000000000020043f0000000101000039000000200010043f000000400200003900000000010000190b7a0b420000040f0000000802000029000000000020043f000000200010043f00000000010000190000004002000039000005130000013d000003160020009c000004820000613d000003170020009c000005210000c13d0000000001000416000000000001004b000005210000c13d0000000201000039000000000101041a000000800010043f000003220100004100000b7b0001042e000002ff0020009c000004a10000613d000003000020009c000005210000c13d0000000001000416000000000001004b000005210000c13d0000000403000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0010008c00000000060000390000000106002039000000000662013f0000000100600190000005350000613d0000033101000041000000000010043f0000002201000039000000040010043f0000032b0100004100000b7c000104300000030b0020009c000004aa0000613d0000030c0020009c000005210000c13d000000240030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000401100370000000000101043b000800000001001d0000031a0010009c000005210000213d0000000501000039000000000101041a0000031a011001970000000002000411000000000012004b0000055a0000c13d0000000801000029000000000010043f0000000a01000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b000000000101041a000700000001001d000000000001004b000006660000613d0000000901000039000000000201041a000000000002004b000003940000613d0000000703000029000000010130008a000000000032004b0000069f0000c13d0000000702000029000003320220009a000000000002041b0000000902000039000000000012041b0000000801000029000000000010043f0000000a01000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b000000000001041b0000000001000414000002e00010009c000002e001008041000000c0011002100000031d011001c70000800d0200003900000002030000390000033304000041000006620000013d000002f40020009c000004b80000613d000002f50020009c000005210000c13d0000000001000416000000000001004b000005210000c13d0000000001000412000a00000001001d000900200000003d0000800501000039000000440300003900000000040004150000000a0440008a000000050440021000000323020000410b7a0b570000040f000000800010043f000003220100004100000b7b0001042e000003110020009c000004e30000613d000003120020009c000005210000c13d000000640030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000402100370000000000202043b000800000002001d0000031a0020009c000005210000213d0000002402100370000000000202043b000700000002001d0000004402100370000000000402043b000002e30040009c000005210000213d0000002302400039000000000032004b000005210000813d0000000405400039000000000251034f000000000202043b000002e30020009c000004dd0000213d0000001f0620003900000352066001970000003f066000390000035206600197000003390060009c000004dd0000213d0000008006600039000000400060043f000000800020043f00000000042400190000002404400039000000000034004b000005210000213d0000002003500039000000000331034f00000352042001980000001f0520018f000000a001400039000002de0000613d000000a006000039000000000703034f000000007807043c0000000006860436000000000016004b000002da0000c13d000000000005004b000002eb0000613d000000000343034f0000000304500210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000310435000000a0012000390000000000010435000000080100002900000007020000290b7a09320000040f000000400100043d000000200210003900000040030000390000000000320435000000070200002900000000002104350000004003100039000000800200043d000000000023043500000000070004110000006003100039000000000002004b000003050000613d00000000040000190000000005340019000000a006400039000000000606043300000000006504350000002004400039000000000024004b000002fe0000413d0000001f042000390000035204400197000000000232001900000000000204350000006002400039000002e00020009c000002e0020080410000006002200210000002e00010009c000002e0010080410000004001100210000000000112019f0000000002000414000002e00020009c000002e002008041000000c002200210000000000112019f0000031d011001c70000800d0200003900000003030000390000033a04000041000000000507001900000008060000290b7a0b700000040f0000000100200190000005210000613d0000033b010000410000000000100443000000080100002900000004001004430000000001000414000002e00010009c000002e001008041000000c0011002100000033c011001c700008002020000390b7a0b750000040f0000000100200190000007970000613d000000000101043b000000000001004b000007500000c13d000000400100043d000002e00010009c000700000001001d000002e0010080410006004000100218000000010100003900000007020000290000000000120435000000060100002900000329011001c700000b7b0001042e000002fa0020009c000004f10000613d000002fb0020009c000005210000c13d000000240030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000401100370000000000101043b0000031a0010009c000005210000213d0b7a0b190000040f000004b40000013d000003060020009c000005060000613d000003070020009c000005210000c13d0000000001000416000000000001004b000005210000c13d0000000601000039000000000201041a0000031a032001970000000006000411000000000036004b0000053e0000c13d0000000503000039000000000403041a000002e605400197000000000565019f000000000053041b000002e602200197000000000021041b00000000010004140000031a05400197000002e00010009c000002e001008041000000c0011002100000031d011001c70000800d0200003900000003030000390000032f040000410b7a0b700000040f0000000100200190000006660000c13d000005210000013d000002ef0020009c000005180000613d000002f00020009c000005210000c13d000000240030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000401100370000000000101043b000800000001001d0000031a0010009c000005210000213d0000000501000039000000000101041a0000031a011001970000000002000411000000000012004b0000055a0000c13d0000000801000029000000000010043f0000000801000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b000000000101041a000700000001001d000000000001004b000006660000613d0000000701000039000000000201041a000000000002004b000006230000c13d0000033101000041000000000010043f0000001101000039000000040010043f0000032b0100004100000b7c000104300b7a08870000040f000000240030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000401100370000000000201043b0000034c00200198000005210000c13d00000001010000390000034d0020009c000005640000213d000003500020009c000005150000613d000003510020009c000000000100c019000000800010043f000003220100004100000b7b0001042e000000440030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000402100370000000000202043b000800000002001d0000031a0020009c000005210000213d0000002401100370000000000101043b000700000001001d0000000001000411000000000010043f0000000a01000039000000200010043f00000000010004140000045c0000013d000000440030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000402100370000000000202043b000800000002001d0000031a0020009c000005210000213d0000002401100370000000000101043b000700000001001d0000000001000411000000000010043f0000000801000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b000000000101041a000000000001004b000005790000c13d000000400100043d00000338020000410000046a0000013d000000240030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000401100370000000000101043b000800000001001d0000031a0010009c000005210000213d0000000501000039000000000101041a0000031a011001970000000002000411000000000012004b0000055a0000c13d0000000801000029000000000010043f0000000801000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b000000000101041a000000000001004b000006660000c13d0000000701000039000000000201041a000002e30020009c000004dd0000213d0000000103200039000000000031041b000003260220009a0000000803000029000000000032041b000000000101041a000700000001001d000000000030043f0000000801000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b0000000702000029000000000021041b0000000001000414000002e00010009c000002e001008041000000c0011002100000031d011001c70000800d0200003900000002030000390000032704000041000006620000013d000000640030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000402100370000000000202043b000800000002001d0000031a0020009c000005210000213d0000002402100370000000000202043b000700000002001d0000031a0020009c000005210000213d0000004401100370000000000301043b00000000020004110000000801000029000600000003001d0b7a0a2d0000040f0000000001000410000000070010006b000005210000613d000000080000006b000005d90000c13d000000400100043d00000064021000390000034303000041000000000032043500000044021000390000034403000041000000000032043500000024021000390000002503000039000006810000013d000000440030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000402100370000000000202043b000800000002001d0000031a0020009c000005210000213d0000002401100370000000000101043b000700000001001d0000000001000411000000000010043f0000000a01000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b000000000101041a000000000001004b0000056b0000c13d000000400100043d0000032a020000410000000000210435000000040210003900000000030004110000000000320435000002e00010009c000002e00100804100000040011002100000032b011001c700000b7c00010430000000440030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000402100370000000000302043b0000031a0030009c000005210000213d0000002401100370000000000201043b00000000010300190b7a09a90000040f000000000100001900000b7b0001042e000000440030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000402100370000000000202043b000800000002001d0000031a0020009c000005210000213d0000002401100370000000000101043b000700000001001d0000000001000410000000080010006b000005210000613d0000000002000411000000000002004b0000059c0000c13d000002e901000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f0000034901000041000000c40010043f0000034a01000041000000e40010043f000003480100004100000b7c000104300000000001000416000000000001004b000005210000c13d0000000501000039000000000101041a0000031a01100197000000800010043f000003220100004100000b7b0001042e000000240030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000401100370000000000101043b0000031a0010009c000005210000213d0b7a0b2d0000040f000000000001004b0000000001000039000000010100c039000004ff0000013d000000240030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000401100370000000000101043b000800000001001d0000031a0010009c000005210000213d0000000501000039000000000101041a0000031a011001970000000002000411000000000012004b0000055a0000c13d0000000801000029000000000010043f0000000a01000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b000000000101041a000000000001004b000006660000c13d0000000901000039000000000201041a000002e30020009c000006440000a13d0000033101000041000000000010043f0000004101000039000000040010043f0000032b0100004100000b7c00010430000000440030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000402100370000000000302043b0000031a0030009c000005210000213d0000002401100370000000000201043b00000000010300190b7a09a90000040f000004fe0000013d000000440030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000402100370000000000302043b0000031a0030009c000005210000213d0000002401100370000000000201043b00000000010300190b7a09320000040f0000000101000039000000400200043d0000000000120435000002e00020009c000002e002008041000000400120021000000329011001c700000b7b0001042e000000240030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000401100370000000000101043b0000031a0010009c000005210000213d000000000010043f000000200000043f000000400200003900000000010000190b7a0b420000040f000000000101041a000000800010043f000003220100004100000b7b0001042e000000240030008c000005210000413d0000000002000416000000000002004b000005210000c13d0000000401100370000000000601043b0000031a0060009c000005480000a13d000000000100001900000b7c00010430000000a004000039000003300200004100000000030000190000000005040019000000000402041a000000000445043600000001022000390000000103300039000000000013004b000005260000413d000000600250008a00000080010000390b7a08750000040f000000400100043d000800000001001d00000080020000390b7a09220000040f000005cf0000013d000000800010043f000000000005004b000005740000c13d0000035301200197000000a00010043f000000000004004b000000c001000039000000a001006039000005c60000013d000002e901000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f0000032e01000041000000c40010043f000003210100004100000b7c000104300000000501000039000000000101041a0000031a011001970000000005000411000000000015004b0000055a0000c13d000000000056004b000005aa0000c13d000002e901000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f0000032001000041000000c40010043f000003210100004100000b7c00010430000002e901000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f0000032801000041000000c40010043f000003210100004100000b7c000104300000034e0020009c000005150000613d0000034f0020009c000005150000613d000000800000043f000003220100004100000b7b0001042e0000000801000029000000000200041100000007030000290b7a0a2d0000040f000000080100002900000007020000290b7a0abd0000040f000000000100001900000b7b0001042e000000000030043f000000020020008c000005bb0000813d000000a001000039000005c60000013d0000000001000410000000080010006b000005210000613d0000032301000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000002e00010009c000002e001008041000000c00110021000000334011001c700008005020000390b7a0b750000040f0000000100200190000007970000613d000000000101043b000000000001004b0000068c0000613d0000000202000039000000000202041a0000000703000029000000000032001a000003940000413d0000000002320019000000000012004b0000068c0000a13d000000400100043d00000335030000410000000000310435000000040310003900000000002304350000046e0000013d000000080000006b000005e50000c13d000002e901000041000000800010043f0000002001000039000000840010043f0000002201000039000000a40010043f0000034601000041000000c40010043f0000034701000041000000e40010043f000003480100004100000b7c000104300000000601000039000000000201041a000002e602200197000000000262019f000000000021041b0000000001000414000002e00010009c000002e001008041000000c0011002100000031d011001c70000800d0200003900000003030000390000031f040000410b7a0b700000040f0000000100200190000006660000c13d000005210000013d0000032c0200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000014004b000005bd0000413d000000c001300039000000800210008a00000080010000390b7a08750000040f0000002001000039000000400200043d000800000002001d000000000212043600000080010000390b7a08630000040f00000008020000290000000001210049000002e00010009c000002e0010080410000006001100210000002e00020009c000002e0020080410000004002200210000000000121019f00000b7b0001042e000000070000006b000006680000c13d000000400100043d00000064021000390000034103000041000000000032043500000044021000390000034203000041000000000032043500000024021000390000002303000039000006810000013d000000000020043f0000000101000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b0000000802000029000000000020043f000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b0000000702000029000000000021041b000000400100043d0000000000210435000002e00010009c000002e00100804100000040011002100000000002000414000002e00020009c000002e002008041000000c002200210000000000112019f000002e5011001c70000800d0200003900000003030000390000034504000041000000000500041100000008060000290b7a0b700000040f0000000100200190000005210000613d000000400100043d00000001020000390000000000210435000002e00010009c000002e001008041000000400110021000000329011001c700000b7b0001042e000000400100043d00000044021000390000032803000041000000000032043500000024021000390000001603000039000006940000013d0000000703000029000000010130008a000000000032004b000006bd0000c13d00000007020000290000031c0220009a000000000002041b0000000702000039000000000012041b0000000801000029000000000010043f0000000801000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b000000000001041b0000000001000414000002e00010009c000002e001008041000000c0011002100000031d011001c70000800d0200003900000002030000390000031e04000041000006620000013d0000000103200039000000000031041b000003240220009a0000000803000029000000000032041b000000000101041a000700000001001d000000000030043f0000000a01000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b0000000702000029000000000021041b0000000001000414000002e00010009c000002e001008041000000c0011002100000031d011001c70000800d020000390000000203000039000003250400004100000008050000290b7a0b700000040f0000000100200190000005210000613d000000000100001900000b7b0001042e0000000801000029000000000010043f000000200000043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b000000000101041a0005000600100074000007100000813d000000400100043d00000064021000390000033e03000041000000000032043500000044021000390000033f030000410000000000320435000000240210003900000026030000390000000000320435000002e9020000410000000000210435000000040210003900000020030000390000000000320435000002e00010009c000002e001008041000000400110021000000340011001c700000b7c00010430000000080000006b000006e40000c13d000000400100043d00000044021000390000033703000041000000000032043500000024021000390000001f030000390000000000320435000002e9020000410000000000210435000000040210003900000020030000390000000000320435000002e00010009c000002e0010080410000004001100210000002ea011001c700000b7c00010430000000000012004b000006de0000a13d0000000701000029000003320110009a000003320220009a000000000202041a000000000021041b000000000020043f0000000a01000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b0000000702000029000000000021041b0000000901000039000000000101041a000700000001001d000000000001004b000006d80000613d0000000701000029000000010110008a000002770000013d000000000012004b000006de0000a13d00000007010000290000031c0110009a0000031c0220009a000000000202041a000000000021041b000000000020043f0000000801000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b0000000702000029000000000021041b0000000701000039000000000101041a000700000001001d000000000001004b000007980000c13d0000033101000041000000000010043f0000003101000039000000040010043f0000032b0100004100000b7c000104300000033101000041000000000010043f0000003201000039000000040010043f0000032b0100004100000b7c000104300000000201000039000000000201041a0000000703000029000000000032001a000003940000413d0000000002320019000000000021041b0000000801000029000000000010043f000000200000043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b000000000201041a00000007030000290000000002320019000000000021041b000000400100043d0000000000310435000002e00010009c000002e00100804100000040011002100000000002000414000002e00020009c000002e002008041000000c002200210000000000112019f000002e5011001c70000800d0200003900000003030000390000033604000041000000000500001900000008060000290b7a0b700000040f0000000100200190000006660000c13d000005210000013d0000000801000029000000000010043f000000200000043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b0000000502000029000000000021041b0000000701000029000000000010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000000101043b000000000201041a00000006030000290000000002320019000000000021041b000000400100043d0000000000310435000002e00010009c000002e00100804100000040011002100000000002000414000002e00020009c000002e002008041000000c002200210000000000112019f000002e5011001c70000800d0200003900000003030000390000033604000041000000080500002900000007060000290b7a0b700000040f0000000100200190000006140000c13d000005210000013d000000030000006b0000000001000019000007480000613d0000000701000029000000000101043300000003040000290000000302400210000003540220027f0000035402200167000000000121016f0000000102400210000000000121019f000007b60000013d0000033b010000410000000000100443000000080100002900000004001004430000000001000414000002e00010009c000002e001008041000000c0011002100000033c011001c700008002020000390b7a0b750000040f0000000100200190000007970000613d000000000101043b000000000001004b000005210000613d000000400300043d0000004401300039000000600200003900000000002104350000002401300039000000070200002900000000002104350000033d0100004100000000001304350000000401300039000000000200041100000000002104350000006402300039000000800100043d0000000000120435000700000003001d0000008402300039000000000001004b0000077b0000613d00000000030000190000000004230019000000a005300039000000000505043300000000005404350000002003300039000000000013004b000007740000413d000000000221001900000000000204350000001f0110003900000352011001970000008401100039000002e00010009c000002e00100804100000060011002100000000002000414000002e00020009c000002e002008041000000c002200210000000000112019f0000000702000029000002e00020009c000002e002008041000600400020021800000006011001af00000008020000290b7a0b700000040f0000000100200190000008090000613d0000000701000029000002e30010009c000004dd0000213d0000000701000029000000400010043f000003340000013d000000000001042f0000000701000029000000010110008a000006270000013d000000010320008a0000000503300270000000000431001900000020030000390000000104400039000000080600002900000000056300190000000005050433000000000051041b00000020033000390000000101100039000000000041004b000007a10000c13d000000030020006c000007b30000813d00000003020000290000000302200210000000f80220018f000003540220027f000003540220016700000008033000290000000003030433000000000223016f000000000021041b0000000301000029000000010110021000000001011001bf0000000302000039000000000012041b00000006010000290000000001010433000800000001001d000002e30010009c000004dd0000213d0000000401000039000000000101041a000000010010019000000001021002700000007f0220618f000700000002001d0000001f0020008c00000000020000390000000102002039000000000121013f0000000100100190000002430000c13d0000000701000029000000200010008c000007e80000413d0000000401000039000000000010043f0000000001000414000002e00010009c000002e001008041000000c001100210000002e5011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d00000008030000290000001f023000390000000502200270000000200030008c0000000002004019000000000301043b00000007010000290000001f01100039000000050110027000000000011300190000000002230019000000000012004b000007e80000813d000000000002041b0000000102200039000000000012004b000007e40000413d00000008010000290000001f0010008c000007fc0000a13d0000000401000039000000000010043f0000000001000414000002e00010009c000002e001008041000000c001100210000002e5011001c700008010020000390b7a0b750000040f0000000100200190000005210000613d000000200200008a0000000802200180000000000101043b000008290000c13d0000002003000039000008360000013d000000080000006b0000000001000019000008010000613d0000000501000029000000000101043300000008040000290000000302400210000003540220027f0000035402200167000000000121016f0000000102400210000000000121019f000008440000013d00000060061002700000001f0460018f000002e205600198000000400200043d0000000003520019000008150000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b000008110000c13d000002e006600197000000000004004b000008230000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000006001600210000002e00020009c000002e0020080410000004002200210000000000112019f00000b7c00010430000000010320008a0000000503300270000000000431001900000020030000390000000104400039000000060600002900000000056300190000000005050433000000000051041b00000020033000390000000101100039000000000041004b0000082f0000c13d000000080020006c000008410000813d00000008020000290000000302200210000000f80220018f000003540220027f000003540220016700000006033000290000000003030433000000000223016f000000000021041b0000000801000029000000010110021000000001011001bf0000000402000039000000000012041b0000000001000411000000000001004b000008500000c13d000000400100043d0000004402100039000002e803000041000000000032043500000024021000390000001803000039000006940000013d0000000502000039000000000302041a000002e603300197000000000113019f000000000012041b0000000401000029000000800010043f0000000102000029000000a00020043f0000014000000443000001600010044300000020010000390000018000100443000001a000200443000001000010044300000002010000390000012000100443000002e70100004100000b7b0001042e00000000430104340000000001320436000000000003004b0000086f0000613d000000000200001900000000052100190000000006240019000000000606043300000000006504350000002002200039000000000032004b000008680000413d000000000231001900000000000204350000001f0230003900000352022001970000000001210019000000000001042d0000001f0220003900000352022001970000000001120019000000000021004b00000000020000390000000102004039000002e30010009c000008810000213d0000000100200190000008810000c13d000000400010043f000000000001042d0000033101000041000000000010043f0000004101000039000000040010043f0000032b0100004100000b7c0001043000020000000000020000000001000416000000000001004b000008ce0000c13d0000000001000031000003550010009c000008ce0000213d000000430010008c000008ce0000a13d00000001010003670000000402100370000000000202043b000200000002001d0000031a0020009c000008ce0000213d0000002401100370000000000101043b000100000001001d0000000001000411000000000010043f0000000101000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000008ce0000613d000000000101043b0000000202000029000000000020043f000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f0000000100200190000008ce0000613d000000000101043b000000000101041a000000010310006c000008cb0000813d000000400100043d000000640210003900000356030000410000000000320435000000440210003900000357030000410000000000320435000000240210003900000025030000390000000000320435000002e9020000410000000000210435000000040210003900000020030000390000000000320435000002e00010009c000002e001008041000000400110021000000340011001c700000b7c000104300000000001000410000000020010006b000008d00000c13d000000000100001900000b7c000104300000000001000411000000000001004b000008dd0000c13d000000400100043d00000064021000390000034a03000041000000000032043500000044021000390000034903000041000000000032043500000024021000390000002403000039000008c00000013d000000020000006b000008e90000c13d000000400100043d00000064021000390000034703000041000000000032043500000044021000390000034603000041000000000032043500000024021000390000002203000039000008c00000013d0000000001000411000000000010043f0000000101000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c70000801002000039000100000003001d0b7a0b750000040f0000000100200190000008ce0000613d000000000101043b0000000202000029000000000020043f000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f00000001030000290000000100200190000008ce0000613d000000000101043b000000000031041b000000400100043d0000000000310435000002e00010009c000002e00100804100000040011002100000000002000414000002e00020009c000002e002008041000000c002200210000000000112019f000002e5011001c70000800d0200003900000003030000390000034504000041000000000500041100000002060000290b7a0b700000040f0000000100200190000008ce0000613d000000400100043d00000001020000390000000000210435000002e00010009c000002e001008041000000400110021000000329011001c700000b7b0001042e00000020030000390000000004310436000000000302043300000000003404350000004001100039000000000003004b000009310000613d0000000004000019000000200220003900000000050204330000031a0550019700000000015104360000000104400039000000000034004b0000092a0000413d000000000001042d0003000000000002000200000002001d0003031a0010019b0000000001000410000000030010006b0000097f0000613d0000000002000411000000000002004b000009810000613d000000030000006b0000098b0000613d000000000020043f000000200000043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f00000001002001900000097f0000613d000000000101043b000000000101041a0001000200100074000009950000413d0000000001000411000000000010043f000000200000043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f00000001002001900000097f0000613d000000000101043b0000000102000029000000000021041b0000000301000029000000000010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f00000001002001900000097f0000613d000000000101043b000000000201041a00000002030000290000000002320019000000000021041b000000400100043d0000000000310435000002e00010009c000002e00100804100000040011002100000000002000414000002e00020009c000002e002008041000000c002200210000000000112019f000002e5011001c70000800d0200003900000003030000390000033604000041000000000500041100000003060000290b7a0b700000040f00000001002001900000097f0000613d000000000001042d000000000100001900000b7c00010430000000400100043d000000640210003900000343030000410000000000320435000000440210003900000344030000410000000000320435000000240210003900000025030000390000099e0000013d000000400100043d000000640210003900000341030000410000000000320435000000440210003900000342030000410000000000320435000000240210003900000023030000390000099e0000013d000000400100043d00000064021000390000033e03000041000000000032043500000044021000390000033f030000410000000000320435000000240210003900000026030000390000000000320435000002e9020000410000000000210435000000040210003900000020030000390000000000320435000002e00010009c000002e001008041000000400110021000000340011001c700000b7c000104300003000000000002000200000002001d000300000001001d0000000001000411000000000010043f0000000101000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f000000010020019000000a070000613d000000000101043b00000003020000290000031a02200197000300000002001d000000000020043f000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f000000010020019000000a070000613d000000000101043b000000000201041a000000020020002a00000a270000413d000100000002001d0000000001000410000000030010006b00000a070000613d0000000001000411000000000001004b00000a090000613d000000030000006b00000a130000613d0000000001000411000000000010043f0000000101000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f000000010020019000000a070000613d000000000101043b0000000302000029000000000020043f000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f000000010020019000000a070000613d00000001030000290000000202300029000000000101043b000000000021041b000000400100043d0000000000210435000002e00010009c000002e00100804100000040011002100000000002000414000002e00020009c000002e002008041000000c002200210000000000112019f000002e5011001c70000800d0200003900000003030000390000034504000041000000000500041100000003060000290b7a0b700000040f000000010020019000000a070000613d000000000001042d000000000100001900000b7c00010430000000400100043d00000064021000390000034a0300004100000000003204350000004402100039000003490300004100000000003204350000002402100039000000240300003900000a1c0000013d000000400100043d000000640210003900000347030000410000000000320435000000440210003900000346030000410000000000320435000000240210003900000022030000390000000000320435000002e9020000410000000000210435000000040210003900000020030000390000000000320435000002e00010009c000002e001008041000000400110021000000340011001c700000b7c000104300000033101000041000000000010043f0000001101000039000000040010043f0000032b0100004100000b7c000104300003000000000002000100000003001d000300000002001d0000031a01100197000200000001001d000000000010043f0000000101000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f000000010020019000000a8c0000613d000000000101043b00000003020000290000031a02200197000300000002001d000000000020043f000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f000000010020019000000a8c0000613d000000000101043b000000000101041a000003540010009c00000a8b0000613d000000010110006c00000a8e0000413d000100000001001d0000000001000410000000030010006b00000a8c0000613d000000020000006b00000a9f0000613d000000030000006b00000aa90000613d0000000201000029000000000010043f0000000101000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f000000010020019000000a8c0000613d000000000101043b0000000302000029000000000020043f000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f000000010020019000000a8c0000613d000000000101043b0000000102000029000000000021041b000000400100043d0000000000210435000002e00010009c000002e00100804100000040011002100000000002000414000002e00020009c000002e002008041000000c002200210000000000112019f000002e5011001c70000800d0200003900000003030000390000034504000041000000020500002900000003060000290b7a0b700000040f000000010020019000000a8c0000613d000000000001042d000000000100001900000b7c00010430000000400100043d00000044021000390000035803000041000000000032043500000024021000390000001d030000390000000000320435000002e9020000410000000000210435000000040210003900000020030000390000000000320435000002e00010009c000002e0010080410000004001100210000002ea011001c700000b7c00010430000000400100043d00000064021000390000034a0300004100000000003204350000004402100039000003490300004100000000003204350000002402100039000000240300003900000ab20000013d000000400100043d000000640210003900000347030000410000000000320435000000440210003900000346030000410000000000320435000000240210003900000022030000390000000000320435000002e9020000410000000000210435000000040210003900000020030000390000000000320435000002e00010009c000002e001008041000000400110021000000340011001c700000b7c000104300003000000000002000300000002001d0000031a0310019800000afb0000613d000000000030043f000000200000043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c70000801002000039000200000003001d0b7a0b750000040f000000010020019000000af90000613d0000000202000029000000000101043b000000000101041a000100030010007400000b050000413d000000000020043f000000200000043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f000000010020019000000af90000613d000000000101043b0000000102000029000000000021041b0000000201000039000000000201041a00000003030000290000000002320049000000000021041b000000400100043d0000000000310435000002e00010009c000002e00100804100000040011002100000000002000414000002e00020009c000002e002008041000000c002200210000000000112019f000002e5011001c70000800d0200003900000003030000390000033604000041000000020500002900000000060000190b7a0b700000040f000000010020019000000af90000613d000000000001042d000000000100001900000b7c00010430000000400100043d00000064021000390000035b03000041000000000032043500000044021000390000035c0300004100000000003204350000002402100039000000210300003900000b0e0000013d000000400100043d00000064021000390000035903000041000000000032043500000044021000390000035a030000410000000000320435000000240210003900000022030000390000000000320435000002e9020000410000000000210435000000040210003900000020030000390000000000320435000002e00010009c000002e001008041000000400110021000000340011001c700000b7c00010430000000000010043f0000000801000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f000000010020019000000b2b0000613d000000000101043b000000000101041a000000000001004b0000000001000039000000010100c039000000000001042d000000000100001900000b7c00010430000000000010043f0000000a01000039000000200010043f0000000001000414000002e00010009c000002e001008041000000c0011002100000031b011001c700008010020000390b7a0b750000040f000000010020019000000b3f0000613d000000000101043b000000000101041a000000000001004b0000000001000039000000010100c039000000000001042d000000000100001900000b7c00010430000000000001042f000002e00010009c000002e0010080410000004001100210000002e00020009c000002e0020080410000006002200210000000000112019f0000000002000414000002e00020009c000002e002008041000000c002200210000000000112019f0000031d011001c700008010020000390b7a0b750000040f000000010020019000000b550000613d000000000101043b000000000001042d000000000100001900000b7c0001043000000000050100190000000000200443000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000031004b00000b5a0000413d000002e00030009c000002e00300804100000060013002100000000002000414000002e00020009c000002e002008041000000c002200210000000000112019f0000035d011001c700000000020500190b7a0b750000040f000000010020019000000b6f0000613d000000000101043b000000000001042d000000000001042f00000b73002104210000000102000039000000000001042d0000000002000019000000000001042d00000b78002104230000000102000039000000000001042d0000000002000019000000000001042d00000b7a0000043200000b7b0001042e00000b7c0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffff80000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000020000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000002000000000000000000000000000000c000000100000000000000000043616e6e6f7420736574206f776e657220746f207a65726f000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000079cc678f00000000000000000000000000000000000000000000000000000000c2e3273c00000000000000000000000000000000000000000000000000000000d73dd62200000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f81094f300000000000000000000000000000000000000000000000000000000d73dd62300000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000c64d0ebb00000000000000000000000000000000000000000000000000000000c64d0ebc00000000000000000000000000000000000000000000000000000000d5abeb0100000000000000000000000000000000000000000000000000000000c2e3273d00000000000000000000000000000000000000000000000000000000c630948d000000000000000000000000000000000000000000000000000000009dc29fab00000000000000000000000000000000000000000000000000000000a9059cba00000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000aa271e1a000000000000000000000000000000000000000000000000000000009dc29fac00000000000000000000000000000000000000000000000000000000a457c2d7000000000000000000000000000000000000000000000000000000008da5cb5a000000000000000000000000000000000000000000000000000000008da5cb5b0000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000079cc67900000000000000000000000000000000000000000000000000000000086fe8b430000000000000000000000000000000000000000000000000000000040c10f1800000000000000000000000000000000000000000000000000000000661884620000000000000000000000000000000000000000000000000000000070a082300000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000079ba50970000000000000000000000000000000000000000000000000000000066188463000000000000000000000000000000000000000000000000000000006b32810b0000000000000000000000000000000000000000000000000000000043346149000000000000000000000000000000000000000000000000000000004334614a000000000000000000000000000000000000000000000000000000004f5632f80000000000000000000000000000000000000000000000000000000040c10f190000000000000000000000000000000000000000000000000000000042966c680000000000000000000000000000000000000000000000000000000023b872dc00000000000000000000000000000000000000000000000000000000395093500000000000000000000000000000000000000000000000000000000039509351000000000000000000000000000000000000000000000000000000004000aea00000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000095ea7b200000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000001ffc9a70000000000000000000000000000000000000000000000000000000006fdde03000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0200000000000000000000000000000000000040000000000000000000000000599336d74a1247d50642b66dd6abeaa5484f6bd96b415b31bb99e26578c939790200000000000000000000000000000000000000000000000000000000000000ed998b960f6340d045f620c119730f7aa7995e7425c2401d3a5b64ff998a59e9ed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127843616e6e6f74207472616e7366657220746f2073656c6600000000000000000000000000000000000000000000000000000000640000008000000000000000000000000000000000000000000000000000000020000000800000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e91eabfe8e493f369f48e58fdf2609ff8809506ce57440a6f25fddc25308a385192308bb7573b2a3d17ddb868b39d8ebec433f3194421abc22d084f89658c9bad599336d74a1247d50642b66dd6abeaa5484f6bd96b415b31bb99e26578c93978e46fef8bbff1389d9010703cf8ebb363fb3daf5bf56edc27080b67bc8d9251ea4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000000000000000000000000000000000000000000020000000000000000000000000c820b10b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af4d7573742062652070726f706f736564206f776e6572000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6884e487b710000000000000000000000000000000000000000000000000000000091eabfe8e493f369f48e58fdf2609ff8809506ce57440a6f25fddc25308a38520a675452746933cefe3d74182e78db7afe57ba60eaa4234b5d85e9aa41b0610c0200000200000000000000000000000000000044000000000000000000000000cbbf111300000000000000000000000000000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206d696e7420746f20746865207a65726f206164647265737300e2c8c9d500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c161806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000a4c0ed3600000000000000000000000000000000000000000000000000000000616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e74206578636565647320620000000000000000000000000000000000000084000000000000000000000000657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472647265737300000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d20746865207a65726f2061648c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92545524332303a20617070726f766520746f20746865207a65726f2061646472657373000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f206164647265737300000000000000000000000000000000000000000000000000000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff4000ae9fffffffffffffffffffffffffffffffffffffffffffffffffffffffff4000aea000000000000000000000000000000000000000000000000000000000e6599b4d0000000000000000000000000000000000000000000000000000000001ffc9a70000000000000000000000000000000000000000000000000000000036372b0700000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f7745524332303a20696e73756666696369656e7420616c6c6f77616e6365000000636500000000000000000000000000000000000000000000000000000000000045524332303a206275726e20616d6f756e7420657863656564732062616c616e730000000000000000000000000000000000000000000000000000000000000045524332303a206275726e2066726f6d20746865207a65726f20616464726573020000020000000000000000000000000000000000000000000000000000000008e55414202411cd1d2d170a0b9e68376f11ee9853818eea24d0613deb7f9ff6") diff --git a/gethwrappers/shared/generated/link_token/link_token_zksync.go b/gethwrappers/shared/generated/link_token/link_token_zksync.go new file mode 100644 index 0000000000..b25ee42d87 --- /dev/null +++ b/gethwrappers/shared/generated/link_token/link_token_zksync.go @@ -0,0 +1,61 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. +package link_token + +import ( + "context" + "crypto/rand" + "fmt" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/zksync-sdk/zksync2-go/accounts" + "github.com/zksync-sdk/zksync2-go/clients" + "github.com/zksync-sdk/zksync2-go/types" +) + +func DeployLinkTokenZk(deployOpts *accounts.TransactOpts, client *clients.Client, wallet *accounts.Wallet, backend bind.ContractBackend, args ...interface{}) (common.Address, *types.Receipt, *LinkToken, error) { + var calldata []byte + if len(args) > 0 { + abi, err := LinkTokenMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + calldata, err = abi.Pack("", args...) + if err != nil { + return common.Address{}, nil, nil, err + } + } + + salt := make([]byte, 32) + n, err := rand.Read(salt) + if err != nil { + return common.Address{}, nil, nil, err + } + if n != len(salt) { + return common.Address{}, nil, nil, fmt.Errorf("failed to read random bytes: expected %d, got %d", len(salt), n) + } + + txHash, err := wallet.Deploy(deployOpts, accounts.Create2Transaction{ + Bytecode: ZkBytecode, + Calldata: calldata, + Salt: salt, + }) + if err != nil { + return common.Address{}, nil, nil, err + } + + receipt, err := client.WaitMined(context.Background(), txHash) + if err != nil { + return common.Address{}, nil, nil, err + } + + address := receipt.ContractAddress + contract, err := NewLinkToken(address, backend) + if err != nil { + return common.Address{}, nil, nil, err + } + + return address, receipt, contract, nil +} + +var ZkBytecode = common.Hex2Bytes("0002000000000002000800000000000200010000000103550000006003100270000002ab0030019d00000001002001900000003a0000c13d000002ab023001970000008003000039000000400030043f000000040020008c000004f40000413d000000000301043b000000e003300270000002b70030009c000000570000213d000002cf0030009c0000009c0000213d000002db0030009c000001810000213d000002e10030009c000001d00000213d000002e40030009c000003550000613d000002e50030009c000004f40000c13d0000000001000416000000000001004b000004f40000c13d0000000303000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0010008c00000000060000390000000106002039000000000662013f0000000100600190000000510000c13d000000800010043f000000000005004b000001f20000613d000000000030043f000000020020008c000005730000413d000003190200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000014004b000000310000413d000005d10000013d0000000001000416000000000001004b000004f40000c13d0000000f01000039000000c00010043f000002ac01000041000000e00010043f0000014001000039000000400010043f0000000406000039000001000060043f000002ad01000041000001200010043f0000000303000039000000000103041a000000010210019000000001041002700000007f0440618f0000001f0040008c00000000010000390000000101002039000000000012004b000000750000613d000002fe01000041000000000010043f0000002201000039000000040010043f000002f80100004100000aaa00010430000002b80030009c000000c10000213d000002c40030009c000001980000213d000002ca0030009c000001dc0000213d000002cd0030009c000003680000613d000002ce0030009c000004f40000c13d0000000001000416000000000001004b000004f40000c13d0000000902000039000000000102041a000000800010043f000000000020043f000000000001004b000001ae0000613d000000a004000039000002fa0200004100000000030000190000000005040019000000000402041a000000000445043600000001022000390000000103300039000000000013004b0000006d0000413d000005420000013d000000200040008c0000008f0000413d000400000004001d000000000030043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002ae011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b00000004020000290000001f0220003900000005022002700000000002210019000000000021004b000000040600003900000003030000390000008f0000813d000000000001041b0000000101100039000000000021004b0000008b0000413d000000e00100043d000002af011001970000001e011001bf000000000013041b000001000400043d000002b00040009c000001430000413d000002fe01000041000000000010043f0000004101000039000000040010043f000002f80100004100000aaa00010430000002d00030009c0000019f0000213d000002d60030009c000001f80000213d000002d90030009c0000037b0000613d000002da0030009c000004f40000c13d000000240020008c000004f40000413d0000000001000416000000000001004b000004f40000c13d0000000001000411000000000010043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b000000000101041a000000000001004b000004220000613d00000004010000390000000101100367000000000201043b00000000010004110aa809eb0000040f000000000100001900000aa90001042e000002b90030009c000001b00000213d000002bf0030009c000002430000213d000002c20030009c0000039c0000613d000002c30030009c000004f40000c13d000000240020008c000004f40000413d0000000002000416000000000002004b000004f40000c13d0000000401100370000000000101043b000400000001001d000002e60010009c000004f40000213d0000000501000039000000000101041a000002e6011001970000000002000411000000000012004b000005660000c13d0000000401000029000000000010043f0000000801000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b000000000101041a000000000001004b000001100000c13d0000000701000039000000000201041a000002f00020009c000000960000213d0000000103200039000000000031041b000002f30220009a0000000403000029000000000032041b000000000101041a000300000001001d000000000030043f0000000801000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b0000000302000029000000000021041b0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e9011001c70000800d020000390000000203000039000002f40400004100000004050000290aa80a9e0000040f0000000100200190000004f40000613d0000000501000039000000000101041a000002e6011001970000000002000411000000000012004b000006280000c13d0000000401000029000000000010043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b000000000101041a000000000001004b000006530000c13d0000000901000039000000000201041a000002f00020009c000000960000213d0000000103200039000000000031041b000002f10220009a0000000403000029000000000032041b000000000101041a000300000001001d000000000030043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b0000000302000029000000000021041b0000000001000414000004ae0000013d000000000106041a000000010010019000000001031002700000007f0330618f0000001f0030008c00000000020000390000000102002039000000000121013f0000000100100190000000510000c13d000000200030008c0000016d0000413d000300000003001d000400000004001d000000000060043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002ae011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d00000004040000290000001f024000390000000502200270000000200040008c0000000002004019000000000301043b00000003010000290000001f01100039000000050110027000000000011300190000000002230019000000000012004b00000004060000390000016d0000813d000000000002041b0000000102200039000000000012004b000001690000413d0000001f0040008c0000034a0000a13d000400000004001d000000000060043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002ae011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d00000004070000290000032002700198000000000101043b000004f60000c13d00000120030000390000000406000039000005050000013d000002dc0030009c000002570000213d000002df0030009c000003e00000613d000002e00030009c000004f40000c13d0000000001000416000000000001004b000004f40000c13d0000000001000412000800000001001d000700000000003d000080050100003900000044030000390000000004000415000000080440008a0000000504400210000002ef020000410aa80a850000040f000000ff0110018f000000800010043f000002ee0100004100000aa90001042e000002c50030009c000002e90000213d000002c80030009c000004040000613d000002c90030009c000003490000613d000004f40000013d000002d10030009c000002f80000213d000002d40030009c000003490000613d000002d50030009c000004f40000c13d0000000001000416000000000001004b000004f40000c13d0000000702000039000000000102041a000000800010043f000000000020043f000000000001004b000005380000c13d0000002002000039000005430000013d000002ba0030009c000003190000213d000002bd0030009c0000042d0000613d000002be0030009c000004f40000c13d000000440020008c000004f40000413d0000000002000416000000000002004b000004f40000c13d0000000402100370000000000202043b000002e60020009c000004f40000213d0000002401100370000000000101043b000400000001001d000002e60010009c000004f40000213d000000000020043f0000000101000039000000200010043f000000400200003900000000010000190aa80a700000040f0000000402000029000000000020043f000000200010043f00000000010000190000004002000039000004e60000013d000002e20030009c0000043c0000613d000002e30030009c000004f40000c13d0000000001000416000000000001004b000004f40000c13d0000000201000039000000000101041a000000800010043f000002ee0100004100000aa90001042e000002cb0030009c0000045b0000613d000002cc0030009c000004f40000c13d0000000001000416000000000001004b000004f40000c13d0000000403000039000000000203041a000000010520019000000001012002700000007f0410018f00000000010460190000001f0010008c00000000060000390000000106002039000000000662013f0000000100600190000000510000c13d000000800010043f000000000005004b000005700000c13d0000032101200197000000a00010043f000000000004004b000000c001000039000000a001006039000005d20000013d000002d70030009c000004640000613d000002d80030009c000004f40000c13d000000240020008c000004f40000413d0000000002000416000000000002004b000004f40000c13d0000000401100370000000000101043b000400000001001d000002e60010009c000004f40000213d0000000501000039000000000101041a000002e6011001970000000002000411000000000012004b000005660000c13d0000000401000029000000000010043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b000000000101041a000300000001001d000000000001004b000006530000613d0000000901000039000000000201041a000000000002004b000003430000613d0000000303000029000000010130008a000000000032004b000006820000c13d0000000302000029000002ff0220009a000000000002041b0000000902000039000000000012041b0000000401000029000000000010043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b000000000001041b0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e9011001c70000800d02000039000000020300003900000300040000410000064f0000013d000002c00030009c000004720000613d000002c10030009c000004f40000c13d0000000001000416000000000001004b000004f40000c13d0000000001000412000600000001001d000500200000003d000080050100003900000044030000390000000004000415000000060440008a0000000504400210000002ef020000410aa80a850000040f000000800010043f000002ee0100004100000aa90001042e000002dd0030009c000004b60000613d000002de0030009c000004f40000c13d000000640020008c000004f40000413d0000000003000416000000000003004b000004f40000c13d0000000403100370000000000303043b000400000003001d000002e60030009c000004f40000213d0000002403100370000000000303043b000300000003001d0000004403100370000000000403043b000002f00040009c000004f40000213d0000002303400039000000000023004b000004f40000813d0000000405400039000000000351034f000000000303043b000002f00030009c000000960000213d0000001f0630003900000320066001970000003f066000390000032006600197000003060060009c000000960000213d0000008006600039000000400060043f000000800030043f00000000043400190000002404400039000000000024004b000004f40000213d0000002002500039000000000221034f00000320043001980000001f0530018f000000a0014000390000028d0000613d000000a006000039000000000702034f000000007807043c0000000006860436000000000016004b000002890000c13d000000000005004b0000029a0000613d000000000242034f0000000304500210000000000501043300000000054501cf000000000545022f000000000202043b0000010004400089000000000242022f00000000024201cf000000000252019f0000000000210435000000a0013000390000000000010435000000040100002900000003020000290aa808600000040f000000400100043d000000200210003900000040030000390000000000320435000000030200002900000000002104350000004003100039000000800200043d000000000023043500000000070004110000006003100039000000000002004b000002b40000613d00000000040000190000000005340019000000a006400039000000000606043300000000006504350000002004400039000000000024004b000002ad0000413d0000001f042000390000032004400197000000000232001900000000000204350000006002400039000002ab0020009c000002ab020080410000006002200210000002ab0010009c000002ab010080410000004001100210000000000112019f0000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002e9011001c70000800d0200003900000003030000390000030704000041000000000507001900000004060000290aa80a9e0000040f0000000100200190000004f40000613d00000308010000410000000000100443000000040100002900000004001004430000000001000414000002ab0010009c000002ab01008041000000c00110021000000309011001c700008002020000390aa80aa30000040f00000001002001900000076d0000613d000000000101043b000000000001004b000007260000c13d000000400100043d000002ab0010009c000300000001001d000002ab0100804100020040001002180000000101000039000000030200002900000000001204350000000201000029000002f6011001c700000aa90001042e000002c60030009c000004c40000613d000002c70030009c000004f40000c13d000000240020008c000004f40000413d0000000002000416000000000002004b000004f40000c13d0000000401100370000000000101043b000002e60010009c000004f40000213d0aa80a470000040f0000046e0000013d000002d20030009c000004d90000613d000002d30030009c000004f40000c13d0000000001000416000000000001004b000004f40000c13d0000000601000039000000000201041a000002e6032001970000000006000411000000000036004b0000054a0000c13d0000000503000039000000000403041a000002b105400197000000000565019f000000000053041b000002b102200197000000000021041b0000000001000414000002e605400197000002ab0010009c000002ab01008041000000c001100210000002e9011001c70000800d020000390000000303000039000002fc040000410aa80a9e0000040f0000000100200190000006530000c13d000004f40000013d000002bb0030009c000004eb0000613d000002bc0030009c000004f40000c13d000000240020008c000004f40000413d0000000002000416000000000002004b000004f40000c13d0000000401100370000000000101043b000400000001001d000002e60010009c000004f40000213d0000000501000039000000000101041a000002e6011001970000000002000411000000000012004b000005660000c13d0000000401000029000000000010043f0000000801000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b000000000101041a000300000001001d000000000001004b000006530000613d0000000701000039000000000201041a000000000002004b0000062f0000c13d000002fe01000041000000000010043f0000001101000039000000040010043f000002f80100004100000aaa000104300aa807b50000040f000000000004004b00000000010000190000034e0000613d000001200100043d0000000302400210000003220220027f0000032202200167000000000121016f0000000102400210000000000121019f000005100000013d000000240020008c000004f40000413d0000000002000416000000000002004b000004f40000c13d0000000401100370000000000201043b0000031a00200198000004f40000c13d00000001010000390000031b0020009c000005750000213d0000031e0020009c000004e80000613d0000031f0020009c000000000100c019000000800010043f000002ee0100004100000aa90001042e000000440020008c000004f40000413d0000000002000416000000000002004b000004f40000c13d0000000402100370000000000202043b000400000002001d000002e60020009c000004f40000213d0000002401100370000000000101043b000300000001001d0000000001000411000000000010043f0000000a01000039000000200010043f0000000001000414000004160000013d000000440020008c000004f40000413d0000000002000416000000000002004b000004f40000c13d0000000402100370000000000202043b000400000002001d000002e60020009c000004f40000213d0000002401100370000000000101043b000300000001001d0000000001000411000000000010043f0000000801000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b000000000101041a000000000001004b000005850000c13d000000400100043d0000030502000041000004240000013d000000240020008c000004f40000413d0000000002000416000000000002004b000004f40000c13d0000000401100370000000000101043b000400000001001d000002e60010009c000004f40000213d0000000501000039000000000101041a000002e6011001970000000002000411000000000012004b000005660000c13d0000000401000029000000000010043f0000000801000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b000000000101041a000000000001004b000006530000c13d0000000701000039000000000201041a000002f00020009c000000960000213d0000000103200039000000000031041b000002f30220009a0000000403000029000000000032041b000000000101041a000300000001001d000000000030043f0000000801000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b0000000302000029000000000021041b0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e9011001c70000800d020000390000000203000039000002f4040000410000064f0000013d000000640020008c000004f40000413d0000000002000416000000000002004b000004f40000c13d0000000402100370000000000202043b000400000002001d000002e60020009c000004f40000213d0000002402100370000000000202043b000300000002001d000002e60020009c000004f40000213d0000004401100370000000000301043b00000000020004110000000401000029000200000003001d0aa8095b0000040f0000000001000410000000030010006b000004f40000613d000000040000006b000005e50000c13d000000400100043d000000640210003900000311030000410000000000320435000000440210003900000312030000410000000000320435000000240210003900000025030000390000066e0000013d000000440020008c000004f40000413d0000000002000416000000000002004b000004f40000c13d0000000402100370000000000202043b000400000002001d000002e60020009c000004f40000213d0000002401100370000000000101043b000300000001001d0000000001000411000000000010043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b000000000101041a000000000001004b0000057c0000c13d000000400100043d000002f7020000410000000000210435000000040210003900000000030004110000000000320435000002ab0010009c000002ab010080410000004001100210000002f8011001c700000aaa00010430000000440020008c000004f40000413d0000000002000416000000000002004b000004f40000c13d0000000402100370000000000302043b000002e60030009c000004f40000213d0000002401100370000000000201043b00000000010300190aa808d70000040f000000000100001900000aa90001042e000000440020008c000004f40000413d0000000002000416000000000002004b000004f40000c13d0000000402100370000000000202043b000400000002001d000002e60020009c000004f40000213d0000002401100370000000000101043b000300000001001d0000000001000410000000040010006b000004f40000613d0000000002000411000000000002004b000005a80000c13d000002b501000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f0000031701000041000000c40010043f0000031801000041000000e40010043f000003160100004100000aaa000104300000000001000416000000000001004b000004f40000c13d0000000501000039000000000101041a000002e601100197000000800010043f000002ee0100004100000aa90001042e000000240020008c000004f40000413d0000000002000416000000000002004b000004f40000c13d0000000401100370000000000101043b000002e60010009c000004f40000213d0aa80a5b0000040f000000000001004b0000000001000039000000010100c039000004d20000013d000000240020008c000004f40000413d0000000002000416000000000002004b000004f40000c13d0000000401100370000000000101043b000400000001001d000002e60010009c000004f40000213d0000000501000039000000000101041a000002e6011001970000000002000411000000000012004b000005660000c13d0000000401000029000000000010043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b000000000101041a000000000001004b000006530000c13d0000000901000039000000000201041a000002f00020009c000000960000213d0000000103200039000000000031041b000002f10220009a0000000403000029000000000032041b000000000101041a000300000001001d000000000030043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b0000000302000029000000000021041b0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e9011001c70000800d020000390000000203000039000002f2040000410000064f0000013d000000440020008c000004f40000413d0000000002000416000000000002004b000004f40000c13d0000000402100370000000000302043b000002e60030009c000004f40000213d0000002401100370000000000201043b00000000010300190aa808d70000040f000004d10000013d000000440020008c000004f40000413d0000000002000416000000000002004b000004f40000c13d0000000402100370000000000302043b000002e60030009c000004f40000213d0000002401100370000000000201043b00000000010300190aa808600000040f0000000101000039000000400200043d0000000000120435000002ab0020009c000002ab020080410000004001200210000002f6011001c700000aa90001042e000000240020008c000004f40000413d0000000002000416000000000002004b000004f40000c13d0000000401100370000000000101043b000002e60010009c000004f40000213d000000000010043f000000200000043f000000400200003900000000010000190aa80a700000040f000000000101041a000000800010043f000002ee0100004100000aa90001042e000000240020008c000004f40000413d0000000002000416000000000002004b000004f40000c13d0000000401100370000000000601043b000002e60060009c000005540000a13d000000000100001900000aaa00010430000000010320008a00000005033002700000000003310019000000200400003900000001033000390000000406000039000000000504001900000100044000390000000004040433000000000041041b00000020045000390000000101100039000000000031004b000004fc0000c13d0000012003500039000000000072004b0000050e0000813d0000000302700210000000f80220018f000003220220027f00000322022001670000000003030433000000000223016f000000000021041b000000010170021000000001011001bf000000000016041b0000000001000411000000000001004b000005250000c13d000000400100043d0000004402100039000002b4030000410000000000320435000000240210003900000018030000390000000000320435000002b5020000410000000000210435000000040210003900000020030000390000000000320435000002ab0010009c000002ab010080410000004001100210000002b6011001c700000aaa000104300000000502000039000000000302041a000002b103300197000000000113019f000000000012041b0000001201000039000000800010043f000002b202000041000000a00020043f0000014000000443000001600010044300000020010000390000018000100443000001a000200443000001000010044300000002010000390000012000100443000002b30100004100000aa90001042e000000a004000039000002fd0200004100000000030000190000000005040019000000000402041a000000000445043600000001022000390000000103300039000000000013004b0000053b0000413d000000600250008a00000080010000390aa807a30000040f000000400100043d000400000001001d00000080020000390aa808500000040f000005db0000013d000002b501000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f000002fb01000041000000c40010043f000002ed0100004100000aaa000104300000000501000039000000000101041a000002e6011001970000000005000411000000000015004b000005660000c13d000000000056004b000005b60000c13d000002b501000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f000002ec01000041000000c40010043f000002ed0100004100000aaa00010430000002b501000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f000002f501000041000000c40010043f000002ed0100004100000aaa00010430000000000030043f000000020020008c000005c70000813d000000a001000039000005d20000013d0000031c0020009c000004e80000613d0000031d0020009c000004e80000613d000000800000043f000002ee0100004100000aa90001042e0000000401000029000000000200041100000003030000290aa8095b0000040f000000040100002900000003020000290aa809eb0000040f000000000100001900000aa90001042e0000000001000410000000040010006b000004f40000613d000002ef01000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000002ab0010009c000002ab01008041000000c00110021000000301011001c700008005020000390aa80aa30000040f00000001002001900000076d0000613d000000000101043b000000000001004b000006790000613d0000000202000039000000000202041a0000000303000029000000000032001a000003430000413d0000000002320019000000000012004b000006790000a13d000000400100043d0000030203000041000000000031043500000004031000390000000000230435000004280000013d000000040000006b000005f10000c13d000002b501000041000000800010043f0000002001000039000000840010043f0000002201000039000000a40010043f0000031401000041000000c40010043f0000031501000041000000e40010043f000003160100004100000aaa000104300000000601000039000000000201041a000002b102200197000000000262019f000000000021041b0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e9011001c70000800d020000390000000303000039000002eb040000410aa80a9e0000040f0000000100200190000006530000c13d000004f40000013d000002f90200004100000000040000190000000003040019000000000402041a000000a005300039000000000045043500000001022000390000002004300039000000000014004b000005c90000413d000000c001300039000000800210008a00000080010000390aa807a30000040f0000002001000039000000400200043d000400000002001d000000000212043600000080010000390aa807910000040f00000004020000290000000001210049000002ab0010009c000002ab010080410000006001100210000002ab0020009c000002ab020080410000004002200210000000000121019f00000aa90001042e000000030000006b000006550000c13d000000400100043d00000064021000390000030f030000410000000000320435000000440210003900000310030000410000000000320435000000240210003900000023030000390000066e0000013d000000000020043f0000000101000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b0000000402000029000000000020043f000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b0000000302000029000000000021041b000000400100043d0000000000210435000002ab0010009c000002ab0100804100000040011002100000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002ae011001c70000800d0200003900000003030000390000031304000041000000000500041100000004060000290aa80a9e0000040f0000000100200190000004f40000613d000000400100043d00000001020000390000000000210435000002ab0010009c000002ab010080410000004001100210000002f6011001c700000aa90001042e000000400100043d0000004402100039000002f5030000410000000000320435000000240210003900000016030000390000051a0000013d0000000303000029000000010130008a000000000032004b000006a00000c13d0000000302000029000002e80220009a000000000002041b0000000702000039000000000012041b0000000401000029000000000010043f0000000801000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b000000000001041b0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e9011001c70000800d020000390000000203000039000002ea0400004100000004050000290aa80a9e0000040f0000000100200190000004f40000613d000000000100001900000aa90001042e0000000401000029000000000010043f000000200000043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b000000000101041a0001000200100074000006f30000813d000000400100043d00000064021000390000030c03000041000000000032043500000044021000390000030d030000410000000000320435000000240210003900000026030000390000000000320435000002b5020000410000000000210435000000040210003900000020030000390000000000320435000002ab0010009c000002ab0100804100000040011002100000030e011001c700000aaa00010430000000040000006b000006c70000c13d000000400100043d00000044021000390000030403000041000000000032043500000024021000390000001f030000390000051a0000013d000000000012004b000006c10000a13d0000000301000029000002ff0110009a000002ff0220009a000000000202041a000000000021041b000000000020043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b0000000302000029000000000021041b0000000901000039000000000101041a000300000001001d000000000001004b000006bb0000613d0000000301000029000000010110008a000002260000013d000000000012004b000006c10000a13d0000000301000029000002e80110009a000002e80220009a000000000202041a000000000021041b000000000020043f0000000801000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b0000000302000029000000000021041b0000000701000039000000000101041a000300000001001d000000000001004b0000076e0000c13d000002fe01000041000000000010043f0000003101000039000000040010043f000002f80100004100000aaa00010430000002fe01000041000000000010043f0000003201000039000000040010043f000002f80100004100000aaa000104300000000201000039000000000201041a0000000303000029000000000032001a000003430000413d0000000002320019000000000021041b0000000401000029000000000010043f000000200000043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b000000000201041a00000003030000290000000002320019000000000021041b000000400100043d0000000000310435000002ab0010009c000002ab0100804100000040011002100000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002ae011001c70000800d0200003900000003030000390000030304000041000000000500001900000004060000290aa80a9e0000040f0000000100200190000006530000c13d000004f40000013d0000000401000029000000000010043f000000200000043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b0000000102000029000000000021041b0000000301000029000000000010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000004f40000613d000000000101043b000000000201041a00000002030000290000000002320019000000000021041b000000400100043d0000000000310435000002ab0010009c000002ab0100804100000040011002100000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002ae011001c70000800d0200003900000003030000390000030304000041000000040500002900000003060000290aa80a9e0000040f0000000100200190000006200000c13d000004f40000013d00000308010000410000000000100443000000040100002900000004001004430000000001000414000002ab0010009c000002ab01008041000000c00110021000000309011001c700008002020000390aa80aa30000040f00000001002001900000076d0000613d000000000101043b000000000001004b000004f40000613d000000400300043d0000004401300039000000600200003900000000002104350000002401300039000000030200002900000000002104350000030a0100004100000000001304350000000401300039000000000200041100000000002104350000006402300039000000800100043d0000000000120435000300000003001d0000008402300039000000000001004b000007510000613d00000000030000190000000004230019000000a005300039000000000505043300000000005404350000002003300039000000000013004b0000074a0000413d000000000221001900000000000204350000001f0110003900000320011001970000008401100039000002ab0010009c000002ab0100804100000060011002100000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f0000000302000029000002ab0020009c000002ab02008041000200400020021800000002011001af00000004020000290aa80a9e0000040f0000000100200190000007710000613d0000000301000029000002f00010009c000000960000213d0000000301000029000000400010043f000002e30000013d000000000001042f0000000301000029000000010110008a000006330000013d00000060061002700000001f0460018f0000030b05600198000000400200043d00000000035200190000077d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b000007790000c13d000002ab06600197000000000004004b0000078b0000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000006001600210000002ab0020009c000002ab020080410000004002200210000000000112019f00000aaa0001043000000000430104340000000001320436000000000003004b0000079d0000613d000000000200001900000000052100190000000006240019000000000606043300000000006504350000002002200039000000000032004b000007960000413d000000000231001900000000000204350000001f0230003900000320022001970000000001210019000000000001042d0000001f0220003900000320022001970000000001120019000000000021004b00000000020000390000000102004039000002f00010009c000007af0000213d0000000100200190000007af0000c13d000000400010043f000000000001042d000002fe01000041000000000010043f0000004101000039000000040010043f000002f80100004100000aaa0001043000020000000000020000000001000416000000000001004b000007fc0000c13d0000000001000031000003230010009c000007fc0000213d000000430010008c000007fc0000a13d00000001010003670000000402100370000000000202043b000200000002001d000002e60020009c000007fc0000213d0000002401100370000000000101043b000100000001001d0000000001000411000000000010043f0000000101000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000007fc0000613d000000000101043b0000000202000029000000000020043f000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000007fc0000613d000000000101043b000000000101041a000000010310006c000007f90000813d000000400100043d000000640210003900000324030000410000000000320435000000440210003900000325030000410000000000320435000000240210003900000025030000390000000000320435000002b5020000410000000000210435000000040210003900000020030000390000000000320435000002ab0010009c000002ab0100804100000040011002100000030e011001c700000aaa000104300000000001000410000000020010006b000007fe0000c13d000000000100001900000aaa000104300000000001000411000000000001004b0000080b0000c13d000000400100043d00000064021000390000031803000041000000000032043500000044021000390000031703000041000000000032043500000024021000390000002403000039000007ee0000013d000000020000006b000008170000c13d000000400100043d00000064021000390000031503000041000000000032043500000044021000390000031403000041000000000032043500000024021000390000002203000039000007ee0000013d0000000001000411000000000010043f0000000101000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c70000801002000039000100000003001d0aa80aa30000040f0000000100200190000007fc0000613d000000000101043b0000000202000029000000000020043f000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f00000001030000290000000100200190000007fc0000613d000000000101043b000000000031041b000000400100043d0000000000310435000002ab0010009c000002ab0100804100000040011002100000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002ae011001c70000800d0200003900000003030000390000031304000041000000000500041100000002060000290aa80a9e0000040f0000000100200190000007fc0000613d000000400100043d00000001020000390000000000210435000002ab0010009c000002ab010080410000004001100210000002f6011001c700000aa90001042e00000020030000390000000004310436000000000302043300000000003404350000004001100039000000000003004b0000085f0000613d000000000400001900000020022000390000000005020433000002e60550019700000000015104360000000104400039000000000034004b000008580000413d000000000001042d0003000000000002000200000002001d000302e60010019b0000000001000410000000030010006b000008ad0000613d0000000002000411000000000002004b000008af0000613d000000030000006b000008b90000613d000000000020043f000000200000043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000008ad0000613d000000000101043b000000000101041a0001000200100074000008c30000413d0000000001000411000000000010043f000000200000043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000008ad0000613d000000000101043b0000000102000029000000000021041b0000000301000029000000000010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000008ad0000613d000000000101043b000000000201041a00000002030000290000000002320019000000000021041b000000400100043d0000000000310435000002ab0010009c000002ab0100804100000040011002100000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002ae011001c70000800d0200003900000003030000390000030304000041000000000500041100000003060000290aa80a9e0000040f0000000100200190000008ad0000613d000000000001042d000000000100001900000aaa00010430000000400100043d00000064021000390000031103000041000000000032043500000044021000390000031203000041000000000032043500000024021000390000002503000039000008cc0000013d000000400100043d00000064021000390000030f03000041000000000032043500000044021000390000031003000041000000000032043500000024021000390000002303000039000008cc0000013d000000400100043d00000064021000390000030c03000041000000000032043500000044021000390000030d030000410000000000320435000000240210003900000026030000390000000000320435000002b5020000410000000000210435000000040210003900000020030000390000000000320435000002ab0010009c000002ab0100804100000040011002100000030e011001c700000aaa000104300003000000000002000200000002001d000300000001001d0000000001000411000000000010043f0000000101000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000009350000613d000000000101043b0000000302000029000002e602200197000300000002001d000000000020043f000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000009350000613d000000000101043b000000000201041a000000020020002a000009550000413d000100000002001d0000000001000410000000030010006b000009350000613d0000000001000411000000000001004b000009370000613d000000030000006b000009410000613d0000000001000411000000000010043f0000000101000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000009350000613d000000000101043b0000000302000029000000000020043f000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000009350000613d00000001030000290000000202300029000000000101043b000000000021041b000000400100043d0000000000210435000002ab0010009c000002ab0100804100000040011002100000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002ae011001c70000800d0200003900000003030000390000031304000041000000000500041100000003060000290aa80a9e0000040f0000000100200190000009350000613d000000000001042d000000000100001900000aaa00010430000000400100043d000000640210003900000318030000410000000000320435000000440210003900000317030000410000000000320435000000240210003900000024030000390000094a0000013d000000400100043d000000640210003900000315030000410000000000320435000000440210003900000314030000410000000000320435000000240210003900000022030000390000000000320435000002b5020000410000000000210435000000040210003900000020030000390000000000320435000002ab0010009c000002ab0100804100000040011002100000030e011001c700000aaa00010430000002fe01000041000000000010043f0000001101000039000000040010043f000002f80100004100000aaa000104300003000000000002000100000003001d000300000002001d000002e601100197000200000001001d000000000010043f0000000101000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000009ba0000613d000000000101043b0000000302000029000002e602200197000300000002001d000000000020043f000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000009ba0000613d000000000101043b000000000101041a000003220010009c000009b90000613d000000010110006c000009bc0000413d000100000001001d0000000001000410000000030010006b000009ba0000613d000000020000006b000009cd0000613d000000030000006b000009d70000613d0000000201000029000000000010043f0000000101000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000009ba0000613d000000000101043b0000000302000029000000000020043f000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f0000000100200190000009ba0000613d000000000101043b0000000102000029000000000021041b000000400100043d0000000000210435000002ab0010009c000002ab0100804100000040011002100000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002ae011001c70000800d0200003900000003030000390000031304000041000000020500002900000003060000290aa80a9e0000040f0000000100200190000009ba0000613d000000000001042d000000000100001900000aaa00010430000000400100043d00000044021000390000032603000041000000000032043500000024021000390000001d030000390000000000320435000002b5020000410000000000210435000000040210003900000020030000390000000000320435000002ab0010009c000002ab010080410000004001100210000002b6011001c700000aaa00010430000000400100043d00000064021000390000031803000041000000000032043500000044021000390000031703000041000000000032043500000024021000390000002403000039000009e00000013d000000400100043d000000640210003900000315030000410000000000320435000000440210003900000314030000410000000000320435000000240210003900000022030000390000000000320435000002b5020000410000000000210435000000040210003900000020030000390000000000320435000002ab0010009c000002ab0100804100000040011002100000030e011001c700000aaa000104300003000000000002000300000002001d000002e60310019800000a290000613d000000000030043f000000200000043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c70000801002000039000200000003001d0aa80aa30000040f000000010020019000000a270000613d0000000202000029000000000101043b000000000101041a000100030010007400000a330000413d000000000020043f000000200000043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f000000010020019000000a270000613d000000000101043b0000000102000029000000000021041b0000000201000039000000000201041a00000003030000290000000002320049000000000021041b000000400100043d0000000000310435000002ab0010009c000002ab0100804100000040011002100000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002ae011001c70000800d0200003900000003030000390000030304000041000000020500002900000000060000190aa80a9e0000040f000000010020019000000a270000613d000000000001042d000000000100001900000aaa00010430000000400100043d00000064021000390000032903000041000000000032043500000044021000390000032a0300004100000000003204350000002402100039000000210300003900000a3c0000013d000000400100043d000000640210003900000327030000410000000000320435000000440210003900000328030000410000000000320435000000240210003900000022030000390000000000320435000002b5020000410000000000210435000000040210003900000020030000390000000000320435000002ab0010009c000002ab0100804100000040011002100000030e011001c700000aaa00010430000000000010043f0000000801000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f000000010020019000000a590000613d000000000101043b000000000101041a000000000001004b0000000001000039000000010100c039000000000001042d000000000100001900000aaa00010430000000000010043f0000000a01000039000000200010043f0000000001000414000002ab0010009c000002ab01008041000000c001100210000002e7011001c700008010020000390aa80aa30000040f000000010020019000000a6d0000613d000000000101043b000000000101041a000000000001004b0000000001000039000000010100c039000000000001042d000000000100001900000aaa00010430000000000001042f000002ab0010009c000002ab010080410000004001100210000002ab0020009c000002ab020080410000006002200210000000000112019f0000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f000002e9011001c700008010020000390aa80aa30000040f000000010020019000000a830000613d000000000101043b000000000001042d000000000100001900000aaa0001043000000000050100190000000000200443000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000031004b00000a880000413d000002ab0030009c000002ab0300804100000060013002100000000002000414000002ab0020009c000002ab02008041000000c002200210000000000112019f0000032b011001c700000000020500190aa80aa30000040f000000010020019000000a9d0000613d000000000101043b000000000001042d000000000001042f00000aa1002104210000000102000039000000000001042d0000000002000019000000000001042d00000aa6002104230000000102000039000000000001042d0000000002000019000000000001042d00000aa80000043200000aa90001042e00000aaa00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff436861696e4c696e6b20546f6b656e00000000000000000000000000000000004c494e4b000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000020000000000000000000000000ffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000033b2e3c9fd0803ce800000000000002000000000000000000000000000000c000000100000000000000000043616e6e6f7420736574206f776e657220746f207a65726f000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000079cc678f00000000000000000000000000000000000000000000000000000000c2e3273c00000000000000000000000000000000000000000000000000000000d73dd62200000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f81094f300000000000000000000000000000000000000000000000000000000d73dd62300000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000c64d0ebb00000000000000000000000000000000000000000000000000000000c64d0ebc00000000000000000000000000000000000000000000000000000000d5abeb0100000000000000000000000000000000000000000000000000000000c2e3273d00000000000000000000000000000000000000000000000000000000c630948d000000000000000000000000000000000000000000000000000000009dc29fab00000000000000000000000000000000000000000000000000000000a9059cba00000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000aa271e1a000000000000000000000000000000000000000000000000000000009dc29fac00000000000000000000000000000000000000000000000000000000a457c2d7000000000000000000000000000000000000000000000000000000008da5cb5a000000000000000000000000000000000000000000000000000000008da5cb5b0000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000079cc67900000000000000000000000000000000000000000000000000000000086fe8b430000000000000000000000000000000000000000000000000000000040c10f1800000000000000000000000000000000000000000000000000000000661884620000000000000000000000000000000000000000000000000000000070a082300000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000079ba50970000000000000000000000000000000000000000000000000000000066188463000000000000000000000000000000000000000000000000000000006b32810b0000000000000000000000000000000000000000000000000000000043346149000000000000000000000000000000000000000000000000000000004334614a000000000000000000000000000000000000000000000000000000004f5632f80000000000000000000000000000000000000000000000000000000040c10f190000000000000000000000000000000000000000000000000000000042966c680000000000000000000000000000000000000000000000000000000023b872dc00000000000000000000000000000000000000000000000000000000395093500000000000000000000000000000000000000000000000000000000039509351000000000000000000000000000000000000000000000000000000004000aea00000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000095ea7b200000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000001ffc9a70000000000000000000000000000000000000000000000000000000006fdde03000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0200000000000000000000000000000000000040000000000000000000000000599336d74a1247d50642b66dd6abeaa5484f6bd96b415b31bb99e26578c939790200000000000000000000000000000000000000000000000000000000000000ed998b960f6340d045f620c119730f7aa7995e7425c2401d3a5b64ff998a59e9ed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127843616e6e6f74207472616e7366657220746f2073656c6600000000000000000000000000000000000000000000000000000000640000008000000000000000000000000000000000000000000000000000000020000000800000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e000000000000000000000000000000000000000000000000ffffffffffffffff91eabfe8e493f369f48e58fdf2609ff8809506ce57440a6f25fddc25308a385192308bb7573b2a3d17ddb868b39d8ebec433f3194421abc22d084f89658c9bad599336d74a1247d50642b66dd6abeaa5484f6bd96b415b31bb99e26578c93978e46fef8bbff1389d9010703cf8ebb363fb3daf5bf56edc27080b67bc8d9251ea4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000000000000000000000000000000000000000000020000000000000000000000000c820b10b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000008a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af4d7573742062652070726f706f736564206f776e6572000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6884e487b710000000000000000000000000000000000000000000000000000000091eabfe8e493f369f48e58fdf2609ff8809506ce57440a6f25fddc25308a38520a675452746933cefe3d74182e78db7afe57ba60eaa4234b5d85e9aa41b0610c0200000200000000000000000000000000000044000000000000000000000000cbbf111300000000000000000000000000000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206d696e7420746f20746865207a65726f206164647265737300e2c8c9d500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c161806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000a4c0ed360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffe0616c616e6365000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220616d6f756e74206578636565647320620000000000000000000000000000000000000084000000000000000000000000657373000000000000000000000000000000000000000000000000000000000045524332303a207472616e7366657220746f20746865207a65726f2061646472647265737300000000000000000000000000000000000000000000000000000045524332303a207472616e736665722066726f6d20746865207a65726f2061648c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92545524332303a20617070726f766520746f20746865207a65726f2061646472657373000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000045524332303a20617070726f76652066726f6d20746865207a65726f206164647265737300000000000000000000000000000000000000000000000000000000c2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff4000ae9fffffffffffffffffffffffffffffffffffffffffffffffffffffffff4000aea000000000000000000000000000000000000000000000000000000000e6599b4d0000000000000000000000000000000000000000000000000000000001ffc9a70000000000000000000000000000000000000000000000000000000036372b0700000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff207a65726f00000000000000000000000000000000000000000000000000000045524332303a2064656372656173656420616c6c6f77616e63652062656c6f7745524332303a20696e73756666696369656e7420616c6c6f77616e6365000000636500000000000000000000000000000000000000000000000000000000000045524332303a206275726e20616d6f756e7420657863656564732062616c616e730000000000000000000000000000000000000000000000000000000000000045524332303a206275726e2066726f6d20746865207a65726f20616464726573020000020000000000000000000000000000000000000000000000000000000023f9d54e3992cfa20fb5aab24552a0dd05df77c26b56ec6e7c79d109b1593211") diff --git a/gethwrappers/shared/generated/multicall3/multicall3_zksync.go b/gethwrappers/shared/generated/multicall3/multicall3_zksync.go new file mode 100644 index 0000000000..672b2e08bf --- /dev/null +++ b/gethwrappers/shared/generated/multicall3/multicall3_zksync.go @@ -0,0 +1,61 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. +package multicall3 + +import ( + "context" + "crypto/rand" + "fmt" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/zksync-sdk/zksync2-go/accounts" + "github.com/zksync-sdk/zksync2-go/clients" + "github.com/zksync-sdk/zksync2-go/types" +) + +func DeployMulticall3Zk(deployOpts *accounts.TransactOpts, client *clients.Client, wallet *accounts.Wallet, backend bind.ContractBackend, args ...interface{}) (common.Address, *types.Receipt, *Multicall3, error) { + var calldata []byte + if len(args) > 0 { + abi, err := Multicall3MetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + calldata, err = abi.Pack("", args...) + if err != nil { + return common.Address{}, nil, nil, err + } + } + + salt := make([]byte, 32) + n, err := rand.Read(salt) + if err != nil { + return common.Address{}, nil, nil, err + } + if n != len(salt) { + return common.Address{}, nil, nil, fmt.Errorf("failed to read random bytes: expected %d, got %d", len(salt), n) + } + + txHash, err := wallet.Deploy(deployOpts, accounts.Create2Transaction{ + Bytecode: ZkBytecode, + Calldata: calldata, + Salt: salt, + }) + if err != nil { + return common.Address{}, nil, nil, err + } + + receipt, err := client.WaitMined(context.Background(), txHash) + if err != nil { + return common.Address{}, nil, nil, err + } + + address := receipt.ContractAddress + contract, err := NewMulticall3(address, backend) + if err != nil { + return common.Address{}, nil, nil, err + } + + return address, receipt, contract, nil +} + +var ZkBytecode = common.Hex2Bytes("0002000000000002000e00000000000200010000000103550000006003100270000001b90030019d0000008004000039000000400040043f0000000100200190000000420000c13d000001b902300197000000040020008c000001a60000413d000000000301043b000000e003300270000001bb0030009c0000004a0000213d000001c70030009c0000005c0000213d000001cd0030009c0000009f0000213d000001d00030009c000000e30000613d000001d10030009c000001a60000c13d000000240020008c000001a60000413d0000000403100370000000000303043b000300000003001d000001d40030009c000001a60000213d00000003030000290000002303300039000000000023004b000001a60000813d00000003030000290000000403300039000000000331034f000000000303043b000200000003001d000001d40030009c000001a60000213d0000000303000029000000240a300039000000020300002900000005033002100000000004a30019000000000024004b000001a60000213d0000003f02300039000001d502200197000001d60020009c000002a60000213d0000008006200039000000400060043f0000000204000029000000800040043f000000000004004b000001c90000c13d0000000001000416000000000001004b000003870000c13d00000080020000390000000001060019000800000006001d0000017e0000013d0000000001000416000000000001004b000001a60000c13d000000200100003900000100001004430000012000000443000001ba01000041000006e20001042e000001bc0030009c000000870000213d000001c20030009c000000b40000213d000001c50030009c000000ed0000613d000001c60030009c000001a60000c13d0000000001000416000000000001004b000001a60000c13d0000800b01000039000000040300003900000000040004150000000e0440008a0000000504400210000001e402000041000001890000013d000001c80030009c000000c20000213d000001cb0030009c000000fe0000613d000001cc0030009c000001a60000c13d000000000102001906e105750000040f06e105cd0000040f000700000001001d000000400100043d000800000001001d0000800b01000039000000040300003900000000040004150000000e0440008a0000000504400210000001de0200004106e106c00000040f000600000001001d000d00000001001d000000240300003900000000040004150000000d0440008a00000005044002100000800b01000039000001d20200004106e106c00000040f000000000301001900000008010000290000000602000029000000070400002906e105960000040f00000008020000290000000001210049000001b90020009c000001b9020080410000004002200210000001b90010009c000001b9010080410000006001100210000000000121019f000006e20001042e000001bd0030009c000000d00000213d000001c00030009c000001080000613d000001c10030009c000001a60000c13d000000000102001906e105750000040f06e105cd0000040f0000002002000039000000400300043d000800000003001d000000000223043606e105120000040f00000008020000290000000001210049000001b90010009c000001b9010080410000006001100210000001b90020009c000001b9020080410000004002200210000000000121019f000006e20001042e000001ce0030009c000001120000613d000001cf0030009c000001a60000c13d0000000001000416000000000001004b000001a60000c13d0000800b01000039000000040300003900000000040004150000000e0440008a0000000504400210000001de0200004106e106c00000040f000c000100100092000000240300003900000000040004150000000c0440008a00000005044002100000800b01000039000000e10000013d000001c30030009c000001580000613d000001c40030009c000001a60000c13d0000000001000416000000000001004b000001a60000c13d0000800b01000039000000040300003900000000040004150000000e0440008a0000000504400210000001e002000041000001890000013d000001c90030009c000001800000613d000001ca0030009c000001a60000c13d0000000001000416000000000001004b000001a60000c13d0000800b01000039000000040300003900000000040004150000000e0440008a0000000504400210000001de02000041000001890000013d000001be0030009c0000018d0000613d000001bf0030009c000001a60000c13d000000240020008c000001a60000413d0000000002000416000000000002004b000001a60000c13d0000000401100370000000000101043b000900000001001d0000800b0100003900000024030000390000000004000415000000090440008a0000000504400210000001d202000041000001890000013d0000000001000416000000000001004b000001a60000c13d0000800b01000039000000040300003900000000040004150000000e0440008a0000000504400210000001ee02000041000001890000013d000000240020008c000001a60000413d0000000002000416000000000002004b000001a60000c13d0000000401100370000000000101043b000001d90010009c000001a60000213d000b00000001001d0000800a01000039000000240300003900000000040004150000000b0440008a0000000504400210000001e502000041000001890000013d0000000001000416000000000001004b000001a60000c13d0000800b01000039000000040300003900000000040004150000000e0440008a0000000504400210000001e702000041000001890000013d0000000001000416000000000001004b000001a60000c13d0000800b01000039000000040300003900000000040004150000000e0440008a0000000504400210000001df02000041000001890000013d000000240020008c000001a60000413d0000000403100370000000000303043b000600000003001d000001d40030009c000001a60000213d00000006030000290000002303300039000000000023004b000001a60000813d00000006030000290000000403300039000000000131034f000000000101043b000500000001001d000001d40010009c000001a60000213d0000000601000029000000240a100039000000050100002900000005011002100000000003a10019000000000023004b000001a60000213d0000003f02100039000001d502200197000001d60020009c000002a60000213d0000008003200039000000400030043f0000000502000029000000800020043f000000000002004b000001db0000c13d000800000003001d000001de0100004100000000001004430000000001000414000001b90010009c000001b901008041000000c001100210000001e8011001c70000800b0200003906e106dc0000040f0000000100200190000002ac0000613d000000000101043b000000080c0000290000002002c000390000004003000039000000000032043500000000001c04350000004002c00039000000800100043d00000000001204350000006002c0003900000005031002100000000005230019000000000001004b000002ad0000c13d0000000001c50049000001b90010009c000001b9010080410000006001100210000001b900c0009c000001b90c0080410000004002c00210000000000121019f000006e20001042e000000240020008c000001a60000413d0000000403100370000000000303043b000500000003001d000001d40030009c000001a60000213d00000005030000290000002303300039000000000023004b000001a60000813d00000005030000290000000403300039000000000331034f000000000303043b000400000003001d000001d40030009c000001a60000213d0000000503000029000000240a300039000000040300002900000005033002100000000004a30019000000000024004b000001a60000213d0000003f02300039000001d502200197000001d60020009c000002a60000213d0000008006200039000000400060043f0000000404000029000000800040043f000000000004004b000002830000c13d000800000006001d0000008002000039000000000106001906e105430000040f000000950000013d0000000001000416000000000001004b000001a60000c13d0000800b01000039000000040300003900000000040004150000000e0440008a0000000504400210000001e60200004106e106c00000040f000000800010043f000001d301000041000006e20001042e000000240020008c000001a60000413d0000000403100370000000000303043b000600000003001d000001d40030009c000001a60000213d00000006030000290000002303300039000000000023004b000001a60000813d00000006030000290000000403300039000000000131034f000000000101043b000500000001001d000001d40010009c000001a60000213d0000000601000029000000240a100039000000050100002900000005011002100000000003a10019000000000023004b000001a80000a13d0000000001000019000006e3000104300000003f02100039000001d502200197000001d60020009c000002a60000213d0000008005200039000000400050043f0000000503000029000000800030043f000000000003004b000002950000c13d000800000005001d0000800b01000039000000040300003900000000040004150000000e0440008a0000000504400210000001de0200004106e106c00000040f000700000001001d000a00000001001d000000240300003900000000040004150000000a0440008a00000005044002100000800b01000039000001d20200004106e106c00000040f000000000301001900000080040000390000000801000029000800000001001d00000007020000290000007c0000013d000001d70020009c000002a60000213d000000600500003900000000020000190000004004600039000000400040043f000000200460003900000000005404350000000000060435000000a00420003900000000006404350000002002200039000000000032004b000002ca0000813d000000400600043d000001dd0060009c000001cd0000a13d000002a60000013d00000060040000390000000002000019000000a00320003900000000004304350000002002200039000000000012004b000001dd0000413d000000000900001900040000000a001d000000050b9002100000000001ab00190000000101100367000000000101043b0000000003000031000000060230006a000000630220008a000001d804200197000001d805100197000000000645013f000000000045004b0000000004000019000001d804004041000000000021004b0000000002000019000001d802008041000001d80060009c000000000402c019000000000004004b000001a60000c13d0000000001a100190000000102100367000000000202043b000001d90020009c000001a60000213d00000000041300490000001f0540008a00000020041000390000000104400367000000000404043b000001d806500197000001d807400197000000000867013f000000000067004b0000000006000019000001d806004041000000000054004b0000000005000019000001d805008041000001d80080009c000000000605c019000000000006004b000001a60000c13d00000000041400190000000101400367000000000101043b000001d40010009c000001a60000213d00000000051300490000002003400039000001d804500197000001d806300197000000000746013f000000000046004b0000000004000019000001d804004041000000000053004b0000000005000019000001d805002041000001d80070009c000000000405c019000000000004004b000001a60000c13d000700000009001d000001ef051001980000000106300367000000400300043d00000000045300190000022f0000613d000000000706034f0000000008030019000000007907043c0000000008980436000000000048004b0000022b0000c13d00080000000b001d0000001f071001900000023d0000613d000000000556034f0000000306700210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f000000000054043500000000041300190000000000040435000001b90010009c000001b9010080410000006001100210000001b90030009c000001b9030080410000004003300210000000000113019f0000000003000414000001b90030009c000001b903008041000000c003300210000000000113019f06e106d70000040f0000006003100270000001b9043001980000006003000039000000040a000029000000080b000029000002760000613d0000001f03400039000001da033001970000003f03300039000001db05300197000000400300043d0000000005530019000000000035004b00000000060000390000000106004039000001d40050009c000002a60000213d0000000100600190000002a60000c13d000000400050043f0000000007430436000001dc064001980000000005670019000002690000613d000000000801034f000000008908043c0000000007970436000000000057004b000002650000c13d0000001f04400190000002760000613d000000000161034f0000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000800100043d0000000709000029000000000091004b000004e70000a13d000000a001b0003900000000003104350000000100200190000004ed0000613d0000000109900039000000050090006c000001e40000413d000000400300043d000001350000013d000001d70020009c000002a60000213d000000600500003900000000020000190000004004600039000000400040043f000000200460003900000000005404350000000000060435000000a00420003900000000006404350000002002200039000000000032004b000003970000813d000000400600043d000001dd0060009c000002870000a13d000002a60000013d000001d70020009c000002a60000213d000000600400003900000000020000190000004003500039000000400030043f000000200350003900000000004304350000000000050435000000a00320003900000000005304350000002002200039000000000012004b000004420000813d000000400500043d000001dd0050009c000002990000a13d000001e901000041000000000010043f0000004101000039000000040010043f000001ea01000041000006e300010430000000000001042f0000000004000019000000800b000039000002b80000013d0000001f07600039000001ef077001970000000006650019000000000006043500000000057500190000000104400039000000000014004b0000014f0000813d0000000006c50049000000600660008a0000000002620436000000200bb0003900000000060b043300000000760604340000000005650436000000000006004b000002b00000613d00000000080000190000000009580019000000000a870019000000000a0a04330000000000a904350000002008800039000000000068004b000002c20000413d000002b00000013d000000000c000019000000000b00001900010000000a001d000000800200043d0000000000c2004b000004e70000a13d0000000502c002100000000003a20019000000000331034f000000000403043b000000000d0000310000000305d0006a000000a30550008a000001d806500197000001d807400197000000000867013f000000000067004b0000000006000019000001d806004041000000000054004b0000000005000019000001d805008041000001d80080009c000000000605c019000000000006004b000001a60000c13d000000a002200039000000000e0204330000000002a400190000004004200039000000000441034f000000000521034f000000000304043b000000000405043b000001d90040009c000001a60000213d00000000062d0049000000600f2000390000000005f1034f000000000505043b0000001f0660008a000001d807600197000001d808500197000000000978013f000000000078004b0000000007000019000001d807004041000000000065004b0000000006000019000001d806008041000001d80090009c000000000706c019000000000007004b000001a60000c13d0000000005250019000000000251034f000000000202043b000001d40020009c000001a60000213d00000000062d00490000002009500039000001d805600197000001d807900197000000000857013f000000000057004b0000000005000019000001d805004041000000000069004b0000000006000019000001d806002041000001d80080009c000000000506c019000000000005004b000001a60000c13d000000000591034f000001ef06200198000000400100043d000000000d6100190000031f0000613d000000000705034f0000000008010019000000007907043c00000000089804360000000000d8004b0000031b0000c13d0000001f072001900000032c0000613d000000000565034f000000030670021000000000070d043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f00000000005d043500040000000f001d00050000000e001d00070000000c001d00080000000b001d00000000052100190000000000050435000001b90020009c000001b9020080410000006002200210000001b90010009c000001b9010080410000004001100210000000000121019f0000000002000414000001b90020009c000001b902008041000000c002200210000000000112019f000000000003004b000600000003001d000003450000613d000001eb011001c700008009020000390000000005000019000003460000013d000000000204001906e106d70000040f0000006003100270000001b9043001980000006003000039000000010a000029000000080b000029000000070c000029000000060d000029000000050e000029000000040f000029000003750000613d0000001f03400039000001da033001970000003f03300039000001db05300197000000400300043d0000000005530019000000000035004b00000000060000390000000106004039000001d40050009c000002a60000213d0000000100600190000002a60000c13d000000400050043f0000000007430436000001dc064001980000000005670019000003680000613d000000000801034f000000008908043c0000000007970436000000000057004b000003640000c13d0000001f04400190000003750000613d000000000161034f0000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000002001e000390000000000310435000000010220018f00000000002e04350000004003f0008a0000000101000367000000000331034f000000000303043b00000000002301a0000004fe0000613d000000000bbd0019000000010cc000390000000200c0006c000002cd0000413d000000400600043d00000000010004160000000000b1004b0000003e0000613d0000004401600039000001ed02000041000000000021043500000024016000390000001a020000390000000000210435000001e1010000410000000000160435000000040160003900000020020000390000000000210435000001b90060009c000001b9060080410000004001600210000001e3011001c7000006e300010430000000000b00001900030000000a001d000000800200043d0000000000b2004b000004e70000a13d0000000502b002100000000003a20019000000000331034f000000000303043b0000000004000031000000050540006a000000830550008a000001d806500197000001d807300197000000000867013f000000000067004b0000000006000019000001d806004041000000000053004b0000000005000019000001d805008041000001d80080009c000000000605c019000000000006004b000001a60000c13d000000a002200039000000000c0204330000000003a30019000000000231034f000000000202043b000001d90020009c000001a60000213d0000000006340049000000400d3000390000000005d1034f000000000505043b0000001f0660008a000001d807600197000001d808500197000000000978013f000000000078004b0000000007000019000001d807004041000000000065004b0000000006000019000001d806008041000001d80090009c000000000706c019000000000007004b000001a60000c13d0000000005350019000000000351034f000000000303043b000001d40030009c000001a60000213d00000000063400490000002004500039000001d805600197000001d807400197000000000857013f000000000057004b0000000005000019000001d805004041000000000064004b0000000006000019000001d806002041000001d80080009c000000000506c019000000000005004b000001a60000c13d000000000541034f000001ef06300198000000400100043d0000000004610019000003e80000613d000000000705034f0000000008010019000000007907043c0000000008980436000000000048004b000003e40000c13d00060000000d001d00070000000c001d00080000000b001d0000001f07300190000003f80000613d000000000565034f0000000306700210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f000000000054043500000000043100190000000000040435000001b90030009c000001b9030080410000006003300210000001b90010009c000001b9010080410000004001100210000000000131019f0000000003000414000001b90030009c000001b903008041000000c003300210000000000113019f06e106d70000040f0000006003100270000001b9043001980000006003000039000000030a000029000000080b000029000000070c000029000000060d000029000004330000613d0000001f03400039000001da033001970000003f03300039000001db05300197000000400300043d0000000005530019000000000035004b00000000060000390000000106004039000001d40050009c000002a60000213d0000000100600190000002a60000c13d000000400050043f0000000007430436000001dc064001980000000005670019000004260000613d000000000801034f000000008908043c0000000007970436000000000057004b000004220000c13d0000001f04400190000004330000613d000000000161034f0000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000010220018f0000002001c00039000000000031043500000000002c04350000002003d0008a0000000101000367000000000331034f000000000303043b00000000002301a0000005080000613d000000010bb000390000000400b0006c000003990000413d000000400600043d0000017b0000013d000000000b00001900040000000a001d000000800100043d0000000000b1004b000004e70000a13d0000000502b002100000000003a200190000000101000367000000000331034f000000000303043b0000000004000031000000060540006a000000630550008a000001d806500197000001d807300197000000000867013f000000000067004b0000000006000019000001d806004041000000000053004b0000000005000019000001d805008041000001d80080009c000000000605c019000000000006004b000001a60000c13d000000a002200039000000000c0204330000000003a30019000000000231034f000000000202043b000001d90020009c000001a60000213d00000000063400490000002005300039000000000551034f000000000505043b0000001f0660008a000001d807600197000001d808500197000000000978013f000000000078004b0000000007000019000001d807004041000000000065004b0000000006000019000001d806008041000001d80090009c000000000706c019000000000007004b000001a60000c13d0000000005350019000000000351034f000000000303043b000001d40030009c000001a60000213d00000000063400490000002004500039000001d805600197000001d807400197000000000857013f000000000057004b0000000005000019000001d805004041000000000064004b0000000006000019000001d806002041000001d80080009c000000000506c019000000000005004b000001a60000c13d000000000541034f000001ef06300198000000400100043d0000000004610019000004940000613d000000000705034f0000000008010019000000007907043c0000000008980436000000000048004b000004900000c13d00070000000c001d00080000000b001d0000001f07300190000004a30000613d000000000565034f0000000306700210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f000000000054043500000000043100190000000000040435000001b90030009c000001b9030080410000006003300210000001b90010009c000001b9010080410000004001100210000000000131019f0000000003000414000001b90030009c000001b903008041000000c003300210000000000113019f06e106d70000040f0000006003100270000001b9043001980000006003000039000000040a000029000000080b000029000000070c000029000004dd0000613d0000001f03400039000001da033001970000003f03300039000001db05300197000000400300043d0000000005530019000000000035004b00000000060000390000000106004039000001d40050009c000002a60000213d0000000100600190000002a60000c13d000000400050043f0000000007430436000001dc064001980000000005670019000004d00000613d000000000801034f000000008908043c0000000007970436000000000057004b000004cc0000c13d0000001f04400190000004dd0000613d000000000161034f0000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000010120019000000000011c04360000000000310435000004ed0000613d000000010bb000390000000500b0006c000004440000413d000000400100043d000800000001001d000001b30000013d000001e901000041000000000010043f0000003201000039000000040010043f000001ea01000041000006e300010430000000400100043d0000004402100039000001e2030000410000000000320435000000240210003900000017030000390000000000320435000001e1020000410000000000210435000000040210003900000020030000390000000000320435000001b90010009c000001b9010080410000004001100210000001e3011001c7000006e300010430000001e101000041000000000010043f0000002001000039000000040010043f0000001701000039000000240010043f000001e201000041000000440010043f000001ec01000041000006e300010430000001e101000041000000000010043f0000002001000039000000040010043f0000001701000039000000240010043f000001e201000041000000440010043f000001e301000041000006e30001043000000000040104330000000000420435000000050340021000000000033200190000002003300039000000000004004b000005410000613d000000400500003900000000070000190000000008020019000005250000013d000000000a93001900000000000a04350000001f09900039000001ef0990019700000000039300190000000107700039000000000047004b000005410000813d0000000009230049000000200990008a000000200880003900000000009804350000002001100039000000000901043300000000a9090434000000000009004b0000000009000039000000010900c0390000000009930436000000000a0a04330000000000590435000000400b30003900000000a90a043400000000009b04350000006003300039000000000009004b0000051d0000613d000000000b000019000000000c3b0019000000000dba0019000000000d0d04330000000000dc0435000000200bb0003900000000009b004b000005390000413d0000051d0000013d0000000001030019000000000001042d0000002003000039000000000431043600000000050204330000000503500210000000000331001900000000005404350000004003300039000000000005004b000005730000613d00000040060000390000000008000019000005570000013d000000000a93001900000000000a04350000001f09900039000001ef0990019700000000039300190000000108800039000000000058004b000005730000813d0000000009130049000000400990008a000000200440003900000000009404350000002002200039000000000902043300000000a9090434000000000009004b0000000009000039000000010900c0390000000009930436000000000a0a04330000000000690435000000400b30003900000000a90a043400000000009b04350000006003300039000000000009004b0000054f0000613d000000000b000019000000000c3b0019000000000dba0019000000000d0d04330000000000dc0435000000200bb0003900000000009b004b0000056b0000413d0000054f0000013d0000000001030019000000000001042d000001f00010009c000005940000213d000000430010008c000005940000a13d00000001020003670000000403200370000000000403043b000000000004004b0000000003000039000000010300c039000000000034004b000005940000c13d0000002403200370000000000503043b000001d40050009c000005940000213d0000002303500039000000000013004b000005940000813d0000000403500039000000000232034f000000000302043b000001d40030009c000005940000213d000000240250003900000005053002100000000005250019000000000015004b000005940000213d0000000001040019000000000001042d0000000001000019000006e300010430000000400510003900000060060000390000000000650435000000200510003900000000003504350000000000210435000000000304043300000005023002100000000002210019000000600510003900000000003504350000008002200039000000000003004b000005cb0000613d00000040060000390000000008000019000005af0000013d000000000a92001900000000000a04350000001f09900039000001ef0990019700000000029200190000000108800039000000000038004b000005cb0000813d0000000009120049000000800990008a000000200550003900000000009504350000002004400039000000000904043300000000a9090434000000000009004b0000000009000039000000010900c0390000000009920436000000000a0a04330000000000690435000000400b20003900000000a90a043400000000009b04350000006002200039000000000009004b000005a70000613d000000000b000019000000000c2b0019000000000dba0019000000000d0d04330000000000dc0435000000200bb0003900000000009b004b000005c30000413d000005a70000013d0000000001020019000000000001042d0007000000000002000300000001001d000500000003001d000001f10030009c000006a20000813d000000000a020019000000050100002900000005011002100000003f02100039000001d502200197000000400300043d0000000002230019000400000003001d000000000032004b00000000030000390000000103004039000001d40020009c000006a20000213d0000000100300190000006a20000c13d000000400020043f00000005020000290000000403000029000000000b230436000000000002004b0000069e0000613d00000060050000390000000002000019000000400300043d000001dd0030009c000006a20000213d0000004004300039000000400040043f00000020043000390000000000540435000000000003043500000000042b001900000000003404350000002002200039000000000012004b000005e90000413d000000000c00001900020000000a001d00010000000b001d000000040100002900000000010104330000000000c1004b000006a80000a13d0000000502c002100000000003a200190000000101000367000000000331034f000000000303043b00000000040000310000000005a400490000003f0550008a000001d806500197000001d807300197000000000867013f000000000067004b0000000006000019000001d806002041000000000053004b0000000005000019000001d805004041000001d80080009c000000000605c019000000000006004b000006a00000613d00000000022b0019000000000d0204330000000003a30019000000000231034f000000000202043b000001d90020009c000006a00000213d00000000063400490000002005300039000000000551034f000000000505043b0000001f0660008a000001d807600197000001d808500197000000000978013f000000000078004b0000000007000019000001d807004041000000000065004b0000000006000019000001d806008041000001d80090009c000000000706c019000000000007004b000006a00000c13d0000000005350019000000000351034f000000000303043b000001d40030009c000006a00000213d00000000063400490000002004500039000001d805600197000001d807400197000000000857013f000000000057004b0000000005000019000001d805004041000000000064004b0000000006000019000001d806002041000001d80080009c000000000506c019000000000005004b000006a00000c13d000000000541034f000001ef06300198000000400100043d00000000046100190000064a0000613d000000000705034f0000000008010019000000007907043c0000000008980436000000000048004b000006460000c13d00060000000d001d00070000000c001d0000001f07300190000006590000613d000000000565034f0000000306700210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f000000000054043500000000043100190000000000040435000001b90030009c000001b9030080410000006003300210000001b90010009c000001b9010080410000004001100210000000000131019f0000000003000414000001b90030009c000001b903008041000000c003300210000000000113019f06e106d70000040f0000006003100270000001b9043001980000006003000039000000020a000029000000010b000029000000070c000029000000060d000029000006940000613d0000001f03400039000001da033001970000003f03300039000001db05300197000000400300043d0000000005530019000000000035004b00000000060000390000000106004039000001d40050009c000006a20000213d0000000100600190000006a20000c13d000000400050043f0000000007430436000001dc064001980000000005670019000006870000613d000000000801034f000000008908043c0000000007970436000000000057004b000006830000c13d0000001f04400190000006940000613d000000000161034f0000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000010120018f00000000011d04360000000000310435000000030000006b00000001022061bf0000000100200190000006ae0000613d000000010cc000390000000500c0006c000005f90000413d0000000401000029000000000001042d0000000001000019000006e300010430000001e901000041000000000010043f0000004101000039000000040010043f000001ea01000041000006e300010430000001e901000041000000000010043f0000003201000039000000040010043f000001ea01000041000006e300010430000000400100043d0000004402100039000001e2030000410000000000320435000000240210003900000017030000390000000000320435000001e1020000410000000000210435000000040210003900000020030000390000000000320435000001b90010009c000001b9010080410000004001100210000001e3011001c7000006e300010430000000000001042f00000000050100190000000000200443000000040030008c000006c70000a13d000000050140027000000000010100310000000400100443000001b90030009c000001b90300804100000060013002100000000002000414000001b90020009c000001b902008041000000c002200210000000000112019f000001f2011001c7000000000205001906e106dc0000040f0000000100200190000006d60000613d000000000101043b000000000001042d000000000001042f000006da002104210000000102000039000000000001042d0000000002000019000000000001042d000006df002104230000000102000039000000000001042d0000000002000019000000000001042d000006e100000432000006e20001042e000006e30001043000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000004d2301cb00000000000000000000000000000000000000000000000000000000a8b0574d00000000000000000000000000000000000000000000000000000000c3077fa800000000000000000000000000000000000000000000000000000000c3077fa900000000000000000000000000000000000000000000000000000000ee82ac5e00000000000000000000000000000000000000000000000000000000a8b0574e00000000000000000000000000000000000000000000000000000000bce38bd70000000000000000000000000000000000000000000000000000000082ad56ca0000000000000000000000000000000000000000000000000000000082ad56cb0000000000000000000000000000000000000000000000000000000086d516e8000000000000000000000000000000000000000000000000000000004d2301cc0000000000000000000000000000000000000000000000000000000072425d9d000000000000000000000000000000000000000000000000000000003408e46f000000000000000000000000000000000000000000000000000000003e64a695000000000000000000000000000000000000000000000000000000003e64a6960000000000000000000000000000000000000000000000000000000042cbb15c000000000000000000000000000000000000000000000000000000003408e47000000000000000000000000000000000000000000000000000000000399542e900000000000000000000000000000000000000000000000000000000252dba4100000000000000000000000000000000000000000000000000000000252dba420000000000000000000000000000000000000000000000000000000027e86d6e000000000000000000000000000000000000000000000000000000000f28c97d00000000000000000000000000000000000000000000000000000000174dea7180b41246c05cbb406f874e82aa2faf7db11bba9792fe09929e56ef1eee2c2da30000000000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffff3f8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000003ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffbf42cbb15ccdc3cad6266b0e7a08c0454b23bf29dc2df74b6f3c209e9336465bd1a6ae0aac158b2d5c9a9c9285743419d62a32f6727a640955e4ce8ee41503c7847877a797fe6dca4321f33fd95414da079ab78e698d761514c01ced9211af267e08c379a0000000000000000000000000000000000000000000000000000000004d756c746963616c6c333a2063616c6c206661696c6564000000000000000000000000000000000000000000000000000000006400000000000000000000000019cae4629a2dd7890036d0d1f6a82742845b778b7184e38d5bebfd4cce3b181e9cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f396ef25c3ab4fb9cba75ff1971e3f261040c39b067df172dd5185087fc5553a5b69a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b02000002000000000000000000000000000000040000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000004d756c746963616c6c333a2076616c7565206d69736d61746368000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d95539132ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000001000000000000000002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ddb0b3d45731c951fdda37a61c12745b17a2f74b27d13ee38d708ee334b9c16f") diff --git a/gethwrappers/zksync/go_generate.go b/gethwrappers/zksync/go_generate.go new file mode 100644 index 0000000000..d17ceb09a0 --- /dev/null +++ b/gethwrappers/zksync/go_generate.go @@ -0,0 +1,8 @@ +package gethwrappers + +//go:generate ../../contracts/scripts/zksync_compile_all + +//go:generate go run ../generation/zksync/wrap.go shared LinkToken link_token +//go:generate go run ../generation/zksync/wrap.go shared BurnMintERC677 burn_mint_erc677 +//go:generate go run ../generation/zksync/wrap.go shared Multicall3 multicall3 +//go:generate go run ../generation/zksync/wrap.go keystone CapabilitiesRegistry capabilities_registry diff --git a/go.mod b/go.mod index 8bde47aa84..d0741640d6 100644 --- a/go.mod +++ b/go.mod @@ -27,6 +27,7 @@ require ( github.com/stretchr/testify v1.10.0 github.com/tidwall/gjson v1.18.0 github.com/ugorji/go/codec v1.2.12 + github.com/zksync-sdk/zksync2-go v1.0.0 go.opentelemetry.io/otel v1.35.0 go.opentelemetry.io/otel/metric v1.35.0 go.opentelemetry.io/otel/trace v1.35.0 @@ -50,6 +51,10 @@ require ( github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bits-and-blooms/bitset v1.17.0 // indirect + github.com/btcsuite/btcd v0.24.0 // indirect + github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect + github.com/btcsuite/btcd/btcutil v1.1.5 // indirect + github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 // indirect github.com/buger/jsonparser v1.1.1 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect @@ -141,6 +146,7 @@ require ( github.com/scylladb/go-reflectx v1.0.1 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/smartcontractkit/libocr v0.0.0-20250328171017-609ec10a5510 // indirect + github.com/stephenlacy/go-ethereum-hdwallet v0.0.0-20230913225845-a4fa94429863 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/supranational/blst v0.3.14 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect @@ -148,6 +154,7 @@ require ( github.com/tidwall/pretty v1.2.1 // indirect github.com/tklauser/go-sysconf v0.3.13 // indirect github.com/tklauser/numcpus v0.7.0 // indirect + github.com/tyler-smith/go-bip39 v1.1.0 // indirect github.com/urfave/cli/v2 v2.27.5 // indirect github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect diff --git a/go.sum b/go.sum index 2798c09ac8..a64983c02f 100644 --- a/go.sum +++ b/go.sum @@ -52,6 +52,7 @@ github.com/VictoriaMetrics/fastcache v1.12.2 h1:N0y9ASrJ0F6h0QaC3o6uJb3NIZ9VKLjC github.com/VictoriaMetrics/fastcache v1.12.2/go.mod h1:AmC+Nzz1+3G2eCPapF6UcsnkThDcMsQicp4xDukwJYI= github.com/XSAM/otelsql v0.29.0 h1:pEw9YXXs8ZrGRYfDc0cmArIz9lci5b42gmP5+tA1Huc= github.com/XSAM/otelsql v0.29.0/go.mod h1:d3/0xGIGC5RVEE+Ld7KotwaLy6zDeaF3fLJHOPpdN2w= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/allegro/bigcache v1.2.1 h1:hg1sY1raCwic3Vnsvje6TT7/pnZba83LeFck5NrFKSc= github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= @@ -73,6 +74,32 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB github.com/bits-and-blooms/bitset v1.17.0 h1:1X2TS7aHz1ELcC0yU1y2stUs/0ig5oMU6STFZGrhvHI= github.com/bits-and-blooms/bitset v1.17.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= +github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= +github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M= +github.com/btcsuite/btcd v0.23.5-0.20231215221805-96c9fd8078fd/go.mod h1:nm3Bko6zh6bWP60UxwoT5LzdGJsQJaPo6HjduXq9p6A= +github.com/btcsuite/btcd v0.24.0 h1:gL3uHE/IaFj6fcZSu03SvqPMSx7s/dPzfpG/atRwWdo= +github.com/btcsuite/btcd v0.24.0/go.mod h1:K4IDc1593s8jKXIF7yS7yCTSxrknB9z0STzc2j6XgE4= +github.com/btcsuite/btcd/btcec/v2 v2.1.0/go.mod h1:2VzYrv4Gm4apmbVVsSq5bqf1Ec8v56E48Vt0Y/umPgA= +github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= +github.com/btcsuite/btcd/btcec/v2 v2.3.4 h1:3EJjcN70HCu/mwqlUsGK8GcNVyLVxFDlWurTXGPFfiQ= +github.com/btcsuite/btcd/btcec/v2 v2.3.4/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/btcsuite/btcd/btcutil v1.0.0/go.mod h1:Uoxwv0pqYWhD//tfTiipkxNfdhG9UrLwaeswfjfdF0A= +github.com/btcsuite/btcd/btcutil v1.1.0/go.mod h1:5OapHB7A2hBBWLm48mmw4MOHNJCcUBTwmWH/0Jn8VHE= +github.com/btcsuite/btcd/btcutil v1.1.5 h1:+wER79R5670vs/ZusMTF1yTcRYE5GUsFbdjdisflzM8= +github.com/btcsuite/btcd/btcutil v1.1.5/go.mod h1:PSZZ4UitpLBWzxGd5VGOrLnmOjtPP/a6HaFo12zMs00= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= +github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 h1:59Kx4K6lzOW5w6nFlA0v5+lk/6sjybR934QNHSJZPTQ= +github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= @@ -127,16 +154,20 @@ github.com/crate-crypto/go-kzg-4844 v1.1.0 h1:EN/u9k2TF6OWSHrCCDBBU6GLNMq88OspHH github.com/crate-crypto/go-kzg-4844 v1.1.0/go.mod h1:JolLjpSff1tCCJKaJx4psrlEdlXuJEC996PL3tTAFks= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -288,6 +319,7 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v1.17.2/go.mod h1:pRRIvn/QzFLrKfvEz3qUuEhtE/zLCWfreZ6J5gM2i+k= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= @@ -381,11 +413,14 @@ github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dv github.com/jackc/puddle v1.3.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= @@ -394,6 +429,7 @@ github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/X github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= @@ -484,13 +520,17 @@ github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+ github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/ginkgo/v2 v2.22.1 h1:QW7tbJAUDyVDVOM5dFa7qaybo+CRfR7bemlQUN6Z8aM= github.com/onsi/ginkgo/v2 v2.22.1/go.mod h1:S6aTpoRsSq2cZOd+pssHAlKW/Q/jZt6cPrPlnj4a1xM= +github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= @@ -594,6 +634,8 @@ github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t6 github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= +github.com/stephenlacy/go-ethereum-hdwallet v0.0.0-20230913225845-a4fa94429863 h1:ba4VRWSkRzgdP5hB5OxexIzBXZbSwgcw8bEu06ivGQI= +github.com/stephenlacy/go-ethereum-hdwallet v0.0.0-20230913225845-a4fa94429863/go.mod h1:oPTjPNrRucLv9mU27iNPj6n0CWWcNFhoXFOLVGJwHCA= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -618,6 +660,7 @@ github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/supranational/blst v0.3.14 h1:xNMoHRJOTwMn63ip6qoWJ2Ymgvj7E2b9jY2FAwY+qRo= github.com/supranational/blst v0.3.14/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY= @@ -631,6 +674,8 @@ github.com/tklauser/go-sysconf v0.3.13 h1:GBUpcahXSpR2xN01jhkNAbTLRk2Yzgggk8IM08 github.com/tklauser/go-sysconf v0.3.13/go.mod h1:zwleP4Q4OehZHGn4CYZDipCgg9usW5IJePewFCGVEa0= github.com/tklauser/numcpus v0.7.0 h1:yjuerZP127QG9m5Zh/mSO4wqurYil27tHrqwRoRjpr4= github.com/tklauser/numcpus v0.7.0/go.mod h1:bb6dMVcj8A42tSE7i32fsIUCbQNllK5iDguyOZRUzAY= +github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= +github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= github.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= @@ -655,6 +700,8 @@ github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= +github.com/zksync-sdk/zksync2-go v1.0.0 h1:DTFnNCr8ZUfpMWQ0V8CAvn9kTSF0svNRfqSsDRzOMUg= +github.com/zksync-sdk/zksync2-go v1.0.0/go.mod h1:AwxRw2lrtrcoYbl0LytVASNE/Vwz1wZ3WZ3X8rjLn3o= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= @@ -723,6 +770,7 @@ go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= @@ -784,6 +832,7 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= +golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -814,6 +863,7 @@ golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= @@ -900,8 +950,10 @@ golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1163,6 +1215,7 @@ gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/tools/bin/install_forge_zksync b/tools/bin/install_forge_zksync new file mode 100755 index 0000000000..7bf7956280 --- /dev/null +++ b/tools/bin/install_forge_zksync @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +set -e + +VERSION="0.0.12" +if [ -f "$(dirname $0)/forge_zksync" ] && "$(dirname $0)/forge_zksync" -V | grep -q "1.0.0-foundry-zksync-v${VERSION}"; then + echo "Correct forge_zksync version already installed." + exit 0 +fi + +if [[ "$OSTYPE" == "linux-gnu"* ]]; then + OS="linux" + ARCH="amd64" +elif [[ "$OSTYPE" == "darwin"* ]]; then + OS="darwin" + ARCH=$(uname -m) +else + echo "Unsupported OS: $OSTYPE" + exit 1 +fi + +ARTIFACT_URL="https://github.com/matter-labs/foundry-zksync/releases/download/foundry-zksync-v${VERSION}/foundry_zksync_v${VERSION}_${OS}_${ARCH}.tar.gz" +THIS_DIR="$(realpath "$(dirname $0)")" + +if [[ "$OSTYPE" == "linux-gnu"* ]]; then + wget -qc $ARTIFACT_URL -O - +elif [[ "$OSTYPE" == "darwin"* ]]; then + curl $ARTIFACT_URL -L -o- +fi | tar -xz -C $THIS_DIR +rm $THIS_DIR/cast +mv $THIS_DIR/forge $THIS_DIR/forge_zksync