[
  {
    "bytecode": "0xa11ceb0b0700000a0b010006020604030a3904430605492807715e08cf012010ef01a8010a9703060c9d0390010dad04020000000400080001070000030001000101030301010001000504050001000606040001010703070100010106080901000102090a0a0001000a06040001000b0004000101020402050202060800050101010502060a090006090000010800020708000502010302070a09000301090001030361636c0341434c046c69737408636f6e7461696e7306766563746f7205656d7074790672656d6f766508696e6465785f6f66056572726f7210696e76616c69645f617267756d656e74036164640f6173736572745f636f6e7461696e73000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631750200000000000000000845434f4e5441494e255468652041434c20616c726561647920636f6e7461696e732074686520616464726573732e01000000000000000c454e4f545f434f4e5441494e255468652041434c20646f6573206e6f7420636f6e7461696e2074686520616464726573732e0000000201020a050001000004050b0010000e0138000202010000040340020000000000000000120002030100000a110a0010000e0138010c02040c0b000f000b02380201020b000106010000000000000011062707010000040f0a0010000e013800030a0b000f000b014402020b00010600000000000000001106270801000004080b000b011100040502060100000000000000110627000000",
    "abi": {
      "address": "0x1",
      "name": "acl",
      "friends": [],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::acl::ACL",
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::acl::ACL"
          ]
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::acl::ACL",
            "address"
          ],
          "return": []
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::acl::ACL",
            "address"
          ],
          "return": []
        },
        {
          "name": "assert_contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::acl::ACL",
            "address"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "ACL",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "list",
              "type": "vector<address>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c01000c020c0803142f04430605491b0764800108e4012010840295010a9903090ca2033e0de003040fe403020000000400070008000b000d0001060001030700000200010001000603040106010202020501000103090607010001000a0403010001040c0703010001050e0808000102030303050301060800010608010001090001080001080101060900010a02010303616e7903416e7909747970655f6e616d6506537472696e6706737472696e670464617461047061636b09747970655f696e666f0362637308746f5f627974657306756e7061636b0866726f6d5f6263730a66726f6d5f6279746573056572726f7210696e76616c69645f617267756d656e740c636f707961626c655f616e79000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631620101000000000000000e45545950455f4d49534d415443484754686520747970652070726f766964656420666f722060756e7061636b60206973206e6f74207468652073616d652061732077617320676976656e20666f7220607061636b602e0000000202020801050a020001000002030b0010000201010000020538000e00380112000204010000020e38000e0010001421040b0e0010011438020206010000000000000011062700000001000f00",
    "abi": {
      "address": "0x1",
      "name": "any",
      "friends": [
        "0x1::copyable_any"
      ],
      "exposed_functions": [
        {
          "name": "type_name",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::any::Any"
          ],
          "return": [
            "&0x1::string::String"
          ]
        },
        {
          "name": "pack",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "0x1::any::Any"
          ]
        },
        {
          "name": "unpack",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::any::Any"
          ],
          "return": [
            "T0"
          ]
        }
      ],
      "structs": [
        {
          "name": "Any",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "type_name",
              "type": "0x1::string::String"
            },
            {
              "name": "data",
              "type": "vector<u8>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a08010004020406030a15051f0f072e440872201092011f0cb1010c0000000301020701000000010001010001000402030100010005020401000100010b000103010609000103010a020362637318636f6e7374616e745f73657269616c697a65645f73697a65064f7074696f6e066f7074696f6e0f73657269616c697a65645f73697a6508746f5f6279746573000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e3100010200010102000201020000",
    "abi": {
      "address": "0x1",
      "name": "bcs",
      "friends": [],
      "exposed_functions": [
        {
          "name": "constant_serialized_size",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::option::Option<u64>"
          ]
        },
        {
          "name": "serialized_size",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0"
          ],
          "return": [
            "vector<u8>"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0a01000202020403062b05311107424c088e012010ae011f0acd01090cd60149139f020600000001030000050001010001000602030001000702030001000802030001000902030001000a02030001000b02030001020609000609000108000106080001010003636d70084f72646572696e67044c65737305457175616c074772656174657207636f6d706172650569735f65710569735f67650569735f67740569735f6c650569735f6c740569735f6e65000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31000303020003000400000102000101000004030b005600020201000004040b00560120020301000004030b005602020401000004040b00560220020501000004030b005601020601000004040b005600200200010000000200",
    "abi": {
      "address": "0x1",
      "name": "cmp",
      "friends": [],
      "exposed_functions": [
        {
          "name": "compare",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0",
            "&T0"
          ],
          "return": [
            "0x1::cmp::Ordering"
          ]
        },
        {
          "name": "is_eq",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::cmp::Ordering"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_ge",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::cmp::Ordering"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_gt",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::cmp::Ordering"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_le",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::cmp::Ordering"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_lt",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::cmp::Ordering"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_ne",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::cmp::Ordering"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "Ordering",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": []
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d01001002101e032e590487010a0591015107e2019c0408fe0520069e062210c0067f0abf07320cf107f3010de4090a0fee0904000000030007001200150018001b00210001070001040f000206070000090700000d0600000f08000311070100000014000100010416010200010317050601000105190501010601001a09010001061c09010001031d0106010001001e0a010001031f0b0c01000103200d050100010722020200010023010f000100241002000100250901000102040307060408040904040308010a08020a08020001030102010803010900010b0601090001080402070805080001060c010a0201060b06010900010101070b06010900030708050803070a02010b06010803010608030107080503646b6712444b4753657373696f6e4d657461646174610c6465616c65725f65706f63681172616e646f6d6e6573735f636f6e6669671052616e646f6d6e657373436f6e666967146465616c65725f76616c696461746f725f7365741656616c696461746f72436f6e73656e737573496e666f1876616c696461746f725f636f6e73656e7375735f696e666f147461726765745f76616c696461746f725f7365740f444b4753657373696f6e5374617465086d657461646174610d73746172745f74696d655f75730a7472616e7363726970740d444b4753746172744576656e741073657373696f6e5f6d6574616461746108444b4753746174650e6c6173745f636f6d706c65746564064f7074696f6e066f7074696f6e0b696e5f70726f67726573730573746172740974696d657374616d70106e6f775f6d6963726f7365636f6e647304736f6d65056576656e7404656d69740a696e697469616c697a651073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b046e6f6e650666696e6973680769735f736f6d650765787472616374056572726f720d696e76616c69645f737461746512696e636f6d706c6574655f73657373696f6e1473657373696f6e5f6465616c65725f65706f63681c7472795f636c6561725f696e636f6d706c6574655f73657373696f6e187265636f6e66696775726174696f6e5f776974685f646b6705626c6f636b00000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76314c0201000000000000001045444b475f494e5f50524f47524553530002000000000000001445444b475f4e4f545f494e5f50524f475245535300010d444b4753746172744576656e74010400000002040203030801050a0802080a08020302030a08000b030c0a020402020e08000b03050202100b06010803130b060108030003000103081807002a030c040b000b010b020b0312000c0511010c000a050a0040030000000000000000120138000b040f00150b050b00120238010204010000010e0a00110507002903030b0b003802380212032d03020b0001050a07030001030e2007002a030c010a0110003803041b0a010f0038040c020d020f010c030b000b03150b0238000a010f021538020b010f0015020b0101060200000000000000110a270b010001030f0d07002903040a07002b031000140c000b000238020c0005080c01000001050b001003100414020d01000103110e0b001105070029030306050d07002a030c0138020b010f001502030101020300010000000026002700",
    "abi": {
      "address": "0x1",
      "name": "dkg",
      "friends": [
        "0x1::reconfiguration_with_dkg",
        "0x1::block"
      ],
      "exposed_functions": [
        {
          "name": "start",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "0x1::randomness_config::RandomnessConfig",
            "vector<0x1::validator_consensus_info::ValidatorConsensusInfo>",
            "vector<0x1::validator_consensus_info::ValidatorConsensusInfo>"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "finish",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "incomplete_session",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::option::Option<0x1::dkg::DKGSessionState>"
          ]
        },
        {
          "name": "session_dealer_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::dkg::DKGSessionState"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "try_clear_incomplete_session",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "DKGSessionMetadata",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dealer_epoch",
              "type": "u64"
            },
            {
              "name": "randomness_config",
              "type": "0x1::randomness_config::RandomnessConfig"
            },
            {
              "name": "dealer_validator_set",
              "type": "vector<0x1::validator_consensus_info::ValidatorConsensusInfo>"
            },
            {
              "name": "target_validator_set",
              "type": "vector<0x1::validator_consensus_info::ValidatorConsensusInfo>"
            }
          ]
        },
        {
          "name": "DKGSessionState",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::dkg::DKGSessionMetadata"
            },
            {
              "name": "start_time_us",
              "type": "u64"
            },
            {
              "name": "transcript",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "DKGStartEvent",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "session_metadata",
              "type": "0x1::dkg::DKGSessionMetadata"
            },
            {
              "name": "start_time_us",
              "type": "u64"
            }
          ]
        },
        {
          "name": "DKGState",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "last_completed",
              "type": "0x1::option::Option<0x1::dkg::DKGSessionState>"
            },
            {
              "name": "in_progress",
              "type": "0x1::option::Option<0x1::dkg::DKGSessionState>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0901000203020e041002051211072318083b20105b1f0c7a130f8d01020000000100010100010002020301000101010207090009000109000207090007090000036d656d077265706c616365047377617006766563746f72000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e310003000003050b000d0138000b010201030200000300",
    "abi": {
      "address": "0x1",
      "name": "mem",
      "friends": [
        "0x1::vector"
      ],
      "exposed_functions": [
        {
          "name": "replace",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut T0",
            "T0"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "swap",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut T0",
            "&mut T0"
          ],
          "return": []
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d01001a021a34034ece01049c021005ac02c20207ee04ad08089b0d2006bb0dd802109310fd070a9018590ce918c40d0dad26140fc1260200000005000e0010002200240027002c0039003d00420044004900010200010407000006070000080700020d07010000030f0700001107000013070000150700001b0e00001d0600093c0701000100210001000104230201000105250203000100260501000106280701010701002908090001002a02010001062b0a09010701072d0b0b0001002e0c010001072f0b0b00010030101100010031030900010132140e000100330115000107340b0b000107350b0b0001003617010001003701150001003818190001083a1a09010001003b1c010001093e1e03010801093f1f09010801084020010100010041240100010a4326010106010b450109000100462701000100472801000100482a0100010c4a1426010001004b0115000104060706140e161d171d18041a251f0403060c060c08070001060c010501080702060c060c01080203060c060c09000208080808010102060c0900010302060807060a080101080301080106060a08030303060803030608010205060807010a0800010800010806010a02010808100a0800060a08060303060806070a08000801050800060a0807010306080703030103060807060807060a080101060807010a080102060a09000609000608080a0801060a0801030306080102060c0b0b01080901080901060b0b010900020b0b0109000501070a09000905070809070a080703030708070a08070a08070807050a0801060a080303030608030901010101010101010103060c08070a0a0201080a01090005050a08010a08000a0a020204050a08010a0a0202100808050a08000a0801060a08070303030303030608070703070a0807080807080703060c0a020a0a0204636f64650a416c6c6f776564446570076163636f756e740b6d6f64756c655f6e616d6506537472696e6706737472696e6718436f64655075626c697368696e675065726d697373696f6e0b64756d6d795f6669656c640e4d6f64756c654d65746164617461046e616d6506736f757263650a736f757263655f6d617009657874656e73696f6e064f7074696f6e066f7074696f6e03416e790c636f707961626c655f616e790a5061636b6167654465700c7061636b6167655f6e616d650f5061636b6167654d657461646174610e757067726164655f706f6c6963790d55706772616465506f6c6963790e757067726164655f6e756d6265720d736f757263655f646967657374086d616e6966657374076d6f64756c657304646570730f5061636b6167655265676973747279087061636b616765730e5075626c6973685061636b6167650c636f64655f616464726573730a69735f7570677261646506706f6c6963790a696e697469616c697a651073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b067369676e65720a616464726573735f6f66106772616e745f7065726d697373696f6e137065726d697373696f6e65645f7369676e657213617574686f72697a655f756e6c696d697465641c63616e5f6368616e67655f757067726164655f706f6c6963795f746f20636865636b5f636f64655f7075626c697368696e675f7065726d697373696f6e17636865636b5f7065726d697373696f6e5f657869737473056572726f72117065726d697373696f6e5f64656e69656411636865636b5f636f6578697374656e63650e616c72656164795f65786973747312636865636b5f646570656e64656e636965731a69735f706f6c6963795f6578656d707465645f61646472657373047574663818757067726164655f706f6c6963795f617262697472617279096e6f745f666f756e6410696e76616c69645f617267756d656e7413636865636b5f7570677261646162696c69747918757067726164655f706f6c6963795f696d6d757461626c65106765745f6d6f64756c655f6e616d657306766563746f7208636f6e7461696e7312667265657a655f636f64655f6f626a656374064f626a656374066f626a6563740e6f626a6563745f616464726573730869735f6f776e657207726576657273650f7075626c6973685f7061636b616765056576656e7404656d69740866656174757265731d636f64655f646570656e64656e63795f636865636b5f656e61626c656421726571756573745f7075626c6973685f776974685f616c6c6f7765645f646570730f726571756573745f7075626c697368137075626c6973685f7061636b6167655f74786e047574696c0a66726f6d5f627974657315757067726164655f706f6c6963795f636f6d706174166f626a6563745f636f64655f6465706c6f796d656e7400000000000000000000000000000000000000000000000000000000000000010a020100052000000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000a052000000000000000000000000000000000000000000000000000000000000000090520000000000000000000000000000000000000000000000000000000000000000805200000000000000000000000000000000000000000000000000000000000000007052000000000000000000000000000000000000000000000000000000000000000060520000000000000000000000000000000000000000000000000000000000000000505200000000000000000000000000000000000000000000000000000000000000004052000000000000000000000000000000000000000000000000000000000000000030520000000000000000000000000000000000000000000000000000000000000000214636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631c9070b010000000000000012454d4f44554c455f4e414d455f434c415348685061636b61676520636f6e7461696e73206475706c6963617465206d6f64756c65206e616d65732077697468206578697374696e67206d6f64756c6573207075626c6973656420696e206f74686572207061636b61676573206f6e2074686973206164647265737302000000000000001245555047524144455f494d4d555441424c452343616e6e6f74207570677261646520616e20696d6d757461626c65207061636b61676503000000000000001645555047524144455f5745414b45525f504f4c4943593143616e6e6f7420646f776e67726164652061207061636b6167652773207570677261646162696c69747920706f6c69637904000000000000000f454d4f44554c455f4d495353494e473d43616e6e6f742064656c6574652061206d6f64756c65207468617420776173207075626c697368656420696e207468652073616d65207061636b616765050000000000000014455041434b4147455f4445505f4d495353494e473a446570656e64656e637920636f756c64206e6f74206265207265736f6c76656420746f20616e79207075626c6973686564207061636b6167652e060000000000000012454445505f5745414b45525f504f4c494359314120646570656e64656e63792063616e6e6f7420686176652061207765616b6572207570677261646520706f6c6963792e07000000000000001f454445505f4152424954524152595f4e4f545f53414d455f41444452455353434120646570656e64656e637920746f20616e206061726269747261727960207061636b616765206d757374206265206f6e207468652073616d6520616464726573732e08000000000000001d45494e434f4d50415449424c455f504f4c4943595f44495341424c4544404372656174696e672061207061636b616765207769746820696e636f6d70617469626c65207570677261646520706f6c6963792069732064697361626c65642e090000000000000012454e4f545f5041434b4147455f4f574e4552264e6f7420746865206f776e6572206f6620746865207061636b6167652072656769737472792e0a000000000000001b45434f44455f4f424a4543545f444f45535f4e4f545f45584953541d60636f64655f6f626a6563746020646f6573206e6f742065786973742e0b0000000000000013454e4f5f434f44455f5045524d495353494f4e3143757272656e74207065726d697373696f6e6564207369676e65722063616e6e6f74207075626c69736820636f6465732e010e5075626c6973685061636b61676501040000000202020503080102020107010302040908010a0a020b0a020c0b0401080506020202051208010702080908011408081603170801180a02190a08031a0a08060c0b040108050902011c0a08070a02021e051f010802012002000000010503160b0011010a0111020c030a032905030e0b010b024004010000000000000012052d05020b01010b032a050f000b024404050d0301000001060b000b010912013800020501000001080e001001140e0110011425020603000001090b000912013801040602060b00000000000000110827090000000f3a0b0010020c020600000000000000000c030a02410d0c040a030a042304350a020a03420d0c050600000000000000000c060a060a01410e23042e0a010a06420e0c070a0510030b072204250b06060100000000000000160c0605120b01010b02010b0501060100000000000000110a270b05010b03060100000000000000160c0305080b01010b0201020b0000010516cd01401200000000000000000c020a0110040c030600000000000000000c040a0341130c050a040a052304c7010a030a0442130c060a06100514290504be010a06100514110c042d0b061005140700110d0d020c0712000c0a0b070b0a44120b04060100000000000000160c04050a0a061005142b0510000c0b090c0c0600000000000000000c0d0a0d0a0b41042304b9010a0b0a0d42040c0e0a0e1006140a061007142104b4010a0e10081001140a0110081001142604a7010a0e100814110e21035905600a061005140a0021049a0105600a061005140c090600000000000000000c0f0a0e1002410d0c100a0f0a1023047f0a0e10020a0f420d1003140c080d020a090b08120044120b0f060100000000000000160c0f056a0b0e01080c110b110c0c0a0c0495010b06010b0b010b0c048e0105280b01010b0301060500000000000000110f270b0d060100000000000000160c0d05370b01010b03010b06010b0b010b0e010607000000000000001110270b01010b03010b06010b0b010b0e010606000000000000001110270b0e01090c110583010b06010b0b01058b010b01010b03010b0601060500000000000000110f270b01010b03010b0202110000001b490a00100810011411120c030e031001142304400a001008140b01100814110504390b0011130c040e040c050600000000000000000c060a05410e0c070a060a072304340a050a06420e0c080a020b083802042e0b06060100000000000000160c06051d0b02010b0501060400000000000000270b02010b0501020b00010b02010603000000000000001110270b00010b01010b0201060200000000000000111027150100010521520a0011060e0138030c020a022905044d0b010b0011023804044a0a022a050c030a030f000c040600000000000000000c050a042e41040c060a050a0623042a0a040a0543040c0711120b070f08150b05060100000000000000160c0505190b04010b031000140c080d0838050b080c090e0941040c050a050600000000000000002404470d0945040c0a0a020e0a110b010b05060100000000000000170c0505370b0946040000000000000000020609000000000000001108270b0001060a00000000000000110f27130000002220400e00000000000000000c010b0010020c020600000000000000000c030a02410d0c040a030a0423041c0a020a03420d0c050d010b05100314440e0b03060100000000000000160c03050a0b02010b01020c00000023550a000701210450080c010b01044b080c020b020446080c030b030441080c040b04043c080c050b050437080c060b060432080c070b07042d080c080b080428080c090b09020b000702210c0905260a000703210c0805220a000704210c07051e0a000705210c06051a0a000706210c0505160a000707210c0405120a000708210c03050e0a000709210c02050a0a00070a210c01050619010001052995010a0011060e011008100114110e0c030e03100114240490010a0011020c040a042905038d010b004004000000000000000012052d050a040e01110b0c050e0111130c060a042b0510000c070a0741040c080a080c090600000000000000000c0a0600000000000000000c0b0a0741040c0c0a0b0a0c2304550a0b0c0d0a070a0b42040c0e0a0e1006140e011006142104510a0e100914060100000000000000160c0a0b0e0e010e0611110b0d0c090b0b060100000000000000160c0b052e0b0e0e061109054c0b07010d010f090c0f0a0a0b0f150a042a050f000c100e011008140c110a090b08230489010b100b0943040c120b010b12150a040b0a0600000000000000002412063806111b0481010b040b060b050b020e11100114111c020b040b060b020e11100114111d0580010b100b01440405700b000105170b00010608000000000000001110271e0104010501060b000b0138070b021119021d0002001c0002000e01000001033100120702200100000103310112070212010000010331021207020500070004050200040603000400030104010402004c00",
    "abi": {
      "address": "0x1",
      "name": "code",
      "friends": [
        "0x1::object_code_deployment"
      ],
      "exposed_functions": [
        {
          "name": "grant_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "can_change_upgrade_policy_to",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::code::UpgradePolicy",
            "0x1::code::UpgradePolicy"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "check_code_publishing_permission",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "freeze_code_object",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::code::PackageRegistry>"
          ],
          "return": []
        },
        {
          "name": "publish_package",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::code::PackageMetadata",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "publish_package_txn",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "upgrade_policy_arbitrary",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::code::UpgradePolicy"
          ]
        },
        {
          "name": "upgrade_policy_compat",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::code::UpgradePolicy"
          ]
        },
        {
          "name": "upgrade_policy_immutable",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::code::UpgradePolicy"
          ]
        }
      ],
      "structs": [
        {
          "name": "AllowedDep",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "module_name",
              "type": "0x1::string::String"
            }
          ]
        },
        {
          "name": "CodePublishingPermission",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "ModuleMetadata",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "name",
              "type": "0x1::string::String"
            },
            {
              "name": "source",
              "type": "vector<u8>"
            },
            {
              "name": "source_map",
              "type": "vector<u8>"
            },
            {
              "name": "extension",
              "type": "0x1::option::Option<0x1::copyable_any::Any>"
            }
          ]
        },
        {
          "name": "PackageDep",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "package_name",
              "type": "0x1::string::String"
            }
          ]
        },
        {
          "name": "PackageMetadata",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "name",
              "type": "0x1::string::String"
            },
            {
              "name": "upgrade_policy",
              "type": "0x1::code::UpgradePolicy"
            },
            {
              "name": "upgrade_number",
              "type": "u64"
            },
            {
              "name": "source_digest",
              "type": "0x1::string::String"
            },
            {
              "name": "manifest",
              "type": "vector<u8>"
            },
            {
              "name": "modules",
              "type": "vector<0x1::code::ModuleMetadata>"
            },
            {
              "name": "deps",
              "type": "vector<0x1::code::PackageDep>"
            },
            {
              "name": "extension",
              "type": "0x1::option::Option<0x1::copyable_any::Any>"
            }
          ]
        },
        {
          "name": "PackageRegistry",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "packages",
              "type": "vector<0x1::code::PackageMetadata>"
            }
          ]
        },
        {
          "name": "PublishPackage",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "code_address",
              "type": "address"
            },
            {
              "name": "is_upgrade",
              "type": "bool"
            }
          ]
        },
        {
          "name": "UpgradePolicy",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "policy",
              "type": "u8"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0f01002c022cbe0103ea01e50704cf09b20105810bed0707ee12811908ef2b20068f2c6610f52ca0170a9544d9010bee450c0cfa45f8210df2671c0e8e68120fa068090000000a0010001200170019001d0028002a002f0046005400630070007200860100970100af0100b7010002000106010001000406000005060100010006060000070401000101090400000b05010001000d0000020f0701000103110b0000130401000100140800041604020301000105180700001a0600061c0700001e060000220801000107270701000008290400002b08010001092e04010601003106000032060000330501000100340800003505010001003600000037060000390800003b0800033d0600033f0600034106000042080000440000035a080003660000028f01020011b0010600004500010100010a4704040001000805040100010048060301000100490708010001004a0908010001004b0a03010001004c0104010001004d0b03010001004e0c01010001004f0d030100010023030e0100010050030f0100010024030e0100010025031001000100510f040100010052031101000107531314010001074515020100010b5117040108010055190301000107561a0201000102571b0f0108010758131d0100010b59171e010801035520030108010a5b040400010a5c040400010b5d1714010801075e1523010001085f24030001096027030106010a6104040001006203120100010c6403140001006501280100010b4f290300010b67170f01080103680f1400010c6903140001006a0103010001006b2b140100010b6b2c14010801006c2e01010001006d0401010001086e2403000100260330010001006f0330010001032631300108010d71340f00010e733414000103740b0300010b4e36280108010075280101000100760301010001007738030100010278390f000103793a030001007a3c0300010a7b04040001007c1903010001037d3d030001057e033e010001057f3f0f000108800140320001078101021a010001078201031a010001036d42280001008301441c0100010084014403010001008501340300010f87013403000104880103470203040100890134030100010c8a0103140001048b01481402030001058c01030e010001068d01490e0001028e01394a00010b90014b0300010291014c4d00010292014c31010801046e4e030203000109930102030106010394014c5000010395014c5100010396014c1c000104584852020300011097010f4d000106980153540001029901554a0001009a010d03010001039b01571200010b9c01171e010801039d0129030001009e015903010001009f015a0301000100a0015c0101000100a1015d0301000103a2015712000102a3010f14010801034c2804000100a401616201000100a501636401000100a601666701000106a70153040001088801142200010aa8010404000100a901070801000100aa010f1401000100ab01031401000100ac010f1401000100ad010f030100010aae010404000109af016b6c01060111b1016c0f000111b2016c04000103b301311401080103b4016e0301080109b5016f0301060100b601710301000112b801720301000100b901340301000100ba01031401000100bb011275000100bc01031401000100bd01031401000100be01340301000113bf010f0301000113c001346f01060100c1016203000103c2017912000107c3017a0301000100c4016403000103c5017b12000100c6016703000103c7017c12000100c8015d0301000100c90134030100010502070209020a020c0210021112121213160002060215121616111c171c1816191f1c1611221d221f2603022102230225162a162c022f02301611321d3215321f353416350236023e021722413242324502121c48464b464c020b020d020e0251165246534f41504151411c57465d16161f645f1150125011511251412242226e026d0272267235536d2802751f761f77267735790f7002413e423e4112421280010281012681013584011c84015084015102070b0a01090003010b0a01090001090000010301060b0a01090002070b0a0109000b0a01090005060c080f080f0201030b060109000b180109000b1a01090006060c080f080f020101020b0a010900060b0601090003060c050302060c0302050b0a01090001080f01050102010b12010b08010809010b0801080901060b12010900010101070b1201090001080902050b08010900040b12010b08010809050303030503060b06010900010b1201090001060b0801090001082101060900010b08010824010824030608210b08010900030c0505030303060b060109000b12010b080108090b0801080905060b120108210b12010b08010809010108130107090002070813040203070b1201081301080102070b1501090009000108250205082505070b14010900050b08010809010102050303050b08010900030505030b12010b0801080903010203060b1a01090002070b12010813070813010b120104010b080109000104040b1201040b12010b080108090b120104070401060c01080303060c0b08010900030c0505050303030b08010809070b140109000b0a01090008250b12010b080108090102060c0b0a01090002050503060c0305060505030b080108090b080108090502060c0103060821050301080d0106080d0106081302060b120108130b120104020b080108090302030b08010809010b06010900040b12010b080108090b0801080905070b1201082102080d0b08010809010b0c020900090102060b0c02090009010900010a02010826070608260b120104080f080f02080f080f01060826010c03070b0c02090009010900090101081c01081f010820010609010106080f01060a0202060c0a020e07080b080d010108260c080d0b0801080908200821081f081e0c080f0106082507050b08010809010108250b080108090b08010824010b18010900010b1a0109000f07080b080d010108260c060c080d0b0801080908200821081f081e0c080f01070b0a0109000205060b1801090001070b1401090001081d020b080108090501060b06010900020821080701060b1a01090002081f081b040b12010b080108090b0801080905070b1201081f01060b180109000208200823040b12010b080108090b0801080905070b120108200705060c080f080f020b120108130b110109000401050b080108090101060b1501090001060827010816020b0801090001010b15010900070b150108030b15010801010b0a010900010b080108090b08010824010a0501070a090004010a050a0503030b12010b080108090b0801080905010b1201080d02050b1201080d0301060b0c02080d0b08010809080d0305060c0b140109000106082102070b1201090009000106081f0106082004636f696e074465706f736974076163636f756e7406616d6f756e740c4465706f7369744576656e740857697468647261770d57697468647261774576656e7410416767726567617461626c65436f696e0576616c75650a41676772656761746f720a61676772656761746f720e4275726e4361706162696c6974790b64756d6d795f6669656c640e4275726e52656652656365697074086d65746164617461064f626a656374066f626a656374084d657461646174610e66756e6769626c655f617373657404436f696e11436f696e436f6e76657273696f6e4d61701a636f696e5f746f5f66756e6769626c655f61737365745f6d6170055461626c65057461626c650854797065496e666f09747970655f696e666f0b436f696e4465706f73697409636f696e5f7479706506537472696e6706737472696e6717436f696e4576656e7448616e646c6544656c6574696f6e1d6576656e745f68616e646c655f6372656174696f6e5f616464726573732c64656c657465645f6465706f7369745f6576656e745f68616e646c655f6372656174696f6e5f6e756d6265722d64656c657465645f77697468647261775f6576656e745f68616e646c655f6372656174696f6e5f6e756d62657208436f696e496e666f046e616d650673796d626f6c08646563696d616c7306737570706c79064f7074696f6e066f7074696f6e124f7074696f6e616c41676772656761746f72136f7074696f6e616c5f61676772656761746f7209436f696e53746f72650666726f7a656e0e6465706f7369745f6576656e74730b4576656e7448616e646c65056576656e740f77697468647261775f6576656e747311436f696e53746f726544656c6574696f6e0c436f696e576974686472617710467265657a654361706162696c6974790d4d6967726174696f6e466c61670e4d696e744361706162696c6974790e4d696e74526566526563656970740c506169724372656174696f6e1f66756e6769626c655f61737365745f6d657461646174615f616464726573730e506169726564436f696e5479706504747970651750616972656446756e6769626c654173736574526566730c6d696e745f7265665f6f7074074d696e74526566107472616e736665725f7265665f6f70740b5472616e736665725265660c6275726e5f7265665f6f7074074275726e5265660c537570706c79436f6e6669670e616c6c6f775f7570677261646573125472616e73666572526566526563656970740765787472616374056572726f7210696e76616c69645f617267756d656e74056d657267650a696e697469616c697a6513696e697469616c697a655f696e7465726e616c046275726e0d6275726e5f696e7465726e616c087472616e73666572087769746864726177076465706f7369740c636f696e5f616464726573730762616c616e63650f7061697265645f6d657461646174610769735f736f6d65167072696d6172795f66756e6769626c655f73746f7265096275726e5f66726f6d0c64657374726f795f736f6d650e6f626a6563745f6164647265737306626f72726f770d7072696d6172795f73746f72650d46756e6769626c6553746f7265096e6f745f666f756e6408696e7465726e616c147072696d6172795f73746f72655f6578697374730a626f72726f775f6d7574037375620a656d69745f6576656e74117065726d697373696f6e5f64656e69656416656e737572655f7061697265645f6d65746164617461086665617475726573286e65775f6163636f756e74735f64656661756c745f746f5f66615f73746f72655f656e61626c656416636f696e5f746f5f66756e6769626c655f61737365740d46756e6769626c654173736574157072696d6172795f73746f72655f616464726573730c73746f72655f6578697374732c6e65775f6163636f756e74735f64656661756c745f746f5f66615f6170745f73746f72655f656e61626c65640c64657374726f795f7a65726f1369735f62616c616e63655f61745f6c65617374046d696e740d6d696e745f696e7465726e616c036164640b636f696e5f737570706c79067369676e65720a616464726573735f6f66137065726d697373696f6e65645f7369676e65721669735f7065726d697373696f6e65645f7369676e65722477697468647261775f7065726d697373696f6e5f636865636b5f62795f616464726573731666756e6769626c655f61737365745f746f5f636f696e047a65726f136465706f7369745f776974685f7369676e6572226372656174655f757365725f646572697665645f6f626a6563745f6164647265737311726566696c6c5f7065726d697373696f6e15616c6c6f775f737570706c795f75706772616465730d696e76616c69645f7374617465116275726e5f66726f6d5f666f725f67617319616464726573735f6275726e5f66726f6d5f666f725f67617307747970655f6f660f6163636f756e745f61646472657373047265616404736f6d65046e6f6e6520636f6e766572745f616e645f74616b655f7061697265645f6275726e5f7265661064657374726f795f6275726e5f6361701a6372656174655f636f696e5f636f6e76657273696f6e5f6d61701073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b036e65770e6372656174655f70616972696e6730636f696e5f746f5f66756e6769626c655f61737365745f6d6967726174696f6e5f666561747572655f656e61626c656408636f6e7461696e7309747970655f6e616d6504757466381f6372656174655f737469636b795f6f626a6563745f61745f616464726573730e436f6e7374727563746f725265662b6372656174655f7072696d6172795f73746f72655f656e61626c65645f66756e6769626c655f61737365740f67656e65726174655f7369676e65721b6f626a6563745f66726f6d5f636f6e7374727563746f725f72656604656d69741167656e65726174655f6d696e745f7265661567656e65726174655f7472616e736665725f7265661167656e65726174655f6275726e5f7265660d6372656174655f7369676e6572056279746573136372656174655f6e616d65645f6f626a656374136465706f7369745f666f725f6761735f6665650e61737365745f6d657461646174611b656e737572655f7072696d6172795f73746f72655f65786973747320756e636865636b65645f6465706f7369745f776974685f6e6f5f6576656e74731264657374726f795f667265657a655f6361701064657374726f795f6d696e745f6361700b657874726163745f616c6c11667265657a655f636f696e5f73746f7265136d657461646174615f66726f6d5f61737365740d6f626a6563745f657869737473136765745f7061697265645f6275726e5f726566136765745f7061697265645f6d696e745f726566176765745f7061697265645f7472616e736665725f726566066c656e6774680e616c72656164795f65786973747325696e697469616c697a655f776974685f706172616c6c656c697a61626c655f737570706c791569735f6163636f756e745f726567697374657265641369735f636f696e5f696e697469616c697a65641469735f636f696e5f73746f72655f66726f7a656e1f6d617962655f636f6e766572745f746f5f66756e6769626c655f73746f72650b756e617661696c61626c65046775696404475549440f63726561746f725f616464726573730c6372656174696f6e5f6e756d0969735f66726f7a656e187365745f66726f7a656e5f666c61675f696e7465726e616c0e64657374726f795f68616e646c65246d6967726174655f636f696e5f73746f72655f746f5f66756e6769626c655f73746f726506766563746f720772657665727365196d6967726174655f746f5f66756e6769626c655f73746f7265167061697265645f6275726e5f7265665f6578697374730b7061697265645f636f696e167061697265645f6d696e745f7265665f6578697374731a7061697265645f7472616e736665725f7265665f6578697374730872656769737465720d72656769737465725f636f696e106e65775f6576656e745f68616e646c651672657475726e5f7061697265645f6275726e5f726566116275726e5f7265665f6d657461646174610466696c6c1672657475726e5f7061697265645f6d696e745f726566116d696e745f7265665f6d657461646174611a72657475726e5f7061697265645f7472616e736665725f726566157472616e736665725f7265665f6d6574616461746113756e667265657a655f636f696e5f73746f72650e757067726164655f737570706c790a6170746f735f636f696e0f7472616e73616374696f6e5f6665650767656e6573697300000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000a052000000000000000000000000000000000000000000000000000000000000000010a021b1a3078313a3a6170746f735f636f696e3a3a4170746f73436f696e0a02010014636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631ec161b01000000000000001b45434f494e5f494e464f5f414444524553535f4d49534d415443486541646472657373206f66206163636f756e74207768696368206973207573656420746f20696e697469616c697a65206120636f696e2060436f696e547970656020646f65736e2774206d6174636820746865206465706c6f796572206f66206d6f64756c6502000000000000001c45434f494e5f494e464f5f414c52454144595f5055424c49534845442b60436f696e547970656020697320616c726561647920696e697469616c697a6564206173206120636f696e03000000000000001845434f494e5f494e464f5f4e4f545f5055424c49534845442c60436f696e5479706560206861736e2774206265656e20696e697469616c697a6564206173206120636f696e04000000000000001d45434f494e5f53544f52455f414c52454144595f5055424c495348454445446570726563617465642e204163636f756e7420616c7265616479206861732060436f696e53746f726560207265676973746572656420666f722060436f696e547970656005000000000000001945434f494e5f53544f52455f4e4f545f5055424c4953484544344163636f756e74206861736e277420726567697374657265642060436f696e53746f72656020666f722060436f696e547970656006000000000000001545494e53554646494349454e545f42414c414e4345284e6f7420656e6f75676820636f696e7320746f20636f6d706c657465207472616e73616374696f6e07000000000000001d454445535452554354494f4e5f4f465f4e4f4e5a45524f5f544f4b454e1d43616e6e6f742064657374726f79206e6f6e2d7a65726f20636f696e730a00000000000000074546524f5a454e3b436f696e53746f72652069732066726f7a656e2e20436f696e732063616e6e6f74206265206465706f7369746564206f722077697468647261776e0b000000000000002245434f494e5f535550504c595f555047524144455f4e4f545f535550504f525445444543616e6e6f7420757067726164652074686520746f74616c20737570706c79206f6620636f696e7320746f20646966666572656e7420696d706c656d656e746174696f6e2e0c000000000000001345434f494e5f4e414d455f544f4f5f4c4f4e471c4e616d65206f662074686520636f696e20697320746f6f206c6f6e670d000000000000001545434f494e5f53594d424f4c5f544f4f5f4c4f4e471e53796d626f6c206f662074686520636f696e20697320746f6f206c6f6e670e000000000000002245414747524547415441424c455f434f494e5f56414c55455f544f4f5f4c415247455c5468652076616c7565206f6620616767726567617461626c6520636f696e207573656420666f72207472616e73616374696f6e2066656573207265646973747269627574696f6e20646f6573206e6f742066697420696e207536342e0f000000000000000c455041495245445f434f494e404572726f7220726567617264696e672070616972656420636f696e2074797065206f66207468652066756e6769626c65206173736574206d657461646174612e100000000000000016455041495245445f46554e4749424c455f41535345543e4572726f7220726567617264696e67207061697265642066756e6769626c65206173736574206d65746164617461206f66206120636f696e20747970652e11000000000000001345434f494e5f545950455f4d49534d415443484d54686520636f696e20747970652066726f6d20746865206d617020646f6573206e6f74206d61746368207468652063616c6c696e672066756e6374696f6e207479706520617267756d656e742e12000000000000002b45434f494e5f544f5f46554e4749424c455f41535345545f464541545552455f4e4f545f454e41424c4544445468652066656174757265206f66206d6967726174696f6e2066726f6d20636f696e20746f2066756e6769626c65206173736574206973206e6f7420656e61626c65642e130000000000000025455041495245445f46554e4749424c455f41535345545f524546535f4e4f545f464f554e443050616972656446756e6769626c65417373657452656673207265736f7572636520646f6573206e6f742065786973742e14000000000000001a454d494e545f5245465f524543454950545f4d49534d415443483d546865204d696e745265665265636569707420646f6573206e6f74206d6174636820746865204d696e7452656620746f2062652072657475726e65642e150000000000000013454d494e545f5245465f4e4f545f464f554e441b546865204d696e7452656620646f6573206e6f742065786973742e16000000000000001e455452414e534645525f5245465f524543454950545f4d49534d4154434845546865205472616e736665725265665265636569707420646f6573206e6f74206d6174636820746865205472616e7366657252656620746f2062652072657475726e65642e170000000000000017455452414e534645525f5245465f4e4f545f464f554e441f546865205472616e7366657252656620646f6573206e6f742065786973742e18000000000000001a454255524e5f5245465f524543454950545f4d49534d415443483d546865204275726e5265665265636569707420646f6573206e6f74206d6174636820746865204275726e52656620746f2062652072657475726e65642e190000000000000013454255524e5f5245465f4e4f545f464f554e441b546865204275726e52656620646f6573206e6f742065786973742e1a0000000000000020454d4947524154494f4e5f4652414d45574f524b5f4e4f545f454e41424c454445546865206d6967726174696f6e2070726f636573732066726f6d20636f696e20746f2066756e6769626c65206173736574206973206e6f7420656e61626c6564207965742e1b000000000000001e45434f494e5f434f4e56455253494f4e5f4d41505f4e4f545f464f554e442b54686520636f696e20636f6e76657269736f6e206d6170206973206e6f742063726561746564207965742e1c000000000000001b454150545f50414952494e475f49535f4e4f545f454e41424c45441f4150542070616972696e67206973206e6f742065616e626c6564207965742e1d000000000000001845434f494e5f444543494d414c535f544f4f5f4c415247452654686520646563696d616c73206f662074686520636f696e20697320746f6f206c617267652e0a074465706f7369740104000857697468647261770104000b436f696e4465706f7369740104000c436f696e57697468647261770104000c506169724372656174696f6e0104000d4d6967726174696f6e466c6167010301183078313a3a6f626a6563743a3a4f626a65637447726f75700e506169726564436f696e54797065010301183078313a3a6f626a6563743a3a4f626a65637447726f757011436f696e53746f726544656c6574696f6e01040017436f696e4576656e7448616e646c6544656c6574696f6e0104001750616972656446756e6769626c65417373657452656673010301183078313a3a6f626a6563743a3a4f626a65637447726f75700f046e616d6501010006737570706c790101000673796d626f6c0101000762616c616e636501010008646563696d616c730101000b636f696e5f737570706c790101000b7061697265645f636f696e0101000f7061697265645f6d657461646174610101001369735f62616c616e63655f61745f6c656173740101001369735f636f696e5f696e697469616c697a65640101001469735f636f696e5f73746f72655f66726f7a656e0101001569735f6163636f756e745f72656769737465726564010100167061697265645f6275726e5f7265665f657869737473010100167061697265645f6d696e745f7265665f6578697374730101001a7061697265645f7472616e736665725f7265665f6578697374730101000002020205030301020103030202020205030303020103030402010808050602010c010702010e0b080108090a020108030b0201150b0c02080d0b080108090e02031b080f020503031002031f052003210311020423080f24080f2502260b12010813140204000b0a0109002c012d0b15010801300b150108031602041b080f1f05200321031702031b080f020503031802010c011902010c011a02010c011b02010e0b080108091c02021b080d38051d02013a080d1e02033c0b1201081f3e0b12010820400b1201082122020143012302010e0b0801080907020b020c0205020f0211020001000003180a003700140a01260413280a003700140a01170b00360015280b013900020b00010606000000000000001101270201000003040b003700140203010000040f28280b013a000c02280a003700140b02160b003600150204010002080b03080b000b010b020b030b0409380002060100010b03060b003801010b01010208010404080b0c1401080b000b0238020c030b010b033803020b0100010b030538043d01370114020d0100010b030538043d01370214020e0100010b030538043d01370314020f010002080c181f38050c010a000c020a023b02041c0b023d0237043700140c030e01380604190b000d01380738080c040b030b0416020600000000000000000c0405150600000000000000000c03050d14010004080b0c1521780a010600000000000000002104070b0201020a000c030a030c040a043b0204750b043d0237043700140c050a050a0126045a0b010c060600000000000000000c070a0606000000000000000024032105280a003c0236040b0638090a02380a0a070600000000000000002404570b020138050c090e09380604540b09380b0c0a0e0a380c0c0b0a0b291504510b0b2b1510050c0c0a0c380d044c0b0c380e0b003805380b380f0b073810020b0c01061900000000000000111a27061300000000000000111b27061000000000000000111a270b0201054b38050c0d0e0d380604720b030b0d380b38110c0e0b0e046d0a050c060b010b05170c07051c0b0201060600000000000000110127090c0e05640600000000000000000c050514070000010b251b280b003a000c010a01060000000000000000220309051638043c0136050c020a022e381204180b0238130a0135111e0b01020b020105160a010003080b0c2a420a003b02041b0b003c020c020a0237061403160a0236070e01370014120138140b0236040b013815020b0201060a0000000000000011202738160a000c030c0411220437080c050b050431080c060b06042e0b000b01381711240515060500000000000000111a270b030b04381811260c0605271127043f0e04380c0700210c050523090c05052328010000030a280b003a000600000000000000002104070206070000000000000011012729010002080c2d280a000c020a023b0204250b023d0237043700140c030a030a01260411080238050c040b010b03170c050e04380604220b000d0438070b0538190c060b0602090c0605200600000000000000000c03050b2b0100010b03050b00381a0b0101022c0000010b2f1e0a0006000000000000000021040706000000000000000039000238043c0136050c010a012e3812041b0b0138130c02280b020a0035112d280b003900020b010105172e010002080b331c381b0c0038050c010e0138060308051a0d013807381c0c020e00381d0310051a0d00381e0c030a03140b02381f160b03150b000209010004080b0c1437740a0011310c020a020c030a030c040a043b0204710b043d0237043700140c050a050a012604560b010c060600000000000000000c070a0606000000000000000024045338160c080a001132032205280a000a020b0838180a0611330b023c020c090a09370614034c0a0936080a06120338200b0936040b0638090c0a0a070600000000000000002404490b003805380b0b0738210c0b0d0a0b0b382238150b0a020b000105470b00010b0901060a0000000000000011202738230c0a053938050c0c0e0c3806046e0b030b0c380b38110c0d0b0d04690a050c060b010b05170c0705180b0001060600000000000000110127090c0d05600600000000000000000c0505103601000003042806000000000000000039000237010003080b0c3b1c38160a0011310c020b000e013700140a020c030c040c000c060e06380c0c070b030b0711380c030b000b040b0311390b020b013803023a0100000305060b000000000000000b0001113b273c030004080b0c1521780a010600000000000000002104070b0201020a000c030a030c040a043b0204750b043d0237043700140c050a050a0126045a0b010c060600000000000000000c070a0606000000000000000024032105280a003c0236040b0638090a02380a0a070600000000000000002404570b020138050c090e09380604540b09380b0c0a0e0a380c0c0b0a0b291504510b0b2b1510050c0c0a0c380d044c0b0c380e0b003805380b38180b07113d020b0c01061900000000000000111a27061300000000000000111b27061000000000000000111a270b0201054b38050c0d0e0d380604720b030b0d380b38110c0e0b0e046d0a050c060b010b05170c07051c0b0201060600000000000000110127090c0e05640600000000000000000c0505140c0000003e0538240c000e00113f022f0100010b411338043d0137050c000a003812040e0b003825114038260c010b01020b000138270c01050c23010002080b430538160b00380111430244010002081545260b00382838050c010e01380604230b01380b0c020e02380c0c030a03291504200b032a150f050c040a042e380d041b0b043829020b0401061900000000000000111a27061300000000000000111b27061000000000000000111a2746010400030d0a00114707012908030a0b00382a12082d08020b0001050949010402080b56780b001147114a047507012908047207012a080c0138240c020a01100a0a02382b04120557382c0702114d210c030a03036f080c040b04046a0b03045e07010700114e0c050e053827382d382e382f0703114d0703114d114f0e0511500c060e060c0038240c070a000a0712142d140e0538300c080a010f0a0a070a0838310b070e08380c121338320e0511540e0511550c090e0511560c0a38330b0938340b0a383512150c0c0b000b0c2d150b01100a0b023836140102070011580c0d0e0d382c0c0e0e0e115914115a0c0505230b0101061c00000000000000113b27080c04051b061b00000000000000111a27061a00000000000000113b275b030003080b0c583a0a003b0204090b003c0236040b0138150238160a000c020c031122042f080c040b040429080c050b0504260b0138170c060e06115c0c070b000b0738370c080e0838380b06115e0508060500000000000000111a270b020b03381811260c050515112704370e03380c0700210c040511090c0405114501000003040b003a0301025f01000003040b003a0401026001000003040b003a05010221030002080b5b75114a047207012908046f07012a080c0038240c010a00100a0a01382b04100555382c0702114d210c020a02036c080c030b0304670b02045b07010700114e0c040e043827382d382e382f0703114d0703114d114f0e0411500c050e050c0638240c070a060a0712142d140e0438300c080a000f0a0a070a0838310b070e08380c121338320e0411540e0411550c090e0411560c0a38330b0938340b0a383512150c0c0b060b0c2d150b00100a0b0138361402070011580c0d0e0d382c0c0e0e0e115914115a0c0405210b0001061c00000000000000113b27090c030519061b00000000000000111a27061a00000000000000113b2761010000040d0a003700140c01280600000000000000000b00360015280b01390002620104010c5e0a0b003c020c020b0101080b0236061502350000020b14601a0e0011630c010e01380c0c020a02383904170b022b14100b1438242104140b001165381a02061100000000000000110127060f00000000000000111a27660100020815452838050c010b00010e01380604250b01380b0c020e02380c0c030a03291504220b032a150f050c040a042e380d041d0b0438290b021206020b0401061900000000000000111a27061300000000000000111b27061000000000000000111a27670100020815652838050c010b00010e01380604250b01380b0c020e02380c0c030a03291504220b032a150f0c0c040a042e383a041d0b04383b0b021212020b0401061500000000000000111a27061300000000000000111b27061000000000000000111a27680100020815682838050c010b00010e01380604250b01380b0c020e02380c0c030a03291504220b032a150f0d0c040a042e383c041d0b04383d0b021217020b0401061700000000000000111a27061300000000000000111b27061000000000000000111a2705000002080b695f0a0011310c060a000c070a071132045c0a070b07113138163818060000000000000000113338040a062104570b063b0103520e01116906200000000000000025044d0e0211690620000000000000002504480a0331202504430b010c080b020c090b030c0a0b0404400b05116a383e0c0b0b080b090b0a0b0b39010c0c0b000b0c3f0109390309390409390502383f0c0b05300b0001061d000000000000001101270b0001060d000000000000001101270b0001060c000000000000001101270b0001060200000000000000116b270b00010601000000000000001101270b0701050f6c030002080b030a0a0011470b000b010b020b030b04083800026d010002080b6a2a384004270a003b020409080c010b010238160b000c020c031122041c080c040b040416080c0105070b020b03381811260c010507112704240e03380c0700210c040511090c0405110603000000000000001101276e010000030338043b01026f010003080b0c030a0a003841030508020b003d023706140270000003080b0c704e114a03050612000000000000001171270a003b02030905410a003e023a020c010c020c030c043840044b0e04370014060000000000000000240c050b05044838160c060b000b0638370c07382c0e02384211730e02384211740e0138431174120d38440e043700140600000000000000002104420b0438450a030a07384622033a053d0b070b0338470b0238480b013849020e0738380b043817115e05340b043845053d090c05051878010403080b0c73221122041f080c010b010307051e0b000c020d02384a0b020c030e03410f0c040a0406000000000000000024041c0d03450f384b0b04060100000000000000170c0405100b03460f00000000000000000211270c0105047a010403080b0c0f130a0011310c010a00113204100a000b0011313816381806000000000000000011330b01384b020b0001050d7b0100020815741938050c000e00380604160b00380b0c010e01380c0c020a02291504130b022b151005380d02061300000000000000111b27061000000000000000111a277c0100011476110e00380c0c010a012914040e0b012b14100b14384c0c020b0202384d0c02050c1001000108771f07012908041c114a0c000b000308051a07012b08100a0c0138240c020a010a02382b04180b010b02383614384e020b0101384f02090c0005057d0100020815741938050c000e00380604160b00380b0c010e01380c0c020a02291504130b022b15100c383a02061300000000000000111b27061000000000000000111a277e0100020815741938050c000e00380604160b00380b0c010e01380c0c020a02291504130b022b15100d383c02061300000000000000111b27061000000000000000111a277f010002080b78270a0011310c010a000c020a02113204240a020b0211313816381806000000000000000011330a01384104150b0001020b0138500600000000000000003900090a0038510a00385239020c030b000b033f02020b0201050f82010100011512120b0113060c020e001183010a0221040f0e02380c2a150f050b0038530206180000000000000011012785010100011512120b0113120c020e001186010a0221040f0e02380c2a150f0c0b0038540206140000000000000011012787010100011512120b0113170c020e001188010a0221040f0e02380c2a150f0d0b0038550206160000000000000011012789010104010c5e0a0b003c020c020b0101090b02360615028a010104000305060b000000000000000b0001113b2707000b000b010b020c0015020b030c010c020c03080014001500150100020102020203020402060207020802090200ca0100cb0100cc0100",
    "abi": {
      "address": "0x1",
      "name": "coin",
      "friends": [
        "0x1::aptos_coin",
        "0x1::transaction_fee",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "extract",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::coin::Coin<T0>",
            "u64"
          ],
          "return": [
            "0x1::coin::Coin<T0>"
          ]
        },
        {
          "name": "value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::coin::Coin<T0>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "merge",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::coin::Coin<T0>",
            "0x1::coin::Coin<T0>"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "0x1::string::String",
            "0x1::string::String",
            "u8",
            "bool"
          ],
          "return": [
            "0x1::coin::BurnCapability<T0>",
            "0x1::coin::FreezeCapability<T0>",
            "0x1::coin::MintCapability<T0>"
          ]
        },
        {
          "name": "burn",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::coin::Coin<T0>",
            "&0x1::coin::BurnCapability<T0>"
          ],
          "return": []
        },
        {
          "name": "transfer",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "name",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "symbol",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "decimals",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "u8"
          ]
        },
        {
          "name": "balance",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "burn_from",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address",
            "u64",
            "&0x1::coin::BurnCapability<T0>"
          ],
          "return": []
        },
        {
          "name": "deposit",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address",
            "0x1::coin::Coin<T0>"
          ],
          "return": []
        },
        {
          "name": "destroy_zero",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::coin::Coin<T0>"
          ],
          "return": []
        },
        {
          "name": "is_balance_at_least",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "mint",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "u64",
            "&0x1::coin::MintCapability<T0>"
          ],
          "return": [
            "0x1::coin::Coin<T0>"
          ]
        },
        {
          "name": "supply",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::option::Option<u128>"
          ]
        },
        {
          "name": "withdraw",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "u64"
          ],
          "return": [
            "0x1::coin::Coin<T0>"
          ]
        },
        {
          "name": "zero",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::coin::Coin<T0>"
          ]
        },
        {
          "name": "deposit_with_signer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "0x1::coin::Coin<T0>"
          ],
          "return": []
        },
        {
          "name": "allow_supply_upgrades",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "bool"
          ],
          "return": []
        },
        {
          "name": "burn_from_for_gas",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address",
            "u64",
            "&0x1::coin::BurnCapability<T0>"
          ],
          "return": []
        },
        {
          "name": "coin_supply",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::option::Option<u128>"
          ]
        },
        {
          "name": "coin_to_fungible_asset",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::coin::Coin<T0>"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "convert_and_take_paired_burn_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::coin::BurnCapability<T0>"
          ],
          "return": [
            "0x1::fungible_asset::BurnRef"
          ]
        },
        {
          "name": "create_coin_conversion_map",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "create_pairing",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "deposit_for_gas_fee",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address",
            "0x1::coin::Coin<T0>"
          ],
          "return": []
        },
        {
          "name": "destroy_burn_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::coin::BurnCapability<T0>"
          ],
          "return": []
        },
        {
          "name": "destroy_freeze_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::coin::FreezeCapability<T0>"
          ],
          "return": []
        },
        {
          "name": "destroy_mint_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::coin::MintCapability<T0>"
          ],
          "return": []
        },
        {
          "name": "ensure_paired_metadata",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ]
        },
        {
          "name": "extract_all",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::coin::Coin<T0>"
          ],
          "return": [
            "0x1::coin::Coin<T0>"
          ]
        },
        {
          "name": "freeze_coin_store",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address",
            "&0x1::coin::FreezeCapability<T0>"
          ],
          "return": []
        },
        {
          "name": "get_paired_burn_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::coin::BurnCapability<T0>"
          ],
          "return": [
            "0x1::fungible_asset::BurnRef",
            "0x1::coin::BurnRefReceipt"
          ]
        },
        {
          "name": "get_paired_mint_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::coin::MintCapability<T0>"
          ],
          "return": [
            "0x1::fungible_asset::MintRef",
            "0x1::coin::MintRefReceipt"
          ]
        },
        {
          "name": "get_paired_transfer_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::coin::FreezeCapability<T0>"
          ],
          "return": [
            "0x1::fungible_asset::TransferRef",
            "0x1::coin::TransferRefReceipt"
          ]
        },
        {
          "name": "initialize_with_parallelizable_supply",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "0x1::string::String",
            "0x1::string::String",
            "u8",
            "bool"
          ],
          "return": [
            "0x1::coin::BurnCapability<T0>",
            "0x1::coin::FreezeCapability<T0>",
            "0x1::coin::MintCapability<T0>"
          ]
        },
        {
          "name": "is_account_registered",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_coin_initialized",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_coin_store_frozen",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "migrate_coin_store_to_fungible_store",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "vector<address>"
          ],
          "return": []
        },
        {
          "name": "migrate_to_fungible_store",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "paired_burn_ref_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "paired_coin",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": [
            "0x1::option::Option<0x1::type_info::TypeInfo>"
          ]
        },
        {
          "name": "paired_metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::option::Option<0x1::object::Object<0x1::fungible_asset::Metadata>>"
          ]
        },
        {
          "name": "paired_mint_ref_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "paired_transfer_ref_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "register",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "return_paired_burn_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fungible_asset::BurnRef",
            "0x1::coin::BurnRefReceipt"
          ],
          "return": []
        },
        {
          "name": "return_paired_mint_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fungible_asset::MintRef",
            "0x1::coin::MintRefReceipt"
          ],
          "return": []
        },
        {
          "name": "return_paired_transfer_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fungible_asset::TransferRef",
            "0x1::coin::TransferRefReceipt"
          ],
          "return": []
        },
        {
          "name": "unfreeze_coin_store",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address",
            "&0x1::coin::FreezeCapability<T0>"
          ],
          "return": []
        },
        {
          "name": "upgrade_supply",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Deposit",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "DepositEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "Withdraw",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "WithdrawEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "AggregatableCoin",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "value",
              "type": "0x1::aggregator::Aggregator"
            }
          ]
        },
        {
          "name": "BurnCapability",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "BurnRefReceipt",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            }
          ]
        },
        {
          "name": "Coin",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "value",
              "type": "u64"
            }
          ]
        },
        {
          "name": "CoinConversionMap",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "coin_to_fungible_asset_map",
              "type": "0x1::table::Table<0x1::type_info::TypeInfo, 0x1::object::Object<0x1::fungible_asset::Metadata>>"
            }
          ]
        },
        {
          "name": "CoinDeposit",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "coin_type",
              "type": "0x1::string::String"
            },
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "CoinEventHandleDeletion",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "event_handle_creation_address",
              "type": "address"
            },
            {
              "name": "deleted_deposit_event_handle_creation_number",
              "type": "u64"
            },
            {
              "name": "deleted_withdraw_event_handle_creation_number",
              "type": "u64"
            }
          ]
        },
        {
          "name": "CoinInfo",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "name",
              "type": "0x1::string::String"
            },
            {
              "name": "symbol",
              "type": "0x1::string::String"
            },
            {
              "name": "decimals",
              "type": "u8"
            },
            {
              "name": "supply",
              "type": "0x1::option::Option<0x1::optional_aggregator::OptionalAggregator>"
            }
          ]
        },
        {
          "name": "CoinStore",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "coin",
              "type": "0x1::coin::Coin<T0>"
            },
            {
              "name": "frozen",
              "type": "bool"
            },
            {
              "name": "deposit_events",
              "type": "0x1::event::EventHandle<0x1::coin::DepositEvent>"
            },
            {
              "name": "withdraw_events",
              "type": "0x1::event::EventHandle<0x1::coin::WithdrawEvent>"
            }
          ]
        },
        {
          "name": "CoinStoreDeletion",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "coin_type",
              "type": "0x1::string::String"
            },
            {
              "name": "event_handle_creation_address",
              "type": "address"
            },
            {
              "name": "deleted_deposit_event_handle_creation_number",
              "type": "u64"
            },
            {
              "name": "deleted_withdraw_event_handle_creation_number",
              "type": "u64"
            }
          ]
        },
        {
          "name": "CoinWithdraw",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "coin_type",
              "type": "0x1::string::String"
            },
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "FreezeCapability",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "MigrationFlag",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "MintCapability",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "MintRefReceipt",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            }
          ]
        },
        {
          "name": "PairCreation",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "coin_type",
              "type": "0x1::type_info::TypeInfo"
            },
            {
              "name": "fungible_asset_metadata_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "PairedCoinType",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "type",
              "type": "0x1::type_info::TypeInfo"
            }
          ]
        },
        {
          "name": "PairedFungibleAssetRefs",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "mint_ref_opt",
              "type": "0x1::option::Option<0x1::fungible_asset::MintRef>"
            },
            {
              "name": "transfer_ref_opt",
              "type": "0x1::option::Option<0x1::fungible_asset::TransferRef>"
            },
            {
              "name": "burn_ref_opt",
              "type": "0x1::option::Option<0x1::fungible_asset::BurnRef>"
            }
          ]
        },
        {
          "name": "SupplyConfig",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "allow_upgrades",
              "type": "bool"
            }
          ]
        },
        {
          "name": "TransferRefReceipt",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b010002020208030a30053a23075d7b08d8012010f801b9010ab1030d0cbe037e0dbc04060fc2040400000001060000030700000600010001000703040001000406020001000806070001000908090001000206040001000a0a020001000b0a0700010205070301080001030205030108010001060800010502060800060801010101060801046775696404475549440269640249440c6372656174696f6e5f6e756d046164647206637265617465096372656174655f69640f63726561746f725f616464726573730565715f69640f69645f6372656174696f6e5f6e756d1269645f63726561746f725f61646472657373076163636f756e74066f626a656374000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f763185010100000000000000001d45475549445f47454e455241544f525f4e4f545f5055424c49534845445b475549442067656e657261746f72206d757374206265207075626c6973686564206168656164206f66206669727374207573616765206f6620606372656174655f776974685f6361706162696c697479602066756e6374696f6e2e00000002010208010102020403050500030000020d0a01140c020a02060100000000000000160b01150b020b0012011200020101000005040b010b001201020201000005050b001000100114020301000005050b001000100214020401000005050b0010000b0121020501000005040b00100014020601000005040b00100114020701000005040b0010021402000001000101000c000d00",
    "abi": {
      "address": "0x1",
      "name": "guid",
      "friends": [
        "0x1::account",
        "0x1::object"
      ],
      "exposed_functions": [
        {
          "name": "create",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "&mut u64"
          ],
          "return": [
            "0x1::guid::GUID"
          ]
        },
        {
          "name": "create_id",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "0x1::guid::ID"
          ]
        },
        {
          "name": "creation_num",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::guid::GUID"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "creator_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::guid::GUID"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "eq_id",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::guid::GUID",
            "&0x1::guid::ID"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "id",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::guid::GUID"
          ],
          "return": [
            "0x1::guid::ID"
          ]
        },
        {
          "name": "id_creation_num",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::guid::ID"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "id_creator_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::guid::ID"
          ],
          "return": [
            "address"
          ]
        }
      ],
      "structs": [
        {
          "name": "GUID",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "id",
              "type": "0x1::guid::ID"
            }
          ]
        },
        {
          "name": "ID",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creation_num",
              "type": "u64"
            },
            {
              "name": "addr",
              "type": "address"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0701000203020c050e0307111708282010481f0c67080000000100000001000200000001010a02046861736808736861325f32353608736861335f323536000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31000102000101020000",
    "abi": {
      "address": "0x1",
      "name": "hash",
      "friends": [],
      "exposed_functions": [
        {
          "name": "sha2_256",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "sha3_256",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d01001e021e560374ec0204e0034205a204f603079808bb0b08d3132006f313ef0110e215cf040ab11a88010cb91bb3140dec2f2a0f96300400000008001f002a002c0036003c004a004d005000550057005a00660069000107000003070000040a00000507000107070000090700000c0f00000d0600000f07000010070000120700001407000016070000180a0000190800001c0700021e070000240f00002607000535070100000e6b0200002900010001032b00010001042d0103010401042e0104010401002f0001000100300901000101310a0b000102320b0c000101330e0401000100340f1000010537120301000105381304010001003914150001003a16100001003b18150001063d1a1a0001003e1c1d0001003f211900010040211500010041010800010142040e01070100431d08000100442108000100452308000100462419000102471d250001004821190001004926010001074b00270001034c27030001084e291d010001004f0101000109512d040100010552042e0100010553012e0100010054301000010a56011a00010b5804010106010059303400010c5b01010001005c35340001005d30340001045e0401010601095f2d0401000100602601000100613815000100623915000100633b01000109643c0301000100653e0100010d670103000109683f010100010e6a214100010e6c420300010e6d42030001096e4301010001006f4534000100704534000102020302080d08110a070b070817081e081f0b191422140d14111417141e141f1e2820072107220725312019211922192a022b06211d221d3025330733193719370701060c000108110101010900020811070811010805010801010808020708000808010608040106081001060a0201080a010804020708000a02010b1301080101080b01060b1301090001070b13010900020708010a02010b1301080302070800080101080c0207080108030108030103080a02080a080b0b130108010801080c0b13010801080101060803010a0201080f010812040a02080f0a020812020a020a02010809020a02080304081008100810081001081002060c0a080801050108020106090001020705070802060a080803030608080a02050800060a0808030306080802070a090003010b1301090007060a080101030303030b1301080102060c0a020108070107080608060a080301030303060803030b13010803010b13010a02020708110a0208060a0805010303030308050b13010a0201070a0808020608010a02030608000a020a0208060a080101030303060801030b1301080306060c0a020a08100a08100a08100a081001060a090008030a080808100810081008100803080802060c0a080101070a0900110708060a08010a08010308010b1301080108010a08030a080303080308120a02010a08010a080108010108140106081403070a09000309000701030306080308140708030b1301080303060c0a020a02010708110701030306080108140708010b13010801046a776b7310416c6c50726f7669646572734a574b7307656e74726965730c50726f76696465724a574b730d4665646572617465644a574b73034a574b0776617269616e7403416e790c636f707961626c655f616e790c4f49444350726f7669646572046e616d650a636f6e6669675f75726c0c4f627365727665644a574b73134f627365727665644a574b73557064617465640565706f63680550617463680e506174636852656d6f7665416c6c0b64756d6d795f6669656c6411506174636852656d6f7665497373756572066973737565720e506174636852656d6f76654a574b066a776b5f69640e50617463685570736572744a574b036a776b0b506174636865644a574b73075061746368657307706174636865730776657273696f6e075253415f4a574b036b696406537472696e6706737472696e67036b747903616c670165016e16537570706f727465644f49444350726f7669646572730970726f7669646572730e556e737570706f727465644a574b026964077061796c6f61640c6f6e5f6e65775f65706f63681073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b0d636f6e6669675f6275666665720a646f65735f65786973740a657874726163745f76320a696e697469616c697a650b6170706c795f706174636809747970655f6e616d6505627974657306756e7061636b0d72656d6f76655f697373756572064f7074696f6e066f7074696f6e0769735f736f6d6507657874726163740a72656d6f76655f6a776b147570736572745f70726f76696465725f6a776b730a7570736572745f6a776b056572726f7210696e76616c69645f617267756d656e740a6765745f6a776b5f69640f6765745f706174636865645f6a776b137472795f6765745f706174636865645f6a776b146e65775f70617463685f72656d6f76655f616c6c047061636b176e65775f70617463685f72656d6f76655f697373756572146e65775f70617463685f72656d6f76655f6a776b146e65775f70617463685f7570736572745f6a776b0b6e65775f7273615f6a776b0475746638136e65775f756e737570706f727465645f6a776b1470617463685f6665646572617465645f6a776b73067369676e65720a616464726573735f6f661a69735f6170746f735f6672616d65776f726b5f616464726573730362637308746f5f627974657317726567656e65726174655f706174636865645f6a776b7306766563746f720672656d6f766504736f6d65046e6f6e652072656d6f76655f6973737565725f66726f6d5f6f627365727665645f6a776b730f7265636f6e66696775726174696f6e0d63757272656e745f65706f6368056576656e7404656d69741472656d6f76655f6f6964635f70726f76696465720c636861696e5f7374617475730e6173736572745f67656e657369731d72656d6f76655f6f6964635f70726f76696465725f696e7465726e616c2372656d6f76655f6f6964635f70726f76696465725f666f725f6e6578745f65706f6368067570736572740b737761705f72656d6f76650b7365745f70617463686573117472795f6765745f6a776b5f62795f6964157472795f6765745f6a776b5f62795f697373756572187570646174655f6665646572617465645f6a776b5f7365740869735f656d707479197570736572745f696e746f5f6f627365727665645f6a776b730866656174757265732569735f6a776b5f636f6e73656e7375735f7065725f6b65795f6d6f64655f656e61626c656407726576657273650a636f6d70617261746f7211636f6d706172655f75385f766563746f7206526573756c740f69735f677265617465725f7468616e0869735f657175616c06696e73657274147570736572745f6f6964635f70726f7669646572237570736572745f6f6964635f70726f76696465725f666f725f6e6578745f65706f6368187265636f6e66696775726174696f6e5f776974685f646b670767656e657369730000000000000000000000000000000000000000000000000000000000000001052000000000000000000000000000000000000000000000000000000000000000010a021a193078313a3a6a776b733a3a506174636852656d6f7665416c6c0a021d1c3078313a3a6a776b733a3a506174636852656d6f76654973737565720a021a193078313a3a6a776b733a3a506174636852656d6f76654a574b0a021a193078313a3a6a776b733a3a50617463685570736572744a574b0a0213123078313a3a6a776b733a3a5253415f4a574b0a021a193078313a3a6a776b733a3a556e737570706f727465644a574b0a0204035253410a021918544849535f49535f415f44454c4554455f434f4d4d414e4414636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76319b040e01000000000000001145554e45585045435445445f45504f434800010100000000000026454e41544956455f4d495353494e475f5245534f555243455f56414c494441544f525f5345540002000000000000001345554e45585045435445445f56455253494f4e00020100000000000026454e41544956455f4d495353494e475f5245534f555243455f4f425345525645445f4a574b530003000000000000001645554e4b4e4f574e5f50415443485f56415249414e5400030100000000000019454e41544956455f494e434f52524543545f56455253494f4e0004000000000000001445554e4b4e4f574e5f4a574b5f56415249414e5400040100000000000024454e41544956455f4d554c54495349475f564552494649434154494f4e5f4641494c454400050000000000000011454953535545525f4e4f545f464f554e440005010000000000001f454e41544956455f4e4f545f454e4f5547485f564f54494e475f504f57455200060000000000000011454a574b5f49445f4e4f545f464f554e440007000000000000002a45494e5354414c4c5f4645444552415445445f4a574b535f41545f4150544f535f4652414d45574f524b00080000000000000019454645444552415445445f4a574b535f544f4f5f4c415247450009000000000000001a45494e56414c49445f4645444552415445445f4a574b5f5345540001134f627365727665644a574b735570646174656401040000000201020a08010202010008000302010608040502020a0a020b0a020602010008000702020e0300080008020106080409020111010a0201130a020b0202130a02150a020c0202130a021708030d02010008000e02011a0a0808010203130a021b03000a08030f02051d0810200810210810220810230810110201250a0805120202270a02280a02000300010f05190a0011013800041638010c010700290f04120b000107002a0f0c020b010b0215020b000b012d0f05110b000105110401000001150a0011010a0040060000000000000000120f2d0f0a0040070000000000000000120012042d040a0040080000000000000000120c2d0c0b00400700000000000000001200120b2d0b02050000001b6f0e01100011061107140c020a02070121040f400700000000000000000b000f0115020a02070221041f0e0110001438020c030b000e03100214110901050e0a0207032104420e0110001438030c040a000e0410031411090c050e053804043f0d0538050c060d060e04100414110c010b000b06110d01050e0b0001050e0b02070421046a0e0110001438060c070a000e0710051411090c080e08380404620d0838050c090d090e07100614110e010b000b09110d01050e0e0710051406000000000000000040190000000000000000120d0c0905570b0001060300000000000000110f271000000020290a00100711061107140c010a0107052104160b0010071438070c020e0210081107140c030b03020b0107062104240b0010071438080c040e041009140c0305140b0001060400000000000000110f27110100010b15070b000b0111120c020d02380902130100000105091207380a1206021501000001050b001208380b1206021601000001060b000b011209380c1206021701000001060b000b01120a380d12060218010000250c070711190c040b000b040b010b020b03120e380e1202021a01000001060b000b011210380f1202021b010001012b420a00111c111d033d0a00111c0c020a022901033a0b0040070000000000000000120012012d010b022a010c030e010c040600000000000000000c050a0441080c060a050a0623042b0a040a0542080c070a030f0a0b071411050b05060100000000000000160c0505190b04010b032e38100c080e08412a06000800000000000023043702060800000000000000110f270b0001050f0b0001060700000000000000110f271f000003040b0c2c2707002b04100b140c0007002b0c100c0c010600000000000000000c020a0141080c030a020a0323041f0a010a0242080c040d000b041411050b02060100000000000000160c02050e0b01010b00120b07002a0b1502090000002f370a0010010c02090c030600000000000000000c040600000000000000000c050a0241070c06280a050a06230312051e0a020a054207100d140a01210432080c030b050c04280b02010b030b040c07042d0b000f010b07381138120c080b08020b000138130c08052b0b05060100000000000000160c05050c23010003040b0c32110b00110107002a040c020a020f0b0b01110911240b02100b1412053814111f020c00000033380a00100e0c02090c030600000000000000000c040600000000000000000c050a0241190c06280a050a06230312051f0a020a0542190c070a010b071110210433080c030b050c04280b02010b030b040c08042e0b000f0e0b08381538160c090b09020b000138170c09052c0b05060100000000000000160c05050c260100010f01080b001101112707002a0f0b01112802290100010f02110b0011013800040c38010c020d020b0111280b0238180207002b0f140c02050628000000363b0a00100f0c02090c030600000000000000000c040600000000000000000c050a0241060c06280a050a06230312051e0a020a0542061010140a01210436080c030b050c04280b02010b030b040c0704310b000f0f0b0738190c080e08101114381a0c090b09020b0001381b0c09052f0b05060100000000000000160c05050c2c010003040b0c370b0b00110107002a0c0f0c0c020b010b0215111f022d00000033390a00100e0c02090c030600000000000000000c040600000000000000000c050a0241190c06280a050a06230312051f0a020a0542190c070a010b071110210434080c030b050c04280b02010b030b040c08042f0b00100e0b0842191438160c090b09020b000138170c09052d0b05060100000000000000160c05050c2e0000003a3a0a0010010c03090c040600000000000000000c050600000000000000000c060a0341070c07280a060a0723031205200a030a0642070c080a010b08100d14210435080c040b060c05280b03010b040b050c0904300b0010010b0942070b02112d0c0a0b0a020b000138170c0a052e0b06060100000000000000160c06050c120100010b010707002b0b10120b000b01112e022f010401013d450e02381c03400e0241250c060e0341250a0621043b0e0441250a062104360e0541250b062104311113400801000000000000000c070e02381c032d0d0245250d0345250d0445250d05452511180c0c0a010b0c11170c0d0d070b0d440805180b000b07111b020b0001060900000000000000110f270b0001060900000000000000110f270b0001060900000000000000110f270b0001060900000000000000110f2731010003040b0c40b0010b00110107002a040c0211320493010b010c030d03381d0b030c040e0441070c050a05060000000000000000240489010d0445070c060a020f0b0e06100d1411090c070e0738040481010d0738050c080e08101314060100000000000000160e0610131421047c0e06100e140c090d09381e0b090c0a0e0a41190c0b0a0b0600000000000000002404680d0a45190c0c0e0c1007110611071407062104650e0c10071438080c0d0e0d101407080c0e0e0e210c0f0b0f04600d080e0c1110110c010b0b060100000000000000170c0b05390d080b0c110e01055b090c0f05540b0a461900000000000000000e08101314060100000000000000160d080f13150a020f0b0b08110d010b05060100000000000000170c0505100b0201060200000000000000110f270e06100d1406000000000000000040190000000000000000120d0c0805240b044607000000000000000011240b02100b1412053814111f020b010c100d10381d0b100c110e1141070c050a050600000000000000002404ad010d1145070c120a020f0b0b12110d010b05060100000000000000170c05059c010b1146070000000000000000058b010e000000443b090c020600000000000000000c030a00100e41190c040a030a0423030d05230a00100e0a0342190c050e0111100b05111011340c060e06113504200b03060100000000000000160c0305080e0611360c020b0204330b000f0e0b0343190c070a071438160c080b010b07150b08020b000f0e0b030b01381f38170c080531380100010f46100b001101112707002a0f0c030a030a0111280b030f0f0b010b021203440602390100010f02170b0011013800041238010c030d030a0111280d030f0f0b010b02120344060b0338180207002b0f140c0305060d000000473d090c020600000000000000000c030a00100141070c040a030a0423030d05250a0010010a0342070c050e01100d140b05100d1411340c060e06113504220b03060100000000000000160c0305080e0611360c020b0204350b000f010b0343070c070a071438120c080b010b07150b08020b000f010b030b01382038130c080533060000000800090009010a000a0102000e001000010004000c000d000d020f00030003010b000d0110010071007200",
    "abi": {
      "address": "0x1",
      "name": "jwks",
      "friends": [
        "0x1::reconfiguration_with_dkg",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "get_patched_jwk",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "vector<u8>"
          ],
          "return": [
            "0x1::jwks::JWK"
          ]
        },
        {
          "name": "new_patch_remove_all",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::jwks::Patch"
          ]
        },
        {
          "name": "new_patch_remove_issuer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::jwks::Patch"
          ]
        },
        {
          "name": "new_patch_remove_jwk",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "vector<u8>"
          ],
          "return": [
            "0x1::jwks::Patch"
          ]
        },
        {
          "name": "new_patch_upsert_jwk",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "0x1::jwks::JWK"
          ],
          "return": [
            "0x1::jwks::Patch"
          ]
        },
        {
          "name": "new_rsa_jwk",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::string::String",
            "0x1::string::String",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": [
            "0x1::jwks::JWK"
          ]
        },
        {
          "name": "new_unsupported_jwk",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "vector<u8>"
          ],
          "return": [
            "0x1::jwks::JWK"
          ]
        },
        {
          "name": "patch_federated_jwks",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<0x1::jwks::Patch>"
          ],
          "return": []
        },
        {
          "name": "remove_issuer_from_observed_jwks",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::jwks::ProviderJWKs>"
          ]
        },
        {
          "name": "remove_oidc_provider",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<vector<u8>>"
          ]
        },
        {
          "name": "remove_oidc_provider_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<vector<u8>>"
          ]
        },
        {
          "name": "set_patches",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<0x1::jwks::Patch>"
          ],
          "return": []
        },
        {
          "name": "try_get_patched_jwk",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::jwks::JWK>"
          ]
        },
        {
          "name": "update_federated_jwk_set",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<0x1::string::String>",
            "vector<0x1::string::String>",
            "vector<0x1::string::String>",
            "vector<0x1::string::String>"
          ],
          "return": []
        },
        {
          "name": "upsert_into_observed_jwks",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<0x1::jwks::ProviderJWKs>"
          ],
          "return": []
        },
        {
          "name": "upsert_oidc_provider",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<vector<u8>>"
          ]
        },
        {
          "name": "upsert_oidc_provider_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<vector<u8>>"
          ]
        }
      ],
      "structs": [
        {
          "name": "AllProvidersJWKs",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "entries",
              "type": "vector<0x1::jwks::ProviderJWKs>"
            }
          ]
        },
        {
          "name": "FederatedJWKs",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "jwks",
              "type": "0x1::jwks::AllProvidersJWKs"
            }
          ]
        },
        {
          "name": "JWK",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "variant",
              "type": "0x1::copyable_any::Any"
            }
          ]
        },
        {
          "name": "OIDCProvider",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "name",
              "type": "vector<u8>"
            },
            {
              "name": "config_url",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "ObservedJWKs",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "jwks",
              "type": "0x1::jwks::AllProvidersJWKs"
            }
          ]
        },
        {
          "name": "ObservedJWKsUpdated",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "epoch",
              "type": "u64"
            },
            {
              "name": "jwks",
              "type": "0x1::jwks::AllProvidersJWKs"
            }
          ]
        },
        {
          "name": "Patch",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "variant",
              "type": "0x1::copyable_any::Any"
            }
          ]
        },
        {
          "name": "PatchRemoveAll",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "PatchRemoveIssuer",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "issuer",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "PatchRemoveJWK",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "issuer",
              "type": "vector<u8>"
            },
            {
              "name": "jwk_id",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "PatchUpsertJWK",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "issuer",
              "type": "vector<u8>"
            },
            {
              "name": "jwk",
              "type": "0x1::jwks::JWK"
            }
          ]
        },
        {
          "name": "PatchedJWKs",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "jwks",
              "type": "0x1::jwks::AllProvidersJWKs"
            }
          ]
        },
        {
          "name": "Patches",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "patches",
              "type": "vector<0x1::jwks::Patch>"
            }
          ]
        },
        {
          "name": "ProviderJWKs",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "issuer",
              "type": "vector<u8>"
            },
            {
              "name": "version",
              "type": "u64"
            },
            {
              "name": "jwks",
              "type": "vector<0x1::jwks::JWK>"
            }
          ]
        },
        {
          "name": "RSA_JWK",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "kid",
              "type": "0x1::string::String"
            },
            {
              "name": "kty",
              "type": "0x1::string::String"
            },
            {
              "name": "alg",
              "type": "0x1::string::String"
            },
            {
              "name": "e",
              "type": "0x1::string::String"
            },
            {
              "name": "n",
              "type": "0x1::string::String"
            }
          ]
        },
        {
          "name": "SupportedOIDCProviders",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "providers",
              "type": "vector<0x1::jwks::OIDCProvider>"
            }
          ]
        },
        {
          "name": "UnsupportedJWK",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "id",
              "type": "vector<u8>"
            },
            {
              "name": "payload",
              "type": "vector<u8>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0901000203020d040f02051109071a35084f20106f1f0c8e010f0f9d01040000000100010100010002000200010002010a02010900010500047574696c0a66726f6d5f627974657312616464726573735f66726f6d5f62797465730c6761735f7363686564756c6504636f6465000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31000302000101000003030b003800020003000400",
    "abi": {
      "address": "0x1",
      "name": "util",
      "friends": [
        "0x1::gas_schedule",
        "0x1::code"
      ],
      "exposed_functions": [
        {
          "name": "from_bytes",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "address_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "address"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d01001c021c2c0348f80104c0021a05da02e10107bb048a0908c50d2006e50d4410a90edd030a8612590cdf12ad060d8c19140fa0190200000006000f001c001f002100240028002b002d0037003b0041004a000108000105040106010007070000090600000a0800020e0402030100010010060000180600072a07010000001b00010001031d02010001021e0104020304010420020601060105220808000100230901000106250901000100260a01000100270b0800010729010d010001082c0e010001092e01080001092f0101000103300201000106310f0800010732100d010001013311080106010034120100010635130100010936010800010a2c0801000105380808000106390f140001003a160100010b3c01010001003d17010001023e1a1402030001023f1b1c0203000102401d01020300010c421e01000101431f010106010044210100010c45010800010046010800010047010800010048220100010049000100010d4b01140001014c1001010601020303050307090c09080f0810051a031b031c031e0526231e0702060c030001060c020e0802010b050209000901010802010b01010900010803010303060c0a030a03080c050303050a030a020308060c050303050a030a0203010a02010b0801090004060c03030b08010a02010501090001060b0101090003060c070b010108020802020b0801030a03010104010b0801030708000802090c050303050a030a02030b08010a02010c01020107080002060b050209000901090002070b050209000901090001090103070b0502090009010900090103060c050302070b010109000900020708040e02060c0502060c0e0108070307080003070305626c6f636b0d426c6f636b5265736f75726365066865696768740e65706f63685f696e74657276616c106e65775f626c6f636b5f6576656e74730b4576656e7448616e646c65056576656e740d4e6577426c6f636b4576656e741c7570646174655f65706f63685f696e74657276616c5f6576656e74731855706461746545706f6368496e74657276616c4576656e740d436f6d6d6974486973746f72790c6d61785f6361706163697479086e6578745f696478057461626c650f5461626c65576974684c656e677468117461626c655f776974685f6c656e677468084e6577426c6f636b04686173680565706f636805726f756e641b70726576696f75735f626c6f636b5f766f7465735f6269747665630870726f706f736572176661696c65645f70726f706f7365725f696e64696365731174696d655f6d6963726f7365636f6e64731355706461746545706f6368496e74657276616c126f6c645f65706f63685f696e74657276616c126e65775f65706f63685f696e74657276616c0a696e697469616c697a651073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b036e6577076163636f756e74106e65775f6576656e745f68616e646c65056572726f7210696e76616c69645f617267756d656e740e626c6f636b5f6570696c6f677565057374616b650a7265636f72645f6665650e626c6f636b5f70726f6c6f67756515626c6f636b5f70726f6c6f6775655f636f6d6d6f6e066f7074696f6e046e6f6e65064f7074696f6e0a72616e646f6d6e6573730c6f6e5f6e65775f626c6f636b0f7265636f6e66696775726174696f6e196c6173745f7265636f6e66696775726174696f6e5f74696d650b7265636f6e666967757265096173736572745f766d136765745f76616c696461746f725f696e64657804736f6d6507636f756e74657214656d69745f6e65775f626c6f636b5f6576656e741d7570646174655f706572666f726d616e63655f737461746973746963730d63757272656e745f65706f63680d73746174655f73746f72616765117065726d697373696f6e5f64656e6965641a69735f63757272656e745f65706f63685f76616c696461746f7212626c6f636b5f70726f6c6f6775655f657874187265636f6e66696775726174696f6e5f776974685f646b67097472795f737461727418656d69745f67656e657369735f626c6f636b5f6576656e7408636f6e7461696e730672656d6f7665036164640974696d657374616d70127570646174655f676c6f62616c5f74696d650a656d69745f6576656e7419656d69745f77726974657365745f626c6f636b5f6576656e74106e6f775f6d6963726f7365636f6e6473186765745f63757272656e745f626c6f636b5f686569676874176765745f65706f63685f696e74657276616c5f7365637319696e697469616c697a655f636f6d6d69745f686973746f72791f7570646174655f65706f63685f696e74657276616c5f6d6963726f736563730866656174757265731e6d6f64756c655f6576656e745f6d6967726174696f6e5f656e61626c656404656d69740767656e657369730000000000000000000000000000000000000000000000000000000000000001052000000000000000000000000000000000000000000000000000000000000000000520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631a90303010000000000000031454e554d5f4e45575f424c4f434b5f4556454e54535f444f45535f4e4f545f4d415443485f424c4f434b5f48454947485447546865206e756d626572206f66206e657720626c6f636b206576656e747320646f6573206e6f7420657175616c207468652063757272656e7420626c6f636b206865696768742e02000000000000001145494e56414c49445f50524f504f5345525c416e20696e76616c69642070726f706f736572207761732070726f76696465642e204578706563746564207468652070726f706f73657220746f2062652074686520564d206f7220616e206163746976652076616c696461746f722e030000000000000012455a45524f5f4d41585f434150414349545937546865206d6178696d756d206361706163697479206f662074686520636f6d6d697420686973746f72792063616e6e6f7420626520302e02084e6577426c6f636b0104001355706461746545706f6368496e74657276616c01040002176765745f65706f63685f696e74657276616c5f73656373010100186765745f63757272656e745f626c6f636b5f68656967687401010000020402030303040b01010802080b010108030402030b0e0c0e0d0b05020e08020602081105120313030203140a021505160a0317030202081105120313030203140a021505160a03170307020219031a0303020219031a0300030000011b0a0011010a010600000000000000002404160a0049d00700004900000000380012012d010a000600000000000000000b010a0038010b00380212002d00020b00010603000000000000001104270500000001050b000b010b0211060207000002000108180e000b010a020a030b040b050b060a0711080c080e000b020b033803110a0b07110b170b082603160517110c0208000002000115410a00110d0a04070021043d080c080b08043838040c090a04070022031105150a04110e38050c0907012a000c0a0a0a100038060a0a0f01150b010b020b030a0a1001140b060b040a050b0712030c0b0b000a0a0f000b0b11110b090b051112111311140b0a100214020b00010602000000000000001115270a0411160c08050817000002000108180e000b010a020a030b040b050b060a0711080c090e000b020b030b08110a0b07110b170b092603160517111802190000020001191107012a000c010e000b010f0007000600000000000000000600000000000000000600000000000000004018000000000000000007004008000000000000000006000000000000000012031111021100000101203f070129010304052607012a010c030a031003140c040a0310040a043807031105160a030f040a043808010a030f040a040a023809280b044901000000160a03100514190b030f03150b000e021006140e02100714111d0a012e38060e0210081421043a0b010b02380a020b01010601000000000000001104271f0100020001191b0a00110d07012a000c020a02100038060a020f01150b000a020f000b01111306ffffffffffffffff0b0210011440180000000000000000070040080000000000000000112012031111022101000100010507012b00100114022201000100010707012b001002140640420f00000000001a022301000001100a01490000000024040b0b000b014900000000380012012d01020b0001060300000000000000110427240100010024260b0011010a0106000000000000000024042307012a000c020a021002140c030a020f020c040a010b04151125041c0b02010b030b011204380b020b020f090b030b011205380c051b0603000000000000001104270002000000010101010201000305030703030003004d00",
    "abi": {
      "address": "0x1",
      "name": "block",
      "friends": [
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "emit_writeset_block_event",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "get_current_block_height",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_epoch_interval_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "initialize_commit_history",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u32"
          ],
          "return": []
        },
        {
          "name": "update_epoch_interval_microsecs",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "BlockResource",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "height",
              "type": "u64"
            },
            {
              "name": "epoch_interval",
              "type": "u64"
            },
            {
              "name": "new_block_events",
              "type": "0x1::event::EventHandle<0x1::block::NewBlockEvent>"
            },
            {
              "name": "update_epoch_interval_events",
              "type": "0x1::event::EventHandle<0x1::block::UpdateEpochIntervalEvent>"
            }
          ]
        },
        {
          "name": "CommitHistory",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "max_capacity",
              "type": "u32"
            },
            {
              "name": "next_idx",
              "type": "u32"
            },
            {
              "name": "table",
              "type": "0x1::table_with_length::TableWithLength<u32, 0x1::block::NewBlockEvent>"
            }
          ]
        },
        {
          "name": "NewBlock",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "hash",
              "type": "address"
            },
            {
              "name": "epoch",
              "type": "u64"
            },
            {
              "name": "round",
              "type": "u64"
            },
            {
              "name": "height",
              "type": "u64"
            },
            {
              "name": "previous_block_votes_bitvec",
              "type": "vector<u8>"
            },
            {
              "name": "proposer",
              "type": "address"
            },
            {
              "name": "failed_proposer_indices",
              "type": "vector<u64>"
            },
            {
              "name": "time_microseconds",
              "type": "u64"
            }
          ]
        },
        {
          "name": "NewBlockEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "hash",
              "type": "address"
            },
            {
              "name": "epoch",
              "type": "u64"
            },
            {
              "name": "round",
              "type": "u64"
            },
            {
              "name": "height",
              "type": "u64"
            },
            {
              "name": "previous_block_votes_bitvec",
              "type": "vector<u8>"
            },
            {
              "name": "proposer",
              "type": "address"
            },
            {
              "name": "failed_proposer_indices",
              "type": "vector<u64>"
            },
            {
              "name": "time_microseconds",
              "type": "u64"
            }
          ]
        },
        {
          "name": "UpdateEpochInterval",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "old_epoch_interval",
              "type": "u64"
            },
            {
              "name": "new_epoch_interval",
              "type": "u64"
            }
          ]
        },
        {
          "name": "UpdateEpochIntervalEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "old_epoch_interval",
              "type": "u64"
            },
            {
              "name": "new_epoch_interval",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a09010006020604030a20042a02052c0b073766089d012010bd011f0cdc0120000000030006010207000001000100010004010000010005020101000102070200010001000801010001030301080000010609000109000564656275670c6e61746976655f7072696e7406537472696e6706737472696e67126e61746976655f737461636b5f7472616365057072696e740c737472696e675f7574696c730c64656275675f737472696e67117072696e745f737461636b5f7472616365000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e3100000200010002000201000001040b003800110002040100000103110111000200",
    "abi": {
      "address": "0x1",
      "name": "debug",
      "friends": [],
      "exposed_functions": [
        {
          "name": "print",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0"
          ],
          "return": []
        },
        {
          "name": "print_stack_trace",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0701000203024e0550060756b701088d022010ad021f0ccc02ff010000000100000001000202000001000300000001000400000001000500000001000600000001000700000001000800000001000900000001000a00000001000b00000001000c00000001000d00000001010300020303056572726f720761626f727465640963616e6f6e6963616c0e616c72656164795f65786973747308696e7465726e616c10696e76616c69645f617267756d656e740d696e76616c69645f7374617465096e6f745f666f756e640f6e6f745f696d706c656d656e7465640c6f75745f6f665f72616e6765117065726d697373696f6e5f64656e696564127265736f757263655f6578686175737465640f756e61757468656e746963617465640b756e617661696c61626c65000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e310001000001040607000000000000000b001101020201000001040608000000000000000b001101020101000001060b0031102f0b011602030100000104060b000000000000000b001101020401000001040601000000000000000b001101020501000001040603000000000000000b001101020601000001040606000000000000000b00110102070100000104060c000000000000000b001101020801000001040602000000000000000b001101020901000001040605000000000000000b001101020a01000001040609000000000000000b001101020b01000001040604000000000000000b001101020c0100000104060d000000000000000b0011010200",
    "abi": {
      "address": "0x1",
      "name": "error",
      "friends": [],
      "exposed_functions": [
        {
          "name": "aborted",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "already_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "canonical",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "internal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "invalid_argument",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "invalid_state",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "not_found",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "not_implemented",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "out_of_range",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "permission_denied",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "resource_exhausted",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "unauthenticated",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "unavailable",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0e01000602060a03103f044f06055530078501a10108a6022010c602d9010a9f04080ba704020ca904760d9f05040ea305040fa7050400000003000900010401060101040600000300010106010002000401060100050503010601000602030106010007020301060100080603010601020a0809010001000b0a03010601000c070501060104020607070201060b0001090001060801010900000103010b0001090002070b00010900090001080101060900010a02030a02030900056576656e740b4576656e7448616e646c6507636f756e746572046775696404475549440e64657374726f795f68616e646c6504656d69741b77726974655f6d6f64756c655f6576656e745f746f5f73746f72650a656d69745f6576656e740362637308746f5f62797465731477726974655f746f5f6576656e745f73746f7265106e65775f6576656e745f68616e646c65076163636f756e74066f626a656374000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631a501010100000000000000144543414e4e4f545f4352454154455f4556454e548301416e206576656e742063616e6e6f7420626520637265617465642e2054686973206572726f722069732072657475726e6564206279206e617469766520696d706c656d656e746174696f6e73207768656e0a2020202d2054686520747970652074616720666f72206576656e7420697320746f6f20646565706c79206e65737465642e0000000202020303080100020001000003030b003700020101000003040b00370114020201000003050b003a000101020301000003030b003800020501000003120a00370038010a003701140b013802280a00370114060100000000000000160b00360115020803000003040600000000000000000b0039000204000200070002000001000000020102000d000e00",
    "abi": {
      "address": "0x1",
      "name": "event",
      "friends": [
        "0x1::account",
        "0x1::object"
      ],
      "exposed_functions": [
        {
          "name": "guid",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::event::EventHandle<T0>"
          ],
          "return": [
            "&0x1::guid::GUID"
          ]
        },
        {
          "name": "counter",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::event::EventHandle<T0>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "destroy_handle",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "0x1::event::EventHandle<T0>"
          ],
          "return": []
        },
        {
          "name": "emit",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": []
        },
        {
          "name": "emit_event",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::event::EventHandle<T0>",
            "T0"
          ],
          "return": []
        },
        {
          "name": "new_event_handle",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "0x1::guid::GUID"
          ],
          "return": [
            "0x1::event::EventHandle<T0>"
          ]
        }
      ],
      "structs": [
        {
          "name": "EventHandle",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "fields": [
            {
              "name": "counter",
              "type": "u64"
            },
            {
              "name": "guid",
              "type": "0x1::guid::GUID"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0e0100390239e301039c02aa0704c6098d0105d30aa40807f712d72308ce362006ee3622109037b5130ac54aa4030ce94da6330d8f81014c0fdb81010f11ea8101040000000a000c00210023003e005f006e00710078007a007f008301008401008701008a01008e01009c0100a80100b00100cf0100d80100e90100010600000406000005080000070800010905010001020b0800000d0600000f06000010060000120600001506000016060000190600001a0600001b0600001c0600001d0c00001e0c0003200402040004000422060100000024060000260600002706000028060000290600002c0600002d0600003006000031070000330800013504010001053d040106010044060000490600004b0600004d0e00005006000052060000570f00005c0800065e040203010001006007000064080000660f00006b060008730b000c82010700119b010701000013af01070015da01070015dc010700006d0001010001076f030401000100700101000108720105000100740701000108750809000100760a0600010877080c00010979010c00010a7b01040001007c010c0001036f0e0402040401047d010f010301037e1001020704010b800101040001088101011100010d85010c0c0001008601130100010e880113010001008901150100010f8b011701010701008c01180100010f8d011904010701108f01131a00010090011a0100010091011b1c00010192011e010100010d93010c0c000100940118010001018c01182001000100950121010001009601010100010097011a010001019801220c0100010199012001010001009a0123240001119d012504010001009e010c010001009f011a04000101a001260101000100a101270c00010ba2010104000105a301020101060105a4012a010106010da5010c0c000100a6012c2d00010da7010c0c000112a901010400010daa010c0c000100ab011a04000100ac012f0c000100ad013101000100ae010133000100b1013433000100b2013501000100b3013601000100b401370c000101b501382001000100b6011336000111b701023a01000111b801013a01000100b9010c09000100ba011a0c000100bb011a0c000100bc011a1a000100bd011a0c000100be011a1a000100bf013e1a000100c001013f000103c1010e0c0204040103c20140410207040104c301420201000112c4010104000112c501010c000100c6011a0c000100c7011a44000100c8011a45000100c9011a0c000100ca011301000100cb013e01000100cc011301000100cd011a04000101ce01012001000114d001134c0106010dd1010c0c000100d2011301000103d30157580204040100d4015901000100d5015b01000100d6015b01000100d7015c01000115d9015d5e000115db015f60000107dd01630401000100de015b01000108df010804000100e0015b0100010de1010c0c000100e2015b01000111e301670201000107e401680201000100e5010133000108e6010809000100e7011801000100e8011b01000116ea01090c000101e3016c2001000100eb016f0100010eec011301000103ed01707102070401047e720101000100ee017401000111c201257501000100ef017701000100f0017a01000100f1017a01000100f2017e01000100f301800101000100f4011801000100f501810101000100f6017701000100f701870101000103dd0140040207040103f801708901020704010bf9010104000101fa018b012001000108fb01080c000113fc01018f01000113fd0190018f010001010200060b0d0c0c0d0d141616161a1d1d1d211d221d240c271d2a282b29391d3b0c3c0c450d460d470c2a482b49521d534b534d5329534e534f5350534953515352535353545355560d24615d1a015a2a652b51630c64062a692b556a1d2a6d2b4e6d0d6e0c700c2a782b4f2a7c2b4d2a83012b532a85012b507a0d7b0d2a8a017d1d2a8c012b522a92012b5402070a0900070a09000001090001060a0900010101082d0108290306082a0506082d0106082d020303030506081d082601080b010302030b13010301060b120209000901010b1301090003070b1202090009010900090101082e1b07082b082d07082a060a082903030608290a08290304030506082606081d08260829070a08290704030303070829070307081d03070b1202030b1301030301060c020a08290a082902060c060c01081c03060c060c090002060c0302060c090001050206081003010b1e01080501080502050b1e01090002050b1e010805010b1e010900020608100b1e01080501060b1e01090002060a082905010b2f010301060b2f01090002070b1e0109000b1e0109000106081d01080001080102070b1f010900090009050306082b0b2f01030107081d082d030b2f010301060a0829010a05040a05030306082905030303030302040402060c0a050205070a05010a08300106082b02060c081001081005070b1e010805030303030203060b04010900040303060b040108050b1e010805010b2f0109000106080b04030103030303030301060810010a0302060b1202090009010609000106090101060b13010900040a03060b1202030b13010303030403030303030a020a020a02010608260506082b0b2f0103030b2f01030b2f010301080901080a0605082d07081d03030703010817010b1f01090001081b01081501081901082001080d01080701082101082201080f03050b1e0108050b1e010805030d0d01010b12020900090104060c030505010202060c0505060c0a020a020a020a02010a02010831020a02060831010b2f0108320108320208310b2f01083202060a090006090002030101080c0707081d082d03030306082607082b01070b2f01090002070a09000301080e07082d07081d07082b0b2f0103040b2f010308291e06082b082d06082a0303030a08290303040303030106082906081d0303030106080b0303030303082607030829082b02070b1e01090003010814040507081d030b1e01080503060c0a030a0302070b1202090009010609000107090102070b130109000900050307081103030302060c060a05010609000807082b070a0829070a08290303050b2f0103082904060c050a020a020108180607081d0708260a0208310b2f010832070a0202060810050205070501081a040507081d05070502060c08230107082302060c0b0401080502030608100205060810010824030507081d0b1e0108050108250507081d0708260a02070a020a02020b2f01030a030707082a030307080b030307080b01090101080801070b1e0109000108061207081d0306080b03030303070b1202030b1301030b1301030304040403030303060b040108050307082b082d0401083003050a02030b0a0830060a08290303030303060829083007083006082901082c040507081d010b1e010805057374616b65084164645374616b650c706f6f6c5f616464726573730c616d6f756e745f61646465640d4164645374616b654576656e7411416c6c6f77656456616c696461746f7273086163636f756e7473154170746f73436f696e4361706162696c6974696573086d696e745f6361700e4d696e744361706162696c69747904636f696e094170746f73436f696e0a6170746f735f636f696e1144697374726962757465526577617264730e726577617264735f616d6f756e741644697374726962757465526577617264734576656e7418446973747269627574655472616e73616374696f6e4665650a6665655f616d6f756e740e496e6372656173654c6f636b7570156f6c645f6c6f636b65645f756e74696c5f73656373156e65775f6c6f636b65645f756e74696c5f7365637313496e6372656173654c6f636b75704576656e741e496e646976696475616c56616c696461746f72506572666f726d616e6365147375636365737366756c5f70726f706f73616c73106661696c65645f70726f706f73616c73104a6f696e56616c696461746f72536574154a6f696e56616c696461746f725365744576656e74114c6561766556616c696461746f72536574164c6561766556616c696461746f725365744576656e740f4f776e65724361706162696c6974791550656e64696e675472616e73616374696f6e4665651870656e64696e675f6665655f62795f76616c696461746f720d4269674f7264657265644d61700f6269675f6f7264657265645f6d61700a41676772656761746f720d61676772656761746f725f76320f526561637469766174655374616b6506616d6f756e7414526561637469766174655374616b654576656e741a526567697374657256616c696461746f7243616e6469646174651f526567697374657256616c696461746f7243616e6469646174654576656e7412526f74617465436f6e73656e7375734b6579146f6c645f636f6e73656e7375735f7075626b6579146e65775f636f6e73656e7375735f7075626b657917526f74617465436f6e73656e7375734b65794576656e740b5365744f70657261746f720c6f6c645f6f70657261746f720c6e65775f6f70657261746f72105365744f70657261746f724576656e74195374616b654d616e6167656d656e745065726d697373696f6e0b64756d6d795f6669656c64095374616b65506f6f6c0661637469766504436f696e08696e6163746976650e70656e64696e675f6163746976651070656e64696e675f696e616374697665116c6f636b65645f756e74696c5f73656373106f70657261746f725f616464726573730f64656c6567617465645f766f7465721b696e697469616c697a655f76616c696461746f725f6576656e74730b4576656e7448616e646c65056576656e74137365745f6f70657261746f725f6576656e7473106164645f7374616b655f6576656e747317726561637469766174655f7374616b655f6576656e74731b726f746174655f636f6e73656e7375735f6b65795f6576656e74732c7570646174655f6e6574776f726b5f616e645f66756c6c6e6f64655f6164647265737365735f6576656e7473265570646174654e6574776f726b416e6446756c6c6e6f64654164647265737365734576656e7416696e6372656173655f6c6f636b75705f6576656e7473196a6f696e5f76616c696461746f725f7365745f6576656e747319646973747269627574655f726577617264735f6576656e747313756e6c6f636b5f7374616b655f6576656e747310556e6c6f636b5374616b654576656e741577697468647261775f7374616b655f6576656e74731257697468647261775374616b654576656e741a6c656176655f76616c696461746f725f7365745f6576656e7473145472616e73616374696f6e466565436f6e666967025630276d61785f6665655f6f6374615f616c6c6f7765645f7065725f65706f63685f7065725f706f6f6c0b556e6c6f636b5374616b650f616d6f756e745f756e6c6f636b6564215570646174654e6574776f726b416e6446756c6c6e6f6465416464726573736573156f6c645f6e6574776f726b5f616464726573736573156e65775f6e6574776f726b5f616464726573736573166f6c645f66756c6c6e6f64655f616464726573736573166e65775f66756c6c6e6f64655f6164647265737365730f56616c696461746f72436f6e66696710636f6e73656e7375735f7075626b6579116e6574776f726b5f6164647265737365731266756c6c6e6f64655f6164647265737365730f76616c696461746f725f696e6465780d56616c696461746f72466565730a666565735f7461626c65055461626c65057461626c650d56616c696461746f72496e666f04616464720c766f74696e675f706f77657206636f6e6669671456616c696461746f72506572666f726d616e63650a76616c696461746f72730c56616c696461746f7253657410636f6e73656e7375735f736368656d65116163746976655f76616c696461746f727312746f74616c5f766f74696e675f706f77657213746f74616c5f6a6f696e696e675f706f7765720d57697468647261775374616b6510616d6f756e745f77697468647261776e06617070656e6406766563746f720869735f656d7074790c6f6e5f6e65775f65706f63680e7374616b696e675f636f6e666967036765740d5374616b696e67436f6e666967117570646174655f7374616b655f706f6f6c126765745f72657175697265645f7374616b651767656e65726174655f76616c696461746f725f696e666f1d6765745f726563757272696e675f6c6f636b75705f6475726174696f6e0974696d657374616d700b6e6f775f7365636f6e64730c636861696e5f7374617475730c69735f6f7065726174696e671c6765745f7265636f6e6669675f73746172745f74696d655f736563731b6372656174655f756e626f756e6465645f61676772656761746f720361646408666561747572657327706572696f646963616c5f7265776172645f726174655f64656372656173655f656e61626c65642c63616c63756c6174655f616e645f736176655f6c61746573745f65706f63685f726577617264735f726174650c4669786564506f696e7436340d66697865645f706f696e743634056572726f7208696e7465726e616c0a696e697469616c697a651073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b106772616e745f7065726d697373696f6e137065726d697373696f6e65645f7369676e657213617574686f72697a655f756e6c696d6974656408776974686472617717636865636b5f7065726d697373696f6e5f657869737473067369676e65720a616464726573735f6f66176173736572745f6f776e65725f6361705f6578697374731177697468647261775f776974685f636170076465706f736974117065726d697373696f6e5f64656e696564096164645f7374616b65126164645f7374616b655f776974685f6361701f6173736572745f7265636f6e6669675f6e6f745f696e5f70726f6772657373186173736572745f7374616b655f706f6f6c5f6578697374730576616c75650c64657374726f795f7a65726f0e66696e645f76616c696461746f72064f7074696f6e066f7074696f6e0769735f736f6d651c7570646174655f766f74696e675f706f7765725f696e6372656173651a69735f63757272656e745f65706f63685f76616c696461746f72056d657267651b6765745f6e6578745f65706f63685f766f74696e675f706f7765721e6d6f64756c655f6576656e745f6d6967726174696f6e5f656e61626c656404656d69740a656d69745f6576656e7410696e76616c69645f617267756d656e741e6164647265737365735f66726f6d5f76616c696461746f725f696e666f73096e6f745f666f756e64157265636f6e66696775726174696f6e5f73746174650e69735f696e5f70726f67726573730d696e76616c69645f7374617465117374616b655f706f6f6c5f6578697374731863616c63756c6174655f726577617264735f616d6f756e741c636f6e6669677572655f616c6c6f7765645f76616c696461746f72731d6375725f76616c696461746f725f636f6e73656e7375735f696e666f731656616c696461746f72436f6e73656e737573496e666f1876616c696461746f725f636f6e73656e7375735f696e666f2c76616c696461746f725f636f6e73656e7375735f696e666f735f66726f6d5f76616c696461746f725f736574116465706f7369745f6f776e65725f6361701164657374726f795f6f776e65725f63617012646973747269627574655f72657761726473046d696e7411657874726163745f6f776e65725f63617004736f6d65046e6f6e65216765745f63757272656e745f65706f63685f70726f706f73616c5f636f756e74731e6765745f63757272656e745f65706f63685f766f74696e675f706f776572136765745f76616c696461746f725f7374617465136765745f64656c6567617465645f766f7465720f6765745f6c6f636b75705f736563730c6765745f6f70657261746f72166765745f6f776e65645f706f6f6c5f616464726573731b6765745f70656e64696e675f7472616e73616374696f6e5f6665650e636f6d707574655f6c656e67746806626f72726f7704726561640e69735f696e697469616c697a65640f73746172745f74696d655f73656373196765745f72656d61696e696e675f6c6f636b75705f73656373096765745f7374616b65146765745f76616c696461746f725f636f6e666967136765745f76616c696461746f725f696e6465780f696e6372656173655f6c6f636b757018696e6372656173655f6c6f636b75705f776974685f63617010696e697469616c697a655f6f776e65720a69735f616c6c6f776564047a65726f076163636f756e74106e65775f6576656e745f68616e646c650e616c72656164795f65786973747322696e697469616c697a655f70656e64696e675f7472616e73616374696f6e5f6665650f6e65775f776974685f636f6e66696716696e697469616c697a655f7374616b655f6f776e65720c7365745f6f70657261746f72137365745f64656c6567617465645f766f74657214696e697469616c697a655f76616c696461746f7208626c7331323338311e70726f6f665f6f665f706f7373657373696f6e5f66726f6d5f62797465731150726f6f664f66506f7373657373696f6e1e7075626c69635f6b65795f66726f6d5f62797465735f776974685f706f70105075626c69634b657957697468506f5008636f6e7461696e73126a6f696e5f76616c696461746f725f7365741e6765745f616c6c6f775f76616c696461746f725f7365745f6368616e67651b6a6f696e5f76616c696461746f725f7365745f696e7465726e616c0f756e61757468656e74696361746564136c656176655f76616c696461746f725f73657407657874726163740b737761705f72656d6f76651e6e6578745f76616c696461746f725f636f6e73656e7375735f696e666f730f6765745f7265776172645f7261746510726561637469766174655f7374616b6519726561637469766174655f7374616b655f776974685f636170066d6174683634036d696e0a7265636f72645f666565096173736572745f766d0a626f72726f775f6d75741172656d6f76655f76616c696461746f727314726f746174655f636f6e73656e7375735f6b65791c7365745f64656c6567617465645f766f7465725f776974685f636170157365745f6f70657261746f725f776974685f6361701a7365745f7472616e73616374696f6e5f6665655f636f6e6669671973746f72655f6170746f735f636f696e5f6d696e745f63617006756e6c6f636b0f756e6c6f636b5f776974685f636170257570646174655f6e6574776f726b5f616e645f66756c6c6e6f64655f6164647265737365731d7570646174655f706572666f726d616e63655f737461746973746963730672656d6f76652569735f646973747269627574655f7472616e73616374696f6e5f6665655f656e61626c65640b657874726163745f616c6c1f6765745f766f74696e675f706f7765725f696e6372656173655f6c696d69740764656661756c74036e65770f7472616e73616374696f6e5f6665650f7265636f6e66696775726174696f6e187265636f6e66696775726174696f6e5f776974685f646b6705626c6f636b0767656e6573697300000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76318113160100000000000000114556414c494441544f525f434f4e4649471f56616c696461746f7220436f6e666967206e6f74207075626c69736865642e02000000000000000e455354414b455f544f4f5f4c4f57274e6f7420656e6f756768207374616b6520746f206a6f696e2076616c696461746f72207365742e03000000000000000f455354414b455f544f4f5f4849474825546f6f206d756368207374616b6520746f206a6f696e2076616c696461746f72207365742e04000000000000001945414c52454144595f4143544956455f56414c494441544f52344163636f756e7420697320616c726561647920612076616c696461746f72206f722070656e64696e672076616c696461746f722e05000000000000000e454e4f545f56414c494441544f521b4163636f756e74206973206e6f7420612076616c696461746f722e06000000000000000f454c4153545f56414c494441544f521c43616e27742072656d6f7665206c6173742076616c696461746f722e070000000000000012455354414b455f455843454544535f4d415824546f74616c207374616b652065786365656473206d6178696d756d20616c6c6f7765642e08000000000000001345414c52454144595f52454749535445524544374163636f756e7420697320616c7265616479207265676973746572656420617320612076616c696461746f722063616e6469646174652e09000000000000000d454e4f545f4f50455241544f52344163636f756e7420646f6573206e6f74206861766520746865207269676874206f70657261746f72206361706162696c6974792e0a000000000000002d454e4f5f504f53545f47454e455349535f56414c494441544f525f5345545f4348414e47455f414c4c4f5745444256616c696461746f72732063616e6e6f74206a6f696e206f72206c6561766520706f73742067656e65736973206f6e20746869732074657374206e6574776f726b2e0b000000000000001345494e56414c49445f5055424c49435f4b45591c496e76616c696420636f6e73656e737573207075626c6963206b65790c00000000000000184556414c494441544f525f5345545f544f4f5f4c415247451f56616c696461746f7220736574206578636565647320746865206c696d69740d000000000000002445564f54494e475f504f5745525f494e4352454153455f455843454544535f4c494d495444566f74696e6720706f77657220696e6372656173652068617320657863656564656420746865206c696d697420666f7220746869732063757272656e742065706f63682e0e000000000000001a455354414b455f504f4f4c5f444f45535f4e4f545f4558495354375374616b6520706f6f6c20646f6573206e6f74206578697374206174207468652070726f766964656420706f6f6c20616464726573732e0f0000000000000014454f574e45525f4341505f4e4f545f464f554e44384f776e6572206361706162696c69747920646f6573206e6f74206578697374206174207468652070726f7669646564206163636f756e742e100000000000000019454f574e45525f4341505f414c52454144595f45584953545335416e206163636f756e742063616e6e6f74206f776e206d6f7265207468616e206f6e65206f776e6572206361706162696c6974792e11000000000000001545494e454c494749424c455f56414c494441544f524856616c696461746f72206973206e6f7420646566696e656420696e207468652041434c206f6620656e74697469657320616c6c6f77656420746f2062652076616c696461746f727312000000000000000f45494e56414c49445f4c4f434b55504143616e6e6f7420757064617465207374616b6520706f6f6c2773206c6f636b757020746f206561726c696572207468616e2063757272656e74206c6f636b75702e13000000000000001a45464545535f5441424c455f414c52454144595f4558495354534c5461626c6520746f2073746f726520636f6c6c6563746564207472616e73616374696f6e206665657320666f7220656163682076616c696461746f7220616c7265616479206578697374732e14000000000000001c455245434f4e46494755524154494f4e5f494e5f50524f47524553536e56616c696461746f7220736574206368616e67652074656d706f726172696c792064697361626c65642062656361757365206f6620696e2d70726f6772657373207265636f6e66696775726174696f6e2e20506c656173652072657472792061667465722031206d696e7574652e1c0000000000000014454e4f5f5354414b455f5045524d495353494f4e375369676e657220646f6573206e6f742068617665207065726d697373696f6e20746f20706572666f726d207374616b65206c6f6769632e1d0000000000000026455452414e53414354494f4e5f4645455f4e4f545f46554c4c595f4449535452494255544544395472616e73616374696f6e20666565206973206e6f742066756c6c792064697374726962757465642061742065706f636820656e64696e672e0d084164645374616b650104000b5365744f70657261746f720104000b556e6c6f636b5374616b650104000d57697468647261775374616b650104000e496e6372656173654c6f636b75700104000f526561637469766174655374616b65010400104a6f696e56616c696461746f72536574010400114469737472696275746552657761726473010400114c6561766556616c696461746f7253657401040012526f74617465436f6e73656e7375734b657901040018446973747269627574655472616e73616374696f6e4665650104001a526567697374657256616c696461746f7243616e646964617465010400215570646174654e6574776f726b416e6446756c6c6e6f64654164647265737365730104000c096765745f7374616b650101000c6765745f6f70657261746f720101000f6765745f6c6f636b75705f73656373010100117374616b655f706f6f6c5f657869737473010100136765745f64656c6567617465645f766f746572010100136765745f76616c696461746f725f696e646578010100136765745f76616c696461746f725f7374617465010100146765745f76616c696461746f725f636f6e666967010100196765745f72656d61696e696e675f6c6f636b75705f736563730101001b6765745f70656e64696e675f7472616e73616374696f6e5f6665650101001e6765745f63757272656e745f65706f63685f766f74696e675f706f776572010100216765745f63757272656e745f65706f63685f70726f706f73616c5f636f756e74730101000002020205030301020202050303020201060a05030201080b0401080506020202050e0307020202050e03080202020511030902030205130314030a02030205130314030b0202170318030c020102050d020102050e020102050f0201020510020102051102011f0b1202030b13010314020202052503150202020525031602010205170201020518020302052a0a022b0a0219020302052a0a022b0a021a020302052e052f051b020302052e052f051c020132011d0213340b1e010805360b1e010805370b1e010805380b1e01080539033a053b053c0b1f0108173f0b1f01081b400b1f010801410b1f010815420b1f010819430b1f010820450b1f01080a460b1f01080d470b1f010807480b1f0108214a0b1f0108224c0b1f01080f2303014e014f0324020202055103210202020551032502050205530a02540a02550a02560a022002050205530a02540a02550a02560a02260204580a02590a025a0a025b032702015d0b2802050b1e010805290203610562036308262a0201650a080b2b02066702680a0829380a0829370a082969046a042c020202056c0322020202056c0300000000010e0a012e380003090a000a014502440205000b00010b01010202030007030f191a1f222312a90207002a230c0011030c0107002a220c020a0010000c030600000000000000000c040a0341060c050a040a052304240a030a0442060c060a022e0b061001140e0111040b04060100000000000000160c0405100b03010a0010020c030600000000000000000c040a0341060c050a040a052304420a030a0442060c060a022e0b061001140e0111040b04060100000000000000160c04052e0b03010a000f000a000f033801400600000000000000000a000f0215400600000000000000000c070e011105010c050a00100041060c0832000000000000000000000000000000000c090600000000000000000c0a280a0a0a0823048c010a000f000a0a43061001140c0b0a0b2b1f0c0c0a0b2b190b0c140c0e0c0d0b0b0b0d0b0e11060c0f0e0f1004140a0526037c058701280b090e0f10041435160c090d070b0f44060b0a060100000000000000160c0a055b0a000f000c100b070b10150a000f050c110b090b111532000000000000000000000000000000000a000f0615400b00000000000000000a020f07150e0111070c120a00100041060c130600000000000000000c14280a140a132304ec010a000f000a1443060c150a150f080f090c160a140b16150a151001142a1f0f090c160a140b16150a020f070600000000000000000600000000000000001209440b0b151001142a190c1711080c18110904e901110a0c050a17100a140b052504e601280b180a12160b170f0a150b14060100000000000000160c1405a9010b170105e1010a180c0505d4010b02010700290f04a60207002a0f0f0b0c190a192e3802049f020b0010000c030600000000000000000c050a0341060c1a0a050a1a230495020a030a0542060c060a190b061008100914380338040b05060100000000000000160c050581020b19010b0301110e039c02059e02110f01020b00010b1901061d000000000000001110270b00010599021103000014140a0011120a00400600000000000000000c01400600000000000000000c0231000b01400600000000000000000b023200000000000000000000000000000000320000000000000000000000000000000012232d230b00400b000000000000000012222d22021301000001060b000b01091218380502150104030e19231f180a00091218380604130b0011170c020a0211180a022b0e0b0111190c030b020b033807020b0001061c00000000000000111b271c0104030e19231a160a00091218380604110a0011170c020a0211180b022b0e0b000b013808111e020b0001061c00000000000000111b271e01000219232b5e111f0b00100c140c020a0211200e0138090c030a030600000000000000002104110b01380a0207002b230c040a0410000a0211230c050e05380b04550b0401080c060b06032305250a0311250a022a190c070a02112604500a070f0d0b01380c11030c080e0811050c09010a072e11280b0925044b112904440b07010b020b031200380d020b070f0e0b020b031201380e05430b0701060700000000000000112c270a070f0f0b01380c052f0b0410030a0211230c0a0e0a380b0c0605202d0000002e1d401a00000000000000000c010600000000000000000c020a0041060c030a020a032304190a000a0242060c040d010b04100114441a0b02060100000000000000160c0205070b00010b01021800000001070b00290e040402060f00000000000000112e271f0000000106112f0303020614000000000000001130272000000001070b001131040402060e00000000000000112c2732000000301e280b00350b0335180b0135180c050b04350b0235180c060a06320000000000000000000000000000000024041b0b050b061a340c000b00020600000000000000000c000519330100010232170a0011170c020a0011120a022902030d0b000b0112022d02020b00010b022a020f100c030b010b0315050c3401000123010407002b231135023601000001170a00091218380604120a001117290e030d0b000b012d0e020b0001061000000000000000112e270b0001061c00000000000000111b273701000001040b00130e0102380000010339260a002e38090c050a050600000000000000002404230b050b010b020b030b0411320c060a0606000000000000000024042007002b0310110c070a060b07380f0c080b000b08380c0b06020b0001051e0600000000000000000c06050f3a0100010e1a120a000912183806040d0b0011170c010a0111180b012c0e020b0001061c00000000000000111b272300000009200600000000000000000c020a0041060c03280a020a0323041c0a000a0242061001140a012104170b00010b023810020b02060100000000000000160c0205050b0001381102060000000c080b0111280c030b000b030b021221023d010001223b0d07002b2210070b00420b0c010a011012140b01101314023e01000219233c210a0011200a00113f0c010a0106020000000000000021041c080c020b0204190a002b19100f38090b002b1910143809160c040b04020600000000000000000c0405170b01060300000000000000210c02050b400100011901070a0011200b002b1910151402410100011901070a0011200b002b19100a1402280000003d130a00100d38090c010a00100f38090c020b00101438090c03280b010b02160b031602420100011901070a0011200b002b19101614024301000001040b00100c1402440100010f431e400c00000000000000000c0007002b0f100b0c010a0138120c020600000000000000000c030a030a0223041a0d000a010e0338133814440c0b03060100000000000000160c03050b0b01010b00020a0000000c091148040611490c000b000211080c0005044a0100011909140a0011200b002b19100a140c010a01110825040f0600000000000000000c020b02020b011108170c02050d4b0100011927120a0011200b002b190c010a01100f38090a01101738090a01100d38090b0110143809024c0100011f460f0a0011200b002b1f0c010a011018140a011019140b01101a14024d0100011f01070a0011200b002b1f100914023f01000123472c07002b230c010a0110030a0011230c020e02380b04110b01010601000000000000000c030b03020a0110000a0011230c040e04380b041e0b01010602000000000000000c03050f0b0110020b0011230c050e05380b04290603000000000000000c03050f0604000000000000000c03050f4e0104020e191a130a000912183806040e0b0011170c010a0111180b012b0e114f020b0001061c00000000000000111b274f010001194a350b00100c140c010a01112011030c020a012a190c030a03100a140c0411080e021107160c050a040a052304300a030f0a0c060a050b0615112904280b03010b010b040b0512073815020b030f1b0b010b040b051208381605270b0301061200000000000000112c27500000010256480a00091218380604430a0011170c010a011151043e0a01113103390a00381738170c0238170c0338170b020b030600000000000000000a010a010a0038180a0038190a00381a0a00381b0a00381c0a00381d0a00381e0a00381f0a0038200a0038210a0038220a00382312192d190b000b01120e2d0e020b00010608000000000000001154270b0001061100000000000000112e270b0001061c00000000000000111b275501000001100a0011120700290f030d0b00480500480a00083824120f2d0f020b0001050c57010404020e19231a310a000912183806042c0a0011500a00405a0000000000000000405a0000000000000000405a0000000000000000060000000000000000121f2d1f0a0106000000000000000024031305160a000b01111c0a0011170c040a040a0222031e05210a000b0211580b040a032204290b000b031159020b000105280b0001061c00000000000000111b275a0104010262230a000912183806041e0a010b02115b0c050e05115c0c060e06382504190a0011500b000b010b030b04060000000000000000121f2d1f020b0001060b00000000000000112c270b0001061c00000000000000111b275100000102040e070029020307080c010b010207002b0210100e0038260c010505260100012364120a0011200b00113f0c010a0106020000000000000021040d080c020b02020b01060300000000000000210c02050b5e010403191f2305180a000912183806041311030c020e02115f040e0b000b011160020b0001060a00000000000000112c270b0001061c00000000000000111b2760030003191f236671111f0a0111200a012a190c020b0011170a0210161421046c0a01113f06040000000000000021046711030c030e0311050c040c050a022e11280c060a060b052604620a060b0425045d0b0611250a012b1f0c070a0710183827035607002a230c080a080f030a010a022e0b0714110644060a08100041060b0810034106160600000100000000002504511129044b0b02010b01120a3828020b020f1c0b01120b3829054a0b0201060c00000000000000112c270b02010b0701060b00000000000000112c270b0201060300000000000000112c270b0201060200000000000000112c270b02010604000000000000001130270b02010609000000000000001161276201040219236a84010a000912183806047f111f11030c020e02115f047a0a0111200a012a190c030b0011170a0310161421047507002a230c040a0410030a0111230c050e05380b04410a040f030d05382a382b010b032e1128350c060a041006140a0624043c0a041006140b06170b040f06150232000000000000000000000000000000000b040f0615053b0a0410000a0111230c070e07380b046e0a040f000d07382a382b0c080a04100041060600000000000000002404670b040f020b084406112904610b03010b01120c382c053b0b030f1d0b01120d382d053b0b03010b04010606000000000000001130270b03010b04010605000000000000001130270b03010609000000000000001161270b0001060a00000000000000112c270b0001061c00000000000000111b2765010004191f22236bca0107002b230c0011030c0107002b220c020e011105010c030e0111660c040c05400600000000000000000c060600000000000000000c070600000000000000000c0832000000000000000000000000000000000c090a00100041060c0a0a00100341060c0b280a0a0b0b160c0c280a080a0c2304bb010a080a0a230c0d0a080a0a2304b3010a0010000a0842060c0e0a0e1001142b190c0f0a0f100f38090c100a0f100d38090c110a0f101438090c120b0d04b0010a10060000000000000000240c130b1304ad01280a0210070a0e1008100914420b0c14280a100a141012140a141012140b14101314160a050a0411320c15110a0b0f100a1426280b100c1604aa010600000000000000000c170b170b11160b15160c180b160b18160c190a190a032604a7010a0e1001142b1f140c1a0d1a0f090c1b0a070b1b150b0e1001140a190b1a12210c1c280b090b1935160c090d060b1c44060b07060100000000000000160c070b08060100000000000000160c0805250b0e0105a2010b120c1705740600000000000000000c150569090c13054e0a0010030a080a0a1742060c0e05370b02010b00101e140b0640060000000000000000400600000000000000000b09320000000000000000000000000000000012230c1d0e1d113502670104020e191a150a0009121838060410111f0b0011170c020a0211180b022b0e0b011168020b0001061c00000000000000111b2768010001196e2b111f0b00100c140c020a0211200a022a190c030a03101438090c040b010b0411690c010a030f140a01382e0c050a030f0f0b05380c112904240b03010b020b011210382f020b030f1f0b020b011211383005236b0300010f732e0b00116c0e01410c0e02410c21042c0e01410c0c0307002a0f0c040600000000000000000c050a050a032304290e010a05420c140c060e020a05420c140c070a040f0b0e0638310b0738320b05060100000000000000160c0505100b0401020600000bbed9cb26ca276f01000123763b111f0b00111207002a230c020a020f000c030b020f020c04280a01411a0c050600000000000000000c06280a060a052304340a010a06421a140c070a032e0b0711230c080e08380b0325052f0a030e08383314382b0c090a040b094406280b06060100000000000000160c0605120b01010b03010b04010271010402191f79540a000912183806044f111f0a0111200a012a190c040b0011170a0410161421044a0a01291f04450a012a1f0c050a051018140c060a020b03115b0c070e07115c0c080e083825043e0b050f180c090a020b0915112904360b04010b010b060b0212143834020b040f200b010b060b021215383505350b04010b0501060b00000000000000112c270b0401060100000000000000112e270b04010609000000000000001161270b0001061c00000000000000111b27590104020e191a140a000912183806040f0b0011170c020a0211180b022b0e0b011172020b0001061c00000000000000111b2772010001197b0e0b00100c140c020a0211200b022a190f150c030b010b031502580104020e191a140a000912183806040f0b0011170c020a0211180b022b0e0b011173020b0001061c00000000000000111b2773010001197d250b00100c140c020a0211200a022a190c030a031016140c040a030f160c050a010b05151129041d0b03010b020b040b0112163836020b030f210b020b040b0112173837051c740100011a7f120a0011120700291a040e0b000107002a1a0c020b010b0215020b000b012d1a050d3101000001030b002919027503000001070a0011120b000b0112032d0302760104020e198201170a0009121838060412111f0b0011170c020a0211180b022b0e0c030b010b031177020b0001061c00000000000000111b277701000119840130111f0a000600000000000000002104080b0101020b01100c140c020a0211200a022a190c030b000a03100f380911690c000a030f0f0a00382e0c040a030f140b04380c112904290b03010b020b00121b3838020b030f220b020b00121c3839052878010402191f8601510a000912183806044c111f0a0111200a012a190c040b0011170a041016142104470a01291f04420a012a1f0c050a051019140c060a050f190c070a020b07150a05101a140c080b050f1a0c070a030b0715112904380b04010b010b060b020b080b03121d383a020b040f230b010b060b020b080b03121e383b05370b0401060100000000000000112e270b04010609000000000000001161270b0001061c00000000000000111b27790300012288014c07002a220c020a021007410b0c03280e00380b030c05220d00382a0c040a040a0323031405220a020f070b04430b0c05280a05101214060100000000000000160b050f12150600000000000000000c040e01410c0c06280a040a062304490e010a04420c140c070a070a0323033605440a020f070b07430b0c08280a08101314060100000000000000160b080f13150b04060100000000000000160c0405270b02010204000005030f191a1f8d01cb010a012a190c030a012b1f1009140c040b0010070a04420b0c050a051012140c060600000000000000000c070600000000000000000c080700291a04c80107002b1a4e00140c090700290f0321055207002a0f0f0b0c0a0a0a2e0e04383c04c5010b0a0e04383d0c0b0e0b38140c0c0a0c0a0924033605380b090c0c0a03100f3809350a0310143809350c0d0a0c350a0d180c0e0b0d160c0f0b0e0b0f1a340c070b0c0a07170c08280a051012140b05101314160c0c0b0211660c100c110a030f0f0a060a0c0a110a1011380c120a030f140b060b0c0b110b1011380c1328117c037305990107002b0310110c140a0806000000000000000024037c0582010a030f0f0a080a14380f380c0a070600000000000000002404c2010a030f140a070b14380f380c0b080b07160c0c0a0c060000000000000000240395010599010a010b0c1206383e0b120b13160c0c0a030f0f0a030f0d383f380c0a03100a140c11110a0b112603ac0105b2010a030f170a030f14383f380c112904bb010b03010b010b0c12043840020b030f240b010b0c1205384105ba010b1401058c010b0a01055206ffffffffffffffff0c09051d25000001238e012c07002a230c0111030c020e02117e350c030a011006140b0035160a010f06150a0110051432000000000000000000000000000000002404290a011006140b011005140b031832640000000000000000000000000000001a250426052502060d00000000000000112c270b010105253500000091018101408f0100000000000000000c010a00100041060c030a00100241060c04280b030b04160c050600000000000000000c06280a060a0523041e0d01117f448f010b06060100000000000000160c060511280a0010000c020600000000000000000c050a0241060c070a050a0723044c0a020a0542060c08280d010a081008100914438f010a081001140a0810081018140b081004141180010c090c0a0b090b0a15280b05060100000000000000160c0505270b02010a0010020c020600000000000000000c050a0241060c070a050a0723047b0a020a0542060c0b280d010a0b1008100914438f010a0b1001140a0b10081018140b0b1004141180010c090c0a0b090b0a15280b05060100000000000000160c0505560b00010b02010b0102190100021923930143111f0b00100c140c020a0211200a022a190c030a02113f06040000000000000021044011080a03100a14260c040b04031805200a030f14383f0c050a030f170b05380c0b010a031017380911690c010a0106000000000000000021042e0b0301381702112904390b020a01122438420b030f170b01382e020a030f250b020a01122538430534090c0405152301210023022303210123042305220021021f0319040f000e00190219091900020003000900090119031906190519011f001f011f02190d190e19122300190a190b19081910190c190f191100fe0100ff010080020081020082021a00010000",
    "abi": {
      "address": "0x1",
      "name": "stake",
      "friends": [
        "0x1::transaction_fee",
        "0x1::reconfiguration",
        "0x1::reconfiguration_with_dkg",
        "0x1::block",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "grant_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "withdraw",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "add_stake",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "add_stake_with_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::stake::OwnerCapability",
            "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>"
          ],
          "return": []
        },
        {
          "name": "configure_allowed_validators",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>"
          ],
          "return": []
        },
        {
          "name": "cur_validator_consensus_infos",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "vector<0x1::validator_consensus_info::ValidatorConsensusInfo>"
          ]
        },
        {
          "name": "deposit_owner_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::stake::OwnerCapability"
          ],
          "return": []
        },
        {
          "name": "destroy_owner_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::stake::OwnerCapability"
          ],
          "return": []
        },
        {
          "name": "extract_owner_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::stake::OwnerCapability"
          ]
        },
        {
          "name": "get_current_epoch_proposal_counts",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64",
            "u64"
          ]
        },
        {
          "name": "get_current_epoch_voting_power",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_delegated_voter",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_lockup_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_operator",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_owned_pool_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::stake::OwnerCapability"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_pending_transaction_fee",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "vector<u64>"
          ]
        },
        {
          "name": "get_remaining_lockup_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_stake",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64",
            "u64",
            "u64",
            "u64"
          ]
        },
        {
          "name": "get_validator_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "vector<u8>",
            "vector<u8>",
            "vector<u8>"
          ]
        },
        {
          "name": "get_validator_index",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_validator_state",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "increase_lockup",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "increase_lockup_with_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::stake::OwnerCapability"
          ],
          "return": []
        },
        {
          "name": "initialize_pending_transaction_fee",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize_stake_owner",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "initialize_validator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "is_current_epoch_validator",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "join_validator_set",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "join_validator_set_internal",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "leave_validator_set",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "next_validator_consensus_infos",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "vector<0x1::validator_consensus_info::ValidatorConsensusInfo>"
          ]
        },
        {
          "name": "reactivate_stake",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "reactivate_stake_with_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::stake::OwnerCapability",
            "u64"
          ],
          "return": []
        },
        {
          "name": "record_fee",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u64>",
            "vector<u64>"
          ],
          "return": []
        },
        {
          "name": "remove_validators",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&vector<address>"
          ],
          "return": []
        },
        {
          "name": "rotate_consensus_key",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "set_delegated_voter",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_delegated_voter_with_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::stake::OwnerCapability",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_operator_with_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::stake::OwnerCapability",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_transaction_fee_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::stake::TransactionFeeConfig"
          ],
          "return": []
        },
        {
          "name": "stake_pool_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "store_aptos_coin_mint_cap",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>"
          ],
          "return": []
        },
        {
          "name": "unlock",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "unlock_with_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "&0x1::stake::OwnerCapability"
          ],
          "return": []
        },
        {
          "name": "update_network_and_fullnode_addresses",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "update_performance_statistics",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::option::Option<u64>",
            "vector<u64>"
          ],
          "return": []
        },
        {
          "name": "withdraw_with_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::stake::OwnerCapability",
            "u64"
          ],
          "return": [
            "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>"
          ]
        }
      ],
      "structs": [
        {
          "name": "AddStake",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount_added",
              "type": "u64"
            }
          ]
        },
        {
          "name": "AddStakeEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount_added",
              "type": "u64"
            }
          ]
        },
        {
          "name": "AllowedValidators",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "accounts",
              "type": "vector<address>"
            }
          ]
        },
        {
          "name": "AptosCoinCapabilities",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "mint_cap",
              "type": "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>"
            }
          ]
        },
        {
          "name": "DistributeRewards",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "rewards_amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "DistributeRewardsEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "rewards_amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "DistributeTransactionFee",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "fee_amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "IncreaseLockup",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_locked_until_secs",
              "type": "u64"
            },
            {
              "name": "new_locked_until_secs",
              "type": "u64"
            }
          ]
        },
        {
          "name": "IncreaseLockupEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_locked_until_secs",
              "type": "u64"
            },
            {
              "name": "new_locked_until_secs",
              "type": "u64"
            }
          ]
        },
        {
          "name": "IndividualValidatorPerformance",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "successful_proposals",
              "type": "u64"
            },
            {
              "name": "failed_proposals",
              "type": "u64"
            }
          ]
        },
        {
          "name": "JoinValidatorSet",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "JoinValidatorSetEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "LeaveValidatorSet",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "LeaveValidatorSetEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "OwnerCapability",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "PendingTransactionFee",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pending_fee_by_validator",
              "type": "0x1::big_ordered_map::BigOrderedMap<u64, 0x1::aggregator_v2::Aggregator<u64>>"
            }
          ]
        },
        {
          "name": "ReactivateStake",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "ReactivateStakeEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "RegisterValidatorCandidate",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "RegisterValidatorCandidateEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "RotateConsensusKey",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_consensus_pubkey",
              "type": "vector<u8>"
            },
            {
              "name": "new_consensus_pubkey",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "RotateConsensusKeyEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_consensus_pubkey",
              "type": "vector<u8>"
            },
            {
              "name": "new_consensus_pubkey",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "SetOperator",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_operator",
              "type": "address"
            },
            {
              "name": "new_operator",
              "type": "address"
            }
          ]
        },
        {
          "name": "SetOperatorEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_operator",
              "type": "address"
            },
            {
              "name": "new_operator",
              "type": "address"
            }
          ]
        },
        {
          "name": "StakeManagementPermission",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "StakePool",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "active",
              "type": "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>"
            },
            {
              "name": "inactive",
              "type": "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>"
            },
            {
              "name": "pending_active",
              "type": "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>"
            },
            {
              "name": "pending_inactive",
              "type": "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>"
            },
            {
              "name": "locked_until_secs",
              "type": "u64"
            },
            {
              "name": "operator_address",
              "type": "address"
            },
            {
              "name": "delegated_voter",
              "type": "address"
            },
            {
              "name": "initialize_validator_events",
              "type": "0x1::event::EventHandle<0x1::stake::RegisterValidatorCandidateEvent>"
            },
            {
              "name": "set_operator_events",
              "type": "0x1::event::EventHandle<0x1::stake::SetOperatorEvent>"
            },
            {
              "name": "add_stake_events",
              "type": "0x1::event::EventHandle<0x1::stake::AddStakeEvent>"
            },
            {
              "name": "reactivate_stake_events",
              "type": "0x1::event::EventHandle<0x1::stake::ReactivateStakeEvent>"
            },
            {
              "name": "rotate_consensus_key_events",
              "type": "0x1::event::EventHandle<0x1::stake::RotateConsensusKeyEvent>"
            },
            {
              "name": "update_network_and_fullnode_addresses_events",
              "type": "0x1::event::EventHandle<0x1::stake::UpdateNetworkAndFullnodeAddressesEvent>"
            },
            {
              "name": "increase_lockup_events",
              "type": "0x1::event::EventHandle<0x1::stake::IncreaseLockupEvent>"
            },
            {
              "name": "join_validator_set_events",
              "type": "0x1::event::EventHandle<0x1::stake::JoinValidatorSetEvent>"
            },
            {
              "name": "distribute_rewards_events",
              "type": "0x1::event::EventHandle<0x1::stake::DistributeRewardsEvent>"
            },
            {
              "name": "unlock_stake_events",
              "type": "0x1::event::EventHandle<0x1::stake::UnlockStakeEvent>"
            },
            {
              "name": "withdraw_stake_events",
              "type": "0x1::event::EventHandle<0x1::stake::WithdrawStakeEvent>"
            },
            {
              "name": "leave_validator_set_events",
              "type": "0x1::event::EventHandle<0x1::stake::LeaveValidatorSetEvent>"
            }
          ]
        },
        {
          "name": "TransactionFeeConfig",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": []
        },
        {
          "name": "UnlockStake",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount_unlocked",
              "type": "u64"
            }
          ]
        },
        {
          "name": "UnlockStakeEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount_unlocked",
              "type": "u64"
            }
          ]
        },
        {
          "name": "UpdateNetworkAndFullnodeAddresses",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_network_addresses",
              "type": "vector<u8>"
            },
            {
              "name": "new_network_addresses",
              "type": "vector<u8>"
            },
            {
              "name": "old_fullnode_addresses",
              "type": "vector<u8>"
            },
            {
              "name": "new_fullnode_addresses",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "UpdateNetworkAndFullnodeAddressesEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_network_addresses",
              "type": "vector<u8>"
            },
            {
              "name": "new_network_addresses",
              "type": "vector<u8>"
            },
            {
              "name": "old_fullnode_addresses",
              "type": "vector<u8>"
            },
            {
              "name": "new_fullnode_addresses",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "ValidatorConfig",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "consensus_pubkey",
              "type": "vector<u8>"
            },
            {
              "name": "network_addresses",
              "type": "vector<u8>"
            },
            {
              "name": "fullnode_addresses",
              "type": "vector<u8>"
            },
            {
              "name": "validator_index",
              "type": "u64"
            }
          ]
        },
        {
          "name": "ValidatorFees",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "fees_table",
              "type": "0x1::table::Table<address, 0x1::coin::Coin<0x1::aptos_coin::AptosCoin>>"
            }
          ]
        },
        {
          "name": "ValidatorInfo",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "addr",
              "type": "address"
            },
            {
              "name": "voting_power",
              "type": "u64"
            },
            {
              "name": "config",
              "type": "0x1::stake::ValidatorConfig"
            }
          ]
        },
        {
          "name": "ValidatorPerformance",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "validators",
              "type": "vector<0x1::stake::IndividualValidatorPerformance>"
            }
          ]
        },
        {
          "name": "ValidatorSet",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "consensus_scheme",
              "type": "u8"
            },
            {
              "name": "active_validators",
              "type": "vector<0x1::stake::ValidatorInfo>"
            },
            {
              "name": "pending_inactive",
              "type": "vector<0x1::stake::ValidatorInfo>"
            },
            {
              "name": "pending_active",
              "type": "vector<0x1::stake::ValidatorInfo>"
            },
            {
              "name": "total_voting_power",
              "type": "u128"
            },
            {
              "name": "total_joining_power",
              "type": "u128"
            }
          ]
        },
        {
          "name": "WithdrawStake",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount_withdrawn",
              "type": "u64"
            }
          ]
        },
        {
          "name": "WithdrawStakeEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount_withdrawn",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0e01000202020e0310970104a7011805bf01850107c402ad0208f104201091051f0ab0050b0bbb05040cbf05f1010db007020eb207020fb40704000000010e01000000030402030100010005000102030001000600010303000001000703040203040100080306020000010009000702030001000a00080303000001000b0a0b02030001000c0a0c0303000001000d0a0902030001000e0a0d0303000001000f0e030203000100100f030303000001001110070203000100120e0b02030201001311030303000001001404030203000100150403030300000100160e0302030201010203050502070209020b02000504050a0506050e02100202060b0102090009010900010103090009010b0001090100010b010209000901020900090101050106090101060b0001090101090102070b01020900090109000107090101070b00010901010b0001090103070b0102090009010900090103070b01020900090109000b0001090103060b010209000901090006090101060b010209000901057461626c6503426f780376616c055461626c650668616e646c6508636f6e7461696e730c636f6e7461696e735f626f78036e6577106e65775f7461626c655f68616e646c6506626f72726f770a626f72726f775f626f780a626f72726f775f6d75740e626f72726f775f626f785f6d75740672656d6f76650a72656d6f76655f626f7803616464076164645f626f7813626f72726f775f776974685f64656661756c7417626f72726f775f6d75745f776974685f64656661756c741164657374726f795f656d7074795f626f781a64657374726f795f6b6e6f776e5f656d7074795f756e736166651264726f705f756e636865636b65645f626f7806757073657274117461626c655f776974685f6c656e6774681773746f726167655f736c6f74735f616c6c6f6361746f72000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e310002010209000102010405010500090001000003040b000b0138000202010000030338013900020401000003050b000b0138023700020601000003050b000b0138033600020801000003050b000b0138043a01020a01000003060b000b010b0239013805020c01000007110a000a013806030a0b00010b020c030b03020b02010b000b0138070c0305080b00020005000200070002000d010000030e0a002e0a0138060406050a0a000a010b0238080b000b01380902010002000e0002000f03000003050e00380a0b00380b02100002000300020009000200110100000b120a002e0a013806030a0b000a010b023808020b000b0138090c030b020b03150509000000090017001800",
    "abi": {
      "address": "0x1",
      "name": "table",
      "friends": [
        "0x1::table_with_length",
        "0x1::storage_slots_allocator"
      ],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::table::Table<T0, T1>",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::table::Table<T0, T1>"
          ]
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::table::Table<T0, T1>",
            "T0"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::table::Table<T0, T1>",
            "T0"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::table::Table<T0, T1>",
            "T0"
          ],
          "return": [
            "T1"
          ]
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::table::Table<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        },
        {
          "name": "borrow_with_default",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::table::Table<T0, T1>",
            "T0",
            "&T1"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "borrow_mut_with_default",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::table::Table<T0, T1>",
            "T0",
            "T1"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "destroy_known_empty_unsafe",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::table::Table<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "upsert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::table::Table<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Box",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "val",
              "type": "T0"
            }
          ]
        },
        {
          "name": "Table",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "handle",
              "type": "address"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0801000203020c050e120720470867201087011f0ca601d6010ffc02020000000100000001000201010001010a02010200040a0203060202040102010106626173653136156261736531365f757466385f746f5f7665635f75380e6865785f636861725f746f5f75381a657468657265756d5f646572697661626c655f6163636f756e74000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31000300000325400100000000000000000c010600000000000000000c020a020e0041012304230e000a0242010e000a020601000000000000001642010c0314110131042f0b031411011b0c040d010b0444010b02060200000000000000160c0205040b01020103000004390a0031302604360a003139250c010b0104100b003130170c020b02020a0031412604330a003146250c030b03041f0b003137170c02050e0a0031612604300a003166250c040b04042e0b003157170c02050e06010000000000000027090c040527090c030518090c010508000300",
    "abi": {
      "address": "0x1",
      "name": "base16",
      "friends": [
        "0x1::ethereum_derivable_account"
      ],
      "exposed_functions": [
        {
          "name": "base16_utf8_to_vec_u8",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "hex_char_to_u8",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u8"
          ],
          "return": [
            "u8"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a08010006020604030a3c05461a07607e08de012010fe016e0cec02fb0400000006000a02090700000100010001000200010001000300010001000402010001000501040001010701010001000801060001020b01060001000c00010001000d010100010203030103030303030001020302020201080006020304030303066d6174683634036d6178036d696e076176657261676505636c616d700a666c6f6f725f6c6f6732056572726f7210696e76616c69645f617267756d656e74046c6f67320c4669786564506f696e7433320d66697865645f706f696e743332156372656174655f66726f6d5f7261775f76616c756503706f770473717274000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76313b0101000000000000001745494e56414c49445f4152475f464c4f4f525f4c4f47321743616e6e6f74206c6f6732207468652076616c75652030000000010000010b0a000a012604080b000c020b02020b010c02050601010000010b0a000a012304080b000c020b02020b010c0205060201000001170a000a0123040e0a000b010b00170602000000000000001a160c020b02020a010b000b01170602000000000000001a160c02050c0301000003060b020b010b00110011010204010000052931000c010a0006000000000000000022042631200c020a0231002404240a000601000000000000000a022f260313051f0a020c030b000b03300c000a020c030b010b03160c010b023101300c0205080b01020601000000000000001105270601000007410a0011040c010a0006000000000100000026043a0b000a01312017300c020b02350c030600000000000000000c040600000080000000000c050a050600000000000000002204320a030b03183120300c030a033200000000020000000000000000000000260323052d0a050c060b040b06160c040b033101300c030b053101300c0505140b013431202f0b04161107020b0031200a01172f0c02050d08010000022b0a010600000000000000002104080601000000000000000c020b02020601000000000000000c030a010601000000000000002404260a0106020000000000000019060100000000000000210315051b0a000c040b030b04180c030b010602000000000000001a0c010a000c040b000b04180c00050a0b030b00180c0205060901000001350a00060000000000000000210406060000000000000000020601000000000000000a0011043101163101302f0c010a010a000b011a163101300c010a010a000b011a163101300c010a010a000b011a163101300c010a010a000b011a163101300c010a010b000b011a11010200",
    "abi": {
      "address": "0x1",
      "name": "math64",
      "friends": [],
      "exposed_functions": [
        {
          "name": "max",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "min",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "average",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "clamp",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "floor_log2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u8"
          ]
        },
        {
          "name": "log2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "pow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "sqrt",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0f01001c021c480364f90304dd042a058705b90207c007d90e0899162006b9162210db16a6080a811f5c0bdd1f040ce11fce0f0daf2f1a0ec92f040fcd2f0400000010001f00200028002c003300350037003d003f0042004b005a0001020000040600000506000006060000070200000907010001000b0800010f040106010011060000120000001408000016060000190700001a0600001b0800021e060002320700001c0001010601001d00030001011c03010106010321000500010222060300010023050801080100240905000100250a05000100260b0500010027050c01080104290d0d0001002a0e02010801002b0f08010801052c05100001042d0d0d000100080c05010801002e09080001002f0c12020808010030140500010231141500010634161701000107361717000108381705000100391a1b0001003a1c050001003b1d1b0001003c051b0001093e020500010a401f020100010041001b00010b1d000300010043201b00010044001b000104450d0d00010046051b000100471e1b0001004824050108010049251b0001004a1e0500010c4c02080001004d1e050001004e27020001014f01020106010050290200010051290200010052092700010053092b00010054092c00010055292d000100560910000100570b1000010058092f0001005930020100010d5b3202010701005c330200010d5d3402010701005e0c08010801005f0508000100600c08010801006105080108010062090c01080100630a0c01080100640f0801080104650d0d000100660c0501080100670902000100683702010801006938020001006a380200010d6b3408010701006c1e0200010c6d02080001016e0402010601016f3a0201060100703c020208080100713d02000100720e0201080104730d0d000100740c08010801020405040c040913141514051c18140302222a220f2e353137310f0409042404092e453148394922420401060c010b070109000001080f010900010502050703030507080607030101010608000106080101060803010b05010900010302060c0b05010900020b0501090005010c0305050c010b0501090101090102050301081001060900010a0201020208100a0202060c0a020108000206050a020305050102050502070a09000a09000205080f020a0205010808030c03080f01060b05010900020506080202050a02010801010b070108080106080d0107080601080201080301080401080601080d03060c060c0b0501090001080c03060c060c090002060c06080d02060c090003050502020708060c03060c0b050109000503060c050501080b02070b07010900090005050505070806070503060c0b050109000b050109010208040502070806070507050608060505050708060705040608060502060806066f626a6563740e436f6e7374727563746f725265660473656c660a63616e5f64656c6574650944656c6574655265660944657269766552656609457874656e64526566114c696e6561725472616e73666572526566056f776e6572064f626a65637405696e6e65720a4f626a656374436f726511677569645f6372656174696f6e5f6e756d16616c6c6f775f756e67617465645f7472616e736665720f7472616e736665725f6576656e74730b4576656e7448616e646c65056576656e740d5472616e736665724576656e740b4f626a65637447726f75700b64756d6d795f6669656c6409546f6d6253746f6e650e6f726967696e616c5f6f776e6572085472616e736665720466726f6d02746f125472616e736665725065726d697373696f6e0b5472616e736665725265660e556e7472616e7366657261626c65106e65775f6576656e745f68616e646c650b6372656174655f6775696404475549440467756964067369676e65720a616464726573735f6f6606637265617465096578697374735f61741c616464726573735f66726f6d5f636f6e7374727563746f725f72656617616464726573735f66726f6d5f64656c6574655f72656617616464726573735f66726f6d5f657874656e645f72656611616464726573735f746f5f6f626a656374056572726f72096e6f745f666f756e64046275726e0869735f6f776e65720d6372656174655f7369676e6572117065726d697373696f6e5f64656e6965641763616e5f67656e65726174655f64656c6574655f72656607636f6e766572741a6372656174655f677569645f6f626a6563745f61646472657373096372656174655f69640249440362637308746f5f6279746573046861736808736861335f3235360866726f6d5f6263730a746f5f61646472657373136372656174655f6e616d65645f6f626a656374156372656174655f6f626a6563745f61646472657373166372656174655f6f626a6563745f696e7465726e616c0d6372656174655f6f626a656374137472616e73616374696f6e5f636f6e746578741567656e65726174655f617569645f6164647265737306766563746f7206617070656e641a6372656174655f6f626a6563745f66726f6d5f6163636f756e74076163636f756e74176372656174655f6f626a6563745f66726f6d5f67756964196372656174655f6f626a6563745f66726f6d5f6f626a6563740e616c72656164795f657869737473146372656174655f737469636b795f6f626a6563741f6372656174655f737469636b795f6f626a6563745f61745f616464726573730e6f626a6563745f616464726573731a6372656174655f757365725f646572697665645f6f626a656374226372656174655f757365725f646572697665645f6f626a6563745f61646472657373086665617475726573256f626a6563745f6e61746976655f646572697665645f616464726573735f656e61626c6564276372656174655f757365725f646572697665645f6f626a6563745f616464726573735f696d706c0664656c6574650e64657374726f795f68616e646c651864697361626c655f756e67617465645f7472616e7366657217656e61626c655f756e67617465645f7472616e736665721367656e65726174655f64656c6574655f7265661367656e65726174655f6465726976655f7265661367656e65726174655f657874656e645f7265661c67656e65726174655f6c696e6561725f7472616e736665725f7265660f67656e65726174655f7369676e65721d67656e65726174655f7369676e65725f666f725f657874656e64696e671567656e65726174655f7472616e736665725f726566106772616e745f7065726d697373696f6e137065726d697373696f6e65645f7369676e657213617574686f72697a655f756e6c696d69746564226772616e745f7065726d697373696f6e5f776974685f7472616e736665725f726566286772616e745f756e6c696d697465645f776974685f7065726d697373696f6e65645f7369676e65720869735f6275726e740969735f6f626a6563741169735f756e7472616e7366657261626c650d6f626a6563745f6578697374731b6f626a6563745f66726f6d5f636f6e7374727563746f725f726566166f626a6563745f66726f6d5f64656c6574655f726566046f776e730c6f75745f6f665f72616e67650a726f6f745f6f776e6572127365745f756e7472616e7366657261626c65087472616e736665720c7472616e736665725f7261770d7472616e736665725f63616c6c17636865636b5f7065726d697373696f6e5f6578697374731d7665726966795f756e67617465645f616e645f64657363656e64616e741e6d6f64756c655f6576656e745f6d6967726174696f6e5f656e61626c656404656d69740a656d69745f6576656e74127472616e736665725f746f5f6f626a656374117472616e736665725f776974685f72656606756e6275726e10696e76616c69645f617267756d656e7418756e67617465645f7472616e736665725f616c6c6f776564167072696d6172795f66756e6769626c655f73746f726504636f696e00000000000000000000000000000000000000000000000000000000000000010520ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631f2070a01000000000000000e454f424a4543545f45584953545328416e206f626a65637420616c72656164792065786973747320617420746869732061646472657373020000000000000016454f424a4543545f444f45535f4e4f545f455849535428416e206f626a65637420646f6573206e6f7420657869737420617420746869732061646472657373030000000000000015454e4f5f554e47415445445f5452414e534645525332546865206f626a65637420646f6573206e6f74206861766520756e6761746564207472616e736665727320656e61626c6564040000000000000011454e4f545f4f424a4543545f4f574e45522e5468652063616c6c657220646f6573206e6f742068617665206f776e657273686970207065726d697373696f6e7305000000000000000e4543414e4e4f545f44454c45544526546865206f626a65637420646f6573206e6f7420616c6c6f7720666f722064656c6574696f6e060000000000000010454d4158494d554d5f4e455354494e472f45786365656473206d6178696d756d206e657374696e6720666f7220616e206f626a656374207472616e736665722e070000000000000018455245534f555243455f444f45535f4e4f545f455849535434546865207265736f75726365206973206e6f742073746f726564206174207468652073706563696669656420616464726573732e080000000000000011454f424a4543545f4e4f545f4255524e542a43616e6e6f74207265636c61696d206f626a65637473207468617420776572656e2774206275726e742e090000000000000019454f424a4543545f4e4f545f5452414e534645525241424c45574f626a65637420697320756e7472616e7366657261626c6520616e79206f7065726174696f6e732074686174206d6967687420726573756c7420696e2061207472616e736665722061726520646973616c6c6f7765642e0a0000000000000015454f424a4543545f414c52454144595f4255524e542c43616e6e6f74206275726e20616e206f626a656374207468617420697320616c7265616479206275726e742e05085472616e7366657201040009546f6d6253746f6e65010301183078313a3a6f626a6563743a3a4f626a65637447726f75700a4f626a656374436f7265010301183078313a3a6f626a6563743a3a4f626a65637447726f75700b4f626a65637447726f757001020106676c6f62616c0e556e7472616e7366657261626c65010301183078313a3a6f626a6563743a3a4f626a65637447726f757006046f776e73010100056f776e65720101000869735f6275726e740101000869735f6f776e65720101000a726f6f745f6f776e65720101001169735f756e7472616e7366657261626c6501010000020202050301010201020502020102050302010205040202020508050502010a050602040c0308050d010e0b0701080809020113010a020115050b02030005170518050802030005170518050c020100050d020102050e020113010504052e000100010602040b0011013800020101000106070b0b0011030c010a012a060f000c030b010b03110402050002000601000002040b00100114020701000002040b00100214020801000002040b001003140209010000020f0a002906040c0a00380104090b00390002060700000000000000110a27060200000000000000110a270b01040106111b0b0011030c020a010a02380204180e013700140c030a03290803160b03110d0c040e040b0212082d0802060a0000000000000027060400000000000000110e270f01000106020f0e003700142906040c0e003700142b0610051402060200000000000000110a271001000002040b00100614021101000002050e0037001438030212010000190e0b000b0111130c020e0238040c030d0331fd44180b031115111602170100001e0c0b0011030c020e020b0111180c030b020b03091119021a0100000507111b0c010b000b010811190218010000170d0b0038050c020d020b0138060d0231fe44180b0211151116021d01000003080a00111e0c010b0011030b01111f021f000000210f0e0138070c020d0231fd44180b02111511160c030b000b0308111902200100010603080a0011010c010b0011030b01111f0219000000231b0a01290603180a01110d0c030600000000000004000c040a010d0411040c050e030b040b00080b05380812062d060b010b02120002060100000000000000112127220100000507111b0c010b000b01091119022303000002050b000b01091119022401000002040b003700140225030000050b0a000b0110071411260c020b000b0209111902260100002617112704080b000b0111280c020b02020e0038050c030d030e01380538060d0331fc44180b03111511160c0205062800020029010002060d28180e001002142c0613060c010101010e00100214290d030f05150e001002142c0d130d010b013809022b010001062a0a0b001008142a060c01090b010f0915022c010001062a140a00100814290d030f0b001008142a060c01080b010f0915020b0001060900000000000000110e272d010000020e0a0010061404090b001001141201020b0001060500000000000000110e272e01000002050b001001141202022f01000002050b00100114120302300100010605160a00100814290d03110a001008143901380a0c010b001008140b011204020b0001060900000000000000110e273101000002050b00100114110d023201000002050b00100314110d0233010000020f0a00100114290d030a0b00100114120c020b0001060900000000000000110e273401000002080b000b010e02370014120b380b023601000002070b000b01100814120b380c023801000002050e003700142908023901000002030b002906020c0100010602050b00380d0b0121023a01000002050e00370014290d023b010000080b0a00290604080b0038010c010b0102090c0105063c01000002050b00100114380e023d01000002050b00100214380e023e0100010635320e00380f0c020a022906042f0a020a0121040c08020b022b061005140c0331000c040a010a0322042d0b043101160c040a04310823042a0a032906032409020b032b061005140c030513060600000000000000113f270802060200000000000000110a274001000106050d0b00380d0c010a011139040b0b013810380a0c0105030b0102410100010636110a001001142a060c01090b010f09150b0011310c020e0209120d2d0d02420104010602070b000e013700140b02114302440104010602050b000b010b0211430243010001063b380a0011030c030b000a01120b381104350b030a0111460b010c040b020c050a042a060c060a061005140a05220432114704280b040a061005140a05120938120b060f050c070b050b0715020a060f0a0b040a061005140a05120a381305210b06010527060900000000000000110e274a0104010602070b000b010e023701143814024b01000206083e440e00100b14290d03410e00100b142908030b05110e00100b142c081308010e00100b142a060c020a021005140e00100c1421043c114704300e00100b140a021005140a01120938120b020f050c030b010b0315020a020f0a0e00100b140a021005140a01120a381305290b0201060400000000000000110e27060900000000000000110e274c01040206083f6a0e013700140c020a02290804650a000a02120b381104600a022b060c030a031005140a00110321041f0b00010b03010b022c08130801020b03100514070021045b0a022c0813080c040a040b0011032104580b020c050b040c060a052a060c070a071005140a062204551147044b0b050a071005140a06120938120b070f050c080b060b0815051e0a070f0a0b050a071005140a06120a381305440b0701051e060400000000000000110e270b0001060400000000000000110e270b0001060900000000000000110e270b0001060800000000000000114d274e01000106020f0e003700142906040c0e003700142b0610091402060200000000000000110a274600000106403f0a012906043c0b012b060c020a0210091404370b021005140c0331000c040a000a032204360b043101160c040a0431082304330a03290604300b032b060c050a05100914042b0b051005140c0305100b0501060300000000000000110e27060400000000000000110e27060600000000000000113f27020b0201060300000000000000110e27060200000000000000110a27060000000100030005000601000102000c000602060304000401040404130075007600",
    "abi": {
      "address": "0x1",
      "name": "object",
      "friends": [
        "0x1::primary_fungible_store",
        "0x1::coin"
      ],
      "exposed_functions": [
        {
          "name": "new_event_handle",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::event::EventHandle<T0>"
          ]
        },
        {
          "name": "create_guid",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::guid::GUID"
          ]
        },
        {
          "name": "address_from_constructor_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "address_from_delete_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::DeleteRef"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "address_from_extend_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ExtendRef"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "address_to_object",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address"
          ],
          "return": [
            "0x1::object::Object<T0>"
          ]
        },
        {
          "name": "burn",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>"
          ],
          "return": []
        },
        {
          "name": "owner",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "can_generate_delete_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "convert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            },
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::object::Object<T1>"
          ]
        },
        {
          "name": "create_guid_object_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "create_named_object",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": [
            "0x1::object::ConstructorRef"
          ]
        },
        {
          "name": "create_object",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "0x1::object::ConstructorRef"
          ]
        },
        {
          "name": "create_object_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&address",
            "vector<u8>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "create_object_from_account",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::object::ConstructorRef"
          ]
        },
        {
          "name": "create_object_from_object",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::object::ConstructorRef"
          ]
        },
        {
          "name": "create_sticky_object",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "0x1::object::ConstructorRef"
          ]
        },
        {
          "name": "create_sticky_object_at_address",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "0x1::object::ConstructorRef"
          ]
        },
        {
          "name": "object_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::object::Object<T0>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "create_user_derived_object",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "&0x1::object::DeriveRef"
          ],
          "return": [
            "0x1::object::ConstructorRef"
          ]
        },
        {
          "name": "create_user_derived_object_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "delete",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::object::DeleteRef"
          ],
          "return": []
        },
        {
          "name": "disable_ungated_transfer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::TransferRef"
          ],
          "return": []
        },
        {
          "name": "enable_ungated_transfer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::TransferRef"
          ],
          "return": []
        },
        {
          "name": "generate_delete_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::object::DeleteRef"
          ]
        },
        {
          "name": "generate_derive_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::object::DeriveRef"
          ]
        },
        {
          "name": "generate_extend_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::object::ExtendRef"
          ]
        },
        {
          "name": "generate_linear_transfer_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::TransferRef"
          ],
          "return": [
            "0x1::object::LinearTransferRef"
          ]
        },
        {
          "name": "generate_signer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "generate_signer_for_extending",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ExtendRef"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "generate_transfer_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::object::TransferRef"
          ]
        },
        {
          "name": "grant_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "&signer",
            "0x1::object::Object<T0>"
          ],
          "return": []
        },
        {
          "name": "grant_permission_with_transfer_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&0x1::object::TransferRef"
          ],
          "return": []
        },
        {
          "name": "is_burnt",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_object",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_owner",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>",
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_untransferable",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "object_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "object_from_constructor_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::object::Object<T0>"
          ]
        },
        {
          "name": "object_from_delete_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::object::DeleteRef"
          ],
          "return": [
            "0x1::object::Object<T0>"
          ]
        },
        {
          "name": "owns",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>",
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "root_owner",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "set_untransferable",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": []
        },
        {
          "name": "transfer",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "address"
          ],
          "return": []
        },
        {
          "name": "transfer_call",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "transfer_raw",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "transfer_to_object",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            },
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "0x1::object::Object<T1>"
          ],
          "return": []
        },
        {
          "name": "transfer_with_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::object::LinearTransferRef",
            "address"
          ],
          "return": []
        },
        {
          "name": "unburn",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>"
          ],
          "return": []
        },
        {
          "name": "ungated_transfer_allowed",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "ConstructorRef",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "self",
              "type": "address"
            },
            {
              "name": "can_delete",
              "type": "bool"
            }
          ]
        },
        {
          "name": "DeleteRef",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "self",
              "type": "address"
            }
          ]
        },
        {
          "name": "DeriveRef",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "self",
              "type": "address"
            }
          ]
        },
        {
          "name": "ExtendRef",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "self",
              "type": "address"
            }
          ]
        },
        {
          "name": "LinearTransferRef",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "self",
              "type": "address"
            },
            {
              "name": "owner",
              "type": "address"
            }
          ]
        },
        {
          "name": "Object",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "inner",
              "type": "address"
            }
          ]
        },
        {
          "name": "ObjectCore",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "guid_creation_num",
              "type": "u64"
            },
            {
              "name": "owner",
              "type": "address"
            },
            {
              "name": "allow_ungated_transfer",
              "type": "bool"
            },
            {
              "name": "transfer_events",
              "type": "0x1::event::EventHandle<0x1::object::TransferEvent>"
            }
          ]
        },
        {
          "name": "ObjectGroup",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "TombStone",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "original_owner",
              "type": "address"
            }
          ]
        },
        {
          "name": "Transfer",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "object",
              "type": "address"
            },
            {
              "name": "from",
              "type": "address"
            },
            {
              "name": "to",
              "type": "address"
            }
          ]
        },
        {
          "name": "TransferEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "object",
              "type": "address"
            },
            {
              "name": "from",
              "type": "address"
            },
            {
              "name": "to",
              "type": "address"
            }
          ]
        },
        {
          "name": "TransferPermission",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "object",
              "type": "address"
            }
          ]
        },
        {
          "name": "TransferRef",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "self",
              "type": "address"
            }
          ]
        },
        {
          "name": "Untransferable",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d010004020406030a9301049d010e05ab017d07a802e401088c042010ac04ad030ad907070be007020ce207bb040d9d0c020e9f0c020000000400010701000000030001010001010303010100010005050201000100060601010001000706080100010008090a01000100090008010001010a0b01010001000b0d04010001000c0601010001000d0d02010001000e0f02010201000f09020100010010050401000100110e0d010001001211020103010013040d0100010014020d0100010115020e0100010016050d01000100170d0e010001010203020702090212021002110202060b00010900060900010101090002060a09000609000002070b00010900090001060b0001090001070a09000106090001070b000109000107090001060a090003060a090006090003010b00010900010a0900020b000109000900020a0900090002060b00010900090003060a090009000302070a09000b00010900066f7074696f6e064f7074696f6e0376656308636f6e7461696e7306766563746f7204737761700769735f736f6d6506626f72726f770a626f72726f775f6d757413626f72726f775f776974685f64656661756c740869735f656d7074790c64657374726f795f6e6f6e650769735f6e6f6e650c64657374726f795f736f6d651464657374726f795f776974685f64656661756c7407657874726163740466696c6c0866726f6d5f766563106765745f776974685f64656661756c74046e6f6e6504736f6d650973696e676c65746f6e0c737761705f6f725f66696c6c06746f5f766563000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631f9020300000400000000000e454f5054494f4e5f49535f5345547354686520604f7074696f6e6020697320696e20616e20696e76616c696420737461746520666f7220746865206f7065726174696f6e20617474656d707465642e0a2054686520604f7074696f6e602069732060536f6d6560207768696c652069742073686f756c6420626520604e6f6e65602e01000400000000000f454f5054494f4e5f4e4f545f5345547354686520604f7074696f6e6020697320696e20616e20696e76616c696420737461746520666f7220746865206f7065726174696f6e20617474656d707465642e0a2054686520604f7074696f6e6020697320604e6f6e6560207768696c652069742073686f756c642062652060536f6d65602e020004000000000014454f5054494f4e5f5645435f544f4f5f4c4f4e474143616e6e6f7420636f6e73747275637420616e206f7074696f6e2066726f6d206120766563746f7220776974682032206f72206d6f726520656c656d656e74732e0000000201020a090000020001000004050b0037000b013800020201000007110a002e3801040d0b0036000c020a0245020b020b014402020b00010601000400000000002704010000040c0a00380104080b0037000600000000000000004202020b00010601000400000000002705010000040d0a002e380104090b0036000600000000000000004302020b000106010004000000000027060100000c130b0037000c020a023802040c0b02010b010c030b03020b01010b0206000000000000000042020c03050a0801000004090e00380304070b003a004602000000000000000002060000040000000000270a0100000e0d0e003801040b0b003a000c010d0145020b014602000000000000000002060100040000000000270b010000100e0b003a000c020e023802040a0b010c030b03020d0245020c0305080c010000040c0a002e380104080b0036004502020b0001060100040000000000270d010000070f0b0036000c020a022e3802040b0b020b014402020b0201060000040000000000270e010000040a0e0041020601000000000000002504080b00390002060200040000000000270f01000012120b0037000c020a023802040c0b02010b010c030b03020b020600000000000000004202140c03050a0901000004040b0037003802020301000004050b00370038022002100100000403400200000000000000003900021101000004040b0038043900021301000013130b0036000c020a022e3802040e38050c030b020b0144020b03020a02450238060c0305091401000004030b003a00020000000200",
    "abi": {
      "address": "0x1",
      "name": "option",
      "friends": [],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::option::Option<T0>",
            "&T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "swap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::option::Option<T0>",
            "T0"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::option::Option<T0>"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::option::Option<T0>"
          ],
          "return": [
            "&mut T0"
          ]
        },
        {
          "name": "borrow_with_default",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::option::Option<T0>",
            "&T0"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "destroy_none",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::option::Option<T0>"
          ],
          "return": []
        },
        {
          "name": "destroy_some",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::option::Option<T0>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "destroy_with_default",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "0x1::option::Option<T0>",
            "T0"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "extract",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::option::Option<T0>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "fill",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::option::Option<T0>",
            "T0"
          ],
          "return": []
        },
        {
          "name": "from_vec",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "vector<T0>"
          ],
          "return": [
            "0x1::option::Option<T0>"
          ]
        },
        {
          "name": "get_with_default",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            }
          ],
          "params": [
            "&0x1::option::Option<T0>",
            "T0"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "is_none",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::option::Option<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_some",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::option::Option<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "none",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::option::Option<T0>"
          ]
        },
        {
          "name": "some",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "0x1::option::Option<T0>"
          ]
        },
        {
          "name": "swap_or_fill",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::option::Option<T0>",
            "T0"
          ],
          "return": [
            "0x1::option::Option<T0>"
          ]
        },
        {
          "name": "to_vec",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::option::Option<T0>"
          ],
          "return": [
            "vector<T0>"
          ]
        }
      ],
      "structs": [
        {
          "name": "Option",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "vec",
              "type": "vector<T0>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0701000203020c050e0907172108382010581f0c7710000000010001000100020003000101060c010500010605067369676e65720a616464726573735f6f660e626f72726f775f61646472657373000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e310001000002040b00110114020101020000",
    "abi": {
      "address": "0x1",
      "name": "signer",
      "friends": [],
      "exposed_functions": [
        {
          "name": "address_of",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "borrow_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "&address"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b01000602060a031070048001080588017507fd01d30108d0032010f00391010a8105060c8705ee020df50702000000060012000107000211070100000003000100010004030100010005040200010105060201000100070702000100080809000100090a010001000a0b0c0001000b0a090001010b0e09010001000c0f020001000d100c000100020a110001000e11090001000f12100001001010140001021315160100010214021601000103050905100c110c0206080006080001030002060a02060a02020708000800010202070a09000a09000307080003080002060a020301010106080003060800030301080005060a0201030800080001060a0900020708000a02010a0201060a0203060a02030305060a0203010101010b01010800010900010b0101090006737472696e6706537472696e6705627974657308696e6465785f6f6611696e7465726e616c5f696e6465785f6f6606617070656e6406766563746f7206696e7365727419696e7465726e616c5f69735f636861725f626f756e64617279066c656e6774680a7375625f737472696e670869735f656d7074790b617070656e645f75746638047574663813696e7465726e616c5f636865636b5f7574663813696e7465726e616c5f7375625f737472696e67087472795f75746638064f7074696f6e066f7074696f6e04736f6d65046e6f6e65000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76315e0201000000000000000d45494e56414c49445f5554463819416e20696e76616c6964205554463820656e636f64696e672e02000000000000000e45494e56414c49445f494e44455813496e646578206f7574206f662072616e67652e0000000201020a020001000002060b0010000b0110001101020201000002070b000f000e01100014380002040100000d310a0010000c030a010a03410525042c0b030a0111050c040b0404280a002e11060c050a002e0600000000000000000a0111070c060a002e0b010b0511070c070d060b0211020d060b0711020b060b0015020b0001060200000000000000270b0301090c04050c0801000002040b0010003801020601000002040b0010004105020a01000002050b000b01110b1102020c01000002030b001000020d01020001000200050002000e00020007010000132f0b0010000c030a0341050c040a020b0425042c0a010a02250c050b0504290a030a0111050c060b0604260a030a0211050c070b0704220b030b010b02110e1200020b030106020000000000000027090c07051a090c060514090c05050e0f010000140c0e00110d04090b00120038020c010b010238030c0105070b01000002080e00110d04060b0012000206010000000000000027000000",
    "abi": {
      "address": "0x1",
      "name": "string",
      "friends": [],
      "exposed_functions": [
        {
          "name": "index_of",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::string::String",
            "&0x1::string::String"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "append",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "insert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::string::String",
            "u64",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "is_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::string::String"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::string::String"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "append_utf8",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::string::String",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::string::String"
          ],
          "return": [
            "&vector<u8>"
          ]
        },
        {
          "name": "internal_check_utf8",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&vector<u8>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "sub_string",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::string::String",
            "u64",
            "u64"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "try_utf8",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::string::String>"
          ]
        },
        {
          "name": "utf8",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::string::String"
          ]
        }
      ],
      "structs": [
        {
          "name": "String",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a080100040304d00104d4011405e8019f010787039d0208a4052010c405a3030ce708f90b000000060001000101000100020004010001000303050001000407050001000508020100010105090201000100070b0601000100080c0601000100090d06010001000a0e06010001000b0c06010001000c0f10010001000d1112010001000e1306010001000f06130100010010080601000100110213010001001215010100010013151601000100140e02010001001517060100010016110201000100171a1301000100180b0601000100191116010001001a1b16010001001b1c13010101001c1102010001001d1113010001001e11130100010502080209020a0210020102150217021902110202060a09000609000101010900020303020103010a03000303030303070a09000309000207090009000203090003070a0900030302070a09000a090005070a09000303070a09000301070a090002060a0900030106090002070a09000301070900010a090002030a090001060a0900010302070a09000900020a0303030309000a090002070a090006090004070a090003030303060a0900030302010a090006766563746f7208636f6e7461696e7308696e6465785f6f660572616e67650f72616e67655f776974685f73746570077265706c616365036d656d047377617006617070656e640a6d6f76655f72616e676507726576657273650e726576657273655f617070656e6406626f72726f770a626f72726f775f6d75740d64657374726f795f656d70747905656d70747906696e736572740973696e676c65746f6e0869735f656d707479066c656e67746808706f705f6261636b09707573685f6261636b0672656d6f76650c72656d6f76655f76616c75650d726576657273655f736c69636506726f746174650c726f746174655f736c69636505736c6963650b737761705f72656d6f7665047472696d0c7472696d5f72657665727365000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631ef020500000200000000001445494e4445585f4f55545f4f465f424f554e44532a54686520696e64657820696e746f2074686520766563746f72206973206f7574206f6620626f756e647301000200000000000e45494e56414c49445f52414e47452a54686520696e64657820696e746f2074686520766563746f72206973206f7574206f6620626f756e647302000200000000001845564543544f52535f4c454e4754485f4d49534d4154434828546865206c656e677468206f662074686520766563746f727320617265206e6f7420657175616c2e03000200000000000d45494e56414c49445f535445504354686520737465702070726f766964656420696e206072616e67656020697320696e76616c69642c206d7573742062652067726561746572207468616e207a65726f2e04000200000000001445494e56414c49445f534c4943455f52414e4745205468652072616e676520696e2060736c6963656020697320696e76616c69642e00000001000003200600000000000000000c020a0041020c030a020a0323041a0a000a0242020a012104150b00010b010108020b02060100000000000000160c0205050b00010b010109020101000003220600000000000000000c020a0041020c030a020a0323041b0a000a0242020a012104160b00010b0101080b02020b02060100000000000000160c0205050b00010b010109060000000000000000020201000006050b000b01060100000000000000110302040100000a1f0a002e41020c030a010a0323041b0b000b0143020b0238000c040b04020a000b0244020a000b010b0347020b0045020c04050e0b000106000002000000000027060102000701000003160a002e41020c020e0141020c030d010600000000000000000b030b000b0238010b0146020000000000000000020d0138020b000b013803050f0b0102000c0102000d0102000e0102000f01000014440a002e41020c030a010a032504400a01060200000000000000160a032604210a000b0244020a010a0323041e0a000a010a0347020b01060100000000000000160c0105110b0001020b0238040c040d040600000000000000000601000000000000000b000b0138010b044602000000000000000005200a000b0244020a010a0323043d0a000a010a0347020b01060100000000000000160c0105300b000105200b0001060000020000000000271101000006050b0041020600000000000000002102120102000801020013010200140102000301000018180a02060000000000000000240416401600000000000000000c030a000a012304140d030a0044160a020c040b000b04160c0005060b03020603000200000000002715010000194b0a002e41020c020a010a0226040c0b0001060000020000000000270a01060300000000000000160a022604280b02060100000000000000170c020a010a022304230a000a010b01060100000000000000160c010a01470205160b0045020c030b0302400200000000000000000c040b000b010601000000000000000d0406000000000000000038010d0445020b04460200000000000000000c0305260b02060100000000000000170c020a010a022304470a000a010b01060100000000000000160c010a014702053a0b0045020c0305261601000014120a002e0b0138050c02040d0b000b023806400201000000000000000c030b03020b0001400200000000000000000c03050b0901000016090a002e41020c010b000600000000000000000b013807020a01000016150e0141020c020a020600000000000000002404100a000d01450244020b02060100000000000000170c0205030b00010b0146020000000000000000021701000006270a010a022504230a010a0221040b0b0001020b02060100000000000000170c020a010a022304200a000a010a0247020b01060100000000000000160c010b02060100000000000000170c02050f0b0001020b00010601000200000000002718010000160a0a002e41020c020b000600000000000000000b010b023808021901000006120a000a010a0238070a000a020a0338070b000a010a0338070b010b030b02171602100100001307400200000000000000000c010d010b0044020b01021a0100001d270a010a022504240a020a004102250c030b030420400200000000000000000c040a010a0223041c0d040a000a0142021444020b01060100000000000000160c01050d0b00010b04020b000106040002000000000027090c0305091b01000016150a002e380903110a002e4102060100000000000000170c020a000b010b0247020b004502020b0001060000020000000000271c010000142c0a002e41020c020a010a02250428400200000000000000000c03050c05160b000a010b020b01170d0306000000000000000038010b03020a020a012404230d030a00450244020b02060100000000000000170c0205160b00010d03380205140b0001060000020000000000271d010000141f0a002e41020c020a010a0225041b400200000000000000000c030a010a022304170d030a00450244020b02060100000000000000170c02050a0b00010b03020b00010600000200000000002700",
    "abi": {
      "address": "0x1",
      "name": "vector",
      "friends": [],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&vector<T0>",
            "&T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "index_of",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&vector<T0>",
            "&T0"
          ],
          "return": [
            "bool",
            "u64"
          ]
        },
        {
          "name": "range",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "vector<u64>"
          ]
        },
        {
          "name": "replace",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64",
            "T0"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "swap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "append",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "vector<T0>"
          ],
          "return": []
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&vector<T0>",
            "u64"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64"
          ],
          "return": [
            "&mut T0"
          ]
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "vector<T0>"
          ],
          "return": []
        },
        {
          "name": "empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "insert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64",
            "T0"
          ],
          "return": []
        },
        {
          "name": "is_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&vector<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&vector<T0>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "move_range",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64",
            "u64",
            "&mut vector<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "pop_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "push_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "T0"
          ],
          "return": []
        },
        {
          "name": "range_with_step",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64",
            "u64"
          ],
          "return": [
            "vector<u64>"
          ]
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "remove_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "&T0"
          ],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "reverse",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>"
          ],
          "return": []
        },
        {
          "name": "reverse_append",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "vector<T0>"
          ],
          "return": []
        },
        {
          "name": "reverse_slice",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "rotate",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "rotate_slice",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64",
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "singleton",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "slice",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy"
              ]
            }
          ],
          "params": [
            "&vector<T0>",
            "u64",
            "u64"
          ],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "swap_remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "trim",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64"
          ],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "trim_reverse",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64"
          ],
          "return": [
            "vector<T0>"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0e0100200220540374850304f9034805c104b30307f407ea0b08de132006fe136510e314e6100ac925b6010bff26040c8327b90e0dbc35260ee2351e00000005000a000c001b0027002e003200360039003b00400049004c005f0064000106000104070100000209070200000000030b0700000e0600000f0401040000170600041a0700001c0600001d0600001f0600002106000022070000240400052604010601002b08010400062d0402030100010031000100010733030101070100340401010401073505060107010837040700010638010a02030401093a040c0106010a3c01060001043d0110010001053e0801010601053f12010106010b41131300010b421313000100431506010401014417060100010145171801000100461a1301040100471b1301040103481d1e00010c4a181d010001024b2001020404010d4d01130001014e0821010001064b220102030001024f24060204040102502526020404010b51131300010052282901040106452a2b020300010053281d0104010054281601040100552813010401005628130104010057282c01040100582d1d0104010245242b0204040100592813010401005a2806010401005b2807010401005c2813010401005d282f010401005e28060104010e601d0600010061280101040106623132020300010e631d1300010f65011d00010b66131300010015280601040100671506010401003007130104010068280801040101693508010001006a37010104010262253202040401006b3901010401010203020509060b060d060e060f080809110a0d0e160f1611081306141f1608170909230a0b181f191f1c09231f250824082c090d0831082b08090e34080a0e361f1313093a0a0f02060c060c0001080c03060c060c090001060c02060c09000101010501090002030b05010900010b100209000901010804010b0e01090001080801080901080b01080701080602070b0e0109000900010302050b0f01090001060b05010900010401060b010109000106090002040108050509000a0204030b0101040b020208030a0209050509000a0204030b0101040b020208030a02010102010a020108030208030a0203070b02020900090109000901010b0101090003070b1002090009010900090101080002060b02020900090106090002070b020209000901060900020900090108070b0f01090003080301030a020b0101090005020503010b01010402060b100209000901090001060901010b020208030a0203050308030503060b0501090004040102040402060b05010900080302070b10020900090109000107090103070b0501090008030302060b050109000101070b0101090004070b0f010900070b050109000803010305030a020c070b0f010900070b050109000803010a02070a0208030101010101050609000503030101080a0a070b0f010900070b05010900080301030a020803070a0208030106766f74696e670e43726561746550726f706f73616c0b70726f706f73616c5f69641f6561726c795f7265736f6c7574696f6e5f766f74655f7468726573686f6c64064f7074696f6e066f7074696f6e0e657865637574696f6e5f686173680f65787069726174696f6e5f73656373086d657461646174610953696d706c654d61700a73696d706c655f6d617006537472696e6706737472696e67126d696e5f766f74655f7468726573686f6c641343726561746550726f706f73616c4576656e740850726f706f73616c0870726f706f73657211657865637574696f6e5f636f6e74656e74126372656174696f6e5f74696d655f73656373097965735f766f746573086e6f5f766f7465730b69735f7265736f6c766564147265736f6c7574696f6e5f74696d655f736563730d5265676973746572466f72756d0f686f7374696e675f6163636f756e741270726f706f73616c5f747970655f696e666f0854797065496e666f09747970655f696e666f125265676973746572466f72756d4576656e740f5265736f6c766550726f706f73616c0e7265736f6c7665645f6561726c7904566f7465096e756d5f766f74657309566f74654576656e740e566f74655065726d697373696f6e0b64756d6d795f6669656c640c566f74696e674576656e7473166372656174655f70726f706f73616c5f6576656e74730b4576656e7448616e646c65056576656e741572656769737465725f666f72756d5f6576656e7473177265736f6c76655f70726f706f73616c5f6576656e74730b766f74655f6576656e74730b566f74696e67466f72756d0970726f706f73616c73055461626c65057461626c65066576656e7473106e6578745f70726f706f73616c5f6964106772616e745f7065726d697373696f6e137065726d697373696f6e65645f7369676e657213617574686f72697a655f756e6c696d6974656408726567697374657217636865636b5f7065726d697373696f6e5f657869737473067369676e65720a616464726573735f6f66036e6577076163636f756e74106e65775f6576656e745f68616e646c650866656174757265731e6d6f64756c655f6576656e745f6d6967726174696f6e5f656e61626c656407747970655f6f6604656d69740a656d69745f6576656e74056572726f720e616c72656164795f657869737473117065726d697373696f6e5f64656e6965641563616e5f62655f7265736f6c7665645f6561726c790769735f736f6d6506626f72726f770f6372656174655f70726f706f73616c126372656174655f70726f706f73616c5f763204757466380362637308746f5f6279746573036164640974696d657374616d700b6e6f775f7365636f6e647304736f6d650c636f6e7461696e735f6b65790672656d6f766510696e76616c69645f617267756d656e74236765745f6561726c795f7265736f6c7574696f6e5f766f74655f7468726573686f6c64126765745f657865637574696f6e5f68617368166765745f6d696e5f766f74655f7468726573686f6c641a6765745f70726f706f73616c5f6372656174696f6e5f736563731c6765745f70726f706f73616c5f65787069726174696f6e5f73656373156765745f70726f706f73616c5f6d657461646174611b6765745f70726f706f73616c5f6d657461646174615f76616c7565126765745f70726f706f73616c5f73746174651069735f766f74696e675f636c6f7365640c6765745f70726f706f736572186765745f7265736f6c7574696f6e5f74696d655f73656373096765745f766f7465732369735f6d756c74695f737465705f70726f706f73616c5f696e5f657865637574696f6e0866726f6d5f62637307746f5f626f6f6c1669735f70726f706f73616c5f7265736f6c7661626c650a626f72726f775f6d757406746f5f753634137472616e73616374696f6e5f636f6e746578740f6765745f7363726970745f686173680d696e76616c69645f73746174651569735f766f74696e675f706572696f645f6f766572077265736f6c76650765787472616374137265736f6c76655f70726f706f73616c5f763204766f746500000000000000000000000000000000000000000000000000000000000000010a021b1a49535f4d554c54495f535445505f50524f504f53414c5f4b45590a02242349535f4d554c54495f535445505f50524f504f53414c5f494e5f455845435554494f4e0a021d1c5245534f4c5641424c455f54494d455f4d455441444154415f4b455914636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631b2100d0100000000000000254550524f504f53414c5f455845435554494f4e5f484153485f4e4f545f4d41544348494e474743757272656e7420736372697074277320657865637574696f6e206861736820646f6573206e6f74206d6174636820746865207370656369666965642070726f706f73616c277302000000000000001c4550524f504f53414c5f43414e4e4f545f42455f5245534f4c5645447050726f706f73616c2063616e6e6f74206265207265736f6c7665642e2045697468657220766f74696e67206475726174696f6e20686173206e6f74207061737365642c206e6f7420656e6f75676820766f7465732c206f7220666577657220796573207468616e206e6f20766f74657303000000000000001a4550524f504f53414c5f414c52454144595f5245534f4c5645442a50726f706f73616c2063616e6e6f74206265207265736f6c766564206d6f7265207468616e206f6e636504000000000000001e4550524f504f53414c5f454d5054595f455845435554494f4e5f484153483650726f706f73616c2063616e6e6f7420636f6e7461696e20616e20656d70747920657865637574696f6e20736372697074206861736805000000000000001e4550524f504f53414c5f564f54494e475f414c52454144595f454e4445442b50726f706f73616c277320766f74696e6720706572696f642068617320616c726561647920656e6465642e06000000000000002045564f54494e475f464f52554d5f414c52454144595f5245474953544552454429566f74696e6720666f72756d2068617320616c7265616479206265656e20726567697374657265642e07000000000000001b45494e56414c49445f4d494e5f564f54455f5448524553484f4c44484d696e696d756d20766f7465207468726573686f6c642063616e6e6f7420626520686967686572207468616e206561726c79207265736f6c7574696f6e207468726573686f6c642e08000000000000001c455245534f4c5554494f4e5f43414e4e4f545f42455f41544f4d49435b5265736f6c7574696f6e206f6620612070726f706f73616c2063616e6e6f742068617070656e2061746f6d6963616c6c7920696e207468652073616d65207472616e73616374696f6e20617320746865206c61737420766f74652e090000000000000021454d554c54495f535445505f50524f504f53414c5f494e5f455845435554494f4e4143616e6e6f7420766f74652069662074686520737065636966696564206d756c74692d737465702070726f706f73616c20697320696e20657865637574696f6e2e0a000000000000003c454d554c54495f535445505f50524f504f53414c5f43414e4e4f545f5553455f53494e474c455f535445505f5245534f4c56455f46554e4354494f4edb01496620612070726f706f73616c206973206d756c74692d737465702c207765206e65656420746f2075736520607265736f6c76655f70726f706f73616c5f763228296020746f207265736f6c76652069742e0a2049662077652075736520607265736f6c766528296020746f207265736f6c76652061206d756c74692d737465702070726f706f73616c2c2069742077696c6c206661696c207769746820454d554c54495f535445505f50524f504f53414c5f43414e4e4f545f5553455f53494e474c455f535445505f5245534f4c56455f46554e4354494f4e2e0b00000000000000354553494e474c455f535445505f50524f504f53414c5f43414e4e4f545f484156455f4e4558545f455845435554494f4e5f48415348840149662077652063616c6c20607265736f6c76655f70726f706f73616c5f763228296020746f207265736f6c766520612073696e676c652d737465702070726f706f73616c2c2074686520606e6578745f657865637574696f6e5f686173686020706172616d657465722073686f756c6420626520616e20656d70747920766563746f722e0c00000000000000184550524f504f53414c5f49535f53494e474c455f535445504d43616e6e6f742063616c6c206069735f6d756c74695f737465705f70726f706f73616c5f696e5f657865637574696f6e282960206f6e2073696e676c652d737465702070726f706f73616c732e0d0000000000000013454e4f5f564f54455f5045524d495353494f4e4d43616e6e6f742063616c6c206069735f6d756c74695f737465705f70726f706f73616c5f696e5f657865637574696f6e282960206f6e2073696e676c652d737465702070726f706f73616c732e0404566f74650104000d5265676973746572466f72756d0104000e43726561746550726f706f73616c0104000f5265736f6c766550726f706f73616c0104000f096765745f766f7465730101000b69735f7265736f6c7665640101000c6765745f70726f706f7365720101001069735f766f74696e675f636c6f736564010100106e6578745f70726f706f73616c5f6964010100126765745f657865637574696f6e5f68617368010100126765745f70726f706f73616c5f7374617465010100156765745f70726f706f73616c5f6d65746164617461010100166765745f6d696e5f766f74655f7468726573686f6c64010100186765745f7265736f6c7574696f6e5f74696d655f736563730101001a6765745f70726f706f73616c5f6372656174696f6e5f736563730101001b6765745f70726f706f73616c5f6d657461646174615f76616c75650101001c6765745f70726f706f73616c5f65787069726174696f6e5f73656373010100236765745f6561726c795f7265736f6c7574696f6e5f766f74655f7468726573686f6c640101002369735f6d756c74695f737465705f70726f706f73616c5f696e5f657865637574696f6e0101000002060203030b010104060a020703080b020208030a020d040402060203030b010104060a020703080b020208030a020d0405020c1005110b01010900080b020208030a021203060a020d040703030b0101041304140415011603060202180519080708020218051908070902040203130414041e010a0202020320030b0202020320030c020123010d0204250b0e010804280b0e010808290b0e0108092a0b0e01080b0f02032c0b1002030b050109002f080d30030a0802080001000001060b000b010912083800020201000014340a000912083801042f0a0011040c010a013b00032a38020a0038030a0038040a0038050a003806120906000000000000000039000c02110704220b013807120338080b000b023f00020d0236000f010b01380712043809051e0b0001060600000000000000110b270b0001060d00000000000000110c270d01000019240a003701380a04210a003701380b140c010a003702140a0126041a0b0001080c020b0203160518080209020b003703140b01260c0205130b00010518100100010a010b0b000b010b020b030b040b050b060b0709380c02110100010a27720e06380a0304050b0a040e06380b1425046f050b0e03411c06000000000000000024046c0b013c000c090a093704140c0a0a09370414060100000000000000160a093604150d07070011120e08380d380e070111120c0b0b0804610d070b0b090c0c0e0c380d380e0a0936050a0a0b0011150c0d0b02380f0a030c0e0a070b0d0b0e0a040a050a06320000000000000000000000000000000032000000000000000000000000000000000906000000000000000039013810110704550b09010a0a0b060b030b050b070b04120038110b0a020b0936000f070a0a0b060b030b050b070b041201381205530e070e0b3813036605310d070e0b381401010531060400000000000000111a27060700000000000000111a271b0100010a01080b003d0037050b013815370114021d0100010a01080b003d0037050b013815370614021e0100010a01080b003d0037050b013815370714021f0100010a01080b003d0037050b01381537081402200100010a01080b003d0037050b01381537091402210100010a01080b003d0037050b013815370a1402220100010a010a0b003d0037050b013815370a0e0238161402240100010a2e310a000a013817042e0b000b010c023d0037050b0238150c030a033702140c040a033703140c050a040a052404290b040b05160b03370714260c060b0604260601000000000000000c020b02020603000000000000000c0205240b0301090c0605200600000000000000000c020524260100010a01080b003d0037050b013815370b1402270100010a01080b003d0037050b013815370c1402280100010a150d0b003d0037050b0138150c020a023702140b0237031402290100010a301a0b003d0037050b0138150c02070111120c030a02370a0e03381304150b02370a0e03381614112a020b0201060c00000000000000111a272b0000010a33350a000a0138180601000000000000002104320b003c0036050b0138190c020a02370d14032d0a02370a070211120c030e03381614112d0c0411150b04240428112e0b0237061421042502060100000000000000111a270b0201060800000000000000112f270b0201060300000000000000112f27060200000000000000112f27300100010a01080b003d0037050b013815370d1402250100010a34130b003d0037050b0138150c020a02381a040f0b0201080c030b03020b02381b0c03050d31000000010611150b003709142402320100010a01050b003d0037041402330100010a364f0a000a01381c0b003c000c020a0236050a0138190c03070011120c040a03370a0e0438130314051c0a03370a0e04381614112a0348051c0a032e381a0c05080a03360d1511150a03360c151107043a0b02010b010a033702140a033703140b051205381d0b03360e381e020b0236000f110b010a033702140a033703140b051205381f05360b02010b0301060a00000000000000110c27350100010a388a010a000a01381c0b003c000c030a0336050a0138190c04070111120c050a04370a0e053813031405210a04360a0e053820080c060e06380d0c070c080b070b0815070011120c090a04370a0e0938130487010a04370a0e09381614112a0c0a0e02411c060000000000000000210c0b0a0a048401080c0c0b0c047d0b0b0476080a04360d1511150a04360c150b0a034805550a04360a0e053820090c0d0e0d380d0c070c080b070b08150a042e381a0c0e110704680b03010b010a043702140b043703140b0e1205381d020b0336000f110b010a043702140b043703140b0e1205381f05670a0436060c080b020b081505550b03010b0401060b00000000000000111a270a0b0c0c0539090c0a0530370100010a3b83010b013c000c050b00010a0536050a0238190c060a062e381b037c0a06370d1403750a06370a070111120c070e0738130366080c080b08045f0b0404550a063702140a0335160a0636021511150c090e0938210c0a070211120c0b0a06370a0e0b3813044f0b06360a0e0b38200c0c0b0a0b0c15110704470b05010b020b0312063822020b0536000f120b020b031207382305460b06360a0b0b0b0a380e053e0a063703140a0335160a0636031505290b05010b0601060900000000000000112f270a06370a070111120c0d0e0d381614090c0e0e0e380d210c08051c0b05010b0601060300000000000000112f270b05010b0601060500000000000000112f270a0109010207020802090a020a000900020402050203020602020200020b020a020109020903000802080308040805080608080809080a080b080c080d080e080f08100800",
    "abi": {
      "address": "0x1",
      "name": "voting",
      "friends": [],
      "exposed_functions": [
        {
          "name": "grant_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "register",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "can_be_resolved_early",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::voting::Proposal<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "create_proposal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "address",
            "T0",
            "vector<u8>",
            "u128",
            "u64",
            "0x1::option::Option<u128>",
            "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "create_proposal_v2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "address",
            "T0",
            "vector<u8>",
            "u128",
            "u64",
            "0x1::option::Option<u128>",
            "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>",
            "bool"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_early_resolution_vote_threshold",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "0x1::option::Option<u128>"
          ]
        },
        {
          "name": "get_execution_hash",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "get_min_vote_threshold",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "get_proposal_creation_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_proposal_expiration_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_proposal_metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
          ]
        },
        {
          "name": "get_proposal_metadata_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64",
            "0x1::string::String"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "get_proposal_state",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_proposer",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_resolution_time_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_votes",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "u128",
            "u128"
          ]
        },
        {
          "name": "is_multi_step_proposal_in_execution",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_resolved",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_voting_closed",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "next_proposal_id",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "resolve",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "resolve_proposal_v2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "vote",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&T0",
            "address",
            "u64",
            "u64",
            "bool"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "CreateProposal",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "early_resolution_vote_threshold",
              "type": "0x1::option::Option<u128>"
            },
            {
              "name": "execution_hash",
              "type": "vector<u8>"
            },
            {
              "name": "expiration_secs",
              "type": "u64"
            },
            {
              "name": "metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            },
            {
              "name": "min_vote_threshold",
              "type": "u128"
            }
          ]
        },
        {
          "name": "CreateProposalEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "early_resolution_vote_threshold",
              "type": "0x1::option::Option<u128>"
            },
            {
              "name": "execution_hash",
              "type": "vector<u8>"
            },
            {
              "name": "expiration_secs",
              "type": "u64"
            },
            {
              "name": "metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            },
            {
              "name": "min_vote_threshold",
              "type": "u128"
            }
          ]
        },
        {
          "name": "Proposal",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "fields": [
            {
              "name": "proposer",
              "type": "address"
            },
            {
              "name": "execution_content",
              "type": "0x1::option::Option<T0>"
            },
            {
              "name": "metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            },
            {
              "name": "creation_time_secs",
              "type": "u64"
            },
            {
              "name": "execution_hash",
              "type": "vector<u8>"
            },
            {
              "name": "min_vote_threshold",
              "type": "u128"
            },
            {
              "name": "expiration_secs",
              "type": "u64"
            },
            {
              "name": "early_resolution_vote_threshold",
              "type": "0x1::option::Option<u128>"
            },
            {
              "name": "yes_votes",
              "type": "u128"
            },
            {
              "name": "no_votes",
              "type": "u128"
            },
            {
              "name": "is_resolved",
              "type": "bool"
            },
            {
              "name": "resolution_time_secs",
              "type": "u64"
            }
          ]
        },
        {
          "name": "RegisterForum",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "hosting_account",
              "type": "address"
            },
            {
              "name": "proposal_type_info",
              "type": "0x1::type_info::TypeInfo"
            }
          ]
        },
        {
          "name": "RegisterForumEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "hosting_account",
              "type": "address"
            },
            {
              "name": "proposal_type_info",
              "type": "0x1::type_info::TypeInfo"
            }
          ]
        },
        {
          "name": "ResolveProposal",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "yes_votes",
              "type": "u128"
            },
            {
              "name": "no_votes",
              "type": "u128"
            },
            {
              "name": "resolved_early",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Vote",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "num_votes",
              "type": "u64"
            }
          ]
        },
        {
          "name": "VoteEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "num_votes",
              "type": "u64"
            }
          ]
        },
        {
          "name": "VotePermission",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "VotingEvents",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "create_proposal_events",
              "type": "0x1::event::EventHandle<0x1::voting::CreateProposalEvent>"
            },
            {
              "name": "register_forum_events",
              "type": "0x1::event::EventHandle<0x1::voting::RegisterForumEvent>"
            },
            {
              "name": "resolve_proposal_events",
              "type": "0x1::event::EventHandle<0x1::voting::ResolveProposal>"
            },
            {
              "name": "vote_events",
              "type": "0x1::event::EventHandle<0x1::voting::VoteEvent>"
            }
          ]
        },
        {
          "name": "VotingForum",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "fields": [
            {
              "name": "proposals",
              "type": "0x1::table::Table<u64, 0x1::voting::Proposal<T0>>"
            },
            {
              "name": "events",
              "type": "0x1::voting::VotingEvents"
            },
            {
              "name": "next_proposal_id",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a1001002c022c7803a401ea04048e064605d406b904078d0bf9160886222006a622b20310d825ae1a0a8640a7010bad41040cb141ef1e0da060140eb460040fb8601213ca6004000000070015001700240033003500390040004200440046004a004f00510060006200640028008a01008e0100010c0001060401060100080600000a0600000c04010001000d0600000f060000100700021407010000001606000318070000110600001b06000021080004230402030100010025020000270200002a0300002e0200002f030005320600073b0700073d0700093b0700093d0700138c010700148f01070000300001010601003100030001013003010106010034000200010636000200010437020602030401003807080001073a08090001073c080a0001073e0c0d010201073f0e08000108410f0f0001093a08100001093c08110001093e120d010201093f130800010043151600010a45020d00010b461516000100471516000108480f0f00010049150200010c4b1908010001054c1b030001024d021e010001004e221600010d50240d0107010e52001500010253250d01000108540f0f00010055150d000108560f0f000100571526000108580f0f0001005929260001005a2a150001025b2b0d010001005c150f0001005d29020001025e041e010001085f0f0f00010f612d0201000110630808000111650815000100662e1600010067150800010068150f0001006915150001026a2b0d010001026b2b19010001006c2e150001006d15150001006e300200010d6f31020107010070300200010071150200010072150d00010073150d00010074320200011275021a00010276341e0100010077320200010078370201020100791539000104533a0d02030001046b3a3b02030001007a15020100010a7b020d0001037c023d010001017d0402010601017e3f02010601007f00020001028001400401000100810100020001008201220200010083012202000100840141020001008501420200010f860144450101010887010f0f00010088012902000100890147020001138b0108480001138d0149080001148b01084a0001148d014b0800010090014e0200010091010002000104920150510203000104930152020203000100940155020001139501490d000113960109480001149701564a000102040505090b0e0b1615021c021d18151a231c1524152715291a30153115352309333c150e333e36400541054404453e461c481545434e1a580559054553461d164a09040e0401060c010b0101090000010814010900020505010b0e020900090104020a020a02060811010a0201081501081601081103060816060815090001010106081501030108170108180306081806081709000106081705081508160a02081708180105010c0301010c02010101060900010202050703010802010803010b08010900010805010806050c0a02030b010108020b0101080302060c0501080702060c090002060b08010900060900020c08060b01010101010101010108060c040505070800081402060c0a020206050a0201060b080109000605050c07080008060c02070a09000a090001060806020506080002060c060c03060c060c090005060c0a02020a020501081002070b080109000900090505070800081008150a020816081708180108130505020a020a0209000305050813010b08010502060b0e020900090109000106090102060b0e0205050b08010501080a01080902070b01010900090001070b0801090007060c020a02020a020a020a0203050708000a0201080c03060a09000303010a09000c05050708000a0208150a020508110a020a0203081703060c020a020108190106081901081a0106081a07050a0208150a0208170819081a030505070a0205060c05020a020a0209050608000a020508110a020708000a020302070b0e0209000901090001090103070b0e02090009010900090101080b04070b0e0205050505070a0204060c0a020a020a02020a081902080819050708000508110819081a0a02060a0208150a02081608170818076163636f756e74074163636f756e741261757468656e7469636174696f6e5f6b65790f73657175656e63655f6e756d62657211677569645f6372656174696f6e5f6e756d14636f696e5f72656769737465725f6576656e74730b4576656e7448616e646c65056576656e7411436f696e52656769737465724576656e74136b65795f726f746174696f6e5f6576656e7473104b6579526f746174696f6e4576656e7419726f746174696f6e5f6361706162696c6974795f6f666665720f4361706162696c6974794f6666657212526f746174696f6e4361706162696c697479177369676e65725f6361706162696c6974795f6f66666572105369676e65724361706162696c697479114163636f756e745065726d697373696f6e0b4b6579526f746174696f6e084f66666572696e6703666f72064f7074696f6e066f7074696f6e0c436f696e526567697374657209747970655f696e666f0854797065496e666f166f6c645f61757468656e7469636174696f6e5f6b6579166e65775f61757468656e7469636174696f6e5f6b6579164b6579526f746174696f6e546f5075626c69634b65791b76657269666965645f7075626c69635f6b65795f6269745f6d6170117075626c69635f6b65795f736368656d650a7075626c69635f6b65790c6f6c645f617574685f6b65790c6e65775f617574685f6b6579124f726967696e6174696e67416464726573730b616464726573735f6d6170055461626c65057461626c6525526f746174696f6e4361706162696c6974794f6666657250726f6f664368616c6c656e676511726563697069656e745f6164647265737327526f746174696f6e4361706162696c6974794f6666657250726f6f664368616c6c656e6765563208636861696e5f69640e736f757263655f6164647265737316526f746174696f6e50726f6f664368616c6c656e67650a6f726967696e61746f721063757272656e745f617574685f6b65790e6e65775f7075626c69635f6b6579235369676e65724361706162696c6974794f6666657250726f6f664368616c6c656e6765255369676e65724361706162696c6974794f6666657250726f6f664368616c6c656e67655632106e65775f6576656e745f68616e646c650b6372656174655f67756964044755494404677569640a696e697469616c697a651073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b036e6577366173736572745f76616c69645f726f746174696f6e5f70726f6f665f7369676e61747572655f616e645f6765745f617574685f6b65790765643235353139256e65775f756e76616c6964617465645f7075626c69635f6b65795f66726f6d5f627974657314556e76616c6964617465645075626c69634b6579186e65775f7369676e61747572655f66726f6d5f6279746573095369676e6174757265197369676e61747572655f7665726966795f7374726963745f742c756e76616c6964617465645f7075626c69635f6b65795f746f5f61757468656e7469636174696f6e5f6b6579056572726f7210696e76616c69645f617267756d656e740d6d756c74695f656432353531390e6372656174655f6163636f756e740866656174757265732369735f64656661756c745f6163636f756e745f7265736f757263655f656e61626c65640d6372656174655f7369676e6572186372656174655f6163636f756e745f756e636865636b65640e616c72656164795f657869737473206372656174655f6163636f756e745f69665f646f65735f6e6f745f65786973740362637308746f5f627974657306637265617465046e6f6e65186372656174655f617574686f72697a65645f7369676e6572137065726d697373696f6e65645f7369676e657217636865636b5f7065726d697373696f6e5f657869737473067369676e65720a616464726573735f6f6608636f6e7461696e73096e6f745f666f756e64096578697374735f6174117065726d697373696f6e5f64656e696564216372656174655f6672616d65776f726b5f72657365727665645f6163636f756e740c6f75745f6f665f72616e6765176372656174655f7265736f757263655f6163636f756e74176372656174655f7265736f757263655f616464726573730769735f6e6f6e65136765745f73657175656e63655f6e756d62657222726f746174655f61757468656e7469636174696f6e5f6b65795f696e7465726e616c04736f6d650d696e76616c69645f737461746506766563746f7206617070656e64046861736808736861335f3235360866726f6d5f6263730a746f5f616464726573731d6372656174655f7369676e65725f776974685f6361706162696c697479166765745f61757468656e7469636174696f6e5f6b65791a6765745f677569645f6e6578745f6372656174696f6e5f6e756d216765745f726f746174696f6e5f6361706162696c6974795f6f666665725f666f720769735f736f6d6506626f72726f771d6765745f7369676e65725f6361706162696c6974795f616464726573731f6765745f7369676e65725f6361706162696c6974795f6f666665725f666f721d6772616e745f6b65795f6f66666572696e675f7065726d697373696f6e13617574686f72697a655f756e6c696d697465641d6772616e745f6b65795f726f746174696f6e5f7065726d697373696f6e19696e6372656d656e745f73657175656e63655f6e756d6265721e69735f726f746174696f6e5f6361706162696c6974795f6f6666657265641c69735f7369676e65725f6361706162696c6974795f6f666665726564196f666665725f726f746174696f6e5f6361706162696c697479036765740c737761705f6f725f66696c6c176f666665725f7369676e65725f6361706162696c697479157665726966795f7369676e65645f6d657373616765136f726967696e6174696e675f616464726573730d72656769737465725f636f696e1e6d6f64756c655f6576656e745f6d6967726174696f6e5f656e61626c656407747970655f6f6604656d69740a656d69745f6576656e741e7265766f6b655f616e795f726f746174696f6e5f6361706162696c69747907657874726163741c7265766f6b655f616e795f7369676e65725f6361706162696c6974791a7265766f6b655f726f746174696f6e5f6361706162696c697479187265766f6b655f7369676e65725f6361706162696c69747919726f746174655f61757468656e7469636174696f6e5f6b65792d7570646174655f617574685f6b65795f616e645f6f726967696e6174696e675f616464726573735f7461626c6505736c6963650f756e61757468656e746963617465641e726f746174655f61757468656e7469636174696f6e5f6b65795f63616c6c29726f746174655f61757468656e7469636174696f6e5f6b65795f66726f6d5f7075626c69635f6b65790a73696e676c655f6b6579196e65775f7075626c69635f6b65795f66726f6d5f62797465730c416e795075626c69634b657915746f5f61757468656e7469636174696f6e5f6b6579096d756c74695f6b6579084d756c74694b657932726f746174655f61757468656e7469636174696f6e5f6b65795f776974685f726f746174696f6e5f6361706162696c697479177365745f6f726967696e6174696e675f616464726573730672656d6f7665036164642c7570736572745f656432353531395f6261636b75705f6b65795f6f6e5f6b65796c6573735f6163636f756e742a69735f6b65796c6573735f6f725f6665646572617465645f6b65796c6573735f7075626c69635f6b65792366726f6d5f656432353531395f7075626c69635f6b65795f756e76616c6964617465641e6e65775f6d756c74695f6b65795f66726f6d5f73696e676c655f6b65797304636f696e0d6170746f735f6163636f756e74167472616e73616374696f6e5f76616c69646174696f6e0767656e65736973106d756c74697369675f6163636f756e74107265736f757263655f6163636f756e7400000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000005200000000000000000000000000000000000000000000000000000000000000001052000000000000000000000000000000000000000000000000000000000000000030520000000000000000000000000000000000000000000000000000000000000000a052000000000000000000000000000000000000000000000000000000000000000090520000000000000000000000000000000000000000000000000000000000000000805200000000000000000000000000000000000000000000000000000000000000007052000000000000000000000000000000000000000000000000000000000000000060520000000000000000000000000000000000000000000000000000000000000000505200000000000000000000000000000000000000000000000000000000000000004052000000000000000000000000000000000000000000000000000000000000000020a02212000000000000000000000000000000000000000000000000000000000000000000a020504800000000a020504000000000a020504c000000014636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631fa191c00000000000000000e454432353531395f534348454d4564536368656d65206964656e74696669657220666f722045643235353139207369676e617475726573207573656420746f206465726976652061757468656e7469636174696f6e206b65797320666f722045643235353139207075626c6963206b6579732e010000000000000017454143434f554e545f414c52454144595f455849535453164163636f756e7420616c726561647920657869737473020000000000000017454143434f554e545f444f45535f4e4f545f4558495354164163636f756e7420646f6573206e6f742065786973740300000000000000184553455155454e43455f4e554d4245525f544f4f5f4249473353657175656e6365206e756d626572206578636565647320746865206d6178696d756d2076616c756520666f7220612075363404000000000000001d454d414c464f524d45445f41555448454e5449434154494f4e5f4b4559355468652070726f76696465642061757468656e7469636174696f6e206b65792068617320616e20696e76616c6964206c656e6774680500000000000000184543414e4e4f545f52455345525645445f414444524553533143616e6e6f7420637265617465206163636f756e742062656361757365206164647265737320697320726573657276656406000000000000000b454f55545f4f465f4741532a5472616e73616374696f6e2065786365656465642069747320616c6c6f6361746564206d6178206761730700000000000000194557524f4e475f43555252454e545f5055424c49435f4b45592b5370656369666965642063757272656e74207075626c6963206b6579206973206e6f7420636f727265637408000000000000001b45494e56414c49445f50524f4f465f4f465f4b4e4f574c45444745535370656369666965642070726f6f66206f66206b6e6f776c6564676520726571756972656420746f2070726f7665206f776e657273686970206f662061207075626c6963206b657920697320696e76616c696409000000000000000e454e4f5f4341504142494c495459535468652063616c6c657220646f6573206e6f7420686176652061206469676974616c2d7369676e61747572652d6261736564206361706162696c69747920746f2063616c6c20746869732066756e6374696f6e0a000000000000002345494e56414c49445f4143434550545f524f544154494f4e5f4341504142494c495459515468652063616c6c657220646f6573206e6f74206861766520612076616c696420726f746174696f6e206361706162696c697479206f666665722066726f6d20746865206f74686572206163636f756e740b0000000000000024454e4f5f56414c49445f4652414d45574f524b5f52455345525645445f41444452455353454164647265737320746f20637265617465206973206e6f7420612076616c6964207265736572766564206164647265737320666f72204170746f73206672616d65776f726b0c000000000000000f45494e56414c49445f534348454d45810153706563696669656420736368656d6520726571756972656420746f2070726f6365656420776974682074686520736d61727420636f6e7472616374206f7065726174696f6e202d2063616e206f6e6c7920626520454432353531395f534348454d45283029204f52204d554c54495f454432353531395f534348454d452831290d000000000000001c45494e56414c49445f4f524947494e4154494e475f414444524553536c41626f727420746865207472616e73616374696f6e20696620746865206578706563746564206f726967696e6174696e67206164647265737320697320646966666572656e742066726f6d20746865206f726967696e6174696e672061646472657373206f6e2d636861696e0e000000000000001a454e4f5f535543485f5349474e45525f4341504142494c4954593e546865207369676e6572206361706162696c697479206f6666657220646f65736e27742065786973742061742074686520676976656e20616464726573730f0000000000000019455245534f555243455f414343434f554e545f4558495354533c416e20617474656d707420746f206372656174652061207265736f75726365206163636f756e74206f6e206120636c61696d6564206163636f756e74100000000000000015454143434f554e545f414c52454144595f5553454456416e20617474656d707420746f206372656174652061207265736f75726365206163636f756e74206f6e20616e206163636f756e74207468617420686173206120636f6d6d6974746564207472616e73616374696f6e11000000000000001f454f4646455245525f414444524553535f444f45535f4e4f545f45584953541d4f666665726572206164647265737320646f65736e2774206578697374120000000000000022454e4f5f535543485f524f544154494f4e5f4341504142494c4954595f4f46464552575468652073706563696669656420726f746174696f6e206361706162696c697479206f6666657220646f6573206e6f742065786973742061742074686520737065636966696564206f666665726572206164647265737313000000000000001d454e4f5f5349474e45525f4341504142494c4954595f4f46464552454433546865207369676e6572206361706162696c697479206973206e6f74206f66666572656420746f20616e79206164647265737314000000000000001f4545584345454445445f4d41585f475549445f4352454154494f4e5f4e554d800154686973206163636f756e74206861732065786365656465642074686520616c6c6f63617465642047554944732069742063616e206372656174652e2049742073686f756c6420626520696d706f737369626c6520746f2072656163682074686973206e756d62657220666f72207265616c206170706c69636174696f6e732e15000000000000001c454e45575f415554485f4b45595f414c52454144595f4d415050454451546865206e65772061757468656e7469636174696f6e206b657920616c72656164792068617320616e20656e74727920696e2074686520604f726967696e6174696e674164647265737360207461626c6516000000000000001d454e45575f415554485f4b45595f53414d455f41535f43555252454e544a5468652063757272656e742061757468656e7469636174696f6e206b657920616e6420746865206e65772061757468656e7469636174696f6e206b657920617265207468652073616d65170000000000000016454e4f5f4143434f554e545f5045524d495353494f4e4543757272656e74207065726d697373696f6e6564207369676e65722063616e6e6f7420706572666f726d207468652070726976696c61676564206f7065726174696f6e732e18000000000000001445554e5245434f474e495a45445f534348454d45870153706563696669656420736368656d65206973206e6f74207265636f676e697a65642e2053686f756c6420626520454432353531395f534348454d452830292c204d554c54495f454432353531395f534348454d452831292c2053494e474c455f4b45595f534348454d452832292c206f72204d554c54495f4b45595f534348454d452833292e190000000000000019454e4f545f415f4b45594c4553535f5055424c49435f4b45593a5468652070726f7669646564207075626c6963206b6579206973206e6f7420612073696e676c65204b65796c657373207075626c6963206b65791a000000000000001c454e4f545f5448455f4f524947494e414c5f5055424c49435f4b4559465468652070726f7669646564207075626c6963206b6579206973206e6f7420746865206f726967696e616c207075626c6963206b657920666f7220746865206163636f756e741b0000000000000021455345545f4f524947494e4154494e475f414444524553535f44495341424c45445b546865207365745f6f726967696e6174696e675f616464726573732069732064697361626c65642064756520746f20706f74656e7469616c20706f69736f6e696e672066726f6d206163636f756e74206162737472616374696f6e030b4b6579526f746174696f6e0104000c436f696e5265676973746572010400164b6579526f746174696f6e546f5075626c69634b657901040009096578697374735f6174010100136765745f73657175656e63655f6e756d626572010100136f726967696e6174696e675f61646472657373010100166765745f61757468656e7469636174696f6e5f6b65790101001a6765745f677569645f6e6578745f6372656174696f6e5f6e756d0101001c69735f7369676e65725f6361706162696c6974795f6f6666657265640101001e69735f726f746174696f6e5f6361706162696c6974795f6f6666657265640101001f6765745f7369676e65725f6361706162696c6974795f6f666665725f666f72010100216765745f726f746174696f6e5f6361706162696c6974795f6f666665725f666f72010100000207020a0203030403050b01010802090b010108030b0b040108050e0b0401080607030211001200040201130b080105090202000517080a02020117080a0b02030005190a021a0a02030202190a021a0a020c020600051c0a021d021e0a021f0a02200a020d0201220b0e02050505020100050f020203032605100204280203032905260511020403032b052c052d0a02060201000512020203032605130203030329052605021f0220000100010002040b0011013800020303000002070a0011040b00380112082d08020600000014340a0031002104180b0111070c040b0211080c050e050e040b0314380204150e04110a0c060b0602060800000000000000110b270b00310121042f0b01110c0c070b02110d0c080e080e070b03143803042c0e07110f0c060513060800000000000000110b270b0301060c00000000000000110b2710030000172a0a00290003270a0007002204240a000701220c010b0104210a000702220c020b02041e1111041a0b0011120c030b03020b0011130c030518060500000000000000110b27090c020511090c01050b0601000000000000001114271501000018210a002900040405170a00070022041e0a000701220c010b01041b0a000702220c020b0204180b0011130102060500000000000000110b27090c020512090c01050c1300000021280a0011120c010e0038040c020e02411a0620000000000000002104250600000000000000000c030a000d03111738050c040b000d03111738060c050e010b020600000000000000000b030b040b05380739003807390112002d000b0102060400000000000000110b271901000100052f0a0052003808042a0a010c02111104210b022900041c050c0a012b000b00111b0c03100037000e03380904190b01111202060e00000000000000111d270b0001060e00000000000000111d270b02111e0425050c0b0001060200000000000000111d270b0001061700000000000000111f2720030000275d0a000701210458080c010b010453080c020b02044e080c030b030449080c040b040444080c050b05043f080c060b06043a080c070b070435080c080b080430080c090b09042d0a0011130b00120d02060b00000000000000111f270a000703210c0905260a000704210c0805220a000705210c07051e0a000706210c06051a0a000707210c0505160a000708210c0405120a000709210c03050e0a000702210c02050a0a00070a210c010506010100010028230b00111b0c010a010c021111041c0b0211150a012a000c030b010a030f0211170c040b031002140600000000000004002304190b04020614000000000000001121270b02111e04200509060200000000000000111d2722010001002c390b00111b0c020e020b0111230c030a03111e04350a032900030e05150a032b0010003700380a043205150a03112506000000000000000021042f0a0311120c040e04070b11260a032a000c050a03380b0b050f003600150b03120d0c060b040b0602061000000000000000112827060f000000000000001114270a0311130c04051d23010000080d0b0038040c020d020b01380c0d0231ff441a0b02112a112b022c01000002050b001003141112021e0100000d0a11110406080c010b01020b0029000c0105042d0100010008130a002900040a0b002b001004140c010b0102111104100e0038040c010508060200000000000000111d272e010001000f120a002900040a0b002b001002140c010b01021111040f0600000000000000000c010508060200000000000000111d272f010001002f250a000c011111041e0b012900041b05080b002b000c020a0210053701380d04160b0210053701380e14020b0201061300000000000000111d27061200000000000000111d270b01111e04220508060200000000000000111d2725010001000f120a002900040a0b002b001006140c010b01021111040f0600000000000000000c010508060200000000000000111d273201000002040b001003140233010001002f250a000c011111041e0b012900041b05080b002b000c020a0210003700380d04160b0210003700380e14020b0201061300000000000000111d27061300000000000000111d270b01111e04220508060200000000000000111d273401000002050b000b015200380f023601000002050b000b015201380f0237030001001b230a000c011111041c0b0111150b002a000f060c020a02143532ffffffffffffffff00000000000000002304170a0214060100000000000000160b0215020b02010603000000000000001121270b01111e04200506060200000000000000111d27380100010002151111040e0a0029000406050809020b002b0010053701380d020a00111e04120508060200000000000000111d27390100010002151111040e0a0029000406050809020b002b0010003700380d020a00111e04120508060200000000000000111d273a01040100357c0a005201380804770b00111b0c050a050c06111104700b0611150a04111e046d0a052a000c07113b0a071006140b050a04120b0c080a0231002104450b0311070c090e09110a0c0a0a071004140b0a2104400b0111080c0b0e0b0e090b083810043b05340b070f0536010b04381101020b0701060800000000000000110b270b0701060700000000000000110b270b0231012104680b03110c0c0c0e0c110f0c0a0a071004140b0a2104630b01110d0c0d0e0d0e0c0b083812045e05340b0701060800000000000000110b270b0701060700000000000000110b270b0701060c00000000000000110b27060200000000000000111d270b06111e0474050d060200000000000000111d270b0001061700000000000000111f273d0104010038330a0052003808042e0b00111b0c050a050c06111104270b0611150a04111e04240a0511250a050a04120f0c070a050b020b030b010b0738130b052a000f0036000b0438110102060200000000000000111d270b06111e042b050d060200000000000000111d270b0001061700000000000000111f273f010001083c1507012b0810070c010a010a00381404100b010b00381514380b0c020b02020b010138070c02050e4203000100151b114304070b00381612033817020a000c01111104140b0111150b002a000f0838161204381805060b01111e0418050d060200000000000000111d27470104010015280a005201380804230a00111b0c011111041a0b0129000415050d0b00111b2a000f053601381901020b0001061200000000000000111d270b01111e041e050d0b0001060200000000000000111d270b0001061700000000000000111f27490104010015280a005200380804230a00111b0c011111041a0b0129000415050d0b00111b2a000f003600381901020b0001060e00000000000000111d270b01111e041e050d0b0001060200000000000000111d270b0001061700000000000000111f274a0104010005390a01111e04340a0052013808042f0a00111b0c020a020c03111104260b032900042105120b022b00100537010e013809041c0b001147020b0001061200000000000000111d270b0001061200000000000000111d270b03111e042a05120b0001060200000000000000111d270b0001061700000000000000111f270b0001060200000000000000111d274b0104010005390a005200380804340a01111e042f0a00111b0c020a020c03111104260b032900042105120b022b00100037000e013809041c0b001149020b0001060e00000000000000111d270b0001060e00000000000000111d270b03111e042a05120b0001060200000000000000111d270b0001060200000000000000111d270b0001061700000000000000111f274c01040200084688010a00111b0c070a070c081111047f0b0811150b0052013808047c0a072a000c090a091004140c0a0a0131002104610a0211070c0b0e0b110a0c0c0a091004140b0c21045c05250a09100414112b0c0d0a091006140a070b0d0a04120c0c0e0b010b020b050e0e1106010a030a040a060e0e11060c0f0a070b090a0f114d0a033100210451070c0c100b070b100b030b040b0a0b0f1207381a020e06411a0c110e060a11060400000000000000170b11381b0c1005480b0901060700000000000000114f270a0131012104770a02110c0c120e12110f0c0f0a091004140b0f21047205250b0901060700000000000000114f270b0901060c00000000000000110b27061700000000000000111f270b08111e04830105090b0001060200000000000000111d27500004010002040b000b0111260251000401004c440a00111b0c030a032b001004140c040a01310021041e0a0211070c050e05110a0c060b000a0611500b03070d0b010b020b040b061207381a020a0131012104290a02110c0c070e07110f0c0605120a0131022104340a0211520c080e0811530c0605120a01310321043f0a0211540c090e0911550c0605120b0001061800000000000000110b2726030001004d2b0a00111b0c020a020c03111104220b0311150e01411a06200000000000000021041d0b0052013808041a0b022a000f040c040b010b041502061700000000000000111f270b0001060400000000000000110b270b03111e042605090b0001060200000000000000111d275601040200084f590a005201380804540a012900044f0b00111b0c050a012b000c060a061004140c070a06100537010e053809044a0b06100414112b0c080b0511250a010b080a03120c0c090a020a030a040e0911060c0a0a012a000c0b0a010b0b0a0a114d0a02310021043f070c0c0c0b010b0c0b020b030b070b0a1207381a020e04411a0c0d0e040a0d060400000000000000170b0d381b0c0c05360b0601061200000000000000111d270b0001061100000000000000111d270b0001061700000000000000111f27570004000205061b000000000000000b00011128274d00000108545407012a080f070c030a01100414112b0c040a02112b0c050a050a0422044d0a032e0a0438140316051d0a000a030b04381c210446051d0a032e0a053814033f0b030b050a00381d114304360b000a011004140a021205381e0b010f040c060b020b0615020a010f090a011004140a021206381f052f0b01010b0301061500000000000000110b270b01010b0301060d00000000000000111d270b01010b0301061600000000000000110b275a00040100574d0b0111520c040e04115b04480a00111b0c050a052a000c060a061004140c010e0538040e0411532104410a01112b0c070b061006140a050b070a02120c0c0831000a020b030e081106010b021107115c0c090b040b09404802000000000000003101115d0c0a0e0a11550c0b0b000a0b11500b05070e31030e0a38200b010b0b1207381a020b00010b0601061a00000000000000110b270b0001061900000000000000110b273e0100010058410b00112d0c050a0131002104210b0211070c060e06110a0c070b050b0721041e0b0311080c080e080e060b043821041b051a02060800000000000000110b27060700000000000000110b270b01310121043e0b02110c0c090e09110f0c070b050b0721043b0b03110d0c0a0e0a0e090b0438220438051a060800000000000000110b27060700000000000000110b27060c00000000000000110b270006020000020d000000000500010800000300040120011f009801009901009a01009b01009c01009d010101010000",
    "abi": {
      "address": "0x1",
      "name": "account",
      "friends": [
        "0x1::coin",
        "0x1::aptos_account",
        "0x1::transaction_validation",
        "0x1::genesis",
        "0x1::multisig_account",
        "0x1::resource_account"
      ],
      "exposed_functions": [
        {
          "name": "new_event_handle",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::event::EventHandle<T0>"
          ]
        },
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "create_account",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "create_account_if_does_not_exist",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "create_authorized_signer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "create_framework_reserved_account",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "signer",
            "0x1::account::SignerCapability"
          ]
        },
        {
          "name": "create_guid",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::guid::GUID"
          ]
        },
        {
          "name": "create_resource_account",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": [
            "signer",
            "0x1::account::SignerCapability"
          ]
        },
        {
          "name": "create_resource_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&address",
            "vector<u8>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "create_signer_with_capability",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::account::SignerCapability"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "exists_at",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "get_authentication_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "get_guid_next_creation_num",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_rotation_capability_offer_for",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_sequence_number",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_signer_capability_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::account::SignerCapability"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_signer_capability_offer_for",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "grant_key_offering_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "grant_key_rotation_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "increment_sequence_number",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "is_rotation_capability_offered",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_signer_capability_offered",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "offer_rotation_capability",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "u8",
            "vector<u8>",
            "address"
          ],
          "return": []
        },
        {
          "name": "offer_signer_capability",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "u8",
            "vector<u8>",
            "address"
          ],
          "return": []
        },
        {
          "name": "originating_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "0x1::option::Option<address>"
          ]
        },
        {
          "name": "register_coin",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "revoke_any_rotation_capability",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "revoke_any_signer_capability",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "revoke_rotation_capability",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "revoke_signer_capability",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "rotate_authentication_key",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u8",
            "vector<u8>",
            "u8",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "rotate_authentication_key_call",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "rotate_authentication_key_from_public_key",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u8",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "rotate_authentication_key_internal",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "rotate_authentication_key_with_rotation_capability",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u8",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "set_originating_address",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "upsert_ed25519_backup_key_on_keyless_account",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "verify_signed_message",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "address",
            "u8",
            "vector<u8>",
            "vector<u8>",
            "T0"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Account",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "authentication_key",
              "type": "vector<u8>"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "guid_creation_num",
              "type": "u64"
            },
            {
              "name": "coin_register_events",
              "type": "0x1::event::EventHandle<0x1::account::CoinRegisterEvent>"
            },
            {
              "name": "key_rotation_events",
              "type": "0x1::event::EventHandle<0x1::account::KeyRotationEvent>"
            },
            {
              "name": "rotation_capability_offer",
              "type": "0x1::account::CapabilityOffer<0x1::account::RotationCapability>"
            },
            {
              "name": "signer_capability_offer",
              "type": "0x1::account::CapabilityOffer<0x1::account::SignerCapability>"
            }
          ]
        },
        {
          "name": "AccountPermission",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": []
        },
        {
          "name": "CapabilityOffer",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "for",
              "type": "0x1::option::Option<address>"
            }
          ]
        },
        {
          "name": "CoinRegister",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "type_info",
              "type": "0x1::type_info::TypeInfo"
            }
          ]
        },
        {
          "name": "CoinRegisterEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "type_info",
              "type": "0x1::type_info::TypeInfo"
            }
          ]
        },
        {
          "name": "KeyRotation",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "old_authentication_key",
              "type": "vector<u8>"
            },
            {
              "name": "new_authentication_key",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "KeyRotationEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "old_authentication_key",
              "type": "vector<u8>"
            },
            {
              "name": "new_authentication_key",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "KeyRotationToPublicKey",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "verified_public_key_bit_map",
              "type": "vector<u8>"
            },
            {
              "name": "public_key_scheme",
              "type": "u8"
            },
            {
              "name": "public_key",
              "type": "vector<u8>"
            },
            {
              "name": "old_auth_key",
              "type": "vector<u8>"
            },
            {
              "name": "new_auth_key",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "OriginatingAddress",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "address_map",
              "type": "0x1::table::Table<address, address>"
            }
          ]
        },
        {
          "name": "RotationCapability",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            }
          ]
        },
        {
          "name": "RotationCapabilityOfferProofChallenge",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "recipient_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "RotationCapabilityOfferProofChallengeV2",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "chain_id",
              "type": "u8"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "source_address",
              "type": "address"
            },
            {
              "name": "recipient_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "RotationProofChallenge",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "originator",
              "type": "address"
            },
            {
              "name": "current_auth_key",
              "type": "address"
            },
            {
              "name": "new_public_key",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "SignerCapability",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            }
          ]
        },
        {
          "name": "SignerCapabilityOfferProofChallenge",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "recipient_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "SignerCapabilityOfferProofChallengeV2",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "source_address",
              "type": "address"
            },
            {
              "name": "recipient_address",
              "type": "address"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c01000c020c1c0328900104b8010805c00154079402b90508cd072010ed0799020a860a1b0ba10a020ca30aaf020dd20c0600000004000b00120017001f00010700000302010000010507000007070000080700031107010000000900010001000a01030001020c05050001000d0607010201010e0208010001000f010900010010010a00010013010b00010314060d0100010315020d01000100160101000104180101000100190c090001001a0e090001001b0f0a0001001c100b0001001d110b0001001e120b0102010520130101000100210f01000100220f01000100230e01000100240e0100010406080c090c120701060800010a020001080001020103010900010b01010900010802010803010b050108040101010804010b050109000106080401060803030608000608030a02030a020a020a02030608000608030900010609000765643235353139095369676e61747572650562797465730d5369676e65644d65737361676509747970655f696e666f0854797065496e666f05696e6e657214556e76616c6964617465645075626c69634b65791256616c6964617465645075626c69634b6579127369676e61747572655f746f5f6279746573186e65775f7369676e61747572655f66726f6d5f6279746573056572726f7210696e76616c69645f617267756d656e74126e65775f7369676e65645f6d65737361676507747970655f6f66256e65775f756e76616c6964617465645f7075626c69635f6b65795f66726f6d5f6279746573236e65775f76616c6964617465645f7075626c69635f6b65795f66726f6d5f6279746573064f7074696f6e066f7074696f6e1c7075626c69635f6b65795f76616c69646174655f696e7465726e616c04736f6d65046e6f6e65267075626c69635f6b65795f62797465735f746f5f61757468656e7469636174696f6e5f6b6579046861736808736861335f3235361b7075626c69635f6b65795f696e746f5f756e76616c696461746564197075626c69635f6b65795f746f5f756e76616c696461746564137075626c69635f6b65795f76616c6964617465177369676e61747572655f7665726966795f737472696374207369676e61747572655f7665726966795f7374726963745f696e7465726e616c197369676e61747572655f7665726966795f7374726963745f740362637308746f5f62797465732c756e76616c6964617465645f7075626c69635f6b65795f746f5f61757468656e7469636174696f6e5f6b65791f756e76616c6964617465645f7075626c69635f6b65795f746f5f62797465732a76616c6964617465645f7075626c69635f6b65795f746f5f61757468656e7469636174696f6e5f6b65791d76616c6964617465645f7075626c69635f6b65795f746f5f6279746573000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631e50102010000000000000013455f57524f4e475f5055424b45595f53495a455357726f6e67206e756d626572206f66206279746573207765726520676976656e20617320696e707574207768656e20646573657269616c697a696e6720616e2045643235353139207075626c6963206b65792e020000000000000016455f57524f4e475f5349474e41545552455f53495a455257726f6e67206e756d626572206f66206279746573207765726520676976656e20617320696e707574207768656e20646573657269616c697a696e6720616e2045643235353139207369676e61747572652e0000000201020a02010202040802060900030201020a02040201020a0201060001000002040b001000140201010000020b0e0041040640000000000000002104080b0012000206020000000000000011022703010000020438000b0039000205010000020b0e0041040620000000000000002104080b00120202060100000000000000110227060100000a0c0a00110704090b00120338010c010b010238020c0105070a00000002060d00310044040b00110b020c01000002050e001001141202020d01000002050b001001141202020e01000002050b00100214110602070002000f01000002090b001000140b011002140b021110021000020011010000070e38000b0239000c030b001000140b011002140e0338031110021301000002050b00100214110a021401000002040b00100214021501000002050b00100114110a021601000002040b001001140200000300020000",
    "abi": {
      "address": "0x1",
      "name": "ed25519",
      "friends": [],
      "exposed_functions": [
        {
          "name": "signature_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ed25519::Signature"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "new_signature_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::ed25519::Signature"
          ]
        },
        {
          "name": "new_signed_message",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "0x1::ed25519::SignedMessage<T0>"
          ]
        },
        {
          "name": "new_unvalidated_public_key_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::ed25519::UnvalidatedPublicKey"
          ]
        },
        {
          "name": "new_validated_public_key_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ed25519::ValidatedPublicKey>"
          ]
        },
        {
          "name": "public_key_into_unvalidated",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ed25519::ValidatedPublicKey"
          ],
          "return": [
            "0x1::ed25519::UnvalidatedPublicKey"
          ]
        },
        {
          "name": "public_key_to_unvalidated",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ed25519::ValidatedPublicKey"
          ],
          "return": [
            "0x1::ed25519::UnvalidatedPublicKey"
          ]
        },
        {
          "name": "public_key_validate",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "0x1::option::Option<0x1::ed25519::ValidatedPublicKey>"
          ]
        },
        {
          "name": "signature_verify_strict",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ed25519::Signature",
            "&0x1::ed25519::UnvalidatedPublicKey",
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "signature_verify_strict_t",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&0x1::ed25519::Signature",
            "&0x1::ed25519::UnvalidatedPublicKey",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "unvalidated_public_key_to_authentication_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "unvalidated_public_key_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "validated_public_key_to_authentication_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ed25519::ValidatedPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "validated_public_key_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ed25519::ValidatedPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        }
      ],
      "structs": [
        {
          "name": "Signature",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "SignedMessage",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "type_info",
              "type": "0x1::type_info::TypeInfo"
            },
            {
              "name": "inner",
              "type": "T0"
            }
          ]
        },
        {
          "name": "UnvalidatedPublicKey",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "ValidatedPublicKey",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c01003c023c3a03769603048c0410059c04980307b407a40e08d8152006f815e00310d819730acb1a380c831bde0a0de1252400000018001a001d001e002000220023002500260028002a002b002c002d002f003000310032003300360038003900420046004c004e005600630067000102000004030000070300000b0300021c0600153708001645040100011848070200000000194b07001a500700165e05010001165f05010001001700010001011700010001001902010001021b03040001021900010001031905010001041f060100010521070801000106190901000107240901000108190a0100010919000100010927000100010a29000100010b190b0100010c19000100010d19090100010e2e000100010f190c01000110190001000111190a01000112190001000113190001000100340e0f00010235030800011436030f000116030311010001163a0001010001153b0e0100010234030f0001003c12010001093d13010001093e13010001093f140100010040160100010541180801000117431111000100441a0100011847011d0204040116490a1e010001184a1f0102040401194d212000011a4f222300011a51240300011a52030300011a53250100011754111100010055270100011b57280100011b522903000109582a01000100592c010001005a2f010001155b00010001095c01010001005d00010001151900320001166000010001166100010100010962330100011c64340100011c62330100010065090100010266090100011d680001000115693601000107031a101b102303261c2710281c3a1001060c000d0a0202030a020a0203030303010303030105020c080405060c0a020a020a020a0203060c05080401060a0900010102060c0a0202060c0308060c0303030103030302060c020408040c0a050503060c0503010c0108050103020506080304060c050a020a0202060c05020c060c02060c0a080001080002060a0900060900050a05060a080003030608000303030a080101080102050b06010805010b070209000901010b0601090003070b07020900090109000901010808020303030a0808030301080909060c060a050b0702050b060108050809050505030a0203060c0505140a05060a0801030306080103030b0702050b0601080506050c03060c0b060108050a080808080809060803050c0503060c0608020106060c050503030a0202050504060c030505040608030c060c0502060c0a080301080201080303060c010a0802040a08020a080303080204060a08020303060802020b0a0108050b0b01080502060c0b0b01080502060c0b0a010805020b0b0108050b0a01080503060c060c0b0b010805030b0b0108050b0a0108050c0767656e657369730a4163636f756e744d61700f6163636f756e745f616464726573730762616c616e636512456d706c6f7965654163636f756e744d6170086163636f756e74730976616c696461746f722456616c696461746f72436f6e66696775726174696f6e57697468436f6d6d697373696f6e1a76657374696e675f7363686564756c655f6e756d657261746f721c76657374696e675f7363686564756c655f64656e6f6d696e61746f721462656e65666963696172795f72657365747465721656616c696461746f72436f6e66696775726174696f6e0d6f776e65725f61646472657373106f70657261746f725f616464726573730d766f7465725f616464726573730c7374616b655f616d6f756e7410636f6e73656e7375735f7075626b65791370726f6f665f6f665f706f7373657373696f6e116e6574776f726b5f6164647265737365731b66756c6c5f6e6f64655f6e6574776f726b5f6164647265737365731076616c696461746f725f636f6e66696715636f6d6d697373696f6e5f70657263656e74616765136a6f696e5f647572696e675f67656e657369730f7365745f67656e657369735f656e640c636861696e5f7374617475730a696e697469616c697a65076163636f756e74216372656174655f6672616d65776f726b5f72657365727665645f6163636f756e74105369676e65724361706162696c697479167472616e73616374696f6e5f76616c69646174696f6e106170746f735f676f7665726e616e63651073746f72655f7369676e65725f63617006766563746f720869735f656d70747910636f6e73656e7375735f636f6e66696710657865637574696f6e5f636f6e666967037365740776657273696f6e057374616b6522696e697469616c697a655f70656e64696e675f7472616e73616374696f6e5f6665650974696d657374616d70147365745f74696d655f6861735f737461727465640e7374616b696e675f636f6e6669670b73746f726167655f6761730c6761735f7363686564756c651261676772656761746f725f666163746f72791d696e697469616c697a655f61676772656761746f725f666163746f727908636861696e5f69640f7265636f6e66696775726174696f6e05626c6f636b0d73746174655f73746f72616765106e6f6e63655f76616c69646174696f6e0e6372656174655f6163636f756e74096578697374735f61740d6372656174655f7369676e6572094170746f73436f696e0a6170746f735f636f696e04636f696e087265676973746572046d696e7414696e697469616c697a655f76616c696461746f7214726f746174655f636f6e73656e7375735f6b6579257570646174655f6e6574776f726b5f616e645f66756c6c6e6f64655f6164647265737365731b6a6f696e5f76616c696461746f725f7365745f696e7465726e616c0f6372656174655f6163636f756e747308636f6e7461696e73056572726f720e616c72656164795f6578697374731a6372656174655f656d706c6f7965655f76616c696461746f727304436f696e0a73696d706c655f6d6170066372656174650953696d706c654d6170087769746864726177036164640c4669786564506f696e7433320d66697865645f706f696e743332146372656174655f66726f6d5f726174696f6e616c0776657374696e67176372656174655f76657374696e675f7363686564756c650f56657374696e675363686564756c65176372656174655f76657374696e675f636f6e7472616374127374616b655f706f6f6c5f61646472657373187365745f62656e65666963696172795f7265736574746572096e6f745f666f756e641b6372656174655f696e697469616c697a655f76616c696461746f72107374616b696e675f636f6e7472616374176372656174655f7374616b696e675f636f6e747261637416696e697469616c697a655f7374616b655f6f776e65721c6372656174655f696e697469616c697a655f76616c696461746f72732c6372656174655f696e697469616c697a655f76616c696461746f72735f776974685f636f6d6d697373696f6e1064657374726f795f6d696e745f6361700c6f6e5f6e65775f65706f636815696e697469616c697a655f6170746f735f636f696e0e4275726e4361706162696c6974790e4d696e744361706162696c6974791a6372656174655f636f696e5f636f6e76657273696f6e5f6d61700e6372656174655f70616972696e671973746f72655f6170746f735f636f696e5f6d696e745f6361700f7472616e73616374696f6e5f6665651973746f72655f6170746f735f636f696e5f6275726e5f63617028696e697469616c697a655f636f72655f7265736f75726365735f616e645f6170746f735f636f696e22726f746174655f61757468656e7469636174696f6e5f6b65795f696e7465726e616c0d6170746f735f6163636f756e740c72656769737465725f6170741b636f6e6669677572655f6163636f756e74735f666f725f746573740000000000000000000000000000000000000000000000000000000000000001052000000000000000000000000000000000000000000000000000000000000000010a02100f7363726970745f70726f6c6f6775650a02100f6d6f64756c655f70726f6c6f6775650a021c1b6d756c74695f6167656e745f7363726970745f70726f6c6f6775650a0209086570696c6f6775650a05a1020900000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000a0a020100052000000000000000000000000000000000000000000000000000000000000000000520000000000000000000000000000000000000000000000000000000000a550c1814636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76314002010000000000000012454455504c49434154455f4143434f554e5400020000000000000017454143434f554e545f444f45535f4e4f545f455849535400000000020202050303010205050a05060802080a0309030a050302080c050d050e050f03100a02110a02120a02130a02020203140803150316010000000001030b00110102020000000d4d070011030c0d0c0e0e0e11040e0e070107020703070411050e0e07000b0d110607050c0f0e0f380003210d0f45030c100a1011030c0d010e0e0b100b0d110605120e0e0b0311080e0e0b0411090e0e0b02110a0e0e110b0e0e110c0e0e110d0e0e0b060b070b080b090b0a0b0b0b0c110e0e0e110f0e0e0b0011100e0e11110e0e0b0111120e0e11130e0e0b0511140e0e11150e0e111602170000000f1a0a01111804160a0111190c030a0138010600000000000000002104130e0338020b000b010b02111c0b03020b000105110a01111d0c0305061e000000151d0a0110001411190c020e020c030a030a000a011001140a01100214111f0a030a000a011003140b0110041411200b030b00112102220000001937400300000000000000000c020e010c030600000000000000000c040a0341170c050a040a052304320a030a0442170c060e020a061005380303290d020a0610051444030a000a061005140b061006141117010b04060100000000000000160c0405090b00010b03010b06010601000000000000001124270b00010b0301022500000026e101400300000000000000000c030e020c040600000000000000000c050a04411b0c060a050a062304de010a040a05421b0c070600000000000000000c080a07100741030c0938040c0a0a080a092304490a0710070a0842030c0b0e030a0b380303400d030a0b1444030a0b1411190c0c0a0b1438010c0d0e0c0b0d38050c0f0d0a0b0b140b0f38060b08060100000000000000160c0805190b04010b07010b0b010601000000000000001124270600000000000000000c080a07100841110c09402000000000000000000c100a080a092304670a0710080a084211140a0710091411290c110d100b1144200b08060100000000000000160c0805510b100a000a01112a0c120a07100a100b100c140c140a1411190c150e150c0e0a0e0a0710070b0a0b120b140a07100a100b1000140a07100a100b100d140a07100a100e140706112b0c140a14112c0c160a07100f1407072204db010b0e0b140a07100f14112d0a07100a100b0c130a13100c14111804d2010a13100014111804c9010a13100d14111804c0010b07100a10101404bd010b160b13111e0b05060100000000000000160c0505090b130105b8010b04010b07010b1301060200000000000000112e270b04010b07010b1301060200000000000000112e270b04010b07010b1301060200000000000000112e270b0e01059d010b0401022f0000002b500a01100b0c030a000a03100c140a0310111411170c040e040c050a000a031000140600000000000000001117010b000a03100d140600000000000000001117010b0204400b050a031000140a03100d140a031011140a01100e14070611300a03100c140a0310001411310c060b01101014043d0b060b03111e020b0301053c0b050a031011140a031000140a03100d1411320a03100c140c060535330000003020402d00000000000000000c020b010c030e03412e0c040a040600000000000000002404190d03452e0600000000000000000812030c050d020b05442d0b04060100000000000000170c0405070b03462e00000000000000000b00090b0211340234000000311e0e020c030600000000000000000c040a03412d0c050a040a052304180a030a04422d0c060a000b060a01112f0b04060100000000000000160c0405070b03010b0011351136023700000035120a0011380c010c020a0011390a0038070a000a01113b0a000b02113c0b000b01113d023e000000371e0a0011380c020c030a0011390a0038070a000a02113b0a000b03113c0a000a02113d0708111d0c040e040b01113f0e0411400b000e040b0211410202010204020502060207000000010100010201030101030002000202030101040302020300",
    "abi": {
      "address": "0x1",
      "name": "genesis",
      "friends": [],
      "exposed_functions": [],
      "structs": [
        {
          "name": "AccountMap",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account_address",
              "type": "address"
            },
            {
              "name": "balance",
              "type": "u64"
            }
          ]
        },
        {
          "name": "EmployeeAccountMap",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "accounts",
              "type": "vector<address>"
            },
            {
              "name": "validator",
              "type": "0x1::genesis::ValidatorConfigurationWithCommission"
            },
            {
              "name": "vesting_schedule_numerator",
              "type": "vector<u64>"
            },
            {
              "name": "vesting_schedule_denominator",
              "type": "u64"
            },
            {
              "name": "beneficiary_resetter",
              "type": "address"
            }
          ]
        },
        {
          "name": "ValidatorConfiguration",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "owner_address",
              "type": "address"
            },
            {
              "name": "operator_address",
              "type": "address"
            },
            {
              "name": "voter_address",
              "type": "address"
            },
            {
              "name": "stake_amount",
              "type": "u64"
            },
            {
              "name": "consensus_pubkey",
              "type": "vector<u8>"
            },
            {
              "name": "proof_of_possession",
              "type": "vector<u8>"
            },
            {
              "name": "network_addresses",
              "type": "vector<u8>"
            },
            {
              "name": "full_node_network_addresses",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "ValidatorConfigurationWithCommission",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "validator_config",
              "type": "0x1::genesis::ValidatorConfiguration"
            },
            {
              "name": "commission_percentage",
              "type": "u64"
            },
            {
              "name": "join_during_genesis",
              "type": "bool"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b01000802080c031448055c37079301f5010888032010a803a2030aca06090cd306ed010dc008040fc40802000000040008000c0001070001030700030b0200000600010001010703040001020906060001000a07010001030d07080001030e07060001030f0705000100100a0b000100110a08000100120b01000103060b0c00010313070d00010208010a02010800000106080101060a020102010301070802010801060801030a0203010a0201060800010a0201080201010208020800076b65796c657373095075626c69634b65790369737306537472696e6706737472696e6703696463036e6577056279746573056572726f7210696e76616c69645f617267756d656e7416646573657269616c697a655f7075626c69635f6b65790942435353747265616d0a6263735f73747265616d12646573657269616c697a655f737472696e6713646573657269616c697a655f756c65623132380e646573657269616c697a655f7538076765745f696463076765745f697373196e65775f7075626c69635f6b65795f66726f6d5f62797465730d6861735f72656d61696e696e67116665646572617465645f6b65796c657373000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631ee0203010000000000000028455f494e56414c49445f4b45594c4553535f5055424c49435f4b45595f45585452415f42595445534b54686572652061726520657874726120627974657320696e2074686520696e707574207768656e20646573657269616c697a696e672061204b65796c657373207075626c6963206b65792e020000000000000024455f494e56414c49445f49445f434f4d4d49544d454e545f42595445535f4c454e47544851546865206c656e677468206f6620746865206964656e74696669657220636f6d6d69746d656e7420627974657320696e2061204b65796c657373207075626c6963206b657920697320696e76616c69642e030000000000000022455f494e56414c49445f4953535545525f555446385f42595445535f4c454e47544843546865206c656e677468206f66207468652069737375657220737472696e6720696e2061204b65796c657373207075626c6963206b657920697320696e76616c69642e0000000202020801050a020001000002150e00110141050678000000000000002504120e01410506200000000000000021040f0b000b011200020602000000000000001102270603000000000000001102270301000009290a0011040c010a0011050c02400500000000000000000c030600000000000000000c04090c050a0504230b04060100000000000000160c040a040a0223041b0d030a0011064405050c0b00010b030c060b010b06110002080c0505120b0001051d0703000002040b00100014020803000002040b0010011402090100000e0e0b00110a0c010d0111030c020d01110b030b0b020206010000000000000011022700010000001400",
    "abi": {
      "address": "0x1",
      "name": "keyless",
      "friends": [
        "0x1::federated_keyless"
      ],
      "exposed_functions": [
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::string::String",
            "vector<u8>"
          ],
          "return": [
            "0x1::keyless::PublicKey"
          ]
        },
        {
          "name": "deserialize_public_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "0x1::keyless::PublicKey"
          ]
        },
        {
          "name": "get_idc",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::keyless::PublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "get_iss",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::keyless::PublicKey"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "new_public_key_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::keyless::PublicKey"
          ]
        }
      ],
      "structs": [
        {
          "name": "PublicKey",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "iss",
              "type": "0x1::string::String"
            },
            {
              "name": "idc",
              "type": "vector<u8>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a08010008020808031048055824077ca201089e022010be026e0cac03c80700000006000a000e02090700030d0700000100010001000200010001000300010001000402010001000501040001010705050001000801070001020b05070001000c01090001030b01090001000f00010001001001010001020404010403040404000102010303020202010800050202030303010801050202040404076d617468313238036d6178036d696e076176657261676505636c616d700a666c6f6f725f6c6f6732056572726f7210696e76616c69645f617267756d656e74046c6f67320c4669786564506f696e7433320d66697865645f706f696e743332156372656174655f66726f6d5f7261775f76616c7565076c6f67325f36340c4669786564506f696e7436340d66697865645f706f696e74363403706f770473717274000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76313b0101000000000000001745494e56414c49445f4152475f464c4f4f525f4c4f47321743616e6e6f74206c6f6732207468652076616c75652030000000010000010b0a000a012604080b000c020b02020b010c02050601010000010b0a000a012304080b000c020b02020b010c0205060201000001170a000a0123040e0a000b010b001732020000000000000000000000000000001a160c020b02020a010b000b011732020000000000000000000000000000001a160c02050c0301000003060b020b010b00110011010204010000062931000c010a00320000000000000000000000000000000022042631400c020a0231002404240a0032010000000000000000000000000000000a022f260313051f0a020c030b000b03300c000a020c030b010b03160c010b023101300c0205080b01020601000000000000001105270601000008420a0011040c010a0032000000000100000000000000000000002604390a013120170c020b000b02300c000600000000000000000c030600000080000000000c040a040600000000000000002204310a000b00183120300c000a003200000000020000000000000000000000260322052c0a040c050b030b05160c030b003101300c000b043101300c0405130b013431202f0b031611070231200a01170c020b000b022f0c00050f080100000a420a0011040c010a0032000000000000008000000000000000002604390a01313f170c020b000b02300c0032000000000000000000000000000000000c0332000000000000008000000000000000000c040a0432000000000000000000000000000000002204310a000b0018313f300c000a003200000000000000000100000000000000260322052c0a040c050b030b05160c030b003101300c000b043101300c0405130b013531402f0b0316110902313f0a01170c020b000b022f0c00050f0a010000022b0a01320000000000000000000000000000000021040832010000000000000000000000000000000c020b020232010000000000000000000000000000000c030a0132010000000000000000000000000000002404260a013202000000000000000000000000000000193201000000000000000000000000000000210315051b0a000c040b030b04180c030b0132020000000000000000000000000000001a0c010a000c040b000b04180c00050a0b030b00180c0205060b010000013d0a00320000000000000000000000000000000021040632000000000000000000000000000000000232010000000000000000000000000000000a0011043101163101302f0c010a010a000b011a163101300c010a010a000b011a163101300c010a010a000b011a163101300c010a010a000b011a163101300c010a010a000b011a163101300c010a010b000b011a11010200",
    "abi": {
      "address": "0x1",
      "name": "math128",
      "friends": [],
      "exposed_functions": [
        {
          "name": "max",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128",
            "u128"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "min",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128",
            "u128"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "average",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128",
            "u128"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "clamp",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128",
            "u128",
            "u128"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "floor_log2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128"
          ],
          "return": [
            "u8"
          ]
        },
        {
          "name": "log2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "log2_64",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "pow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128",
            "u128"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "sqrt",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128"
          ],
          "return": [
            "u128"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d01000e020e0803165d04730605791d079601fe020894042006b4042210d604f0010ac6060a0cd006e0010db008020fb20804000000060008000f0012001600180001080000030e0000050001000101070001000102090103010401020a0104010401000b06010001000c00010001010d00010001000e060100010310000700010211040101060104130808000104140808000100150601000105170101000106190101000102020302090201060c00010801010101090002080107080102060c03010501030107030776657273696f6e1453657456657273696f6e4361706162696c6974790b64756d6d795f6669656c640756657273696f6e056d616a6f720c6f6e5f6e65775f65706f63681073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b0d636f6e6669675f6275666665720a646f65735f65786973740a657874726163745f76320a696e697469616c697a6513696e697469616c697a655f666f725f74657374146173736572745f636f72655f7265736f75726365127365745f666f725f6e6578745f65706f6368067369676e65720a616464726573735f6f6606757073657274056572726f7210696e76616c69645f617267756d656e74117065726d697373696f6e5f64656e6965640b7365745f76657273696f6e0c636861696e5f7374617475730e6173736572745f67656e657369730f7265636f6e66696775726174696f6e0b7265636f6e666967757265187265636f6e66696775726174696f6e5f776974685f646b670767656e6573697300000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631bc010201000000000000001d45494e56414c49445f4d414a4f525f56455253494f4e5f4e554d4245524b537065636966696564206d616a6f722076657273696f6e206e756d626572206d7573742062652067726561746572207468616e2063757272656e742076657273696f6e206e756d6265722e02000000000000000f454e4f545f415554484f52495a45442e4163636f756e74206973206e6f7420617574686f72697a656420746f206d616b652074686973206368616e67652e000000020102010102010403000300010105190a0011013800041638010c010700290104120b000107002a010c020b010b0215020b000b012d0105110b0001051104030000010b0a0011010a000b0112012d010b000912002d00020500000001070a0011060b000912002d0002070104010101150b0011082900041207002b011000140a0123040f0b011201380202060100000000000000110a27060200000000000000110b270c01040101091b0b00110829000418110d07002b011000140a0123041507002a010f000c020b010b0215110e02060100000000000000110a27060200000000000000110b270100001a001b00",
    "abi": {
      "address": "0x1",
      "name": "version",
      "friends": [
        "0x1::reconfiguration_with_dkg",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "set_version",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "SetVersionCapability",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Version",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "major",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d01002f022f900103bf01bd0504fc067205ee07810507ef0c8e1608fd2220069d235b10f8239b0f0a9333f4020c8736b01a0db7503a0ff150030000001300340036003b0043004f00540059005e00670069006f00710076007f008401008d01009501009b0100b60100010600000506000006060000090600000a0600000d0600000e080001120401060100140600001506000016060000170600001d060000210600002204000024060000250600002606000027060000280600002b0600002c0600002e0600002f07000031080002330702000000000335070000370800043a0400003e070005420600064e07000a66040100010b68080000530001000107550301010701001804040001005604010001001904040001001e05040001005704010001005804060001085a0708010001005b09040001005c040b0001005d0c010001095d0c010001005f0d01000100600e01000100610f10000109620d0100010063050400010458120600010064040100010065091300010a6a150b0100010a6b1601010001046c170b0001046d180b00010a6e19160100010c701a010100010d720108000101731c0101060101741e0101060100750c01000109750c0100010e77040b0001007804040001007904010001007a040b0001007b23010001097b0d010001007c24010001097c24010001007d050b0001007e0c0100010f80010b0b00010f81010b0b00010082012c0400010783012d08010701108501040800010c8601040100010287012f0b020404010a880101160100010489010b300001028a013132020404010a8b013301010001048c01340b0001118e0135040001058f013537010601009001383900010991013a040001028901013c020404010292013c01020404010f93010b0b00010f94010b0b0001003d0443000112960144450100010897014701010001059801383900010a99013501010001009a0149430001139c01010b0001009d0106010001029e014c0802040401029f014c4d0204040100a0014e04000100a1010c10000105a2015110000100a301040b00010040040b000100a4012401000103a5014552000100a6015401000102a70131550204040102a80157010204040100a9012401000100aa015901000100ab010c0100010eac01045b000109ad01055e000100ae010601000100af015f01000109b0015f01000100b101240100010fb2010b0b000100b3010401000104b401120b000106b501620b000114b701630b000100b80106010001000f0406000100b901040b00010964050100010aba01040b0100010abb016616010001010208041514161419141a141c1b1d1d1c201d211c251d261c291d2a2d02302e3114332e341437361c3b3a05373d37263721373e373f3740371d3741372a3b2e1d363f043f0b4046421446054705464f474f330550051c561d3e51053a4f504f514f1c5c1d411c601d3d1c641d406414651402060c060c0001081703060c060c09000105020505010a0502060a090006090001010206081b05060a05060a05060506081b0301010302060c0503060c050302060c06081b0106081b010c040507081b0c07030106081c010b2001082101082101060b20010900010b200109000206081c050306081c030302070b200109000302050b2001090001080001090001080102070b0701090009000b07081b0b200108210306081c0a05060a05030305030b200108210108020108030207081b0c0206081b0303060c05050108040108050407081b0c050705030306081b0301080901080a0307081b0b200108210309060c060a050b1902050b20010821081d050505030a0202060c090002050b2001082101060b19020900090101081c02070b190209000901060900020900090102070b200109000b200109000307081c050301060c010808010b0701090002060c0a02020c081e06060c05050b20010821030a0201080b010b19020900090101081401080d010812010816010810120b2001082103081c060a050303050b200108210305081e0c050507080605050501081d01060900010a02010202070a09000a090006070806050a02081e0c0c030a081f030301081f03060a05030302060b190209000901060900010609010205081a02081a0501060b1902081a050106081e01081a0407081b0501070b1902050504060c0505050107090101080c03070b190209000901090009010407081b05070b19020505070504060c05081a050406081b0c070b1902081a050705040303030301080f0307081b01030303030304060c0505030108130507081b0c05070507030203081f0203030108150807081b07081d03060a081f03081f03070302060c0302030c0776657374696e670a446973747269627574650561646d696e1876657374696e675f636f6e74726163745f6164647265737306616d6f756e740f446973747269627574654576656e740b52657365744c6f636b7570147374616b696e675f706f6f6c5f616464726573731a6e65775f6c6f636b75705f65787069726174696f6e5f736563731052657365744c6f636b75704576656e740b557064617465566f746572096f6c645f766f746572096e65775f766f74657210557064617465566f7465724576656e740a41646d696e53746f72651176657374696e675f636f6e747261637473056e6f6e63650d6372656174655f6576656e74730b4576656e7448616e646c65056576656e741a43726561746556657374696e67436f6e74726163744576656e740d41646d696e57697468647261771241646d696e57697468647261774576656e741543726561746556657374696e67436f6e7472616374086f70657261746f7205766f7465720c6772616e745f616d6f756e74127769746864726177616c5f6164647265737315636f6d6d697373696f6e5f70657263656e746167650e53657442656e65666963696172790b7368617265686f6c6465720f6f6c645f62656e65666963696172790f6e65775f62656e65666963696172791353657442656e65666963696172794576656e740b5374616b696e67496e666f0c706f6f6c5f61646472657373095465726d696e6174650e5465726d696e6174654576656e740d556e6c6f636b5265776172647312556e6c6f636b526577617264734576656e740e5570646174654f70657261746f720c6f6c645f6f70657261746f720c6e65775f6f70657261746f72135570646174654f70657261746f724576656e7404566573740d706572696f645f76657374656409566573744576656e740e566573745065726d697373696f6e0b64756d6d795f6669656c641856657374696e674163636f756e744d616e6167656d656e7405726f6c65730953696d706c654d61700a73696d706c655f6d617006537472696e6706737472696e670f56657374696e67436f6e74726163740573746174650a6772616e745f706f6f6c04506f6f6c08706f6f6c5f7536340d62656e656669636961726965731076657374696e675f7363686564756c650f56657374696e675363686564756c65077374616b696e670f72656d61696e696e675f6772616e740a7369676e65725f636170105369676e65724361706162696c697479076163636f756e74167570646174655f6f70657261746f725f6576656e7473137570646174655f766f7465725f6576656e74731372657365745f6c6f636b75705f6576656e7473167365745f62656e65666963696172795f6576656e747315756e6c6f636b5f726577617264735f6576656e74730b766573745f6576656e747311646973747269627574655f6576656e7473107465726d696e6174655f6576656e74731561646d696e5f77697468647261775f6576656e7473087363686564756c650c4669786564506f696e7433320d66697865645f706f696e7433321473746172745f74696d657374616d705f736563730f706572696f645f6475726174696f6e126c6173745f7665737465645f706572696f64106772616e745f7065726d697373696f6e137065726d697373696f6e65645f7369676e657213617574686f72697a655f756e6c696d697465641e6173736572745f76657374696e675f636f6e74726163745f6578697374731e6173736572745f6163746976655f76657374696e675f636f6e74726163740c7368617265686f6c6465727306766563746f7208636f6e7461696e730f6765745f62656e65666963696172791e6f70657261746f725f636f6d6d697373696f6e5f70657263656e746167651c7365745f62656e65666963696172795f666f725f6f70657261746f72107374616b696e675f636f6e74726163741c7570646174655f636f6d6d697373696f6e5f70657263656e746167650c7665726966795f61646d696e236765745f76657374696e675f6163636f756e745f7369676e65725f696e7465726e616c107570646174655f636f6d6d6973696f6e0b62656e65666963696172790a646973747269627574650e77697468647261775f7374616b6504436f696e04636f696e094170746f73436f696e0a6170746f735f636f696e0576616c75650c64657374726f795f7a65726f06736861726573217368617265735f746f5f616d6f756e745f776974685f746f74616c5f636f696e7307657874726163740d6170746f735f6163636f756e740d6465706f7369745f636f696e730866656174757265731e6d6f64756c655f6576656e745f6d6967726174696f6e5f656e61626c656404656d69740a656d69745f6576656e740c72657365745f6c6f636b7570057374616b650f6765745f6c6f636b75705f73656373127374616b655f706f6f6c5f616464726573730e756e6c6f636b5f7265776172647319746f74616c5f616363756d756c617465645f726577617264730c756e6c6f636b5f7374616b650c7570646174655f766f74657213616363756d756c617465645f726577617264730e61646d696e5f7769746864726177056572726f720d696e76616c69645f7374617465096e6f745f666f756e64176372656174655f76657374696e675f636f6e747261637417636865636b5f7065726d697373696f6e5f6578697374731073797374656d5f6164647265737365731369735f72657365727665645f61646472657373246173736572745f6163636f756e745f69735f726567697374657265645f666f725f617074066c656e677468047a65726f066372656174650672656d6f7665056d65726765066275795f696e067369676e65720a616464726573735f6f66106e65775f6576656e745f68616e646c651f6372656174655f76657374696e675f636f6e74726163745f6163636f756e74226372656174655f7374616b696e675f636f6e74726163745f776974685f636f696e730d64657374726f795f656d70747910696e76616c69645f617267756d656e74117065726d697373696f6e5f64656e6965640362637308746f5f627974657306617070656e64176372656174655f7265736f757263655f6163636f756e74087265676973746572176372656174655f76657374696e675f7363686564756c650974696d657374616d700b6e6f775f7365636f6e64730f646973747269627574655f6d616e790c636f6e7461696e735f6b657906626f72726f770f6765745f726f6c655f686f6c6465721a6765745f76657374696e675f6163636f756e745f7369676e65721d6372656174655f7369676e65725f776974685f6361706162696c69747914706572696f645f6475726174696f6e5f736563731172657365745f62656e656669636961727904757466380f7365745f62656e65666963696172790a626f72726f775f6d757403616464187365745f62656e65666963696172795f7265736574746572137365745f6d616e6167656d656e745f726f6c651a7465726d696e6174655f76657374696e675f636f6e7472616374096765745f7374616b65187374616b696e675f636f6e74726163745f616d6f756e747313756e6c6f636b5f726577617264735f6d616e790f7570646174655f6f70657261746f720f7377697463685f6f70657261746f72247570646174655f6f70657261746f725f776974685f73616d655f636f6d6d697373696f6e0f756e61757468656e7469636174656404766573740b746f74616c5f636f696e730c6d756c7469706c795f753634066d6174683634036d696e09766573745f6d616e791276657374696e675f73746172745f736563730762616c616e63650877697468647261770767656e657369730000000000000000000000000000000000000000000000000000000000000001052000000000000000000000000000000000000000000000000000000000000000000a0219186170746f735f6672616d65776f726b3a3a76657374696e670a021a19524f4c455f42454e45464943494152595f524553455454455214636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631e70e1101000000000000001b45494e56414c49445f5749544844524157414c5f414444524553531e5769746864726177616c206164647265737320697320696e76616c69642e02000000000000001745454d5054595f56455354494e475f5343484544554c452156657374696e67207363686564756c652063616e6e6f7420626520656d7074792e03000000000000001d455a45524f5f56455354494e475f5343484544554c455f504552494f441b56657374696e6720706572696f642063616e6e6f7420626520302e040000000000000010454e4f5f5348415245484f4c44455253225368617265686f6c64657273206c6973742063616e6e6f7420626520656d7074792e050000000000000017455348415245535f4c454e4754485f4d49534d4154434838546865206c656e677468206f66207368617265686f6c6465727320616e6420736861726573206c6973747320646f6e2774206d617463682e0600000000000000174556455354494e475f53544152545f544f4f5f534f4f4e5756657374696e672063616e6e6f74207374617274206265666f7265206f72206174207468652063757272656e7420626c6f636b2074696d657374616d702e2048617320746f20626520696e20746865206675747572652e07000000000000000a454e4f545f41444d494e34546865207369676e6572206973206e6f74207468652061646d696e206f66207468652076657374696e6720636f6e74726163742e08000000000000001c4556455354494e475f434f4e54524143545f4e4f545f4143544956452d56657374696e6720636f6e7472616374206e6565647320746f20626520696e206163746976652073746174652e09000000000000001e4556455354494e475f434f4e54524143545f5354494c4c5f4143544956455141646d696e2063616e206f6e6c792077697468647261772066726f6d20616e20696e6163746976652028706175736564206f72207465726d696e61746564292076657374696e6720636f6e74726163742e0a000000000000001b4556455354494e475f434f4e54524143545f4e4f545f464f554e442e4e6f2076657374696e6720636f6e747261637420666f756e642061742070726f766964656420616464726573732e0b00000000000000144550454e44494e475f5354414b455f464f554e445f43616e6e6f74207465726d696e617465207468652076657374696e6720636f6e747261637420776974682070656e64696e6720616374697665207374616b652e204e65656420746f207761697420756e74696c206e6578742065706f63682e0c000000000000000b455a45524f5f4752414e54194772616e7420616d6f756e742063616e6e6f7420626520302e0d000000000000001d4556455354494e475f4143434f554e545f4841535f4e4f5f524f4c45533b56657374696e67206163636f756e7420686173206e6f206f74686572206d616e6167656d656e7420726f6c6573206265736964652061646d696e2e0e000000000000000f45524f4c455f4e4f545f464f554e44305468652076657374696e67206163636f756e7420686173206e6f2073756368206d616e6167656d656e7420726f6c652e0f0000000000000012455045524d495353494f4e5f44454e4945444c4163636f756e74206973206e6f742061646d696e206f7220646f6573206e6f7420686176652074686520726571756972656420726f6c6520746f2074616b65207468697320616374696f6e2e10000000000000001c455645435f454d5054595f464f525f4d414e595f46554e4354494f4e2e5a65726f206974656d7320776572652070726f766964656420746f2061202a5f6d616e792066756e6374696f6e2e110000000000000016454e4f5f56455354494e475f5045524d495353494f4e3e43757272656e74207065726d697373696f6e6564207369676e65722063616e6e6f7420706572666f726d2076657374696e67206f7065726174696f6e732e0a0456657374010400095465726d696e6174650104000a446973747269627574650104000b52657365744c6f636b75700104000b557064617465566f7465720104000d41646d696e57697468647261770104000d556e6c6f636b526577617264730104000e53657442656e65666963696172790104000e5570646174654f70657261746f720104001543726561746556657374696e67436f6e74726163740104000e05766f746572010100086f70657261746f720101000b62656e65666963696172790101000b7368617265686f6c6465720101000c7368617265686f6c646572730101000f72656d61696e696e675f6772616e740101001076657374696e675f7363686564756c650101001176657374696e675f636f6e747261637473010100127374616b655f706f6f6c5f616464726573730101001276657374696e675f73746172745f7365637301010013616363756d756c617465645f7265776172647301010014706572696f645f6475726174696f6e5f7365637301010019746f74616c5f616363756d756c617465645f726577617264730101001e6f70657261746f725f636f6d6d697373696f6e5f70657263656e74616765010100000203020503050403010203020503050403020204020503050705080303020402050305070508030402050205030507050b050c050502050205030507050b050c050602030f0a051003110b070108080902030205030504030a02030205030504030b0207180519051a031b05030507051c03080207180519051a031b05030507051c030c0205020503051e051f0520050d0205020503051e051f0520050e02042305180519051c030f020202050305100202020503051102040205030507050403120204020503050705040313020602050305070529052a051c0314020602050305070529052a051c031502050205030507052d0304031602050205030507052d0304031702013001180201320b1902081a051b02123803020539081c3c0b190205053d081d1b053f080e400341081e440b07010814450b07010805460b07010803470b0701080d480b07010812490b070108164a0b070108014b0b070108104c0b0701080a1d02044d0a081f5003510352030001000001060b000b01091216380002020100011801080a0011030b002b18100010011402040100011801080a0011030b002b1810001002140205010001180a420a0011060a0011070c020e020c030a030e013801040f0b03010b01020b002b180c0507000c000600000000000000000c060a060a03410423043d0a030a0642040c040a010a050a041411092104380b04140c00080c070b0704330b05010b03010b00020b06060100000000000000160c0605160b0401090c07052b0b05010b030105310a0100011801080a0011030b002b181000100314020b01040001040b000b01110c020d01040118111a0a0111020c030b012a180c040b000a042e110e0a042e110f0c050e050b030a0211100b040f000f030c060b020b061502110100011801070a0011030b002b180b01110902070100011801070a0011060b002b18100411120213010401181f690a0011060a002a180c010a012e0a0011140c020e0238020c030a030600000000000000002104160b01010b023803020a0110040c040a0411120c050e050c060600000000000000000c070a0641040c080a070a082304440a060a074204140c090a040a0911170c0a0a040b0a0a0311180c0a0d020b0a38040c0b0a012e0b0911090b0b38050b07060100000000000000160c0705230b04010b06010e0238020600000000000000002404660a011005140b023805111b045c0b011006140b000b0312003806020a010f070b011006140b000b0312013807055b0b02380305521e0104011822350a012a180c020b000a022e110e0a022e110f0c030e030a021000100114111f111b04230a021006140b010a0210001008140b021000100814112012023808020a020f090a021006140b010a0210001008140b0210001008141120120338090522210100011801080a0011030b002b1810001008140222010401180b080a0011230c010b002b180b0111240224000000100b0a00110f0c020e020b0010001001140b011125022601040118273c0a012a180c030b000a032e110e0a032e110f0c040e040a0310001002140c050a0310001001140a0211270a030f000f020c060a020b0615111b042d0a031006140b010b0310001008140b050b021204380a020a030f0a0a031006140b010b0310001008140b050b021205380b052c280100011828170a0011060a0011230c020a000b0111050c010b002b180c030a0310040b0111170c040b0310040b040b0211180229010401182b3d0a012b18100b140602000000000000002104380a012a180c020b000a022e110e0a022e0a0111140c030e0338020c040a0406000000000000000021041f0b02010b033803020a021005140b033805111b042e0b021006140b010b041207380c020a020f0c0b021006140b010b041208380d052d0b0001060900000000000000112a270600000118010d0a0011030b002b18100b1406010000000000000021040a02060800000000000000112a270300000001070b002918040402060a00000000000000112b272c0100010642d4010a00091216380e04cd010a04112e03c6010a04112f0a0141040600000000000000002404bf010e02380f0a0141042104b80138100c090600000000000000000c0a061e0000000000000011320c0b0b010c0c0600000000000000000c0d0a0c41040c0e0a0d0a0e2304450a0c0a0d4204140c0f0d020e0f38110c10010e1038020c110d090b1038120d0b0b0f0a111135010b0a0b11160c0a0b0d060100000000000000160c0d05230b0c010a0a0600000000000000002404b3010a0011360c120a122906045205590a00400400000000000000000600000000000000000a00381312062d060b000a0811380c130c140e140a050a060b090a070b0811390c150e1411360c160a122a060c170a170f0d0a164404111b04a5010b17010a050a060a040c180a0a0b180a160a150a07120938140e140601000000000000000b120b0b38150b030b040b150b050b060b07120d0b0a0b130e1438160e1438170e1438180e1438190e14381a0e14381b0e14381c0e14381d0e14381e12182d180b02381f0b16020b170f0e0a050a060a040c180a0a0b180a160a150a07120a3820057f0b0001060c00000000000000113c270b00010b0101060500000000000000113c270b00010b0101060400000000000000113c270b00010b0101060100000000000000113c270b00010b0101061100000000000000113d273e0100011801070a0011030b002b18100f1402380000010648310a00091216380e042c0a0011362a060c020a0011360c030e0338210c040d040a021010382238230a02101014060100000000000000160b020f10150d04070138230d040b0138230b000b0411410c050c060e0638240b060b05020b0001061100000000000000113d2743010000011c0e00414a0600000000000000002404190a020600000000000000002404160a0111442604130b000b010b02060000000000000000121902060600000000000000113c27060300000000000000113c27060200000000000000113c2745010401184b200e00410406000000000000000022041d0e000c010600000000000000000c020a0141040c030a020a0323041a0a010a0242041411130b02060100000000000000160c02050c0b010102061000000000000000113c270900000004120a0010110e013825040d0b0010110e013826140c020b02020b00010b010c02050b480100011750180a00291704150b002b1710120c020a020e01382704100b020e01382814020b0201060e00000000000000112b27060d00000000000000112b2749010001180f090b012b180c020b000a02110e0b02110f020f00000001040b001013114a024b0100011801080a0011030b002b18100f101414024c0100011801070a0011030b002b18101514024d010402171853380a00091216380e04330a012a180c030b0011360c040a040a0310061421042b080c050b0504260b030f110c060a062e0e02382504230b060e0238290101020b060105220b0301060f00000000000000113d270b040b010702114e1148210c0505130b0001061100000000000000113d274f01040118583a0a03112f0a012a180c040b000a042e110e0a042e0a0211090c050a040f110c060a062e0e02382504350b060e02382a0c070a030b0715111b04290b041006140b010b020b050b03120b382b020a040f160b041006140b010b020b050b03120c382c05280b060a020a03382d051d52010402171801070b000b010702114e0b021153025301040217185a290a012b180c040b000a04110e0a01291703260b04110f0c050e05382e12172d170b012a170f120c060a062e0e02382704210b060e02382f0c070b030b0715020b060b020b03383005200b0401051054010401185d3b0a0111060a0111130a012a180c020b000a022e110e0a021000100814115501060000000000000000210c03010c040b0304360602000000000000000a020f0b150600000000000000000a020f15150a022e0b041124111b042d0b021006140b01120e3831020a020f170b021006140b01120f3832052c0b0201060b00000000000000112a27230100011823140a0011060a002b180c010b000a01100010011411560c02010b01101514170b02170257010401184b200e00410406000000000000000022041d0e000c010600000000000000000c020a0141040c030a020a0323041a0a010a0242041411220b02060100000000000000160c02050c0b010102061000000000000000113c27580104011861430a012a180c040b000a042e110e0a042e110f0c050e050a0410001001140c060a060a020a0311590a040f000f010c070a020b07150a040f000f030c080a030b0815111b04330a041006140b010b0410001008140b060b020b0312123833020a040f180a041006140b010b0410001008140b060b020b031213383405325a010401180b090a01110a0c030b000b010b020b031158020e00000001170a00091216380e04100b0011360b0110061421040d02060700000000000000115b270b00010b0101061100000000000000113d275c01040118657d0a0011220a002a180c010a01100f101914114424040f0b0101020a010f0f0c020a02101a14060100000000000000160c0311440a02101914170a021014141a0a032304290b01010b0201020a02101b0c040a03060100000000000000170c050a050a04414a2304740b040b05424a140c060a011004115d0b06115e0a01101514115f0c070a011015140a07170a010f15150b020f1a0c080a030b08150a012e0a071124111b04650a011006140b000b0110001008140b030b0712143835020a010f1c0a011006140b000b0110001008140b030b071215383605640a040b04414a06010000000000000017424a140c06053a60010401184b200e00410406000000000000000022041d0e000c010600000000000000000c020a0141040c030a020a0323041a0a010a02420414115c0b02060100000000000000160c02050c0b010102061000000000000000113c276101000106060d0a0029060307400400000000000000000c010b01020b002b06100d140c010505620100011801080a0011030b002b18100f101914021400000067100a010a00100010011411630b0138370c020b00110f0c030e030b0238380218060d010d020d03180218051801180f0d00180b180a18001811060006021804060118031700180819021807180c18101809190119031900180e00bc0100",
    "abi": {
      "address": "0x1",
      "name": "vesting",
      "friends": [
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "grant_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "operator",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "voter",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "shareholder",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "operator_commission_percentage",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "set_beneficiary_for_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "update_commission_percentage",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "beneficiary",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "shareholders",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "vector<address>"
          ]
        },
        {
          "name": "distribute",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "reset_lockup",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "stake_pool_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "unlock_rewards",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "update_voter",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "accumulated_rewards",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "admin_withdraw",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "create_vesting_contract",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&vector<address>",
            "0x1::simple_map::SimpleMap<address, 0x1::coin::Coin<0x1::aptos_coin::AptosCoin>>",
            "0x1::vesting::VestingSchedule",
            "address",
            "address",
            "address",
            "u64",
            "vector<u8>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "vesting_schedule",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "0x1::vesting::VestingSchedule"
          ]
        },
        {
          "name": "create_vesting_schedule",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::fixed_point32::FixedPoint32>",
            "u64",
            "u64"
          ],
          "return": [
            "0x1::vesting::VestingSchedule"
          ]
        },
        {
          "name": "distribute_many",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<address>"
          ],
          "return": []
        },
        {
          "name": "get_role_holder",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::string::String"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_vesting_account_signer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "period_duration_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "remaining_grant",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "reset_beneficiary",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_beneficiary",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_beneficiary_resetter",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_management_role",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x1::string::String",
            "address"
          ],
          "return": []
        },
        {
          "name": "terminate_vesting_contract",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "total_accumulated_rewards",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "unlock_rewards_many",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<address>"
          ],
          "return": []
        },
        {
          "name": "update_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "update_operator_with_same_commission",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "vest",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "vest_many",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<address>"
          ],
          "return": []
        },
        {
          "name": "vesting_contracts",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "vector<address>"
          ]
        },
        {
          "name": "vesting_start_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": [
        {
          "name": "Distribute",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "DistributeEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "ResetLockup",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "new_lockup_expiration_secs",
              "type": "u64"
            }
          ]
        },
        {
          "name": "ResetLockupEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "new_lockup_expiration_secs",
              "type": "u64"
            }
          ]
        },
        {
          "name": "UpdateVoter",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "old_voter",
              "type": "address"
            },
            {
              "name": "new_voter",
              "type": "address"
            }
          ]
        },
        {
          "name": "UpdateVoterEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "old_voter",
              "type": "address"
            },
            {
              "name": "new_voter",
              "type": "address"
            }
          ]
        },
        {
          "name": "AdminStore",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "vesting_contracts",
              "type": "vector<address>"
            },
            {
              "name": "nonce",
              "type": "u64"
            },
            {
              "name": "create_events",
              "type": "0x1::event::EventHandle<0x1::vesting::CreateVestingContractEvent>"
            }
          ]
        },
        {
          "name": "AdminWithdraw",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "AdminWithdrawEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "CreateVestingContract",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "grant_amount",
              "type": "u64"
            },
            {
              "name": "withdrawal_address",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "commission_percentage",
              "type": "u64"
            }
          ]
        },
        {
          "name": "CreateVestingContractEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "grant_amount",
              "type": "u64"
            },
            {
              "name": "withdrawal_address",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "commission_percentage",
              "type": "u64"
            }
          ]
        },
        {
          "name": "SetBeneficiary",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "shareholder",
              "type": "address"
            },
            {
              "name": "old_beneficiary",
              "type": "address"
            },
            {
              "name": "new_beneficiary",
              "type": "address"
            }
          ]
        },
        {
          "name": "SetBeneficiaryEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "shareholder",
              "type": "address"
            },
            {
              "name": "old_beneficiary",
              "type": "address"
            },
            {
              "name": "new_beneficiary",
              "type": "address"
            }
          ]
        },
        {
          "name": "StakingInfo",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "commission_percentage",
              "type": "u64"
            }
          ]
        },
        {
          "name": "Terminate",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "TerminateEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "UnlockRewards",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "UnlockRewardsEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "UpdateOperator",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "old_operator",
              "type": "address"
            },
            {
              "name": "new_operator",
              "type": "address"
            },
            {
              "name": "commission_percentage",
              "type": "u64"
            }
          ]
        },
        {
          "name": "UpdateOperatorEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "old_operator",
              "type": "address"
            },
            {
              "name": "new_operator",
              "type": "address"
            },
            {
              "name": "commission_percentage",
              "type": "u64"
            }
          ]
        },
        {
          "name": "Vest",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "period_vested",
              "type": "u64"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "VestEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "period_vested",
              "type": "u64"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "VestPermission",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "VestingAccountManagement",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "roles",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, address>"
            }
          ]
        },
        {
          "name": "VestingContract",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "state",
              "type": "u64"
            },
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "grant_pool",
              "type": "0x1::pool_u64::Pool"
            },
            {
              "name": "beneficiaries",
              "type": "0x1::simple_map::SimpleMap<address, address>"
            },
            {
              "name": "vesting_schedule",
              "type": "0x1::vesting::VestingSchedule"
            },
            {
              "name": "withdrawal_address",
              "type": "address"
            },
            {
              "name": "staking",
              "type": "0x1::vesting::StakingInfo"
            },
            {
              "name": "remaining_grant",
              "type": "u64"
            },
            {
              "name": "signer_cap",
              "type": "0x1::account::SignerCapability"
            },
            {
              "name": "update_operator_events",
              "type": "0x1::event::EventHandle<0x1::vesting::UpdateOperatorEvent>"
            },
            {
              "name": "update_voter_events",
              "type": "0x1::event::EventHandle<0x1::vesting::UpdateVoterEvent>"
            },
            {
              "name": "reset_lockup_events",
              "type": "0x1::event::EventHandle<0x1::vesting::ResetLockupEvent>"
            },
            {
              "name": "set_beneficiary_events",
              "type": "0x1::event::EventHandle<0x1::vesting::SetBeneficiaryEvent>"
            },
            {
              "name": "unlock_rewards_events",
              "type": "0x1::event::EventHandle<0x1::vesting::UnlockRewardsEvent>"
            },
            {
              "name": "vest_events",
              "type": "0x1::event::EventHandle<0x1::vesting::VestEvent>"
            },
            {
              "name": "distribute_events",
              "type": "0x1::event::EventHandle<0x1::vesting::DistributeEvent>"
            },
            {
              "name": "terminate_events",
              "type": "0x1::event::EventHandle<0x1::vesting::TerminateEvent>"
            },
            {
              "name": "admin_withdraw_events",
              "type": "0x1::event::EventHandle<0x1::vesting::AdminWithdrawEvent>"
            }
          ]
        },
        {
          "name": "VestingSchedule",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "schedule",
              "type": "vector<0x1::fixed_point32::FixedPoint32>"
            },
            {
              "name": "start_timestamp_secs",
              "type": "u64"
            },
            {
              "name": "period_duration",
              "type": "u64"
            },
            {
              "name": "last_vested_period",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b01000602061e0324c20104e6010c05f201a801079a03c90708e30a2010830bbd020ac00d240ce40da9030d8d110c000000090013000107000003070000040700000507000006070000070700021207010000000800010001010a04040001000b05060001000c00060001000d05000001000e07000001000f080900010010080a000100110c0d000100140c0a000102150e0f0100010216030f010001001700110001001812000001001900130001001a00060001001b15160001001c17060001001d19000001001e1a000001001f1a1400010020001b000100211c06000100221c00000100231d06000100241e06000100251f060001002620060001002721060001002820060001002922060001002a200600010a010b010a140b140a180b18010a02010800010200010301060800010101060801010a0804010801020a020102010a02010a0805010b06010800010900010b0601090003010a020b0601080001080201060802010b06010803010803020a02060802010b06010804020a020a02010804010608030106080401080501060805030608000a08040a0a02030a020a08040a0a02030608000608010a02030a020a020a02030608050608030a02030608050608040a0208626c73313233383114416767724f724d756c74695369676e617475726505627974657315416767725075626c69634b65797357697468506f501150726f6f664f66506f7373657373696f6e095075626c69634b6579105075626c69634b657957697468506f50095369676e617475726522616767725f6f725f6d756c74695f7369676e61747572655f66726f6d5f6279746573056572726f7210696e76616c69645f617267756d656e7426616767725f6f725f6d756c74695f7369676e61747572655f73756267726f75705f636865636b217369676e61747572655f73756267726f75705f636865636b5f696e7465726e616c20616767725f6f725f6d756c74695f7369676e61747572655f746f5f6279746573196167677265676174655f7075626b65795f746f5f6279746573116167677265676174655f7075626b6579731a6167677265676174655f7075626b6579735f696e7465726e616c146167677265676174655f7369676e617475726573064f7074696f6e066f7074696f6e1d6167677265676174655f7369676e6174757265735f696e7465726e616c04736f6d65046e6f6e651e70726f6f665f6f665f706f7373657373696f6e5f66726f6d5f62797465731c70726f6f665f6f665f706f7373657373696f6e5f746f5f6279746573157075626c69635f6b65795f66726f6d5f62797465731876616c69646174655f7075626b65795f696e7465726e616c1e7075626c69635f6b65795f66726f6d5f62797465735f776974685f706f70237665726966795f70726f6f665f6f665f706f7373657373696f6e5f696e7465726e616c137075626c69635f6b65795f746f5f62797465731c7075626c69635f6b65795f776974685f706f705f746f5f62797465731d7075626c69635f6b65795f776974685f706f705f746f5f6e6f726d616c147369676e61747572655f66726f6d5f6279746573187369676e61747572655f73756267726f75705f636865636b127369676e61747572655f746f5f62797465731a7665726966795f6167677265676174655f7369676e6174757265237665726966795f6167677265676174655f7369676e61747572655f696e7465726e616c157665726966795f6d756c74697369676e61747572651e7665726966795f6d756c74697369676e61747572655f696e7465726e616c177665726966795f6e6f726d616c5f7369676e6174757265207665726966795f6e6f726d616c5f7369676e61747572655f696e7465726e616c167665726966795f7369676e61747572655f73686172651f7665726966795f7369676e61747572655f73686172655f696e7465726e616c000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f763189020301000000000000000d455a45524f5f5055424b455953395468652063616c6c65722077617320737570706f73656420746f20696e707574206f6e65206f72206d6f7265207075626c6963206b6579732e02000000000000000b4557524f4e475f53495a452c4f6e65206f662074686520676976656e20696e7075747320686173207468652077726f6e672073697a652e73030000000000000022455f4e554d5f5349474e4552535f4d5553545f45515f4e554d5f4d4553534147455349546865206e756d626572206f66207369676e65727320646f6573206e6f74206d6174636820746865206e756d626572206f66206d6573736167657320746f206265207369676e65642e0000000201020a02010201020a02020201020a02030201020a02040201020a02050201020a0200010000030b0e0041020660000000000000002104080b001200020602000000000000001101270201000003050b001000141103020401000003040b00100014020501000003040b0010011402060100000b0c0b0011070c010c020b0104090b021201020601000000000000001101270700020008010000100f0b0011090c010c020b01040c0b02120038000c030b030238010c03050a090002000c01000003030b001202020d01000003040b00100214020e010000130c0a00110f04090b00120338020c010b010238030c01050710010000160f0a000b011002141111040c0b00120438040c020b020238050c02050a1201000003040b00100314021301000003040b00100414021401000003050b001004141203021501000003030b001205021601000003050b00100514110302030002001701000003040b00100514020f0002001801000003070b001000140b010b02111902190002001a01000003090b001000140b011001140b02111b021b0002001c01000003090b001005140b011003140b02111d021d000200110002001e01000003090b001005140b011004140b02111f021f00020000000100020003000400050000",
    "abi": {
      "address": "0x1",
      "name": "bls12381",
      "friends": [],
      "exposed_functions": [
        {
          "name": "aggr_or_multi_signature_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::bls12381::AggrOrMultiSignature"
          ]
        },
        {
          "name": "aggr_or_multi_signature_subgroup_check",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::AggrOrMultiSignature"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "aggr_or_multi_signature_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::AggrOrMultiSignature"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "aggregate_pubkey_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::AggrPublicKeysWithPoP"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "aggregate_pubkeys",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::bls12381::PublicKeyWithPoP>"
          ],
          "return": [
            "0x1::bls12381::AggrPublicKeysWithPoP"
          ]
        },
        {
          "name": "aggregate_signatures",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::bls12381::Signature>"
          ],
          "return": [
            "0x1::option::Option<0x1::bls12381::AggrOrMultiSignature>"
          ]
        },
        {
          "name": "proof_of_possession_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::bls12381::ProofOfPossession"
          ]
        },
        {
          "name": "proof_of_possession_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::ProofOfPossession"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "public_key_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::bls12381::PublicKey>"
          ]
        },
        {
          "name": "public_key_from_bytes_with_pop",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "&0x1::bls12381::ProofOfPossession"
          ],
          "return": [
            "0x1::option::Option<0x1::bls12381::PublicKeyWithPoP>"
          ]
        },
        {
          "name": "public_key_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::PublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "public_key_with_pop_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::PublicKeyWithPoP"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "public_key_with_pop_to_normal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::PublicKeyWithPoP"
          ],
          "return": [
            "0x1::bls12381::PublicKey"
          ]
        },
        {
          "name": "signature_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::bls12381::Signature"
          ]
        },
        {
          "name": "signature_subgroup_check",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::Signature"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "signature_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::Signature"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "verify_aggregate_signature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::AggrOrMultiSignature",
            "vector<0x1::bls12381::PublicKeyWithPoP>",
            "vector<vector<u8>>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "verify_multisignature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::AggrOrMultiSignature",
            "&0x1::bls12381::AggrPublicKeysWithPoP",
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "verify_normal_signature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::Signature",
            "&0x1::bls12381::PublicKey",
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "verify_signature_share",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::Signature",
            "&0x1::bls12381::PublicKeyWithPoP",
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "AggrOrMultiSignature",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "AggrPublicKeysWithPoP",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "ProofOfPossession",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "PublicKey",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "PublicKeyWithPoP",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "Signature",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c010004020404030812051a0a0724530877200697012210b9013d0af601050cfb01220d9d02020f9f0202000000050001080000030001000100040200000101060300000100010202060c0201060c08636861696e5f696407436861696e4964026964036765740a696e697469616c697a651073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b0767656e6573697300000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76310a0000010367657401010000020102020001000100000507002b00100014020103000000070a0011020b000b0112002d00020000000700",
    "abi": {
      "address": "0x1",
      "name": "chain_id",
      "friends": [
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "get",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u8"
          ]
        },
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u8"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "ChainId",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "id",
              "type": "u8"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c0100080208080310c60604d6060205d8065407ac07882408b42b2006d42b2210f62ba3040a99300c0ca530d4160df9460200000008000e001a0001080000020800000300010001000404050001000505010001000607010001000705010001010907070001000a05010001000b05010001000c05010001000d08050001020f090501000100100501000100110501000100120501000100130501000100140501000100150501000100160501000100170b05000101180707000100190b050001031b0c0d0001011c07070001001d0b050001001e05010001001f05010001002005010001002105010001002205010001002305010001002405010001002505010001002605010001002705010001002805010001002905010001002a05010001002b05010001002c0c050001002d05010001002e05070001002f05070001003005070001003105070001003205070001003305070001003405070001003505070001003605070001003705070001003805070001003905070001003a05070001003b05070001003c05070001003d05070001003e05070001003f05070001004005070001004105070001004205070001004305070001004405070001004505070001004605070001004705070001004805070001004905070001004a05070001004b05070001004c05070001004d05070001004e05070001004f05070001005005070001005105070001005205070001005305070001005405070001005505070001005605070001005705070001005805070001005905070001005a05070001005b05070001005c05070001005d05070001005e05070001005f05070001006005070001006105070001006205070001006305070001006405070001006505070001006605070001006705010001006805010001006905010001006a05010001006b05010001006c05010001006d05010001006e05010001006f05010001007005010001007105010001007205010001007305010001007405010001007505010001007605010001007705010001007805010001007905010001007a05070001007b05010001007c05010001007d05010001007e05010001007f050100010080010c050001008101050100010082010501000100830105010001008401050100010085010501000100860105010001008701050100010088010501000100890105010001008a0105010001008b0105010001008c0105010001008d0105010001008e01050100010a0702060a0203010101020303020103070a02030100040302020702010303070a020a030a0301070a0900060a030a0303030a030a0303060c0a030a0301060c0105010a0205070a02060a0303030603020a02070a020866656174757265730846656174757265730f50656e64696e67466561747572657308636f6e7461696e73037365742a61626f72745f69665f6d756c74697369675f7061796c6f61645f6d69736d617463685f656e61626c65640a69735f656e61626c65641c61676772656761746f725f736e617073686f74735f656e61626c6564056572726f7210696e76616c69645f617267756d656e741961676772656761746f725f76325f6170695f656e61626c65642561676772656761746f725f76325f69735f61745f6c656173745f6170695f656e61626c656419616c6c6f775f766d5f62696e6172795f666f726d61745f76360a6170706c795f6469666606766563746f7207726576657273651d6170746f735f7374646c69625f636861696e5f69645f656e61626c65640d61756964735f656e61626c656413626c616b6532625f3235365f656e61626c65641c626c7331325f3338315f737472756374757265735f656e61626c656418626e3235345f737472756374757265735f656e61626c65641a62756c6c657470726f6f66735f62617463685f656e61626c65641462756c6c657470726f6f66735f656e61626c6564146368616e67655f666561747572655f666c6167730d696e76616c69645f7374617465236368616e67655f666561747572655f666c6167735f666f725f6e6578745f65706f6368067369676e65720a616464726573735f6f66117065726d697373696f6e5f64656e6965641d6368616e67655f666561747572655f666c6167735f696e7465726e616c1d636f64655f646570656e64656e63795f636865636b5f656e61626c656430636f696e5f746f5f66756e6769626c655f61737365745f6d6967726174696f6e5f666561747572655f656e61626c65641f636f6c6c6563745f616e645f646973747269627574655f6761735f6665657329636f6d6d697373696f6e5f6368616e67655f64656c65676174696f6e5f706f6f6c5f656e61626c656419636f6e63757272656e745f6173736574735f656e61626c656422636f6e63757272656e745f66756e6769626c655f6173736574735f656e61626c656423636f6e63757272656e745f66756e6769626c655f62616c616e63655f656e61626c65641b636f6e63757272656e745f746f6b656e5f76325f656e61626c65641c63727970746f6772617068795f616c67656272615f656e61626c65642e64656661756c745f746f5f636f6e63757272656e745f66756e6769626c655f62616c616e63655f656e61626c65642464656c65676174696f6e5f706f6f6c5f616c6c6f776c697374696e675f656e61626c65643164656c65676174696f6e5f706f6f6c5f7061727469616c5f676f7665726e616e63655f766f74696e675f656e61626c65641864656c65676174696f6e5f706f6f6c735f656e61626c656423646973706174636861626c655f66756e6769626c655f61737365745f656e61626c656417656e737572655f6672616d65776f726b5f7369676e6572116665655f70617965725f656e61626c65642e6765745f61626f72745f69665f6d756c74697369675f7061796c6f61645f6d69736d617463685f666561747572651f6765745f6163636f756e745f6162737472616374696f6e5f66656174757265206765745f61676772656761746f725f736e617073686f74735f666561747572651d6765745f61676772656761746f725f76325f6170695f66656174757265216765745f6170746f735f7374646c69625f636861696e5f69645f66656174757265096765745f6175696473176765745f626c616b6532625f3235365f666561747572651f6765745f626c7331325f3338315f7374727574757265735f666561747572651b6765745f626e3235345f7374727574757265735f666561747572651e6765745f62756c6c657470726f6f66735f62617463685f66656174757265186765745f62756c6c657470726f6f66735f66656174757265366765745f63616c63756c6174655f7472616e73616374696f6e5f6665655f666f725f646973747269627574696f6e5f666561747572652c6765745f636f696e5f746f5f66756e6769626c655f61737365745f6d6967726174696f6e5f666561747572652b6765745f636f6c6c6563745f616e645f646973747269627574655f6761735f666565735f666561747572651c6765745f636f6c6c656374696f6e5f6f776e65725f666561747572652d6765745f636f6d6d697373696f6e5f6368616e67655f64656c65676174696f6e5f706f6f6c5f666561747572651d6765745f636f6e63757272656e745f6173736574735f66656174757265266765745f636f6e63757272656e745f66756e6769626c655f6173736574735f66656174757265276765745f636f6e63757272656e745f66756e6769626c655f62616c616e63655f666561747572651f6765745f636f6e63757272656e745f746f6b656e5f76325f66656174757265286765745f63727970746f6772617068795f616c67656272615f6e6174697665735f66656174757265246765745f64656661756c745f6163636f756e745f7265736f757263655f66656174757265326765745f64656661756c745f746f5f636f6e63757272656e745f66756e6769626c655f62616c616e63655f66656174757265286765745f64656c65676174696f6e5f706f6f6c5f616c6c6f776c697374696e675f666561747572652d6765745f64656c65676174696f6e5f706f6f6c5f7061727469616c5f676f7665726e616e63655f766f74696e671c6765745f64656c65676174696f6e5f706f6f6c735f66656174757265276765745f646973706174636861626c655f66756e6769626c655f61737365745f66656174757265266765745f646973747269627574655f7472616e73616374696f6e5f6665655f66656174757265196765745f6a776b5f636f6e73656e7375735f66656174757265266765745f6a776b5f636f6e73656e7375735f7065725f6b65795f6d6f64655f666561747572651c6765745f6b65796c6573735f6163636f756e74735f666561747572652a6765745f6b65796c6573735f6163636f756e74735f776974685f706173736b6579735f66656174757265276765745f6b65796c6573735f6275745f7a6b6c6573735f6163636f756e74735f66656174757265246765745f6d61785f6f626a6563745f6e657374696e675f636865636b5f66656174757265186765745f6d6f64756c655f6576656e745f66656174757265226765745f6d6f64756c655f6576656e745f6d6967726174696f6e5f666561747572651d6765745f6d756c74697369675f6163636f756e74735f66656174757265236765745f6d756c74697369675f76325f656e68616e63656d656e745f66656174757265246765745f6e61746976655f6d656d6f72795f6f7065726174696f6e735f66656174757265306765745f6e65775f6163636f756e74735f64656661756c745f746f5f66615f6170745f73746f72655f666561747572652c6765745f6e65775f6163636f756e74735f64656661756c745f746f5f66615f73746f72655f66656174757265296765745f6f626a6563745f6e61746976655f646572697665645f616464726573735f666561747572652e6765745f6f7065726174696f6e735f64656661756c745f746f5f66615f6170745f73746f72655f66656174757265276765745f6f70657261746f725f62656e65666963696172795f6368616e67655f66656174757265226765745f6f726465726c6573735f7472616e73616374696f6e735f666561747572651d6765745f7061727469616c5f676f7665726e616e63655f766f74696e672b6765745f706572696f646963616c5f7265776172645f726174655f64656372656173655f666561747572651f6765745f7065726d697373696f6e65645f7369676e65725f66656174757265366765745f7072696d6172795f6170745f66756e6769626c655f73746f72655f61745f757365725f616464726573735f66656174757265206765745f7265636f6e6669677572655f776974685f646b675f666561747572651b6765745f7265736f757263655f67726f7570735f66656174757265226765745f7368615f3531325f616e645f726970656d645f3136305f66656174757265246765745f7369676e65725f6e61746976655f666f726d61745f6669785f66656174757265286765745f73706f6e736f7265645f6175746f6d617469635f6163636f756e745f6372656174696f6e296765745f7472616e73616374696f6e5f636f6e746578745f657874656e73696f6e5f666561747572652e6765745f7472616e73616374696f6e5f73696d756c6174696f6e5f656e68616e63656d656e745f66656174757265176765745f766d5f62696e6172795f666f726d61745f76361e69735f6163636f756e745f6162737472616374696f6e5f656e61626c65643569735f63616c63756c6174655f7472616e73616374696f6e5f6665655f666f725f646973747269627574696f6e5f656e61626c65641b69735f636f6c6c656374696f6e5f6f776e65725f656e61626c65642369735f64656661756c745f6163636f756e745f7265736f757263655f656e61626c65642869735f646572697661626c655f6163636f756e745f6162737472616374696f6e5f656e61626c65642569735f646973747269627574655f7472616e73616374696f6e5f6665655f656e61626c65642569735f646f6d61696e5f6163636f756e745f6162737472616374696f6e5f656e61626c65642569735f6a776b5f636f6e73656e7375735f7065725f6b65795f6d6f64655f656e61626c65642369735f6e61746976655f6d656d6f72795f6f7065726174696f6e735f656e61626c65642169735f6f626a6563745f636f64655f6465706c6f796d656e745f656e61626c65641e69735f7065726d697373696f6e65645f7369676e65725f656e61626c6564156a776b5f636f6e73656e7375735f656e61626c6564186b65796c6573735f6163636f756e74735f656e61626c65642e6b65796c6573735f6163636f756e74735f776974685f706173736b6579735f666561747572655f656e61626c65642b6b65796c6573735f6275745f7a6b6c6573735f6163636f756e74735f666561747572655f656e61626c6564206d61785f6f626a6563745f6e657374696e675f636865636b5f656e61626c6564146d6f64756c655f6576656e745f656e61626c65641e6d6f64756c655f6576656e745f6d6967726174696f6e5f656e61626c6564246d756c74695f656432353531395f706b5f76616c69646174655f76325f656e61626c6564246d756c74695f656432353531395f706b5f76616c69646174655f76325f66656174757265196d756c74697369675f6163636f756e74735f656e61626c6564276d756c74697369675f76325f656e68616e63656d656e745f666561747572655f656e61626c65642c6e65775f6163636f756e74735f64656661756c745f746f5f66615f6170745f73746f72655f656e61626c6564286e65775f6163636f756e74735f64656661756c745f746f5f66615f73746f72655f656e61626c6564256f626a6563745f6e61746976655f646572697665645f616464726573735f656e61626c65640c6f6e5f6e65775f65706f63682a6f7065726174696f6e735f64656661756c745f746f5f66615f6170745f73746f72655f656e61626c6564236f70657261746f725f62656e65666963696172795f6368616e67655f656e61626c65641e6f726465726c6573735f7472616e73616374696f6e735f656e61626c6564217061727469616c5f676f7665726e616e63655f766f74696e675f656e61626c656427706572696f646963616c5f7265776172645f726174655f64656372656173655f656e61626c6564327072696d6172795f6170745f66756e6769626c655f73746f72655f61745f757365725f616464726573735f656e61626c65641c7265636f6e6669677572655f776974685f646b675f656e61626c6564177265736f757263655f67726f7570735f656e61626c65641e7368615f3531325f616e645f726970656d645f3136305f656e61626c6564207369676e65725f6e61746976655f666f726d61745f6669785f656e61626c65642c73706f6e736f7265645f6175746f6d617469635f6163636f756e745f6372656174696f6e5f656e61626c6564257472616e73616374696f6e5f636f6e746578745f657874656e73696f6e5f656e61626c65642a7472616e73616374696f6e5f73696d756c6174696f6e5f656e68616e63656d656e745f656e61626c65641774726561745f667269656e645f61735f7072697661746500000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631ef030501000000000000001045494e56414c49445f464541545552450002000000000000000d454150495f44495341424c45440003000000000000001b45464541545552455f43414e4e4f545f42455f44495341424c4544344465706c6f79656420746f2070726f64756374696f6e2c20616e642064697361626c696e6720697320646570726563617465642e0e0000000000000031454432353531395f5055424b45595f56414c49444154455f52455455524e5f46414c53455f57524f4e475f4c454e4754486d57686574686572206e61746976655f7075626c69635f6b65795f76616c69646174652061626f727473207768656e2061207075626c6963206b6579206f66207468652077726f6e67206c656e67746820697320676976656e0a204c69666574696d653a20657068656d6572616c590000000000000016454e41424c455f46554e4354494f4e5f56414c5545538b01576865746865722066756e6374696f6e2076616c7565732061726520656e61626c65642e0a204c69666574696d653a207472616e7369656e740a0a20576520646f206e6f7420657870656374207573652066726f6d204d6f76652c20736f20666f72206e6f77206f6e6c7920666f7220646f63756d656e746174696f6e20707572706f736573206865726500010a69735f656e61626c6564010100000201000a02010201000a020000000003200a010608000000000000001a0c0231010b0106080000000000000019332f0c030a020a00410223041b0b000b024202140b031c3100220c040b04020b0001090c0405190100000006330a010608000000000000001a0c0331010b0106080000000000000019332f0c040a002e41020a032504150a0031004402050b0b0204240b040c050b000b0343020c060a06140b051b0b06150231ff0b041d0c040b000b0343020c060a06140b041c0b061505230201000100050306460000000000000011030204010000050306010000000000000011052706010000050208020701000100050306420000000000000011030208010001000503060500000000000000110302090000000a390b010c030d0338000b030c040e0441070c050a050600000000000000002404190d0445070c060a000b060811010b05060100000000000000170c0505090b04460700000000000000000b020c070d0738000b070c080e0841070c050a050600000000000000002404340d0845070c060a000b060911010b05060100000000000000170c0505240b00010b0846070000000000000000020b0100010005030604000000000000001103020c010000050208020d0100010005030608000000000000001103020e010001000503060d000000000000001103020f010001000503062b0000000000000011030210010001000503065700000000000000110302110100010005030618000000000000001103021201000005050602000000000000000b00011113271401000200010e260a001115070021042107002901041507002c0113010c030d030b010b0211090b000b0312012d010207002900041e07002b001000140c03050c400200000000000000000c03050c0b000106010000000000000011162717000001000f510a001115070021044c0700290003490b004002000000000000000012002d0007002a000f000c030e010c040600000000000000000c050a0441070c060a050a062304290a040a0542070c070a030b07140811010b05060100000000000000160c0505170b04010e020c040600000000000000000c050a0441070c060a050a062304440a040a0542070c070a030b07140911010b05060100000000000000160c0505320b03010b0401020b0001050c0b00010601000000000000001116271801000100050306010000000000000011030219010001000503063c000000000000001103021a010000050209021b010001000503062a000000000000001103021c01000005030603000000000000001105271d0100010005030632000000000000001103021e0100010005030643000000000000001103021f0100000502080220010001000503060c0000000000000011030221010001000503064400000000000000110302220100010005030638000000000000001103022301000100050306150000000000000011030224010001000503060b0000000000000011030225010001000503063f000000000000001103022600000005090b0011150700210406020601000000000000001116272701000100050306160000000000000011030228010000050206460000000000000002290100000502065500000000000000022a01000005030601000000000000001105272b01000005030603000000000000001105272c0100000502060400000000000000022d01000005030603000000000000001105022e0100000502060800000000000000022f0100000502060d0000000000000002300100000502062b0000000000000002310100000502065700000000000000023201000005020618000000000000000233010000050206600000000000000002340100000502063c000000000000000235010000050206060000000000000002360100000502064f0000000000000002370100000502062a0000000000000002380100000503060300000000000000110527390100000502063200000000000000023a0100000502064300000000000000023b01000005030603000000000000001105023c0100000502060c00000000000000023d0100000502065b00000000000000023e0100000502064400000000000000023f01000005020638000000000000000240010000050206150000000000000002410100000502060b0000000000000002420100000502063f00000000000000024301000005020661000000000000000244010000050206310000000000000002450100000502065c0000000000000002460100000502062e000000000000000247010000050206360000000000000002480100000502062f0000000000000002490100000502063500000000000000024a0100000502061a00000000000000024b0100000502063900000000000000024c0100000502060a00000000000000024d0100000502063700000000000000024e0100000502065000000000000000024f010000050206400000000000000002500100000502065a0000000000000002510100000502063e00000000000000025201000005020641000000000000000253010000050206270000000000000002540100000502065e0000000000000002550100000502061100000000000000025601000005020610000000000000000257010000050206540000000000000002580100000503060100000000000000110527590100000502062d00000000000000025a0100000502060900000000000000025b0100000502060300000000000000025c0100000502061900000000000000025d0100000502062200000000000000025e0100000502063b00000000000000025f0100000502064e000000000000000260010000050206050000000000000002610100010005030655000000000000001103026201000100050306600000000000000011030263010001000503064f0000000000000011030264010001000503065b00000000000000110302650100010005030658000000000000001103026601000100050306610000000000000011030267010000050209020301000100010e07002900040b07002b0010000b0011000c010b0102090c01050968010001000503065c00000000000000110302690100010005030650000000000000001103026a0100010005030634000000000000001103026b0100010005030654000000000000001103026c0100010005030631000000000000001103026d010001000503062e000000000000001103026e0100010005030636000000000000001103026f010001000503062f000000000000001103027001000100050306350000000000000011030271010001000503061a0000000000000011030272010001000503063900000000000000110302730100010005030607000000000000001103027401000005020607000000000000000275010001000503060a00000000000000110302760100010005030637000000000000001103027701000100050306400000000000000011030278010001000503065a0000000000000011030279010001000503063e000000000000001103027a0100020001101e0a00112607002901041b07002c0113010c010700290004160b000107002a000f000c020b010b0215020b000b0112002d0005150b000105157b0100010005030641000000000000001103027c0100010005030627000000000000001103027d010001000503065e000000000000001103027e0100010005030611000000000000001103027f0100010005030610000000000000001103028001010001000503063d000000000000001103028101010001000503062d0000000000000011030282010100010005030609000000000000001103028301010001000503060300000000000000110302840101000100050306190000000000000011030285010100010005030622000000000000001103028601010001000503063b000000000000001103028701010001000503064e000000000000001103028801010001000503060200000000000000110302000000",
    "abi": {
      "address": "0x1",
      "name": "features",
      "friends": [],
      "exposed_functions": [
        {
          "name": "abort_if_multisig_payload_mismatch_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "aggregator_snapshots_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "aggregator_v2_api_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "aggregator_v2_is_at_least_api_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "allow_vm_binary_format_v6",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "aptos_stdlib_chain_id_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "auids_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "blake2b_256_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "bls12_381_structures_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "bn254_structures_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "bulletproofs_batch_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "bulletproofs_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "change_feature_flags",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u64>",
            "vector<u64>"
          ],
          "return": []
        },
        {
          "name": "change_feature_flags_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u64>",
            "vector<u64>"
          ],
          "return": []
        },
        {
          "name": "code_dependency_check_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "coin_to_fungible_asset_migration_feature_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "collect_and_distribute_gas_fees",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "commission_change_delegation_pool_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "concurrent_assets_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "concurrent_fungible_assets_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "concurrent_fungible_balance_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "concurrent_token_v2_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "cryptography_algebra_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "default_to_concurrent_fungible_balance_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "delegation_pool_allowlisting_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "delegation_pool_partial_governance_voting_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "delegation_pools_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "dispatchable_fungible_asset_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "fee_payer_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "get_abort_if_multisig_payload_mismatch_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_account_abstraction_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_aggregator_snapshots_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_aggregator_v2_api_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_aptos_stdlib_chain_id_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_auids",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_blake2b_256_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_bls12_381_strutures_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_bn254_strutures_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_bulletproofs_batch_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_bulletproofs_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_calculate_transaction_fee_for_distribution_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_coin_to_fungible_asset_migration_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_collect_and_distribute_gas_fees_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_collection_owner_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_commission_change_delegation_pool_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_concurrent_assets_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_concurrent_fungible_assets_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_concurrent_fungible_balance_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_concurrent_token_v2_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_cryptography_algebra_natives_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_default_account_resource_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_default_to_concurrent_fungible_balance_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_delegation_pool_allowlisting_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_delegation_pool_partial_governance_voting",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_delegation_pools_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_dispatchable_fungible_asset_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_distribute_transaction_fee_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_jwk_consensus_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_jwk_consensus_per_key_mode_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_keyless_accounts_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_keyless_accounts_with_passkeys_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_keyless_but_zkless_accounts_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_max_object_nesting_check_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_module_event_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_module_event_migration_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_multisig_accounts_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_multisig_v2_enhancement_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_native_memory_operations_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_new_accounts_default_to_fa_apt_store_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_new_accounts_default_to_fa_store_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_object_native_derived_address_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_operations_default_to_fa_apt_store_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_operator_beneficiary_change_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_orderless_transactions_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_partial_governance_voting",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_periodical_reward_rate_decrease_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_permissioned_signer_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_primary_apt_fungible_store_at_user_address_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_reconfigure_with_dkg_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_resource_groups_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_sha_512_and_ripemd_160_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_signer_native_format_fix_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_sponsored_automatic_account_creation",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_transaction_context_extension_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_transaction_simulation_enhancement_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_vm_binary_format_v6",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "is_account_abstraction_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_calculate_transaction_fee_for_distribution_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_collection_owner_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_default_account_resource_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_derivable_account_abstraction_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_distribute_transaction_fee_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_domain_account_abstraction_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_jwk_consensus_per_key_mode_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_native_memory_operations_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_object_code_deployment_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_permissioned_signer_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "jwk_consensus_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "keyless_accounts_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "keyless_accounts_with_passkeys_feature_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "keyless_but_zkless_accounts_feature_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "max_object_nesting_check_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "module_event_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "module_event_migration_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "multi_ed25519_pk_validate_v2_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "multi_ed25519_pk_validate_v2_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "multisig_accounts_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "multisig_v2_enhancement_feature_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new_accounts_default_to_fa_apt_store_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new_accounts_default_to_fa_store_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "object_native_derived_address_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "on_new_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "operations_default_to_fa_apt_store_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "operator_beneficiary_change_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "orderless_transactions_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "partial_governance_voting_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "periodical_reward_rate_decrease_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "primary_apt_fungible_store_at_user_address_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "reconfigure_with_dkg_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "resource_groups_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "sha_512_and_ripemd_160_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "signer_native_format_fix_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "sponsored_automatic_account_creation_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "transaction_context_extension_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "transaction_simulation_enhancement_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "treat_friend_as_private",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "Features",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "features",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "PendingFeatures",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "features",
              "type": "vector<u8>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0a01000402040403084f045714056b22078d019e0108ab022010cb0281010ccc0388010fd40404000000070106070000010000000100020001010001000300030001000400040001000500050001010806070001010907040001000a00080001000b00090001000c000a0001000d000b0001000e000c0001000f000d0001010001030104010501080109010a010b010c010d010a0201090000010501010108000106080001060a020104010d010f010e010301020866726f6d5f62637308746f5f62797465730a66726f6d5f62797465730a746f5f6164647265737307746f5f626f6f6c09746f5f737472696e6706537472696e6706737472696e6705627974657313696e7465726e616c5f636865636b5f7574663807746f5f7531323806746f5f75313607746f5f7532353606746f5f75333206746f5f75363405746f5f753803616e790c636f707961626c655f616e79000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76314e0101000000000000000d45494e56414c49445f55544638345554463820636865636b206661696c656420696e20636f6e76657273696f6e2066726f6d20627974657320746f20737472696e6700000001000002030b00380002010302000201000002030b003801020301000002030b0038020204010000050b0b0038030c010e011105110604090b0102060100000000000000270701000002030b003804020801000002030b003805020901000002030b003806020a01000002030b003807020b01000002030b003808020c01000002030b003809020010001100",
    "abi": {
      "address": "0x1",
      "name": "from_bcs",
      "friends": [
        "0x1::any",
        "0x1::copyable_any"
      ],
      "exposed_functions": [
        {
          "name": "to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "from_bytes",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "to_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "to_bool",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "to_string",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "to_u128",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "to_u16",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "u16"
          ]
        },
        {
          "name": "to_u256",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "u256"
          ]
        },
        {
          "name": "to_u32",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "u32"
          ]
        },
        {
          "name": "to_u64",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "to_u8",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "u8"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b01000802080c0314ce0104e2011005f201a201079403f5030889072010a907cd040af60b140c8a0cb7090dc1150c00000007000f001d000104000106070200000000000a00010001010b030102040401000c05060001000d07060001000e060400010210050500010011050600010012080500010113090a0204040102140505000101150c040204040100160e05000100170f050001001810050001000312050001001900050001000500050001001a0e050001001b080500010111041402040401001c08050001031e1511010001031f1617010001011f0918020404010020080500010008121a00010021120500010122031b0204040100230f05000100041205000100241c04000100251d040001010208020a021302150b160b17021b020206080005010102050302060b01020900090106090000010301080002030303070800050302070b01020900090106090001070901010503070b010209000901090009010307030303020608000303060800030304060800030303020103010608000303030703010b01020900090102060a090006090002070a090003010900020900090104070303070303010a050106090104070800050503020708000301070308706f6f6c5f75363404506f6f6c127368617265686f6c646572735f6c696d69740b746f74616c5f636f696e730c746f74616c5f736861726573067368617265730953696d706c654d61700a73696d706c655f6d61700c7368617265686f6c646572730e7363616c696e675f666163746f7208636f6e7461696e730c636f6e7461696e735f6b6579036e65771a6372656174655f776974685f7363616c696e675f666163746f720d64657374726f795f656d707479056572726f720d696e76616c69645f7374617465066372656174650a6164645f7368617265730a626f72726f775f6d757410696e76616c69645f617267756d656e740361646410616d6f756e745f746f5f73686172657321616d6f756e745f746f5f7368617265735f776974685f746f74616c5f636f696e73146d756c7469706c795f7468656e5f6469766964650762616c616e6365107368617265735f746f5f616d6f756e74066275795f696e0d6465647563745f73686172657306766563746f7208696e6465785f6f660672656d6f76650d72656465656d5f736861726573127368617265686f6c646572735f636f756e7406626f72726f77217368617265735f746f5f616d6f756e745f776974685f746f74616c5f636f696e730f7472616e736665725f736861726573127570646174655f746f74616c5f636f696e73000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631990407010000000000000016455348415245484f4c4445525f4e4f545f464f554e44205368617265686f6c646572206e6f742070726573656e7420696e20706f6f6c2e02000000000000001645544f4f5f4d414e595f5348415245484f4c444552532c54686572652061726520746f6f206d616e79207368617265686f6c6465727320696e2074686520706f6f6c2e03000000000000001245504f4f4c5f49535f4e4f545f454d5054591e43616e6e6f742064657374726f79206e6f6e2d656d70747920706f6f6c2e04000000000000001445494e53554646494349454e545f5348415245533f43616e6e6f742072656465656d206d6f726520736861726573207468616e20746865207368617265686f6c6465722068617320696e2074686520706f6f6c2e05000000000000001c455348415245484f4c4445525f5348415245535f4f564552464c4f57315368617265686f6c6465722063616e6e6f742068617665206d6f7265207468616e207536342e6d6178207368617265732e06000000000000001a45504f4f4c5f544f54414c5f434f494e535f4f564552464c4f5729506f6f6c277320746f74616c20636f696e732063616e6e6f7420657863656564207536342e6d61782e07000000000000001b45504f4f4c5f544f54414c5f5348415245535f4f564552464c4f572a506f6f6c277320746f74616c207368617265732063616e6e6f7420657863656564207536342e6d61782e0000000206020303030403050b01020503080a0509030001000004050b0010000e013800020201000004040b000601000000000000001103020401000004120e0010011406000000000000000021040f0b001300010101010101020603000000000000001105270601000004030b00110202070000000d440a002e0a01110004220b000f000e0138010c030a03140c0406ffffffffffffffff0a04170a0226041d0b040b02160a03150b03140c050b05020b03010605000000000000001109270a0206000000000000000024043f0a001002410b0a0010031423043a0a000f020a01440b0b000f000b010a0238020b020c05051b0b00010602000000000000001105270b00010b020c05051b0b01000004070a000b010b00100114110c020c01000011220a0010011406000000000000000021041b080c030b0304120b010b00100414180c040b04020a000b010b001005140b02110d0c0405100a00100514060000000000000000210c0305080e01000004040b00100114020f01000005080a000b0111100c020b000b021111021201000013440a020600000000000000002104080b0001060000000000000000020a002e0a02110b0c0306ffffffffffffffff0a00100114170a0226043f06ffffffffffffffff0a00100514170a0326043a0b020c040a000f010c050a05140b04160b05150a030c040a000f050c050a05140b04160b05150b000b010a031107010b03020b00010606000000000000001109270b00010606000000000000001109270301000004080b000600000000000000000600000000000000003803400b00000000000000000b011200021400000019420a002e0a011100043d0a002e0a0111100a022604380a000f000e0138010c030b020c040a030c050a05140b04170b05150b03140c040a040600000000000000002104350a0010020e0138040c06010a000f020b063805010b000f000e01380601010b04020b000105330b00010604000000000000001109270b00010601000000000000001109270d01000004130b00010a030600000000000000002204100b01350b0235180b03351a34020604000000000000001109271801000013400a002e0a011100043b0a002e0a0111100a022604360a020600000000000000002104140b0001060000000000000000020a002e0a0211110c030a030c040a000f010c050a05140b04170b05150a020c040a000f050c050a05140b04170b05150b000b010b021114010b03020b00010604000000000000001109270b00010601000000000000001109271901000004040b00100214021a01000004040b001002410b021001000005110a000a011100040c0b0010000e013807140c020b02020b00010600000000000000000c02050a1101000004070a000b010b00100114111c021c01000011200a00100114060000000000000000210419080c030b0304100b00010600000000000000000c040b04020a000b010b020b00100514110d0c04050e0a00100514060000000000000000210c0305081d01000004040b00100514021e01000004280a002e0a01110004230a002e0a0111100a0326041e0a030600000000000000002104130b0001020a000b010a031114010b000b020b03110701020b00010604000000000000001109270b00010601000000000000001109271f0100001e070b000f010c020b010b02150200030001000400000005000200",
    "abi": {
      "address": "0x1",
      "name": "pool_u64",
      "friends": [],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool",
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::pool_u64::Pool"
          ]
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::pool_u64::Pool"
          ],
          "return": []
        },
        {
          "name": "create",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::pool_u64::Pool"
          ]
        },
        {
          "name": "amount_to_shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "amount_to_shares_with_total_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool",
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "total_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "balance",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool",
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "buy_in",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::pool_u64::Pool",
            "address",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "create_with_scaling_factor",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "0x1::pool_u64::Pool"
          ]
        },
        {
          "name": "multiply_then_divide",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool",
            "u64",
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "redeem_shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::pool_u64::Pool",
            "address",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "shareholders",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool"
          ],
          "return": [
            "vector<address>"
          ]
        },
        {
          "name": "shareholders_count",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool",
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "shares_to_amount",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "shares_to_amount_with_total_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool",
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "total_shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "transfer_shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::pool_u64::Pool",
            "address",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "update_total_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::pool_u64::Pool",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Pool",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "shareholders_limit",
              "type": "u64"
            },
            {
              "name": "total_coins",
              "type": "u64"
            },
            {
              "name": "total_shares",
              "type": "u64"
            },
            {
              "name": "shares",
              "type": "0x1::simple_map::SimpleMap<address, u64>"
            },
            {
              "name": "shareholders",
              "type": "vector<address>"
            },
            {
              "name": "scaling_factor",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b010004020404030824052c0d0739c8010881022010a102780a9903160caf037611a5041113b604040000000800010300000400010001010903030001000a00010001000b00010001000300010001000c000400010106080001060a02000103010109617574685f64617461134162737472616374696f6e4175746844617461025631066469676573740d61757468656e74696361746f720b446572697661626c6556311261627374726163745f7369676e61747572651361627374726163745f7075626c69635f6b6579056572726f7210696e76616c69645f617267756d656e741d646572697661626c655f61627374726163745f7075626c69635f6b65791c646572697661626c655f61627374726163745f7369676e61747572650c69735f646572697661626c65000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76314502010000000000000016454e4f545f524547554c41525f415554485f4441544100020000000000000018454e4f545f444552495641424c455f415554485f444154410000000003020202030a02040a020503030a02060a02070a0200010000020b0a00560004060b004e00020b000106010000000000000011012702010000020b0a00560104060b004e01020b000106020000000000000011012703010000020b0a00560104060b004e02020b00010601000000000000001101270401000002030b004e03020501000002030b0056010200010100000201010001010100000200010000000100",
    "abi": {
      "address": "0x1",
      "name": "auth_data",
      "friends": [],
      "exposed_functions": [
        {
          "name": "authenticator",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::auth_data::AbstractionAuthData"
          ],
          "return": [
            "&vector<u8>"
          ]
        },
        {
          "name": "derivable_abstract_public_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::auth_data::AbstractionAuthData"
          ],
          "return": [
            "&vector<u8>"
          ]
        },
        {
          "name": "derivable_abstract_signature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::auth_data::AbstractionAuthData"
          ],
          "return": [
            "&vector<u8>"
          ]
        },
        {
          "name": "digest",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::auth_data::AbstractionAuthData"
          ],
          "return": [
            "&vector<u8>"
          ]
        },
        {
          "name": "is_derivable",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::auth_data::AbstractionAuthData"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "AbstractionAuthData",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": []
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0a01000c020c0c031849046102056337079a01c70208e10320108104f5030af607090cff07fc01000000040007000c000f0011000107000103070002090200000600010001020800030001000a04010001020b04050001030d06060001000e08000001041009000100010512000000010213040600010114040b00010215040a000100160d0100010601010a0201080000010802010708020101010302080208000106080001060900010201080107070802030a08010301020a0801020a080102096d756c74695f6b6579084d756c74694b65790b7075626c69635f6b6579730c416e795075626c69634b65790a73696e676c655f6b6579137369676e6174757265735f7265717569726564196e65775f7075626c69635f6b65795f66726f6d5f62797465730a6263735f73747265616d036e65770942435353747265616d15646573657269616c697a655f6d756c74695f6b65790d6861735f72656d61696e696e67056572726f7210696e76616c69645f617267756d656e7415746f5f61757468656e7469636174696f6e5f6b65790362637308746f5f6279746573046861736808736861335f32353613646573657269616c697a655f756c65623132381a646573657269616c697a655f616e795f7075626c69635f6b65790e646573657269616c697a655f75381e6e65775f6d756c74695f6b65795f66726f6d5f73696e676c655f6b657973000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631c1030401000000000000001b455f494e56414c49445f4d554c54495f4b45595f4e4f5f4b4559533a4e6f206b65797320776572652070726f7669646564207768656e206372656174696e672061204d756c74694b6579207075626c6963206b65792e020000000000000021455f494e56414c49445f4d554c54495f4b45595f544f4f5f4d414e595f4b45595340546865206e756d626572206f66206b6579732070726f76696465642069732067726561746572207468616e20746865206d6178696d756d20616c6c6f7765642e030000000000000027455f494e56414c49445f4d554c54495f4b45595f5349474e4154555245535f52455155495245444e546865206e756d626572206f66207369676e6174757265732072657175697265642069732067726561746572207468616e20746865206e756d626572206f66206b6579732070726f76696465642e04000000000000001f455f494e56414c49445f4d554c54495f4b45595f45585452415f42595445534c54686572652061726520657874726120627974657320696e2074686520696e707574207768656e20646573657269616c697a696e672061204d756c74694b6579207075626c6963206b65792e0000000202020a0801050200010000070e0b0011010c010d0111020c020d011103030b0b02020604000000000000001104270501000000090b0038000c010d013103440a0b01110702020100000c270a000c010a0111080c02400b00000000000000000c030600000000000000000c04090c050a0504210b04060100000000000000160c040a040a0223041a0d030a011109440b050b0b01010b030b00110a120002080c0505110b0101051c0b010000061d0e00410b0c020a0206000000000000000024041a0a020620000000000000002504170a01340b022504140b000b0112000206030000000000000011042706020000000000000011042706010000000000000011042700",
    "abi": {
      "address": "0x1",
      "name": "multi_key",
      "friends": [],
      "exposed_functions": [
        {
          "name": "new_public_key_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::multi_key::MultiKey"
          ]
        },
        {
          "name": "to_authentication_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_key::MultiKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "deserialize_multi_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "0x1::multi_key::MultiKey"
          ]
        },
        {
          "name": "new_multi_key_from_single_keys",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::single_key::AnyPublicKey>",
            "u8"
          ],
          "return": [
            "0x1::multi_key::MultiKey"
          ]
        }
      ],
      "structs": [
        {
          "name": "MultiKey",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "public_keys",
              "type": "vector<0x1::single_key::AnyPublicKey>"
            },
            {
              "name": "signatures_required",
              "type": "u8"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b01000602060e031438044c04055042079201fa01088c032010ac03ab030ad7060c0ce306da010dbd080400000005000a0001070000030700020907010000000400010001010604040001000705000001000806070001000b08090001020c0a0b010001020d030b010001000e000d0001000f0e00000105010601010a02010800010200010301060800030a0202060801010b02010800030a02020a02020a0201010900010b0201090006010101010a020b020108000108010106080109736563703235366b311145434453415261775075626c69634b65790562797465730e45434453415369676e61747572652265636473615f7261775f7075626c69635f6b65795f66726f6d5f36345f6279746573056572726f7210696e76616c69645f617267756d656e741d65636473615f7261775f7075626c69635f6b65795f746f5f62797465730d65636473615f7265636f766572064f7074696f6e066f7074696f6e1665636473615f7265636f7665725f696e7465726e616c04736f6d65046e6f6e651a65636473615f7369676e61747572655f66726f6d5f62797465731865636473615f7369676e61747572655f746f5f6279746573000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631f7020201000000000000000d455f444553455249414c495a454b416e206572726f72206f63637572726564207768696c6520646573657269616c697a696e672c20666f72206578616d706c652064756520746f2077726f6e6720696e7075742073697a652e020000000000000011455f4241445f5245434f564552595f4944f6015265636f76657279204944206e6565647320746f2062652065697468657220302c20312c2032206f7220332e20496620796f7520617265207265636f766572696e672066726f6d20616e2028722c20732c20762920457468657265756d207369676e61747572652c2074616b652069747320762076616c756520616e642c2073657420746865207265636f766572795f696420617320666f6c6c6f77733a2069662076203d3d2032372c2073657420746f20302c2069662076203d3d2032382c2073657420746f20312c2069662076203d3d2033372c2073657420746f20302c2069662076203d3d2033382c2073657420746f20312e0000000201020a02010201020a0200010000030b0e0041020640000000000000002104080b001200020601000000000000001101270201000003040b0010001402030100000c370a0131002204340a013101220c030b0304310a013102220c040b04042e0a013103220c050b05041b0b02010602000000000000001101270b000b010b0210011411040c060c070b06042b0b07110038000c080b080238010c080529090c050514090c04050e090c0305080400020007010000030b0e0041020640000000000000002104080b001201020601000000000000001101270801000003040b00100114020000010000",
    "abi": {
      "address": "0x1",
      "name": "secp256k1",
      "friends": [],
      "exposed_functions": [
        {
          "name": "ecdsa_raw_public_key_from_64_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::secp256k1::ECDSARawPublicKey"
          ]
        },
        {
          "name": "ecdsa_raw_public_key_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::secp256k1::ECDSARawPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "ecdsa_recover",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "u8",
            "&0x1::secp256k1::ECDSASignature"
          ],
          "return": [
            "0x1::option::Option<0x1::secp256k1::ECDSARawPublicKey>"
          ]
        },
        {
          "name": "ecdsa_signature_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::secp256k1::ECDSASignature"
          ]
        },
        {
          "name": "ecdsa_signature_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::secp256k1::ECDSASignature"
          ],
          "return": [
            "vector<u8>"
          ]
        }
      ],
      "structs": [
        {
          "name": "ECDSARawPublicKey",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "ECDSASignature",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0a010004020404030812051a0f07297a08a3012010c30198010adb02060ce102330d9403020000000400010700000300010001010504040001000605000001010a02010800010200010301060800097365637032353672311145434453415261775075626c69634b65790562797465732265636473615f7261775f7075626c69635f6b65795f66726f6d5f36345f6279746573056572726f7210696e76616c69645f617267756d656e741d65636473615f7261775f7075626c69635f6b65795f746f5f6279746573000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631650101000000000000000d455f444553455249414c495a454b416e206572726f72206f63637572726564207768696c6520646573657269616c697a696e672c20666f72206578616d706c652064756520746f2077726f6e6720696e7075742073697a652e0000000201020a0200010000030b0e0041020640000000000000002104080b001200020601000000000000001101270201000003040b0010001402000000",
    "abi": {
      "address": "0x1",
      "name": "secp256r1",
      "friends": [],
      "exposed_functions": [
        {
          "name": "ecdsa_raw_public_key_from_64_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::secp256r1::ECDSARawPublicKey"
          ]
        },
        {
          "name": "ecdsa_raw_public_key_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::secp256r1::ECDSARawPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        }
      ],
      "structs": [
        {
          "name": "ECDSARawPublicKey",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c010006020604030a2a0534150749c501088e022006ae024410f202de010ad004050cd5049c010df105020ff3050200000006000a00010800000300010001000400010001000502000001010702000001000804000001010902000001020b0101000100010301060c01080003060c0503030708000307030974696d657374616d701743757272656e7454696d654d6963726f7365636f6e64730c6d6963726f7365636f6e6473106e6f775f6d6963726f7365636f6e64730b6e6f775f7365636f6e6473147365745f74696d655f6861735f737461727465641073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b127570646174655f676c6f62616c5f74696d65096173736572745f766d056572726f7210696e76616c69645f617267756d656e740767656e657369730000000000000000000000000000000000000000000000000000000000000001052000000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000014636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631aa010201000000000000000e454e4f545f4f5045524154494e472f54686520626c6f636b636861696e206973206e6f7420696e20616e206f7065726174696e672073746174652079657402000000000000001245494e56414c49445f54494d455354414d5021416e20696e76616c69642074696d657374616d70207761732070726f766964656400020b6e6f775f7365636f6e6473010100106e6f775f6d6963726f7365636f6e647301010000020102030001000100000507002b00100014020101000100000411000640420f00000000001a020203000003090a00110306000000000000000012000c010b000b012d0002040100010005280b00110507002a000c030a031000140c040b0107012104180b03010b040b022104150514020602000000000000001106270b040a022304230b030f000c050b020b051505140b03010602000000000000001106270000000c00",
    "abi": {
      "address": "0x1",
      "name": "timestamp",
      "friends": [
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "now_microseconds",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "now_seconds",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "set_time_has_started",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "update_global_time",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "CurrentTimeMicroseconds",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "microseconds",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b01000a020a08031246045802055a1d0777d10108c8022010e8025a0ac2030b0ccd03540da10406000000060008000c001000010700040f0700000200010001000502030001010702040001020905050001000a02030001000300060001000b0705010001030d0705010001000400060001000e02090100010011020a010001070801060800010500010201010103010a020106090001090001080101080009747970655f696e666f0854797065496e666f0f6163636f756e745f616464726573730b6d6f64756c655f6e616d650b7374727563745f6e616d6508636861696e5f69640866656174757265731d6170746f735f7374646c69625f636861696e5f69645f656e61626c6564056572726f720d696e76616c69645f737461746511636861696e5f69645f696e7465726e616c0b73697a655f6f665f76616c036263730f73657269616c697a65645f73697a6509747970655f6e616d6506537472696e6706737472696e6707747970655f6f66000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631270101000000000000001a455f4e41544956455f46554e5f4e4f545f415641494c41424c450000000002030205030a02040a020001000002040b001000140201010000020711020305060100000000000000110327110402040002000501000002040b00100114020601000002030b003800020801000002040b0010021402090102000a01020000000001000200",
    "abi": {
      "address": "0x1",
      "name": "type_info",
      "friends": [],
      "exposed_functions": [
        {
          "name": "account_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::type_info::TypeInfo"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "chain_id",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u8"
          ]
        },
        {
          "name": "module_name",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::type_info::TypeInfo"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "size_of_val",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "struct_name",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::type_info::TypeInfo"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "type_name",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "type_of",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::type_info::TypeInfo"
          ]
        }
      ],
      "structs": [
        {
          "name": "TypeInfo",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account_address",
              "type": "address"
            },
            {
              "name": "module_name",
              "type": "vector<u8>"
            },
            {
              "name": "struct_name",
              "type": "vector<u8>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0a01000202020403061e05240f07333c086f20108f01cc020adb03090ce4031c0d8004020000000104000005000100010006020100010004030400010007030400010008020100010108000002070800040106080001040a61676772656761746f720a41676772656761746f720668616e646c65036b6579056c696d69740764657374726f7903616464047265616403737562000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76319802030100000000000000144541474752454741544f525f4f564552464c4f57395468652076616c7565206f662061676772656761746f72206f766572666c6f77732e20526169736564206279206e617469766520636f64652e0200000000000000154541474752454741544f525f554e444552464c4f574c5468652076616c7565206f662061676772656761746f7220756e646572666c6f77732028676f65732062656c6f77207a65726f292e20526169736564206279206e617469766520636f64652e03000000000000000e454e4f545f535550504f525445443b41676772656761746f722066656174757265206973206e6f7420737570706f727465642e20526169736564206279206e617469766520636f64652e000000020302050305040400010200010102000201000001040b00100014020301020004010200000200",
    "abi": {
      "address": "0x1",
      "name": "aggregator",
      "friends": [],
      "exposed_functions": [
        {
          "name": "destroy",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::aggregator::Aggregator"
          ],
          "return": []
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::aggregator::Aggregator",
            "u128"
          ],
          "return": []
        },
        {
          "name": "limit",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::aggregator::Aggregator"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "read",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::aggregator::Aggregator"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::aggregator::Aggregator",
            "u128"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Aggregator",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "handle",
              "type": "address"
            },
            {
              "name": "key",
              "type": "address"
            },
            {
              "name": "limit",
              "type": "u128"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d01001002103203429a0104dc011405f001cd0107bd03b30408f007200690085910e908ae020a970b1a0cb10bcc030dfd0e060f830f020000000a000d000f0016001a0020002300010800000304000005080000070800010905010001010c0501000103110700011305010001011804010001061f07010000000b00010001020e00020001031003040001011206070100010114080201000100150a0200010417000b000101150c0d01000101190e02010001051b0f0f0001001c00020001011c1102010001001d00020001001e0b12000106211314010001062213150100010724171801000100251a02000100261c02000102270002000105280f0f00010629021e010001062a181e010001002b0014000103050405070508050b050e0f0f0f1016150f160f01060c020b050108000b0401080000010a0201080601080005060c080608060201030b050109000b070109000b04010900010b07010900020b040108000b0501080003060c050301050203060b04010900010b0801090002050b0801090001030305060b040108000b08010800010b04010900010b09010301060b0901090001010106090001080102070a090003010900030b090103030b0401080003060c060c0b04010800010b08010800020c0505070a0801060a080103030801010b0901090004060a080103030b0901030a6170746f735f636f696e094170746f73436f696e0b64756d6d795f6669656c641744656c6567617465644d696e744361706162696c69747902746f0b44656c65676174696f6e7305696e6e65720c4d696e7443617053746f7265086d696e745f6361700e4d696e744361706162696c69747904636f696e0a696e697469616c697a650e4275726e4361706162696c6974791073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b06737472696e67047574663806537472696e6725696e697469616c697a655f776974685f706172616c6c656c697a61626c655f737570706c7910467265657a654361706162696c6974791264657374726f795f667265657a655f636170046d696e74067369676e65720a616464726573735f6f6604436f696e076465706f736974056572726f72096e6f745f666f756e641064657374726f795f6d696e745f63617015636c61696d5f6d696e745f6361706162696c6974790f66696e645f64656c65676174696f6e064f7074696f6e066f7074696f6e0769735f736f6d6506626f72726f7706766563746f720b737761705f72656d6f76651b636f6e6669677572655f6163636f756e74735f666f725f746573741864656c65676174655f6d696e745f6361706162696c697479146173736572745f636f72655f7265736f7572636510696e76616c69645f617267756d656e74046e6f6e6504736f6d65136861735f6d696e745f6361706162696c6974790767656e6573697300000000000000000000000000000000000000000000000000000000000000010a020b0a4170746f7320436f696e0a020403415054052000000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000a550c1814636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631fa0103010000000000000010454e4f5f4341504142494c4954494553254163636f756e7420646f6573206e6f742068617665206d696e74206361706162696c69747902000000000000001245414c52454144595f44454c454741544544444d696e74206361706162696c6974792068617320616c7265616479206265656e2064656c65676174656420746f20746869732073706563696669656420616464726573730300000000000000154544454c45474154494f4e5f4e4f545f464f554e443943616e6e6f742066696e642064656c65676174696f6e206f66206d696e74206361706162696c69747920746f2074686973206163636f756e74000000020102010102010405020201060a0801030201080b040108000003000009120a0011010a00070011020701110231080838000c010b000a0112032d0338010b0102050104010310150b0011060c030a03290304120b032b0310000c040b020b0438020c050b010b053803020601000000000000001109270a0300010302070b00110107022c0313033804020c010402020319200a001106110d0c010e013805041c0e013806140c0207032a020f010b02380713010107032b031000140c030b000b0312032d03020b000106030000000000000027110300001b130b00110106ffffffffffffffff0e0238020c030a0111060b0338030a010b0212032d030b014016000000000000000012022d020212010401021d2f0e00111307032a020f010c020a022e0c030600000000000000000c040a0341160c050a040a052304260a030a0442161002140a0122041f0b04060100000000000000160c04050e0b02010b03010602000000000000001114270b03010b0112010c060b020b064416020d000001021f2607032b0210010c010600000000000000000c020a0141160c0338080c040a020a032304230a010a0242161002140a0021041e0b01010b0238090c040b04020b02060100000000000000160c02050b0b0101051c1701000002040b001106290302030002000100002c00",
    "abi": {
      "address": "0x1",
      "name": "aptos_coin",
      "friends": [
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::coin::BurnCapability<0x1::aptos_coin::AptosCoin>",
            "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>"
          ]
        },
        {
          "name": "mint",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "destroy_mint_cap",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "claim_mint_capability",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "configure_accounts_for_test",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer",
            "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>"
          ],
          "return": []
        },
        {
          "name": "delegate_mint_capability",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "has_mint_capability",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "AptosCoin",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "DelegatedMintCapability",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "to",
              "type": "address"
            }
          ]
        },
        {
          "name": "Delegations",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "inner",
              "type": "vector<0x1::aptos_coin::DelegatedMintCapability>"
            }
          ]
        },
        {
          "name": "MintCapStore",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "mint_cap",
              "type": "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0801000803085c04640205660f0775830208f802201098038b010ca30491010000000200040011000100000001010301020001020503030001000600000001000700000001000800000001010901020001000a00000001000b00000001000c00000001000d00000001000e00000001000f0003000100100403010001031204000100010e05010a020001010103010609000109000a6170746f735f686173680b626c616b6532625f32353608666561747572657313626c616b6532625f3235365f656e61626c6564056572726f720d696e76616c69645f737461746514626c616b6532625f3235365f696e7465726e616c096b656363616b32353609726970656d643136301e7368615f3531325f616e645f726970656d645f3136305f656e61626c656412726970656d643136305f696e7465726e616c08736861325f35313211736861325f3531325f696e7465726e616c08736861335f35313211736861335f3531325f696e7465726e616c087369705f68617368137369705f686173685f66726f6d5f76616c75650362637308746f5f6279746573000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631580101000000000000001a455f4e41544956455f46554e5f4e4f545f415641494c41424c453141206e65776c792d6164646564206e61746976652066756e6374696f6e206973206e6f742079657420656e61626c65642e0000000100000108110103050601000000000000001102270b001103020300020004010200050100000108110603050601000000000000001102270b0011070207000200080100000108110603050601000000000000001102270b00110902090002000a0100000108110603050601000000000000001102270b00110b020b0002000c0102000d01000001040b003800110c0200",
    "abi": {
      "address": "0x1",
      "name": "aptos_hash",
      "friends": [],
      "exposed_functions": [
        {
          "name": "blake2b_256",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "keccak256",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "ripemd160",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "sha2_512",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "sha3_512",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "sip_hash",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "sip_hash_from_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0"
          ],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b01000a020a0803126d047f020581014d07ce01cc02089a042010ba04ce010a8806080c900699120da91804000000060008000a001000010200040f070000040001000100050304000101070607010101020900040001030b08080001000c030a0001030d08080001000e030c00010011030800010412000c00010013030e0001001403100001001503110001001612020001001703130001001803080001001903050001001a030a00010205010a0201080000010708000105010203060a09000303010a0900010302060a0203010103020703010108010303060a0203010403060a02030703010d010f020a0203010e0703020207030303010a6263735f73747265616d0942435353747265616d046461746103637572036e657713646573657269616c697a655f6164647265737306766563746f7205736c6963650866726f6d5f6263730a746f5f61646472657373056572726f720c6f75745f6f665f72616e676510646573657269616c697a655f626f6f6c10696e76616c69645f617267756d656e7412646573657269616c697a655f737472696e6706537472696e6706737472696e6713646573657269616c697a655f756c6562313238047574663810646573657269616c697a655f753132380f646573657269616c697a655f75313610646573657269616c697a655f7532353616646573657269616c697a655f753235365f656e7472790f646573657269616c697a655f7533320f646573657269616c697a655f7536340e646573657269616c697a655f75380d6861735f72656d61696e696e67000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76319a010201000000000000000f454d414c464f524d45445f444154412a546865206461746120646f6573206e6f74206669742074686520657870656374656420666f726d61742e02000000000000000d454f55545f4f465f42595445533d546865726520617265206e6f7420656e6f75676820627974657320746f20646573657269616c697a6520666f722074686520676976656e20747970652e0000000202020a0203030001000002040b000600000000000000001200020101000009230a0010000c010a001001140c020a02062000000000000000160a01410525041c0b010a020a0206200000000000000016380011030b02062000000000000000160b000f0115020b00010b0101060200000000000000110427050100000b300a001001140a001000410523042b0a0010000a001001144205140c010b000f010c020a0214060100000000000000160b02150a013100210421090c030b03020b013101210428080c03051f0601000000000000001106270b0001060200000000000000110427070100000d260a0011080c010a0010000c020a001001140c030a030a01160a02410525041f0b020a030a030a0116380011090b030b01160b000f0115020b00010b02010602000000000000001104270a0100000fba010a0010000c010a001001140c020a02061000000000000000160a0141052504b3010a010a02420514350a010a02060100000000000000164205143531082f1b0a010a02060200000000000000164205143531102f1b0a010a02060300000000000000164205143531182f1b0a010a02060400000000000000164205143531202f1b0a010a02060500000000000000164205143531282f1b0a010a02060600000000000000164205143531302f1b0a010a02060700000000000000164205143531382f1b0a010a02060800000000000000164205143531402f1b0a010a02060900000000000000164205143531482f1b0a010a02060a00000000000000164205143531502f1b0a010a02060b00000000000000164205143531582f1b0a010a02060c00000000000000164205143531602f1b0a010a02060d00000000000000164205143531682f1b0a010a02060e00000000000000164205143531702f1b0b010b02060f00000000000000164205143531782f1b0b000f010c030a0314061000000000000000160b0315020b00010b01010602000000000000001104270b0100000f2e0a0010000c010a001001140c020a02060200000000000000160a0141052504270a010a024205144b0b010b02060100000000000000164205144b31082f1b0b000f010c030a0314060200000000000000160b0315020b00010b01010602000000000000001104270c0100000fda020a0010000c010a001001140c020a02062000000000000000160a0141052504d3020a010a024205144d0a010a02060100000000000000164205144d31082f1b0a010a02060200000000000000164205144d31102f1b0a010a02060300000000000000164205144d31182f1b0a010a02060400000000000000164205144d31202f1b0a010a02060500000000000000164205144d31282f1b0a010a02060600000000000000164205144d31302f1b0a010a02060700000000000000164205144d31382f1b0a010a02060800000000000000164205144d31402f1b0a010a02060900000000000000164205144d31482f1b0a010a02060a00000000000000164205144d31502f1b0a010a02060b00000000000000164205144d31582f1b0a010a02060c00000000000000164205144d31602f1b0a010a02060d00000000000000164205144d31682f1b0a010a02060e00000000000000164205144d31702f1b0a010a02060f00000000000000164205144d31782f1b0a010a02061000000000000000164205144d31802f1b0a010a02061100000000000000164205144d31882f1b0a010a02061200000000000000164205144d31902f1b0a010a02061300000000000000164205144d31982f1b0a010a02061400000000000000164205144d31a02f1b0a010a02061500000000000000164205144d31a82f1b0a010a02061600000000000000164205144d31b02f1b0a010a02061700000000000000164205144d31b82f1b0a010a02061800000000000000164205144d31c02f1b0a010a02061900000000000000164205144d31c82f1b0a010a02061a00000000000000164205144d31d02f1b0a010a02061b00000000000000164205144d31d82f1b0a010a02061c00000000000000164205144d31e02f1b0a010a02061d00000000000000164205144d31e82f1b0a010a02061e00000000000000164205144d31f02f1b0b010b02061f00000000000000164205144d31f82f1b0b000f010c030a0314062000000000000000160b0315020b00010b01010602000000000000001104270d01040001080b000b0112000c020d02110c01020e0100000f420a0010000c010a001001140c020a02060400000000000000160a01410525043b0a010a024205144c0a010a02060100000000000000164205144c31082f1b0a010a02060200000000000000164205144c31102f1b0b010b02060300000000000000164205144c31182f1b0b000f010c030a0314060400000000000000160b0315020b00010b01010602000000000000001104270f0100000f6a0a0010000c010a001001140c020a02060800000000000000160a0141052504630a010a02420514340a010a02060100000000000000164205143431082f1b0a010a02060200000000000000164205143431102f1b0a010a02060300000000000000164205143431182f1b0a010a02060400000000000000164205143431202f1b0a010a02060500000000000000164205143431282f1b0a010a02060600000000000000164205143431302f1b0b010b02060700000000000000164205143431382f1b0b000f010c030a0314060800000000000000160b0315020b00010b010106020000000000000011042710010000091e0a0010000c010a001001140c020a020a0141052304170b010a024205140b02060100000000000000160b000f0115020b00010b01010602000000000000001104270801000014640600000000000000000c0131000c020a001001140a001000410523045f0a0010000a001001144205140c030a000f010c040a0414060100000000000000160b04150a03317f1c340c050a050a022f0a02300a0522042f0b00010601000000000000001106270a050a022f0c060b010b061b0c010b0331801c31002104510b00010b02310024044e0b05060000000000000000210c070b07044c0601000000000000001106270b0102090c0705470b023107160c020a02314024035a05040b00010601000000000000001106270b00010602000000000000001104271101000002080a001001140b001000410523020000000100",
    "abi": {
      "address": "0x1",
      "name": "bcs_stream",
      "friends": [],
      "exposed_functions": [
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::bcs_stream::BCSStream"
          ]
        },
        {
          "name": "deserialize_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "deserialize_bool",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "deserialize_string",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "deserialize_u128",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "deserialize_u16",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "u16"
          ]
        },
        {
          "name": "deserialize_u256",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "u256"
          ]
        },
        {
          "name": "deserialize_u256_entry",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "deserialize_u32",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "u32"
          ]
        },
        {
          "name": "deserialize_u64",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "deserialize_u8",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "u8"
          ]
        },
        {
          "name": "deserialize_uleb128",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "has_remaining",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "BCSStream",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "data",
              "type": "vector<u8>"
            },
            {
              "name": "cur",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0e01000802080e0316ec010482022a05ac02b60207e204b4020896072010b6079b020ad1090f0be009020ce209d10e0db318060eb918060fbf180200000004000c00120001040100000103040203010001000700010100010008030101000100090004010001010a070802030001010b090a0203000102090b04010001000d0d05010001000a0308010001010e0e0f02030001010f0e10020300010210110201000101111205020300010313080800010014140501040100101502010001001516050104010016170201000100171805010001000b191a010001000e151b0100010018180501020101171c050203000100190818010401011a051c0203040102081e01010001031b08080001000f1502010001020f1102010001001c1705010001021c2305010001001d2518010401001e032201010102142705010001010202020306040605020702080609060a020b060e020f02100211021506170618021b021d221602200202060b00010900060900010101090001060b000109000201030002030a090001060b010209000901010302060b01020900090109000106090102060a09000609000303030303070b00010900030302070b01020900090109000107090101090102070a09000303070b010209000901090009010b01030303030a09000a090009000900030302070b000109000b0001090002070b000109000302070b00010900090001070b00010900010b0001090002060b00010900030106090001070900010b01020900090105030b0102030a0900030a09000301060a09000503070a09000900070a090007030203070308030303070a0900070a0900090007030900010a090001070a0900080a0a09000a090003030a09000309000102090003050900070a09000309000302070a09000a0900040a09000303010a6269675f766563746f7209426967566563746f72076275636b6574730f5461626c65576974684c656e677468117461626c655f776974685f6c656e67746809656e645f696e6465780b6275636b65745f73697a6508636f6e7461696e730869735f656d70747908696e6465785f6f66066c656e67746806626f72726f7706766563746f7204737761700a626f72726f775f6d75740672656d6f76650b737761705f72656d6f766503616464056572726f7210696e76616c69645f617267756d656e7406617070656e6409707573685f6261636b08706f705f6261636b0d64657374726f795f656d7074790764657374726f7905656d707479036e65770d696e76616c69645f737461746507726576657273650973696e676c65746f6e09746f5f766563746f720c736d6172745f766563746f72000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631e7010401000000000000001445494e4445585f4f55545f4f465f424f554e44531d566563746f7220696e646578206973206f7574206f6620626f756e647302000000000000001145564543544f525f4e4f545f454d5054592143616e6e6f742064657374726f792061206e6f6e2d656d70747920766563746f7203000000000000000d45564543544f525f454d5054592443616e6e6f7420706f70206261636b2066726f6d20616e20656d70747920766563746f72040000000000000011455a45524f5f4255434b45545f53495a45176275636b65745f73697a652063616e6e6f7420626520300000000203020b0102030a090005030603000200010000050e0a00380004090b00010b010109020b000b0138010102020100000c290a00370038020c020600000000000000000c030a030a022304220a0037000a0338030a0138040c04041d0b0101080b030b00370114180b0416020b03060100000000000000160c0305060b00010b0101090600000000000000000206010000136f0a010a002e380523046c0a020a002e3805230c030b0304670a010a003701141a0c040a020a003701141a0c050b010a00370114190c060b020a00370114190c070a040a052104320b0036000b0438060b060b074702020a0036000a0438070c080a0036000a0538070c090d080a0638080c0a0d090a0738080c0b0d080b0b44020d090b0a44020e084102060100000000000000170c0c0e094102060100000000000000170c0d0d080b060b0c47020d090b070b0d47020a0036000b040b0838090b0036000b050b093809020b0001060100000000000000110c27090c03050c0d0100000c2a0e0138050c020a020602000000000000001a0c030600000000000000000c040a040a0323030e05180a000d010a04380a380b0b04060100000000000000160c0405090a040a022304250a000d01380c380b0b04060100000000000000160c0405180b00010b01380d021201000005190a010a0038052304140a0037000a010a003701141a38030b010b00370114194202020b0001060100000000000000110c2713010000051a0a010a002e38052304150a0036000a010a003701141a38060b010b00370114194302020b0001060100000000000000110c27140100001d1e0b003a00010c010c020600000000000000000c030a0106000000000000000024041b0d020a0338070c040e0441020c050b010b05170c010b03060100000000000000160c0305070b02380e0211010000050c0e00380004090b003a000101380e02060200000000000000110c2716030000050c0a00060000000000000000240409380f0600000000000000000b00390002060400000000000000110c270101000005050b00380506000000000000000021020701000005040b0037021402100100001f320a002e3800032d0a00370038020c010a0036000a010601000000000000001738060c020a0245020c030a022e3810042a0b02010a0036000b01060100000000000000173807460200000000000000000b0036020c050a0514060100000000000000170b05150b03020b0201051f0b00010603000000000000001119270f010000202c0a00370038020c020a003702140a020a00370114182104230a0036000a024002000000000000000038090a0036000b0238060b0144020b0036020c030a0314060100000000000000160b0315020a0036000b020601000000000000001738060b01440205191a01000021720a002e38050c020a010b0223046d0a00370038020c030a010a003701141a060100000000000000160c040a0036000a040601000000000000001738060c050a050c060b010a00370114190c020b060b0238110c070a0036020c080a0814060100000000000000170b08150b0501280a040a032304510a0036000a0438060c050a050c060b0606000000000000000038110c090b05010a0036000a040601000000000000001738060b0944020b04060100000000000000160c040532280a0036000a030601000000000000001738060c050a052e381004680b05010b0036000b03060100000000000000173807460200000000000000000b07020b00010b050105660b0001060100000000000000110c271c0100002474402200000000000000000c01400200000000000000000c020a00370038020c030a030c040a0406000000000000000024043b0a0036000a040601000000000000001738070c050e0541020c060a060600000000000000002404340d0545020c070d020b0744020e0241020a0037011421032a052f0d010b024422400200000000000000000c020b06060100000000000000170c0605180b05460200000000000000000b04060100000000000000170c04050a0e0241020600000000000000002404710d010b0244220d0138120a003700380206000000000000000021046d0600000000000000000c04090c080b030c060a0804670b04060100000000000000160c040a040a062304620a0036000a040d014522380905510b00010b014622000000000000000002080c0805570b000105640b0001060000000000000000270b024602000000000000000005431e03000018080b0138130c020d020b00380b0b02020e01000026400a010a002e380523043b0a00380c0c020a003702140a012104130b00010b02020a0036000a010a003701141a38060c030a032e41020a030a010a003701141938080a030b0244020b030b010b00370114190c040c030c05060100000000000000170c060b030b040b0647020b05020b0001060100000000000000110c271f0100002826400200000000000000000c010a00370038020c020600000000000000000c03090c040a0404200b03060100000000000000160c030a030a0223041c0d010a0037000a033803143814050a0b00010b0102080c0405100b0001051e000000020001000201020202001f00",
    "abi": {
      "address": "0x1",
      "name": "big_vector",
      "friends": [
        "0x1::smart_vector"
      ],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::big_vector::BigVector<T0>",
            "&T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "index_of",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::big_vector::BigVector<T0>",
            "&T0"
          ],
          "return": [
            "bool",
            "u64"
          ]
        },
        {
          "name": "swap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::big_vector::BigVector<T0>",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "append",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_vector::BigVector<T0>",
            "0x1::big_vector::BigVector<T0>"
          ],
          "return": []
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::big_vector::BigVector<T0>",
            "u64"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::big_vector::BigVector<T0>",
            "u64"
          ],
          "return": [
            "&mut T0"
          ]
        },
        {
          "name": "destroy",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "0x1::big_vector::BigVector<T0>"
          ],
          "return": []
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::big_vector::BigVector<T0>"
          ],
          "return": []
        },
        {
          "name": "empty",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::big_vector::BigVector<T0>"
          ]
        },
        {
          "name": "is_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::big_vector::BigVector<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::big_vector::BigVector<T0>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "pop_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::big_vector::BigVector<T0>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "push_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_vector::BigVector<T0>",
            "T0"
          ],
          "return": []
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::big_vector::BigVector<T0>",
            "u64"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "reverse",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::big_vector::BigVector<T0>"
          ],
          "return": []
        },
        {
          "name": "singleton",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "T0",
            "u64"
          ],
          "return": [
            "0x1::big_vector::BigVector<T0>"
          ]
        },
        {
          "name": "swap_remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::big_vector::BigVector<T0>",
            "u64"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "to_vector",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy"
              ]
            }
          ],
          "params": [
            "&0x1::big_vector::BigVector<T0>"
          ],
          "return": [
            "vector<T0>"
          ]
        }
      ],
      "structs": [
        {
          "name": "BigVector",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "buckets",
              "type": "0x1::table_with_length::TableWithLength<u64, vector<T0>>"
            },
            {
              "name": "end_index",
              "type": "u64"
            },
            {
              "name": "bucket_size",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0a01000202020403062a05302307536d08c0012010e001a2010a8203080c8a0384040d8e07040000000107000004000100010002040000010005060200010006060000010007070500010008070500010009070500010103010800010102030a0101060800000206080003020708000305070a0103030107010a6269745f766563746f7209426974566563746f72066c656e677468096269745f6669656c64036e65770c69735f696e6465785f736574206c6f6e676573745f7365745f73657175656e63655f7374617274696e675f6174037365740a73686966745f6c65667405756e736574000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76316f0200000200000000000645494e444558235468652070726f766964656420696e646578206973206f7574206f6620626f756e6473010002000000000007454c454e47544828416e20696e76616c6964206c656e677468206f6620626974766563746f722077617320676976656e00000002020203030a010001000003220a000600000000000000002404200a0006000400000000000023041e0600000000000000000c01400200000000000000000c02280a010a002304190d020944020b01060100000000000000160c01050c280b000b0212000206010002000000000027060100020000000000270101000005040b0010004102020201000005100a010a001000410223040c0b0010000b01420214020b0001060000020000000000270301000000250a010a001001142304210a010c02280a020a0010011423041e0a000a02110203190b00010b020b0117020b02060100000000000000160c0205080b000105150b0001060000020000000000270401000005110a010a001000410223040d080b000f000b01430215020b0001060000020000000000270501000008560a010a001001142604220b000f000c020600000000000000000c030a022e41020c040a030a0423041f0a020a0343020c06090b06150b03060100000000000000160c03050f0b0201020a010c030a030a0010011423043f0a002e0a03110204390a000a030a011711040b03060100000000000000160c0305240a000a030a0117110605340a001001140b01170c030a030a001001142304530a000a0311060b03060100000000000000160c0305450b000105210601000005110a010a001000410223040d090b000f000b01430215020b0001060000020000000000270001000000",
    "abi": {
      "address": "0x1",
      "name": "bit_vector",
      "friends": [],
      "exposed_functions": [
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::bit_vector::BitVector"
          ]
        },
        {
          "name": "length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bit_vector::BitVector"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "is_index_set",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bit_vector::BitVector",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "longest_set_sequence_starting_at",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bit_vector::BitVector",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "set",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bit_vector::BitVector",
            "u64"
          ],
          "return": []
        },
        {
          "name": "shift_left",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bit_vector::BitVector",
            "u64"
          ],
          "return": []
        },
        {
          "name": "unset",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bit_vector::BitVector",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "BitVector",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "length",
              "type": "u64"
            },
            {
              "name": "bit_field",
              "type": "vector<bool>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d0100080208180320730493010e05a10171079202960208a8042010c80490020ad806150bed06080cf506f0020de509080eed09080000000b000e0010000103010001000308010001000408010001000602010001000700010100010008030401000100090006010001000a0705010201010c0809010001000d0005010001020f0304000103110a0a000100120b0501000100130d0401000100140e050102010115080f01000101161002010001001711050100010018120401000103190a0a0001031a0a0a00010102040203040b020c020a04040402060c060900010b0001090001090001060c010500010b0301090002070a0900090002060a090006090001010103030b00010900060900060c02050b01010900020b0301090006090002070a090006090002010302070a090003030b0001090006090005020b00010900060900030505050a6361706162696c6974790343617004726f6f741043617044656c656761746553746174650843617053746174650964656c656761746573094c696e65617243617007616371756972651076616c69646174655f616371756972650e616371756972655f6c696e6561720b6164645f656c656d656e7406766563746f7208636f6e7461696e7306637265617465067369676e65720a616464726573735f6f66056572726f720e616c72656164795f6578697374730864656c6567617465106c696e6561725f726f6f745f616464720e72656d6f76655f656c656d656e7408696e6465785f6f660672656d6f7665067265766f6b6509726f6f745f616464720d696e76616c69645f7374617465096e6f745f666f756e64000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631dc010301000000000000001a454341504142494c4954595f414c52454144595f4558495354533b4361706162696c697479207265736f7572636520616c726561647920657869737473206f6e2074686520737065636966696564206163636f756e74020000000000000015454341504142494c4954595f4e4f545f464f554e441d4361706162696c697479207265736f75726365206e6f7420666f756e640300000000000000094544454c45474154452b4163636f756e7420646f6573206e6f7420686176652064656c656761746564207065726d697373696f6e73000000020102050102010205020201050a050302010205000203020202010200010002010205060b0038000b010139000202010002010205060b0038000b010139010203000000050c0a002e0e01380103090b000b014402020b000105080501000005100a0011060b01013b02030b0b004004000000000000000039023f02020b000106010000000000000011072708010001020c1b0a0211060c030b01010a033b03040b0b0201020e0037001439030c040b020b043f030e003700143c0236010b033802020901000005060e000b0101370214020a0000000a0e0a002e0b0138030c02040b0b000b02380401020b0001050a0d010002010205120a023b030b01010306020a023e033a03010e003700143c0236010e023805020e01000005060e000b01013700140201000002010213270b0011060c010a013b03041e0a013d033703140c020a023b02041b0a023d0237010e01380604180b020c030b0302060300000000000000110f27060300000000000000110f270a013b0204240b010c0305160602000000000000001110270000020003000100000201020202030200",
    "abi": {
      "address": "0x1",
      "name": "capability",
      "friends": [],
      "exposed_functions": [
        {
          "name": "acquire",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "&T0"
          ],
          "return": [
            "0x1::capability::Cap<T0>"
          ]
        },
        {
          "name": "acquire_linear",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "&T0"
          ],
          "return": [
            "0x1::capability::LinearCap<T0>"
          ]
        },
        {
          "name": "create",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "&T0"
          ],
          "return": []
        },
        {
          "name": "delegate",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::capability::Cap<T0>",
            "&T0",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "linear_root_addr",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::capability::LinearCap<T0>",
            "&T0"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "revoke",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::capability::Cap<T0>",
            "&T0",
            "address"
          ],
          "return": []
        },
        {
          "name": "root_addr",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::capability::Cap<T0>",
            "&T0"
          ],
          "return": [
            "address"
          ]
        }
      ],
      "structs": [
        {
          "name": "Cap",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "root",
              "type": "address"
            }
          ]
        },
        {
          "name": "CapDelegateState",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "root",
              "type": "address"
            }
          ]
        },
        {
          "name": "CapState",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "delegates",
              "type": "vector<address>"
            }
          ]
        },
        {
          "name": "LinearCap",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "root",
              "type": "address"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b010004020404030826042e0205302b075b6808c3012010e301450aa802050cad02d3010d800402000000040001020000030001010001010503040100010006060100010007090a00010008090a00010009090a000101020206090006090001080001090001060900010a0200020a020a0201020703030301020208000106080001010a636f6d70617261746f7206526573756c7405696e6e657207636f6d706172650362637308746f5f627974657311636f6d706172655f75385f766563746f720869735f657175616c0f69735f677265617465725f7468616e0f69735f736d616c6c65725f7468616e000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76311201000000000000000005455155414c00000000020102020001000006060b0038000b0138001102020201000008470e0041070c020e0141070c030600000000000000000c040a040a022304440a040a03230c050b05042f0e000a044207140c060e010a044207140c070a060a0723042331011200020b060b0724042a31021200020b04060100000000000000160c0405080a020a03230438310112000c080b08020b020b03240440310212000c080536310012000c080536090c0505100301000005060b00100014310021020401000005060b00100014310221020501000005060b0010001431012102000000",
    "abi": {
      "address": "0x1",
      "name": "comparator",
      "friends": [],
      "exposed_functions": [
        {
          "name": "compare",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0",
            "&T0"
          ],
          "return": [
            "0x1::comparator::Result"
          ]
        },
        {
          "name": "compare_u8_vector",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "vector<u8>"
          ],
          "return": [
            "0x1::comparator::Result"
          ]
        },
        {
          "name": "is_equal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::comparator::Result"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_greater_than",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::comparator::Result"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_smaller_than",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::comparator::Result"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "Result",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "inner",
              "type": "u8"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a08010008020804030c54056023078301bc0108bf022010df02630cc203e004000000030006000b01020700000100010001010401030001010503010001020703030001000805010001000906070001000a01010001030a07070001000c01010001000d07070001020e03030001000f01010001031007010001001101010001030800080008000108000001030303030302080003020404010406040204040404010f0a6d6174685f6669786564076d756c5f6469760c4669786564506f696e7433320d66697865645f706f696e7433320d6765745f7261775f76616c7565156372656174655f66726f6d5f7261775f76616c7565056572726f7210696e76616c69645f617267756d656e7403706f7707706f775f7261770473717274076d61746831323803657870076578705f7261770d696e76616c69645f73746174650d6c6e5f706c75735f33326c6e32046c6f67320c6c6f67325f706c75735f3332000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631300101000000000000000d454f564552464c4f575f4558501641626f727420636f6465206f6e206f766572666c6f77000000010000041b0b0011010c030b0111010c040b0211010c050a050600000000000000002204180b03350b0435180b05351a341102020604000000000000001103270401000002090b001101350b01351105341102020601000002090b0011013531202f1107341102020801000002070b0011013511093411020209000000084e0a0032f81772b10000000000000000000000001a0c010a01321f00000000000000000000000000000025044b0b01330c020b0032f81772b1000000000000000000000000190c030a0332481609000000000000000000000000001a0c040b033248160900000000000000000000000000190c0332711609000100000000000000000000000a0411050c050a05328b4cf849000000000000000000000000180b04183140300c040b050b04160c050a050a031831200a0217300c040a040a03183120300c060a060b03183120300b050b022f0b04160b0632020000000000000000000000000000001a160c0432060000000000000000000000000000001a0c030b040b031602060100000000000000110a270b010000020d0b00110135110c11013532f81772b100000000000000000000000018312030341102020d01000002050b00110135110c0205000000092b4a00000000000000000100000000000000000000000000000000000000000000000c020b0031202f0c000a0132000000000000000000000000000000002204260a0132010000000000000000000000000000001c320000000000000000000000000000000022031105180b020a004d183140300c020b013101300c010a004d0b004d18314030350c0005060b02312030350200",
    "abi": {
      "address": "0x1",
      "name": "math_fixed",
      "friends": [],
      "exposed_functions": [
        {
          "name": "mul_div",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32",
            "0x1::fixed_point32::FixedPoint32",
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "pow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32",
            "u64"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "sqrt",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "exp",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "ln_plus_32ln2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "log2_plus_32",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d01000e020e0e031ccc0104e8010c05f401a201079603b70408cd072006ed073610a3088e020ab10a120cc30ab20a0df514060ffb140200000006000b000e0011001a001c00010a0001050701000000070600000900010001000a03010001020c0403010001020d0506010001030f080301060100100a03000104120a0300010113030b01000100140c03000104150a0300010016030100010017030e000101180f1001000102190403010001051b03010001061d01010001001e00120001001f1300000100201516000100211716000100220319000100231b1900010024031600010025031c000100261e1c0001002703160001002817160001002903210001002a23210001002b03000001002c13000001002d03020001002e2502000102020302040707010c010d020103010a0201020002070a09000a090002070a090003010a0900010802010900030a02030a0201060c010b0101090004060c03030b01010a02030708000703070b01010a02010101060b0101090001060900020a020a02010a03020303040a03030303030f0f0f010f020f0f040f010f0f0104030a020304020404010d030a02030d020d0d030a02030f050f0f0f030f010e030a02030e020e0e030a0203030202020a72616e646f6d6e65737312506572426c6f636b52616e646f6d6e6573730565706f636805726f756e640473656564064f7074696f6e066f7074696f6e1852616e646f6d6e65737347656e6572617465644576656e740b64756d6d795f6669656c640562797465730d6e6578745f33325f627974657306766563746f720e726576657273655f617070656e64047472696d056576656e7404656d69740a696e697469616c697a651073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b046e6f6e650c6f6e5f6e65775f626c6f636b096173736572745f766d1f66657463685f616e645f696e6372656d656e745f74786e5f636f756e7465720d69735f756e6269617361626c6506626f72726f7706617070656e64137472616e73616374696f6e5f636f6e74657874146765745f7472616e73616374696f6e5f68617368046861736808736861335f3235360b7065726d75746174696f6e127536345f72616e67655f696e7465726e616c0c736166655f6164645f6d6f640a74616b655f66697273740c753132385f696e74656765720a753132385f72616e676515753235365f696e74656765725f696e7465726e616c0b7531365f696e7465676572097531365f72616e67650c753235365f696e74656765720a753235365f72616e67650b7533325f696e7465676572097533325f72616e67650b7536345f696e7465676572097536345f72616e67650a75385f696e74656765720875385f72616e676505626c6f636b0000000000000000000000000000000000000000000000000000000000000001052000000000000000000000000000000000000000000000000000000000000000010a0211104150544f535f52414e444f4d4e45535314636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631da0101010000000000000015455f4150495f5553455f49535f4249415349424c459b0152616e646f6d6e65737320415049732063616c6c73206d757374206f726967696e6174652066726f6d2061207072697661746520656e7472792066756e6374696f6e20776974680a2060235b72616e646f6d6e6573735d6020616e6e6f746174696f6e2e204f74686572776973652c206d616c6963696f75732075736572732063616e20626961732072616e646f6d6e65737320726573756c742e011852616e646f6d6e65737347656e6572617465644576656e740104000000020302030303040b01010a02020201080100010001000920400200000000000000000c010600000000000000000c020a020a0023041211010c030d010b0338000b02062000000000000000160c0205040b020a00240317051b0d010b0038010109120138020b010205010000030f0a00110607002900030c0b00060000000000000000060000000000000000380312002d00020b0001050b08030001000d1c0b001109070029000306051b07002a000c040a040f000c050b010b05150a040f010c050b020b05150b040f020c060b030b0615020a0002000b00020001000001001118110b041607010c0007002b0010023804140c010d000b0138050d00110e38050d00110a38050b00110f0206010000000000000027100100010014360912013802400000000000000000000c010a0006000000000000000021040b40000000000000000000020600000000000000000c02280a020a0023041a0d010a0244000b02060100000000000000160c02050d280b00060100000000000000170c03280a030600000000000000002404340600000000000000000a030601000000000000001611110c04280d010b040a0347000b03060100000000000000170c03051f0b01021200000018240a000c030b020a01170c020a000a02230c040a04041f0a000a01160c050b04031a0b030b02170c060b050b061113020b000b01160c0605160a030a02170c0505101300000003020b000214010001001a1c11010c000600000000000000000c0132000000000000000000000000000000000c020a010610000000000000002304170b023200010000000000000000000000000000180d00450235160c020b01060100000000000000160c01050609120138020b0202150100010016110b010a00174d0c0211160b0219350c0109120138020b000b01160217010001001d1c11010c000600000000000000000c014800000c020a010602000000000000002304170b02480001180d0045024b160c020b01060100000000000000160c01050609120138020b0202180100010016110b010a00174d0c0211160b02194b0c0109120138020b000b01160219010001000305091201380211160216000001001f1911010c000600000000000000000c014a00000000000000000000000000000000000000000000000000000000000000000c020a010620000000000000002304170b024a0001000000000000000000000000000000000000000000000000000000000000180d0045024d160c020b01060100000000000000160c0105060b02021a01000100202a0a010a00170c0211160c0311160a02190c040600000000000000000c05280a0506000100000000000023041b0a040b040a0211120c040b05060100000000000000160c05050c0b040b030a02190b0211120c062809120138020b000b0616021b01000100221c11010c000600000000000000000c0149000000000c020a010604000000000000002304170b024900010000180d0045024c160c020b01060100000000000000160c01050609120138020b02021c0100010016110b010a00174d0c0211160b02194c0c0109120138020b000b0116021d01000100241c11010c000600000000000000000c010600000000000000000c020a010608000000000000002304170b02060001000000000000180d00450234160c020b01060100000000000000160c01050609120138020b02021e01000100030709120138020b000b011111021101000100160e0b010a00174d0c0211160b0219340c010b000b0116021f01000100010811010c000d004502091201380202200100010016110b010a00174d0c0211160b0219330c0109120138020b000b011602000000010002002f00",
    "abi": {
      "address": "0x1",
      "name": "randomness",
      "friends": [
        "0x1::block"
      ],
      "exposed_functions": [
        {
          "name": "bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "on_new_block",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64",
            "u64",
            "0x1::option::Option<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "permutation",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "vector<u64>"
          ]
        },
        {
          "name": "u128_integer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u128"
          ]
        },
        {
          "name": "u128_range",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128",
            "u128"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "u16_integer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u16"
          ]
        },
        {
          "name": "u16_range",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u16",
            "u16"
          ],
          "return": [
            "u16"
          ]
        },
        {
          "name": "u256_integer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u256"
          ]
        },
        {
          "name": "u256_range",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u256",
            "u256"
          ],
          "return": [
            "u256"
          ]
        },
        {
          "name": "u32_integer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u32"
          ]
        },
        {
          "name": "u32_range",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u32",
            "u32"
          ],
          "return": [
            "u32"
          ]
        },
        {
          "name": "u64_integer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "u64_range",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "u64_range_internal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "u8_integer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u8"
          ]
        },
        {
          "name": "u8_range",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u8",
            "u8"
          ],
          "return": [
            "u8"
          ]
        }
      ],
      "structs": [
        {
          "name": "PerBlockRandomness",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "epoch",
              "type": "u64"
            },
            {
              "name": "round",
              "type": "u64"
            },
            {
              "name": "seed",
              "type": "0x1::option::Option<vector<u8>>"
            }
          ]
        },
        {
          "name": "RandomnessGeneratedEvent",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d010008020816031eb70104d5012205f701a302079a048d0208a7062010c70695010adc07150bf107040cf507db070dd00f060ed60f060000000a000d001500010702000000000004070200000000010907010000000600010204040100070405020404010008040602040401010b0809010001010c0a0b010001020e07070001000f0d0e02040401001001000204040101110b0f0100010112000f010001001311070204040100140d03020404010316120b0100010017140002040401011808090100010019141502040401001a000102040401001b180002040401031c1900010001001d111b02010001001e111d02000101001f04090204040100201f01020404010021011f02040401020303070407080709070c020e07080b0816090b09160003120b12160d031103120200010b010209000901010b000209000901020900090102060b01020900090106090001060901010b020103010301060b02010900010101070b02010900010900020b0201030302070b01020900090106090001070901010b020109000303030101060b01020900090102070a090003040b020103030901090003070b01020900090109000901020b020109000b0201090101090106070a0b00020900090103030103090103070b0102090009010a09000a090101070a0900070a09000a09010a09000a09010309000901010a090005060a0b0002090009010a09000303060b000209000901010a090105060a0b0002090009010a09010303060b000209000901020a09000a0901070a09000a09010a0b0002090009010a0b00020900090103090109000a73696d706c655f6d617007456c656d656e74036b65790576616c75650953696d706c654d61700464617461036e657706626f72726f770466696e64064f7074696f6e066f7074696f6e0769735f736f6d650765787472616374056572726f7210696e76616c69645f617267756d656e740a626f72726f775f6d75740d64657374726f795f656d70747904736f6d65046e6f6e65066c656e6774680672656d6f766506766563746f720b737761705f72656d6f7665036164640769735f6e6f6e650675707365727406637265617465076164645f616c6c0772657665727365046b6579730676616c7565730c636f6e7461696e735f6b6579086e65775f66726f6d0b746f5f7665635f70616972000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76316202010000000000000013454b45595f414c52454144595f455849535453164d6170206b657920616c72656164792065786973747302000000000000000e454b45595f4e4f545f464f554e44144d6170206b6579206973206e6f7420666f756e640000000202020900030901010201050a0b0002090009010103000300010000000340020000000000000000390002010100000c150a000b0138000c020e02380104100d0238020c030b0037000b0342023701020b0001060200000000000000110527060100000c160a002e0b0138000c020e02380104110d0238020c030b0036000b0343023601020b00010602000000000000001105270701000000040b003a0046020000000000000000020200000010300a00370041020c020600000000000000000c03090c040a0404280b03060100000000000000160c030a030a022304220a0037000a03420237020a0121031b05080b00010b01010b033803020b00010b0101380402080c04050e0b00010b010105260a01000000040b0037004102020b01000013160a002e0b0138000c020e02380104110d0238020c030b0036000b0338053a01020b00010602000000000000001105270d01000006140a002e0e0138000c030e033806040f0b0036000b010b0239014402020b00010601000000000000001105270f01000017440a0036000c030a032e41020c040600000000000000000c05090c060a040c070a06043e0b05060100000000000000160c050a050a072304330a032e0a05420237020e01210320050d0b00010a030b010b02390144020a030b050b0447020b0345023a010c0838070b083808020b03010b0036000b010b02390144023809380a02080c0605130b03010535100100000002380b02110100001a330b010c030b020c040d03380c0d04380d0b030c050b040c060e05410b0c070a070e06411621042f05150a070600000000000000002404280d05450b0c080d0645160c090a000b080b09380e0b07060100000000000000170c0705150b00010b05460b00000000000000000b0646160000000000000000020b000106020002000000000027130100001c200b0037000c01400b00000000000000000c020600000000000000000c030a0141020c040a030a0423041c0a010a0342020c050d020b05370214440b0b03060100000000000000160c03050a0b01010b0202140100001e200b0037000c01401600000000000000000c020600000000000000000c030a0141020c040a030a0423041c0a010a0342020c050d020b0537011444160b03060100000000000000160c03050a0b01010b02021501000006070b000b0138000c020e02380102160100000108380b0c020d020b000b01380f0b0202170100002027400b00000000000000000c01401600000000000000000c020b003a000c030d0338100b030c040e0441020c050a050600000000000000002404220d0445023a010c060c070d010b07440b0d020b0644160b05060100000000000000170c05050e0b04460200000000000000000b010b020201000001000000030103020300",
    "abi": {
      "address": "0x1",
      "name": "simple_map",
      "friends": [],
      "exposed_functions": [
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::simple_map::SimpleMap<T0, T1>"
          ]
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::simple_map::SimpleMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::simple_map::SimpleMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::simple_map::SimpleMap<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::simple_map::SimpleMap<T0, T1>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::simple_map::SimpleMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "T0",
            "T1"
          ]
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::simple_map::SimpleMap<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        },
        {
          "name": "upsert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::simple_map::SimpleMap<T0, T1>",
            "T0",
            "T1"
          ],
          "return": [
            "0x1::option::Option<T0>",
            "0x1::option::Option<T1>"
          ]
        },
        {
          "name": "create",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::simple_map::SimpleMap<T0, T1>"
          ]
        },
        {
          "name": "add_all",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::simple_map::SimpleMap<T0, T1>",
            "vector<T0>",
            "vector<T1>"
          ],
          "return": []
        },
        {
          "name": "keys",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::simple_map::SimpleMap<T0, T1>"
          ],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "values",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": [
                "copy"
              ]
            }
          ],
          "params": [
            "&0x1::simple_map::SimpleMap<T0, T1>"
          ],
          "return": [
            "vector<T1>"
          ]
        },
        {
          "name": "contains_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::simple_map::SimpleMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new_from",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "vector<T0>",
            "vector<T1>"
          ],
          "return": [
            "0x1::simple_map::SimpleMap<T0, T1>"
          ]
        },
        {
          "name": "to_vec_pair",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::simple_map::SimpleMap<T0, T1>"
          ],
          "return": [
            "vector<T0>",
            "vector<T1>"
          ]
        }
      ],
      "structs": [
        {
          "name": "Element",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "key",
              "type": "T0"
            },
            {
              "name": "value",
              "type": "T1"
            }
          ]
        },
        {
          "name": "SimpleMap",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "data",
              "type": "vector<0x1::simple_map::Element<T0, T1>>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b01001402141c033067049701020599014007d901b7040890062010b006ba020aea081c0c8609e50313eb0c0a000000050008000a000d000f001100160020002200010700010407000207070003070700040c0700050c070006130200001000010001061200030001001404010001061504050001071706060001061804080001061904060001011a00090001021b000a0001031b000b0001041c040c0001051c040d0001001d09010001001e0f050001001f0f000001082110000100010923000000010f01010a02010800000108060107080601010103020806080001020108010108020108030108040108050902070806030a02030108000a020a0201060800010609000a73696e676c655f6b65790c416e795075626c69634b6579074564323535313902706b14556e76616c6964617465645075626c69634b657907656432353531390e536563703235366b3145636473611145434453415261775075626c69634b657909736563703235366b310e536563703235367231456364736109736563703235367231074b65796c657373095075626c69634b6579076b65796c657373104665646572617465644b65796c657373116665646572617465645f6b65796c657373196e65775f7075626c69635f6b65795f66726f6d5f62797465730a6263735f73747265616d036e65770942435353747265616d1a646573657269616c697a655f616e795f7075626c69635f6b65790d6861735f72656d61696e696e67056572726f7210696e76616c69645f617267756d656e740e646573657269616c697a655f753813646573657269616c697a655f756c6562313238256e65775f756e76616c6964617465645f7075626c69635f6b65795f66726f6d5f62797465732265636473615f7261775f7075626c69635f6b65795f66726f6d5f36345f627974657316646573657269616c697a655f7075626c69635f6b65792366726f6d5f656432353531395f7075626c69635f6b65795f756e76616c6964617465642a69735f6b65796c6573735f6f725f6665646572617465645f6b65796c6573735f7075626c69635f6b657915746f5f61757468656e7469636174696f6e5f6b65790362637308746f5f6279746573046861736808736861335f323536000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631860203000000000000000017454432353531395f5055424c49435f4b45595f545950452a536368656d65206964656e74696669657220666f7220456432353531392073696e676c65206b6579732e010000000000000019455f494e56414c49445f5055424c49435f4b45595f545950451d556e7265636f676e697a6564207075626c6963206b657920747970652e020000000000000020455f494e56414c49445f53494e474c455f4b45595f45585452415f42595445534e54686572652061726520657874726120627974657320696e2074686520696e707574207768656e20646573657269616c697a696e6720612053696e676c65204b6579207075626c6963206b65792e00000003050201030801060103080209010308030b010308040e0103080500010000070e0b0011010c010d0111020c020d011103030b0b0202060200000000000000110427020100000e9c010a0011050c010a01310021042f0b000c020a0211060c03400800000000000000000c040600000000000000000c05090c060a0604290b05060100000000000000160c050a050a032304210d040a021105440805120b02010b04110752000c070b0702080c0605180b020105230a01310121045a0b000c020a0211060c03400800000000000000000c080600000000000000000c05090c060a0604540b05060100000000000000160c050a050a0323044d0d080a0211054408053e0b02010b08110852010c070527080c0605440b0201054f0a013102210485010b000c020a0211060c03400800000000000000000c090600000000000000000c05090c060a06047f0b05060100000000000000160c050a050a032304780d090a021105440805690b02010b09110952020c070527080c06056f0b0201057a0a01310321048e010b00110a52030c0705270b013104210497010b00110b52040c0705270b00010601000000000000001104270c01000002030b005200020d01000005160a00560304090b0001080c010b01020a00560404110b0001080c0105070b0001090c0105070e01000000090b0038000c010d01310244080b011110020000000100020003000400",
    "abi": {
      "address": "0x1",
      "name": "single_key",
      "friends": [],
      "exposed_functions": [
        {
          "name": "new_public_key_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::single_key::AnyPublicKey"
          ]
        },
        {
          "name": "deserialize_any_public_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "0x1::single_key::AnyPublicKey"
          ]
        },
        {
          "name": "from_ed25519_public_key_unvalidated",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "0x1::single_key::AnyPublicKey"
          ]
        },
        {
          "name": "is_keyless_or_federated_keyless_public_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::single_key::AnyPublicKey"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "to_authentication_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::single_key::AnyPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        }
      ],
      "structs": [
        {
          "name": "AnyPublicKey",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": []
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a1201000a020a1e0328bb0304e3034005a304bd0407e008c20508a20e2010c20e8f020ad110200bf110020cf310c8160dbb27040ebf27040fc3270211c5270812cd270213cf270614d527020000001a001f0026002f000107020000000000040300000807020000000003250701000004310300000b000102000001000c000302000001000d040102000001000e050602000001000f08050202020100100809020000010011000a0200000100120b0a0200000100130c0d0200000100140e0d02000001001506050200000100160003020000010017040f020000010018100302000001001910010200000101191201010001001b101302000001001c140202000001001d0c1602020001001e171302000001011d181901000102201313000100211b06020000010121181c01000100221d050200000101231e0501000100241d200202000101271e190100010328192101000103290521010001002a230502000001012b2405010001002c101c02010001002d102702000101002e080502000001010f290501000104302a2b01000104322c01000104332c0100010134290501000104352c0100010036102f020000010037102f0200000100383105020000010039040102000001003a33010001003b0b0302000001003c0b0302000001003d0e1602020001003e351602030001003f100302000001004038060200000100410021020100010042140202000001004300210201000100443b050202000100450638020000010046230502020201010202020502070209020b020c020d020f0713021407170719071b071c161d161f191f1618022307241927070e022c0203021e021d192e021c192f021f071a0202060b0202090009010609000101020900090101080102060801060b02020900090100010b020209000901010b00020900090102070b0202090009010b020209000901010a0b00020900090101060901020801060b02020900090102070b02020900090106090001070901020801070b0202090009010106090001060b020209000901020801080101060a0900010301070b020209000901020901090001090104060900060a0b000209000901030302070a0900030109000403030901090002070b02020900090103010a090003070b0202090009010900090103070a090003090003030301010b03010901010b03010900040303010b0301090103070b0202090009010a09000a090101070a0900070a09000a09010a09000a0901030900090105060a0b0002090009010a09000303060b000209000901010a090105060a0b0002090009010a09010303060b00020900090102070a09000a09000206090006090001080401060804070a0b0002090009010a0b00020900090108040a0b00020900090103030804020308040206090006090101060b000209000901040801070b02020900090109000901040303080408040106080102030801030801070b02020900090109010503070a0b00020900090109000b000209000901090104060a0b00020900090103030801020a09000a09010408010b0301090006090008010308010b03010900080103070b020209000901060900090005030308040804070900070a09000a09010a0b0002090009010a0b00020900090103090109000b6f7264657265645f6d617005456e747279036b65790576616c75650b4974657261746f7250747203456e6408506f736974696f6e05696e6465780a4f7264657265644d61700f536f72746564566563746f724d617007656e747269657308636f6e7461696e730466696e640b697465725f69735f656e64036e657706617070656e640b617070656e645f696d706c06626f72726f770b697465725f626f72726f770a626f72726f775f6d75740f697465725f626f72726f775f6d75740d64657374726f795f656d7074790b6c6f7765725f626f756e640f697465725f626f72726f775f6b65790c6e65775f656e645f697465720869735f656d70747906766563746f72066c656e67746808706f705f6261636b0672656d6f76650d62696e6172795f736561726368056572726f7210696e76616c69645f617267756d656e74047472696d0361646406696e7365727406757073657274064f7074696f6e066f7074696f6e077265706c61636504736f6d65046e6f6e65076164645f616c6c0772657665727365046b6579730676616c7565730f617070656e645f6469736a6f696e7403636d7007636f6d70617265084f72646572696e670569735f6c740569735f67740e726576657273655f617070656e640569735f65710b626f72726f775f6261636b0c626f72726f775f66726f6e7408697465725f6164640d697465725f69735f626567696e1c697465725f69735f626567696e5f66726f6d5f6e6f6e5f656d70747909697465725f6e65787409697465725f707265760b697465725f72656d6f76650c697465725f7265706c6163650e6e65775f626567696e5f69746572086e65775f66726f6d086e6578745f6b657909706f705f66726f6e7408707265765f6b6579137265706c6163655f6b65795f696e706c6163650b746f5f7665635f706169720a7570736572745f616c6c0f6269675f6f7264657265645f6d6170000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631db0104010000000000000013454b45595f414c52454144595f455849535453164d6170206b657920616c72656164792065786973747302000000000000000e454b45595f4e4f545f464f554e44144d6170206b6579206973206e6f7420666f756e6403000000000000001345495445525f4f55545f4f465f424f554e445300040000000000000015454e45575f4b45595f4e4f545f494e5f4f524445523d4e6577206b6579207573656420696e207265706c6163655f6b65795f696e706c61636520646f65736e2774207265737065637420746865206f72646572000000020202090003090101030205000601070302030109010a0a0b00020900090100020001000003090a000b0138000c020e020b0038012002030100000503400700000000000000005300020401000005050b000b01380201020601000005060a000b0138000b003803020801000005070a002e0b0138000b003804020a01000005040b005500460700000000000000000201030000111f0a000a0138050c020e020a00380104100b00010b01010b020c030b03020e020a0038060b0121041b0b00010b020c03050e0b0038070c03050e0e01000005040b0050003808021001000005040b0050004107021101000015050b00510045073a0002120100001a260a00500041070c020a010a0050000600000000000000000a0238090c030a030b0223041f0b0051000b03380a3a000c040c050b010e0521041c0b04020602000000000000001115270b00010b01010602000000000000001115271601000005060b0051000b01380b530002180100001f290a00500041070c030e010a0050000600000000000000000a0338090c040a040b03260420080c050b05041b0b0051000b040b010b023900380c020b00010601000000000000001115270a0050000a04420737000e01220c0505111a01000022330a00500041070c030e010a0050000600000000000000000a0338090c040a040b032304300a0050000a04420737000e01210c050b0504260b0051000b040b010b023900380d3a00380e0c06010b06020b0051000b040b010b023900380c380f0c060524090c0505171e01000025330b010c030b020c040d0338100d0438110b030c050b040c060e0541190c070a070e06411621042f05150a070600000000000000002404280d0545190c080d0645160c090a000b080b0938120b07060100000000000000170c0705150b00010b05461900000000000000000b0646160000000000000000020b0001060200020000000000272001000026200b0050000c01401900000000000000000c020600000000000000000c030a0141070c040a030a0423041c0a010a0342070c050d020b0537001444190b03060100000000000000160c03050a0b01010b02022101000028200b0050000c01401600000000000000000c020600000000000000000c030a0141070c040a030a0423041c0a010a0342070c050d020b0537011444160b03060100000000000000160c03050a0b01010b020222010000090f0b000b0138020c020e02410706000000000000000021040c0b024607000000000000000002060100000000000000111527050000002d89010b0155000c02400700000000000000000c030e023808040e0b00010b02460700000000000000000b03020a005000380804180b0051000b0238130b03020a0050000a005000410706010000000000000017420737000e020600000000000000004207370038140c040e04112504300b0051000b0238130b0302400700000000000000000c050a0050004107060100000000000000170c060e024107060100000000000000170c070a0050000a06420737000e020a074207370038140c080e08112604630d050a005100450744070a0606000000000000000021045e0a0051000b0238130b0051000b0538150b03020b06060100000000000000170c06053d0e081128036705790d030a005100450744070a060600000000000000002104750a0051000b02381305580b06060100000000000000170c060d050d02450744070a07060000000000000000210484010b024607000000000000000005580b07060100000000000000170c07053d130000002e240a020a0322041e0a020a030a0217310130160c040a010a04420737000a0038140c050e051125041b0b04060100000000000000160c0205000b040c0305000b00010b01010b020229010000300e0a0050000b00500041070601000000000000001742070c010a0137000b013701022a010000300a0b00500006000000000000000042070c010a0137000b013701022b03000032440a01500041070c040e005601043f0a040c050a0506000000000000000024030e051c0a0150000a0506010000000000000017420737000e0238140c060e061125043a051c0a050b04230321052d0e020a0150000a054207370038140c070e0711250435052d0b0151000b050b020b033900380c020b01010604000000000000001115270b01010604000000000000001115270e004e01140c0505090703000005100e005601030b0b0150000e004e011442073701020b01010603000000000000001115270c03000005120a005601030b0b0150000b004e011442073700020b00010b01010603000000000000001115270903000005100e005601030b0b0151000e004e011443073601020b01010603000000000000001115272c03000001130a005601040a0b00010b0138160c020b02020b01010b004e0114060000000000000000210c0205082d03000001100a00560104090b0001090c010b01020b004e0114060000000000000000210c0105070203000005050b0056010b0101022e03000034200e000a013801031b0e004e0114060100000000000000160c020a020a01500041072304170b01010b0252020c030b03020b0138070c0305150b01010603000000000000001115272f030000131e0e000a01381703190e00560104100b0150004107060100000000000000170c020b025202020b01010e004e0114060100000000000000170c02050d0b01010603000000000000001115273003000016130e005601030e0b0151000e004e0114380a3a000c02010b02020b01010603000000000000001115273103000036230e005601031e0a0150000e004e011442073700140b0151000e004e01140c030c040b0239000c060b040b030b06380d3a000c07010b07020b01010603000000000000001115270b030000371b0a0050000c020a0241070c030b010b020600000000000000000a0338090c040a040b032104150b0038070c050b05020b00010b0452020c0505133203000005080b00381604055201020600000000000000005202020d030000050452010b00010233010000060838180c020d020b000b0138190b02023401000039350a000a0138050c020e020a00380104100b00010b0101381a0c030b03020e020a0038060c040b010a0421042e0b04010b020a00381b0c050e050a00380104270b0001381a0c03050e0e050b00380614381c0c03050e0b00010b0414381c0c03050e3501000015060b005100060000000000000000380a3a0002360100003a190a000b0138050c020e020a003817040e0b0001381a0c030b03020b020a00381d0c040e040b00380614381c0c03050c370300003c5f0a00500041070c030a010a0050000600000000000000000a0338090c040a040a032304580b010a0050000a04420737002104530a0406000000000000000024031c052a0a0050000a0406010000000000000017420737000e0238140c050e051125044e052a0a04060100000000000000160b03230331053f0e020a0050000a04060100000000000000164207370038140c060e0611250449053f0b0051000b04430736000c070b020b0715020b00010604000000000000001115270b00010604000000000000001115270b00010602000000000000001115270b00010b0101060200000000000000111527380100003d27401900000000000000000c01401600000000000000000c020b0055000c030d03381e0b030c040e0441070c050a050600000000000000002404220d0445073a000c060c070d010b0744190d020b0644160b05060100000000000000170c05050e0b04460700000000000000000b010b02023901000025340b010c030b020c040d0338100d0438110b030c050b040c060e0541190c070a070e06411621043005150a070600000000000000002404290d0545190c080d0645160c090a000b080b09381f010b07060100000000000000170c0705150b00010b05461900000000000000000b0646160000000000000000020b0001060200020000000000270000000100020102004702000100010001010002020001000101000200",
    "abi": {
      "address": "0x1",
      "name": "ordered_map",
      "friends": [
        "0x1::big_ordered_map"
      ],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::ordered_map::OrderedMap<T0, T1>"
          ]
        },
        {
          "name": "append",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "find",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::ordered_map::IteratorPtr"
          ]
        },
        {
          "name": "is_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "pop_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "T0",
            "T1"
          ]
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "T1"
          ]
        },
        {
          "name": "trim",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "u64"
          ],
          "return": [
            "0x1::ordered_map::OrderedMap<T0, T1>"
          ]
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        },
        {
          "name": "upsert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "T0",
            "T1"
          ],
          "return": [
            "0x1::option::Option<T1>"
          ]
        },
        {
          "name": "add_all",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "vector<T0>",
            "vector<T1>"
          ],
          "return": []
        },
        {
          "name": "keys",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "values",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": [
                "copy"
              ]
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "vector<T1>"
          ]
        },
        {
          "name": "append_disjoint",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "borrow_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "&T0",
            "&T1"
          ]
        },
        {
          "name": "borrow_front",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "&T0",
            "&T1"
          ]
        },
        {
          "name": "iter_add",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::ordered_map::IteratorPtr",
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        },
        {
          "name": "iter_borrow",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::ordered_map::IteratorPtr",
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "iter_borrow_key",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::IteratorPtr",
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "iter_borrow_mut",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::ordered_map::IteratorPtr",
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "iter_is_begin",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::IteratorPtr",
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "iter_is_begin_from_non_empty",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ordered_map::IteratorPtr"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "iter_is_end",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::IteratorPtr",
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "iter_next",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::ordered_map::IteratorPtr",
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "0x1::ordered_map::IteratorPtr"
          ]
        },
        {
          "name": "iter_prev",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::ordered_map::IteratorPtr",
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "0x1::ordered_map::IteratorPtr"
          ]
        },
        {
          "name": "iter_remove",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::ordered_map::IteratorPtr",
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "T1"
          ]
        },
        {
          "name": "iter_replace",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::ordered_map::IteratorPtr",
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "T1"
          ],
          "return": [
            "T1"
          ]
        },
        {
          "name": "lower_bound",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::ordered_map::IteratorPtr"
          ]
        },
        {
          "name": "new_begin_iter",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "0x1::ordered_map::IteratorPtr"
          ]
        },
        {
          "name": "new_end_iter",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "0x1::ordered_map::IteratorPtr"
          ]
        },
        {
          "name": "new_from",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "vector<T0>",
            "vector<T1>"
          ],
          "return": [
            "0x1::ordered_map::OrderedMap<T0, T1>"
          ]
        },
        {
          "name": "next_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::option::Option<T0>"
          ]
        },
        {
          "name": "pop_front",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "T0",
            "T1"
          ]
        },
        {
          "name": "prev_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::option::Option<T0>"
          ]
        },
        {
          "name": "replace_key_inplace",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0",
            "T0"
          ],
          "return": []
        },
        {
          "name": "to_vec_pair",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "vector<T0>",
            "vector<T1>"
          ]
        },
        {
          "name": "upsert_all",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "vector<T0>",
            "vector<T1>"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Entry",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "key",
              "type": "T0"
            },
            {
              "name": "value",
              "type": "T1"
            }
          ]
        },
        {
          "name": "IteratorPtr",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": []
        },
        {
          "name": "OrderedMap",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": []
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d0100120212260338e1020499033605cf03850507d408a70508fb0d20109b0ed8040af312250b9813040c9c1382160d9e29120eb0291200000008000f0015001d00200022002f0039000107020000000000050402000000000107040203010001072e070100000838070200000000000e000102020001021003040100010011070400010112090a020300010013060d0207040100140e0d020704010012000a020200010316040400010017101102020001011712110203000100180d06020202010019140602020201001a0d0602000001011b121502030001011a160602030001001c180402000001001b101502030001041e1902010001001f1b06020000010521030401000106231c0400010024180402000001002514060200000103260404000100271e0a0203000100281b110203020100291b06020302010009180402000001002a1f0602000001042b2006010001002c182202070501002d2324020705010030182502000001003114260200000100322728020000010033292a020000010734022b0100010735062b0100010113061602030401011f2d06020300010436192201000100371830020705010813063002040401082a310602040401003a330602000001003b35060200000101020308050509080b050c050d080e08110b130b1505160500050605120508051d021d150f051f052404250426082708280b2a052b0502060b010209000901090001010109000106090001030209000901000302030302030a0b00020900090102060b020209000901090001060901010b000209000901060303060a0b00020900090101060b00020900090101010b010209000901030302030503060a0b0002090009010301060b00020900090102070b01020900090109000107090102070b02020900090109000503070a0b0002090009010301070b00020900090101070b010209000901010901010b0202090009010303010301060b01020900090102070a0900030603070a0b00020900090103010703090103070b01020900090109000901020303080303070a0b000209000901060a0b000209000901010b00020900090103070303060b010209000901090006090103070b0102090009010a09000a090101070a0900070a09000a09010a09000a09010309000901010a090004060b010209000901030303030a09000b0301030b03010301060b0202030a0b00020900090101070b0202030a0b00020900090101060b0002090009010206090006090101070b00020900090102070900070901010b030109000f03060b0202030a0b000209000901060a0b00020900090103010a09000301030301030a09000b0301030b03010303070b02020900090109000901070b0202030a0b0002090009010b0202030a0b000209000901030203020b0102090009010903030702070a0b000209000901070a0b00020900090103060b000209000901030a0b000209000901010b04020900090103070b0402090009010a09000a09010c0b040209000901030103060a0b0002090009010a09000a09010303060b0002090009010a09000a090102070b010209000901020201070202070b010209000901030107030b736d6172745f7461626c6505456e7472790468617368036b65790576616c75650a536d6172745461626c65076275636b6574730f5461626c65576974684c656e677468117461626c655f776974685f6c656e6774680b6e756d5f6275636b657473056c6576656c0473697a651473706c69745f6c6f61645f7468726573686f6c64127461726765745f6275636b65745f73697a6508636f6e7461696e730a6170746f735f68617368137369705f686173685f66726f6d5f76616c75650c6275636b65745f696e64657806626f72726f77036e65770f6e65775f776974685f636f6e666967056572726f7210696e76616c69645f617267756d656e740a626f72726f775f6d75740764657374726f7905636c6561720d64657374726f795f656d7074790672656d6f7665066c656e67746806766563746f720b737761705f72656d6f76650361646409747970655f696e666f0b73697a655f6f665f76616c066d6174683634036d61780b6c6f61645f666163746f721073706c69745f6f6e655f6275636b6574117065726d697373696f6e5f64656e69656413626f72726f775f776974685f64656661756c7417626f72726f775f6d75745f776974685f64656661756c7406757073657274076164645f616c6c0772657665727365046b6579730e6b6579735f706167696e61746564064f7074696f6e066f7074696f6e0e626f72726f775f6275636b65747312626f72726f775f6275636b6574735f6d757409626f72726f775f6b760d626f72726f775f6b765f6d757404736f6d65046e6f6e650c7472696d5f726576657273650d746f5f73696d706c655f6d61700953696d706c654d61700a73696d706c655f6d61701b7570646174655f73706c69745f6c6f61645f7468726573686f6c64197570646174655f7461726765745f6275636b65745f73697a65000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631a4040901000000000000000a454e4f545f464f554e44204b6579206e6f7420666f756e6420696e2074686520736d617274207461626c6502000000000000000e455a45524f5f43415041434954592a536d617274207461626c65206361706163697479206d757374206265206c6172676572207468616e203003000000000000000a454e4f545f454d5054592043616e6e6f742064657374726f79206e6f6e2d656d70747920686173686d617004000000000000000e45414c52454144595f4558495354124b657920616c72656164792065786973747305000000000000001f45494e56414c49445f4c4f41445f5448524553484f4c445f50455243454e5430496e76616c6964206c6f6164207468726573686f6c642070657263656e7420746f20747269676765722073706c69742e06000000000000001b45494e56414c49445f5441524745545f4255434b45545f53495a451b496e76616c696420746172676574206275636b65742073697a652e070000000000000017454558434545445f4d41585f4255434b45545f53495a451b496e76616c696420746172676574206275636b65742073697a652e08000000000000001545494e56414c49445f4255434b45545f494e44455815496e76616c6964206275636b657420696e6465782e09000000000000001545494e56414c49445f564543544f525f494e44455825496e76616c696420766563746f7220696e6465782077697468696e2061206275636b65742e00000002030203030900040901010206060b0202030a0b00020900090109030a020b030c020d0301050005000100000c3e0e0138000c020a003700140a003701140a0211020c030b0037020b0338010c04090c050600000000000000000c030a030a04410b23043b0a040a03420b0c060a063703140a022104360b0637040e01210c070b070c050a0504310b04010b05020b03060100000000000000160c0305150b0601090c0705290b0401052f0401000006050600000000000000003100060000000000000000380202060100000f3c0a003700140a003701140e01380011020c020b0037020b0238010c030a03410b0c020600000000000000000c04090c050a0504360b04060100000000000000160c040a040a022304310a030a04420b0c060a0637040e0121042e0b03010b063705020b060105160b0301060100000000000000110727080c05051c0b0301053308010000133d0a003700140a003701140e01380011020c020b0036020b0238030c030a032e410b0c020600000000000000000c04090c050a0504370b04060100000000000000160c040a040a022304320a030a04430b0c060a0637040e0121042f0b03010b063605020b060105170b0301060100000000000000110727080c05051d0b030105340a01000006050d0038040b003805020c01000017300e0037061406000000000000000021042d0600000000000000000c01090c020e003701140c03051005210a02042a0b01060100000000000000160c010a010a0323031b05210d0036020a013806460b0000000000000000050e0b003a000101010101380702080c0205160603000000000000001107270f01000006040b0037061402100100001a4b0a003700140a003701140e01380011020c020a0036020b0238030c030a032e410b0c020600000000000000000c04090c050a0504430b04060100000000000000160c040a040a0223043c0a032e0a04420b37040e0121032a05170b030b0438083a010b0036060c060a0614060100000000000000170b06150c0701010b07020b00010b0301060100000000000000110727080c05051d0b00010b03010540120100001d7a0e0138000c030a003700140a003701140a0311020c040a0036020b0438030c050a052e410b0610270000000000002504730a052e0c06080c070600000000000000000c040a040a06410b2304700a060a04420b37040e01220c070a07036b0b06010b0704640b030b010b0239010c080a0037071406000000000000000021033c05490e08380906010000000000000011140c090600040000000000000b091a06010000000000000011140a003607150b050b08440b0a0036060c0a0a0a14060100000000000000160b0a150a002e380a0a00370814342604610b00380b020b000105600b00010b05010604000000000000001107270b04060100000000000000160c04051e0b0601052e0b00010b0501060700000000000000111727180100000a110a000a01380c030a0b00010b020c030b03020b02010b000b01380d0c03050819010000060e0a002e0a01380c0406050a0a000a010b02380e0b000b01380f021a01000011120a002e0a01380c030a0b000a010b02380e020b000b01380f0c030b020b031505091b01000006040b00370114020200000006170b020601000000000000000a003101162f190c020a020b012304100b020c010b01020b020601000000000000000b002f190c01050e1c01000021330b010c030b020c040d0338100d0438110b030c050b040c060e0541020c070a070e06411521042f05150a070600000000000000002404280d0545020c080d0645150c090a000b080b09380e0b07060100000000000000170c0705150b00010b05460200000000000000000b0646150000000000000000020b0001060200020000000000271e01000006090a000600000000000000000600000000000000000b00381238130101022001000006030b003702022101000006030b003602022201000006050a0037040b003705022301000006050a0036040b003605020b0100001731400b00000000000000000a0036020600000000000000003803150601000000000000000c01090c020a003701140c03051005210a02042e0b01060100000000000000160c010a010a0323031b05210a0036020a01380601050e0601000000000000000a0036011531000a003600150600000000000000000b0036061502080c0205161f0100002cb1010a003701140c040b0037020c050a010a042304ad010a050a013801410b0c070a020b072304a801080c080b0804a401400200000000000000000c090a030600000000000000002104260b05010b090b0138140b023814020b010c0a090c0b0a040c0c0a0b049e010b0a060100000000000000160c0a0a0a0a0c230498010a050a0a38010c060a06410b0c070b020c0d090c0e0a070c0f0a0e0492010b0d060100000000000000160c0d0a0d0a0f23048d010d090a060a0d420b37041444020b03060100000000000000170c030a0306000000000000000021035d05430b05010b06010b0d060100000000000000160c0d0a0d0b07210484010b0a060100000000000000160c0a0a0a0b0423047d0b090c100b0a38140c1106000000000000000038140c120b100b110b12020b090c1038150c1138150c1205790b090c100b0a38140c110b0d38140c1205790b06010600000000000000000c02052c080c0e05490b0601058f010b05010b093815381502080c0b05320b0501059a010b0501060900000000000000270a02060000000000000000210c0805160b05010608000000000000002715010000060e0a00370614066400000000000000180a003701141a0b003707141a02050100002e3a0a01316425043738160c030d03060000000000000000400b000000000000000038170b030c040601000000000000000c0531000c060600000000000000000c070a013100210434314b0c080b040b050b060b070b080b0239000c090a0006000000000000000021032505270602000000000000000c000a000601000000000000002404320b00060100000000000000170c000d09380b05270b09020b010c080518060500000000000000110727160000002f86010a003701140c010a010601000000000000000a003700142f1d0c020a01060100000000000000160a003601150a02060100000000000000160601000000000000000a003700142f21031d05260a0036000c030a03143101160b03150a0036020b0238030c040a040c050600000000000000000c020a052e410b0c060a020a06230338054b0a052e0a02420b0c070a003700140a003701140b0737031411020a0122038101054b0a020c080b02060100000000000000160c020a020a062304750a052e0a02420b0c070a003700140a003701140b0737031411020a0122036805700a050a080a02470b0b08060100000000000000160c080b02060100000000000000160c0205510b05010b040b0838180c090b0036020b010b093817020b02060100000000000000160c02053329010000324e38190c010600000000000000000c02090c030a003701140c040a0304480b02060100000000000000160c020a020a042304440a0037020a0238010c05400200000000000000000c06401500000000000000000c070600000000000000000c080a05410b0c090a080a092304390a050a08420b0c0a0d060a0a37041444020d070b0a37051444150b08060100000000000000160c0805220b05010b060c0b0b070c0c0d010b0b0b0c381a050a0b00010b0102080c0305100b000105462c01000034190a0131642504160a013100240c020b0204110b0036080c030b010b0315020b0001060500000000000000110727090c0205082d01000036100a0106000000000000000024040b0b0036070c020b010b0215020b000106060000000000000011072701020101010000000001000201030105010400050105020503050405050506050705080500",
    "abi": {
      "address": "0x1",
      "name": "smart_table",
      "friends": [],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::smart_table::SmartTable<T0, T1>"
          ]
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>",
            "T0"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>",
            "T0"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "destroy",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>",
            "T0"
          ],
          "return": [
            "T1"
          ]
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        },
        {
          "name": "borrow_with_default",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>",
            "T0",
            "&T1"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "borrow_mut_with_default",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>",
            "T0",
            "T1"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "upsert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        },
        {
          "name": "num_buckets",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "add_all",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>",
            "vector<T0>",
            "vector<T1>"
          ],
          "return": []
        },
        {
          "name": "keys",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "copy",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "borrow_buckets",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": [
            "&0x1::table_with_length::TableWithLength<u64, vector<0x1::smart_table::Entry<T0, T1>>>"
          ]
        },
        {
          "name": "borrow_buckets_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": [
            "&mut 0x1::table_with_length::TableWithLength<u64, vector<0x1::smart_table::Entry<T0, T1>>>"
          ]
        },
        {
          "name": "borrow_kv",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_table::Entry<T0, T1>"
          ],
          "return": [
            "&T0",
            "&T1"
          ]
        },
        {
          "name": "borrow_kv_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_table::Entry<T0, T1>"
          ],
          "return": [
            "&mut T0",
            "&mut T1"
          ]
        },
        {
          "name": "clear",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "keys_paginated",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "copy",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>",
            "u64",
            "u64",
            "u64"
          ],
          "return": [
            "vector<T0>",
            "0x1::option::Option<u64>",
            "0x1::option::Option<u64>"
          ]
        },
        {
          "name": "load_factor",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "new_with_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "u64",
            "u8",
            "u64"
          ],
          "return": [
            "0x1::smart_table::SmartTable<T0, T1>"
          ]
        },
        {
          "name": "to_simple_map",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "copy",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": [
            "0x1::simple_map::SimpleMap<T0, T1>"
          ]
        },
        {
          "name": "update_split_load_threshold",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>",
            "u8"
          ],
          "return": []
        },
        {
          "name": "update_target_bucket_size",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Entry",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "hash",
              "type": "u64"
            },
            {
              "name": "key",
              "type": "T0"
            },
            {
              "name": "value",
              "type": "T1"
            }
          ]
        },
        {
          "name": "SmartTable",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "buckets",
              "type": "0x1::table_with_length::TableWithLength<u64, vector<0x1::smart_table::Entry<T0, T1>>>"
            },
            {
              "name": "num_buckets",
              "type": "u64"
            },
            {
              "name": "level",
              "type": "u8"
            },
            {
              "name": "size",
              "type": "u64"
            },
            {
              "name": "split_load_threshold",
              "type": "u8"
            },
            {
              "name": "target_bucket_size",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c010008020814031c72058e0183010791028f0508a0072006c0072210e20794020af609380cae0ad30c0d8117220fa3170600000018001b001e000107000005070000080800000f0b0000110700001700010001011900010001001a02030001021c04040001001d01010001031f0102000100200604000100210604000100220604000102230404000100240208000100250903000100260a04000100270b04000100280d010001022904040001002a0f100001002b11120001002c1301000101060c00020303010800010304060c08040804080302060804030403030608030708020108010303030a08010303030608000503030303030e03060a0801030308010608010801060801030801080103030301060a080101010208040804010803040308000800080001080402060c08030107080307030308010608010801060801010b73746f726167655f676173084761734375727665076d696e5f676173076d61785f67617306706f696e747305506f696e74017801790a53746f726167654761730d7065725f6974656d5f726561640f7065725f6974656d5f6372656174650e7065725f6974656d5f77726974650d7065725f627974655f726561640f7065725f627974655f6372656174650e7065725f627974655f77726974651053746f72616765476173436f6e6669670b6974656d5f636f6e6669670e5573616765476173436f6e6669670b627974655f636f6e6669670c7461726765745f75736167650a726561645f63757276650c6372656174655f63757276650b77726974655f63757276650a696e697469616c697a651073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b1b626173655f383139325f6578706f6e656e7469616c5f6375727665056572726f720e616c72656164795f6578697374730b6f6e5f7265636f6e6669670d73746174655f73746f726167651763757272656e745f6974656d735f616e645f62797465731263616c63756c6174655f726561645f6761731463616c63756c6174655f6372656174655f6761731363616c63756c6174655f77726974655f676173096e6f745f666f756e64096e65775f706f696e740d6e65775f6761735f63757276650d63616c63756c6174655f6761730b696e746572706f6c6174650f76616c69646174655f706f696e747310696e76616c69645f617267756d656e74166e65775f73746f726167655f6761735f636f6e666967146e65775f75736167655f6761735f636f6e6669670a7365745f636f6e6669670f7265636f6e66696775726174696f6e0c6761735f7363686564756c650767656e6573697300000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631e001070000000000000000134553544f524147455f4741535f434f4e4649470001000000000000000c4553544f524147455f4741530002000000000000001245494e56414c49445f4741535f52414e474500030000000000000012455a45524f5f5441524745545f555341474500040000000000000015455441524745545f55534147455f544f4f5f4249470005000000000000002b45494e56414c49445f4d4f4e4f544f4e4943414c4c595f4e4f4e5f44454352454153494e475f43555256450006000000000000001445494e56414c49445f504f494e545f52414e474500000000020302030303040a08010102020603070302020609030a030b030c030d030e0303020210080412080404020413031408001508001608000001000005390a00110107002903033406009435770000000006e0930400000000000680c3c90100000000110206e0930400000000000680c3c90100000000110206e0930400000000000680c3c9010000000011021204060010a5d4e8000000062c0100000000000006307500000000000011020688130000000000000620a107000000000011020688130000000000000620a1070000000000110212040a000c0112030c040b010b042d0307002902032f0b0006e09304000000000006404b4c000000000006e093040000000000062c0100000000000006881300000000000006881300000000000012022d02020b00010601000000000000001103270b0001060000000000000000110327040300020203074007002903043d07002902043a11050c000c0107002b030c0207002a020c030a0210000a0111060a030f01150a0210000a0111070a030f02150a0210000b0111080a030f03150a0210040a0011060a030f05150a0210040a0011070a030f06150b0210040b0011080b030f0715020601000000000000001109270600000000000000001109270201000001260b000b0106e803000000000000060200000000000000110a06d007000000000000060600000000000000110a06b80b000000000000061100000000000000110a06a00f000000000000062c00000000000000110a068813000000000000066d00000000000000110a067017000000000000060f01000000000000110a06581b000000000000069d02000000000000110a06401f000000000000067006000000000000110a06282300000000000006dd0f000000000000110a061c2500000000000006e418000000000000110a06ac2600000000000006b223000000000000110a40080b00000000000000110b020700000001080a001008140b010b001009110c020c0000000c9b010a010a00240498010a000c030a02100a0c040a0441080c050b03061027000000000000180b001a0c060a0506000000000000000021043e0b040106000000000000000006000000000000000012010c070e070c0806102700000000000006102700000000000012010c090e090c0a0a08100b140a0a100b140b08100c140b0a100c140b06110d0c0b0600000000000000000610270000000000000a02100d140b02100e140b0b110d020a060a040600000000000000004208100b1423045106000000000000000006000000000000000012010c0c0e0c0c080b0406000000000000000042080c0a05240a040a05060100000000000000174208100b140a062504680b040b050601000000000000001742080c0806102700000000000006102700000000000012010c0d0e0d0c0a05240600000000000000000c0e0a05060200000000000000170c0f280a0e0a0f23048d010a0f0a0f0a0e170602000000000000001a170c100a060a040a104208100b1423048901280b10060100000000000000170c0f056e280b100c0e056e0a040a0e42080c080b040b0e0601000000000000001642080c0a05240b010c0305060600000001080a001008140b010b00100f110c020800000001080a001008140b010b001010110c020d000000010e0a020b040a00170b030b0217180b010b00171a16020b01000001150a010a002604120a0106cb10c7bab88d060025040f0e02110e0b000b010b02120002060200000000000000110f27060200000000000000110f270a0100000e140a000610270000000000002504110a01061027000000000000250c020b02040e0b000b01120102060600000000000000110f27090c0205081001000001040b000b011203021101000001140a000600000000000000002404110a0006cb10c7bab88d060025040e0b000b010b020b03120402060400000000000000110f27060300000000000000110f27120300010314090b00110107002a030c020b010b0215020e00000015510a0041080c01280600000000000000000c02280a020a0125044e0a0206000000000000000021044706000000000000000006000000000000000012010c030e030c040a020a0121044206102700000000000006102700000000000012010c050e050c060a04100b140a06100b1423043b0b04100c140b06100c14250c070b0704360b02060100000000000000160c0205060b0001060500000000000000110f270b04010b0601090c07052f0a000a0242080c06051f0a000a020601000000000000001742080c0405150b00010203000200020102020301020302040205040004020002010001010000000104010403002d002e002f00",
    "abi": {
      "address": "0x1",
      "name": "storage_gas",
      "friends": [
        "0x1::reconfiguration",
        "0x1::gas_schedule",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "on_reconfig",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        },
        {
          "name": "base_8192_exponential_curve",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "0x1::storage_gas::GasCurve"
          ]
        },
        {
          "name": "new_gas_curve",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64",
            "vector<0x1::storage_gas::Point>"
          ],
          "return": [
            "0x1::storage_gas::GasCurve"
          ]
        },
        {
          "name": "new_point",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "0x1::storage_gas::Point"
          ]
        },
        {
          "name": "new_storage_gas_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::storage_gas::UsageGasConfig",
            "0x1::storage_gas::UsageGasConfig"
          ],
          "return": [
            "0x1::storage_gas::StorageGasConfig"
          ]
        },
        {
          "name": "new_usage_gas_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "0x1::storage_gas::GasCurve",
            "0x1::storage_gas::GasCurve",
            "0x1::storage_gas::GasCurve"
          ],
          "return": [
            "0x1::storage_gas::UsageGasConfig"
          ]
        },
        {
          "name": "set_config",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::storage_gas::StorageGasConfig"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "GasCurve",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "min_gas",
              "type": "u64"
            },
            {
              "name": "max_gas",
              "type": "u64"
            },
            {
              "name": "points",
              "type": "vector<0x1::storage_gas::Point>"
            }
          ]
        },
        {
          "name": "Point",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "x",
              "type": "u64"
            },
            {
              "name": "y",
              "type": "u64"
            }
          ]
        },
        {
          "name": "StorageGas",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "per_item_read",
              "type": "u64"
            },
            {
              "name": "per_item_create",
              "type": "u64"
            },
            {
              "name": "per_item_write",
              "type": "u64"
            },
            {
              "name": "per_byte_read",
              "type": "u64"
            },
            {
              "name": "per_byte_create",
              "type": "u64"
            },
            {
              "name": "per_byte_write",
              "type": "u64"
            }
          ]
        },
        {
          "name": "StorageGasConfig",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "item_config",
              "type": "0x1::storage_gas::UsageGasConfig"
            },
            {
              "name": "byte_config",
              "type": "0x1::storage_gas::UsageGasConfig"
            }
          ]
        },
        {
          "name": "UsageGasConfig",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "target_usage",
              "type": "u64"
            },
            {
              "name": "read_curve",
              "type": "0x1::storage_gas::GasCurve"
            },
            {
              "name": "create_curve",
              "type": "0x1::storage_gas::GasCurve"
            },
            {
              "name": "write_curve",
              "type": "0x1::storage_gas::GasCurve"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b010006020604030a2a053408073cb60108f201200692022210b402dd010a9104050c9604570fed040200000005000a00010800000300000001000400010001010602020001000700000001000800010001000903000001020b03000001000101010301060c0c636861696e5f7374617475731047656e65736973456e644d61726b65720b64756d6d795f6669656c640e6173736572745f67656e657369730a69735f67656e65736973056572726f720d696e76616c69645f7374617465106173736572745f6f7065726174696e670c69735f6f7065726174696e670f7365745f67656e657369735f656e641073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b0767656e6573697300000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631a9010201000000000000000e454e4f545f4f5045524154494e472e54686520626c6f636b636861696e206973206e6f7420696e20746865206f7065726174696e67207374617475732e02000000000000000c454e4f545f47454e455349532c54686520626c6f636b636861696e206973206e6f7420696e207468652067656e65736973207374617475732e00020a69735f67656e657369730101000c69735f6f7065726174696e6701010000020102010001000000061101040302060100000000000000110227030100000006110404030206010000000000000011022701010000000407002900200204010000000307002900020503000000070a0011060b000912002d0002000c00",
    "abi": {
      "address": "0x1",
      "name": "chain_status",
      "friends": [
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "assert_genesis",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        },
        {
          "name": "assert_operating",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        },
        {
          "name": "is_genesis",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_operating",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "set_genesis_end",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "GenesisEndMarker",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b01000c020c0803142f04430605491b07647c08e0012010800295010a9503090c9e033e0ddc03040000000400070008000b000d0001070001030700000200010001000603040107010202020501000103090607010001000a0403010001040c0703010001050e0808000102030303050301060800010608010001090001080001080101060900010a0201030c636f707961626c655f616e7903416e7909747970655f6e616d6506537472696e6706737472696e670464617461047061636b09747970655f696e666f0362637308746f5f627974657306756e7061636b0866726f6d5f6263730a66726f6d5f6279746573056572726f7210696e76616c69645f617267756d656e74000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631620100000000000000000e45545950455f4d49534d415443484754686520747970652070726f766964656420666f722060756e7061636b60206973206e6f74207468652073616d652061732077617320676976656e20666f7220607061636b602e0000000202020801050a020001000002030b0010000201010000020538000e00380112000204010000020e38000e0010001421040b0e001001143802020600000000000000001106270000000100",
    "abi": {
      "address": "0x1",
      "name": "copyable_any",
      "friends": [],
      "exposed_functions": [
        {
          "name": "type_name",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::copyable_any::Any"
          ],
          "return": [
            "&0x1::string::String"
          ]
        },
        {
          "name": "pack",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "0x1::copyable_any::Any"
          ]
        },
        {
          "name": "unpack",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::copyable_any::Any"
          ],
          "return": [
            "T0"
          ]
        }
      ],
      "structs": [
        {
          "name": "Any",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "type_name",
              "type": "0x1::string::String"
            },
            {
              "name": "data",
              "type": "vector<u8>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d010018021814032c7804a4010c05b0014107f101a1040892062006b2062210d406d4010aa808180cc008b0030df00b020ff20b0400000004000b000d001100130015001a001c001f00210025000107000103070000060b0000080f000b240b00000a00010001020c00010001030e0103010401030f0104010401001006010001041208030100010514090401000106160a0a00010017060100010318040101060100190c010001071b0d09010001081d09090001001e060100010920010100010a220101000100230f0100010b260f01000100270f010001020203020507060209020b0201060c00010803010101090002080307080302060c0a02010201060a0900010a02010302080306080303060c0a020a0201060900030708030803080302060c08040c6761735f7363686564756c6508476173456e747279036b657906537472696e6706737472696e670376616c0b4761735363686564756c6507656e74726965730d4761735363686564756c6556320f666561747572655f76657273696f6e0c6f6e5f6e65775f65706f63681073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b0d636f6e6669675f6275666665720a646f65735f65786973740a657874726163745f76320a696e697469616c697a6506766563746f720869735f656d707479047574696c0a66726f6d5f6279746573056572726f7210696e76616c69645f617267756d656e74127365745f666f725f6e6578745f65706f6368067570736572741d7365745f666f725f6e6578745f65706f63685f636865636b5f686173680362637308746f5f62797465730a6170746f735f6861736808736861335f353132107365745f6761735f7363686564756c650c636861696e5f7374617475730e6173736572745f67656e657369730f7265636f6e66696775726174696f6e0b7265636f6e666967757265167365745f73746f726167655f6761735f636f6e6669671053746f72616765476173436f6e6669670b73746f726167655f6761730a7365745f636f6e666967257365745f73746f726167655f6761735f636f6e6669675f666f725f6e6578745f65706f6368187265636f6e66696775726174696f6e5f776974685f646b670767656e6573697300000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631a0010301000000000000001545494e56414c49445f4741535f5343484544554c45345468652070726f766964656420676173207363686564756c652062797465732061726520656d707479206f7220696e76616c696402000000000000001c45494e56414c49445f4741535f464541545552455f56455253494f4e0003000000000000001a45494e56414c49445f4741535f5343484544554c455f484153480000000002020208010503020201070a08000302020903070a0800000300010205190a0011013800041638010c010700290204120b000107002a020c020b010b0215020b000b012d0205110b000105110403000002110a0011010e013802030c0b0138030c020b000b022d02020b000106010000000000000011072708010001020b210b0011010e013802031e0b0138030c0207002902030c051807002b020c030e021000140b0310001426041b05180b023804020602000000000000001107270601000000000000001107270a010001020b2c0b0011010e02380203290b0238030c0307002902030c051e07002b020c040e031000140a041000142604240b043805110c0b01210421051e0b033804020603000000000000001107270b04010602000000000000001107270601000000000000001107270d01000201020e360a0011010e0138020331110e0700290204230b000107002a020c020b0138030c030e031000140a0210001426041e0b030b0215110f020b0201060200000000000000110727070029010327052a07002c01010b0138030c040b000b042d02051c0b00010601000000000000001107271001000001050b000b011111110f021201000001040b000b0111110202000028002900",
    "abi": {
      "address": "0x1",
      "name": "gas_schedule",
      "friends": [
        "0x1::reconfiguration_with_dkg",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch_check_hash",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "set_gas_schedule",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "set_storage_gas_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::storage_gas::StorageGasConfig"
          ],
          "return": []
        },
        {
          "name": "set_storage_gas_config_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::storage_gas::StorageGasConfig"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "GasEntry",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "key",
              "type": "0x1::string::String"
            },
            {
              "name": "val",
              "type": "u64"
            }
          ]
        },
        {
          "name": "GasSchedule",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "entries",
              "type": "vector<0x1::gas_schedule::GasEntry>"
            }
          ]
        },
        {
          "name": "GasScheduleV2",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "feature_version",
              "type": "u64"
            },
            {
              "name": "entries",
              "type": "vector<0x1::gas_schedule::GasEntry>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d01000a020a22032c7b04a7011405bb01b50107f002a2020892052010b205780aaa06150bbf06020cc106d7010d9808040e9c080400000004000a000e0012000108010001010305010001010605010001010805010001020c070001110401000100090001010001020b0203000101090506010001000d0801010001030f090a00010110080b010001010d0c0101000104130d0d000100140f010100010114100b010001011511010100010016090101000101160901010001001709010100010018090601000101191301010001011a1401010001011b150101000102040504060409040a040c040e040f041004110405060c0a020a02020100010a0201080401090005060c080408040201030b010109000b020109000b03010900040b030109000b020109000b010109000b0001090002060c0301060c0105010b05010900020b05010900060b0101090001030205060b0001090003060c05030203060b0301090002050b050109000305060b000109000b05010900010b01010900010b02010900010b03010900020b030109000b0201090004050b030109000b020109000b010109000c6d616e616765645f636f696e0c4361706162696c6974696573086275726e5f6361700e4275726e4361706162696c69747904636f696e0a667265657a655f63617010467265657a654361706162696c697479086d696e745f6361700e4d696e744361706162696c6974790a696e697469616c697a6506737472696e67047574663806537472696e67046275726e067369676e65720a616464726573735f6f6608776974686472617704436f696e056572726f72096e6f745f666f756e64046d696e74076465706f7369740872656769737465720c64657374726f795f636170730b72656d6f76655f636170731064657374726f795f6275726e5f6361701264657374726f795f667265657a655f6361701064657374726f795f6d696e745f636170000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76314501010000000000000010454e4f5f4341504142494c4954494553284163636f756e7420686173206e6f206361706162696c697469657320286275726e2f6d696e74292e0000000203020b01010900050b02010900070b03010900000400010400070e0a000b0111010b0211010b030b04380039000c080b000b083f000203010401000e150a0011040c020a023b0004100b023d000c030b000b0138010b0337003802020b0001060100000000000000110727080104010012150b0011040c030a033b0004120b033d000c040b020b04370138030c050b010b053804020601000000000000001107270b01040001030b003805020d01040100160a0b0038060c010c0238070b0238080b013809020e01000100170d0b0011040c010a013b00040a0b013e003a0002060100000000000000110727000000020004010400",
    "abi": {
      "address": "0x1",
      "name": "managed_coin",
      "friends": [],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>",
            "u8",
            "bool"
          ],
          "return": []
        },
        {
          "name": "burn",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "mint",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "register",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "destroy_caps",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "remove_caps",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::coin::BurnCapability<T0>",
            "0x1::coin::FreezeCapability<T0>",
            "0x1::coin::MintCapability<T0>"
          ]
        }
      ],
      "structs": [
        {
          "name": "Capabilities",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "burn_cap",
              "type": "0x1::coin::BurnCapability<T0>"
            },
            {
              "name": "freeze_cap",
              "type": "0x1::coin::FreezeCapability<T0>"
            },
            {
              "name": "mint_cap",
              "type": "0x1::coin::MintCapability<T0>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a08010008020804030c54056029078901c10108ca022010ea02630ccd039a07000000030006000b01020700000100010001010401030001010503010001020704040001000806010001000907080001000a01010001030a03030001000c01010001000d08080001020e04040001000f010100010310030100010011010100010308000800080001080000010401030304040402080003020f04010f02040f090f020f0f0f0f0f0f0f0c6d6174685f66697865643634076d756c5f6469760c4669786564506f696e7436340d66697865645f706f696e7436340d6765745f7261775f76616c7565156372656174655f66726f6d5f7261775f76616c7565056572726f7210696e76616c69645f617267756d656e7403706f7707706f775f7261770473717274076d61746831323803657870076578705f7261770d696e76616c69645f73746174650d6c6e5f706c75735f33326c6e32076c6f67325f36340c6c6f67325f706c75735f3634000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631300101000000000000000d454f564552464c4f575f4558501641626f727420636f6465206f6e206f766572666c6f77000000010000051b0b0011010c030b0111010c040b0211010c050a0532000000000000000000000000000000002204180b034d0b044d180b054d1a351102020604000000000000001103270401000002090b0011014d0b01351105351102020601000009160b0011010c010a01110731202f4d0c020a020b014d31402f0b021a16310130351102020801000002070b0011014d110935110202090000000a6d0a004aac79cfd1f71772b10000000000000000000000000000000000000000000000001a0c010a014a3f0000000000000000000000000000000000000000000000000000000000000025046a0b01330c020b004aac79cfd1f71772b1000000000000000000000000000000000000000000000000190c030a034a3b6dd64b23524e000000000000000000000000000000000000000000000000001a0c040b034a3b6dd64b23524e00000000000000000000000000000000000000000000000000190c034ab7d3a4981f5e4e000100000000000000000000000000000000000000000000000a043511050c050a054aa260d58b904c0a03000000000000000000000000000000000000000000000000180b04183180300c040b050b04170c050a050a031831400a0217300c040a040a03183140300c060a060a03183140300c070a070a03183140300c080a080a03183140300c090a090b03183140300b050b022f0b04160b064a02000000000000000000000000000000000000000000000000000000000000001a160b074a06000000000000000000000000000000000000000000000000000000000000001a160b084a18000000000000000000000000000000000000000000000000000000000000001a160b094a78000000000000000000000000000000000000000000000000000000000000001a160c044ad0020000000000000000000000000000000000000000000000000000000000001a0c030b040b031602060100000000000000110a270b010000020c0b001101110c11014d4aac79cfd1f71772b100000000000000000000000000000000000000000000000018314030351102020500000008204a00000000000000000100000000000000000000000000000000000000000000000c020a01320000000000000000000000000000000022041e0a0132010000000000000000000000000000001c320000000000000000000000000000000022030d05130b020a00183140300c020b013101300c010a000b00183140300c0005020b02020d01000002040b001101110c0200",
    "abi": {
      "address": "0x1",
      "name": "math_fixed64",
      "friends": [],
      "exposed_functions": [
        {
          "name": "mul_div",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "pow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "u64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "sqrt",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "exp",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "ln_plus_32ln2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "log2_plus_64",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b01000402040403081805201a073aaa0108e401201084021f0aa3020f0cb202c30111f50314138904020000000900010f00000800010001010a02030001000b04020001000c0607000102030301080000010301070800040303030703020708000301010c726174655f6c696d697465720b526174654c696d697465720b546f6b656e4275636b65740863617061636974790e63757272656e745f616d6f756e740f726566696c6c5f696e74657276616c156c6173745f726566696c6c5f74696d657374616d70166672616374696f6e616c5f616363756d756c617465640a696e697469616c697a650974696d657374616d700b6e6f775f7365636f6e647306726566696c6c0772657175657374000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e310003010205030304030503060307030001000002070a000b000b01110106000000000000000052000202000000054211010c010a010a004e0014170a004e0114180a004e0214160c020a020a004e03141a0c030a004e04140a03160a004e01142604310a004e01140a004f04150600000000000000000a004f02150b004f000c040b010b0415020a004e04140b03160a004f04150b020a004e0314190a004f0215052a0301000007190a0011020a004e04140a012604140a004e04140b01170b004f0415080c020b02020b0001090c0205120003010000000100000401000002010000010100000000",
    "abi": {
      "address": "0x1",
      "name": "rate_limiter",
      "friends": [],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "0x1::rate_limiter::RateLimiter"
          ]
        },
        {
          "name": "request",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::rate_limiter::RateLimiter",
            "u64"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "RateLimiter",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": []
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c01000a020a12031cfd030499041205ab04db01078606e40d08ea1320068a149001109a15d9030af318110c8419d4090dd8220600000007000a0017001f000107000003020000050700041e07010000000600010001010802030100010009060702000001020b07070001000c09040001000d0a0b0001000e08010001000f0b0c00010010080d000100110e01000100120f07000100131001000100140b07000100150d0b0001001611010001031808030001021907070001001a12070001001b08010001001c13010001001d0b14000100200b030001042115160100010422081601000100230b17000100240b07000100250b17000100260b01000100270b07000100280b01000100290b1a0001002a0b030001002b0b040001002c0b0b0001002d0b040001002e1b040001002f1b0b000100301c0400010031070b000100320704000100331804000100340804000100350b1a000100360b0b000100370b1a000100380b0b000100391e010001003a1f070001003b20210001003c22010001003d07070001003e220d0001003f220b000100401e0300010041080100010042080700010043080d0001004423010001004524070001004625210001004722010001004826070001004921210001004a1e010001004b1f070001004c20210001004d130b0001004e09040001004f0a0b00010050272800010051090300010052101a000100531003000100540b0b000100551003000100562728000100571004000100580b0b0001005928280001005a08040001005b09040001005c0a0b0001005d27280001005e100b0001010101040205160d170d160117011604170402060a0801060a080201080101060a09000101010802020801080202060a0900060a090101030002060802060802020a020a02010a0202030101080003060802060801060802030a020608010a0201060802040608020608010608020608010403030a020a0201060800010b03010800010900010b03010900010b0301080101020301030b03010801010b030108020104010e020802070202060801060801030608010608010102070801060801010708010106080102060801060802030608010a020102070801060802020608010102070802060802010708020c72697374726574746f32353513436f6d7072657373656452697374726574746f04646174610e52697374726574746f506f696e740668616e646c65065363616c6172106d756c74695f7363616c61725f6d756c06766563746f720869735f656d707479196d756c74695f7363616c61725f6d756c5f696e7465726e616c056572726f7210696e76616c69645f617267756d656e740a7363616c61725f6d756c137363616c61725f6d756c5f696e7465726e616c0962617365706f696e7419706f696e745f6465636f6d70726573735f696e7465726e616c1462617365706f696e745f636f6d707265737365641462617365706f696e745f646f75626c655f6d756c1d62617365706f696e745f646f75626c655f6d756c5f696e7465726e616c0d62617365706f696e745f6d756c1662617365706f696e745f6d756c5f696e7465726e616c19636f6d707265737365645f706f696e745f746f5f627974657311646f75626c655f7363616c61725f6d756c0866656174757265731462756c6c657470726f6f66735f656e61626c65640d696e76616c69645f73746174651a646f75626c655f7363616c61725f6d756c5f696e7465726e616c12686173685f746f5f706f696e745f6261736510706f696e745f6465636f6d70726573731f6e65775f636f6d707265737365645f706f696e745f66726f6d5f6279746573064f7074696f6e066f7074696f6e1b706f696e745f69735f63616e6f6e6963616c5f696e7465726e616c04736f6d65046e6f6e651f6e65775f706f696e745f66726f6d5f36345f756e69666f726d5f6279746573286e65775f706f696e745f66726f6d5f36345f756e69666f726d5f62797465735f696e7465726e616c146e65775f706f696e745f66726f6d5f6279746573176e65775f706f696e745f66726f6d5f736861325f3531321e6e65775f706f696e745f66726f6d5f7368613531325f696e7465726e616c156e65775f706f696e745f66726f6d5f736861353132156e65775f7363616c61725f66726f6d5f62797465731c7363616c61725f69735f63616e6f6e6963616c5f696e7465726e616c186e65775f7363616c61725f66726f6d5f736861325f3531321b7363616c61725f66726f6d5f7368613531325f696e7465726e616c166e65775f7363616c61725f66726f6d5f736861353132146e65775f7363616c61725f66726f6d5f75313238197363616c61725f66726f6d5f753132385f696e7465726e616c136e65775f7363616c61725f66726f6d5f753332187363616c61725f66726f6d5f7536345f696e7465726e616c136e65775f7363616c61725f66726f6d5f753634126e65775f7363616c61725f66726f6d5f75380b7363616c61725f7a65726f206e65775f7363616c61725f726564756365645f66726f6d5f33325f6279746573257363616c61725f726564756365645f66726f6d5f33325f62797465735f696e7465726e616c206e65775f7363616c61725f756e69666f726d5f66726f6d5f36345f6279746573257363616c61725f756e69666f726d5f66726f6d5f36345f62797465735f696e7465726e616c09706f696e745f61646412706f696e745f6164645f696e7465726e616c10706f696e745f6164645f61737369676e0b706f696e745f636c6f6e6514706f696e745f636c6f6e655f696e7465726e616c0e706f696e745f636f6d707265737317706f696e745f636f6d70726573735f696e7465726e616c0c706f696e745f657175616c730e706f696e745f6964656e7469747917706f696e745f6964656e746974795f696e7465726e616c19706f696e745f6964656e746974795f636f6d7072657373656409706f696e745f6d756c12706f696e745f6d756c5f696e7465726e616c10706f696e745f6d756c5f61737369676e09706f696e745f6e656712706f696e745f6e65675f696e7465726e616c10706f696e745f6e65675f61737369676e09706f696e745f73756212706f696e745f7375625f696e7465726e616c10706f696e745f7375625f61737369676e0e706f696e745f746f5f62797465730a7363616c61725f616464137363616c61725f6164645f696e7465726e616c117363616c61725f6164645f61737369676e0d7363616c61725f657175616c730d7363616c61725f696e766572740e7363616c61725f69735f7a65726f167363616c61725f696e766572745f696e7465726e616c0d7363616c61725f69735f6f6e65117363616c61725f6d756c5f61737369676e0a7363616c61725f6e6567137363616c61725f6e65675f696e7465726e616c117363616c61725f6e65675f61737369676e0a7363616c61725f6f6e650a7363616c61725f737562137363616c61725f7375625f696e7465726e616c117363616c61725f7375625f61737369676e0f7363616c61725f746f5f627974657300000000000000000000000000000000000000000000000000000000000000010a022120e2f2ae0a6abc4e71a884a961c500515f58e30b6aa582dd8db6a65945e08d2d760a0221208c9240b456a9e6dc65c377a1048d745f94a08cdb7f44cbcd7b46f340488711340a02212000000000000000000000000000000000000000000000000000000000000000000a022120010000000000000000000000000000000000000000000000000000000000000014636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631a50305010000000000000022455f444946464552454e545f4e554d5f504f494e54535f414e445f5343414c4152533a546865206e756d626572206f66207363616c61727320646f6573206e6f74206d6174636820746865206e756d626572206f6620706f696e74732e02000000000000000d455f5a45524f5f504f494e5453284578706563746564206d6f7265207468616e207a65726f20706f696e747320617320696e7075742e03000000000000000e455f5a45524f5f5343414c415253294578706563746564206d6f7265207468616e207a65726f207363616c61727320617320696e7075742e040000000000000019455f544f4f5f4d414e595f504f494e54535f4352454154454447546f6f206d616e7920706f696e74732068617665206265656e206372656174656420696e207468652063757272656e74207472616e73616374696f6e20657865637574696f6e2e05000000000000001a455f4e41544956455f46554e5f4e4f545f415641494c41424c452e546865206e61746976652066756e6374696f6e20686173206e6f74206265656e206465706c6f796564207965742e0000000201020a020102010403020201020a020001000008260a003800031f0a01380103180a0041010a0141042104110b000b0138021201020b00010b01010601000000000000001103270b00010b01010603000000000000001103270b00010b0101060200000000000000110327020002000401000008090b001000140b011000141105120202050002000601000008050700110701120102080100000803070012000209010000080a0b001000140b010b02100014110a1201020a0002000b01000008060b00100014110c1201020c0002000d01000008040e00100114020e010000081c110f030d0b00010b01010b02010b03010605000000000000001110270b011002140b031002140b001000140b02100014111112010211000200120100000d06070112000c000e0011130214010000140c0a00111504090b00120038030c010b010238040c01050718010000170f0e00411806400000000000000021040c0b001119120138050c010b010238060c01050a190002001a010000190f0b0011070c010c020b01040c0b02120138050c030b030238060c03050a1b01000008040b00111c1201021d01000008030b00111b021c0002001e0100001a0c0a00111f04090b00120238070c010b010238080c0105072001000008040b0011211202022201000008030b001120022301000008040b0011241202022501000008050b003411261202022701000008040b001126120202280100001d0c11290c010d010f0006000000000000000043180c020b000b02150b01022a0100001a0f0e00411806200000000000000021040c0b00112b120238070c010b010238080c01050a2c0100001a0f0e00411806400000000000000021040c0b00112d120238070c010b010238080c01050a2e01000008060b000b0109112f1201023001000008080a002e0b0108112f010b00022f00020031010000080d110f03070b00010605000000000000001110270b001002141132120102320002003301000008040b001134120002340002001301000008070b0010011411070112010207000200350102003601000008031137120102380100000803070212000237000200150002003901000008080b000b0110001409113a1201023b010000080a0a002e0b0110001408113a010b00023a0002003c01000008050b0009113d1201023e01000008070a002e08113d010b00023d0002003f01000008060b000b010911401201024101000008080a002e0b01081140010b0002400002004201000008040b00100114024301000008090b001000140b01100014114412020245010000040d0a002e0b0111430c020e021000140a000f00150b0002440002004601000008080b001000140b011000142102210002002400020026000200470100001a110a00114804090b000138080c010b01020b001000141149120238070c010507490002001f0002004a01000008060b00100014070321024801000008060b00100014070221024b010000040d0a002e0b0111040c020e021000140a000f00150b00024c01000008060b00100014114d1202024e010000040c0a002e114c0c010e011000140a000f00150b00024d0002004f010000080307031202022b0002005001000008090b001000140b01100014115112020252010000040d0a002e0b0111500c020e021000140a000f00150b0002510002005301000008040b00100014022d000200290100000803070212020202000000010000",
    "abi": {
      "address": "0x1",
      "name": "ristretto255",
      "friends": [],
      "exposed_functions": [
        {
          "name": "multi_scalar_mul",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&vector<0x1::ristretto255::RistrettoPoint>",
            "&vector<0x1::ristretto255::Scalar>"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "scalar_mul",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "basepoint",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "basepoint_compressed",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::ristretto255::CompressedRistretto"
          ]
        },
        {
          "name": "basepoint_double_mul",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "basepoint_mul",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "compressed_point_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ristretto255::CompressedRistretto"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "double_scalar_mul",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "hash_to_point_base",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "new_compressed_point_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255::CompressedRistretto>"
          ]
        },
        {
          "name": "new_point_from_64_uniform_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255::RistrettoPoint>"
          ]
        },
        {
          "name": "new_point_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255::RistrettoPoint>"
          ]
        },
        {
          "name": "new_point_from_sha2_512",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "new_point_from_sha512",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "new_scalar_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255::Scalar>"
          ]
        },
        {
          "name": "new_scalar_from_sha2_512",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "new_scalar_from_sha512",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "new_scalar_from_u128",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "new_scalar_from_u32",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u32"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "new_scalar_from_u64",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "new_scalar_from_u8",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u8"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "new_scalar_reduced_from_32_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255::Scalar>"
          ]
        },
        {
          "name": "new_scalar_uniform_from_64_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255::Scalar>"
          ]
        },
        {
          "name": "point_add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_add_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "&mut 0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_clone",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_compress",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255::CompressedRistretto"
          ]
        },
        {
          "name": "point_decompress",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::CompressedRistretto"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_equals",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "point_identity",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_identity_compressed",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::ristretto255::CompressedRistretto"
          ]
        },
        {
          "name": "point_mul",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_mul_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "&mut 0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_neg",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_neg_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "&mut 0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_sub_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "&mut 0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::CompressedRistretto"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "scalar_add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "scalar_add_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255::Scalar",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "&mut 0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "scalar_equals",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "scalar_invert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255::Scalar>"
          ]
        },
        {
          "name": "scalar_is_one",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "scalar_is_zero",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "scalar_mul_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255::Scalar",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "&mut 0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "scalar_neg",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "scalar_neg_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255::Scalar"
          ],
          "return": [
            "&mut 0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "scalar_one",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "scalar_sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "scalar_sub_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255::Scalar",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "&mut 0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "scalar_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "scalar_zero",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        }
      ],
      "structs": [
        {
          "name": "CompressedRistretto",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "data",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "RistrettoPoint",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "handle",
              "type": "u64"
            }
          ]
        },
        {
          "name": "Scalar",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "data",
              "type": "vector<u8>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d01000e020e120320850304a5035a05ff03fd0207fc06ae0308aa0a2010ca0af1020abb0d1a0bd50d020cd70deb0d0dc21b080eca1b08000000050007000d001700240026000104010000010407010000020604010000000a0001010001000b0301010001000c0004010001030c0604010001010e0801010001010f0809010001020c0a040100010010050c0104010011050c01040100120d050104010013030e01000101140f100100010212110501000103151202010001021513020100010216140501040104180e0e0001001916050104010015170201000100161805010401001a1902010001001b0c05010001000f1b09010001020f1c090100010014171001000102141310010001001c0c05010201001d1905010201011e1f05010001011f051f010001012008010100010213210e01000101210f02010001021a2302010001020b2101010001021b07050100010122240501000104230e0e000102110e070104010525090e0100010627220e0001002817020100010328120201000102281302010001002919050104010329280501000102292305010001030b2901010001002a020c010401002b0326010501022b212601010103192c05010001002c2e05010401021c0705010201002d220c010401012e021f010001010202020302040705070602080209020a020b070c020d020e020f021202130214021502170219021b021c071d071d0e1e071f0220072102220223022407040e050e2602270227262a022b022d022e022f02320233023502370e02060b00010900060900010101090001060b000109000201030002060a0900060900010b0201090001060b010109000106090002060b020109000609000403010301010b0001090003070b000109000303010301070b010109000107090003070b02010900030302070a09000302070b020109000302070b020109000900060303070b02010900070a09000900090002070b000109000b0001090002070b000109000302070b00010900090001070b000109000303030302060b000109000302060b020109000302030609000203070900010b01010900010b01010b0201090001060b0201090002030301070b0201090002070b01010900090004070b01010b020109000b0201090009000900010a090005030900070b01010b020109000b02010900090001070a090001060a090005030a090003010a0900080303070b01010b02010900070a09000b02010900090009000b0201090002070a09000a0900020a0900060b0201090002070b000109000a0900040a09000a09000309000c736d6172745f766563746f720b536d617274566563746f720a696e6c696e655f766563076269675f766563064f7074696f6e066f7074696f6e09426967566563746f720a6269675f766563746f720f696e6c696e655f63617061636974790b6275636b65745f73697a6508636f6e7461696e730869735f656d70747908696e6465785f6f6606766563746f720769735f736f6d6506626f72726f77036e657705656d7074790473776170066c656e6774680a626f72726f775f6d75740b737761705f72656d6f766509707573685f6261636b056572726f7210696e76616c69645f617267756d656e7406617070656e6408706f705f6261636b0d64657374726f795f656d7074790764657374726f7905636c6561720c64657374726f795f6e6f6e65046e6f6e650769735f6e6f6e6507657874726163740466696c6c0d696e76616c69645f737461746509747970655f696e666f0b73697a655f6f665f76616c066d6174683634036d61780672656d6f766507726576657273650973696e676c65746f6e09746f5f766563746f72076164645f616c6c11656d7074795f776974685f636f6e66696704736f6d65000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631bd020501000000000000001445494e4445585f4f55545f4f465f424f554e44531d566563746f7220696e646578206973206f7574206f6620626f756e647302000000000000001145564543544f525f4e4f545f454d5054592143616e6e6f742064657374726f792061206e6f6e2d656d70747920766563746f7203000000000000000d45564543544f525f454d5054592443616e6e6f7420706f70206261636b2066726f6d20616e20656d70747920766563746f72040000000000000011455a45524f5f4255434b45545f53495a45176275636b65745f73697a652063616e6e6f74206265203005000200000000001e45534d4152545f564543544f52535f4c454e4754485f4d49534d415443482e546865206c656e677468206f662074686520736d61727420766563746f727320617265206e6f7420657175616c2e0000000204020a0900030b01010b02010900080b010103090b010103000200010000050e0a00380004090b00010b010109020b000b0138010102020100000b2c0a0037000a0138020c0204110b00010b0101080c030b020c040b030b04020a003701380304230a00370138040b0138050c020c030b020b0037004102160c04050e0b00010b0101090c030600000000000000000c04050e07010000050238060209010000155b0a010a022404090b000b020b013807020a002e38080c030a020a032304560a00370041020c040a010a042604240b00360138090b010a04170b020b0417380a020a020a0423042e0b0036000b010b02470205230a00360138090c050b0036000c060a060a01380b0c070a050a020a0417380c0c080a060b0844020b060b010a040601000000000000001747020a050b07380d0b050b020a04170b030b041706010000000000000017380a05230b0001060100000000000000111027110100001a2a0e0138080c020a020602000000000000001a0c030600000000000000000c040a040a0323030e05180a000d010a04380e380f0b04060100000000000000160c0405090a040a022304250a000d013810380f0b04060100000000000000160c0405180b00010b01381102160100001d220a010a00380823041d0a00370041020c020a010a022304140b0037000b0142020c030b03020b00370138040b010b021738120c0305120b0001060100000000000000111027180100001e230a010a002e380823041e0a00370041020c020a010a022304150b0036000b0143020c030b03020b00360138090b010b021738130c0305130b00010601000000000000001110271a01000005050d0038140b0038110215010000200f0e003800040c0b003a0001010c01460200000000000000000b01381502060200000000000000111027080100000506400200000000000000003816381738173900020101000005050b00380806000000000000000021020a01000022160a00370041020c010a003701381804100b00010600000000000000000c020b010b0216020b003701380438190c02050c14010000252e0a002e380003290a0036010c010a012e380304220b00010a01381a0c020d02381b0c030e02381c041e0b01010b02381d0b030c040b04020b010b02381e051a0b01010b00360045020c04051c0b0001060300000000000000112527130100001a500a002e38080c020a00370041020c030a020a0321030d05270a003702381f042d0b020a00370238201423041d0b0036000b014402020a0037033820140c040a0036010b043821381e0b00360138090b01380d020e0138220c020a020a03060100000000000000161806960000000000000023043d0b0036000b014402020a00370038230b02160b03060100000000000000161a06010000000000000011280c020600040000000000000b021a06010000000000000011280c0405222901000027360a002e38080c020a010b022304310a00370041020c020a010a022304170b0036000b0138240c030b03020b0036010c040a04381a0c050d050b010b021738250c060e05381c042d0b04010b05381d0b060c0305150b040b05381e052a0b00010601000000000000001110272c0100002a500a00370041020c01400200000000000000000c020600000000000000000c03090c04050c051c0a04044d0b03060100000000000000160c030a030a01230317051c0d020a0038104402050a0d0238260a0037013803032305270a00360138093827400200000000000000000c050a003700382803330d050a0036004502440205290d0538260e023828033e0a0036000d024502440205350b02460200000000000000000e05382803480a000d054502380f05400b00010b054602000000000000000002080c040512300100000c0738060c010d010b00380f0b0102120100002b550a002e38080c020a010a022304500a00370041020c030a0036010c040b0036000c050a010a032604300b05010a04381a0c060d060b010b0317380c0c070e06381c042c0b04010b06381d0b070c080b08020b040b06381e05280b030b0223044d0a04381a0c090d09381b0c070e09381c04490b04010b09381d0a050b0744020b050b01380b0c08052a0b040b09381e05410b040105440b0001060100000000000000111027310100002d150a003700140c010a003701380304120b00370138040c020d010b023829382a0b01020b00010510340100002f1d0b010c020d0238260b020c030e0341020c040a040600000000000000002404180d0345020c050a000b05380f0b04060100000000000000170c0405090b00010b0346020000000000000000021b0100000510400200000000000000000a003600150a0037013803040d0b003601381a382b020b0001050c36010000050f0a0106000000000000000024040c4002000000000000000038160b00382c0b01382c3900020604000000000000001110270000000100020003000201020202030200",
    "abi": {
      "address": "0x1",
      "name": "smart_vector",
      "friends": [],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_vector::SmartVector<T0>",
            "&T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "index_of",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_vector::SmartVector<T0>",
            "&T0"
          ],
          "return": [
            "bool",
            "u64"
          ]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::smart_vector::SmartVector<T0>"
          ]
        },
        {
          "name": "swap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "append",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>",
            "0x1::smart_vector::SmartVector<T0>"
          ],
          "return": []
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_vector::SmartVector<T0>",
            "u64"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>",
            "u64"
          ],
          "return": [
            "&mut T0"
          ]
        },
        {
          "name": "destroy",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "0x1::smart_vector::SmartVector<T0>"
          ],
          "return": []
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::smart_vector::SmartVector<T0>"
          ],
          "return": []
        },
        {
          "name": "empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::smart_vector::SmartVector<T0>"
          ]
        },
        {
          "name": "is_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_vector::SmartVector<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_vector::SmartVector<T0>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "pop_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "push_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>",
            "T0"
          ],
          "return": []
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>",
            "u64"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "reverse",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>"
          ],
          "return": []
        },
        {
          "name": "singleton",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "0x1::smart_vector::SmartVector<T0>"
          ]
        },
        {
          "name": "swap_remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>",
            "u64"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "to_vector",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::smart_vector::SmartVector<T0>"
          ],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "add_all",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>",
            "vector<T0>"
          ],
          "return": []
        },
        {
          "name": "clear",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>"
          ],
          "return": []
        },
        {
          "name": "empty_with_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "0x1::smart_vector::SmartVector<T0>"
          ]
        }
      ],
      "structs": [
        {
          "name": "SmartVector",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "inline_vec",
              "type": "vector<T0>"
            },
            {
              "name": "big_vec",
              "type": "0x1::option::Option<0x1::big_vector::BigVector<T0>>"
            },
            {
              "name": "inline_capacity",
              "type": "0x1::option::Option<u64>"
            },
            {
              "name": "bucket_size",
              "type": "0x1::option::Option<u64>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b010004020418031c5a04761e059401f001078403e20108e60420108605e1020ae707170bfe07020c8008c7010000000900010702000000000004070200000000000507000108070000070001010001000a0301010001000b050602000001000c0001010001000d0701010201000e04080001000f0b0101000100100c010202020100111001030202020100121501040202020201001300010100010014000101000101020209060a020d020e060f02110212021306140216021702180219061a010609000108030109000506090001010101000209000901010b00020900090102060a0209000108020209000802010b00020900080202060a0206090003060a020900090102090108020209000b000209010802010b000209000b00020901080204060a0209000901090202090208020209010b0002090208020209000b000209010b000209020802010b000209000b000209010b00020902080205060a02090009010902090302090308020209020b0002090308020209010b000209020b0002090308020209000b000209010b000209020b000209030802010b000209000b000209010b000209020b0002090308020c737472696e675f7574696c7304436f6e7303636172036364720846616b65436f6e73034e494c0b64756d6d795f6669656c6409746f5f737472696e6706537472696e6706737472696e670d6e61746976655f666f726d617404636f6e730c64656275675f737472696e6707666f726d617431036e696c126e61746976655f666f726d61745f6c69737407666f726d61743207666f726d61743307666f726d61743422746f5f737472696e675f776974685f63616e6f6e6963616c5f6164647265737365731c746f5f737472696e675f776974685f696e74656765725f7479706573000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631ad020301000000000000000e45415247535f4d49534d4154434858546865206e756d626572206f662076616c75657320696e20746865206c69737420646f6573206e6f74206d6174636820746865206e756d626572206f6620227b7d2220696e2074686520666f726d617420737472696e672e02000000000000000f45494e56414c49445f464f524d41541f54686520666f726d617420737472696e67206973206e6f742076616c69642e03000000000000001f45554e41424c455f544f5f464f524d41545f44454c415945445f4649454c4459466f726d617474696e67206973206e6f7420706f737369626c652062656361757365207468652076616c756520636f6e7461696e732064656c61796564206669656c647320737563682061732061676772656761746f72732e0000000202020900030901010202020900030901020201060100050001000004070b00090908093800020200000004040b000b013900020301000004070b0008090909380002040100000a080b000b01110538010c020e02380202070100000f0a0b000b010b021105380338040c030e0338050208010000140c0b000b010b020b0311053806380738080c040e04380902090100001a0e0b000b010b020b030b041105380a380b380c380d0c050e05380e020100020006000200050000000403091202020a01000004070b00090808093800020b01000004070b000908080938000200",
    "abi": {
      "address": "0x1",
      "name": "string_utils",
      "friends": [],
      "exposed_functions": [
        {
          "name": "to_string",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "debug_string",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "format1",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&vector<u8>",
            "T0"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "format2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&vector<u8>",
            "T0",
            "T1"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "format3",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&vector<u8>",
            "T0",
            "T1",
            "T2"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "format4",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&vector<u8>",
            "T0",
            "T1",
            "T2",
            "T3"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "to_string_with_canonical_addresses",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "to_string_with_integer_types",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0"
          ],
          "return": [
            "0x1::string::String"
          ]
        }
      ],
      "structs": [
        {
          "name": "Cons",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "car",
              "type": "T0"
            },
            {
              "name": "cdr",
              "type": "T1"
            }
          ]
        },
        {
          "name": "FakeCons",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "car",
              "type": "T0"
            },
            {
              "name": "cdr",
              "type": "T1"
            }
          ]
        },
        {
          "name": "NIL",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c010008020814031c960104b2010c05be0154079202d80308ea0520108a06ea060af40c180c8c0dc0010dcc0e020ece0e0200000007000b001a000106010000000406010000000506000106070000090001010001000a0003010001020c04040001000d0502010001000e0001010001000f0003010001001002060103010011070801030100120508010001000305020103010013090601030100140a0b000100150208010301001601060103010017020601030100180c0b01000100190d03010001031b01030001001c0d03010001001d0e0a0001001e0702010001001f0c0f01000101020502060200020d02120202070b000109000900000109000101010301060b00010900010b0001090001060b01010900010b010109000209000900010803010802030803060b01010900080302060b00010900090001060802010b010108030d61676772656761746f725f76320a41676772656761746f720576616c7565096d61785f76616c75651241676772656761746f72536e617073686f741544657269766564537472696e67536e617073686f7406537472696e6706737472696e670770616464696e6703616464077472795f616464056572726f720c6f75745f6f665f72616e6765047265616403737562077472795f737562116372656174655f61676772656761746f720d636f70795f736e617073686f7408736e617073686f741c6372656174655f61676772656761746f725f776974685f76616c7565156372656174655f646572697665645f737472696e670f6372656174655f736e617073686f741b6372656174655f756e626f756e6465645f61676772656761746f72266372656174655f756e626f756e6465645f61676772656761746f725f776974685f76616c7565146465726976655f737472696e675f636f6e6361740b69735f61745f6c656173740866656174757265732561676772656761746f725f76325f69735f61745f6c656173745f6170695f656e61626c65641069735f61745f6c656173745f696d706c13726561645f646572697665645f737472696e670d726561645f736e617073686f740d737472696e675f636f6e636174000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631b606070100000000000000144541474752454741544f525f4f564552464c4f57445468652076616c7565206f662061676772656761746f72206f766572666c6f77732e2052616973656420627920756e636f646974696f6e616c2061646428292063616c6c0200000000000000154541474752454741544f525f554e444552464c4f57575468652076616c7565206f662061676772656761746f7220756e646572666c6f77732028676f65732062656c6f77207a65726f292e2052616973656420627920756e636f646974696f6e616c2073756228292063616c6c05000000000000002545554e535550504f525445445f41474752454741544f525f534e415053484f545f54595045465468652067656e65726963207479706520737570706c69656420746f207468652061676772656761746f7220736e617073686f74206973206e6f7420737570706f727465642e06000000000000001e4541474752454741544f525f4150495f56325f4e4f545f454e41424c4544325468652061676772656761746f7220617069207632206665617475726520666c6167206973206e6f7420656e61626c65642e07000000000000001c45554e535550504f525445445f41474752454741544f525f545950453d5468652067656e65726963207479706520737570706c69656420746f207468652061676772656761746f72206973206e6f7420737570706f727465642e08000000000000001f45434f4e4341545f535452494e475f4c454e4754485f544f4f5f4c415247455b417267756d656e74732070617373656420746f20636f6e63617420657863656564206d6178206c696d6974206f6620313032342062797465732028666f722070726566697820616e642073756666697820746f676574686572292e0900000000000000264541474752454741544f525f46554e4354494f4e5f4e4f545f5945545f535550504f5254454475546865206e61746976652061676772656761746f722066756e6374696f6e2c207468617420697320696e20746865206d6f76652066696c652c206973206e6f742079657420737570706f727465642e0a20616e6420616e792063616c6c732077696c6c2072616973652074686973206572726f722e0000000202020900030900010201020900020202020803080a020001000001080b000b013800040502060100000000000000110227030102000401000001080b000b0138010405020602000000000000001102270601020007010200080102000901000001040b00370014020a01000006080b0138020c020d020b0038030b02020b0102000c0102000d0102000e010000060738040c010d010b0038030b01020f01020010010000010a111104060b000b013805020b0001060600000000000000271200020013010200140102001501020001010200050102000001000200",
    "abi": {
      "address": "0x1",
      "name": "aggregator_v2",
      "friends": [],
      "exposed_functions": [
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::aggregator_v2::Aggregator<T0>",
            "T0"
          ],
          "return": []
        },
        {
          "name": "read",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::aggregator_v2::Aggregator<T0>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::aggregator_v2::Aggregator<T0>",
            "T0"
          ],
          "return": []
        },
        {
          "name": "create_aggregator",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "0x1::aggregator_v2::Aggregator<T0>"
          ]
        },
        {
          "name": "copy_snapshot",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            }
          ],
          "params": [
            "&0x1::aggregator_v2::AggregatorSnapshot<T0>"
          ],
          "return": [
            "0x1::aggregator_v2::AggregatorSnapshot<T0>"
          ]
        },
        {
          "name": "snapshot",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::aggregator_v2::Aggregator<T0>"
          ],
          "return": [
            "0x1::aggregator_v2::AggregatorSnapshot<T0>"
          ]
        },
        {
          "name": "max_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            }
          ],
          "params": [
            "&0x1::aggregator_v2::Aggregator<T0>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "create_aggregator_with_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            }
          ],
          "params": [
            "T0",
            "T0"
          ],
          "return": [
            "0x1::aggregator_v2::Aggregator<T0>"
          ]
        },
        {
          "name": "create_derived_string",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::string::String"
          ],
          "return": [
            "0x1::aggregator_v2::DerivedStringSnapshot"
          ]
        },
        {
          "name": "create_snapshot",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "0x1::aggregator_v2::AggregatorSnapshot<T0>"
          ]
        },
        {
          "name": "create_unbounded_aggregator",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::aggregator_v2::Aggregator<T0>"
          ]
        },
        {
          "name": "create_unbounded_aggregator_with_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "0x1::aggregator_v2::Aggregator<T0>"
          ]
        },
        {
          "name": "derive_string_concat",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::string::String",
            "&0x1::aggregator_v2::AggregatorSnapshot<T0>",
            "0x1::string::String"
          ],
          "return": [
            "0x1::aggregator_v2::DerivedStringSnapshot"
          ]
        },
        {
          "name": "is_at_least",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::aggregator_v2::Aggregator<T0>",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "read_derived_string",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::aggregator_v2::DerivedStringSnapshot"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "read_snapshot",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::aggregator_v2::AggregatorSnapshot<T0>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "string_concat",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::string::String",
            "&0x1::aggregator_v2::AggregatorSnapshot<T0>",
            "0x1::string::String"
          ],
          "return": [
            "0x1::aggregator_v2::AggregatorSnapshot<0x1::string::String>"
          ]
        },
        {
          "name": "try_add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::aggregator_v2::Aggregator<T0>",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "try_sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::aggregator_v2::Aggregator<T0>",
            "T0"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "Aggregator",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "value",
              "type": "T0"
            },
            {
              "name": "max_value",
              "type": "T0"
            }
          ]
        },
        {
          "name": "AggregatorSnapshot",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "value",
              "type": "T0"
            }
          ]
        },
        {
          "name": "DerivedStringSnapshot",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "value",
              "type": "0x1::string::String"
            },
            {
              "name": "padding",
              "type": "vector<u8>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d010018021832034aa90204f30220059303c40107d704b40a088b0f2006ab0f2210cd0fe3040ab014170cc714c6070d8d1c040f911c08000000090002000e001200130015001800210023003000310001060000040600000508000108040106010411080008200701000109220b0009260600052b04010001092f000009390800000a00010001020a00020001000b03010001000c04010001020d00050001030f010500010010040100010514000501000106150002000105160301010001050c0401010001001700010001071907070001001a00010001001b08010001071c07070001001d0801010001001e0401010001001f0b01000100240c01000100250d01000108270e00000109280d010001002900050001002a0f01010001052c0f01010001072d07070001002e100100010a2c100100010b3203000001093300050001093404010001093511120001093610010001083700140108010a381516010801083a1800010801003b11050001093c11050001033d01050001003e1b010001033f0105000101400a0101060101411e010106010242031f010601054321220100010a432312010801070609060a06110a070a090a190a2213231324172a1c2b1d2c1d2d0a180a2e13010500010c01060c03060c05030101010804010303060c0a050a0305060a05030303060501090004060c0b050108060a050a0304060c0b05010806050303060807050302050502050b0801090002050809020503010809010806010b0501090002050b05010900010b0501080a01080a01060b05010900080505050505050b0501080a0b0501080a02050b0501080a02060c0101080001080102070b030109000900010b0301090004050708020701080202060c03010b0801090003060c0b05010900030d6170746f735f6163636f756e741f446972656374436f696e5472616e73666572436f6e66696755706461746564076163636f756e741a6e65775f616c6c6f775f6469726563745f7472616e736665727324446972656374436f696e5472616e73666572436f6e666967557064617465644576656e74144469726563745472616e73666572436f6e6669671e616c6c6f775f6172626974726172795f636f696e5f7472616e73666572731b7570646174655f636f696e5f7472616e736665725f6576656e74730b4576656e7448616e646c65056576656e740e6372656174655f6163636f756e740c72656769737465725f617074087472616e73666572096578697374735f61740866656174757265732a6f7065726174696f6e735f64656661756c745f746f5f66615f6170745f73746f72655f656e61626c65641666756e6769626c655f7472616e736665725f6f6e6c79094170746f73436f696e0a6170746f735f636f696e04636f696e1569735f6163636f756e745f726567697374657265640d6372656174655f7369676e6572087265676973746572156173736572745f6163636f756e745f657869737473056572726f72096e6f745f666f756e64246173736572745f6163636f756e745f69735f726567697374657265645f666f725f6170740e62617463685f7472616e7366657210696e76616c69645f617267756d656e741462617463685f7472616e736665725f636f696e730e7472616e736665725f636f696e731e62617463685f7472616e736665725f66756e6769626c655f617373657473064f626a656374066f626a656374084d657461646174610e66756e6769626c655f6173736574187472616e736665725f66756e6769626c655f617373657473206275726e5f66726f6d5f66756e6769626c655f73746f72655f666f725f676173074275726e526566226372656174655f757365725f646572697665645f6f626a6563745f6164647265737319616464726573735f6275726e5f66726f6d5f666f725f6761732163616e5f726563656976655f6469726563745f636f696e5f7472616e73666572730d6465706f7369745f636f696e7304436f696e076465706f736974117065726d697373696f6e5f64656e696564176465706f7369745f66756e6769626c655f6173736574730d46756e6769626c654173736574167072696d6172795f66756e6769626c655f73746f7265067369676e65720a616464726573735f6f660c73746f72655f6578697374732477697468647261775f7065726d697373696f6e5f636865636b5f62795f6164647265737312756e636865636b65645f776974686472617711756e636865636b65645f6465706f73697411616464726573735f746f5f6f626a656374146372656174655f7072696d6172795f73746f72650d46756e6769626c6553746f72650e6f626a6563745f616464726573731c69735f66756e6769626c655f62616c616e63655f61745f6c656173741b69735f616464726573735f62616c616e63655f61745f6c656173742c6e65775f6163636f756e74735f64656661756c745f746f5f66615f6170745f73746f72655f656e61626c65641f7365745f616c6c6f775f6469726563745f636f696e5f7472616e73666572731e6d6f64756c655f6576656e745f6d6967726174696f6e5f656e61626c656404656d69740a656d69745f6576656e74106e65775f6576656e745f68616e646c650877697468647261770f7472616e73616374696f6e5f666565167472616e73616374696f6e5f76616c69646174696f6e0767656e65736973107265736f757263655f6163636f756e7400000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000a14636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631af0405010000000000000012454143434f554e545f4e4f545f464f554e44174163636f756e7420646f6573206e6f742065786973742e02000000000000001f454143434f554e545f4e4f545f524547495354455245445f464f525f415054294163636f756e74206973206e6f74207265676973746572656420746f2072656365697665204150542e03000000000000002e454143434f554e545f444f45535f4e4f545f4143434550545f4449524543545f434f494e5f5452414e53464552534b4163636f756e74206f70746564206f7574206f6620726563656976696e6720636f696e732074686174207468657920646964206e6f7420726567697374657220746f20726563656976652e04000000000000002f454143434f554e545f444f45535f4e4f545f4143434550545f4449524543545f544f4b454e5f5452414e5346455253334163636f756e74206f70746564206f7574206f66206469726563746c7920726563656976696e67204e465420746f6b656e732e05000000000000002a454d49534d41544348494e475f524543495049454e54535f414e445f414d4f554e54535f4c454e4754483c546865206c656e67746873206f662074686520726563697069656e747320616e6420616d6f756e7473206c6973747320646f6e2774206d617463682e011f446972656374436f696e5472616e73666572436f6e66696755706461746564010400012163616e5f726563656976655f6469726563745f636f696e5f7472616e73666572730101000002020205030101020103010202020601070b030108010001040002060b0011010c010e0111020203010400021b0a011104040405060a0111001105040d0b000b010b021106020a013800041105160a0111080c030e0338010b000b010b023802050c0b01000001070b001104040402060100000000000000110c270d01000001090a00110b0b003800040602060200000000000000110c270e01040009300e0141000e02410721042b0e010c030600000000000000000c040a0341000c050a040a052304260a040c060a030a0442000c070e020b064207140c060a000b07140b0611030b04060100000000000000160c04050d0b00010b0301020b0001060500000000000000110f27100104010209300e0141000e02410721042b0e010c030600000000000000000c040a0341000c050a040a052304260a040c060a030a0442000c070e020b064207140c060a000b07140b0638030b04060100000000000000160c04050d0b00010b0301020b0001060500000000000000110f271201040009310e0241000e03410721042c0e020c040600000000000000000c050a0441000c060a050a062304270a050c070a040a0542000c080e030b074207140c070a000a010b08140b0711130b05060100000000000000160c05050d0b00010b0401020b0001060500000000000000110f271403000000100a0206000000000000000022040d0b01070011150c030b000b030b021116020b0001050c1701000102050d0a0029020307080c010b01020b002b021000140c0105051801000102021a0a001104040405070a001100280a003804040b05130a00111704170a0011080c020e0238050b000b01380602060300000000000000111a271b010000010a0a001104040405060a0011000b000b01111c020603040019330a00111d0c030a03070011150c040a04111e042a0b040c050b010c060a06070011150c070a07111e04210b070c080b000a050a02111f0b080b050b0211201121020b060700380738080c090e0938090c0805170b030700380738080c0a0e0a38090c05050c2503000001060b00070011150b01112602020300001a17112704140b00111d0c010a0107001115111e040b020b010700380738080c020e02380901050a0b003801050a2801040102203e0a00111d0c020a02290204290b00010a022a020c030a031000140a012104140b0301020a030f000c040a010b0415112904230b03010b020b011200380a020b030f010b011201380b05220a010a00380c12020c05112904380b020b011200380a0b000b052d0205220d050f010b011201380b0534110104010201060b010b000b02380d380e021301040001070b020b000b010b03380f111b0202000201004400450046004700",
    "abi": {
      "address": "0x1",
      "name": "aptos_account",
      "friends": [
        "0x1::transaction_fee",
        "0x1::transaction_validation",
        "0x1::genesis",
        "0x1::resource_account"
      ],
      "exposed_functions": [
        {
          "name": "create_account",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "transfer",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "assert_account_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "assert_account_is_registered_for_apt",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "batch_transfer",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "vector<u64>"
          ],
          "return": []
        },
        {
          "name": "batch_transfer_coins",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "vector<address>",
            "vector<u64>"
          ],
          "return": []
        },
        {
          "name": "batch_transfer_fungible_assets",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "vector<address>",
            "vector<u64>"
          ],
          "return": []
        },
        {
          "name": "burn_from_fungible_store_for_gas",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::BurnRef",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "can_receive_direct_coin_transfers",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "deposit_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address",
            "0x1::coin::Coin<T0>"
          ],
          "return": []
        },
        {
          "name": "deposit_fungible_assets",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "fungible_transfer_only",
          "visibility": "friend",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "is_fungible_balance_at_least",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "register_apt",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "set_allow_direct_coin_transfers",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "bool"
          ],
          "return": []
        },
        {
          "name": "transfer_coins",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "transfer_fungible_assets",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "address",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "DirectCoinTransferConfigUpdated",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "new_allow_direct_transfers",
              "type": "bool"
            }
          ]
        },
        {
          "name": "DirectCoinTransferConfigUpdatedEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "new_allow_direct_transfers",
              "type": "bool"
            }
          ]
        },
        {
          "name": "DirectTransferConfig",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "allow_arbitrary_coin_transfers",
              "type": "bool"
            },
            {
              "name": "update_coin_transfer_events",
              "type": "0x1::event::EventHandle<0x1::aptos_account::DirectCoinTransferConfigUpdatedEvent>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a060100020202400742b40108f601201096021f0ab5025000000001000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000d626e3235345f616c676562726110466f726d6174467131324c73634c73620b64756d6d795f6669656c640b466f726d617446724c73620b466f726d617446724d73620d466f726d61744731436f6d70720f466f726d61744731556e636f6d70720d466f726d61744732436f6d70720f466f726d61744732556e636f6d707208466f726d6174477404467131320246720247310247320247740b466f726d617446714c73620b466f726d617446714d7362024671000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e3100020102010102010201020201020103020102010402010201050201020106020102010702010201080201020109020102010a020102010b020102010c020102010d020102010e020102010f0201020100",
    "abi": {
      "address": "0x1",
      "name": "bn254_algebra",
      "friends": [],
      "exposed_functions": [],
      "structs": [
        {
          "name": "FormatFq12LscLsb",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "FormatFrLsb",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "FormatFrMsb",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "FormatG1Compr",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "FormatG1Uncompr",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "FormatG2Compr",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "FormatG2Uncompr",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "FormatGt",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Fq12",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Fr",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "G1",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "G2",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Gt",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "FormatFqLsb",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "FormatFqMsb",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Fq",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d01001002101a032a63048d010e059b015c07f701a503089c052006bc052210de05b6010a94070b0c9f0792010db108020fb308140000000400060008000a000d00110013000108000103070200000000020507000307060006100701000000090001010401040b02020001000c0100010601050e0003010001030f0104010601010c06070204040100120800000107140800000101150009020404010016000a01040101170b0a020404010018000101040101190d0e02040401031a040101000103010401050508050a050c050d01000109000103010802010803020802080303070b01020900090109000901020b040109000b0401090101060c010b010209000901010102060b0102090009010609000208020102070b010209000901060900020900090102080209000d636f6e6669675f6275666665720e50656e64696e67436f6e6669677307636f6e666967730953696d706c654d61700a73696d706c655f6d617006537472696e6706737472696e6703416e7903616e790765787472616374056572726f720b756e617661696c61626c650675707365727409747970655f696e666f09747970655f6e616d65047061636b064f7074696f6e066f7074696f6e0a696e697469616c697a651073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b036e65770a646f65735f65786973740c636f6e7461696e735f6b65790a657874726163745f76320672656d6f766506756e7061636b0776657273696f6e1872616e646f6d6e6573735f636f6e6669675f7365716e756d1172616e646f6d6e6573735f636f6e6669671872616e646f6d6e6573735f6170695f76305f636f6e6669670f6b65796c6573735f6163636f756e74046a776b73146a776b5f636f6e73656e7375735f636f6e6669670c6761735f7363686564756c6510657865637574696f6e5f636f6e66696710636f6e73656e7375735f636f6e66696700000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631820102010000000000000012455354445f5349474e45525f4e454544454437436f6e66696720627566666572206f7065726174696f6e73206661696c65642077697468207065726d697373696f6e2064656e6965642e02000000000000000b45444550524543415445441746756e6374696f6e20697320646570726563617465642e0000000201020b0102080208030001000000030602000000000000001101270203000100050e07002a0038000c010b0038010c020f000b010b02380201010206010000000d0a00110707002900030a0b00380312002d00020b0001050909010001000c1007002900040d07002b00100038000c000e0038040c010b0102090c01050b0b030001000f0c07002a0038000c000f000e00380538060c01010b01020000001b001c001d001e001f0020002100220023002400",
    "abi": {
      "address": "0x1",
      "name": "config_buffer",
      "friends": [
        "0x1::version",
        "0x1::randomness_config_seqnum",
        "0x1::randomness_config",
        "0x1::randomness_api_v0_config",
        "0x1::keyless_account",
        "0x1::jwks",
        "0x1::jwk_consensus_config",
        "0x1::gas_schedule",
        "0x1::execution_config",
        "0x1::consensus_config"
      ],
      "exposed_functions": [
        {
          "name": "extract",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "T0"
          ]
        },
        {
          "name": "upsert",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "does_exist",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "extract_v2",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "T0"
          ]
        }
      ],
      "structs": [
        {
          "name": "PendingConfigs",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "configs",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, 0x1::any::Any>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a08010002030206050804070c970108a3012010c3011f0ce201040fe6011400000000000100010105010c0d6372656174655f7369676e6572137065726d697373696f6e65645f7369676e6572076163636f756e74066f626a656374136163636f756e745f6162737472616374696f6e0e66756e6769626c655f617373657404636f696e0d6170746f735f6163636f756e74167472616e73616374696f6e5f76616c69646174696f6e0767656e65736973106d756c74697369675f6163636f756e74000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e3100030200000100020003000400050006000700080009000a00",
    "abi": {
      "address": "0x1",
      "name": "create_signer",
      "friends": [
        "0x1::permissioned_signer",
        "0x1::account",
        "0x1::object",
        "0x1::account_abstraction",
        "0x1::fungible_asset",
        "0x1::coin",
        "0x1::aptos_account",
        "0x1::transaction_validation",
        "0x1::genesis",
        "0x1::multisig_account"
      ],
      "exposed_functions": [
        {
          "name": "create_signer",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "signer"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0a010002020204030648054e1b0769a301088c022010ac02bb030ae705050cec05c9040db50a02000000010700000300010001000400010001000503000001000601000001000701000001000806010001000900010001000a00070001000b08000001000c08000001000d06010001000e000100010108000103000203030404040401010402030800010102080008000d66697865645f706f696e7433320c4669786564506f696e7433320576616c7565046365696c05666c6f6f72146372656174655f66726f6d5f726174696f6e616c156372656174655f66726f6d5f7261775f76616c75650f6372656174655f66726f6d5f7536340a6469766964655f7536340d6765745f7261775f76616c75650769735f7a65726f036d6178036d696e0c6d756c7469706c795f75363405726f756e64000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f763187030501000100000000000c4544454e4f4d494e41544f52215468652064656e6f6d696e61746f722070726f766964656420776173207a65726f020002000000000009454449564953494f4e3b5468652071756f7469656e742076616c756520776f756c6420626520746f6f206c6172676520746f2062652068656c6420696e206120607536346003000200000000000f454d554c5449504c49434154494f4e3d546865206d756c7469706c6965642076616c756520776f756c6420626520746f6f206c6172676520746f2062652068656c6420696e2061206075363460040001000000000011454449564953494f4e5f42595f5a45524f2241206469766973696f6e206279207a65726f2077617320656e636f756e746572656405000200000000001345524154494f5f4f55545f4f465f52414e47454f54686520636f6d707574656420726174696f207768656e20636f6e76657274696e6720746f206120604669786564506f696e7433326020776f756c6420626520756e726570726573656e7461626c65000000020102030001000001170a00110131202f0c010e001000140a0121040f0b01312030020b0135320000000001000000000000000000000016312030340202010000042d0a003531402f0c020b013531202f0c030a03320000000000000000000000000000000022042b0b020b031a0c040a043200000000000000000000000000000000220426080c050b0504240a0432ffffffffffffffff00000000000000002504220b043412000206050002000000000027060500020000000000270b00060000000000000000210c050518060100010000000000270301000002030b0012000204010000050f0b003531202f0c010a0132ffffffffffffffff000000000000000025040d0b01341200020605000200000000002705010000051b0e011000140600000000000000002204190b003531202f0e01100014351a0c020a0232ffffffffffffffff00000000000000002504170b02340206020002000000000027060400010000000000270101000002060e00100014312030020601000002040e00100014020701000002060e00100014060000000000000000210208010000000f0e001000140e0110001424040c0b000c020b02020b010c02050a09010000000f0e001000140e0110001423040c0b000c020b02020b010c02050a0a01000005130b00350e0110001435183120300c020a0232ffffffffffffffff00000000000000002504110b023402060300020000000000270b01000003190a00110131202f0c010a01060000008000000000160c020e001000140b022304150b013120300c020b02020b0011000c020513000000",
    "abi": {
      "address": "0x1",
      "name": "fixed_point32",
      "friends": [],
      "exposed_functions": [
        {
          "name": "ceil",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "create_from_rational",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "create_from_raw_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "create_from_u64",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "divide_u64",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "floor",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_raw_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "is_zero",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "max",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32",
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "min",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32",
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "multiply_u64",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "round",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": [
        {
          "name": "FixedPoint32",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "value",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0a010002020204030678057e2407a201ed01088f032010af0384040ab307050cb807d2070d8a0f02000000010700000300010001000401030001000503010001000600010001000701030001000801030001000905010001000a01070001000b00010001000c00010001000d01030001000e08070001000f0301000100100a03000100110007000100120007000100130007000100140007000100150007000100160a030001020800080001080000010402040f020404030f0f01010103080008000800010f020408000d66697865645f706f696e7436340c4669786564506f696e7436340576616c7565036164640d6765745f7261775f76616c7565156372656174655f66726f6d5f7261775f76616c756503737562046365696c05666c6f6f72146372656174655f66726f6d5f726174696f6e616c0769735f7a65726f036d6178036d696e05726f756e640c616c6d6f73745f657175616c106372656174655f66726f6d5f753132380b6469766964655f7531323805657175616c076772656174657210677265617465725f6f725f657175616c046c6573730d6c6573735f6f725f657175616c0d6d756c7469706c795f75313238000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631d0030601000100000000000c4544454e4f4d494e41544f52215468652064656e6f6d696e61746f722070726f766964656420776173207a65726f020002000000000009454449564953494f4e3c5468652071756f7469656e742076616c756520776f756c6420626520746f6f206c6172676520746f2062652068656c6420696e20612060753132386003000200000000000f454d554c5449504c49434154494f4e3e546865206d756c7469706c6965642076616c756520776f756c6420626520746f6f206c6172676520746f2062652068656c6420696e206120607531323860040001000000000011454449564953494f4e5f42595f5a45524f2241206469766973696f6e206279207a65726f2077617320656e636f756e746572656405000200000000001345524154494f5f4f55545f4f465f52414e47454f54686520636f6d707574656420726174696f207768656e20636f6e76657274696e6720746f206120604669786564506f696e7436346020776f756c6420626520756e726570726573656e7461626c65060001000000000010454e454741544956455f524553554c542d41626f727420636f6465206f6e2063616c63756c6174696f6e20726573756c74206973206e656761746976652e000000020102040001000004140b0011010b0111010c024d0b024d160c030a034affffffffffffffffffffffffffffffff000000000000000000000000000000002504120b0335110202060500020000000000270301000005110b0011010c020b0111010c030a020a0326040f0b020b0317110202060600010000000000270401000003170a00110531402f0c010e001000140a0121040f0b01314030020b014d4a00000000000000000100000000000000000000000000000000000000000000001631403035020601000006290a004d31402f0c020a0132000000000000000000000000000000002204270b020b014d1a0c030a034a0000000000000000000000000000000000000000000000000000000000000000220422080c040b0404200a034affffffffffffffffffffffffffffffff0000000000000000000000000000000025041e0b033512000206050002000000000027060500020000000000270b003200000000000000000000000000000000210c040514060100010000000000270201000002030b001200020501000002060e00100014314030020101000002040e00100014020701000002060e001000143200000000000000000000000000000000210208010000010f0e001000140e0110001424040c0b000c020b02020b010c02050a09010000010f0e001000140e0110001423040c0b000c020b02020b010c02050a0a01000005190a00110531402f0c010a013200000000000000800000000000000000160c020e001000140b022304150b013140300c020b02020b0011040c0205130b01000007230e001000140e011000142404160e001000140e01100014170e02100014250c030b03020e011000140e00100014170e02100014250c0305140c010000090f0b004d31402f0c010a014affffffffffffffffffffffffffffffff0000000000000000000000000000000025040d0b0135120002060500020000000000270d010000091b0e0110001432000000000000000000000000000000002204190b004d31402f0e011000144d1a0c020a024affffffffffffffffffffffffffffffff000000000000000000000000000000002504170b02350206020002000000000027060400010000000000270e01000002080e001000140e0110001421020f01000002080e001000140e0110001424021001000002080e001000140e0110001426021101000002080e001000140e0110001423021201000002080e001000140e0110001425021301000009130b004d0e011000144d183140300c020a024affffffffffffffffffffffffffffffff000000000000000000000000000000002504110b02350206030002000000000027000000",
    "abi": {
      "address": "0x1",
      "name": "fixed_point64",
      "friends": [],
      "exposed_functions": [
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "ceil",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "create_from_rational",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128",
            "u128"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "create_from_raw_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "floor",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "get_raw_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "is_zero",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "max",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "min",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "round",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "almost_equal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "create_from_u128",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "divide_u128",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "equal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "greater",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "greater_or_equal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "less",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "less_or_equal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "multiply_u128",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "u128"
          ]
        }
      ],
      "structs": [
        {
          "name": "FixedPoint64",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "value",
              "type": "u128"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0a01000a020a0803124205542d0781019903089a042010ba048c020ac6060b0cd10682010fd30706000000050008000c00110001070001040700000700010001020902010001000a03020001000b00010001030d04040001000e05010001000f0302000100100607000104120809000100130a07000101140b0500010206080006080001010001060800010301060a0203060c0801080101080001060c0105030508010801010608010d66756e6374696f6e5f696e666f0c46756e6374696f6e496e666f0e6d6f64756c655f616464726573730b6d6f64756c655f6e616d6506537472696e6706737472696e670d66756e6374696f6e5f6e616d6521636865636b5f64697370617463685f747970655f636f6d7061746962696c69747908666561747572657323646973706174636861626c655f66756e6769626c655f61737365745f656e61626c6564126c6f61645f66756e6374696f6e5f696d706c26636865636b5f64697370617463685f747970655f636f6d7061746962696c6974795f696d706c056572726f720761626f727465640d69735f6964656e746966696572196c6f61645f6d6f64756c655f66726f6d5f66756e6374696f6e116e65775f66756e6374696f6e5f696e666f067369676e65720a616464726573735f6f661e6e65775f66756e6374696f6e5f696e666f5f66726f6d5f61646472657373056279746573136163636f756e745f6162737472616374696f6e0e66756e6769626c655f61737365741b646973706174636861626c655f66756e6769626c655f6173736574000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631d8010301000000000000001345494e56414c49445f4944454e54494649455225537472696e67206973206e6f7420612076616c6964204d6f7665206964656e74696669657202000000000000001145494e56414c49445f46554e4354494f4e3e46756e6374696f6e2073706563696669656420696e207468652046756e6374696f6e496e666f20646f65736e2774206578697374206f6e20636861696e2e03000000000000000e454e4f545f4143544956415445442246656174757265206861736e2774206265656e20616374697661746564207965742e0000000203020503080106080100030000020f110104080a0111020b000b011103020b00010b01010603000000000000001104270300020005000200020002000603000002030b001102020701000002060b0011080b010b021109020901000002110e01110a1105040f0e02110a1105040d0b000b010b02120002060100000000000000270601000000000000002700150016001700",
    "abi": {
      "address": "0x1",
      "name": "function_info",
      "friends": [
        "0x1::account_abstraction",
        "0x1::fungible_asset",
        "0x1::dispatchable_fungible_asset"
      ],
      "exposed_functions": [
        {
          "name": "check_dispatch_type_compatibility",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::function_info::FunctionInfo",
            "&0x1::function_info::FunctionInfo"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "load_module_from_function",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::function_info::FunctionInfo"
          ],
          "return": []
        },
        {
          "name": "new_function_info",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": [
            "0x1::function_info::FunctionInfo"
          ]
        },
        {
          "name": "new_function_info_from_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": [
            "0x1::function_info::FunctionInfo"
          ]
        }
      ],
      "structs": [
        {
          "name": "FunctionInfo",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "module_address",
              "type": "address"
            },
            {
              "name": "module_name",
              "type": "0x1::string::String"
            },
            {
              "name": "function_name",
              "type": "0x1::string::String"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b01000e020e180326c50104eb010c05f7016a07e102dc0708bd0a2010dd0af5030ad20e120ce40ecd050db1140600000007000c00110019001c0024000107000003070000040700020b07010000041b02010000000500010001000601030001010805050001000901060001000a01070001000d01080001020e0a0b010001020f020b01000100100101000103120101000100130906000100140d06000100150e07000100160f08000100171008000100181108010201041a0a12010201051d1301010001001e0e010001001f0e01000100200d01000100210d01000100220114000100230107000106250208000101260505000100270108000100280e07000100290e040001002a0e140001002b0d040001002c0d04000106090709100a11120704060401060800010a020001080001020103010801010b030108020101010802010900010b0301090002010b030108020106080201060801030608000608010a02030a020a020a02030608000608010900010b0401090001060900010b030102070303030201010102060a02030d6d756c74695f65643235353139095369676e617475726505627974657314556e76616c6964617465645075626c69634b65791256616c6964617465645075626c69634b6579127369676e61747572655f746f5f6279746573186e65775f7369676e61747572655f66726f6d5f6279746573056572726f7210696e76616c69645f617267756d656e74256e65775f756e76616c6964617465645f7075626c69635f6b65795f66726f6d5f6279746573236e65775f76616c6964617465645f7075626c69635f6b65795f66726f6d5f6279746573064f7074696f6e066f7074696f6e1c7075626c69635f6b65795f76616c69646174655f696e7465726e616c04736f6d65046e6f6e65267075626c69635f6b65795f62797465735f746f5f61757468656e7469636174696f6e5f6b6579046861736808736861335f3235361b7075626c69635f6b65795f696e746f5f756e76616c696461746564197075626c69635f6b65795f746f5f756e76616c696461746564137075626c69635f6b65795f76616c6964617465177369676e61747572655f7665726966795f737472696374207369676e61747572655f7665726966795f7374726963745f696e7465726e616c197369676e61747572655f7665726966795f7374726963745f740765643235353139126e65775f7369676e65645f6d6573736167650d5369676e65644d6573736167650362637308746f5f62797465732c756e76616c6964617465645f7075626c69635f6b65795f746f5f61757468656e7469636174696f6e5f6b65791f756e76616c6964617465645f7075626c69635f6b65795f746f5f62797465732a76616c6964617465645f7075626c69635f6b65795f746f5f61757468656e7469636174696f6e5f6b65791d76616c6964617465645f7075626c69635f6b65795f746f5f627974657317636865636b5f616e645f6765745f7468726573686f6c64266e65775f76616c6964617465645f7075626c69635f6b65795f66726f6d5f62797465735f7632086665617475726573246d756c74695f656432353531395f706b5f76616c69646174655f76325f656e61626c65640d696e76616c69645f73746174651f7075626c69635f6b65795f76616c69646174655f76325f696e7465726e616c167075626c69635f6b65795f76616c69646174655f763222756e76616c6964617465645f7075626c69635f6b65795f6e756d5f7375625f706b7320756e76616c6964617465645f7075626c69635f6b65795f7468726573686f6c642076616c6964617465645f7075626c69635f6b65795f6e756d5f7375625f706b731e76616c6964617465645f7075626c69635f6b65795f7468726573686f6c64000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631c10304010000000000000013455f57524f4e475f5055424b45595f53495a455357726f6e67206e756d626572206f66206279746573207765726520676976656e20617320696e707574207768656e20646573657269616c697a696e6720616e2045643235353139207075626c6963206b65792e020000000000000016455f57524f4e475f5349474e41545552455f53495a455257726f6e67206e756d626572206f66206279746573207765726520676976656e20617320696e707574207768656e20646573657269616c697a696e6720616e2045643235353139207369676e61747572652e030000000000000028455f494e56414c49445f5448524553484f4c445f4f525f4e554d4245525f4f465f5349474e45525354546865207468726573686f6c64206d75737420626520696e207468652072616e676520605b312c206e5d602c207768657265206e2069732074686520746f74616c206e756d626572206f66207369676e6572732e04000000000000001a455f4e41544956455f46554e5f4e4f545f415641494c41424c4532546865206e61746976652066756e6374696f6e732068617665206e6f74206265656e20726f6c6c6564206f7574207965742e0000000201020a02010201020a02020201020a020001000002040b001000140201010000020d0e0041040640000000000000001906040000000000000021040a0b001200020602000000000000001102270301000005180e0041040c010a010620000000000000001a0620000000000000002504150b01062000000000000000190601000000000000002104120b00120102060100000000000000110227060100000000000000110227040100000c180e004104062000000000000000190601000000000000002104150a0011050c010b0104120b00120238000c020b020238010c020510090c01050a0800000002060d00310144040b001109020a01000002050e001001141201020b01000002050b001001141201020c01000002050b00100214110402050002000d01000002090b001000140b011002140b02110e020e0002000f010000120d0b0238020c030b001000140b011002140e033803110e021201000002050b001002141108021301000002040b00100214021401000002050b001001141108021501000002040b00100114021601000015430e0041040c010a010600000000000000002104093804020a01062000000000000000190c020a010620000000000000001a0c030e000b01060100000000000000174204140c040a0306000000000000000021043e080c050b050439080c060b0604263804020a043100210433080c070b0704303804020b043805020a040b0333240c07052c0b02060100000000000000220c0605220a03062000000000000000240c05051e170100000711111803050604000000000000001119270a00111a040e0b00120238000c010b010238010c01050c1b01000002050b001002141117021a0002001c01000002070b00100241040620000000000000001a33021d01000002050b001002141116021e01000002070b00100141040620000000000000001a33021f010000160e0a00100141040b0010010c01060100000000000000170c020b010b024204140200000200010000",
    "abi": {
      "address": "0x1",
      "name": "multi_ed25519",
      "friends": [],
      "exposed_functions": [
        {
          "name": "signature_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::Signature"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "new_signature_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::multi_ed25519::Signature"
          ]
        },
        {
          "name": "new_unvalidated_public_key_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::multi_ed25519::UnvalidatedPublicKey"
          ]
        },
        {
          "name": "new_validated_public_key_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::multi_ed25519::ValidatedPublicKey>"
          ]
        },
        {
          "name": "public_key_into_unvalidated",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::multi_ed25519::ValidatedPublicKey"
          ],
          "return": [
            "0x1::multi_ed25519::UnvalidatedPublicKey"
          ]
        },
        {
          "name": "public_key_to_unvalidated",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::ValidatedPublicKey"
          ],
          "return": [
            "0x1::multi_ed25519::UnvalidatedPublicKey"
          ]
        },
        {
          "name": "public_key_validate",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "0x1::option::Option<0x1::multi_ed25519::ValidatedPublicKey>"
          ]
        },
        {
          "name": "signature_verify_strict",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::Signature",
            "&0x1::multi_ed25519::UnvalidatedPublicKey",
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "signature_verify_strict_t",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&0x1::multi_ed25519::Signature",
            "&0x1::multi_ed25519::UnvalidatedPublicKey",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "unvalidated_public_key_to_authentication_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "unvalidated_public_key_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "validated_public_key_to_authentication_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::ValidatedPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "validated_public_key_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::ValidatedPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "check_and_get_threshold",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<u8>"
          ]
        },
        {
          "name": "new_validated_public_key_from_bytes_v2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::multi_ed25519::ValidatedPublicKey>"
          ]
        },
        {
          "name": "public_key_validate_v2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "0x1::option::Option<0x1::multi_ed25519::ValidatedPublicKey>"
          ]
        },
        {
          "name": "unvalidated_public_key_num_sub_pks",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "u8"
          ]
        },
        {
          "name": "unvalidated_public_key_threshold",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "0x1::option::Option<u8>"
          ]
        },
        {
          "name": "validated_public_key_num_sub_pks",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::ValidatedPublicKey"
          ],
          "return": [
            "u8"
          ]
        },
        {
          "name": "validated_public_key_threshold",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::ValidatedPublicKey"
          ],
          "return": [
            "u8"
          ]
        }
      ],
      "structs": [
        {
          "name": "Signature",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "UnvalidatedPublicKey",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "ValidatedPublicKey",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0a01000e020e040312980104aa010405ae014907f701ba0408b1062010d10691010ae207050ce7079a0400000004000b000d000f001300190001070000030001000101050301010701000604010001000704010001000804010001000905010001010a0607010701020c08090001030e0907000103060501000104100a0a000100110501000103120501000105140b07000105150b0a000105160c010001001704010001051804010001061a090e0001061b09090001061c090a0001061d0c010001001e04010001061804010001001f040100010102060202060c060c0001080003060c060c090003060c050502060c0502060c0900010101060c0105010302050504060c050503020503010a05060a05060a0503030503050a05060a050303050d7374616b696e675f70726f7879145374616b6550726f78795065726d697373696f6e0b64756d6d795f6669656c64106772616e745f7065726d697373696f6e137065726d697373696f6e65645f7369676e657213617574686f72697a655f756e6c696d697465640c7365745f6f70657261746f721d7365745f76657374696e675f636f6e74726163745f6f70657261746f721d7365745f7374616b696e675f636f6e74726163745f6f70657261746f72177365745f7374616b655f706f6f6c5f6f70657261746f7217636865636b5f7065726d697373696f6e5f657869737473067369676e65720a616464726573735f6f66057374616b65117374616b655f706f6f6c5f657869737473056572726f72117065726d697373696f6e5f64656e696564147365745f7374616b655f706f6f6c5f766f746572137365745f64656c6567617465645f766f746572107374616b696e675f636f6e7472616374177374616b696e675f636f6e74726163745f65786973747315636f6d6d697373696f6e5f70657263656e746167650f7377697463685f6f70657261746f721a7365745f7374616b696e675f636f6e74726163745f766f7465720c7570646174655f766f7465720776657374696e671176657374696e675f636f6e747261637473086f70657261746f721e6f70657261746f725f636f6d6d697373696f6e5f70657263656e746167650f7570646174655f6f70657261746f721a7365745f76657374696e675f636f6e74726163745f766f746572097365745f766f746572000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76315e011c0000000000000014454e4f5f5354414b455f5045524d495353494f4e3d5369676e657220646f6573206e6f742068617665207065726d697373696f6e20746f20706572666f726d207374616b652070726f7879206c6f6769632e000000020102010001000001060b000b0109120038000202010400010c0a000a010a0211030a000b010a0211040b000b021105020501040001150a00091200380104100a0011071108040d0b000b011109020b0001050c0b0001061c00000000000000110a270b01040001150a00091200380104100a0011071108040d0b000b01110c020b0001050c0b0001061c00000000000000110a27040104000d1e0a00091200380104190a0011070c030a030a01110d04160b030a01110e0c040b000b010b020b04110f020b000105150b0001061c00000000000000110a271001040001170a00091200380104120a0011070a01110d040f0b000b010b021111020b0001050e0b0001061c00000000000000110a27030104000f360a00091200380104310a00110711120c030e030c040600000000000000000c050a0441090c060a050a0623042c0a040a054209140c070a0711130a0121031f05270a0711140c080a000b070a020b0811150b05060100000000000000160c0505100b00010b0401020b0001061c00000000000000110a271601040010320a000912003801042d0a00110711120c030e030c040600000000000000000c050a0441090c060a050a062304280a040a054209140c070a0711130a0121031f05230a000b070a0211170b05060100000000000000160c0505100b00010b0401020b0001061c00000000000000110a2718010400010c0a000a010a0211160a000b010a0211100b000b02110b0200",
    "abi": {
      "address": "0x1",
      "name": "staking_proxy",
      "friends": [],
      "exposed_functions": [
        {
          "name": "grant_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "set_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_stake_pool_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_stake_pool_voter",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_staking_contract_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_staking_contract_voter",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_vesting_contract_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_vesting_contract_voter",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_voter",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "StakeProxyPermission",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c01000602060c0312300542160758a8020880032006a0032210c203540a9604150cab04c6010df105080ff9050800000009000b00010c000003070000040c00000800010001010a00010001020c02020001000d01030001020e02020001000f0105000100100201000100110101000101060c000103020303010608020108010207080207030d73746174655f73746f726167650c476173506172616d6574657205757361676505557361676511537461746553746f7261676555736167650565706f6368056974656d730562797465730a696e697469616c697a651073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b056572726f720e616c72656164795f6578697374731763757272656e745f6974656d735f616e645f6279746573096e6f745f666f756e642f6765745f73746174655f73746f726167655f75736167655f6f6e6c795f61745f65706f63685f626567696e6e696e670c6f6e5f6e65775f626c6f636b0b6f6e5f7265636f6e6669670b73746f726167655f6761730f7265636f6e66696775726174696f6e05626c6f636b0767656e6573697300000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f763121010000000000000000144553544154455f53544f524147455f55534147450000000002010208010202020503020801010202060307030003000001120a00110107002901030d0b00060000000000000000060000000000000000060000000000000000120212012d01020b00010600000000000000001102270303000101041207002901040f07002b010c000a0010001001140b00100010021402060000000000000000110427050002000603000101061d07002901041a07002a010c010a000a011003142204170a010f030c020b000b021511050b010f0015020b01010516060000000000000000110427070300000102060000000000000000270101020002010100001200130014001500",
    "abi": {
      "address": "0x1",
      "name": "state_storage",
      "friends": [
        "0x1::storage_gas",
        "0x1::reconfiguration",
        "0x1::block",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "current_items_and_bytes",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64",
            "u64"
          ]
        },
        {
          "name": "on_new_block",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": []
        },
        {
          "name": "on_reconfig",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "GasParameter",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "usage",
              "type": "0x1::state_storage::Usage"
            }
          ]
        },
        {
          "name": "StateStorageUsage",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "epoch",
              "type": "u64"
            },
            {
              "name": "usage",
              "type": "0x1::state_storage::Usage"
            }
          ]
        },
        {
          "name": "Usage",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "items",
              "type": "u64"
            },
            {
              "name": "bytes",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d01000802080c0314f1020485033805bd03b10107ee04bc0508aa0a2010ca0a8e010ad80b050bdd0b060ce30b9c050dff10020e8111040000000a000e00100001030100010109070100000003000101000100040202000100050405010001000606070200000100070507020000010008090a02000001000b090b02000001010c030c010001010d020c010001020f020e00010311050500010012000a0100010013040b01000100140601010001001505050100010016060f020000010017050b020000010018000e0100010019040e010001001a0501010001001b0505010001001c1314010001001d160102000001001e160502000001001f060a0100010020050b010001002100010100010022040501000100231718030000000100241a050300000001002517010200000100261a0502000001002706010100010028050501000100290201010001002a0205010001002b0207010001002c0207010001002d1c180300000001002e04050300000001002f1c0102000001003004050200000100310601010001003205050100010033000101000100340405010001003506110200000100360505020000010037020101000100380205010001020304080608070108010c030e0310080711081112031403170819031b03150315101d191f08210323032503271929082b032d032f08310302060b00010900060b00010900010b0001090000010900020303010301060b00010900010a02020900090101060a02010b01010b00010900020103010b0101090002030b01010b000109000101010b01010b00010901010901010b0001090102030b01010b0001090101060a0b00010900010a0303030a030302060a02060a0202060a0b00010900060a0b00010901010b0001090203090009010902020a030a0301090202060b00010900060b000109010e63727970746f5f616c676562726107456c656d656e740668616e646c65036164643161626f72745f756e6c6573735f63727970746f6772617068795f616c67656272615f6e6174697665735f656e61626c65640c6164645f696e7465726e616c0973657269616c697a651273657269616c697a655f696e7465726e616c0b646573657269616c697a65064f7074696f6e066f7074696f6e14646573657269616c697a655f696e7465726e616c04736f6d65046e6f6e650866656174757265731c63727970746f6772617068795f616c67656272615f656e61626c6564056572726f720f6e6f745f696d706c656d656e746564036469760c6469765f696e7465726e616c06646f75626c650f646f75626c655f696e7465726e616c08646f776e6361737411646f776e636173745f696e7465726e616c0265710b65715f696e7465726e616c0866726f6d5f7536341166726f6d5f7536345f696e7465726e616c1568616e646c65735f66726f6d5f656c656d656e747307686173685f746f10686173685f746f5f696e7465726e616c03696e760c696e765f696e7465726e616c036d756c0c6d756c5f696e7465726e616c0d6d756c74695f70616972696e67166d756c74695f70616972696e675f696e7465726e616c106d756c74695f7363616c61725f6d756c196d756c74695f7363616c61725f6d756c5f696e7465726e616c036e65670c6e65675f696e7465726e616c036f6e650c6f6e655f696e7465726e616c056f726465720e6f726465725f696e7465726e616c0770616972696e671070616972696e675f696e7465726e616c0a7363616c61725f6d756c137363616c61725f6d756c5f696e7465726e616c037371720c7371725f696e7465726e616c037375620c7375625f696e7465726e616c067570636173740f7570636173745f696e7465726e616c047a65726f0d7a65726f5f696e7465726e616c000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76315b03010000000000000011455f4e4f545f494d504c454d454e54454400020000000000000013455f4e4f4e5f455155414c5f4c454e4754485300030000000000000016455f544f4f5f4d5543485f4d454d4f52595f55534544000000000201020300030010001b00010000020a11010b003700140b01370014380039000203010000020611010b00370014380102050100000d0e11010b0038020c01040b0b01390038030c020b020238040c0205090100000002061109040302060000000000000000110a2702000200060002000b0100000d1311010b003700140b0137001438050c0204100b02390038030c030b030238040c03050e0c0002000d010000020711010b0037001438063900020e0002000f010000121011010b0037001438070c01040d0b01390138080c020b020238090c02050b1000020011010000020911010b003700140b01370014380a021200020013010000020511010b00380b3900021400020015000000151c0a0041010c01400500000000000000000c020600000000000000000c03280a030a012304180d020a000a03420137001444050b03060100000000000000160c0305070b00010b020216010000020611010b000b01380c39000217000200180100000d1011010b00370014380d0c01040d0b01390038030c020b020238040c02050b190002001a010000020a11010b003700140b01370014380e3900021b0002001c0100001a0811010b00380f0b01381038113902021d0002001e0100001a070b00380f0b01381038123900021f00020020010000020711010b00370014381339000221000200220100000204110138143900022300020024010000020311013815022500020026010000020a11010b003700140b0137011438163902022700020028010000020a11010b003700140b01370114381739000229000200040002002a010000020711010b0037001438183900022b0002002c010000020a11010b003700140b0137001438193900022d0002002e010000020711010b00370014381a3901022f0002003001000002041101381b3900023100020000000003001000",
    "abi": {
      "address": "0x1",
      "name": "crypto_algebra",
      "friends": [],
      "exposed_functions": [
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>",
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "serialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "deserialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::crypto_algebra::Element<T0>>"
          ]
        },
        {
          "name": "div",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>",
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::option::Option<0x1::crypto_algebra::Element<T0>>"
          ]
        },
        {
          "name": "double",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "downcast",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::option::Option<0x1::crypto_algebra::Element<T1>>"
          ]
        },
        {
          "name": "eq",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>",
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "from_u64",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "hash_to",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&vector<u8>",
            "&vector<u8>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "inv",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::option::Option<0x1::crypto_algebra::Element<T0>>"
          ]
        },
        {
          "name": "mul",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>",
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "multi_pairing",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&vector<0x1::crypto_algebra::Element<T0>>",
            "&vector<0x1::crypto_algebra::Element<T1>>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T2>"
          ]
        },
        {
          "name": "multi_scalar_mul",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&vector<0x1::crypto_algebra::Element<T0>>",
            "&vector<0x1::crypto_algebra::Element<T1>>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "neg",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "one",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "order",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "pairing",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>",
            "&0x1::crypto_algebra::Element<T1>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T2>"
          ]
        },
        {
          "name": "scalar_mul",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>",
            "&0x1::crypto_algebra::Element<T1>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "sqr",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>",
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "upcast",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T1>"
          ]
        },
        {
          "name": "zero",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        }
      ],
      "structs": [
        {
          "name": "Element",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "handle",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0e01001902198e0103a701960704bd087b05b809c806078010ad1808ad282006cd28d30110a02aeb1e0a8b49e5010cf04aa7260d9771300fc7710c13d3710200000004000c001600180024002d003d00560077007e00ac010001060001030701000100050b00000608000008060000090800020b06010000000d0800000f060000120600001308000315070100000417070000190800001d0600001f06000020000000210800052304010601002606000028080000290600062c07000032060000330600003406000035060000360800003806000039070001450200019e01060001b1010600003c00010001073e03030001003f040200010040050200010041060200010042070800010043010300010044090a00010146090c01080100470c0d01080101480f10010801004909020001014a09100001014b09110001074c03030001004d1202010801004e1301010801004f14020108010050150201080100511601010801005217020108010053180800010154090d00010655190300010857020d000103581b0d0100010259021c010301033c1d0e010001025a0e1c010301075b03030001002b0c1f010801002e0c1f010801002f0c2001080100300c1f01080100310c1f010801005c21020001025d220d010001001107030001005e07080001000a0c03010801005f080d000100600c030108010261240e0100010062260301080100630c0801080100020c0b010801006427020108010065280100010066290201080100672b08000100682c2d01080101690c2f02080801014909020001086a020d0001076b03030001006c3302010801006d34020001006e0c35010801036f02370100010770030300010071080d000100720c3501080100730c3501080100740102000100751002000102760e1c0103010977101100010078093c00010079093d0001007a093e0001007b093f0001007c09400001007d410200010a7f430201070100800144020108010381011b0d010001008201100d0001008301080d00010084012902010801028501220d0100010386011d46010001008701280d0001028801470d010001008901490d010801008a010c0d010801008b010c0d01080100370c4b010801028c01240e010301038d010e37010001008e014d010001008f014e0100010090014f08000100910150020108010092015102000100930153080001009401540200010a95015502010701009601560200010397011b57010001069801581f000104990159360001049a015a0d0001079b0103030001009c015c020001009d015e020001019f015e0c01080105a0016002010601012a0c1001080105a1010e0201060100a201650201080100a301330201080100a401100d000100a5010c4b01080100a6010c4b01080100a701694b01080100a8016a08000102a901220201000100aa013402000100ab0170020108010bad017110000101ae01720d01080108af01020d000100b0017302000101b2017310000101b3017311000102b401741c01030100b501760201080100b601130201080100b7010c350108010ab801550d01070100b9017702000100ba010c01010801080b0a0e100e110e130e140e191a1a1a1b1a1c1a2403290e2a032c0e300b332e090e1a030830241a370e0a0b3a36410349424b364f1a4b1a501a5203571a3a1a581a4e0b4b1f1b1f4b201b206042623669300a306a5f6a616a626b306c636e0e6c66710e2a1a74036c6b6c6e780e540e411a7d1a7e0e7f0e810142020708100301081000010302070810081002060c0b0101080202060804081001060810010b010108020106081e010800010802010b01010900010101090001060b010109000105010c04060c0b010109000b010109000303060c0b0101090003020b010109000810040608000b010109000b0101090003030608000b0101090003030608000b0101090008100706081e0b0b010408160816020816081601060816010401060b0b010900010b0601090001070b0b010900050c060c060c0b0601040807010816010203060804050302070b060109000900040708140b0101080201081001060b06010900050505030103020608190b01010900030608040b010109000302050302060b010109000302030b01010802010608040206081e0b01010900010b010108140209000802010b01010901010814020c060c020507081b020b010109000102050810010b0b01080c01080c010b0b0109000305050b0b01080c03050608140102050b0b01080c030708140b0601030c01080401081701081801081901081a04060c060c050301081d04060c060c0f090004060c060c0b0101090003030501010107090002060b06010900090003030101020b0101090003020501010b0b01040305040b0b01040206081703020b010108020301060817030608170b0101090003060608180b0b0108160b0b0108160b0b01020b0b0108160b0b0108160807080208160708160816020702081608160106081803060c030503060c0f09000206081e0b0b01080c01060900010a020305081608160206080c06080c05060b0b01080c06080c080c06081e0c0406081e0b0b01080c0b0b01080c0b0b01080c09060b0b01080c06080c080c060b0b01080c080c060b0b01080c080c06081e0c0106081f010809010b1201090001081301080f010815070b0101081405030b010108020b0601030b1201080f0b12010813030608000b010109000101080e0205070102050b0b01040206081a0b01010900010608000108080605030b01010802070814010304030b010108020708140101081c0605030708140b0101080201081002060c0b0101090001060c020b010109000501060820020900090006050c0b0b0104040b060104080703060c0b010109000103060c050304050b01010900060814010e66756e6769626c655f61737365740b5472616e73666572526566086d65746164617461064f626a656374066f626a656374084d657461646174610e556e7472616e7366657261626c650b64756d6d795f6669656c64074275726e52656619436f6e63757272656e7446756e6769626c6542616c616e63650762616c616e63650a41676772656761746f720d61676772656761746f725f763210436f6e63757272656e74537570706c790763757272656e74074465706f7369740573746f726506616d6f756e740c4465706f7369744576656e740c446572697665537570706c791164697370617463685f66756e6374696f6e064f7074696f6e066f7074696f6e0c46756e6374696f6e496e666f0d66756e6374696f6e5f696e666f15446973706174636846756e6374696f6e53746f72651177697468647261775f66756e6374696f6e106465706f7369745f66756e6374696f6e18646572697665645f62616c616e63655f66756e6374696f6e0646726f7a656e0666726f7a656e0b46726f7a656e4576656e740d46756e6769626c6541737365741346756e6769626c6541737365744576656e74730e6465706f7369745f6576656e74730b4576656e7448616e646c65056576656e740f77697468647261775f6576656e74730d57697468647261774576656e740d66726f7a656e5f6576656e74730d46756e6769626c6553746f72651546756e6769626c6553746f726544656c6574696f6e056f776e6572046e616d6506537472696e6706737472696e670673796d626f6c08646563696d616c730869636f6e5f7572690b70726f6a6563745f757269074d696e74526566114d75746174654d657461646174615265660d52617742616c616e63655265660c526177537570706c7952656606537570706c79076d6178696d756d0857697468647261771257697468647261775065726d697373696f6e07427953746f72650d73746f72655f616464726573730765787472616374056572726f7210696e76616c69645f617267756d656e74056d65726765117265766f6b655f7065726d697373696f6e046275726e136d657461646174615f66726f6d5f61737365740d6275726e5f696e7465726e616c1567656e65726174655f7472616e736665725f7265660e436f6e7374727563746f725265661b6f626a6563745f66726f6d5f636f6e7374727563746f725f7265661169735f756e7472616e7366657261626c650e6f626a6563745f61646472657373127365745f756e7472616e7366657261626c651c616464726573735f66726f6d5f636f6e7374727563746f725f7265660f67656e65726174655f7369676e6572096e6f745f666f756e64087472616e73666572087769746864726177076465706f736974117472616e736665725f776974685f7265661177697468647261775f776974685f726566106465706f7369745f776974685f7265660f6164645f66756e676962696c6974791763616e5f67656e65726174655f64656c6574655f726566066c656e67746808666561747572657322636f6e63757272656e745f66756e6769626c655f6173736574735f656e61626c65640769735f6e6f6e651b6372656174655f756e626f756e6465645f61676772656761746f72116372656174655f61676772656761746f720c6f75745f6f665f72616e676519616464726573735f6275726e5f66726f6d5f666f725f676173077472795f7375620e61737365745f6d657461646174611d6861735f62616c616e63655f64697370617463685f66756e6374696f6e0c62616c616e63655f696d706c04726561641062616c616e63655f776974685f7265660e73746f72655f6d65746164617461096275726e5f66726f6d12756e636865636b65645f77697468647261770f64656372656173655f737570706c79116275726e5f7265665f6d657461646174610c6372656174655f73746f726507636f6e766572742e64656661756c745f746f5f636f6e63757272656e745f66756e6769626c655f62616c616e63655f656e61626c65640d696e76616c69645f7374617465146465706f7369745f73616e6974795f636865636b11756e636865636b65645f6465706f736974196465706f7369745f64697370617463685f66756e6374696f6e046e6f6e65117065726d697373696f6e5f64656e6965641d6861735f6465706f7369745f64697370617463685f66756e6374696f6e21646572697665645f62616c616e63655f64697370617463685f66756e6374696f6e20646572697665645f737570706c795f64697370617463685f66756e6374696f6e0c64657374726f795f7a65726f2c656e737572655f73746f72655f75706772616465645f746f5f636f6e63757272656e745f696e7465726e616c266372656174655f756e626f756e6465645f61676772656761746f725f776974685f76616c75650d6372656174655f7369676e65721167656e65726174655f6275726e5f7265661167656e65726174655f6d696e745f7265661c67656e65726174655f6d75746174655f6d657461646174615f7265661867656e65726174655f7261775f62616c616e63655f7265661767656e65726174655f7261775f737570706c795f7265661b6772616e745f7065726d697373696f6e5f62795f61646472657373137065726d697373696f6e65645f7369676e657212617574686f72697a655f696e637265617365196772616e745f7065726d697373696f6e5f62795f73746f72650769735f736f6d651c6861735f737570706c795f64697370617463685f66756e6374696f6e1e6861735f77697468647261775f64697370617463685f66756e6374696f6e0f696e6372656173655f737570706c79077472795f6164640a626f72726f775f6d75741b69735f616464726573735f62616c616e63655f61745f6c656173740b69735f61745f6c656173741369735f62616c616e63655f61745f6c656173740969735f66726f7a656e1569735f73746f72655f646973706174636861626c65096d61785f76616c756504736f6d65046d696e740d6d696e745f696e7465726e616c116d696e745f7265665f6d65746164617461076d696e745f746f0f6d75746174655f6d65746164617461186f626a6563745f66726f6d5f6d657461646174615f72656611726566696c6c5f7065726d697373696f6e0e696e6372656173655f6c696d69742872656769737465725f6465726976655f737570706c795f64697370617463685f66756e6374696f6e06626f72726f7704757466381e6e65775f66756e6374696f6e5f696e666f5f66726f6d5f6164647265737321636865636b5f64697370617463685f747970655f636f6d7061746962696c6974790e616c72656164795f6578697374731b72656769737465725f64697370617463685f66756e6374696f6e730c72656d6f76655f73746f72650944656c657465526566166f626a6563745f66726f6d5f64656c6574655f7265660e64657374726f795f68616e646c6504656d69740f7365745f66726f7a656e5f666c6167187365745f66726f7a656e5f666c61675f696e7465726e616c0c73746f72655f65786973747306737570706c790b737570706c795f696d706c0f737570706c795f776974685f726566157472616e736665725f7265665f6d657461646174610361646420756e636865636b65645f6465706f7369745f776974685f6e6f5f6576656e74731b757067726164655f73746f72655f746f5f636f6e63757272656e74067369676e65720a616464726573735f6f66046f776e7323636f6e63757272656e745f66756e6769626c655f62616c616e63655f656e61626c656415757067726164655f746f5f636f6e63757272656e7409457874656e6452656617616464726573735f66726f6d5f657874656e645f7265661d67656e65726174655f7369676e65725f666f725f657874656e64696e671c6372656174655f61676772656761746f725f776974685f76616c75651577697468647261775f73616e6974795f636865636b1977697468647261775f7065726d697373696f6e5f636865636b1a77697468647261775f64697370617463685f66756e6374696f6e18636865636b5f7065726d697373696f6e5f636f6e73756d652477697468647261775f7065726d697373696f6e5f636865636b5f62795f61646472657373047a65726f1b646973706174636861626c655f66756e6769626c655f6173736574167072696d6172795f66756e6769626c655f73746f726504636f696e0d6170746f735f6163636f756e7400000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000a052000000000000000000000000000000000000000000000000000000000000000010a021c1b646973706174636861626c655f66756e6769626c655f61737365740a021c1b646973706174636861626c655f646572697665645f737570706c790a021615646973706174636861626c655f77697468647261770a021514646973706174636861626c655f6465706f7369740a021d1c646973706174636861626c655f646572697665645f62616c616e636514636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631b71e2401000000000000001645414d4f554e545f43414e4e4f545f42455f5a45524f16416d6f756e742063616e6e6f74206265207a65726f2e020000000000000029455452414e534645525f5245465f414e445f46554e4749424c455f41535345545f4d49534d4154434835546865207472616e736665722072656620616e64207468652066756e6769626c6520617373657420646f206e6f74206d617463682e0300000000000000104553544f52455f49535f46524f5a454e4153746f72652069732064697361626c65642066726f6d2073656e64696e6720616e6420726563656976696e6720746869732066756e6769626c652061737365742e04000000000000001545494e53554646494349454e545f42414c414e43452d496e73756666696369656e742062616c616e636520746f207769746864726177206f72207472616e736665722e050000000000000014454d41585f535550504c595f4558434545444544315468652066756e6769626c65206173736574277320737570706c7920686173206578636565646564206d6178696d756d2e0600000000000000184546554e4749424c455f41535345545f4d49534d415443482946756e6769626c6520617373657420646f206e6f74206d61746368207768656e206d657267696e672e07000000000000001c454d494e545f5245465f414e445f53544f52455f4d49534d4154434828546865206d696e742072656620616e64207468652073746f726520646f206e6f74206d617463682e080000000000000010454e4f545f53544f52455f4f574e4552214163636f756e74206973206e6f74207468652073746f72652773206f776e65722e090000000000000020455452414e534645525f5245465f414e445f53544f52455f4d49534d41544348245472616e736665722072656620616e642073746f726520646f206e6f74206d617463682e0a000000000000001c454255524e5f5245465f414e445f53544f52455f4d49534d41544348204275726e2072656620616e642073746f726520646f206e6f74206d617463682e0b00000000000000224546554e4749424c455f41535345545f414e445f53544f52455f4d49534d415443482646756e6769626c6520617373657420616e642073746f726520646f206e6f74206d617463682e0c000000000000001345414d4f554e545f49535f4e4f545f5a45524f2943616e6e6f742064657374726f79206e6f6e2d656d7074792066756e6769626c65206173736574732e0d0000000000000025454255524e5f5245465f414e445f46554e4749424c455f41535345545f4d49534d41544348294275726e2072656620616e642066756e6769626c6520617373657420646f206e6f74206d617463682e0e00000000000000144542414c414e43455f49535f4e4f545f5a45524f3743616e6e6f742064657374726f792066756e6769626c652073746f72657320776974682061206e6f6e2d7a65726f2062616c616e63652e0f000000000000000e454e414d455f544f4f5f4c4f4e472f4e616d65206f66207468652066756e6769626c65206173736574206d6574616461746120697320746f6f206c6f6e671000000000000000104553594d424f4c5f544f4f5f4c4f4e473153796d626f6c206f66207468652066756e6769626c65206173736574206d6574616461746120697320746f6f206c6f6e6711000000000000001345444543494d414c535f544f4f5f4c4152474522446563696d616c73206973206f76657220746865206d6178696d756d206f66203332120000000000000014454f424a4543545f49535f44454c455441424c453846756e676962696c697479206973206f6e6c7920617661696c61626c6520666f72206e6f6e2d64656c657461626c65206f626a656374732e13000000000000000d455552495f544f4f5f4c4f4e473b55524920666f72207468652069636f6e206f66207468652066756e6769626c65206173736574206d6574616461746120697320746f6f206c6f6e6714000000000000001145535550504c595f554e444552464c4f57485468652066756e6769626c65206173736574277320737570706c792077696c6c206265206e656761746976652077686963682073686f756c6420626520696d706f737369626c652e15000000000000001145535550504c595f4e4f545f464f554e4433537570706c79207265736f75726365206973206e6f7420666f756e6420666f722061206d65746164617461206f626a6563742e16000000000000001e45434f4e43555252454e545f535550504c595f4e4f545f454e41424c454426466c616720666f7220436f6e63757272656e7420537570706c79206e6f7420656e61626c65641700000000000000194546554e4749424c455f53544f52455f4558495354454e434529466c616720666f7220746865206578697374656e6365206f662066756e6769626c652073746f72652e180000000000000013454e4f545f4d455441444154415f4f574e45522c4163636f756e74206973206e6f7420746865206f776e6572206f66206d65746164617461206f626a6563742e1900000000000000254557495448445241575f46554e4354494f4e5f5349474e41545552455f4d49534d415443484750726f76696465642077697468647261772066756e6374696f6e207479706520646f65736e2774206d65657420746865207369676e617475726520726571756972656d656e742e1a0000000000000024454445504f5349545f46554e4354494f4e5f5349474e41545552455f4d49534d415443484650726f7669646564206465706f7369742066756e6374696f6e207479706520646f65736e2774206d65657420746865207369676e617475726520726571756972656d656e742e1b000000000000002c45444552495645445f42414c414e43455f46554e4354494f4e5f5349474e41545552455f4d49534d415443484e50726f766964656420646572697665645f62616c616e63652066756e6374696f6e207479706520646f65736e2774206d65657420746865207369676e617475726520726571756972656d656e742e1c000000000000002045494e56414c49445f444953504154434841424c455f4f5045524154494f4e53b801496e76616c69642077697468647261772f6465706f736974206f6e20646973706174636861626c6520746f6b656e2e205468652073706563696669656420746f6b656e20686173206120646973706174636861626c652066756e6374696f6e20686f6f6b2e0a204e65656420746f20696e766f6b6520646973706174636861626c655f66756e6769626c655f61737365743a3a77697468647261772f6465706f73697420746f20706572666f726d207472616e736665722e1d000000000000001345414c52454144595f5245474953544552454438547279696e6720746f2072652d726567697374657220646973706174636820686f6f6b206f6e20612066756e6769626c652061737365742e1e000000000000001c4546554e4749424c455f4d455441444154415f4558495354454e43453146756e6769626c65206d6574616461746120646f6573206e6f74206578697374206f6e2074686973206163636f756e742e1f0000000000000015454150545f4e4f545f444953504154434841424c452643616e6e6f7420726567697374657220646973706174636820686f6f6b20666f72204150542e20000000000000001f45434f4e43555252454e545f42414c414e43455f4e4f545f454e41424c454426466c616720666f7220436f6e63757272656e7420537570706c79206e6f7420656e61626c656421000000000000002b45444552495645445f535550504c595f46554e4354494f4e5f5349474e41545552455f4d49534d415443484d50726f766964656420646572697665645f737570706c792066756e6374696f6e207479706520646f65736e2774206d65657420746865207369676e617475726520726571756972656d656e742e22000000000000002c455241575f42414c414e43455f5245465f414e445f46554e4749424c455f41535345545f4d49534d41544348345468652062616c616e63652072656620616e64207468652066756e6769626c6520617373657420646f206e6f74206d617463682e23000000000000002b455241575f535550504c595f5245465f414e445f46554e4749424c455f41535345545f4d49534d415443483354686520737570706c792072656620616e64207468652066756e6769626c6520617373657420646f206e6f74206d617463682e24000000000000001b4557495448445241575f5045524d495353494f4e5f44454e4945443e7369676e657220646f6e2774206861766520746865207065726d697373696f6e20746f20706572666f726d207769746864726177206f7065726174696f6e0d0646726f7a656e01040006537570706c79010301183078313a3a6f626a6563743a3a4f626a65637447726f7570074465706f736974010400084d65746164617461010301183078313a3a6f626a6563743a3a4f626a65637447726f75700857697468647261770104000c446572697665537570706c79010301183078313a3a6f626a6563743a3a4f626a65637447726f75700d46756e6769626c6553746f7265010301183078313a3a6f626a6563743a3a4f626a65637447726f75700e556e7472616e7366657261626c65010301183078313a3a6f626a6563743a3a4f626a65637447726f757010436f6e63757272656e74537570706c79010301183078313a3a6f626a6563743a3a4f626a65637447726f75701346756e6769626c6541737365744576656e7473010301183078313a3a6f626a6563743a3a4f626a65637447726f757015446973706174636846756e6374696f6e53746f7265010301183078313a3a6f626a6563743a3a4f626a65637447726f75701546756e6769626c6553746f726544656c6574696f6e01040019436f6e63757272656e7446756e6769626c6542616c616e6365010301183078313a3a6f626a6563743a3a4f626a65637447726f75700f046e616d6501010006737570706c790101000673796d626f6c0101000762616c616e6365010100076d6178696d756d01010008646563696d616c730101000869636f6e5f757269010100086d657461646174610101000969735f66726f7a656e0101000b70726f6a6563745f7572690101000c73746f72655f6578697374730101000e73746f72655f6d657461646174610101001169735f756e7472616e7366657261626c650101001369735f62616c616e63655f61745f6c656173740101001569735f73746f72655f646973706174636861626c65010100000201020b010108020302010701040201020b010108020502010a0b0601030702010e0b0601040802021005110309020111030a0201140b0b01080c0d02031a0b0b01080c1b0b0b01080c1c0b0b01080c0e020210051e010f02011e01100202020b010108021103110203220b12010809250b12010813270b1201080f140203020b010108020a031e0115020310052a0502050202052b08162e08162f02300816310816170201020b01010802180201020b01010802190201020b010108021a0201020b010108021b02020e04370b0b01041c02021005110313020111031d03013a013b050001000002190a001000140a012604140a001000140a01170a000f00150b001001140b01120b020b00010604000000000000001101270201000003160b01130b0c020a001001142104110a001000140b02160b000f0015020b00010606000000000000001101270301000002040600000000000000000b000127040100020414020e0b001002140e01110521040b0b0111060102060d000000000000001101270701000002040b0038001200020901000002040e0038012901020b01000011110a00110c290f040c0b00110d0c010e010912012d01020b0001061e00000000000000110e270f01040303080d01090b000b010b0338020c040b020b0438030212010002030d010a0a000b010b0338040c040b000b020b04380502150100001e6d0a00111603680a00110d0c070e070c080e0211170620000000000000002504610e03111706200000000000000025045a0a0431202504530e05111706000200000000000025044c0e0611170600020000000000002504450a080b020b030b040b050b06120f2d0f1118043f0e0138060b080c09043a38070c0a0b0a12040c0b0b090b0b2d040b003800020d01380838090c0a05310b0832000000000000000000000000000000000b0112142d1405370b00010b0801061300000000000000111d270b00010b0801061300000000000000111d270b00010b0801061100000000000000111d270b00010b0801061000000000000000111d270b00010b0801060f00000000000000111d270b00010612000000000000001101271e0100010f02060e0038012b0f100314021f0100010f02060e0038012b0f10041402200100010f02060e0038012b0f10051402210100010f02060e0038012b0f10061402220100010f02060e0038012b0f100714022303000403040d1423500a01290d044b0a012a0d0c030a031008140c040a020600000000000000002204480a031009140600000000000000002104450a0129030c050b05042f0b03010b012a030f0a0a02380a042a05220b040b02120b0c060b000b061104020b00010604000000000000001101270a031009140a0226043e0a031009140a02170b030f091505220b00010b0301060400000000000000110127090c0505170b030105220b0001061700000000000000110e272501000002040b00100014022601000002040b00100114022701000303080d10150e0038010c010a01290d04120b012b0d1008141128030f0b00380b02061c00000000000000110127061700000000000000110e2729000002030d252d0e0038010c010a01290d042a0e0038010c020a02290d04270b022b0d1009140c030a030600000000000000002104240a0129030c040b0404210b012b03100a380c0c050b05020b030c05051f090c040518061700000000000000110e270600000000000000000c05051f2b010002030d020d0b00100b140a01380d21040a0b01380b020622000000000000001101272d0100010f02050e0038012b0f14022e01000403040d1402070b000e0138010b02112f1104020603000204142a090b00130b0c010c020e020a01380e0b01023101000002040b001002140232010000311e0a00110d0c020e020c030a030a01380f06000000000000000009120d2d0d0b013810031005120a0011341135041b0b03381112032d030b003812020b0301051830000002041432400a010600000000000000002104070b0001020b0038010c020a02290404190b022a040f0c0b013538130416051502061400000000000000111d270a022914043b0a02291404380b022a140c030a03100d140a01352604330a03100d140b0135170b030f0d1505150b0301061400000000000000113627061500000000000000110e27053d0515061500000000000000110e271101000303080d02080a000838140e0038010b0111380239010002080d381b0e0038010c010a01290d04180b012b0d100838150c020a02290804150b022b08100e140c030b030238160c030513061700000000000000110e2737010002080d39260e0038010c020a02290d04230b022b0d0c030b01031c080c040b0404170b03100f14031402060300000000000000113b270b0301061c000000000000001101270a03100814113c200c04050d061700000000000000110e2714010002030d02100b001010140e0210011421040d0e0138010b021138020602000000000000001101273d030002080d381b0e0038010c010a01290d04180b012b0d100838150c020a02290804150b022b081011140c030b030238160c030513061700000000000000110e273e030001073a100e0038010c010a012907040d0b012b071012140c020b020238160c02050b3f0100000d0c0b00130b060000000000000000210c01010b01040902060c00000000000000110127400000010d3b180a0029030404020a002a0d0c010a0110091438170c020600000000000000000b010f09150b0011420c030e030b0212032d03024301000002040b0038001202024401000002040b0038001210024501000002040b0038001211024601000002040b0038001212024701000002040b0038001213024803000002080b000b010b034d0b0252003818024a01000002090b000b010b034d0e0238015200381802280000010845190e0038150c010a0107002204160a0129080c020b0204130b012b08101138190c030b0302090c030511090c02050a3c0000010845190e0038150c010a0107002204160a0129080c020b0204130b012b08100e38190c030b0302090c030511090c02050a4c0000000d0c0a0007002204090b0029070c010b0102090c0105074d0000010845190e0038150c010a0107002204160a0129080c020b0204130b012b08101338190c030b0302090c030511090c02050a4e000002041432430a010600000000000000002104070b0001020b0038010c020a02290404190b022a040f0c0b0135381a0416051502060500000000000000111d270a02291404400b022a140c030a031014381b032405310a030f14381c140a03100d14170a013526043b05310a03100d140b0135160b030f0d1505150b0301060500000000000000111d27061500000000000000110e2751030002030d48260a00290d04210a002b0d1009140c020a0206000000000000000021041e0a0029030c030b0304190b002b03100a0b01381d0c040b04020b020b01260c040517090c03050f0b01060000000000000000210c04051753010002030d02050e0038010b01115102540100010d4a100e0038010c010a01290d040d0b012b0d100f140c020b0202090c02050b550100010d100f0e0038010c010a01290d040c0b012b0d10083815290802061700000000000000110e275601000204144c230e0038010c010a01290404170b012b04100c381e0c020a0232ffffffffffffffffffffffffffffffff210413381f0c030b03020b0238200c0305110a01291404200b012b141014140c030511381f0c0305110501000002040b001001140259010002041402060b001015140b01115a025a030002041402070e000a0138210b000b01120b025b01000002040b00101514025c0100050304080d14020a0a010938140e0138010b000b0211591138025d0100010f527a0b00101638152a0f0c060e013822030905170d0138230c070e0711170620000000000000002504750a060f030c080b070b08150e023822031b05290d0238230c090e0911170620000000000000002504700a060f040c080b090b08150e033824032d053a0d0338250c0a0a0a312025046b0a060f050c0b0b0a0b0b150e043822033e054c0d0438230c0c0e0c11170600020000000000002504660a060f060c080b0c0b08150e05382204630d0538230c0d0e0d111706000200000000000025045e0b060f070c080b0d0b0815020b0601061300000000000000111d270b0601055d0b0601061300000000000000111d270b0601061100000000000000111d270b0601061000000000000000111d270b0601060f00000000000000111d275e01000002040b00101614025f03000002070b000b014d0b025200382602610300005b4e0e010c020a023819044b0b0238270c030701070211630703116311640c040e040b031165044605140a000c050a05110c070022043f0a05111603380b05110c290f04330a00110c2907032e0b00110d0c060e060b0112072d07020b0001061d000000000000001166270b0001061e00000000000000110e270b00010b05010612000000000000001101270b00010b0501061f00000000000000113b270b00010621000000000000001101270b02010514670300005d88010e010c040a0438190485010b0438270c050701070211630704116311640c060e060b05116504800105140e020c070a073819047d0b0738270c050701070211630705116311640c080e080b051165047805280e030c090a09381904750b0938270c050701070211630706116311640c0a0e0a0b0511650470053c0a000c0b0a0b110c07002204690a0b111603620b0b110c290f045d0a00110c290803580b00110d0c0c0e0c0b010b020b0312082d08020b0001061d000000000000001166270b0001061e00000000000000110e270b00010b0b010612000000000000001101270b00010b0b01061f00000000000000113b270b0001061b000000000000001101270b0901053c0b0001061a000000000000001101270b070105280b00010619000000000000001101270b0401051468010003030c0d643a0b0038280c010e0138290c020a022c0d130d010c030c040b030600000000000000002104370a0229030314051e0a022c0313030c050e05380c060000000000000000210434051e0a02290c0322052c0a022c0c130c0c060c07382a0b07382b0b06382c0b020b01382d0e043815120e382e02060e00000000000000113b27060e00000000000000113b276d0100010d020e0b001010140a01380d21040b0b010b02382f020609000000000000001101276e0300010d670f0e0038010c020a022a0d0f0f0c030a010b03150b020b0112093830026f01000002030b00290d022c0100010d100e0e0038010c010a01290d040b0b012b0d10081402061700000000000000110e27700100020414020a0e003801114c03070b00383102061c00000000000000110127710000020414681b0e0038010c010a012904040e0b012b04100c383238200c020b02020a01291404180b012b14100d1438200c02050c381f0c02050c720100020414020d0b00101738150e01380121040a0b013831020622000000000000001101277301000002040b001010140238030002030d6c4b0a000c020b01130b0c030c040a02290d04480a022a0d0c050b040a051008142104430a030600000000000000002204400a0510091406000000000000000021043d0a0229030c060b0604340b05010b022a030f0a0a0338330b030c070a0706000000000000000022032f05330b000b0712053834020a051009140a03160b050f09150528090c06051f0b050105280b0501060b00000000000000110127061700000000000000110e2775030002030d6d3e0b01130b0c020c030a00290d043b0a002a0d0c040b030a041008142104360a020600000000000000002204330a041009140600000000000000002104300a0029030c050b0504270b04010b002a030f0a0b023833020a041009140b02160b040f09150526090c05051d0b040105260b0401060b00000000000000110127061700000000000000110e272f030002030d6f550a000c020a010c030a02290d04520a022a0d0c040a041008140c050a0306000000000000000022044f0a0410091406000000000000000021044c0a0229030c060b0604380b04010b022a030f0a0a03380a043505260b050b03120b0c070a0106000000000000000022032f05330b000b01121538350b07020604000000000000001101270a041009140a032604470a041009140a03170b040f091505260b0401060400000000000000110127090c06051b0b04010526061700000000000000110e27760104010d101d0a010b0011773836041a0a01383703170e0138010c020a022903040f02117904140b02114002062000000000000000110127060300000000000000110127060800000000000000113b277a0100011475290a00117b0c010b00117c0c02111804260a01291404230b012c1413140c030c040e033806041d0b0438380c050b0512040c060e020b062d04020b040d03380838390c050516061500000000000000110e270616000000000000001101271001000303080d020d0a000a0108383a0b000a010a02383b0e0138010b02112f028001010002080d381b0e0038010c010a01290d04180b012b0d100838150c020a02290804150b022b081013140c030b030238160c030513061700000000000000110e277f030000020c0b000b024d0e0138015200383c040902062400000000000000113b278201030000020b0b000b024d0b015200383c040802062400000000000000113b277e030002080d78320b0011770c030b010c040a040b033836042f0e0438010c030a03290d042c0b032b0d0c050b020325080c060b0604200b05100f14031d02060300000000000000113b270b0501061c000000000000001101270a05100814114d200c060516061700000000000000110e27060800000000000000113b2713010002030d020f0b001010140a01380d21040c0e0138010b02112f02060900000000000000110127830101000002050b00380f060000000000000000120b020b010b0002000f000f010f020f030f040d000d01030012000400140008010d020000080207000800140110001100130000bb0100bc0100bd0100be01170000",
    "abi": {
      "address": "0x1",
      "name": "fungible_asset",
      "friends": [
        "0x1::dispatchable_fungible_asset",
        "0x1::primary_fungible_store",
        "0x1::coin",
        "0x1::aptos_account"
      ],
      "exposed_functions": [
        {
          "name": "extract",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::fungible_asset::FungibleAsset",
            "u64"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "merge",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::fungible_asset::FungibleAsset",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "revoke_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": []
        },
        {
          "name": "burn",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::BurnRef",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "generate_transfer_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::fungible_asset::TransferRef"
          ]
        },
        {
          "name": "is_untransferable",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "set_untransferable",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": []
        },
        {
          "name": "transfer",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "transfer_with_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::fungible_asset::TransferRef",
            "0x1::object::Object<T0>",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "add_fungibility",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef",
            "0x1::option::Option<u128>",
            "0x1::string::String",
            "0x1::string::String",
            "u8",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ]
        },
        {
          "name": "name",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "symbol",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "decimals",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "u8"
          ]
        },
        {
          "name": "icon_uri",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "project_uri",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "address_burn_from_for_gas",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::BurnRef",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "amount",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::FungibleAsset"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "asset_metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::FungibleAsset"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ]
        },
        {
          "name": "balance",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "balance_with_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::fungible_asset::RawBalanceRef",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::fungible_asset::Metadata"
          ]
        },
        {
          "name": "burn_from",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::fungible_asset::BurnRef",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "burn_internal",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "burn_ref_metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::BurnRef"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ]
        },
        {
          "name": "create_store",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::object::ConstructorRef",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::FungibleStore>"
          ]
        },
        {
          "name": "deposit",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "deposit_dispatch_function",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::option::Option<0x1::function_info::FunctionInfo>"
          ]
        },
        {
          "name": "deposit_sanity_check",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>",
            "bool"
          ],
          "return": []
        },
        {
          "name": "deposit_with_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::fungible_asset::TransferRef",
            "0x1::object::Object<T0>",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "derived_balance_dispatch_function",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::option::Option<0x1::function_info::FunctionInfo>"
          ]
        },
        {
          "name": "derived_supply_dispatch_function",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::option::Option<0x1::function_info::FunctionInfo>"
          ]
        },
        {
          "name": "destroy_zero",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "generate_burn_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::fungible_asset::BurnRef"
          ]
        },
        {
          "name": "generate_mint_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::fungible_asset::MintRef"
          ]
        },
        {
          "name": "generate_mutate_metadata_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::fungible_asset::MutateMetadataRef"
          ]
        },
        {
          "name": "generate_raw_balance_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::fungible_asset::RawBalanceRef"
          ]
        },
        {
          "name": "generate_raw_supply_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::fungible_asset::RawSupplyRef"
          ]
        },
        {
          "name": "grant_permission_by_address",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "grant_permission_by_store",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "&signer",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "is_address_balance_at_least",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_balance_at_least",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_frozen",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_store_dispatchable",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "maximum",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::option::Option<u128>"
          ]
        },
        {
          "name": "metadata_from_asset",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::FungibleAsset"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ]
        },
        {
          "name": "mint",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::MintRef",
            "u64"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "mint_internal",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "u64"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "mint_ref_metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::MintRef"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ]
        },
        {
          "name": "mint_to",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::fungible_asset::MintRef",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "mutate_metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::MutateMetadataRef",
            "0x1::option::Option<0x1::string::String>",
            "0x1::option::Option<0x1::string::String>",
            "0x1::option::Option<u8>",
            "0x1::option::Option<0x1::string::String>",
            "0x1::option::Option<0x1::string::String>"
          ],
          "return": []
        },
        {
          "name": "object_from_metadata_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::MutateMetadataRef"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ]
        },
        {
          "name": "refill_permission",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64",
            "address"
          ],
          "return": []
        },
        {
          "name": "register_derive_supply_dispatch_function",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef",
            "0x1::option::Option<0x1::function_info::FunctionInfo>"
          ],
          "return": []
        },
        {
          "name": "register_dispatch_functions",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef",
            "0x1::option::Option<0x1::function_info::FunctionInfo>",
            "0x1::option::Option<0x1::function_info::FunctionInfo>",
            "0x1::option::Option<0x1::function_info::FunctionInfo>"
          ],
          "return": []
        },
        {
          "name": "remove_store",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::DeleteRef"
          ],
          "return": []
        },
        {
          "name": "set_frozen_flag",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::fungible_asset::TransferRef",
            "0x1::object::Object<T0>",
            "bool"
          ],
          "return": []
        },
        {
          "name": "set_frozen_flag_internal",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>",
            "bool"
          ],
          "return": []
        },
        {
          "name": "store_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "store_metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ]
        },
        {
          "name": "supply",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::option::Option<u128>"
          ]
        },
        {
          "name": "supply_with_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::fungible_asset::RawSupplyRef",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::option::Option<u128>"
          ]
        },
        {
          "name": "transfer_ref_metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::TransferRef"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ]
        },
        {
          "name": "unchecked_deposit",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "unchecked_deposit_with_no_events",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "unchecked_withdraw",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "upgrade_store_to_concurrent",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>"
          ],
          "return": []
        },
        {
          "name": "upgrade_to_concurrent",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ExtendRef"
          ],
          "return": []
        },
        {
          "name": "withdraw",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "withdraw_dispatch_function",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::option::Option<0x1::function_info::FunctionInfo>"
          ]
        },
        {
          "name": "withdraw_permission_check",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "withdraw_permission_check_by_address",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "withdraw_sanity_check",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "bool"
          ],
          "return": []
        },
        {
          "name": "withdraw_with_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::fungible_asset::TransferRef",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "zero",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        }
      ],
      "structs": [
        {
          "name": "TransferRef",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            }
          ]
        },
        {
          "name": "Untransferable",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "BurnRef",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            }
          ]
        },
        {
          "name": "ConcurrentFungibleBalance",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "balance",
              "type": "0x1::aggregator_v2::Aggregator<u64>"
            }
          ]
        },
        {
          "name": "ConcurrentSupply",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "current",
              "type": "0x1::aggregator_v2::Aggregator<u128>"
            }
          ]
        },
        {
          "name": "Deposit",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "store",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "DepositEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "DeriveSupply",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dispatch_function",
              "type": "0x1::option::Option<0x1::function_info::FunctionInfo>"
            }
          ]
        },
        {
          "name": "DispatchFunctionStore",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "withdraw_function",
              "type": "0x1::option::Option<0x1::function_info::FunctionInfo>"
            },
            {
              "name": "deposit_function",
              "type": "0x1::option::Option<0x1::function_info::FunctionInfo>"
            },
            {
              "name": "derived_balance_function",
              "type": "0x1::option::Option<0x1::function_info::FunctionInfo>"
            }
          ]
        },
        {
          "name": "Frozen",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "store",
              "type": "address"
            },
            {
              "name": "frozen",
              "type": "bool"
            }
          ]
        },
        {
          "name": "FrozenEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "frozen",
              "type": "bool"
            }
          ]
        },
        {
          "name": "FungibleAsset",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "FungibleAssetEvents",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "deposit_events",
              "type": "0x1::event::EventHandle<0x1::fungible_asset::DepositEvent>"
            },
            {
              "name": "withdraw_events",
              "type": "0x1::event::EventHandle<0x1::fungible_asset::WithdrawEvent>"
            },
            {
              "name": "frozen_events",
              "type": "0x1::event::EventHandle<0x1::fungible_asset::FrozenEvent>"
            }
          ]
        },
        {
          "name": "FungibleStore",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            },
            {
              "name": "balance",
              "type": "u64"
            },
            {
              "name": "frozen",
              "type": "bool"
            }
          ]
        },
        {
          "name": "FungibleStoreDeletion",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "store",
              "type": "address"
            },
            {
              "name": "owner",
              "type": "address"
            },
            {
              "name": "metadata",
              "type": "address"
            }
          ]
        },
        {
          "name": "Metadata",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "name",
              "type": "0x1::string::String"
            },
            {
              "name": "symbol",
              "type": "0x1::string::String"
            },
            {
              "name": "decimals",
              "type": "u8"
            },
            {
              "name": "icon_uri",
              "type": "0x1::string::String"
            },
            {
              "name": "project_uri",
              "type": "0x1::string::String"
            }
          ]
        },
        {
          "name": "MintRef",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            }
          ]
        },
        {
          "name": "MutateMetadataRef",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            }
          ]
        },
        {
          "name": "RawBalanceRef",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            }
          ]
        },
        {
          "name": "RawSupplyRef",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            }
          ]
        },
        {
          "name": "Supply",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "current",
              "type": "u128"
            },
            {
              "name": "maximum",
              "type": "0x1::option::Option<u128>"
            }
          ]
        },
        {
          "name": "Withdraw",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "store",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "WithdrawEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "WithdrawPermission",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": []
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c01000e020e0c031ac60105e0017e07de02ab0808890b2006a90b2210cb0bc9090a9415210cb515ef0a0da420180fbc20040000000b00120017001a001e002300010b0000090b00010a0700001000010001001102000001021303000001001404000001011505060001001607000001031808080001001900060001041b00090001001c000a0001031d08080001051f000800010120060b000101210b06000101220c06000106240d06000101250c06000100260f09000100270f08000100280f04000100290f040001012a06090001012b100b0001012c100b0001002d0f080001002e12000001002f0004000100301300000100311500000100321700000100331500000100341300000101350c0900010001080008060c0303030103030301060c02030302040401080206060c080208020303080201030101010801010402080208020308020802080202070801030106080002040802040802030304040802080203080202060c0301070303060c030302070800070305060c08020802030802030708010708020703020107030e7374616b696e675f636f6e6669670d5374616b696e67436f6e6669670d6d696e696d756d5f7374616b650d6d6178696d756d5f7374616b651e726563757272696e675f6c6f636b75705f6475726174696f6e5f736563731a616c6c6f775f76616c696461746f725f7365745f6368616e67650c726577617264735f7261746518726577617264735f726174655f64656e6f6d696e61746f721b766f74696e675f706f7765725f696e6372656173655f6c696d6974145374616b696e6752657761726473436f6e6669670c4669786564506f696e7436340d66697865645f706f696e743634106d696e5f726577617264735f726174651b726577617264735f726174655f706572696f645f696e5f73656373266c6173745f726577617264735f726174655f706572696f645f73746172745f696e5f736563731a726577617264735f726174655f64656372656173655f72617465036765740a696e697469616c697a651073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b1776616c69646174655f72657175697265645f7374616b65146372656174655f66726f6d5f726174696f6e616c12696e697469616c697a655f72657761726473056572726f7210696e76616c69645f617267756d656e742c63616c63756c6174655f616e645f736176655f6c61746573745f65706f63685f726577617264735f7261746508666561747572657327706572696f646963616c5f7265776172645f726174655f64656372656173655f656e61626c65642863616c63756c6174655f616e645f736176655f6c61746573745f726577617264735f636f6e6669670d696e76616c69645f73746174650974696d657374616d700b6e6f775f7365636f6e6473046365696c106372656174655f66726f6d5f75313238037375620c6d6174685f66697865643634076d756c5f646976036d61781e6765745f616c6c6f775f76616c696461746f725f7365745f6368616e67651d6765745f726563757272696e675f6c6f636b75705f6475726174696f6e126765745f72657175697265645f7374616b650f6765745f7265776172645f726174650769735f7a65726f0b6469766964655f753132380d6d756c7469706c795f753132381f6765745f766f74696e675f706f7765725f696e6372656173655f6c696d69741776616c69646174655f726577617264735f636f6e6669670b7265776172645f72617465257570646174655f726563757272696e675f6c6f636b75705f6475726174696f6e5f73656373157570646174655f72657175697265645f7374616b65157570646174655f726577617264735f636f6e666967137570646174655f726577617264735f72617465227570646174655f766f74696e675f706f7765725f696e6372656173655f6c696d69740d6c6573735f6f725f657175616c057374616b650767656e6573697300000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f763195090b010000000000000015455a45524f5f4c4f434b55505f4455524154494f4e255374616b65206c6f636b7570206475726174696f6e2063616e6e6f74206265207a65726f2e02000000000000001e455a45524f5f524557415244535f524154455f44454e4f4d494e41544f522752657761726420726174652064656e6f6d696e61746f722063616e6e6f74206265207a65726f2e03000000000000001445494e56414c49445f5354414b455f52414e47453f537065636966696564207374616b652072616e676520697320696e76616c69642e204d6178206d7573742062652067726561746572207468616e206d696e2e04000000000000002445494e56414c49445f564f54494e475f504f5745525f494e4352454153455f4c494d49544254686520766f74696e6720706f77657220696e637265617365206c696d69742070657263656e74616765206d7573742062652077697468696e2028302c2035305d2e05000000000000001545494e56414c49445f524557415244535f524154454e5370656369666965642072657761726473207261746520697320696e76616c69642c207768696368206d7573742062652077697468696e205b302c204d41585f524557415244535f524154455d2e06000000000000001945494e56414c49445f4d494e5f524557415244535f524154454e537065636966696564206d696e2072657761726473207261746520697320696e76616c69642c207768696368206d7573742062652077697468696e205b302c20726577617264735f726174655d2e07000000000000002745494e56414c49445f4c4153545f524557415244535f524154455f504552494f445f53544152546f5370656369666965642073746172742074696d65206f66206c6173742072657761726473207261746520706572696f6420697320696e76616c69642c207768696368206d757374206265206e6f74206c617465207468616e207468652063757272656e742074696d657374616d702e08000000000000002345494e56414c49445f524557415244535f524154455f44454352454153455f524154456053706563696669656420726577617264732072617465206465637265617365207261746520697320696e76616c69642c207768696368206d757374206265206e6f742067726561746572207468616e204250535f44454e4f4d494e41544f522e09000000000000001c45494e56414c49445f524557415244535f524154455f504552494f44675370656369666965642072657761726473207261746520706572696f6420697320696e76616c69642e204974206d757374206265206c6172676572207468616e203020616e642063616e6e6f74206265206368616e67656420696620636f6e666967757265642e0a000000000000001445444550524543415445445f46554e4354494f4e215468652066756e6374696f6e20686173206265656e20646570726563617465642e0b00000000000000124544495341424c45445f46554e4354494f4e305468652066756e6374696f6e2069732064697361626c6564206f72206861736e2774206265656e20656e61626c65642e00010b7265776172645f7261746501010000020702030303040305010603070308030102050608020c08020d030e030f08020001000100000407002b0014020103000009550a0011020a010a0211030a030600000000000000002404500a0606000000000000000024044b0a070600000000000000002404480a07063200000000000000250c080b0804430a050640420f000000000025043e0a050a062504390a000b010b020b030b040a050a060b0712002d000b000b05350b06351104320000000000000000000000000000000032e80300000000000000000000000000001104068033e10100000000060000000000000000320000000000000000000000000000000032e803000000000000000000000000000011041105020b00010605000000000000001106270b00010605000000000000001106270b0001060400000000000000110627090c0805150b00010602000000000000001106270b000106010000000000000011062707030001010a0b1108040811090c000e0010001402060b00000000000000110a2709000001010e4907002a010c00110b0c010a010a001001142604440b010a00100114170a001002142304180b0014020a00100314110c320100000000000000000000000000000025043f0a001000143201000000000000000000000000000000110d0a00100314110e3201000000000000000000000000000000110d110f0a0010041411100a000f00150a001001140a00100214160a000f01150b0014020b00010608000000000000001106270b00010607000000000000001106271101000000040b00100514021201000000040b00100614021301000000070a001007140b001008140214010001011130110804270b000107002b011000140c010a01111504130600000000000000000c020601000000000000000c030b020b03023240420f000000000000000000000000000a0111160c040a0432ffffffffffffffff000000000000000024031c051e32ffffffffffffffff00000000000000000c040a040b011117340c020b04340c0305100a001009140c020b00100a140c0305101801000000040b00100b14020501000000190a0011020a010a020a030a051119110b0a042604140b000b010b020b030b040b0512012d01020b00010607000000000000001106271a0100020001000407002b001114021b0100010014130a0106000000000000000024040e0b00110207002a000f060c020b010b0215020b00010601000000000000001106271c0100010016150b0011020a010a02110307002a000c030a030f070c040b010b04150b030f080c040b020b0415021d01000101182e0b0011020a010a020a030a04111907002a010c050a030a051002142104290a050f000c060b010b06150a050f040c060b020b06150a050f020c070b030b07150b050f030c060b040b0615020b05010609000000000000001106271e01000100162e110803290b0011020a020600000000000000002404260a010640420f00000000002504230a010a0225042007002a000c030a030f090c040b010b04150b030f0a0c040b020b0415020605000000000000001106270605000000000000001106270602000000000000001106270b0001060a00000000000000110a271f01000100191a0b0011020a010600000000000000002404170a01063200000000000000250c020b02041407002a000f0b0c030b010b031502060400000000000000110627090c02050a0300000009110b000a0125040e0b01060000000000000000240c020b02040b02060300000000000000110627090c02050819000000001f0a003201000000000000000000000000000000110d1120041c0b010b00112004190b03110c32010000000000000000000000000000002504160b02060000000000000000240413020609000000000000001106270608000000000000001106270606000000000000001106270605000000000000001106270100010301020104010100030002000000010004000500060036003700",
    "abi": {
      "address": "0x1",
      "name": "staking_config",
      "friends": [
        "0x1::stake",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "get",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::staking_config::StakingConfig"
          ]
        },
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64",
            "u64",
            "u64",
            "bool",
            "u64",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "calculate_and_save_latest_epoch_rewards_rate",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "get_allow_validator_set_change",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::staking_config::StakingConfig"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "get_recurring_lockup_duration",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::staking_config::StakingConfig"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_required_stake",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::staking_config::StakingConfig"
          ],
          "return": [
            "u64",
            "u64"
          ]
        },
        {
          "name": "get_reward_rate",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::staking_config::StakingConfig"
          ],
          "return": [
            "u64",
            "u64"
          ]
        },
        {
          "name": "get_voting_power_increase_limit",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::staking_config::StakingConfig"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "initialize_rewards",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64",
            "u64",
            "u64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": []
        },
        {
          "name": "reward_rate",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64",
            "u64"
          ]
        },
        {
          "name": "update_recurring_lockup_duration_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "update_required_stake",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "update_rewards_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64",
            "u64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": []
        },
        {
          "name": "update_rewards_rate",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "update_voting_power_increase_limit",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "StakingConfig",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "minimum_stake",
              "type": "u64"
            },
            {
              "name": "maximum_stake",
              "type": "u64"
            },
            {
              "name": "recurring_lockup_duration_secs",
              "type": "u64"
            },
            {
              "name": "allow_validator_set_change",
              "type": "bool"
            },
            {
              "name": "rewards_rate",
              "type": "u64"
            },
            {
              "name": "rewards_rate_denominator",
              "type": "u64"
            },
            {
              "name": "voting_power_increase_limit",
              "type": "u64"
            }
          ]
        },
        {
          "name": "StakingRewardsConfig",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "rewards_rate",
              "type": "0x1::fixed_point64::FixedPoint64"
            },
            {
              "name": "min_rewards_rate",
              "type": "0x1::fixed_point64::FixedPoint64"
            },
            {
              "name": "rewards_rate_period_in_secs",
              "type": "u64"
            },
            {
              "name": "last_rewards_rate_period_start_in_secs",
              "type": "u64"
            },
            {
              "name": "rewards_rate_decrease_rate",
              "type": "0x1::fixed_point64::FixedPoint64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0e0100120212400352ba06048c07b80105c408cd0c079115f60b0887212010a721b4090adb2a540caf2bf23211a15e4012e15e2013815f0c148d5f1000000006000e0023002600290039005a0072000103010000010103000008040204000400000b040204000400020d0401040000140401040002160400011c07020000000004250701000002590000075c0300001f0001020704010020000302070401002104010204040100220708020404010324070901000104270b0101000100280d0802040401052a0a0a0001002b000f02070401002c000302070401002d100f02060401002e111202070401002f13120206040100300807020404010031140702040401023015070104010032170302050401003317010204040101331a0102000001022b1b1c01040100341e0202070401003510030207040100361f1c0100010037110c020704010137210c02020001003800220207040106332301010001003a242502070401003b260702070401003c272802070401043d2907010001003e262a02070401043f2905010001044005290100010441072901000100422c070204040102422d0701040100432e070207040106442f0701000100451731020705010046170302050401004710030207040100481733020704010049173302070401012d340f02000001012f361202000001022e2d37010401004a040102040401014b390100010147343a0200000101213b010200000101363b1c02000001004c3c0301000101461a3a02000001054d0a0a000101321a3a020000010135343a02000001014a3b0102000001004e000a0207040101203f3a02000001004f420802070401005000290207040100511e02020704010052002902070401005345280207040101541a0a02000001013e462a0202000104550b01010001012c3f3a020000010156470c02030001005701140204040102584849010401075b4a4b010001075d4c010001005e4d4e010401013b460702000001005f4f14020404010260500a0001016151520200000100625314020404010263540a00010264550701040102652d5601040100665807020404010067054e0104010168360c020200010069170a020404010130520702000001006a4e4d010401006b002a02070501006c5f0a020404010122075202000001026d0a010001026e0a01000102220115010401006f1e0702040401007007080204040100716108020404010873620a00010874620a000102376305010401007564070207040101766507020000010177660702000001027867070104010079175202070501017a6b0702020001037b1c0a010001007c6d0702040401010202020405050a040c060209020a020c020e020f14100212191314150216051702181919021a0a1b021d021e2505252025210c220c24142605260c1c02280229022c192d192e141102311932193319340535193719381939193a023b1903022502220521052f024119421943254419451921254602471448054a0c4b194c024e194f0251144002222552145302540c551957195b195e145f02641465025a0266196719580c68145b02370266026a196b056b0c6c02200a02060b02020900090106090001010209000901010b0001090002060b00010900060b020209000901010900020b000109000100010b020209000901010b080103010301060b08010900010901030d0d01030b0801030b0801030101060901020b00010900060b02020900090102070b02020900090106090001070901020b00010900070b020209000901010b030209000901010b04010900010b04010b03020900090101060b020209000901020b000109000b000109000209000b0501090101060b07020900090102060b04010900030106090003060b02020900090103060b03020900090101070b02020900090101060b00010900040b0001090009000901090002070b070209000901060900010a0301060a090003070b0202090009010a03060900010b0501090103070b0202090009010900090104070b0202090009010900090101010b08010b05010901010b08010900010b08010901020b08010b050109010b0801090102070b0202090009010302070b040109000303070b0202090009010a09000a090101070a0900070a09000a09010a09000a09010309000901010a0900040a09000b00010900060900060901020900060901020801060b07020900090105080103060b020209000901060b030209000901060b070209000b05010901020801070b070209000901010709000701080103070b020209000901070b030209000901070b070209000b050109010b0801030106080101080102060801060b0702090009010303080109000b03060b02020900090103060b0302090009010801090003060b02020900090103060b03020900090108010903060b02020900090103060b030209000901060b070209000b050109010801090003080102060b0702090009010609000703060b02020900090103060b03020900090108010b00010900090005060b02020900090103060b03020900090108010900020a09000a0901040b000109000b080109000609000b00010900030b000109000b080109000b0001090005070b0202090009010a0309000b050109010103070b07020900090109000901030801070b070209000901090101070b0401090002080608090206090006090001080a0106080a010806010b0501090002070b0202090009010b0302090009010106080902070b07020900090103010b07020900090102010b070209000b050109010106080603070b040109000809090002080909002503070b02020900090103070b030209000901070b070209000b050109010303070b070209000b0501090109000b08010b050109010108010b03020900090108090806060b070209000b0501090108010900080a0b050109010b03020900090103070308090b03020900090108090b030209000901070303030b070209000b050109010b03020900090108090806070308010b03020900090103070b0202090009010609000609010a070b030209000901070b070209000b050109010b08010b05010901010a0303070b020209000901030b050109010900060303060b02020900090103060b03020900090103010b070209000b050109010603060b02020900090103060b030209000901060b070209000b050109010801070a0303060b02020900090103060b030209000901060b070209000b050109010801020b000109000b0801090102060b020209000901010401010b04010b0302090009010b020209000901040303030302030302070b04010900080604070b0202090009010a030609000900040801070b0702090009010900090102070b0702090009010b07020900090103070b04010900080908063103070b02020900090103070b030209000901070b070209000b0501090101070b070209000b050109010b05010901060b070209000b050109010108060b030209000901030308010900080a0b050109010b0302090009010809030303060b02020900090103060b030209000901030b0302090009010809070b070209000b0501090108010900080109000b050109010801090008010801070b070209000b05010901030b070209000b05010901070301090008090801030102070b0302090009010b070209000b05010901040b0702090009010b0001090006090006090103070b07020900090106090009000503070b020209000901070b030209000901070b070209000b05010901080103070b0202090009010303040b0801030b08010303030f6269675f6f7264657265645f6d61700b4974657261746f7250747203456e6404536f6d650a6e6f64655f696e6465780a6368696c645f697465720b6f7264657265645f6d6170036b65790d4269674f7264657265644d61700c42506c7573547265654d617004726f6f74044e6f6465056e6f6465731553746f72616765536c6f7473416c6c6f6361746f721773746f726167655f736c6f74735f616c6c6f6361746f720e6d696e5f6c6561665f696e6465780e6d61785f6c6561665f696e64657810636f6e7374616e745f6b765f73697a6510696e6e65725f6d61785f6465677265650f6c6561665f6d61785f646567726565054368696c6405496e6e65720a53746f726564536c6f74044c6561660576616c75650256310769735f6c656166086368696c6472656e0a4f7264657265644d61700470726576046e65787408636f6e7461696e730b6c6f7765725f626f756e640b697465725f69735f656e64036e65770362637318636f6e7374616e745f73657269616c697a65645f73697a65064f7074696f6e066f7074696f6e0769735f736f6d650f6e65775f776974685f636f6e666967056572726f7210696e76616c69645f617267756d656e7406626f72726f770466696e640b697465725f626f72726f770a626f72726f775f6d75740f697465725f626f72726f775f6d75740d64657374726f795f656d7074791264657374726f795f656d7074795f6e6f64650c6e65775f656e645f697465720869735f656d70747908706f705f6261636b09697465725f707265760f697465725f626f72726f775f6b65790672656d6f76650e66696e645f6c6561665f7061746806766563746f720972656d6f76655f617403616464126164645f6f725f7570736572745f696d706c0c64657374726f795f6e6f6e65067570736572740c64657374726f795f736f6d6504736f6d65046e6f6e6514616c6c6f636174655f73706172655f736c6f7473076164645f616c6c0772657665727365046b6579730e6e65775f626567696e5f6974657209697465725f6e6578740b626f72726f775f6261636b0c626f72726f775f66726f6e740d697465725f69735f626567696e1c697465725f69735f626567696e5f66726f6d5f6e6f6e5f656d707479086e65775f697465720d696e76616c69645f73746174650966696e645f6c656166086e65775f66726f6d086e6578745f6b657909706f705f66726f6e7408707265765f6b6579066164645f6174066c656e6774680769735f6e6f6e650c697465725f7265706c616365086e65775f6e6f64650c726573657276655f736c6f740c5265736572766564536c6f7403636d7007636f6d70617265084f72646572696e670569735f6c740f6e65775f696e6e65725f6368696c640c7265706c6163655f726f6f741172657365727665645f746f5f696e646578047472696d166e65775f6e6f64655f776974685f6368696c6472656e0f73746f7265645f746f5f696e6465781266696c6c5f72657365727665645f736c6f741272656d6f76655f616e645f726573657276652a76616c69646174655f64796e616d69635f73697a655f616e645f696e69745f6d61785f646567726565730e6e65775f6c6561665f6368696c640b697465725f72656d6f76650e636f6d707574655f6c656e6774681364657374726f795f696e6e65725f6368696c64036765740e6765745f6d61785f6465677265650d69735f6e756c6c5f696e6465781769735f7370656369616c5f756e757365645f696e6465782976616c69646174655f7374617469635f73697a655f616e645f696e69745f6d61785f64656772656573116e65775f776974685f7265757361626c65186e65775f776974685f747970655f73697a655f68696e7473066d6174683634036d696e036d61780a7570646174655f6b657908697465725f6164640f617070656e645f6469736a6f696e7412667265655f72657365727665645f736c6f740e746f5f6f7264657265645f6d6170137265706c6163655f6b65795f696e706c6163650f73657269616c697a65645f73697a652276616c69646174655f73697a655f616e645f696e69745f6d61785f64656772656573000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f763180090a010000000000000013454b45595f414c52454144595f455849535453164d6170206b657920616c72656164792065786973747302000000000000000e454b45595f4e4f545f464f554e44144d6170206b6579206973206e6f7420666f756e6403000000000000001345495445525f4f55545f4f465f424f554e445347547279696e6720746f20646f20616e206f7065726174696f6e206f6e20616e204974657261746f72507472207468617420776f756c6420676f206f7574206f6620626f756e64730b000000000000001945494e56414c49445f434f4e4649475f504152414d45544552305468652070726f766964656420636f6e66696775726174696f6e20706172616d6574657220697320696e76616c69642e0c000000000000000e454d41505f4e4f545f454d5054590f4d61702069736e277420656d7074790d000000000000001945415247554d454e545f42595445535f544f4f5f4c415247453b547279696e6720746f20696e7365727420746f6f206c61726765206f6620616e20286b65792c2076616c75652920696e746f20746865206d61702e0e000000000000002845424f52524f575f4d55545f52455155495245535f434f4e5354414e545f56414c55455f53495a45b501626f72726f775f6d75742072657175697265732074686174206b657920616e642076616c7565207479706573206861766520636f6e7374616e742073697a650a20286f746865727769736520697420776f756c646e27742062652061626c6520746f2067756172616e7465652073697a6520726571756972656d656e747320617265206e6f742076696f6c61746564290a205573652072656d6f76652829202b20616464282920636f6d626f20696e73746561642e0f0000000000000014454b45595f42595445535f544f4f5f4c4152474531547279696e6720746f20696e7365727420746f6f206c61726765206f662061206b657920696e746f20746865206d61702e1000000000000000294543414e4e4f545f5553455f4e45575f574954485f5641524941424c455f53495a45445f5459504553c30243616e6e6f7420757365206e65772f6e65775f776974685f7265757361626c652077697468207661726961626c652d73697a65642074797065732e0a2055736520606e65775f776974685f747970655f73697a655f68696e7473282960206f7220606e65775f776974685f636f6e66696728296020696e737465616420696620796f75722074797065732068617665207661726961626c652073697a65732e0a20606e65775f776974685f636f6e66696728302c20302c2066616c7365296020747269657320746f20776f726b20726561736f6e61626c792077656c6c20666f722076617269657479206f662073697a65730a2028616c6c6f7773206b657973206f722076616c756573206f66206174206c6561737420354b4220616e642031303078206c6172676572207468616e2074686520666972737420696e7365727465642914000000000000001a45494e5445524e414c5f494e56415249414e545f42524f4b454e10496e7465726e616c206572726f72732e000000030202000303040305080107090002030109070a0b0302090009010c0b04010b0302090009010f0310031101120d130d0503021501040806170118090003030119041a011b0b070209000b050109011d031e030001000006190a000a0138000c020e020b003801040e0b0101090c030b03020e0250000b01210416080c03050c090c03050c030100000e1738020c000e003803041438040c010e0138030c020b02041148000048000009380502061000000000000000110727090c02050a0801000003110a000b0138060c020e020a003801030c0b020b003807020b00010602000000000000001107270b01000003130a002e0b0138060c020e020a002e3801030e0b020b003808020b00010602000000000000001107270d010000160c0b00550001010101010c0138090b01380a0209030000181e0a000a0138000c020e020a00380104100b00010b01010b020c030b03020e0250000b0121041a0b00010b020c03050e0b00380b0c03050e110100001d170a000c010b005001140c020a020601000000000000002104110b0150020c030b035003380c020b0150040b02380d0c03050d1401000020120a002e380b0a002e380e0c010e01380f140c020b000e0238100c030b020b03021701000022210a005002500514040c0b00510251030b0138115501020a002e0a0138120c020e023813031a0b000b020b0138145501020b00010b01010602000000000000001107271c01000007070b000b010b020938153816021f0100002b150b000b010b020838150c030e03381704100b033818550138190c040b04020b033816381a0c04050e2301000007050b0051040b01381b022501000030330b010c030b020c040d03381c0d04381d0b030c050b040c060e0541050c070a070e06410c21042f05150a070600000000000000002404280d0545050c080d06450c0c090a000b080b09381e0b07060100000000000000170c0705150b00010b05460500000000000000000b06460c0000000000000000020b00010602000200000000002727010000321d400500000000000000000c010a00381f0c020e020a00380103190e02380f0c030a020a003807010d010b031444050b020a0038200c0205050b00010b01022a010000030c0a00380b0a00380e0c010e01380f140b010b003807022b010000030a0a00381f0c010e01380f140b010b003807020a03000035250e000a01380103200b005502010c020c030b010c040a0306010000000000000021041a0b0450020c050b0550030c060b020b0638215006020b0450040b03380d0c0505120b010106030000000000000011072716030000070b0a00570303060b005000020b00010603000000000000001107270c03000038390a015007140433080c020b02042e0e000a012e380103290b005502010c030c040b010c050a040601000000000000002104230b0551020c060b0651030c070b030b0738225106020b0551040b0438230c06051b0b01010603000000000000001107270b0101060e0000000000000011072738040c080e0838030c0205062f030000011c0a005703040a0b00010b0138240c020b02020a005008140b015001142104170b00500911300c0205080b0001090c0205080203000007050b0057030b010102290300003d6b0e00570303660e005008140c020a010c030a020c040a040601000000000000002104600b0350020c050e005009140a05500338250c060e060a0550033826032b0b01010e060b0550033827140c070b020b060b073828020b05500a140c080a0806000000000000000022045d0b010c090a080c0a0a0a0601000000000000002104570b0950020c0b0a0b500338290c0c0e0c0a0b5003382603520e0c0b0b50033827140c070b080b0c0b073828020b0b010614000000000000001136270b0950040b0a380d0c0b053e0b01380b020b0350040b04380d0c0505120b0101060300000000000000110727150300003e670e00570304330a01500b140c020a0206000000000000000022042e0b010c030a020c040a040601000000000000002104280b0350020c050b0550030c060a06382a0a06382b0c070e070b063827140c080b020b070b083828020b0350040b04380d0c0505160b01010603000000000000001107270e005008140c040a010c030a040c090a090601000000000000002104610b0350020c050e0050090a055003382c035c0b01010e005009140a055003382b0c0a0e0a0b0550033827140c080b040b0a0b083828020b05500c140c0205070b0350040b09380d0c05054201030000404a0a000a01382d0c020a0206000000000000000021040d0b01010b00380b020a000c030a020c040a040601000000000000002104440b0350020c050a05500514043b0a0550030b01382e0c060e060a0550033826042d0b05010b00380b0c070b07020b00010e060b0550033827140c080b020b060b0838280c07052b0b00010b01010b05010614000000000000001136270b0350040b04380d0c0505182803000041360a00382404070b00015303020a000c010a005001140c020a020601000000000000002104300b0150020c030a035003380c03290a03500338290c040e040b0350033827140c050b005001140b040b053828020b00010b03010614000000000000001136270b0150040b02380d0c03051410030000070453030b0001023c0100000808382f0c020d020b000b0138300b02023400000007050b000b010b025302023d01000043310a000a0138000c020e020a00380104100b00010b010138310c030b03020e02380f0c040b010a0421042a0b04010b020a0038200c050e050b003801042438310c03050e0e05380f1438320c03050e0b00010b041438320c03050e3e010000200f0a002e381f0c010e01380f140c020b000e0238100c030b020b03023f01000044180a000b0138000c020e020a003833040e0b000138310c030b03020b020b00380e0c040e04380f1438320c03050c4000000057ac030d01450a0c050a000c060a050c070a070601000000000000002104a6030b0651020c080a0851030c090a092e38340c0a0a0850051404a0030a00500d14340c0b0b0a0b0b23044f0b00010b090c0c0b020c0d0b0c0b0d0b0338350c0e0b0850051404400b04043c080c0f0b0f04390b0e020601000000000000001107270e0e38360c0f05350b04034c0e0e38360c0f0b0f04490b0e02061400000000000000113627090c0f05450a092e0e0238370c100e100a092e382603710b00010b08500514046c0b0404670b100b090b0338383839020b09010601000000000000001107270b09010614000000000000001136270b08010b09010a05060100000000000000210497030e01381304920309383a0c110a005104383b0c120c130a00500250030c140a14382a0a14382b0c150e150b143827140c160e160e02383c0c170e171149039a01059c010a020c160b160c0d0d1151030c0c0b0d0b13383d0c180c0d0b0c0b0d0b18383e0a000b11383f0c190d01060100000000000000440a0e12114d0c1a0e1950051403b90105c5010a0051010c1b0a1a0b1b150a00510b0c1b0b1a0b1b150b120c1c0b190c1d0e013813038d030b1c0c1e0b1d0c1f0e1f5005140c0f0d1f51030c0c0e1e114d0c1a0d1f510a0c1b0d1f510c0c200a0f0487030a00500d14340c210a21060100000000000000160602000000000000001a0c220a0c0b020b03383e0a0c0b2238400c230a0c2e38340a212504fc020e2338340b212504f1020a0f0b2338410c240a005104383b0c250c260e2611500c220a1b140d24510a150a1a0b1b150d24510c0c270a220b27150a20140600000000000000002204d8020a0051040b20143823510a0c270b220b27150b1a0a005001142204d10205b0020a0c2e382a0a0c2e382b0c280e280b0c2e3827140c0d0a0051040b250b1f38420a0051040b1e0b2438420b000b010b0d0b26383d09384338163844020b00010b0c010614000000000000001136270b20010b1a0a005001142103e10205b0020b0f04ea020a0051010c270b220b271505b0020b00010b0c010614000000000000001136270b00010b0c010b1b010b20010614000000000000001136270b00010b0c010b1b010b20010614000000000000001136270a00500e14340c2105e7010b00010614000000000000001136270b00010614000000000000001136270a0051040b0538450c290c1c0b290c1d05c9010a00500e14340c0b051e0b0651040b0738230c08050e1d000000597a0a00500714040505090a000e010e0238460a005002500514030f05350a00510251030c050a052e38340a00500d14342304330b00010b050b010b02384738350c060b03042f080c070b07042c0b06020601000000000000001107270e0638360c0705280b05010a002e0e0138120c080e083813033e05540601000000000000000c090d080a09440a0a000c0a0b090c0b0a0b0601000000000000002104740b0a51020c040a04500514045c0b04010b000b080b010b0238470b033843020a045003382a0a045003382b0a04510338480c0c0e0c500f11500c090b0451030c050a010c0d0b050b0d0b0c383e05400b0a51040b0b38230c04054e560100005a2c0600000000000000000c010a005001140c020a020600000000000000002204280a000c030b020c040a040601000000000000002104220b0350020c050a05500338340c060b010b06160c010b05500a140c0205060b0350040b04380d0c0505150b00010b01020e0000005b0f0b00550401010c01010e01380c040c0b01384902060c000000000000001107275800000007030b005505023a0000005c390601000000000000000c020a000c030a020c040a040601000000000000002104330b0350020c050a0550051404190b00010b01010b05010b02020b0550030c060a060a01382e0c070e070a063826042c0b00010b01010b0601060000000000000000020b070b063821500f11500c0205020b0350040b04380d0c05050d190000005d3e400a00000000000000000c020601000000000000000c030d020a03440a0a000c040b030c050a050601000000000000002104380b0450020c060a06500514041e0b00010b01010b06010b02020b0650030c070a070a01382e0c080e080a07382604310b00010b01010b0701400a0000000000000000020b080b073821500f11500c0305040b0450040b05380d0c060512590100005e150a000b0138060c020e020a003801040e0b0001381a0c030b03020b020b0038071438190c03050c5a0000000a0f0b0104090b00500d14340c020b02020b00500e14340c0205074a00000007030b005305025400000007030b005306024600000007060b00384a0600000000000000000600000000000000005304024f00000007060b000b0106000000000000000006000000000000000053040206010000604d0a00480000210440080c030b03043d0a01480000210430080c040b04042d060000000000000000115c042a060100000000000000115d04270b02384b0c0508383a0b05060100000000000000060100000000000000090b000b0153000c060d06384c0b0602061400000000000000113627061400000000000000113627060b000000000000001107270a0148030026043a0a0134060010000000000000250c04050e090c04050e060b000000000000001107270a0048040026044a0a0034060010000000000000250c030506090c030506600100000e1738020c000e003803041438040c010e0138030c020b02041148000048000008380502061000000000000000110727090c02050a6101000061470a000a012504440a020a032504410600100000000000000600100000000000000a001a116206040000000000000011630c040600000200000000000a011a0c050a0506040000000000000026043e0b000b02160c060b010b03160c070600100000000000000600100000000000000b061a116206030000000000000011630c060600000200000000000b071a0c070a0706040000000000000026043b0b040b0511624b0b060b0711624b09380502060b00000000000000110727060b00000000000000110727060b00000000000000110727060b000000000000001107271b00000068e1040d01450a0c030a000c040a030c050a050601000000000000002104db040b0451020c060a0651030c070b065005140c080a070a0238110c0a0a0306010000000000000021045d0b02010e01381304560b0803530a072e3834060100000000000000210c0c0b0c044e0a072e382a0a072e382b0b07384855070c0d0a0051040b0d384d0c0e0e0e500514034005480601000000000000000a005101150601000000000000000a00510b150b000b0e383f38090b0a020b00010b0701054c090c0c052a0b00010b07010614000000000000001136270b0804d5040a00500d14340c0f0a072e38340c100a10060200000000000000180b0f260c080a072e382a0a072e382b0c110e110b072e3827140c120e120a02383c0c130e13114904d2040b100601000000000000002604cb040a000a010b020b12384e0b080491010b00010b0a020b0a0c140a0051040a0338450c150c160e155005140c0c0a002e0a0c384f0c170e15500c140c180e15500a140c190a002e0c1a0e010e01410a06010000000000000017420a140c1b0a1b0601000000000000002104c5040b1a50020c1c0b1c50030c0b0a0b38340602000000000000002604be040a0b382a0a0b382b0b0b3821500f11500a032104bb040b180c1d0d1551030c090a0051040a1d38450c1e0c1f0a0c0e1e5005142104b4040d1e51030c200a202e383406010000000000000017060200000000000000180b172604ca020b1d0b192104a4020a092e382a0a092e382b0c210e210a092e3827140c220a202e38290c230e230a202e3827140c240b230b2038480c250a092e382a0b090a240b2538500a000b010e220b24384e0a0051040b160b1538420b0051040b1f0b1e38420b14020a202e382a0a202e382b0c260e260a202e3827140c270b260a2038480c250b090a270b25383e0a000b010e270a202e382a0a202e382b0c280e280b202e382714384e0598020a1d0b192104cc030b20010b1e55040a092e382a0a092e382b0c290e290a092e3827140c240b090c2a0c2b010c2c0b2a0b2c38510d15510a0c2d0b2b0b2d150e15500a14060000000000000000220c2e010b2e03f7020583030a0051040e15500a143823500c140a1d2104c7030583030e15500c1406000000000000000022038a030595030a0051040e15500c143823510a0c2d0a1d0b2d150a005001140b0321039c0305a4030b0c04c2030a0051010c2d0b1d0b2d150a0051040b1f0b1538420b240c2f0b160c300e01381303bd030a000b010e2f381438520c0d0b0051040b300b0d38530b14020b00010614000000000000001136270b00010614000000000000001136270b00010614000000000000001136270b09010b1555040a202e382a0a202e382b0c310e310a202e3827140c240c32010c2c0b200b2c38510d1e510a0c2d0b320b2d150e1e500a14060000000000000000220c33010b3303f30305ff030a0051040e1e500a143823500c140a032104af0405ff030e1e500c14060000000000000000220386040591040a0051040e1e500c143823510a0c2d0a030b2d150a005001140b1d2103980405a0040b0c04aa040a0051010c2d0b030b2d150a0051040b160b1e38420b240c2f0b1f0c3005ad030b00010614000000000000001136270b00010614000000000000001136270b00010b09010614000000000000001136270a190c1d05d1010b00010b0b010614000000000000001136270b1a50040b1b380d0c1c05bc010b00010b02010614000000000000001136270b0201058b010a00500e14340c0f05640b0451040b0538230c06050e4c000000694d0b0051020c020a025005140e015005140a025105150d015105150a02500c140600000000000000002104480a02500a140600000000000000002104430e01500c1406000000000000000021043e0e01500a140600000000000000002104390a02510306000000000000000038400c030b0251030d015103060000000000000000384038510d0151030b0338510b01020b02010614000000000000001136270b02010614000000000000001136270b02010614000000000000001136270b0201061400000000000000113627690100006a2138540c010a00381f0c020e020a003801031d0e02380f0c030a020a0038070c040e0138550d010b03140b041438560b020a0038200c0205050b00010b0102650000006c340e013813032f0d01450a0c040a000c050a040601000000000000002104290b0551020c060b0651030c070a070a020a0338570a072e382a0a072e382b0c080e080b072e38270e032204000b00010b0201020b0551040b0438230c06050f0b00010b02010253000000620b0b0138580c030b0238590c040b000b030b04385a026c00000007470a010b02160c020a00500e1448000021030b051806001000000000000006500000000000000011620600100000000000000a011a116206040000000000000011634b0a00510e150a00500d1448000021031f052c06001000000000000006280000000000000011620600100000000000000a021a116206030000000000000011634b0a00510d150b010a00500e1434180600400600000000002504420b020b00500d14341806004006000000000025043f02060d000000000000001107270b0001060f000000000000001107275f0000006e5f38020c0138040c020e013803045c0b01385b0c030a00500e14480000210311051c0600100000000000000600100000000000000a031a116206040000000000000011634b0a00510e150a030a00500e1434180600400600000000002504570e02380304540b02385b0c040b030b04160c040a00500d1448000021033605410600100000000000000600100000000000000a041a116206030000000000000011634b0a00510d150b040a00500d14341806004006000000000025044f080b00510715020b0001060d000000000000001107270b0001054e0b0001060f000000000000001107270b0001054e00020101010201000100010003010100010101000300010002000101010401000000010100010101030301000103010003020100010601000105010002000100000501020202030204020502060c0702080509050a020b020c020d020e020f0c0100020100010000030002000002010c02050305040205050105050c00",
    "abi": {
      "address": "0x1",
      "name": "big_ordered_map",
      "friends": [],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ]
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "find",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::big_ordered_map::IteratorPtr<T0>"
          ]
        },
        {
          "name": "is_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "pop_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "T0",
            "T1"
          ]
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "T1"
          ]
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        },
        {
          "name": "upsert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "T0",
            "T1"
          ],
          "return": [
            "0x1::option::Option<T1>"
          ]
        },
        {
          "name": "allocate_spare_slots",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "add_all",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "vector<T0>",
            "vector<T1>"
          ],
          "return": []
        },
        {
          "name": "keys",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "copy",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "borrow_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "T0",
            "&T1"
          ]
        },
        {
          "name": "borrow_front",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "T0",
            "&T1"
          ]
        },
        {
          "name": "iter_borrow",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::big_ordered_map::IteratorPtr<T0>",
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "iter_borrow_key",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::big_ordered_map::IteratorPtr<T0>"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "iter_borrow_mut",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::big_ordered_map::IteratorPtr<T0>",
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "iter_is_begin",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::IteratorPtr<T0>",
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "iter_is_end",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::IteratorPtr<T0>",
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "iter_next",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::big_ordered_map::IteratorPtr<T0>",
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "0x1::big_ordered_map::IteratorPtr<T0>"
          ]
        },
        {
          "name": "iter_prev",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::big_ordered_map::IteratorPtr<T0>",
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "0x1::big_ordered_map::IteratorPtr<T0>"
          ]
        },
        {
          "name": "lower_bound",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::big_ordered_map::IteratorPtr<T0>"
          ]
        },
        {
          "name": "new_begin_iter",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "0x1::big_ordered_map::IteratorPtr<T0>"
          ]
        },
        {
          "name": "new_end_iter",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "0x1::big_ordered_map::IteratorPtr<T0>"
          ]
        },
        {
          "name": "new_from",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "vector<T0>",
            "vector<T1>"
          ],
          "return": [
            "0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ]
        },
        {
          "name": "next_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::option::Option<T0>"
          ]
        },
        {
          "name": "pop_front",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "T0",
            "T1"
          ]
        },
        {
          "name": "prev_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::option::Option<T0>"
          ]
        },
        {
          "name": "compute_length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "copy",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::option::Option<T1>"
          ]
        },
        {
          "name": "new_with_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "u16",
            "u16",
            "bool"
          ],
          "return": [
            "0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ]
        },
        {
          "name": "new_with_reusable",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ]
        },
        {
          "name": "new_with_type_size_hints",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "u64",
            "u64",
            "u64",
            "u64"
          ],
          "return": [
            "0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ]
        },
        {
          "name": "to_ordered_map",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "copy",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "0x1::ordered_map::OrderedMap<T0, T1>"
          ]
        }
      ],
      "structs": [
        {
          "name": "IteratorPtr",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": []
        },
        {
          "name": "BigOrderedMap",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "fields": []
        },
        {
          "name": "Child",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "fields": []
        },
        {
          "name": "Node",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "fields": []
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d01002d022dc20103ef01ee0804dd0a970105f40b820707f612822908f83b2006983c4610de3ccb230aa96081030caa63a6310dd094014013909501040000002b0030003400390042005f006200650068006e007200800100b70100bc0100cb0100d50100e40100e5010001060000040600000506000008060000090600000e0600000f060000110600001206000014060000150600001706000018060000190800001b0600001e060000200600002107000026070000290800012a0400002d0700022f04020301000103330600043804010601003e0600003f0800054104020000000000430c000044060000450600004a0600004b0600004c0800004e0700005107000056080000590600005a06000fcd010b0010d40104020301000105d60107020000000011e3010800005e0001000106600000000100610302000107630501010701006400020001086606000001006707020001096908080001096a08080001006b09020001006c00020001006d0a0800010a6f0208000100700b0c00010a71090800010b730201000104740e02010601047510020106010076120200010077130800010a78140200010a79140800010a7a00080001057b1617020302010a7c12020001007d03020001007e1c020001007f140800010c810103020001067d1d020001008201071e00010083011f020001008401000200010085010001000109860108080001008701000000010088011c23000100890100020001008a010b240001018b01251e0001018c01261e000106880100270001018d0128080001008e011c290001068f0100000001001a00000001009001030200010091010b2500010092012b0800010093012c0800010690011d02000100940130020001009501300200010695013002000100960103020001009701130200010098012308000100990130020001009a0100020001009b011c010001059c01160202000001009d0100010001009e01341e0001019f012608000101a001351e000109a1010808000100a2010001000100a3011f02000100a4010b00000100a5013602000101a601371e000100a701071e000100a8013602000100a901393a000100aa013b020001027b3d170203020100ab010a3f000100ac014008000100ad011c00000100ae010a00000100af010a41000100b0011c08000100b1014208000100b2011c13000101b3012508000101b4014608000100b5010001000106b601000800010db8010208000106b9010008000100ba013408000100bb01474700010ebd01490201000100be014a02000100bf011f1e000105c0014e010202000100c1010602000105c2014f020202020100c301060200010bc4010201000105c501024f0207040100c601000200010694013002000103c701065401060100c8013002000100c9011f57000106ca01000100010fcc01025900010fce015a15000100360008000100cf010027000100d0011f1e000100d101005c000105d2015d080200000105d3015d5e0200000110d70160610203000105d80163640200000100d9016600000103da016700000102d70169610203000101db016a08000103dc016c00000105dd016d610203000100de016f02000107df01700201070100e0016f02000100e1017102000103e2017273000112e601060201000106e7017502000102c50102760203040100e8010877000101e90108780001029c013d020203000109ea010808000100eb010001000100ec010008000100ed01020800010fee015a080001002c0008000102ef017d170203000102c00169010203000100f0010708000100f1013602000101f2017e08000100f3013602000102f4017d7f0203000101f5017802000100f6013002000105f40181017f0203000103f7016c0c000100f8013002000100f9010008000101fa012508000101fb0185010200010696011d02000105ef018101170202000100fc011d02000106fd010008000106611d0200010304100d110f171517181019111a10201121102d112e3c3210334b3c5c48104b114c5f3261321050643210516418641564526453671a670f674c105571327232735f743277687a187c0480017482016885016882013c6721672e6779677a677b8c01688d013c773c92013c920168950132108201108301117b10860110880111795f5317539c01535f5217529c0152108c01109001117a010501010003060c050301081202060c090001060c030708130503010306060c050a020a020a0201030608130708210501060813010c01080001090001080102070b18010900090004050708210c0305060c050303010305050302050302030303070b1b02090009010900090101070901020822030108020108030c05030708210708210503030703070b1b02082203082207030c02050502060c03010402060813050108040108050405030708130c030303030501030303030106081402060814050403030303040608140403040201030b0608130303030104040103030304060814060814050304070813050308150108060108070705070813081505070813030c02060c0502050c02050101080c030608140503020608140304060813050405030708140503020405010708130107081402070813050205081503070b1602090009010900090103040508150107081102060813060811010708230306082105030206082103040608130708210708110608110d030303030103030303030303030206081404010a02010202070a09000a090003060c050501080f01081008050608130708210708230507050407081102060b1b02090009010900010b1b020900090101081d01081f0205082302050811010b180109000108200205060813020108150208150101082701060827040827030303010a0501060b1b020900090101060b2802030a0b29020900090102030a0b2902050102060b280209000901090001060901010b2902050101060b290209000901020609000609010a0a05060b1b020501030103060a0b2902050103030601060502050a020206050a02020815081402060b160209000901090003060814040308060813030301081501030608140106081703060b1b02090009010900060901030822060b1b020822030302060c060c03060c060c090003060c030a0202060c0a02020c081701082a04060c030505010b16020900090101081501081401080901080b01081906050a0208170c050b16020815081402070b160209000901090003070814050401090106040501070814030102070b1b020900090109000108250108260305050705020708140301081e0707081303030303010101080803030708130c0603070b1b02050811040407081107030503070b1b0205082303070823070301080e05050507082407030c030708210708230708110207082107081101080a07050815010c060c03010f64656c65676174696f6e5f706f6f6c0e43726561746550726f706f73616c0b70726f706f73616c5f696405766f7465721343726561746550726f706f73616c4576656e7404566f7465096e756d5f766f7465730b73686f756c645f7061737309566f74654576656e74084164645374616b650c706f6f6c5f616464726573731164656c656761746f725f616464726573730c616d6f756e745f61646465640d6164645f7374616b655f6665650d4164645374616b654576656e740f526561637469766174655374616b6512616d6f756e745f726561637469766174656414526561637469766174655374616b654576656e740b556e6c6f636b5374616b650f616d6f756e745f756e6c6f636b656410556e6c6f636b5374616b654576656e740d57697468647261775374616b6510616d6f756e745f77697468647261776e1257697468647261775374616b654576656e7412416c6c6f776c69737444656c656761746f721642656e6566696369617279466f724f70657261746f721862656e65666963696172795f666f725f6f70657261746f721a436f6d6d697373696f6e50657263656e746167654368616e6765056f776e657227636f6d6d697373696f6e5f70657263656e746167655f6e6578745f6c6f636b75705f6379636c651344656c6567617465566f74696e67506f7765720964656c656761746f721844656c6567617465566f74696e67506f7765724576656e740e44656c656761746564566f7465730d6163746976655f7368617265731770656e64696e675f696e6163746976655f736861726573196163746976655f7368617265735f6e6578745f6c6f636b7570166c6173745f6c6f636b65645f756e74696c5f736563731444656c65676174696f6e5065726d697373696f6e2244656c65676174696f6e506f6f6c4d616e6167656d656e745065726d697373696f6e195374616b654d616e6167656d656e745065726d697373696f6e0e44656c65676174696f6e506f6f6c04506f6f6c10706f6f6c5f7536345f756e626f756e64156f627365727665645f6c6f636b75705f6379636c65134f627365727665644c6f636b75704379636c650f696e6163746976655f736861726573055461626c65057461626c651370656e64696e675f7769746864726177616c73157374616b655f706f6f6c5f7369676e65725f636170105369676e65724361706162696c697479076163636f756e7414746f74616c5f636f696e735f696e6163746976651e6f70657261746f725f636f6d6d697373696f6e5f70657263656e74616765106164645f7374616b655f6576656e74730b4576656e7448616e646c65056576656e7417726561637469766174655f7374616b655f6576656e747313756e6c6f636b5f7374616b655f6576656e74731577697468647261775f7374616b655f6576656e74731c646973747269627574655f636f6d6d697373696f6e5f6576656e74731944697374726962757465436f6d6d697373696f6e4576656e741a44656c65676174696f6e506f6f6c416c6c6f776c697374696e6709616c6c6f776c6973740a536d6172745461626c650b736d6172745f7461626c651744656c65676174696f6e506f6f6c4f776e6572736869701d44697361626c6544656c656761746f7273416c6c6f776c697374696e671444697374726962757465436f6d6d697373696f6e086f70657261746f720b62656e656669636961727911636f6d6d697373696f6e5f6163746976651b636f6d6d697373696f6e5f70656e64696e675f696e6163746976651c456e61626c6544656c656761746f7273416c6c6f776c697374696e670e457669637444656c656761746f7211476f7665726e616e63655265636f72647305766f7465730f566f74696e675265636f72644b657912766f7465735f7065725f70726f706f73616c0f766f74655f64656c65676174696f6e0e566f746544656c65676174696f6e0f64656c6567617465645f766f7465730b766f74655f6576656e7473166372656174655f70726f706f73616c5f6576656e74731c64656c65676174655f766f74696e675f706f7765725f6576656e7473184e657874436f6d6d697373696f6e50657263656e74616765146566666563746976655f61667465725f7365637305696e6465781c52656d6f766544656c656761746f7246726f6d416c6c6f776c6973741953657442656e6566696369617279466f724f70657261746f720f6f6c645f62656e65666963696172790f6e65775f62656e65666963696172790d70656e64696e675f766f746572217061727469616c5f676f7665726e616e63655f766f74696e675f656e61626c6564057374616b65136765745f64656c6567617465645f766f746572087769746864726177137065726d697373696f6e65645f7369676e657217636865636b5f7065726d697373696f6e5f6578697374731b73796e6368726f6e697a655f64656c65676174696f6e5f706f6f6c067369676e65720a616464726573735f6f661177697468647261775f696e7465726e616c056572726f7210696e76616c69645f617267756d656e74117065726d697373696f6e5f64656e6965640f6372656174655f70726f706f73616c286173736572745f7061727469616c5f676f7665726e616e63655f766f74696e675f656e61626c65642463616c63756c6174655f616e645f7570646174655f64656c6567617465645f766f746573106170746f735f676f7665726e616e63651b6765745f72657175697265645f70726f706f7365725f7374616b651972657472696576655f7374616b655f706f6f6c5f6f776e6572176372656174655f70726f706f73616c5f76325f696d706c0866656174757265731e6d6f64756c655f6576656e745f6d6967726174696f6e5f656e61626c656404656d69740a656d69745f6576656e7404766f74652b63616c63756c6174655f616e645f7570646174655f72656d61696e696e675f766f74696e675f706f7765721a6173736572745f70726f706f73616c5f65787069726174696f6e1a6765745f72656d61696e696e675f766f74696e675f706f776572106765745f766f74696e675f706f77657217626f72726f775f6d75745f776974685f64656661756c740c7061727469616c5f766f7465096164645f7374616b651c6173736572745f64656c656761746f725f616c6c6f776c6973746564116765745f6164645f7374616b655f6665650d6170746f735f6163636f756e74087472616e73666572146275795f696e5f6163746976655f736861726573196173736572745f6d696e5f6163746976655f62616c616e6365176173736572745f6f776e65725f6361705f657869737473106f776e65725f6361705f657869737473096e6f745f666f756e64166765745f6f776e65645f706f6f6c5f61646472657373096765745f7374616b651d6173736572745f64656c65676174696f6e5f706f6f6c5f6578697374731a63616c63756c6174655f7374616b655f706f6f6c5f64726966740c746f74616c5f73686172657306736861726573217368617265735f746f5f616d6f756e745f776974685f746f74616c5f7374617473166765745f70656e64696e675f7769746864726177616c0c6765745f6f70657261746f7210726561637469766174655f7374616b651c70656e64696e675f696e6163746976655f7368617265735f706f6f6c25636f696e735f746f5f7472616e736665725f746f5f656e737572655f6d696e5f7374616b651672656465656d5f696e6163746976655f736861726573137365745f64656c6567617465645f766f7465720c7365745f6f70657261746f7206756e6c6f636b0f756e6c6f636b5f696e7465726e616c146d756c7469706c795f7468656e5f64697669646513616c6c6f776c6973745f64656c656761746f721b6173736572745f616c6c6f776c697374696e675f656e61626c65641564656c656761746f725f616c6c6f776c69737465640361646414616c6c6f776c697374696e675f656e61626c65641a616d6f756e745f746f5f7368617265735f746f5f72656465656d0762616c616e636510616d6f756e745f746f5f7368617265730d696e76616c69645f73746174651664656c65676174696f6e5f706f6f6c5f657869737473236173736572745f6d696e5f70656e64696e675f696e6163746976655f62616c616e6365106765745f706f6f6c5f61646472657373327570646174655f676f7665726e616e63655f7265636f7264735f666f725f6275795f696e5f6163746976655f736861726573066275795f696e1e6275795f696e5f70656e64696e675f696e6163746976655f7368617265733c7570646174655f676f7665726e616e63655f7265636f7264735f666f725f6275795f696e5f70656e64696e675f696e6163746976655f7368617265732070656e64696e675f696e6163746976655f7368617265735f706f6f6c5f6d75741a657865637574655f70656e64696e675f7769746864726177616c257570646174655f616e645f626f72726f775f6d75745f64656c6567617465645f766f7465731c63616c63756c6174655f746f74616c5f766f74696e675f706f7765722463616c63756c6174655f616e645f7570646174655f64656c656761746f725f766f7465722d63616c63756c6174655f616e645f7570646174655f64656c656761746f725f766f7465725f696e7465726e616c2f7570646174655f616e645f626f72726f775f6d75745f64656c656761746f725f766f74655f64656c65676174696f6e2d63616c63756c6174655f616e645f7570646174655f766f7465725f746f74616c5f766f74696e675f706f776572156765745f757365645f766f74696e675f706f7765722663616c63756c6174655f616e645f7570646174655f766f74696e675f64656c65676174696f6e0b746f74616c5f636f696e73107368617265735f746f5f616d6f756e741d63616e5f77697468647261775f70656e64696e675f696e616374697665136765745f76616c696461746f725f73746174650974696d657374616d700b6e6f775f7365636f6e64730f6765745f6c6f636b75705f7365637323636f696e735f746f5f72656465656d5f746f5f656e737572655f6d696e5f7374616b651c6372656174655f7265736f757263655f6163636f756e745f7365656406766563746f7206617070656e641564656c65676174655f766f74696e675f706f7765721b6765745f64656c656761746f725f6163746976655f73686172657308636f6e7461696e731f64697361626c655f64656c656761746f72735f616c6c6f776c697374696e670764657374726f791e656e61626c655f64656c656761746f72735f616c6c6f776c697374696e672464656c65676174696f6e5f706f6f6c5f616c6c6f776c697374696e675f656e61626c6564036e657720656e61626c655f7061727469616c5f676f7665726e616e63655f766f74696e67106e65775f6576656e745f68616e646c650f65766963745f64656c656761746f721970656e64696e675f7769746864726177616c5f6578697374731a69735f63757272656e745f65706f63685f76616c696461746f720e7374616b696e675f636f6e666967036765740d5374616b696e67436f6e6669670f6765745f7265776172645f72617465196765745f64656c65676174696f6e5f706f6f6c5f7374616b65256765745f64656c656761746f725f70656e64696e675f696e6163746976655f736861726573186765745f64656c656761746f72735f616c6c6f776c6973740b6e756d5f6275636b6574730e626f72726f775f6275636b6574730f5461626c65576974684c656e677468117461626c655f776974685f6c656e67746805456e74727906626f72726f7709626f72726f775f6b761f6765745f65787065637465645f7374616b655f706f6f6c5f61646472657373176372656174655f7265736f757263655f61646472657373217368617265735f746f5f616d6f756e745f776974685f746f74616c5f636f696e731d6765745f7369676e65725f6361706162696c6974795f6164647265737313626f72726f775f776974685f64656661756c742b6772616e745f64656c65676174696f6e5f706f6f6c5f6d616e6167656d656e745f7065726d697373696f6e13617574686f72697a655f756e6c696d69746564216772616e745f7374616b655f6d616e6167656d656e745f7065726d697373696f6e1a696e697469616c697a655f64656c65676174696f6e5f706f6f6c176372656174655f7265736f757263655f6163636f756e74094170746f73436f696e0a6170746f735f636f696e04636f696e08726567697374657216696e697469616c697a655f7374616b655f6f776e65720e6f6c635f776974685f696e6465781a6372656174655f776974685f7363616c696e675f666163746f720e616c72656164795f6578697374732769735f6e6578745f636f6d6d697373696f6e5f70657263656e746167655f656666656374697665306f70657261746f725f636f6d6d697373696f6e5f70657263656e746167655f6e6578745f6c6f636b75705f6379636c65286d696e5f72656d61696e696e675f736563735f666f725f636f6d6d697373696f6e5f6368616e67651d6765745f726563757272696e675f6c6f636b75705f6475726174696f6e0a626f72726f775f6d75741472656465656d5f6163746976655f736861726573337570646174655f676f7665726e616e6163655f7265636f7264735f666f725f72656465656d5f6163746976655f7368617265730d72656465656d5f7368617265733d7570646174655f676f7665726e616e6163655f7265636f7264735f666f725f72656465656d5f70656e64696e675f696e6163746976655f7368617265730672656d6f76650d64657374726f795f656d7074791f72656d6f76655f64656c656761746f725f66726f6d5f616c6c6f776c6973741d6372656174655f7369676e65725f776974685f6361706162696c6974791c7365745f62656e65666963696172795f666f725f6f70657261746f721e7368617265686f6c646572735f636f756e745f6163746976655f706f6f6c127368617265686f6c646572735f636f756e74127570646174655f746f74616c5f636f696e731c7570646174655f636f6d6d697373696f6e5f70657263656e74616765196765745f72656d61696e696e675f6c6f636b75705f736563730000000000000000000000000000000000000000000000000000000000000001052000000000000000000000000000000000000000000000000000000000000000000a0221206170746f735f6672616d65776f726b3a3a64656c65676174696f6e5f706f6f6c14636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f763197231d010000000000000014454f574e45525f4341505f4e4f545f464f554e444844656c65676174696f6e20706f6f6c206f776e6572206361706162696c69747920646f6573206e6f74206578697374206174207468652070726f7669646564206163636f756e742e020000000000000019454f574e45525f4341505f414c52454144595f4558495354532c4163636f756e7420697320616c7265616479206f776e696e6720612064656c65676174696f6e20706f6f6c2e03000000000000001f4544454c45474154494f4e5f504f4f4c5f444f45535f4e4f545f45584953543c44656c65676174696f6e20706f6f6c20646f6573206e6f74206578697374206174207468652070726f766964656420706f6f6c20616464726573732e04000000000000001a4550454e44494e475f5749544844524157414c5f4558495354534e546865726520697320612070656e64696e67207769746864726177616c20746f206265206578656375746564206265666f72652060756e6c6f636b60696e6720616e79206e6577207374616b652e05000000000000001e45494e56414c49445f434f4d4d495353494f4e5f50455243454e544147453f436f6d6d697373696f6e2070657263656e746167652068617320746f206265206265747765656e203020616e6420604d41585f46454560202d20313030252e060000000000000022454e4f545f454e4f5547485f4143544956455f5354414b455f544f5f554e4c4f434b415468657265206973206e6f7420656e6f756768206061637469766560207374616b65206f6e20746865207374616b6520706f6f6c20746f2060756e6c6f636b602e07000000000000002345534c41534845445f494e4143544956455f5354414b455f4f4e5f504153545f4f4c43d302536c617368696e672028696620696d706c656d656e746564292073686f756c64206e6f74206265206170706c69656420746f20616c72656164792060696e61637469766560207374616b652e0a204e6f74206f6e6c7920697420696e76616c69646174657320746865206163636f756e74696e67206f662070617374206f62736572766564206c6f636b7570206379636c657320284f4c43292c0a2062757420697320616c736f20756e6661697220746f2064656c656761746f72732077686f7365207374616b6520686173206265656e20696e616374697665206265666f72652076616c696461746f722073746172746564206d69736265686176696e672e0a204164646974696f6e616c6c792c2074686520696e616374697665207374616b6520646f6573206e6f7420636f756e74206f6e2074686520766f74696e6720706f776572206f662076616c696461746f722e0800000000000000214544454c454741544f525f4143544956455f42414c414e43455f544f4f5f4c4f574a44656c656761746f722773206163746976652062616c616e63652063616e6e6f74206265206c657373207468616e20604d494e5f434f494e535f4f4e5f5348415245535f504f4f4c602e09000000000000002b4544454c454741544f525f50454e44494e475f494e4143544956455f42414c414e43455f544f4f5f4c4f575444656c656761746f7227732070656e64696e675f696e6163746976652062616c616e63652063616e6e6f74206265206c657373207468616e20604d494e5f434f494e535f4f4e5f5348415245535f504f4f4c602e0a000000000000001a4544454c45474154494f4e5f504f4f4c535f44495341424c45442d4372656174696e672064656c65676174696f6e20706f6f6c73206973206e6f7420656e61626c6564207965742e0b00000000000000144557495448445241575f5a45524f5f5354414b452643616e6e6f74207265717565737420746f207769746864726177207a65726f207374616b652e0c000000000000001445444550524543415445445f46554e4354494f4e1746756e6374696f6e20697320646570726563617465642e0d00000000000000124544495341424c45445f46554e4354494f4e305468652066756e6374696f6e2069732064697361626c6564206f72206861736e2774206265656e20656e61626c65642e0e0000000000000026455041525449414c5f474f5645524e414e43455f564f54494e475f4e4f545f454e41424c4544465061727469616c20676f7665726e616e636520766f74696e67206861736e2774206265656e20656e61626c6564206f6e20746869732064656c65676174696f6e20706f6f6c2e0f000000000000001c45494e53554646494349454e545f50524f504f5345525f5354414b453e54686520766f74657220646f6573206e6f7420686176652073756666696369656e74207374616b6520746f2063726561746520612070726f706f73616c2e100000000000000010454e4f5f564f54494e475f504f5745523a54686520766f74657220646f6573206e6f74206861766520616e7920766f74696e6720706f776572206f6e20746869732070726f706f73616c2e11000000000000002b45414c52454144595f564f5445445f4245464f52455f454e41424c455f5041525449414c5f564f54494e4773546865207374616b6520706f6f6c2068617320616c726561647920766f746564206f6e207468652070726f706f73616c206265666f726520656e61626c696e67207061727469616c20676f7665726e616e636520766f74696e67206f6e20746869732064656c65676174696f6e20706f6f6c2e12000000000000000d454e4f545f4f50455241544f5232546865206163636f756e74206973206e6f7420746865206f70657261746f72206f6620746865207374616b6520706f6f6c2e13000000000000002a454f50455241544f525f42454e45464943494152595f4348414e47455f4e4f545f535550504f52544544364368616e67696e672062656e6566696369617269657320666f72206f70657261746f7273206973206e6f7420737570706f727465642e14000000000000001e45544f4f5f4c415247455f434f4d4d495353494f4e5f494e4352454153452c436f6d6d697373696f6e2070657263656e7461676520696e63726561736520697320746f6f206c617267652e15000000000000001b45544f4f5f4c4154455f434f4d4d495353494f4e5f4348414e4745a001436f6d6d697373696f6e2070657263656e74616765206368616e676520697320746f6f206c61746520696e2074686973206c6f636b757020706572696f642c20616e642073686f756c6420626520646f6e65206174206c65617374206120717561727465722028312f3429206f6620746865206c6f636b7570206475726174696f6e206265666f726520746865206c6f636b7570206379636c6520656e64732e16000000000000002545434f4d4d495353494f4e5f524154455f4348414e47455f4e4f545f535550504f52544544464368616e67696e67206f70657261746f7220636f6d6d697373696f6e207261746520696e2064656c65676174696f6e20706f6f6c206973206e6f7420737570706f727465642e1700000000000000264544454c454741544f52535f414c4c4f574c495354494e475f4e4f545f535550504f525445442944656c656761746f727320616c6c6f776c697374696e67206973206e6f7420737570706f727465642e1800000000000000244544454c454741544f52535f414c4c4f574c495354494e475f4e4f545f454e41424c45444444656c656761746f727320616c6c6f776c697374696e672073686f756c6420626520656e61626c656420746f20706572666f726d2074686973206f7065726174696f6e2e19000000000000001a4544454c454741544f525f4e4f545f414c4c4f574c49535445444743616e6e6f74206164642f72656163746976617465207374616b6520756e6c657373206265696e6720616c6c6f776c69737465642062792074686520706f6f6c206f776e65722e1a00000000000000234543414e4e4f545f45564943545f414c4c4f574c49535445445f44454c454741544f525343616e6e6f7420657669637420616e20616c6c6f776c69737465642064656c656761746f722c2073686f756c642072656d6f7665207468656d2066726f6d2074686520616c6c6f776c6973742066697273742e1b000000000000001f4543414e4e4f545f554e4c4f434b5f4e554c4c5f5348415245484f4c4445524443616e6e6f7420756e6c6f636b2074686520616363756d756c6174656420616374697665207374616b65206f66204e554c4c5f5348415245484f4c44455228307830292e1c0000000000000019454e4f5f44454c45474154494f4e5f5045524d495353494f4e3c5369676e657220646f6573206e6f742068617665207065726d697373696f6e20746f20706572666f726d2064656c65676174696f6e206c6f6769632e1d00000000000000224543414e5f4e4f5f4c4f4e4745525f5345545f44454c4547415445445f564f544552635573652064656c656761746f7220766f74696e6720666c6f7720696e73746561642e2044656c65676174696f6e20706f6f6c732063616e206e6f206c6f6e676572207370656369667920612073696e676c652064656c65676174656420766f7465722e1004566f7465010400084164645374616b650104000b556e6c6f636b5374616b650104000d57697468647261775374616b650104000e43726561746550726f706f73616c0104000e457669637444656c656761746f720104000f526561637469766174655374616b6501040012416c6c6f776c69737444656c656761746f720104001344656c6567617465566f74696e67506f7765720104001444697374726962757465436f6d6d697373696f6e0104001944697374726962757465436f6d6d697373696f6e4576656e740104001953657442656e6566696369617279466f724f70657261746f720104001a436f6d6d697373696f6e50657263656e746167654368616e67650104001c456e61626c6544656c656761746f7273416c6c6f776c697374696e670104001c52656d6f766544656c656761746f7246726f6d416c6c6f776c6973740104001d44697361626c6544656c656761746f7273416c6c6f776c697374696e6701040018096765745f7374616b65010100106f776e65725f6361705f657869737473010100116765745f6164645f7374616b655f66656501010014616c6c6f776c697374696e675f656e61626c65640101001564656c656761746f725f616c6c6f776c6973746564010100156f627365727665645f6c6f636b75705f6379636c650101001664656c65676174696f6e5f706f6f6c5f657869737473010100166765745f6f776e65645f706f6f6c5f61646472657373010100166765745f70656e64696e675f7769746864726177616c0101001862656e65666963696172795f666f725f6f70657261746f72010100186765745f64656c656761746f72735f616c6c6f776c697374010100196765745f64656c65676174696f6e5f706f6f6c5f7374616b650101001d63616e5f77697468647261775f70656e64696e675f696e6163746976650101001e6f70657261746f725f636f6d6d697373696f6e5f70657263656e746167650101001e7368617265686f6c646572735f636f756e745f6163746976655f706f6f6c0101001f6765745f65787065637465645f7374616b655f706f6f6c5f61646472657373010100217061727469616c5f676f7665726e616e63655f766f74696e675f656e61626c65640101002463616c63756c6174655f616e645f7570646174655f64656c656761746f725f766f7465720101002663616c63756c6174655f616e645f7570646174655f766f74696e675f64656c65676174696f6e0101002769735f6e6578745f636f6d6d697373696f6e5f70657263656e746167655f656666656374697665010100286d696e5f72656d61696e696e675f736563735f666f725f636f6d6d697373696f6e5f6368616e67650101002b63616c63756c6174655f616e645f7570646174655f72656d61696e696e675f766f74696e675f706f7765720101002d63616c63756c6174655f616e645f7570646174655f766f7465725f746f74616c5f766f74696e675f706f776572010100306f70657261746f725f636f6d6d697373696f6e5f70657263656e746167655f6e6578745f6c6f636b75705f6379636c6501010000020302030305000501020302030305000502020503050203000506030701030205030502030005060307010402040a050b050c030d030502040a050b050c030d030602030a050b0510030702030a050b0510030802030a050b0513030902030a050b0513030a02030a050b0516030b02030a050b0516030c02020a050b050d02011a050e02030a051c051d030f02030a051f0503051002030a051f05030511020422042304240425031203022700280013020c2208142c08152e0b160208150814310b160205081532081735033603370b180108053a0b180108073b0b180108093c0b1801080b3d0b180108191a0201400b1b0205011c02010a051d02010a051e02050a0546054705480349031902040a054605480349031f02010a052002020a050b052102074d0b1b020822034f0b1b020303500b1b02050823520b1b02050811530b18010803540b18010801550b180108102402021d03570315020158032502020a050b0526020346055b055c0523020303055d0525032202020305020300010000010d0a00291b040a0a0011010b00210c010b0102090c010508020104040d131b1c021b0a005200380004160a020600000000000000002404110a0111040b012a130b0011050b021106020b0001060b000000000000001107270b0001061c00000000000000110827090104040d131b1c113d0a005200380004380a01110a0a0111040b0011050c060a012b130a012a1b0a06110b110c2604350a012b13110d0c080e080a010b020b030b040b05110e0c090a012a1b0c07110f042d0b07010b090b060b0112003801020b070f000b090b060b0112013802052c060f000000000000001107270b0001061c00000000000000110827120104040d131b1c1b84010a0052003800047f0a01110a0a0111040b0011050c050a010a050a0211130c060a030a0624031505170b060c030a010a0211140a0306000000000000000024047c0a012a1b0c070a070c080a010c090a020c060a030c0a0a090a0611150c0b0b0911160b0b170b080f010b0606000000000000000038030c0c0a0c142104750a0c140b0a160b0c150a070c080a050a020b080f020c0d12210c0e0b0d0b0e06000000000000000038040c0f0a0f140a03160b0f150a012b13110d0c100e100a010a020a030a041118110f046b0b07010b050b020b010b030b0412023805020b070f030b050b020b010b030b0412033806056a0b07010b0c010611000000000000001107270610000000000000001107270b0001061c00000000000000110827190104050d13141b1c224e0a005200380004490a0206000000000000000021040b0b0001020a0011050c030a010a03111a0a0111040a010a02111b0c040a012a130c050b000a010a02111c0a052e110d0c060e060a02111d0a050a030a020a0417111e010a052e0a03111f0a0507000a04111e01110f04400b05010b010b030b020b0412043807020b050f040b010b030b020b0412053808053f0b0001061c000000000000001108272000000002070b001121040402060100000000000000112227230100011502070a0011200b002b1510051402240100020d132a5f0a0011250a002b130c020a0211260c030c04010c050c060a02100611270c070a0210060a0111280c080a00112901060000000000000000210c0901010b090320052e0b070a02100607001128170c070a01070021032c052e32000000000000000000000000000000000c080b0210060b080b050a04170b07112a0c050a000a01112b0c0a045a0b0a0c0b0600000000000000000c0c0b010b00112c112d21034705510b050b04160c050b0604550b0b0b03160c0b0b050b0b0b0c020b0c0b03160c0c05510600000000000000000c0b0b0a0c0c05402e0104050d13141b1c2f540a0052003800044f0a0206000000000000000021040b0b0001020b0011050c030a010a03111a0a0111040a012a130c040a042e112f0a0410060a030b0211300a041007140c050a040a030c060c070c080b070b060b080b0511310c020a042e110d0c090e090a0211320a040a030a02111e010a042e0a03111f110f04470b04010b010b030b0212063809020b040f080b010b030b021207380a05460b0001061c00000000000000110827330104000204061d000000000000000b000127340104050d13151b1c31170a005201380004120b00110511230c020a0211040b022b13110d0c030e030b011135020b0001061c00000000000000110827360104040d131b1c02180a005200380004130a0206000000000000000021040b0b0001020a0111040b0011050b010b021137020b0001061c000000000000001108273801000002110a0206000000000000000022040e0b00350b0135180b02351a3402060400000000000000110727390104021415001f0a0052013800041a0b00110511230c020a02113a0a020a01113b040f020a022a140f090a0108380b0b020b01120c380c020b0001061c000000000000001108273d01000002050a0011250b002914023e0000001e110a020a000a01113f26040c0b000b0111280c030b03020b000b0211400c03050a3a00000002070b00113d0404020618000000000000001141272500000002070b0011420404020603000000000000001107271a0000011402080b000b01113b0405020619000000000000001108271f000000020b0b0010060b01113f0600ca9a3b000000002604080206080000000000000011072743000000020b0b00112f0b01113f0600ca9a3b00000000260408020609000000000000001107270a00000002090a0011250b001100040602060e000000000000001141272d0100010d020a0a00290d04080b002b0d100a14020b00021e0000011b38230a0010060a0211400c030a03320000000000000000000000000000000021040d0b00013200000000000000000000000000000000020a002e11440c040a0411000315051b0a002e0b040a030a0111450b000f060b010b021146010b0302470000011b3e370a002e112f0a0211400c030a03320000000000000000000000000000000021040e0b00013200000000000000000000000000000000020a002e11440c040a0411000316051c0a002e0b040a030a0111480a0011490a010b021146010a000a01114a0a001007140c050b000f0b0b010a05380d140b052104340b03020604000000000000001141270b0000003f0a0a000b010b02114c0c030b000b032e114d024e010002131b02090a00110a0a002b130b002a1b0b01114f024f00000002070b000b010b021150100c1402130100040d131b1c43140a00110a0a000a02111506000000000000000021040a060000000000000000020a000a0111510b002b1b0b010b0211521702510100040d131b1c44140a00110a0a0011040a002b130c020b002a1b0c030a020b030b01114c2e0c050b020b05114d0253010002131b41130a00110a0a002b130b002a1b0b0111500c020a02100c140a02100d140b02100e140226000000456d0a00114411290c010c020c030c040a030a00100f142604680a030a00100f14240c050b040b02160c040a05031a05200b030a00100f14170c010a00100611540c060a040a062404650a040b06170c070a001010140c080b07350b08351832102700000000000000000000000000001a340c090a00112f11540c0a0a010a0a24045b0a010b0a170c0b0b001010140c0c0b0b350b0c351832102700000000000000000000000000001a340c0d0b050b040b010b090b0d020604000000000000001107270b00010600000000000000000c0d05520b00010604000000000000001107270600000000000000000c0905390b00010607000000000000001141274d000000150e0a0010060a0110111411550b00112f0b011012141155160256010000010f0a00115706040000000000000021040c11580b001159260c010b0102090c01050a5a00000015160a000a000a010a02113e11550c030b000b01113f0c040a040b03170600ca9a3b0000000023031205140b040c020b020230000000151d0a000a000a020a03113e11550c040b010a02113f0c050a050b04160600ca9a3b0000000023031205180600ca9a3b000000000b0517060100000000000000160c030b000b020b03115a025b000000470a404800000000000000000c010d010701380e0d010b00380e0b01025d0104040d131b1c4d5e0a005200380004590a01110a0a0111040b0011050c030a012b130c040a012a1b0c050a040a050a0311500c060a06100d140c070a070a022204540b060f0d0c080a020b08150a040a03115e0c090a040a050b07114c0c0a0a0a1013140a09170b0a0f13150b040a050a02114c0c0a0a0a1013140b09160b0a0f1315110f044c0b05010b010b030b02120f380f020b050f140b010b030b0212103810054b0b04010b060105420b0001061c000000000000001108274201000002030b002913023b01000114020c0a00113d030508020b002a140f092e0b0138110260010402141500170a005201380004120b00110511230c010a01113a0a012c14131438120b0112163813020b0001061c0000000000000011082762010402131531240a0052013800041f1163041a0b00110511230c010a01113d040e020a012b13110d0c020e02381412142d140b0112193815020b00010617000000000000001141270b0001061c00000000000000110827650104040d131b1c0c1a0a0011250a0011040b002b13110d0c010e010e01110511660e0138163817381838190e01381a0e01381b0e01381c121b2d1b02680104060d1314151b1c56300a0052013800042b0b00110511230c020a02113a0a020a01113b03280a0211040a022b130c030a030a01115e320000000000000000000000000000000021041c0b0301020a010a020b0310060a01113f11370b020b01121a381d02061a000000000000001141270b0001061c000000000000001108274a0000011b581c0a002e0a0111690c0204190e021015140a001007101514230c030b0304160b000b0106ffffffffffffffff1106020b00010515090c03050f1b010002131c5b2f0a00116a042c116b0c020e02116c0c030c040a030600000000000000002404290a0011250b040610270000000000000b00116d17180c040b03061027000000000000180c030b01350a0435180b04350b0335161a340c050b05020600000000000000000c0505270600000000000000000c0505276e01000002050a0011250b001129025e00000002050b0010060b011128026f00000002050b00112f0b01112802700100011465460a00113a400000000000000000000c010b002a140f092e0c020600000000000000000c03090c040a02381e0c050a0404400b03060100000000000000160c030a030a0523043c0a02381f0a0338200c060600000000000000000c070a0641620c080a070a082304390a060a07426238210c090c0a0b09010d010b0a1444000b07060100000000000000160c0705240b060105100b02010b0102080c0405160b0201053e7501000002070b01115b0c010e000b011176022b010001136b3b0a0011250b002b130c020a0211260c03010c04010c050a020a0111690c06031a0b0201090c070600000000000000000c080b070b08020a0210160a0638220c090e061015140b02100710151423042f080c070b090b01113f0c0805170a090b090b0111280b040b031711780b050c070c0805174400000002040b001017117902520000006e0b0b0010020b010b0212210600000000000000000c050e05382314027b01000002050b000b0152013824027d01000002050b000b0152003824027e0104040d131b1c7c540a0052013800044f0a0011050c030a031121034a0a010610270000000000002504450b02115b0c040a000b04117f0c050c060e0638250e0611050c070e060600000000000000000a030b0311810138260c080d08060000000000000000118301060000c16ff286230011840138270e06060000c16ff28623001184010600000000000000001183010b0838280b050600000000000000000b010e0638290e06382a0e06382b0e06382c0e06382d12132d130b000a0712152d150b071165020b00010605000000000000001107270b0001060200000000000000118601270b0001061c000000000000001108276d010002131c08100a0011250a00118701040a0b001188010c010b01020b002b131010140c01050887010100011c010f0a00291c040c11580b002b1c101814260c010b0102090c01050a89010100005907116b0c000e00118a010604000000000000001a028b010100011302080a0011250b002b13100710151402830100000002030b00121d028801010002131c08120a0011250a00291c040c0b002b1c1019140c010b01020b002b131010140c01050a2101000002030b002915022f00000002070a0010160b001007143822024900000077090a001007140c010b000f160b01382e026900000057180a00100b0a01382f0410080c020b00100b0b013830140c030b020b03020b0001090c020600000000000000001183010c03050d8e010000011b38220a0010060a010b02113e0c030a03320000000000000000000000000000000021040e0b0001060000000000000000020a002e11440c040a0411000316051c0a002e0b040a030a01118f010b000f060b010b0311900102310000011b8001630a0010160a0338220a010b02113e0c040a0432000000000000000000000000000000002104100b0001060000000000000000020a002e11440c050a05110004600e031015140a001007101514210c060b06032305290a002e0b050a040a011191010a000f160a03382e0c070a070a010b041190010c080a072e0a011128320000000000000000000000000000000021033b05400a000f0b0b013831010e031015140a00100710151423045b0b072e1154060000000000000000210c090b0904580b000f160b0338321193010b08020b000105560b0701090c09054f090c06052094010104021415001f0a0052013800041a0b00110511230c020a02113a0a020a01113b030f020a022a140f090a013833010b020b01121e3834020b0001061c000000000000001108270d00000002040b0010171196010297010104010d8401260a005200380004210a0011050c020a02112d0c030a02290d041c0b00010a022a0d0f0a0c040a010b04150b020b030b01121f3835020b000a01120d2d0d05160b0001061c0000000000000011082798010100011302070a0011250b002b13100611990102040104040d131b1c8701750a0011250a002a130c010a012e11260c020c030c040c050c060a00112901060000000000000000210c0701010b070318051d0a01070006ffffffffffffffff118e01010a010f060b050a0317119a010a0111490b040a0217119a010a010a00112c112d0a03111e010a010a00112c112d0a021147010a010f1a0a000a00112c0a030a02121838360a000a00112c0a00112c112d0b030b02121738370b06034d05670a00112901010a010f0f150a011007101514060100000000000000160a010f070f15150a010f160a01100714060000c16ff28623001184013827010a0011870104720b002b1c1019140b010f1015020b0101057137000002131b8901470a0007002204440a0111290101010c030a020b032504410a012a130c040a0410060a042e112f0a000b0211300c020a040a000b02118e010c020a042e110d0c050e050a02119b010a040a000a021147010a042e0a001143110f04390b04010b010b000b0212083838020b040f1b0b010b000b02120938390538060600000000000000110727061b000000000000001107274c0000008a013c0a00114411590c030b010f1c0c040a042e0a02383a031d0a000a02115e0c050b000a02116f0c060b040b020a050b060b050b031211383b020b00010b040b02383c0c070a07101d140a0323032a053a0a071013140a070f111532000000000000000000000000000000000a070f12150a070f1d0c080b030b08150b0702500000008b012f0b00114411590c030b010f1e0c040a042e0a02383d03160b040a020a020b030c050b020b051220383e020b040b02383f0c060a06100e140a03230321052d0a06100d140a060f0c150a060f0e0c070b030b07150b06029d010104050d13151b1c8d014f0a0052013800044a0a010610270000000000002504450b0011050c020a0211230c030a03116d06e803000000000000160a012604420a03119e0111890126043f0a0311040a03291c04330a032a1c0c040a040f190c050a010b05150a0311590b040f18150b030b020b01120e3840020a032b1310171196010c060e060a010a031159121c2d1c052d0615000000000000001141270614000000000000001107270b00010605000000000000001107270b0001061c000000000000001108278f010000011b8e013e0b012a1b0c040a000a040b0311500c050a05100c140c010b05100d140c030a000a040a01114c0c060a061011140a02170a060f11150b010a0321042e0b00010b04010a061013140b02170b060f1315020b06010b000b040b03114c0c060a061013140b02170b060f1315052d91010000011b8f01160b012a1b0c040a000a040b03114f0c010b000b040b01114c0c050a051012140b02170b050f121502450000011b8e013e0b012a1b0c040a000a040b0311500c050a05100c140c010b05100d140c030a000a040a01114c0c060a061011140a02160a060f11150a030b0121042e0b00010b04010a061013140b02160b060f1315020b06010b000b040b03114c0c060a061013140b02160b060f1315052d480000011b8f01160b012a1b0c040a000a040b03114f0c010b000b040b01114c0c050a051012140b02160b050f121502060000011b910189010a020600000000000000002104070b0001020a002e11440c030a002e0a0111690c040486010e041015140a00100710151423048201080c050b0503210b0001020e041015140a00100710151421032b05320a002e112f0a010b02115a0c020a000a010b020a0411310c020a002e110d0c060e060c070a031156047e0a0311290c080101010e041015140a00100710151421035105550b080a02170c080a070a0811320a070a02119f010a070b08119b010b070a010a02111c0a03112901010a000f0f15110f0c09010b0904760b00010b030b010b02120a3841020b000f1f0b030b010b02120b384205750a070a02119f01055e0a0311560c05051c090c05051c1b051b011b001b041307150013001301130814000d001303200020012002130513061100110111021b061d00130213041c011c00130b13091b0311031b02130a1201120000",
    "abi": {
      "address": "0x1",
      "name": "delegation_pool",
      "friends": [],
      "exposed_functions": [
        {
          "name": "partial_governance_voting_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "withdraw",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "create_proposal",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>",
            "bool"
          ],
          "return": []
        },
        {
          "name": "vote",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64",
            "u64",
            "bool"
          ],
          "return": []
        },
        {
          "name": "add_stake",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "get_owned_pool_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_stake",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "u64",
            "u64",
            "u64"
          ]
        },
        {
          "name": "reactivate_stake",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "set_delegated_voter",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "unlock",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "multiply_then_divide",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "allowlist_delegator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "allowlisting_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "beneficiary_for_operator",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "calculate_and_update_delegator_voter",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "calculate_and_update_remaining_voting_power",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "calculate_and_update_voter_total_voting_power",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "calculate_and_update_voting_delegation",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "address",
            "address",
            "u64"
          ]
        },
        {
          "name": "can_withdraw_pending_inactive",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "delegate_voting_power",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "delegation_pool_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "delegator_allowlisted",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "disable_delegators_allowlisting",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "enable_delegators_allowlisting",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "enable_partial_governance_voting",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "evict_delegator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "get_add_stake_fee",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_delegation_pool_stake",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64",
            "u64",
            "u64",
            "u64"
          ]
        },
        {
          "name": "get_delegators_allowlist",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "vector<address>"
          ]
        },
        {
          "name": "get_expected_stake_pool_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "vector<u8>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_pending_withdrawal",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "bool",
            "u64"
          ]
        },
        {
          "name": "grant_delegation_pool_management_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "grant_stake_management_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize_delegation_pool",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "operator_commission_percentage",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "is_next_commission_percentage_effective",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "min_remaining_secs_for_commission_change",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "observed_lockup_cycle",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "operator_commission_percentage_next_lockup_cycle",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "owner_cap_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "remove_delegator_from_allowlist",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_beneficiary_for_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "shareholders_count_active_pool",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "synchronize_delegation_pool",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "update_commission_percentage",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "CreateProposal",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "delegation_pool",
              "type": "address"
            }
          ]
        },
        {
          "name": "CreateProposalEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "delegation_pool",
              "type": "address"
            }
          ]
        },
        {
          "name": "Vote",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "delegation_pool",
              "type": "address"
            },
            {
              "name": "num_votes",
              "type": "u64"
            },
            {
              "name": "should_pass",
              "type": "bool"
            }
          ]
        },
        {
          "name": "VoteEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "delegation_pool",
              "type": "address"
            },
            {
              "name": "num_votes",
              "type": "u64"
            },
            {
              "name": "should_pass",
              "type": "bool"
            }
          ]
        },
        {
          "name": "AddStake",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            },
            {
              "name": "amount_added",
              "type": "u64"
            },
            {
              "name": "add_stake_fee",
              "type": "u64"
            }
          ]
        },
        {
          "name": "AddStakeEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            },
            {
              "name": "amount_added",
              "type": "u64"
            },
            {
              "name": "add_stake_fee",
              "type": "u64"
            }
          ]
        },
        {
          "name": "ReactivateStake",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            },
            {
              "name": "amount_reactivated",
              "type": "u64"
            }
          ]
        },
        {
          "name": "ReactivateStakeEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            },
            {
              "name": "amount_reactivated",
              "type": "u64"
            }
          ]
        },
        {
          "name": "UnlockStake",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            },
            {
              "name": "amount_unlocked",
              "type": "u64"
            }
          ]
        },
        {
          "name": "UnlockStakeEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            },
            {
              "name": "amount_unlocked",
              "type": "u64"
            }
          ]
        },
        {
          "name": "WithdrawStake",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            },
            {
              "name": "amount_withdrawn",
              "type": "u64"
            }
          ]
        },
        {
          "name": "WithdrawStakeEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            },
            {
              "name": "amount_withdrawn",
              "type": "u64"
            }
          ]
        },
        {
          "name": "AllowlistDelegator",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "BeneficiaryForOperator",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "beneficiary_for_operator",
              "type": "address"
            }
          ]
        },
        {
          "name": "CommissionPercentageChange",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "owner",
              "type": "address"
            },
            {
              "name": "commission_percentage_next_lockup_cycle",
              "type": "u64"
            }
          ]
        },
        {
          "name": "DelegateVotingPower",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator",
              "type": "address"
            },
            {
              "name": "voter",
              "type": "address"
            }
          ]
        },
        {
          "name": "DelegateVotingPowerEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator",
              "type": "address"
            },
            {
              "name": "voter",
              "type": "address"
            }
          ]
        },
        {
          "name": "DelegatedVotes",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "active_shares",
              "type": "u128"
            },
            {
              "name": "pending_inactive_shares",
              "type": "u128"
            },
            {
              "name": "active_shares_next_lockup",
              "type": "u128"
            },
            {
              "name": "last_locked_until_secs",
              "type": "u64"
            }
          ]
        },
        {
          "name": "DelegationPermission",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": []
        },
        {
          "name": "DelegationPool",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "active_shares",
              "type": "0x1::pool_u64_unbound::Pool"
            },
            {
              "name": "observed_lockup_cycle",
              "type": "0x1::delegation_pool::ObservedLockupCycle"
            },
            {
              "name": "inactive_shares",
              "type": "0x1::table::Table<0x1::delegation_pool::ObservedLockupCycle, 0x1::pool_u64_unbound::Pool>"
            },
            {
              "name": "pending_withdrawals",
              "type": "0x1::table::Table<address, 0x1::delegation_pool::ObservedLockupCycle>"
            },
            {
              "name": "stake_pool_signer_cap",
              "type": "0x1::account::SignerCapability"
            },
            {
              "name": "total_coins_inactive",
              "type": "u64"
            },
            {
              "name": "operator_commission_percentage",
              "type": "u64"
            },
            {
              "name": "add_stake_events",
              "type": "0x1::event::EventHandle<0x1::delegation_pool::AddStakeEvent>"
            },
            {
              "name": "reactivate_stake_events",
              "type": "0x1::event::EventHandle<0x1::delegation_pool::ReactivateStakeEvent>"
            },
            {
              "name": "unlock_stake_events",
              "type": "0x1::event::EventHandle<0x1::delegation_pool::UnlockStakeEvent>"
            },
            {
              "name": "withdraw_stake_events",
              "type": "0x1::event::EventHandle<0x1::delegation_pool::WithdrawStakeEvent>"
            },
            {
              "name": "distribute_commission_events",
              "type": "0x1::event::EventHandle<0x1::delegation_pool::DistributeCommissionEvent>"
            }
          ]
        },
        {
          "name": "DelegationPoolAllowlisting",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "allowlist",
              "type": "0x1::smart_table::SmartTable<address, bool>"
            }
          ]
        },
        {
          "name": "DelegationPoolOwnership",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "DisableDelegatorsAllowlisting",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "DistributeCommission",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "beneficiary",
              "type": "address"
            },
            {
              "name": "commission_active",
              "type": "u64"
            },
            {
              "name": "commission_pending_inactive",
              "type": "u64"
            }
          ]
        },
        {
          "name": "DistributeCommissionEvent",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "commission_active",
              "type": "u64"
            },
            {
              "name": "commission_pending_inactive",
              "type": "u64"
            }
          ]
        },
        {
          "name": "EnableDelegatorsAllowlisting",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "EvictDelegator",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "GovernanceRecords",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "votes",
              "type": "0x1::smart_table::SmartTable<0x1::delegation_pool::VotingRecordKey, u64>"
            },
            {
              "name": "votes_per_proposal",
              "type": "0x1::smart_table::SmartTable<u64, u64>"
            },
            {
              "name": "vote_delegation",
              "type": "0x1::smart_table::SmartTable<address, 0x1::delegation_pool::VoteDelegation>"
            },
            {
              "name": "delegated_votes",
              "type": "0x1::smart_table::SmartTable<address, 0x1::delegation_pool::DelegatedVotes>"
            },
            {
              "name": "vote_events",
              "type": "0x1::event::EventHandle<0x1::delegation_pool::VoteEvent>"
            },
            {
              "name": "create_proposal_events",
              "type": "0x1::event::EventHandle<0x1::delegation_pool::CreateProposalEvent>"
            },
            {
              "name": "delegate_voting_power_events",
              "type": "0x1::event::EventHandle<0x1::delegation_pool::DelegateVotingPowerEvent>"
            }
          ]
        },
        {
          "name": "NextCommissionPercentage",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "commission_percentage_next_lockup_cycle",
              "type": "u64"
            },
            {
              "name": "effective_after_secs",
              "type": "u64"
            }
          ]
        },
        {
          "name": "ObservedLockupCycle",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "index",
              "type": "u64"
            }
          ]
        },
        {
          "name": "RemoveDelegatorFromAllowlist",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "SetBeneficiaryForOperator",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "old_beneficiary",
              "type": "address"
            },
            {
              "name": "new_beneficiary",
              "type": "address"
            }
          ]
        },
        {
          "name": "VoteDelegation",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "pending_voter",
              "type": "address"
            },
            {
              "name": "last_locked_until_secs",
              "type": "u64"
            }
          ]
        },
        {
          "name": "VotingRecordKey",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "proposal_id",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d0100140214300344a30104e7011a058102e20107e303b908089c0c2006bc0c2210de0ca6030a8410310cb510a2060dd716100fe7160200000004000900170019001d001f00310036003800010f0001030700020807010000000e000000100e00073307000835000008370000093a03010001083b0000083c0000001600010001031800010001041a0103010401041b0104010401001c07010001051e0101000106200008000100210701000100220a01000100230b05000100240c0200010025000100010026000100010427040101060100280e01000100290a010001002a0e010001002b0f010001002c0f010001002d12010001022e1403010001022f141501000100301201000107321318000100341b01000109391d1e0200000102020302020503050d050d02141315131419191c141f1920142101060c000108040101010900010800040804070804080007080002060c0801010501080102060c0800080a08010d030b02010a020d0d0d0e050a020a020a020a020a0a020107080002060c080402060c03010703020800070302060c0b02010a02010a0201060b0201090001060900010201070b02010a02010b02010805010805030b020108050800070b02010a0201060804020806080701060a02010b02010b08010900010b08010806020809080a010b08010809080b02010b080108060b02010b080108090b02010b080108090b02010b080108090301030b02010b080108060f6b65796c6573735f6163636f756e740d436f6e66696775726174696f6e116f766572726964655f6175645f76616c7306537472696e6706737472696e67166d61785f7369676e6174757265735f7065725f74786e146d61785f6578705f686f72697a6f6e5f7365637316747261696e696e675f776865656c735f7075626b6579064f7074696f6e066f7074696f6e166d61785f636f6d6d697465645f65706b5f6279746573116d61785f6973735f76616c5f6279746573156d61785f65787472615f6669656c645f6279746573186d61785f6a77745f6865616465725f6236345f62797465730547726f75700b64756d6d795f6669656c641647726f74683136566572696669636174696f6e4b657908616c7068615f673107626574615f67320867616d6d615f67320864656c74615f67320c67616d6d615f6162635f67310c6f6e5f6e65775f65706f63681073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b0d636f6e6669675f6275666665720a646f65735f65786973740a657874726163745f7632106164645f6f766572726964655f6175640c636861696e5f7374617475730e6173736572745f67656e65736973067369676e65720a616464726573735f6f661f6164645f6f766572726964655f6175645f666f725f6e6578745f65706f6368207365745f636f6e66696775726174696f6e5f666f725f6e6578745f65706f6368116e65775f636f6e66696775726174696f6e1c6e65775f67726f746831365f766572696669636174696f6e5f6b65791872656d6f76655f616c6c5f6f766572726964655f617564732772656d6f76655f616c6c5f6f766572726964655f617564735f666f725f6e6578745f65706f6368067570736572742b7365745f67726f746831365f766572696669636174696f6e5f6b65795f666f725f6e6578745f65706f6368147570646174655f636f6e66696775726174696f6e1f7570646174655f67726f746831365f766572696669636174696f6e5f6b6579167570646174655f6d61785f6578705f686f72697a6f6e257570646174655f6d61785f6578705f686f72697a6f6e5f666f725f6e6578745f65706f6368167570646174655f747261696e696e675f776865656c730769735f736f6d6506626f72726f77257570646174655f747261696e696e675f776865656c735f666f725f6e6578745f65706f63680765643235353139236e65775f76616c6964617465645f7075626c69635f6b65795f66726f6d5f62797465731256616c6964617465645075626c69634b65791376616c69646174655f67726f746831365f766b0247310d626e3235345f616c67656272610d466f726d61744731436f6d70720e63727970746f5f616c67656272610b646573657269616c697a6507456c656d656e740247320d466f726d61744732436f6d7072187265636f6e66696775726174696f6e5f776974685f646b6700000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631f2020301000000000000001f455f545241494e494e475f574845454c535f504b5f57524f4e475f53495a453154686520747261696e696e6720776865656c7320504b206e6565647320746f206265203332206279746573206c6f6e672e020000000000000020455f494e56414c49445f424e3235345f47315f53455249414c495a4154494f4e27412073657269616c697a656420424e32353420473120706f696e7420697320696e76616c69642e030000000000000020455f494e56414c49445f424e3235345f47325f53455249414c495a4154494f4e27412073657269616c697a656420424e32353420473220706f696e7420697320696e76616c69642e030547726f757001020106676c6f62616c0d436f6e66696775726174696f6e0103011b3078313a3a6b65796c6573735f6163636f756e743a3a47726f75701647726f74683136566572696669636174696f6e4b65790103011b3078313a3a6b65796c6573735f6163636f756e743a3a47726f757000000208020a0801050d0603070b02010a020a0d0b0d0c0d0d0e0302010f01040205110a02120a02130a02140a02150a0a02000300020002062b0a00110138000305051038010c0107002902042707002a020c020b010b02153802042438030c030700290004200b000107002a000c040b030b0415020b000b032d00051f0b0001051f0a000b012d0205100401000100010a0a00110111050b0011062a000f000b01440902070100010005140a0011013802040e38030c020d020f000b0144090b000b021108020a0011062b00140c02050609010000010a0b000b010b020b030b040b050b060b071200020a01000001070b000b010b020b030b041202020b010001000d0c0a00110111050b0011062a000c01400900000000000000000b010f0015020c0100010005140a0011013802040e38030c01400900000000000000000d010f00150b000b011108020a0011062b00140c0105060801000001050b0011010b013804020e01000001050b0011010b013805020f01000001070a00110111050b000b012d00021001000001070a00110111050b000b012d02021101000100100c0a00110111050b0011062a000f010c020b010b021502120100010011160a0011013802041038030c020d020f010c030b010b03150b000b021108020a0011062b00140c0205061301000100171b0a00110111050e0138060307050e0e0138074116062000000000000000210417050e0b0011062a000f020c020b010b0215020b00010601000000000000002716010001001a270a0011010e0138060306050f0e0138071411170c020e0238080423050f3802041d38030c030d030f020c040b010b04150b000b031108020a0011062b00140c0305130b0001060100000000000000271800000022550a00100338090c010e01380a04510a001004380b0c020e02380c044d0a001005380b0c030e03380c04490a001006380b0c040e04380c04450600000000000000000c05090c060a00100741130c070a06043f0b05060100000000000000160c050a050a0723043c0a0010070a05421338090c080e08380a043805240b0001060200000000000000270b000102080c06052a0b0001053e0b0001060300000000000000270b0001060300000000000000270b0001060300000000000000270b00010602000000000000002700000002000302000201020202030204003d00",
    "abi": {
      "address": "0x1",
      "name": "keyless_account",
      "friends": [
        "0x1::reconfiguration_with_dkg"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "add_override_aud",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "add_override_aud_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "new_configuration",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::string::String>",
            "u16",
            "u64",
            "0x1::option::Option<vector<u8>>",
            "u16",
            "u16",
            "u16",
            "u32"
          ],
          "return": [
            "0x1::keyless_account::Configuration"
          ]
        },
        {
          "name": "new_groth16_verification_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>",
            "vector<vector<u8>>"
          ],
          "return": [
            "0x1::keyless_account::Groth16VerificationKey"
          ]
        },
        {
          "name": "remove_all_override_auds",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "remove_all_override_auds_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "set_configuration_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::keyless_account::Configuration"
          ],
          "return": []
        },
        {
          "name": "set_groth16_verification_key_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::keyless_account::Groth16VerificationKey"
          ],
          "return": []
        },
        {
          "name": "update_configuration",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::keyless_account::Configuration"
          ],
          "return": []
        },
        {
          "name": "update_groth16_verification_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::keyless_account::Groth16VerificationKey"
          ],
          "return": []
        },
        {
          "name": "update_max_exp_horizon",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "update_max_exp_horizon_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "update_training_wheels",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::option::Option<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "update_training_wheels_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::option::Option<vector<u8>>"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Configuration",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "override_aud_vals",
              "type": "vector<0x1::string::String>"
            },
            {
              "name": "max_signatures_per_txn",
              "type": "u16"
            },
            {
              "name": "max_exp_horizon_secs",
              "type": "u64"
            },
            {
              "name": "training_wheels_pubkey",
              "type": "0x1::option::Option<vector<u8>>"
            },
            {
              "name": "max_commited_epk_bytes",
              "type": "u16"
            },
            {
              "name": "max_iss_val_bytes",
              "type": "u16"
            },
            {
              "name": "max_extra_field_bytes",
              "type": "u16"
            },
            {
              "name": "max_jwt_header_b64_bytes",
              "type": "u32"
            }
          ]
        },
        {
          "name": "Group",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Groth16VerificationKey",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "alpha_g1",
              "type": "vector<u8>"
            },
            {
              "name": "beta_g2",
              "type": "vector<u8>"
            },
            {
              "name": "gamma_g2",
              "type": "vector<u8>"
            },
            {
              "name": "delta_g2",
              "type": "vector<u8>"
            },
            {
              "name": "gamma_abc_g1",
              "type": "vector<vector<u8>>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d010018021816032e870104b5010605bb013007eb01e20508cd072006ed0722108f08cd030adc0b1c0cf80bd8030dd00f060fd60f1000000006000c000e001000130019001f0021002300250027000108000105040106010007060000080800000a0600000b00010001020d00010001030f0002000104110203000104120005010601051403030001001501030001001600010001001701060001001801010001061a01060001011b0801010601011c0901010601001d00010001000301030001001e010100010720010600010822010300010924010100010a26010100010b280101000109290101000104040b070c0401060c0001050103010802010b01010900010101080401090002070b01010900090002070800010501010708000307030f7265636f6e66696775726174696f6e0d436f6e66696775726174696f6e0565706f6368196c6173745f7265636f6e66696775726174696f6e5f74696d65066576656e74730b4576656e7448616e646c65056576656e740d4e657745706f63684576656e741644697361626c655265636f6e66696775726174696f6e0b64756d6d795f6669656c64084e657745706f63680a696e697469616c697a651073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b067369676e65720a616464726573735f6f66076163636f756e741a6765745f677569645f6e6578745f6372656174696f6e5f6e756d106e65775f6576656e745f68616e646c65056572726f720d696e76616c69645f73746174650d63757272656e745f65706f63681764697361626c655f7265636f6e66696775726174696f6e177265636f6e66696775726174696f6e5f656e61626c656422656d69745f67656e657369735f7265636f6e66696775726174696f6e5f6576656e740866656174757265731e6d6f64756c655f6576656e745f6d6967726174696f6e5f656e61626c656404656d69740a656d69745f6576656e7416656e61626c655f7265636f6e66696775726174696f6e0b7265636f6e6669677572650c636861696e5f7374617475730a69735f67656e657369730974696d657374616d70106e6f775f6d6963726f7365636f6e6473157265636f6e66696775726174696f6e5f7374617465116f6e5f7265636f6e6669675f7374617274057374616b650c6f6e5f6e65775f65706f63680b73746f726167655f6761730b6f6e5f7265636f6e666967126f6e5f7265636f6e6669675f66696e6973680776657273696f6e0c6761735f7363686564756c6510657865637574696f6e5f636f6e66696710636f6e73656e7375735f636f6e666967187265636f6e66696775726174696f6e5f776974685f646b67106170746f735f676f7665726e616e636505626c6f636b0767656e6573697300000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f763199030501000000000000000e45434f4e46494755524154494f4e335468652060436f6e66696775726174696f6e60207265736f7572636520697320696e20616e20696e76616c696420737461746502000000000000000745434f4e464947334120605265636f6e66696775726174696f6e60207265736f7572636520697320696e20616e20696e76616c6964207374617465030000000000000012454d4f444946595f4341504142494c495459444120604d6f64696679436f6e6669674361706162696c6974796020697320696e206120646966666572656e74207374617465207468616e2077617320657870656374656404000000000000001345494e56414c49445f424c4f434b5f54494d4526416e20696e76616c696420626c6f636b2074696d652077617320656e636f756e74657265642e05000000000000001745494e56414c49445f475549445f464f525f4556454e5426416e20696e76616c696420626c6f636b2074696d652077617320656e636f756e74657265642e02084e657745706f63680104000d4e657745706f63684576656e740104000000020302030303040b010108020302010901040201020302020102030003000001150a0011010a00110211030602000000000000002104100a000600000000000000000600000000000000000b00380012002d00020b00010605000000000000001105270601000100010507002b001000140207000000010e0a001101110804090b000912012d01020b000106010000000000000011052709000001000a2d07002a000c000a0010001406000000000000000021042a0a00100114060000000000000000210c010b0104250601000000000000000a000f0015110a0318051d0a00100014120238010a000f020b0010001412033802020b0001060100000000000000110527090c01050f0d00000101010f0a0011011108030a0b0011022c01130101020b00010601000000000000001105270e01000100010507002b00100114020800000001040700290120020f030001000b501110044b080c000b000447080c010b01040b0207002a000c0211110c030a030a021001142104190b0201021112111311140a030a021001142404420a020f010c040b030b0415280a02100014060100000000000000160a020f0015110a033405390a02100014120238010a020f020b02100014120338021115020b02010604000000000000001105271108200c0105081111060000000000000000210c000504000000010002002a002b002c002d002e002f0030003100",
    "abi": {
      "address": "0x1",
      "name": "reconfiguration",
      "friends": [
        "0x1::version",
        "0x1::gas_schedule",
        "0x1::execution_config",
        "0x1::consensus_config",
        "0x1::reconfiguration_with_dkg",
        "0x1::aptos_governance",
        "0x1::block",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "current_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "last_reconfiguration_time",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "reconfigure",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Configuration",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "epoch",
              "type": "u64"
            },
            {
              "name": "last_reconfiguration_time",
              "type": "u64"
            },
            {
              "name": "events",
              "type": "0x1::event::EventHandle<0x1::reconfiguration::NewEpochEvent>"
            }
          ]
        },
        {
          "name": "DisableReconfiguration",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "NewEpoch",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "epoch",
              "type": "u64"
            }
          ]
        },
        {
          "name": "NewEpochEvent",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "epoch",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d01001602163e0354840104d8010c05e4017a07de02dd0708bb0a2006db0a2210fd0a86030a830e350cb80e9c020dd410060fda1008000000040006000d0013001c001f00210028002c002f000108000103050100010205080000070800010905010001000a0800030c0600000e08000110040100010412070100000015060001240000013404010001001b00010001051d02010001001e0301000106200401000107220105000101230708010001012508010001012609010100010027020100010829020b0001012a0c0d010001002b0e010001092d0f01010601002e100100010a30111100010031020100010032030100010133121301000101351401010001003616010001003710010001050607060a060c0e1106120602060c0b040108020001060c020503030608060503010101080201060b01010900020806080b030503060b0101090003060b01010802080b08060105010b0101090001080601080a01090002060c0201030203060b04010900010b0c01090002050b0c01090002060b040108020b0c01080202060c0b010108020f7472616e73616374696f6e5f666565154170746f73436f696e4361706162696c6974696573086275726e5f6361700e4275726e4361706162696c69747904636f696e094170746f73436f696e0a6170746f735f636f696e174170746f73436f696e4d696e744361706162696c697479086d696e745f6361700e4d696e744361706162696c697479174170746f7346414275726e4361706162696c6974696573086275726e5f726566074275726e5265660e66756e6769626c655f617373657415436f6c6c656374656446656573506572426c6f636b06616d6f756e7410416767726567617461626c65436f696e0870726f706f736572064f7074696f6e066f7074696f6e0f6275726e5f70657263656e746167650c46656553746174656d656e7416746f74616c5f6368617267655f6761735f756e69747313657865637574696f6e5f6761735f756e6974730c696f5f6761735f756e6974731173746f726167655f6665655f6f637461731873746f726167655f6665655f726566756e645f6f637461731973746f72655f6170746f735f636f696e5f6d696e745f6361701073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b086275726e5f6665650d6170746f735f6163636f756e74206275726e5f66726f6d5f66756e6769626c655f73746f72655f666f725f6761730866656174757265732a6f7065726174696f6e735f64656661756c745f746f5f66615f6170745f73746f72655f656e61626c6564136765745f7061697265645f6275726e5f7265660e4275726e526566526563656970741672657475726e5f7061697265645f6275726e5f726566116275726e5f66726f6d5f666f725f6761731c636f6e766572745f746f5f6170746f735f66615f6275726e5f726566067369676e65720a616464726573735f6f6620636f6e766572745f616e645f74616b655f7061697265645f6275726e5f72656612656d69745f6665655f73746174656d656e74056576656e7404656d69742a696e697469616c697a655f6665655f636f6c6c656374696f6e5f616e645f646973747269627574696f6e056572726f720f6e6f745f696d706c656d656e74656419696e697469616c697a655f73746f726167655f726566756e640f6d696e745f616e645f726566756e64046d696e7404436f696e136465706f7369745f666f725f6761735f6665651973746f72655f6170746f735f636f696e5f6275726e5f63617017757067726164655f6275726e5f70657263656e746167650f7265636f6e66696775726174696f6e05626c6f636b167472616e73616374696f6e5f76616c69646174696f6e0767656e6573697300000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631d2020401000000000000001845414c52454144595f434f4c4c454354494e475f464545537647617320666565732061726520616c7265616479206265696e6720636f6c6c656374656420616e64207468652073747275637420686f6c64696e670a20696e666f726d6174696f6e2061626f757420636f6c6c656374656420616d6f756e747320697320616c7265616479207075626c69736865642e03000000000000001845494e56414c49445f4255524e5f50455243454e544147452d546865206275726e2070657263656e74616765206973206f7574206f662072616e6765205b302c203130305d2e040000000000000014454e4f5f4c4f4e4745525f535550504f52544544144e6f206c6f6e67657220737570706f727465642e05000000000000001c4546415f4741535f4348415247494e475f4e4f545f454e41424c454400010c46656553746174656d656e7401040000000201020b01010802030201080b040108020502010b08060702030f0b08010802110b09010514020a020516031703180319031a030003000001070a0011010b000b0112012d01020203000200020a2107002902040a07002b0210000b000b0111030207002b0010010c021104041c0b0238000c030c040e040b000b0111030b040b03110605090b000b010b023801050908010401000d131104040f0a0011010a0011092c00130038020c010b000b0112022d02020b0001060500000000000000270b00000001030b003803020d01000001050604000000000000000b0001110e270f01000001050604000000000000000b0001110e271003000101150c07002b0110020c020b010b0238040c030b000b03380502130300000d110a0011011104040c0b0138020c020b000b0212022d02020b000b0112002d00050b1401000001050604000000000000000b0001110e2702000000010000380039003a003b00",
    "abi": {
      "address": "0x1",
      "name": "transaction_fee",
      "friends": [
        "0x1::reconfiguration",
        "0x1::block",
        "0x1::transaction_validation",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "store_aptos_coin_mint_cap",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>"
          ],
          "return": []
        },
        {
          "name": "burn_fee",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "convert_to_aptos_fa_burn_ref",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize_fee_collection_and_distribution",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u8"
          ],
          "return": []
        },
        {
          "name": "initialize_storage_refund",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "mint_and_refund",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "store_aptos_coin_burn_cap",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::coin::BurnCapability<0x1::aptos_coin::AptosCoin>"
          ],
          "return": []
        },
        {
          "name": "upgrade_burn_percentage",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u8"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "AptosCoinCapabilities",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "burn_cap",
              "type": "0x1::coin::BurnCapability<0x1::aptos_coin::AptosCoin>"
            }
          ]
        },
        {
          "name": "AptosCoinMintCapability",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "mint_cap",
              "type": "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>"
            }
          ]
        },
        {
          "name": "AptosFABurnCapabilities",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "burn_ref",
              "type": "0x1::fungible_asset::BurnRef"
            }
          ]
        },
        {
          "name": "CollectedFeesPerBlock",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "amount",
              "type": "0x1::coin::AggregatableCoin<0x1::aptos_coin::AptosCoin>"
            },
            {
              "name": "proposer",
              "type": "0x1::option::Option<address>"
            },
            {
              "name": "burn_percentage",
              "type": "u8"
            }
          ]
        },
        {
          "name": "FeeStatement",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "total_charge_gas_units",
              "type": "u64"
            },
            {
              "name": "execution_gas_units",
              "type": "u64"
            },
            {
              "name": "io_gas_units",
              "type": "u64"
            },
            {
              "name": "storage_fee_octas",
              "type": "u64"
            },
            {
              "name": "storage_fee_refund_octas",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c01003302337003a301f1040494065205e606ea0307d00aa91208f91c2006991d4810e11ddb0c0abc2aa6010ce22b8f0e0df1391400000008000a001a00230029002c002e00310032003900440048004c004e0050005900600064006b006f00700073007800960100010600010707020000000002090700000b0600000c060000100600001108000013080000170800031904010601001c0600001e070000200800042206000024070000250600002608000528040203010001002a0800062b040200000000083006000b460b00146e0800167207010000002d00010001072f02010001093302010104010034020100010435020501060105360109020304010137010b0204040100380c0100010a3a0e01010701003b0f010001003c10010001003d10110001003e12130001093e1415010401003f110100010040161300010041170100010042180100010043161100010b45011900010b471a1b00010c49161c00010c4a16110001004b020100010d4d011b00010e4f011b00010f51010100010f5202010001005311010001095414110104010955141e01040101561f1b0204040101572021020404010158220102040401105a11110001005b11010001005c14010001005d01010001095e14110104010c5f161100011161011100011062111100010063240100011265250101000100662701000100672829000102681e2a000102692b1100010a6a2e1b010701136c021600010c6d1616000115710130010001167401320100011675331b0100011676333401000116771532010001083b01030001093c35110104011779011b0001037a1501010601037b3701010601107c11110001007d02010001007e02010001007f391300010080010131000100810114110001008201141b00010683013b3c020300010084010111000101761f3c020404010485013f13000107860102010001148701021b00011088011111000100890101110001058a01401b020300010636014202070401008b0118010001098c01141b010401018d01204302040401008e0145130001098f01460101040100900148010001079101160100010092014901000117930149010001009401000100010a9501020100011897014c1100010898010103000109414d010104010699014e210203020102030404040604070508060a080d0d031d031e031f0a200a210a26032b16062c212c300d332f343135313631373139033b363c04443a463e4c084d3a4f03500a5203063e213e3b4a3c065b035c3a3b4f3c0704060c0403030001060c010814010803010b0901090001080a01080502080e01010b11020900090102030a02010b01020900090102060c060c01080b03060c060c090005060c050a020a020a0206060c050a020a020a02010103020305010c020503010900010504060c05030105060c050303010108150106081501010403030303040815030303010a0202060b01020900090106090002070b0102090009010609000107090103070b01020900090109000901030708060a02070a0205060c0a0503030101070a0900040a050a05030504060c0a050301020a020a02010b010208020a02010802010608020208020a0203080208020b010208020a0202060c0900010816010b1701040104010b1701090001060b170109000106090009050509000a0204030b1701040b010208020a020101080002070b0901090009000805060807030b010208020a020b1701040b170104030302060c0502080e0303060b13020900090109000609010106090106030301080e03030205080d0106080d02060b110209000901090001080e010b130209000901020900090101070b0102030a020303050a020305030a02010203060c05080d03060c0a030a0301080f0307080707030704020303050609000503030103070b130209000901090009010108040505030814080e0703106170746f735f676f7665726e616e63650e43726561746550726f706f73616c0870726f706f7365720a7374616b655f706f6f6c0b70726f706f73616c5f69640e657865637574696f6e5f686173681170726f706f73616c5f6d657461646174610953696d706c654d61700a73696d706c655f6d617006537472696e6706737472696e671343726561746550726f706f73616c4576656e7404566f746505766f746572096e756d5f766f7465730b73686f756c645f7061737309566f74654576656e7417417070726f766564457865637574696f6e4861736865730668617368657310476f7665726e616e6365436f6e666967146d696e5f766f74696e675f7468726573686f6c641772657175697265645f70726f706f7365725f7374616b6514766f74696e675f6475726174696f6e5f7365637310476f7665726e616e63654576656e7473166372656174655f70726f706f73616c5f6576656e74730b4576656e7448616e646c65056576656e74147570646174655f636f6e6669675f6576656e747311557064617465436f6e6669674576656e740b766f74655f6576656e747314476f7665726e616e63655065726d697373696f6e0b64756d6d795f6669656c6417476f7665726e616e6365526573706f6e7362696c6974790b7369676e65725f63617073105369676e65724361706162696c697479076163636f756e74095265636f72644b65790c557064617465436f6e6669670d566f74696e675265636f72647305766f746573055461626c65057461626c650f566f74696e675265636f72647356320a536d6172745461626c650b736d6172745f7461626c650a696e697469616c697a651073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b12476f7665726e616e636550726f706f73616c13676f7665726e616e63655f70726f706f73616c06766f74696e6708726567697374657219696e697469616c697a655f7061727469616c5f766f74696e67106e65775f6576656e745f68616e646c65036e657706637265617465106772616e745f7065726d697373696f6e137065726d697373696f6e65645f7369676e657213617574686f72697a655f756e6c696d697465640f6372656174655f70726f706f73616c126372656174655f70726f706f73616c5f7632176372656174655f70726f706f73616c5f76325f696d706c077265736f6c76651472656d6f76655f617070726f7665645f686173680a6765745f7369676e657204766f74650d766f74655f696e7465726e616c106765745f766f74696e675f706f7765720e7374616b696e675f636f6e666967036765740d5374616b696e67436f6e6669671e6765745f616c6c6f775f76616c696461746f725f7365745f6368616e6765057374616b65096765745f7374616b651e6765745f63757272656e745f65706f63685f766f74696e675f706f7765720b7265636f6e66696775726510636f6e73656e7375735f636f6e6669671576616c696461746f725f74786e5f656e61626c65641172616e646f6d6e6573735f636f6e66696707656e61626c6564187265636f6e66696775726174696f6e5f776974685f646b67097472795f73746172740666696e697368186164645f617070726f7665645f7363726970745f68617368126765745f70726f706f73616c5f7374617465126765745f657865637574696f6e5f686173680c636f6e7461696e735f6b65790a626f72726f775f6d757403616464056572726f7210696e76616c69645f617267756d656e741f6164645f617070726f7665645f7363726970745f686173685f7363726970741a6173736572745f70726f706f73616c5f65787069726174696f6e1c6173736572745f766f74696e675f696e697469616c697a6174696f6e1c6765745f70726f706f73616c5f65787069726174696f6e5f736563730f6765745f6c6f636b75705f736563730974696d657374616d700b6e6f775f7365636f6e64730d696e76616c69645f73746174651262617463685f7061727469616c5f766f746506766563746f7207726576657273650a62617463685f766f7465186372656174655f70726f706f73616c5f6d657461646174610475746638066c656e67746817636865636b5f7065726d697373696f6e5f657869737473067369676e65720a616464726573735f6f66136765745f64656c6567617465645f766f746572094170746f73436f696e0a6170746f735f636f696e04636f696e06737570706c79064f7074696f6e066f7074696f6e046e6f6e650769735f736f6d6506626f72726f7704736f6d650866656174757265731e6d6f64756c655f6576656e745f6d6967726174696f6e5f656e61626c656404656d69740a656d69745f6576656e74117065726d697373696f6e5f64656e6965640f666f7263655f656e645f65706f636819666f7263655f656e645f65706f63685f746573745f6f6e6c79176765745f7369676e65725f746573746e65745f6f6e6c79186765745f6d696e5f766f74696e675f7468726573686f6c641a6765745f72656d61696e696e675f766f74696e675f706f776572126861735f656e746972656c795f766f74656413626f72726f775f776974685f64656661756c741b6765745f72657175697265645f70726f706f7365725f7374616b651d6372656174655f7369676e65725f776974685f6361706162696c697479146173736572745f636f72655f7265736f75726365136861735f6d696e745f6361706162696c6974790f756e61757468656e74696361746564186765745f766f74696e675f6475726174696f6e5f7365637308636f6e7461696e730c7061727469616c5f766f74650b69735f7265736f6c7665640672656d6f76651b7265736f6c76655f6d756c74695f737465705f70726f706f73616c137265736f6c76655f70726f706f73616c5f76321073746f72655f7369676e65725f636170196173736572745f6672616d65776f726b5f72657365727665640f746f67676c655f6665617475726573236368616e67655f666561747572655f666c6167735f666f725f6e6578745f65706f6368187570646174655f676f7665726e616e63655f636f6e666967146173736572745f6d61737465725f7369676e6572066d6174683634036d696e156372656174655f656d7074795f70726f706f73616c17626f72726f775f6d75745f776974685f64656661756c740000000000000000000000000000000000000000000000000000000000000001052000000000000000000000000000000000000000000000000000000000000000010a0212116d657461646174615f6c6f636174696f6e0a020e0d6d657461646174615f6861736814636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631a70c0f01000000000000001c45494e53554646494349454e545f50524f504f5345525f5354414b454c54686520737065636966696564207374616b6520706f6f6c20646f6573206e6f7420686176652073756666696369656e74207374616b6520746f2063726561746520612070726f706f73616c020000000000000014454e4f545f44454c4547415445445f564f5445524454686973206163636f756e74206973206e6f74207468652064657369676e6174656420766f746572206f662074686520737065636966696564207374616b6520706f6f6c03000000000000001a45494e53554646494349454e545f5354414b455f4c4f434b55506054686520737065636966696564207374616b6520706f6f6c20646f6573206e6f742068617665206c6f6e6720656e6f7567682072656d61696e696e67206c6f636b757020746f2063726561746520612070726f706f73616c206f7220766f746504000000000000000e45414c52454144595f564f5445444b54686520737065636966696564207374616b6520706f6f6c2068617320616c7265616479206265656e207573656420746f20766f7465206f6e207468652073616d652070726f706f73616c050000000000000010454e4f5f564f54494e475f504f5745523a54686520737065636966696564207374616b6520706f6f6c206d7573742062652070617274206f66207468652076616c696461746f722073657406000000000000001c4550524f504f53414c5f4e4f545f5245534f4c5641424c455f5945543e50726f706f73616c206973206e6f7420726561647920746f206265207265736f6c7665642e2057616974696e67206f6e2074696d65206f7220766f74657308000000000000001a4550524f504f53414c5f4e4f545f5245534f4c5645445f594554265468652070726f706f73616c20686173206e6f74206265656e207265736f6c7665642079657409000000000000001b454d455441444154415f4c4f434154494f4e5f544f4f5f4c4f4e47314d65746164617461206c6f636174696f6e2063616e6e6f74206265206c6f6e676572207468616e203235362063686172730a0000000000000017454d455441444154415f484153485f544f4f5f4c4f4e472d4d6574616461746120686173682063616e6e6f74206265206c6f6e676572207468616e203235362063686172730b000000000000000d45554e415554484f52495a4544304163636f756e74206973206e6f7420617574686f72697a656420746f2063616c6c20746869732066756e6374696f6e2e0c000000000000001645564f54494e475f504f5745525f4f564552464c4f5736546865207374616b6520706f6f6c206973207573696e6720766f74696e6720706f776572206d6f7265207468616e206974206861732e0d000000000000001f455041525449414c5f564f54494e475f4e4f545f494e495449414c495a4544385061727469616c20766f74696e672066656174757265206861736e2774206265656e2070726f7065726c7920696e697469616c697a65642e0e000000000000001c454e4f545f5041525449414c5f564f54494e475f50524f504f53414c3e5468652070726f706f73616c20696e2074686520617267756d656e74206973206e6f742061207061727469616c20766f74696e672070726f706f73616c2e0f00000000000000114550524f504f53414c5f45585049524544195468652070726f706f73616c2068617320657870697265642e100000000000000019454e4f5f474f5645524e414e43455f5045524d495353494f4e4143757272656e74207065726d697373696f6e6564207369676e65722063616e6e6f7420706572666f726d20676f7665726e616e6365206f7065726174696f6e732e0304566f74650104000c557064617465436f6e6669670104000e43726561746550726f706f73616c01040006106765745f766f74696e675f706f776572010100126861735f656e746972656c795f766f746564010100186765745f6d696e5f766f74696e675f7468726573686f6c64010100186765745f766f74696e675f6475726174696f6e5f736563730101001a6765745f72656d61696e696e675f766f74696e675f706f7765720101001b6765745f72657175697265645f70726f706f7365725f7374616b65010100000205020503050403050a02060b010208020a02030205020503050403050a02060b010208020a0204020504030d0503050e030f0105020504030d0503050e030f01060201120b0102030a02070203140415031603080203180b090108031b0b0901080a1d0b090108050b02011f010c0201210b010205080d0e0202030504030f02031404150316030a0203140415031603100201270b1102080e01120201270b1302080e0300000000011e0a0011010a0038000a0011030a000b010b020b0312052d050a000a0038010a0038020a00380312062d060a003804120c2d0c0b00380512042d04020701000001060b000b0109120738060209010402050601080b000b010b020b030b0409110a020a010402050601090b000b010b020b030b040b05110b01020c0100020408010907000a003807010b00110e0b01110f021001040404060c0d01070b000b010b0206ffffffffffffffff0b03111102120100001d1511130c010e01111404110b0011150c020c03010b03160b02160c040b04020b0011160c04050f170104001b120a0011011118040f11190c010b01040c0b0001111a020b00111b050b090c0105061c01000104232607002a040c0107000a00380806010000000000000021042107000a0038090c020a0110000e00380a041b0b010f000e00380b0c030b020b0315020b010f000b000b02380c051a0b0101060600000000000000112227230104010401030b00111c02240100000115112507000b01380d0c010a010b00112725041211280b0125040f02060f000000000000001122270603000000000000001122272500000001070700290d040402060d000000000000001129272a01040404060c0d26200b010c050d05380e0b050c060e0641160c070a0706000000000000000024041b0d0645160c080a000b080a020a030a0411110b07060100000000000000170c0705090b00010b0646160000000000000000022c01040404060c0d26200b010c040d04380e0b040c050e0541160c060a0606000000000000000024041b0d0545160c070a000b070a0206ffffffffffffffff0a0311110b06060100000000000000170c0605090b00010b0546160000000000000000022d0000002d240a00112e0c020e02112f0600010000000000002504210a01112e0c030e03112f06000100000000000025041e380f0c040d040701112e0b0038100d040702112e0b0138100b0402060a000000000000001122270609000000000000001122270b010002050638700a000912073811046b0b0011310c060a0111320a0621046807002b050c070a0111120a0710011426046311280a07100214160c080a0111270a0826045e0b030b04112d0c0938120c0a38130c0b0e0a3814032e05370e0a38151432020000000000000000000000000000001a32010000000000000000000000000000001638160c0b0a06070011380a020b071003140b080b0b0a090b0538170c0c113a04510a0c0c0d0b060b010b0d0b020b09120038180b0c0207002a060f040a0c0c0d0b060b010b0d0b020b0912013819054f0b07010603000000000000001122270b07010601000000000000001122270602000000000000001122270b0001061000000000000000113d273e01040001050a0011010b00111b023f0104010813090b00070011400c010e0111010e01111b024101000105010507002b0510031402420100020c0d3d30112507000a01380d0c020a0011270c030a020b0324042b080c040b040412060000000000000000020a000a0111430418060000000000000000020a000b0112090c0507002b0d10050b050600000000000000000c060e06381a140c070b0011120b07170211280b02240c04050e4501000105010507002b05100114020f00000108010707002b0810060e00381b1147024001000108010b0a0011480b00114904080b01110f02060b00000000000000114a274b01000105010507002b0510021402430100010c410a0b000b0112090c0207002b0c10070b02381c020301000001070a0011010b00381d120d2d0d024e01040404060c0d01070b000b010b020b030b041111020e01000104441907000a00381e041607002a040f000c010a012e0e00380a04130b010e00381f0101020b01010512060800000000000000112227510100020408011107000a000a0238200e02414706000000000000000021040e0b00110e0b01110f020b00111c050b530100010801150a0011010a0111540700290803120b00382112082d0807002a080f060b010b023822020b0001050b5501000001090a0011010a000b010b0211560b001117025701000205064b280b00110107002a050c040a040f020c050a030b05150a040f030c060a010b06150b040f010c050a020b0515113a041f0b010b020b03120a38230207002a060f080b010b020b03120b3824051e1100000404060c0d50580a0011580b0011310c050a0111320a052104550a010a0211240a010a0211420c060b030b0611590c030a03060000000000000000240452115a0c070e0707000a020a030a0438250a010a0212090c0807002a0d0f050b0806000000000000000038260a030c060c090a09140b06160b0915113a04470a020b050b010b030b041202382707000a02380806010000000000000021034405460b02111c0207002a060f090a020b050b010b030b0412033828053d060500000000000000112227060200000000000000112227040005010502050006000d0008000c000601060200",
    "abi": {
      "address": "0x1",
      "name": "aptos_governance",
      "friends": [],
      "exposed_functions": [
        {
          "name": "grant_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "create_proposal",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "create_proposal_v2",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>",
            "bool"
          ],
          "return": []
        },
        {
          "name": "resolve",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "address"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "vote",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64",
            "bool"
          ],
          "return": []
        },
        {
          "name": "get_voting_power",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "reconfigure",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "add_approved_script_hash",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": []
        },
        {
          "name": "add_approved_script_hash_script",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": []
        },
        {
          "name": "assert_proposal_expiration",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "batch_partial_vote",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "u64",
            "u64",
            "bool"
          ],
          "return": []
        },
        {
          "name": "batch_vote",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "u64",
            "bool"
          ],
          "return": []
        },
        {
          "name": "create_proposal_v2_impl",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>",
            "bool"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "force_end_epoch",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "force_end_epoch_test_only",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "get_min_voting_threshold",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u128"
          ]
        },
        {
          "name": "get_remaining_voting_power",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_required_proposer_stake",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_signer_testnet_only",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "get_voting_duration_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "has_entirely_voted",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "initialize_partial_voting",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "partial_vote",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64",
            "u64",
            "bool"
          ],
          "return": []
        },
        {
          "name": "remove_approved_hash",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": []
        },
        {
          "name": "resolve_multi_step_proposal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "address",
            "vector<u8>"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "store_signer_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x1::account::SignerCapability"
          ],
          "return": []
        },
        {
          "name": "toggle_features",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u64>",
            "vector<u64>"
          ],
          "return": []
        },
        {
          "name": "update_governance_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u128",
            "u64",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "CreateProposal",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposer",
              "type": "address"
            },
            {
              "name": "stake_pool",
              "type": "address"
            },
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "execution_hash",
              "type": "vector<u8>"
            },
            {
              "name": "proposal_metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            }
          ]
        },
        {
          "name": "CreateProposalEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposer",
              "type": "address"
            },
            {
              "name": "stake_pool",
              "type": "address"
            },
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "execution_hash",
              "type": "vector<u8>"
            },
            {
              "name": "proposal_metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            }
          ]
        },
        {
          "name": "Vote",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "stake_pool",
              "type": "address"
            },
            {
              "name": "num_votes",
              "type": "u64"
            },
            {
              "name": "should_pass",
              "type": "bool"
            }
          ]
        },
        {
          "name": "VoteEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "stake_pool",
              "type": "address"
            },
            {
              "name": "num_votes",
              "type": "u64"
            },
            {
              "name": "should_pass",
              "type": "bool"
            }
          ]
        },
        {
          "name": "ApprovedExecutionHashes",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "hashes",
              "type": "0x1::simple_map::SimpleMap<u64, vector<u8>>"
            }
          ]
        },
        {
          "name": "GovernanceConfig",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "min_voting_threshold",
              "type": "u128"
            },
            {
              "name": "required_proposer_stake",
              "type": "u64"
            },
            {
              "name": "voting_duration_secs",
              "type": "u64"
            }
          ]
        },
        {
          "name": "GovernanceEvents",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "create_proposal_events",
              "type": "0x1::event::EventHandle<0x1::aptos_governance::CreateProposalEvent>"
            },
            {
              "name": "update_config_events",
              "type": "0x1::event::EventHandle<0x1::aptos_governance::UpdateConfigEvent>"
            },
            {
              "name": "vote_events",
              "type": "0x1::event::EventHandle<0x1::aptos_governance::VoteEvent>"
            }
          ]
        },
        {
          "name": "GovernancePermission",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "GovernanceResponsbility",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "signer_caps",
              "type": "0x1::simple_map::SimpleMap<address, 0x1::account::SignerCapability>"
            }
          ]
        },
        {
          "name": "RecordKey",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "stake_pool",
              "type": "address"
            },
            {
              "name": "proposal_id",
              "type": "u64"
            }
          ]
        },
        {
          "name": "UpdateConfig",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "min_voting_threshold",
              "type": "u128"
            },
            {
              "name": "required_proposer_stake",
              "type": "u64"
            },
            {
              "name": "voting_duration_secs",
              "type": "u64"
            }
          ]
        },
        {
          "name": "UpdateConfigEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "min_voting_threshold",
              "type": "u128"
            },
            {
              "name": "required_proposer_stake",
              "type": "u64"
            },
            {
              "name": "voting_duration_secs",
              "type": "u64"
            }
          ]
        },
        {
          "name": "VotingRecords",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "votes",
              "type": "0x1::table::Table<0x1::aptos_governance::RecordKey, bool>"
            }
          ]
        },
        {
          "name": "VotingRecordsV2",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "votes",
              "type": "0x1::smart_table::SmartTable<0x1::aptos_governance::RecordKey, u64>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0601000202023c073ec8010886022010a6021f0ac5024b00000001000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f00000010000010626c7331323338315f616c676562726110466f726d6174467131324c73634c73620b64756d6d795f6669656c640b466f726d617446724c73620b466f726d617446724d73620d466f726d61744731436f6d70720f466f726d61744731556e636f6d70720d466f726d61744732436f6d70720f466f726d61744732556e636f6d707208466f726d61744774044671313202467202473102473202477415486173684731586d6453686132353653737775526f15486173684732586d6453686132353653737775526f000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e3100020102010102010201020201020103020102010402010201050201020106020102010702010201080201020109020102010a020102010b020102010c020102010d020102010e0201020100",
    "abi": {
      "address": "0x1",
      "name": "bls12381_algebra",
      "friends": [],
      "exposed_functions": [],
      "structs": [
        {
          "name": "FormatFq12LscLsb",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "FormatFrLsb",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "FormatFrMsb",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "FormatG1Compr",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "FormatG1Uncompr",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "FormatG2Compr",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "FormatG2Uncompr",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "FormatGt",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Fq12",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Fr",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "G1",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "G2",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "Gt",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "HashG1XmdSha256SswuRo",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "HashG2XmdSha256SswuRo",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d01000c020c04031051046106056722078901cf0208d8032006f80322109a0486010aa005060ca605e2010d8807020f8a0704000000040006000a000c000e00010e000003000100010105000100010207010301040102080104010401000906010001030b01010001040d01010001050f080800010010060100010011060100010212040101060100130103000100140a030001020203020a0201060c00010800010101090002080007080002060c0a020102010301070a02010a0210636f6e73656e7375735f636f6e6669670f436f6e73656e737573436f6e66696706636f6e6669670c6f6e5f6e65775f65706f63681073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b0d636f6e6669675f6275666665720a646f65735f65786973740a657874726163745f7632037365740c636861696e5f7374617475730e6173736572745f67656e657369730f7265636f6e66696775726174696f6e0b7265636f6e666967757265056572726f7210696e76616c69645f617267756d656e740a696e697469616c697a65127365745f666f725f6e6578745f65706f6368067570736572741576616c696461746f725f74786e5f656e61626c65641e76616c696461746f725f74786e5f656e61626c65645f696e7465726e616c187265636f6e66696775726174696f6e5f776974685f646b670767656e6573697300000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631530101000000000000000f45494e56414c49445f434f4e464947375468652070726f7669646564206f6e20636861696e20636f6e6669672062797465732061726520656d707479206f7220696e76616c69640000000201020a02000300010005190a0011013800041638010c010700290004120b000107002a000c020b010b0215020b000b012d0005110b00010511040100010009140b00110111050e01410706000000000000000024041107002a000f000c020b010b02151106020601000000000000001107270803000001110a0011010e01410706000000000000000024040c0b000b0112002d00020b000106010000000000000011072709010000010e0b0011010e01410706000000000000000024040b0b0112003802020601000000000000001107270b01000100010607002b00100014110c020c00020000000015001600",
    "abi": {
      "address": "0x1",
      "name": "consensus_config",
      "friends": [
        "0x1::reconfiguration_with_dkg",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "set",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "validator_txn_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "ConsensusConfig",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "config",
              "type": "vector<u8>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d01000c020c0403103f044f0605551f07748f020883032006a3032210c50386010acb04060cd104b1010d8206020f840604000000040006000a000c000e00010e000003000100010105000100010207010301040102080104010401000906010001030b01010001040d01010001050f080800010010060100010211040101060102020302090201060c00010800010101090002080007080002060c0a020102010301070a0210657865637574696f6e5f636f6e6669670f457865637574696f6e436f6e66696706636f6e6669670c6f6e5f6e65775f65706f63681073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b0d636f6e6669675f6275666665720a646f65735f65786973740a657874726163745f7632037365740c636861696e5f7374617475730e6173736572745f67656e657369730f7265636f6e66696775726174696f6e0b7265636f6e666967757265056572726f7210696e76616c69645f617267756d656e74127365745f666f725f6e6578745f65706f636806757073657274187265636f6e66696775726174696f6e5f776974685f646b670767656e6573697300000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631530101000000000000000f45494e56414c49445f434f4e464947375468652070726f7669646564206f6e20636861696e20636f6e6669672062797465732061726520656d707479206f7220696e76616c69640000000201020a02000300010005190a0011013800041638010c010700290004120b000107002a000c020b010b0215020b000b012d0005110b00010511040100010009200a00110111050e01410706000000000000000024041b0700290004160b000107002a000f000c020b010b02151106020b000b0112002d0005140b000106010000000000000011072708010000010e0b0011010e01410706000000000000000024040b0b01120038020206010000000000000011072700000012001300",
    "abi": {
      "address": "0x1",
      "name": "execution_config",
      "friends": [
        "0x1::reconfiguration_with_dkg",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "set",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "ExecutionConfig",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "config",
              "type": "vector<u8>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c0100260226840103aa01be0504e8067c05e407a906078d0eb81908c5272006e5274910ae2885140ab33ce3020c963f8a2a0da0692400000015001b00230028002a002e0050005500590069006e006f00740076003c00820100ab010001060000050600000606000008060000090600000c0700000d0600000e060000110600001207000114070000180600021a070200000000001d0600001e0800032204020301000104270701000005290600062d0401060100300600003206000037060000390600003b0300003e0300004306000045060000490600004a06000b6d0800004d00010001004e03010001004f0405000107510605010001002b0207000100520809000103530b0c0203000102540e050204040102530e0c0204040108560f0f0001005711010001005812010001095a13020001045b0114010001005c15010001005d16010001045e1714010001005f180100010060190100010061020f000100621b0500010063020f00010020020f000100641b05000100651d05000100661d0500010067131f00010568020f00010a6a2021010001006b21210001056c221f00010c7002050100010c71130101000107722601010001007327010001024d0128020404010d75010f00010e7701050001027829010204040103782a01020300010e7901050001067a1701010601067b2d01010601087c0f0f0001087d0f0f0001007e27010001007f2f0100010f80010125000105810131010102011082010232000100830134010001001f023600010084012f0100010585012201000105860102050001058701130100010588010205000105890113010001008a0103010001008b01030100010e8c0101050001008d013a010001038e01013b02030401058f01133e010601009001460100010891010f0f00010092010301000100930102020001009401110100010095011801000100960148490001009701180100010025020f00010098014c01000105990150020001009a0151210001049b01520501000104535220010001009c0102540001009d011b550001039e01585902030001009f011101000100a0011201000100a1015b01000100a2015e01000100a3015f01000100a4016001000100a5016101000107a601066601000107a701671701000104a801691701000100a9016c01000100aa012701000103510b050203000111ac01212100010ead010105000107ae016d0501000108af010f0f000100b0011901000100b1017001000103b20158710203000102b2017271020404010302060a070d080d0d0f100f1c0f1f232023212510210d21230d260d270a292b2a2c30300d33303710333e0a233c3f3d3f3f3f403f2c3f413f423f433f443f45294a2a42294d294e2a442a414c214d21500a295c2a43073c263c29632a45210229655802590229684c0f5a0f296a2a402a3f2a3d5d0a6025640a650d04060c030a080a0a0a0200010505060c0a05030a080a0a0a02020505010102060a0900060900010b0c02080a0a02030503050201010203080502060b0f020900090109000106090102050102060b0c020900090106090001030506080e01060b0c020501010102060c0502060c0a0501060c010b1001090004050a050a050b10010303060c0a050301090003060c050304060c0503010306080e03030205030c0306080e010306080e060a0503060b0c020501030306050103050503110306080e010306080e060a0503060b0c02050103030605050501010101020c081101060900010a0202060c0a0201081d040308110c0c010202070a09000a090003060c050a02010b0c020900090103070b0c02090009010900090103070b0f02090009010900090101080401080602070b12010900090007060c050505080507080e0308050a0503020a020a020a080a0a0a020108170505020a020a020900010c01081106060c0a05030b100108110a080a0a0a020208170c010a050108180308180c060c0208110c02060a0505010b0f020900090102080a0a02010803010b1201090001081301081401080101080801081501081601080d04060c0a080a0a0a02010601050b0c02080a0a020b0f02030805030a050107080e0203030108070b060c050305050305010107080e030405050a02080901080001081a0e05050305030501010107080e03010307080e0206050a0202050a0201060b100109000406080e030608050a02010a0805010805040a080506080e03030206080e0102070b0f02090009010900010901090308050703060a0503060b0c020501030306050305050a0201081b1105050305030501010107080e03010307080e030a020303060c050503060c0a050a0504060c0a050a050303060c0a080a0a0a0201080a01080b08030507080e0b0c02080a0a02070b0c02080a0a0203080a0a0201080202010302070a09000301081901070b1001090001081c0907080e060a0503030605070a050a0503070302060c0301060a090008060c050303060805060a020101040a0503030505060c050303010107090102070b0c02090009010609000607080e060c05070b0c020501050701106d756c74697369675f6163636f756e7404566f7465056f776e65720f73657175656e63655f6e756d62657208617070726f76656409566f74654576656e74094164644f776e6572730c6f776e6572735f61646465640e4164644f776e6572734576656e74114372656174655472616e73616374696f6e0763726561746f720b7472616e73616374696f6e134d756c74697369675472616e73616374696f6e164372656174655472616e73616374696f6e4576656e741a4578656375746552656a65637465645472616e73616374696f6e0e6e756d5f72656a656374696f6e73086578656375746f721f4578656375746552656a65637465645472616e73616374696f6e4576656e740e457865637574696f6e4572726f720e61626f72745f6c6f636174696f6e06537472696e6706737472696e670a6572726f725f747970650a6572726f725f636f64650f4d65746164617461557064617465640c6f6c645f6d657461646174610953696d706c654d61700a73696d706c655f6d61700c6e65775f6d65746164617461144d65746164617461557064617465644576656e740f4d756c74697369674163636f756e74066f776e657273176e756d5f7369676e6174757265735f72657175697265640c7472616e73616374696f6e73055461626c65057461626c651d6c6173745f65786563757465645f73657175656e63655f6e756d626572146e6578745f73657175656e63655f6e756d6265720a7369676e65725f636170064f7074696f6e066f7074696f6e105369676e65724361706162696c697479076163636f756e74086d65746164617461116164645f6f776e6572735f6576656e74730b4576656e7448616e646c65056576656e741472656d6f76655f6f776e6572735f6576656e74731152656d6f76654f776e6572734576656e74207570646174655f7369676e61747572655f72657175697265645f6576656e74731d5570646174655369676e61747572657352657175697265644576656e74196372656174655f7472616e73616374696f6e5f6576656e74730b766f74655f6576656e747323657865637574655f72656a65637465645f7472616e73616374696f6e5f6576656e74731a657865637574655f7472616e73616374696f6e5f6576656e7473225472616e73616374696f6e457865637574696f6e5375636365656465644576656e74237472616e73616374696f6e5f657865637574696f6e5f6661696c65645f6576656e74731f5472616e73616374696f6e457865637574696f6e4661696c65644576656e74176d657461646174615f757064617465645f6576656e74731e4d756c74697369674163636f756e744372656174696f6e4d65737361676508636861696e5f69640f6163636f756e745f61646472657373334d756c74697369674163636f756e744372656174696f6e57697468417574684b65795265766f636174696f6e4d657373616765077061796c6f61640c7061796c6f61645f6861736805766f746573126372656174696f6e5f74696d655f736563730c52656d6f76654f776e6572730e6f776e6572735f72656d6f7665641a5472616e73616374696f6e457865637574696f6e4661696c6564137472616e73616374696f6e5f7061796c6f61640d6e756d5f617070726f76616c730f657865637574696f6e5f6572726f721d5472616e73616374696f6e457865637574696f6e537563636565646564185570646174655369676e61747572657352657175697265641b6f6c645f6e756d5f7369676e6174757265735f72657175697265641b6e65775f6e756d5f7369676e6174757265735f726571756972656406637265617465126372656174655f776974685f6f776e6572730869735f6f776e657206766563746f7208636f6e7461696e7304766f746506626f72726f770c636f6e7461696e735f6b6579056572726f7210696e76616c69645f617267756d656e74096164645f6f776e65720a6164645f6f776e657273067369676e65720a616464726573735f6f66046e6f6e65137570646174655f6f776e65725f736368656d61296164645f6f776e6572735f616e645f7570646174655f7369676e6174757265735f726571756972656404736f6d6513617070726f76655f7472616e73616374696f6e11766f74655f7472616e73616e6374696f6e24617661696c61626c655f7472616e73616374696f6e5f71756575655f63617061636974790f63616e5f62655f65786563757465641d6c6173745f7265736f6c7665645f73657175656e63655f6e756d6265720f63616e5f62655f72656a65637465640b63616e5f657865637574650a63616e5f72656a656374176372656174655f6d756c74697369675f6163636f756e74136765745f73657175656e63655f6e756d6265720362637308746f5f62797465731c6372656174655f6d756c74697369675f6163636f756e745f73656564176372656174655f7265736f757263655f6163636f756e74094170746f73436f696e0a6170746f735f636f696e04636f696e1569735f6163636f756e745f7265676973746572656408726567697374657206617070656e64126372656174655f7472616e73616374696f6e0974696d657374616d700b6e6f775f7365636f6e6473086665617475726573276d756c74697369675f76325f656e68616e63656d656e745f666561747572655f656e61626c6564036164641e6d6f64756c655f6576656e745f6d6967726174696f6e5f656e61626c656404656d69740a656d69745f6576656e740d696e76616c69645f7374617465117065726d697373696f6e5f64656e6965641c6372656174655f7472616e73616374696f6e5f776974685f686173681c6372656174655f776974685f6578697374696e675f6163636f756e7403676574157665726966795f7369676e65645f6d6573736167650d6372656174655f7369676e65721b6372656174655f776974685f6f776e6572735f696e7465726e616c306372656174655f776974685f6578697374696e675f6163636f756e745f616e645f7265766f6b655f617574685f6b657922726f746174655f61757468656e7469636174696f6e5f6b65795f696e7465726e616c1c69735f7369676e65725f6361706162696c6974795f6f6666657265641c7265766f6b655f616e795f7369676e65725f6361706162696c6974791e69735f726f746174696f6e5f6361706162696c6974795f6f6666657265641e7265766f6b655f616e795f726f746174696f6e5f6361706162696c697479356372656174655f776974685f6578697374696e675f6163636f756e745f616e645f7265766f6b655f617574685f6b65795f63616c6c216372656174655f776974685f6578697374696e675f6163636f756e745f63616c6c196d756c74697369675f6163636f756e74735f656e61626c65640f76616c69646174655f6f776e657273036e6577106e65775f6576656e745f68616e646c65187570646174655f6d657461646174615f696e7465726e616c0b756e617661696c61626c652b6372656174655f776974685f6f776e6572735f7468656e5f72656d6f76655f626f6f747374726170706572216765745f6e6578745f6d756c74697369675f6163636f756e745f616464726573731c657865637574655f72656a65637465645f7472616e73616374696f6e1272656a6563745f7472616e73616374696f6e1b72656d6f76655f65786563757465645f7472616e73616374696f6e1d657865637574655f72656a65637465645f7472616e73616374696f6e73246661696c65645f7472616e73616374696f6e5f657865637574696f6e5f636c65616e7570176372656174655f7265736f757263655f616464726573731c6765745f6e6578745f7472616e73616374696f6e5f7061796c6f61640769735f736f6d65186765745f70656e64696e675f7472616e73616374696f6e730f6765745f7472616e73616374696f6e0672656d6f76650c72656d6f76655f6f776e65720d72656d6f76655f6f776e657273287375636365737366756c5f7472616e73616374696f6e5f657865637574696f6e5f636c65616e75700a737761705f6f776e65720b737761705f6f776e6572732a737761705f6f776e6572735f616e645f7570646174655f7369676e6174757265735f72657175697265640f7570646174655f6d6574616461746108696e6465785f6f660b737761705f72656d6f766507657874726163741a7570646174655f7369676e6174757265735f72657175697265641d76616c69646174655f6d756c74697369675f7472616e73616374696f6e046861736808736861335f3235362a61626f72745f69665f6d756c74697369675f7061796c6f61645f6d69736d617463685f656e61626c65640869735f656d707479096e6f745f666f756e6410766f74655f7472616e73616374696f6e11766f74655f7472616e73616374696f6e730a626f72726f775f6d757400000000000000000000000000000000000000000000000000000000000000010a0222216170746f735f6672616d65776f726b3a3a6d756c74697369675f6163636f756e740a022120000000000000000000000000000000000000000000000000000000000000000014636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631d11314010000000000000010454455504c49434154455f4f574e45523a4f776e6572206c6973742063616e6e6f7420636f6e7461696e207468652073616d652061646472657373206d6f7265207468616e206f6e63652e040000000000000018455041594c4f41445f43414e4e4f545f42455f454d505459245472616e73616374696f6e207061796c6f61642063616e6e6f7420626520656d7074792e050000000000000012454e4f545f454e4f5547485f4f574e4552532e4d756c7469736967206163636f756e74206d7573742068617665206174206c65617374206f6e65206f776e65722e0a0000000000000016454e4f545f454e4f5547485f52454a454354494f4e53495472616e73616374696f6e20686173206e6f7420726563656976656420656e6f7567682072656a656374696f6e7320746f206265206f6666696369616c6c792072656a65637465642e0b000000000000001c45494e56414c49445f5349474e4154555245535f52455155495245445c4e756d626572206f66207369676e617475726573207265717569726564206d757374206265206d6f7265207468616e207a65726f20616e64206174206d6f73742074686520746f74616c206e756d626572206f66206f776e6572732e0c000000000000001545494e56414c49445f5041594c4f41445f48415348315061796c6f61642068617368206d7573742062652065786163746c792033322062797465732028736861332d323536292e0d0000000000000028454f574e45525f43414e4e4f545f42455f4d554c54495349475f4143434f554e545f495453454c462f546865206d756c7469736967206163636f756e7420697473656c662063616e6e6f7420626520616e206f776e65722e0e0000000000000022454d554c54495349475f4143434f554e54535f4e4f545f454e41424c45445f594554434d756c7469736967206163636f756e747320686173206e6f74206265656e20656e61626c6564206f6e20746869732063757272656e74206e6574776f726b207965742e0f000000000000002e454e554d4245525f4f465f4d455441444154415f4b4559535f414e445f56414c5545535f444f4e545f4d4154434833546865206e756d626572206f66206d65746164617461206b65797320616e642076616c75657320646f6e2774206d617463682e100000000000000017454455504c49434154455f4d455441444154415f4b45593c54686520737065636966696564206d6574616461746120636f6e7461696e73206475706c6963617465206174747269627574657320286b657973292e11000000000000001845494e56414c49445f53455155454e43455f4e554d4245525e5468652073657175656e6365206e756d6265722070726f766964656420697320696e76616c69642e204974206d757374206265206265747765656e205b312c206e6578742070656e64696e67207472616e73616374696f6e202d20315d2e120000000000000024454f574e4552535f544f5f52454d4f56455f4e45575f4f574e4552535f4f5645524c41503150726f7669646564206f776e65727320746f2072656d6f766520616e64206e6577206f776e657273206f7665726c61702e130000000000000022454d41585f50454e44494e475f5452414e53414354494f4e535f455843454544454444546865206e756d626572206f662070656e64696e67207472616e73616374696f6e732068617320657863656564656420746865206d6178696d756d20616c6c6f7765642e140000000000000024454d554c54495349475f56325f454e48414e43454d454e545f4e4f545f454e41424c454433546865206d756c746973696720763220656e68616e63656d656e742066656174757265206973206e6f7420656e61626c65642ed20700000000000015454143434f554e545f4e4f545f4d554c54495349472c537065636966696564206163636f756e74206973206e6f742061206d756c7469736967206163636f756e742ed3070000000000000a454e4f545f4f574e4552494163636f756e7420657865637574696e672074686973206f7065726174696f6e206973206e6f7420616e206f776e6572206f6620746865206d756c7469736967206163636f756e742ed60700000000000016455452414e53414354494f4e5f4e4f545f464f554e442e5472616e73616374696f6e2077697468207370656369666965642069642063616e6e6f7420626520666f756e642ed8070000000000001c455041594c4f41445f444f45535f4e4f545f4d415443485f484153485450726f7669646564207461726765742066756e6374696f6e20646f6573206e6f74206d617463682074686520686173682073746f72656420696e20746865206f6e2d636861696e207472616e73616374696f6e2ed90700000000000015454e4f545f454e4f5547485f415050524f56414c533d5472616e73616374696f6e20686173206e6f7420726563656976656420656e6f75676820617070726f76616c7320746f2062652065786563757465642eda0700000000000017455041594c4f41445f444f45535f4e4f545f4d415443485750726f7669646564207461726765742066756e6374696f6e20646f6573206e6f74206d6174636820746865207061796c6f61642073746f72656420696e20746865206f6e2d636861696e207472616e73616374696f6e2e0904566f7465010400094164644f776e6572730104000c52656d6f76654f776e6572730104000f4d6574616461746155706461746564010400114372656174655472616e73616374696f6e010400185570646174655369676e61747572657352657175697265640104001a4578656375746552656a65637465645472616e73616374696f6e0104001a5472616e73616374696f6e457865637574696f6e4661696c65640104001d5472616e73616374696f6e457865637574696f6e5375636365656465640104001004766f7465010100066f776e6572730101000869735f6f776e6572010100086d657461646174610101000a63616e5f72656a6563740101000b63616e5f657865637574650101000f63616e5f62655f65786563757465640101000f63616e5f62655f72656a65637465640101000f6765745f7472616e73616374696f6e010100146e6578745f73657175656e63655f6e756d626572010100176e756d5f7369676e6174757265735f7265717569726564010100186765745f70656e64696e675f7472616e73616374696f6e730101001c6765745f6e6578745f7472616e73616374696f6e5f7061796c6f61640101001d6c6173745f7265736f6c7665645f73657175656e63655f6e756d626572010100216765745f6e6578745f6d756c74697369675f6163636f756e745f6164647265737301010024617661696c61626c655f7472616e73616374696f6e5f71756575655f636170616369747901010000020400050205030304010102030205030304010202020005070a05030201070a0504020400050a0503030b08050602030a0503030b0805070204000503030f03100508020303030f03100509020313080a16080a17030b02030005190b0c02080a0a021c0b0c02080a0a020d0202190b0c02080a0a021c0b0c02080a0a020e02101f0a052003210b0f0203080524032503260b100108112b0b0c02080a0a022c0b120108032f0b12010813310b12010814330b12010806340b12010801350b12010808360b12010815380b120108163a0b1201080d1702053c023d0503031f0a0520031802053c023d0503031f0a0520030502053f0b10010a02400b10010a02410b0c0205010a0542031902020005440a05130201440a051a0206000510050303460a02470348080916020510050303460a0247034808091b0205000510050303460a02470315020410050303460a0247031c020300054b034c031402024b034c03000104010b01070b00400200000000000000000b010b020b03110102020100010b01060b012b0b10000e00380002040100010b01050b002b0b10011402050100010b10300b002b0b0c030a0106000000000000000024042d0a010a03100214230c040b0404280b0310030b01380110040c050a050e0238020c060a0604230b050e023803140c070b060b07020b0501090c0705200b0301061100000000000000110927090c04050d0a0004010b01050b000b0140020100000000000000110b020b0004010b01070b00110c0b01400200000000000000003804110e020f0004010b01080b00110c0b01400200000000000000000b023805110e02110104010b01060b000b010b0208111202130100010b1a1a0b002b0b0c010a011002140b0110051417060100000000000000170c020a020614000000000000002404150600000000000000000c030b03020614000000000000000b02170c030513140100010b1c670a000a010c022b0b0c030a020600000000000000002404620b020b03100214230c040b04045f0a000a010c052b0b0c060a0610030b0538010b0610000c070600000000000000000c050600000000000000000c0810040c090600000000000000000c0a0a0741020c0b0a0a0a0b23044a0a070a0a42020c0c0a090a0c380204470a090b0c38031404420b05060100000000000000160c050b0a060100000000000000160c0a05280b08060100000000000000160c08053d0b0c01053d0b09010b07010b010a0011150601000000000000001621045c0b050b001116260c0d0b0d02090c0d055a0611000000000000001109270b0301090c04050f170100010b1c670a000a010c022b0b0c030a020600000000000000002404620b020b03100214230c040b04045f0a000a010c052b0b0c060a0610030b0538010b0610000c070600000000000000000c050600000000000000000c0810040c090600000000000000000c0a0a0741020c0b0a0a0a0b23044a0a070a0a42020c0c0a090a0c380204470a090b0c38031404420b05060100000000000000160c050b0a060100000000000000160c0a05280b08060100000000000000160c08053d0b0c01053d0b09010b07010b010a0011150601000000000000001621045c0b080b001116260c0d0b0d02090c0d055a0611000000000000001109270b0301090c04050f180100010b1e82010a010a020c032b0b0c040a0306000000000000000024047d0b030b04100214230c050b05047a0a010a020c062b0b0c070a0710030b0638010b0710000c080600000000000000000c060600000000000000000c0910040c0a0600000000000000000c0b0a0841020c0c0a0b0a0c23044a0a080a0b42020c0d0a0a0a0d380204470a0a0b0d38031404420b06060100000000000000160c060b0b060100000000000000160c0b05280b09060100000000000000160c09053d0b0d01053d0b0a010b08010a010a020a0011050c1004770b100c110b110459055d0b06060100000000000000160c060b000a01110204740b020a01111506010000000000000016210c120b1204710b060b011116260c130b1302090c13056f090c120568090c1105560611000000000000001109270b0401090c05050f190100010b1e83010a010a020c032b0b0c040a0306000000000000000024047e0b030b04100214230c050b05047b0a010a020c062b0b0c070a0710030b0638010b0710000c080600000000000000000c060600000000000000000c0910040c0a0600000000000000000c0b0a0841020c0c0a0b0a0c23044a0a080a0b42020c0d0a0a0a0d380204470a0a0b0d38031404420b06060100000000000000160c060b0b060100000000000000160c0b05280b09060100000000000000160c09053d0b0d01053d0b0a010b08010a010a020a0011050c1004780b10200c110b11045a055e0b09060100000000000000160c090b000a01110204750b020a01111506010000000000000016210c120b1204720b090b011116260c130b1302090c130570090c120569090c1105570611000000000000001109270b0401090c05050f160100010b01050b002b0b100614021a00000024150a00110c111b0c010b000e013806111d111e0c020c030e03110c3807041005120e0338080b030b02021d000000210a402500000000000000000c010d01070038090d010b0038090b0102220104010b2e650e0241250600000000000000002404600a01290b045b0a000c030a012b0b10000b03110c0c040e04380004560b00110c0c050b02380a380b380c0a051124120e0b010c060c071125032305290a06111306000000000000000024045305290a062a0b0c080d070f040a0508380d0a081002140c090a09060100000000000000160a080f02150a080f030a090a07380e1128044b0b08010b060b050b090b071204380f020b080f070b050b090b0712053810054a061300000000000000112b270b000106d307000000000000112c270b000106d207000000000000112b270b00010604000000000000001109272d0104010b2e650e0241250620000000000000002104600a01290b045b0a000c030a012b0b10000b03110c0c040e04380004560b00110c0c05380b0b02380a380c0a051124120e0b010c060c071125032305290a06111306000000000000000024045305290a062a0b0c080d070f040a0508380d0a081002140c090a09060100000000000000160a080f02150a080f030a090a07380e1128044b0b08010b060b050b090b071204380f020b080f070b050b090b0712053810054a061300000000000000112b270b000106d307000000000000112c270b000106d207000000000000112b270b0001060c000000000000001109272e0104010b3519112f0a000a00111b0a010a02120c0c080a000b030b040b050b0838110b0011310c090e090b010b0238120b060b07113202330100010b01050b002b0b10001402340104010b382f112f0a000a00111b0a010a02120d0c080a000b030b040b050b0838130b0011310c090e090c0a0a0a0b010b0238120b060b0711320a0a110c0c000a0a070111350a001136032405260a0a11370b001138042c0b0a1139020b0a01052b3a0004010b021c0a000b010b0238120b030b0411320a00110c0c050a00070111350a051136031105130a0011370b05113804190b001139020b000105183b0004010b01080b000b010b0238120b030b04113202010104010b39110a00111a0c050c060d010b00110c44020e060b010b020b0538140b030b04113202320000010b4744113c043f0a0206000000000000000024043c0a020e014102250c060b0604370a00110c0c070e010b07113d0a000b010b02381538160c080600000000000000000601000000000000000b030b080a0038170a0038180a0038190a00381a0a00381b0a00381c0a00381d0a00381e0a00381f120b2d0b0b000b040b05091140020b0001060b00000000000000110927090c06050b0b0001060e00000000000000114127420104010b02110a00110c0c050b000b010b020b030b0411010a051143400200000000000000000b05400201000000000000003804110e02440104010b4b600a01290b045b0a000c020a012b0b10000b02110c0c030e03380004560a011115060100000000000000160c040a00110c0c051125031905290a010a040a0511050c0904530b09200c0a0b0a042505290a000a010a0411450a012a0b0c0b0a0b11460c0c010a0c0a0b10061426044c112804420b0b010b010b040b0c0b00110c12063820020b00010b0b0f080b040b0c0b051207382105410b00010b0b01060a00000000000000112b27090c0a05220b000106d307000000000000112c270b000106d207000000000000112b27470104010b0128112504230a0111150a0223041e0a020a011148230419050d0a0111150a022304160a000a011144050d0b0001020b00010611000000000000001109270b00010611000000000000001109270b0001061400000000000000112b27490000010b4f5e0a000c040a010c050a051115060100000000000000160c060a050a060a0411050c0a045b0b0a0c0b0b0b200c0c0a052a0b0c0d0a0d1146010c0e112504580b0c0c0f0b0f04551128044d0b0d010b050b040b0608120038220b0e060100000000000000160c0e0b0e0c100a012a0b0c11112804410b010b000b111005140b020b100b0312113823020a110f090b000b111005140b020b100b031212382405400b0d0f0a0b040b060812013825052b0b0d01052f090c0f051f090c0b0511430100000f090a00111b0c010e000e013806111d114a024b0100010b531e0b002b0b0c020a02100514060100000000000000160c030b0210030b0338010c040a04100b382604190b04100b3827140c050b05020b04010b010c0505174e0100010b5623405500000000000000000c010b002b0b0c020a02100514060100000000000000160c030a021002140c040a030a0423041f0d010a0210030a0338011444550b03060100000000000000160c03050f0b02010b01024f0100010b571d0b002b0b0c020a0106000000000000000024041a0a010a02100214230c030b0304150b0210030b01380114020b0201061100000000000000110927090c03050d150100010b01050b002b0b10051402480100010b01050b002b0b10021402450104010b01060b000b010b0209111202460000005a490a00100514060100000000000000160c010a000f030a0138280c020a000f050c030b010b03150b0010000c040e020600000000000000000c010600000000000000000c0510040c060600000000000000000c070a0441020c080a070a082304420a040a0742020c090a060a093802043f0a060b09380314043a0b01060100000000000000160c010b07060100000000000000160c0705200b05060100000000000000160c0505350b090105350b06010b04010b010b0502510004010b01050b000b0140020100000000000000115202520004010b01070b00110c400200000000000000000b013804110e02530000010b5d660a000c030a010c040a041115060100000000000000160c050a040a050a0311050c0904630b090c0a0b0a200c0b0a042a0b0c0c0a0c1146010c0d112504600b0b0c0e0b0e045d112804550b0c010b040b030b0508120038220b0d060100000000000000160c0d0b0d0c0f0a012a0b0c10112804460b010b101005140c110b020c120b0f0c130b000b110b120b1312133829020a100f0c0b101005140c110b020c120b000b110b120b0f1214382a05450b0c0f0a0b030b050812013825052b0b0c01052f090c0e051f090c0a0511540004010b01090b00110c0b01400201000000000000000b02400201000000000000003804110e02550004010b01070b00110c0b010b023804110e02560004010b01080b00110c0b010b020b033805110e02570004010b01060b000b010b0208114002400000010b64630e0141620c040a040e02412121045e0b00110c0c050a05290b045b0a052a0b0c060a061001140c0738160a060f01150a060f010c080600000000000000000c090a090a042304410e010a094262140c0a0e020a094221140c0b0a082e0e0a382b033a0a080b0a0b0b382c0b09060100000000000000160c09051e0b06010b08010610000000000000001109270b08010b0304581128044f0b050b070b061001141209382d020a060f0d0b070b06100114120a382e054e0b0601054e06d207000000000000112b270b0001060f000000000000001109270e0000010b6bbe010a00290b04bb010a002a0b0c040e010c050600000000000000000c060a0541020c070a060a072304250a050a0642020c080e020b083800031e0b06060100000000000000160c06050d0b04010b05010612000000000000001109270b05010e01410206000000000000000024032d053b0a040f000a01382f0a0410000a00113d112804b5010a000b01120238300e02410206000000000000000024034105760a040f000c09400200000000000000000c0a0e020c050600000000000000000c060a0541020c070a060a072304660a050a0642020c080a092e0b0838310c0b035c05610d0a0a090b0b383244020b06060100000000000000160c06054d0b09010b05010e0a41020600000000000000002403700576112804af010a000b0a120f38330e033834037a0597010d0338350c060a060600000000000000002404aa010a041006140c070a060a0722038a010597010a040f060c0c0a060b0c15112804a3010b000b070b06121538360a04100041020b041006142604a00102060500000000000000112b270a040f0e0b070b06121638370597010b0401060b000000000000001109270a040f0f0b0a1210383805760a040f100b0112033839053b06d207000000000000112b275b0004010b01080b00110c40020000000000000000400200000000000000000b013805110e025c0000010b6e80010a01290b047b0a000c030a012b0b10000b03110c0c040e04380004760a011115060100000000000000160c050a010a050c062b0b10030b06383a0471112504670b00110c0a010a051118046405240b012b0b10030b0538010c070a0710113826032f053a0a07101138270c080a02115e0b081421045f053a115f045c0a07100b38260c090b0904590e02383b200c0a0b0a04560b07100b38270c080b020b081421045305520206da070000000000001109270b07010552090c0a0546090c0905400b070106d80700000000000011092706d9070000000000001109270b00010a010a051114046e052406d9070000000000001109270b000106d6070000000000001161270b000106d307000000000000112c270b000106d207000000000000112b273d0000006f2e400200000000000000000c020600000000000000000c030a0041020c040a030a0423042b0a000a034202140c050a050a012204260e020e0538310103210d020b0544020b03060100000000000000160c0305070b00010601000000000000001109270b0001060d000000000000001109270b000102620104010b010d112504080b000b010b020b031112020b0001061400000000000000112b27630104010b0f1a112504150b020c050a050a032504120a000a010a050a0411120b05060100000000000000160c0505040b0001020b0001061400000000000000112b27120104010b73560a01290b04510a012a0b0c040a000c050a042e10000b05110c0c060e063800044a0a0410030a02383a04430a040f030a02383c0f040c070b00110c0c080a072e0e083802043e0b070e08383d0c090a030b0915112804360b04010b010b080b020b0312003822020b040f0a0b080b020b031201382505350b070a080a03380d052b0b00010b040106d6070000000000001161270b00010b040106d307000000000000112c270b000106d207000000000000112b270b000b060b040b020e020b030b010b0a0b0c0b0e0b0b0e000b0d0b0f0b090b080b070e0100",
    "abi": {
      "address": "0x1",
      "name": "multisig_account",
      "friends": [],
      "exposed_functions": [
        {
          "name": "create",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64",
            "vector<0x1::string::String>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "is_owner",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
          ]
        },
        {
          "name": "vote",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "u64",
            "address"
          ],
          "return": [
            "bool",
            "bool"
          ]
        },
        {
          "name": "add_owner",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "add_owners",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>"
          ],
          "return": []
        },
        {
          "name": "add_owners_and_update_signatures_required",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "approve_transaction",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "available_transaction_queue_capacity",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "can_be_executed",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "can_be_rejected",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "can_execute",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "can_reject",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "num_signatures_required",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "create_transaction",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "create_transaction_with_hash",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "create_with_existing_account",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "vector<address>",
            "u64",
            "u8",
            "vector<u8>",
            "vector<u8>",
            "vector<0x1::string::String>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "owners",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "vector<address>"
          ]
        },
        {
          "name": "create_with_existing_account_and_revoke_auth_key",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "vector<address>",
            "u64",
            "u8",
            "vector<u8>",
            "vector<u8>",
            "vector<0x1::string::String>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "create_with_existing_account_and_revoke_auth_key_call",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "u64",
            "vector<0x1::string::String>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "create_with_existing_account_call",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "u64",
            "vector<0x1::string::String>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "create_with_owners",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "u64",
            "vector<0x1::string::String>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "create_with_owners_then_remove_bootstrapper",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "u64",
            "vector<0x1::string::String>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "execute_rejected_transaction",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "execute_rejected_transactions",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "get_next_multisig_account_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_next_transaction_payload",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "get_pending_transactions",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "vector<0x1::multisig_account::MultisigTransaction>"
          ]
        },
        {
          "name": "get_transaction",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "0x1::multisig_account::MultisigTransaction"
          ]
        },
        {
          "name": "last_resolved_sequence_number",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "next_sequence_number",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "reject_transaction",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "remove_owner",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "remove_owners",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>"
          ],
          "return": []
        },
        {
          "name": "swap_owner",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "swap_owners",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "vector<address>"
          ],
          "return": []
        },
        {
          "name": "swap_owners_and_update_signatures_required",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "vector<address>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "update_metadata",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<0x1::string::String>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "update_signatures_required",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "vote_transaction",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64",
            "bool"
          ],
          "return": []
        },
        {
          "name": "vote_transactions",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64",
            "u64",
            "bool"
          ],
          "return": []
        },
        {
          "name": "vote_transanction",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64",
            "bool"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Vote",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            },
            {
              "name": "owner",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "approved",
              "type": "bool"
            }
          ]
        },
        {
          "name": "VoteEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "owner",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "approved",
              "type": "bool"
            }
          ]
        },
        {
          "name": "AddOwners",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            },
            {
              "name": "owners_added",
              "type": "vector<address>"
            }
          ]
        },
        {
          "name": "AddOwnersEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "owners_added",
              "type": "vector<address>"
            }
          ]
        },
        {
          "name": "CreateTransaction",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            },
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "transaction",
              "type": "0x1::multisig_account::MultisigTransaction"
            }
          ]
        },
        {
          "name": "CreateTransactionEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "transaction",
              "type": "0x1::multisig_account::MultisigTransaction"
            }
          ]
        },
        {
          "name": "ExecuteRejectedTransaction",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "num_rejections",
              "type": "u64"
            },
            {
              "name": "executor",
              "type": "address"
            }
          ]
        },
        {
          "name": "ExecuteRejectedTransactionEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "num_rejections",
              "type": "u64"
            },
            {
              "name": "executor",
              "type": "address"
            }
          ]
        },
        {
          "name": "ExecutionError",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "abort_location",
              "type": "0x1::string::String"
            },
            {
              "name": "error_type",
              "type": "0x1::string::String"
            },
            {
              "name": "error_code",
              "type": "u64"
            }
          ]
        },
        {
          "name": "MetadataUpdated",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            },
            {
              "name": "old_metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            },
            {
              "name": "new_metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            }
          ]
        },
        {
          "name": "MetadataUpdatedEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "old_metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            },
            {
              "name": "new_metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            }
          ]
        },
        {
          "name": "MultisigAccount",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "owners",
              "type": "vector<address>"
            },
            {
              "name": "num_signatures_required",
              "type": "u64"
            },
            {
              "name": "transactions",
              "type": "0x1::table::Table<u64, 0x1::multisig_account::MultisigTransaction>"
            },
            {
              "name": "last_executed_sequence_number",
              "type": "u64"
            },
            {
              "name": "next_sequence_number",
              "type": "u64"
            },
            {
              "name": "signer_cap",
              "type": "0x1::option::Option<0x1::account::SignerCapability>"
            },
            {
              "name": "metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            },
            {
              "name": "add_owners_events",
              "type": "0x1::event::EventHandle<0x1::multisig_account::AddOwnersEvent>"
            },
            {
              "name": "remove_owners_events",
              "type": "0x1::event::EventHandle<0x1::multisig_account::RemoveOwnersEvent>"
            },
            {
              "name": "update_signature_required_events",
              "type": "0x1::event::EventHandle<0x1::multisig_account::UpdateSignaturesRequiredEvent>"
            },
            {
              "name": "create_transaction_events",
              "type": "0x1::event::EventHandle<0x1::multisig_account::CreateTransactionEvent>"
            },
            {
              "name": "vote_events",
              "type": "0x1::event::EventHandle<0x1::multisig_account::VoteEvent>"
            },
            {
              "name": "execute_rejected_transaction_events",
              "type": "0x1::event::EventHandle<0x1::multisig_account::ExecuteRejectedTransactionEvent>"
            },
            {
              "name": "execute_transaction_events",
              "type": "0x1::event::EventHandle<0x1::multisig_account::TransactionExecutionSucceededEvent>"
            },
            {
              "name": "transaction_execution_failed_events",
              "type": "0x1::event::EventHandle<0x1::multisig_account::TransactionExecutionFailedEvent>"
            },
            {
              "name": "metadata_updated_events",
              "type": "0x1::event::EventHandle<0x1::multisig_account::MetadataUpdatedEvent>"
            }
          ]
        },
        {
          "name": "MultisigAccountCreationMessage",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "chain_id",
              "type": "u8"
            },
            {
              "name": "account_address",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "owners",
              "type": "vector<address>"
            },
            {
              "name": "num_signatures_required",
              "type": "u64"
            }
          ]
        },
        {
          "name": "MultisigAccountCreationWithAuthKeyRevocationMessage",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "chain_id",
              "type": "u8"
            },
            {
              "name": "account_address",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "owners",
              "type": "vector<address>"
            },
            {
              "name": "num_signatures_required",
              "type": "u64"
            }
          ]
        },
        {
          "name": "MultisigTransaction",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "payload",
              "type": "0x1::option::Option<vector<u8>>"
            },
            {
              "name": "payload_hash",
              "type": "0x1::option::Option<vector<u8>>"
            },
            {
              "name": "votes",
              "type": "0x1::simple_map::SimpleMap<address, bool>"
            },
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "creation_time_secs",
              "type": "u64"
            }
          ]
        },
        {
          "name": "RemoveOwners",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            },
            {
              "name": "owners_removed",
              "type": "vector<address>"
            }
          ]
        },
        {
          "name": "RemoveOwnersEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "owners_removed",
              "type": "vector<address>"
            }
          ]
        },
        {
          "name": "TransactionExecutionFailed",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            },
            {
              "name": "executor",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "transaction_payload",
              "type": "vector<u8>"
            },
            {
              "name": "num_approvals",
              "type": "u64"
            },
            {
              "name": "execution_error",
              "type": "0x1::multisig_account::ExecutionError"
            }
          ]
        },
        {
          "name": "TransactionExecutionFailedEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "executor",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "transaction_payload",
              "type": "vector<u8>"
            },
            {
              "name": "num_approvals",
              "type": "u64"
            },
            {
              "name": "execution_error",
              "type": "0x1::multisig_account::ExecutionError"
            }
          ]
        },
        {
          "name": "TransactionExecutionSucceeded",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            },
            {
              "name": "executor",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "transaction_payload",
              "type": "vector<u8>"
            },
            {
              "name": "num_approvals",
              "type": "u64"
            }
          ]
        },
        {
          "name": "TransactionExecutionSucceededEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "executor",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "transaction_payload",
              "type": "vector<u8>"
            },
            {
              "name": "num_approvals",
              "type": "u64"
            }
          ]
        },
        {
          "name": "UpdateSignaturesRequired",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            },
            {
              "name": "old_num_signatures_required",
              "type": "u64"
            },
            {
              "name": "new_num_signatures_required",
              "type": "u64"
            }
          ]
        },
        {
          "name": "UpdateSignaturesRequiredEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "old_num_signatures_required",
              "type": "u64"
            },
            {
              "name": "new_num_signatures_required",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d0100100210260336ab0104e10126058702e30107ea03e00408ca082006ea0822108c0991010a9d0a2d0cca0afc040dc60f0e0fd40f0400000004000b00160019001b0020002a000104000103040204000400000507000007070000080800020a040203010001061f0701000000100001000100110001000100120201000102130405020300010014050600010215070102030001031702020001001809050001041a01020001051c0b02010001021d0c0d02030001011e0f100207050106211105010001062212130100010123141502070401012417050204040101251718020704010126191a0207040101151b01020704010327020200010128011d0204040101291e0102040401072b00010001022c011f0203040103030503090a0a030b0e0c020d020e0e0e160f16101611161216120e1416140e1516150e170301060c0001030203080002060b0502090009010900010101080003070b0502090009010900090104070804030103030503030108030106090002070b0502090009010900010709010208030302060b010209000901060900010b0601090101060b0601090001070b0601090001090002070b0102090009010609000109010208020101060b01020900090102090006090101070b010209000901020900090103070b010209000901090009010c070804080303030708000b0601030802010601080208030802010b01020900090102070b01020900090103010b050209000901010804106e6f6e63655f76616c69646174696f6e064275636b65741a6e6f6e6365735f6f7264657265645f62795f6578705f74696d650d4269674f7264657265644d61700f6269675f6f7264657265645f6d6170134e6f6e63654b65795769746845787054696d65156e6f6e63655f746f5f6578705f74696d655f6d6170084e6f6e63654b65790c4e6f6e6365486973746f72790b6e6f6e63655f7461626c65055461626c65057461626c65086e6578745f6b65790e73656e6465725f61646472657373056e6f6e63651374786e5f65787069726174696f6e5f74696d650a696e697469616c697a6516696e697469616c697a655f6e6f6e63655f7461626c65116164645f6e6f6e63655f6275636b65747308636f6e7461696e730c656d7074795f6275636b657403616464056572726f720d696e76616c69645f737461746516636865636b5f616e645f696e736572745f6e6f6e63650974696d657374616d700b6e6f775f7365636f6e64730a6170746f735f68617368137369705f686173685f66726f6d5f76616c75650a626f72726f775f6d757403676574064f7074696f6e066f7074696f6e0769735f736f6d6507657874726163740672656d6f76650869735f656d7074790c626f72726f775f66726f6e7409706f705f66726f6e7410696e76616c69645f617267756d656e74116e65775f776974685f7265757361626c6514616c6c6f636174655f73706172655f736c6f74731073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b036e6577167472616e73616374696f6e5f76616c69646174696f6e0767656e6573697300000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76315e02e9030000000000001e455f4e4f4e43455f484953544f52595f444f45535f4e4f545f455849535400ea0300000000000029455452414e53414354494f4e5f45585049524154494f4e5f544f4f5f4641525f494e5f465554555245000000000202020b0102080201060b0102080303040202090b05020308000c030302020d050e030202030f030d050e030003000001030b001101020201040101084207002901043f07002a010c010600000000000000000c02090c030b000c040a0304390b02060100000000000000160c020a020a042304360a011000140650c300000000000025031d050c0a0110010a0110001438000425052d0a010f010a0110001408110438010a01100014060100000000000000160a010f0015050c0b010102080c0305120b0101053806e90300000000000011062707030001011ca4010700290104a1010a0211080641000000000000001625049e0107002a010c030a000a0112020c040e0438020650c3000000000000190c0511080c060a0310010a053800041d05230a030f010a0509110438010b030f010b0538030c070a0710020e0438040c080e083805033105550d0838060c050a050a0626043c0b070109020a020a05064100000000000000162504460b070109020a070f020e043807010a070f030b050a000a0112030c090e093808010600000000000000000c050a0506050000000000000023049b010a0710033809200c0a0b0a0363058a010a071003380a0c0b0c0c0b0b010e0c100414064100000000000000160a06230373058a010a070f03380b01010a070f020e0c1005140e0c10061412020c0d0e0d3807010b05060100000000000000160c0505570a020b000b0112030c0e0a070f030b0e08380c0b070f020b040b02380d0802090c0a056006ea0300000000000011132706e903000000000000110627040000000611380e380f12000c010b000307050f0d010f0306050000000000000038100d010f0206050000000000000038110b01020101040020100a00111607002901030d381206000000000000000012010c010b000b012d01020b0001050c0101010000010000030003010302002d002e00",
    "abi": {
      "address": "0x1",
      "name": "nonce_validation",
      "friends": [
        "0x1::transaction_validation",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "add_nonce_buckets",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": []
        },
        {
          "name": "check_and_insert_nonce",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "u64",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "initialize_nonce_table",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Bucket",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "nonces_ordered_by_exp_time",
              "type": "0x1::big_ordered_map::BigOrderedMap<0x1::nonce_validation::NonceKeyWithExpTime, bool>"
            },
            {
              "name": "nonce_to_exp_time_map",
              "type": "0x1::big_ordered_map::BigOrderedMap<0x1::nonce_validation::NonceKey, u64>"
            }
          ]
        },
        {
          "name": "NonceHistory",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "nonce_table",
              "type": "0x1::table::Table<u64, 0x1::nonce_validation::Bucket>"
            },
            {
              "name": "next_key",
              "type": "u64"
            }
          ]
        },
        {
          "name": "NonceKey",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "sender_address",
              "type": "address"
            },
            {
              "name": "nonce",
              "type": "u64"
            }
          ]
        },
        {
          "name": "NonceKeyWithExpTime",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "txn_expiration_time",
              "type": "u64"
            },
            {
              "name": "sender_address",
              "type": "address"
            },
            {
              "name": "nonce",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b01000602060c0312d00104e2011005f201b50107a703f603089d072010bd07cd040a8a0c0f0c990c9d0a0db6160800000006000c0001040001050402030100010008000100010108030102030001000904050001000a06050001000b05040001010b070402030001020d06060001000e04050001000f0809000101100a0b0203000102110606000101120c040203000100130e09000100140f0900010015100900010002120600010016000600010004000900010017130600010018140900010109040702030401001908090001011a0a1602030001001b08060001001c12060001011d190602030001011e031a02030001001f1b06000100031209000100201d04000100211e0400010022200600010102050209020b021402160219021a020206080005010102050402060b0102090009010900000108000103010b010209000901030708000504010402070b01020900090109000107090103070b0102090009010900090103070404040206080003030608000303040608000404040201040106080002060800040307080005030504030703040704010901030704040704050303070304070401060b010209000901010609010306080004030201030407080005050402070800030107030406080004030410706f6f6c5f7536345f756e626f756e6404506f6f6c0b746f74616c5f636f696e730c746f74616c5f736861726573067368617265730f5461626c65576974684c656e677468117461626c655f776974685f6c656e6774680e7363616c696e675f666163746f7208636f6e7461696e73036e65771a6372656174655f776974685f7363616c696e675f666163746f720d64657374726f795f656d707479056572726f720d696e76616c69645f7374617465066372656174650a6164645f7368617265730a626f72726f775f6d757410696e76616c69645f617267756d656e740361646410616d6f756e745f746f5f73686172657321616d6f756e745f746f5f7368617265735f776974685f746f74616c5f636f696e73146d756c7469706c795f7468656e5f6469766964650762616c616e6365107368617265735f746f5f616d6f756e74066275795f696e0d6465647563745f7368617265730672656d6f76650d72656465656d5f736861726573127368617265686f6c646572735f636f756e74066c656e67746806626f72726f77217368617265735f746f5f616d6f756e745f776974685f746f74616c5f636f696e730f7472616e736665725f736861726573127570646174655f746f74616c5f636f696e73217368617265735f746f5f616d6f756e745f776974685f746f74616c5f7374617473000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631990407010000000000000016455348415245484f4c4445525f4e4f545f464f554e44205368617265686f6c646572206e6f742070726573656e7420696e20706f6f6c2e02000000000000001645544f4f5f4d414e595f5348415245484f4c444552532c54686572652061726520746f6f206d616e79207368617265686f6c6465727320696e2074686520706f6f6c2e03000000000000001245504f4f4c5f49535f4e4f545f454d5054591e43616e6e6f742064657374726f79206e6f6e2d656d70747920706f6f6c2e04000000000000001445494e53554646494349454e545f5348415245533f43616e6e6f742072656465656d206d6f726520736861726573207468616e20746865207368617265686f6c6465722068617320696e2074686520706f6f6c2e05000000000000001c455348415245484f4c4445525f5348415245535f4f564552464c4f57315368617265686f6c6465722063616e6e6f742068617665206d6f7265207468616e207536342e6d6178207368617265732e06000000000000001a45504f4f4c5f544f54414c5f434f494e535f4f564552464c4f5729506f6f6c277320746f74616c20636f696e732063616e6e6f7420657863656564207536342e6d61782e07000000000000001b45504f4f4c5f544f54414c5f5348415245535f4f564552464c4f572a506f6f6c277320746f74616c207368617265732063616e6e6f7420657863656564207536342e6d61782e000000020402030304040b0102050407030001000004050b0010000b013800020201000004030601000000000000001103020401000004100e0010011406000000000000000021040d0b001300013801010102060300000000000000110627070100000402110202080000000d330a002e0a01110004220b000f000b0138020c030a03140c0432ffffffffffffffffffffffffffffffff0a04170a0226041d0b040b02160a03150b03140c050b05020b0301060500000000000000110a270a02320000000000000000000000000000000024042e0b000f000b010a0238030b020c05051b0b00010b020c05051b0c01000004070a000b010b00100114110d020d01000011260a0010011406000000000000000021041f080c030b0304140b01350b0010021435180c040b04020a000b01350b001003140b0235110e0c0405120a001003143200000000000000000000000000000000210c0305080f01000004040b00100114021001000009080a000b0111110c020b000b021112021301000015440a020600000000000000002104080b00013200000000000000000000000000000000020a002e0a02110c0c0306ffffffffffffffff0a00100114170a0226043f32ffffffffffffffffffffffffffffffff0a00100314170a0326043a0b020c040a000f010c050a05140b04160b05150a030c060a000f030c070a07140b06160b07150b000b010a031108010b03020b0001060700000000000000110a270b0001060600000000000000110a27030100000406060000000000000000320000000000000000000000000000000038040b001200021500000017360a002e0a01110004310a002e0a0111110a0226042c0a000f000a0138020c030b020c040a030c050a05140b04170b05150b03140c040a0432000000000000000000000000000000002104290b000f000b013805010b04020b000105270b0001060400000000000000110a270b0001060100000000000000110a270e01000004130b00010a0332000000000000000000000000000000002204100b014d0b024d180b034d1a3502060400000000000000110a271701000018400a002e0a011100043b0a002e0a0111110a022604360a0232000000000000000000000000000000002104140b0001060000000000000000020a002e0a0211120c030a030c040a000f010c050a05140b04170b05150a020c060a000f030c070a07140b06170b07150b000b010b021115010b03020b0001060400000000000000110a270b0001060100000000000000110a271801000004040b0010003806021101000009110a000a011100040c0b0010000b013807140c020b02020b000132000000000000000000000000000000000c02050a1201000004070a000b010b00100114111b021b0100001c220a0010011406000000000000000021041b080c030b0304100b00010600000000000000000c040b04020a000b010b02350b00100314110e340c04050e0a001003143200000000000000000000000000000000210c0305081c01000004040b00100314021d01000004280a002e0a01110004230a002e0a0111110a0326041e0a0332000000000000000000000000000000002104130b0001020a000b010a031115010b000b020b03110801020b0001060400000000000000110a270b0001060100000000000000110a271e0100001f070b000f010c020b010b0215021f0100001c1e0a00100114060000000000000000210419080c040b0404100b00010600000000000000000c050b05020b000b010b02350b03110e340c05050e0a033200000000000000000000000000000000210c040508000200000003000100",
    "abi": {
      "address": "0x1",
      "name": "pool_u64_unbound",
      "friends": [],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool",
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::pool_u64_unbound::Pool"
          ]
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::pool_u64_unbound::Pool"
          ],
          "return": []
        },
        {
          "name": "create",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::pool_u64_unbound::Pool"
          ]
        },
        {
          "name": "amount_to_shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool",
            "u64"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "amount_to_shares_with_total_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool",
            "u64",
            "u64"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "total_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "balance",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool",
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "buy_in",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::pool_u64_unbound::Pool",
            "address",
            "u64"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "create_with_scaling_factor",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::pool_u64_unbound::Pool"
          ]
        },
        {
          "name": "multiply_then_divide",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool",
            "u128",
            "u128",
            "u128"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "redeem_shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::pool_u64_unbound::Pool",
            "address",
            "u128"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "shareholders_count",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool",
            "address"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "shares_to_amount",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool",
            "u128"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "shares_to_amount_with_total_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool",
            "u128",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "total_shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "transfer_shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::pool_u64_unbound::Pool",
            "address",
            "address",
            "u128"
          ],
          "return": []
        },
        {
          "name": "update_total_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::pool_u64_unbound::Pool",
            "u64"
          ],
          "return": []
        },
        {
          "name": "shares_to_amount_with_total_stats",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool",
            "u128",
            "u64",
            "u128"
          ],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": [
        {
          "name": "Pool",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "total_coins",
              "type": "u64"
            },
            {
              "name": "total_shares",
              "type": "u128"
            },
            {
              "name": "shares",
              "type": "0x1::table_with_length::TableWithLength<address, u128>"
            },
            {
              "name": "scaling_factor",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c01001202121403268d0104b3011205c501a40107e902ff0308e806200688072410ac07e5010a91090a0c9b09a9020dc40b02000000040006000b000c000e0012001a001f00010800010307020000000002050600030a0800000700010001020702030001000804010001000906010001040d0801010001050f0809000104100a0101000100110b01000106130c01000100140d0e00010115101102040401011612130204040101171415020404010118160102040401021902010001071b15150001071c15150001011d011602040401011e18010204040108201a110100010221091b0001040706070a0f0b0f0c0f0d0f110f120f131903060c0a020a020002060c0a02020c080204060c0c08020a020208020c04060c0a020a020301080301060c010503060c050304060c0a020a020a0a0203060c0a020a0a0202060c050108020205080202060b010209000901060900010102070b010209000901060900020900090101060b0102090009010103010b0102090009010305070800080203070b01020900090109000901010201060a0900010a020305050a02107265736f757263655f6163636f756e7409436f6e7461696e65720573746f72650953696d706c654d61700a73696d706c655f6d6170105369676e65724361706162696c697479076163636f756e74176372656174655f7265736f757263655f6163636f756e7436726f746174655f6163636f756e745f61757468656e7469636174696f6e5f6b65795f616e645f73746f72655f6361706162696c697479206372656174655f7265736f757263655f6163636f756e745f616e645f66756e64094170746f73436f696e0a6170746f735f636f696e04636f696e087265676973746572067369676e65720a616464726573735f6f66087472616e736665722b6372656174655f7265736f757263655f6163636f756e745f616e645f7075626c6973685f7061636b61676504636f6465137075626c6973685f7061636b6167655f74786e1d72657472696576655f7265736f757263655f6163636f756e745f6361700c636f6e7461696e735f6b65790672656d6f7665066c656e6774680d64657374726f795f656d70747922726f746174655f61757468656e7469636174696f6e5f6b65795f696e7465726e616c056572726f7210696e76616c69645f617267756d656e74096e6f745f666f756e64066372656174650361646406766563746f720869735f656d707479166765745f61757468656e7469636174696f6e5f6b657900000000000000000000000000000000000000000000000000000000000000010a022120000000000000000000000000000000000000000000000000000000000000000014636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631b1010201000000000000001845434f4e5441494e45525f4e4f545f5055424c495348454427436f6e7461696e6572207265736f75726365206e6f7420666f756e6420696e206163636f756e7402000000000000001745554e415554484f52495a45445f4e4f545f4f574e455244546865207265736f75726365206163636f756e7420776173206e6f742063726561746564206279207468652073706563696669656420736f75726365206163636f756e740000000201020b01020508020001040100050b0a000b0111010c030c040b000b040b030b02110202030104010005120a000b0111010c040c050e0538000a000e0511050b0338010b000b050b040b021102020701040100050f0a000b0111010c040c050e050b020b0311080b000b050b040700110202090100010017300a012900042b0a0011050c020a012a000c030a0310000e02380204240a030f000e0238030c04010b031000380406000000000000000021031b051f0b012c00130038050b000700110e0b04020b00010b0301060200000000000000110f270b000106010000000000000011102702000001001c230a0011050c040a04290003200b00380612002d000a042a000e0111050c050f000b050b0238070e033808041d0b0411140c060e010b06110e020b030c0605190b0001050a000000",
    "abi": {
      "address": "0x1",
      "name": "resource_account",
      "friends": [],
      "exposed_functions": [
        {
          "name": "create_resource_account",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "create_resource_account_and_fund",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "create_resource_account_and_publish_package",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "retrieve_resource_account_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": [
            "0x1::account::SignerCapability"
          ]
        }
      ],
      "structs": [
        {
          "name": "Container",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "store",
              "type": "0x1::simple_map::SimpleMap<address, 0x1::account::SignerCapability>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c01002202229b0103bd01ae0404eb055c05c706f90407c00b981508d8202006f82025109d219c0c0ab92dbf020cf82fb6140dae44240000002300260029002f0034004a004f005000540059005b006100700083010093010001060000050600000606000008060000090800000b0600000e0600000f06000010060000140600001506000017060000180600001b0600001c0600001d0600001e0f000020040001220c000225040003280600002a0000002c0800042e040106010030060000310800053307020000000000370600003d0600004006000043060000460600074e08000852040100010d720b000f920107010000004900010001064b02030001004c04010001054d0607020404010851090a01000101530b0100010955010c000104560e0101060104571001010601000a030300010058121300010a5a14130100010b5c1601010001005d12030001035e17030001005f180100010960010c00010c621a1a00010013041a000105631c1d0204040100641e0100010165031f00010066200100010267211a000105681c0c020404010c691a1a0001006a25260001036b27280001016c29010001016d022a0001006e2c010001006f2d0300010d71012f00010d73303100010874321a01000100750233000102761a34000105773501020404010c781a1a00010c791a1a0001007a04010001007b39010001017c3b2e0001087d0a01010001027e3c1a0001027f3c3d00010280013e1a0001028101211a00010882013f0a0100010e840140010100010285014301000100860145460001008701041a000105760147020404010388010248010601008901041a0001008a014e010001008b014f1a00010c8c011a1a0001018d0151010001008e0118010001018f015401000100900104030001009101035700010f94010e580100010f9501015801000100960104460001009701040c000100980159010001059901065a02040401019a015b010001009b014e010001009c0118010001009d0100010001009e0100010001029f013c1a000102a0013e1a000102a101651a000102a201651a000102a3016601000100a4014e01000101a5010303000101a6015b01000103050408070d080f0b030c150719130507220823180522082505073608372b083008310807410842350536373649364a360f364b364c364d362336420752084b0755084a400341034505075c084d0760084c3662076308620768084903060c05030001060c01050205050205081102070b1a02090009010609000107090101082002060c03010b21010900020608120b21010820010101080001090001080102070b17010900090004050708190708110b210108200305050a02010a0201060900010202070a09000a09000206050a0202060c050108050103030505070502060b1a02090009010609000106090105050708110503070b170108070403030303040708130305030307081305030108060108070307081303080704060c05050a02030c0814081202060c0a02020c081404060c0305050108120408140c08120c06060c050503030a0206060c05050b21010820030a02010b210108200108220106082202030301060b2101090001081901081303070b1a0209000901090009010108080108090b010822030305070819070b1a02050811081208140c05040505070811070b1701080b02070819070811020608120301060813010a05020608130502070b210109000302050b2101090001080a01080b0207081303080503030b21010820010708130a05050106081103030303010b1a0209000901010b1701090001081b01080f01080d01080301081c03060c05050405070811070b17010807070b1701080d08050101070819070811070b1701080d070b1701080705020306081201080c04030305080d0106081201080e0305070819070811010b230105010b2301090004060c0505030209000901020608120501081d0705070819070b1a0205081108110703050502050303050303010802060507081907081103030501081801081e06010507081907081103070303060813030304070813050503070a05060a05030305030301081f040507081907081105107374616b696e675f636f6e7472616374084164645374616b65086f70657261746f720c706f6f6c5f6164647265737306616d6f756e740d4164645374616b654576656e740b556e6c6f636b5374616b650f636f6d6d697373696f6e5f7061696410556e6c6f636b5374616b654576656e741642656e6566696369617279466f724f70657261746f721862656e65666963696172795f666f725f6f70657261746f721953657442656e6566696369617279466f724f70657261746f720f6f6c645f62656e65666963696172790f6e65775f62656e65666963696172790f416464446973747269627574696f6e14416464446973747269627574696f6e4576656e74154372656174655374616b696e67436f6e747261637405766f746572097072696e636970616c15636f6d6d697373696f6e5f70657263656e746167651a4372656174655374616b696e67436f6e74726163744576656e740a4469737472696275746509726563697069656e740f446973747269627574654576656e741152657175657374436f6d6d697373696f6e13616363756d756c617465645f7265776172647311636f6d6d697373696f6e5f616d6f756e741652657175657374436f6d6d697373696f6e4576656e740b52657365744c6f636b75701052657365744c6f636b75704576656e74065374616b6572067374616b65720f5374616b696e67436f6e7472616374096f776e65725f6361700f4f776e65724361706162696c697479057374616b6511646973747269627574696f6e5f706f6f6c04506f6f6c08706f6f6c5f7536340a7369676e65725f636170105369676e65724361706162696c697479076163636f756e74155374616b696e6747726f7570436f6e7461696e65720b64756d6d795f6669656c64215374616b696e6747726f7570557064617465436f6d6d697373696f6e4576656e74187570646174655f636f6d6d697373696f6e5f6576656e74730b4576656e7448616e646c65056576656e7415557064617465436f6d6d697373696f6e4576656e740553746f7265117374616b696e675f636f6e7472616374730953696d706c654d61700a73696d706c655f6d61701e6372656174655f7374616b696e675f636f6e74726163745f6576656e7473137570646174655f766f7465725f6576656e747310557064617465566f7465724576656e741372657365745f6c6f636b75705f6576656e7473106164645f7374616b655f6576656e747319726571756573745f636f6d6d697373696f6e5f6576656e747313756e6c6f636b5f7374616b655f6576656e7473167377697463685f6f70657261746f725f6576656e7473135377697463684f70657261746f724576656e74176164645f646973747269627574696f6e5f6576656e747311646973747269627574655f6576656e74730e5377697463684f70657261746f720c6f6c645f6f70657261746f720c6e65775f6f70657261746f7210557064617465436f6d6d697373696f6e196f6c645f636f6d6d697373696f6e5f70657263656e74616765196e65775f636f6d6d697373696f6e5f70657263656e746167650b557064617465566f746572096f6c645f766f746572096e65775f766f746572096164645f7374616b65067369676e65720a616464726573735f6f661e6173736572745f7374616b696e675f636f6e74726163745f6578697374730a626f72726f775f6d7574094170746f73436f696e0a6170746f735f636f696e04636f696e08776974686472617704436f696e126164645f7374616b655f776974685f6361700866656174757265731e6d6f64756c655f6576656e745f6d6967726174696f6e5f656e61626c656404656d69740a656d69745f6576656e741c6372656174655f7265736f757263655f6163636f756e745f736565640362637308746f5f627974657306766563746f7206617070656e641f6765745f65787065637465645f7374616b655f706f6f6c5f61646472657373176372656174655f7265736f757263655f616464726573731c7365745f62656e65666963696172795f666f725f6f70657261746f72236f70657261746f725f62656e65666963696172795f6368616e67655f656e61626c6564056572726f720d696e76616c69645f737461746506626f72726f77106164645f646973747269627574696f6e096765745f7374616b65187570646174655f646973747269627574696f6e5f706f6f6c066275795f696e0c636f6e7461696e735f6b6579096e6f745f666f756e64116372656174655f7374616b655f706f6f6c176372656174655f7265736f757263655f6163636f756e7416696e697469616c697a655f7374616b655f6f776e657211657874726163745f6f776e65725f636170176372656174655f7374616b696e675f636f6e7472616374226372656174655f7374616b696e675f636f6e74726163745f776974685f636f696e730e7374616b696e675f636f6e666967036765740d5374616b696e67436f6e666967126765745f72657175697265645f7374616b650576616c75651c6e65775f7374616b696e675f636f6e7472616374735f686f6c64657206637265617465036164640e616c72656164795f65786973747310696e76616c69645f617267756d656e740a6469737472696275746513646973747269627574655f696e7465726e616c1177697468647261775f776974685f6361700c64657374726f795f7a65726f127368617265686f6c646572735f636f756e740c7368617265686f6c64657273067368617265730d72656465656d5f73686172657307657874726163740d6170746f735f6163636f756e740d6465706f7369745f636f696e73127570646174655f746f74616c5f636f696e73256765745f7374616b696e675f636f6e74726163745f616d6f756e74735f696e7465726e616c176c6173745f7265636f726465645f7072696e636970616c106e65775f6576656e745f68616e646c651b70656e64696e675f646973747269627574696f6e5f636f756e747312726571756573745f636f6d6d697373696f6e1b726571756573745f636f6d6d697373696f6e5f696e7465726e616c0f756e61757468656e746963617465640f756e6c6f636b5f776974685f6361700c72657365745f6c6f636b757018696e6372656173655f6c6f636b75705f776974685f636170127374616b655f706f6f6c5f616464726573730e7374616b65725f61646472657373064f7074696f6e066f7074696f6e04736f6d65046e6f6e65187374616b696e675f636f6e74726163745f616d6f756e7473177374616b696e675f636f6e74726163745f6578697374730f7377697463685f6f70657261746f720672656d6f7665157365745f6f70657261746f725f776974685f636170247377697463685f6f70657261746f725f776974685f73616d655f636f6d6d697373696f6e0e756e6c6f636b5f726577617264730c756e6c6f636b5f7374616b65107570646174655f636f6d6d6973696f6e0b746f74616c5f636f696e730762616c616e6365217368617265735f746f5f616d6f756e745f776974685f746f74616c5f636f696e7321616d6f756e745f746f5f7368617265735f776974685f746f74616c5f636f696e730f7472616e736665725f7368617265730c7570646174655f766f746572136765745f64656c6567617465645f766f7465721c7365745f64656c6567617465645f766f7465725f776974685f63617000000000000000000000000000000000000000000000000000000000000000010a0222216170746f735f6672616d65776f726b3a3a7374616b696e675f636f6e747261637414636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631e80b0901000000000000001a45494e53554646494349454e545f5354414b455f414d4f554e546053746f726520616d6f756e74206d757374206265206174206c6561737420746865206d696e207374616b6520726571756972656420666f722061207374616b6520706f6f6c20746f206a6f696e207468652076616c696461746f72207365742e02000000000000001e45494e56414c49445f434f4d4d495353494f4e5f50455243454e5441474532436f6d6d697373696f6e2070657263656e746167652068617320746f206265206265747765656e203020616e64203130302e030000000000000025454e4f5f5354414b494e475f434f4e54524143545f464f554e445f464f525f5354414b4552205374616b657220686173206e6f207374616b696e6720636f6e7472616374732e040000000000000027454e4f5f5354414b494e475f434f4e54524143545f464f554e445f464f525f4f50455241544f523a4e6f207374616b696e6720636f6e7472616374206265747765656e20746865207374616b657220616e64206f70657261746f7220666f756e642e05000000000000001d4543414e545f4d455247455f5354414b494e475f434f4e545241435453225374616b696e6720636f6e7472616374732063616e2774206265206d65726765642e060000000000000020455354414b494e475f434f4e54524143545f414c52454144595f4558495354533d546865207374616b696e6720636f6e747261637420616c72656164792065786973747320616e642063616e6e6f742062652072652d637265617465642e07000000000000002645494e53554646494349454e545f4143544956455f5354414b455f544f5f5749544844524157694e6f7420656e6f75676820616374697665207374616b6520746f2077697468647261772e20536f6d65207374616b65206d69676874207374696c6c2070656e64696e6720616e642077696c6c2062652061637469766520696e20746865206e6578742065706f63682e080000000000000026454e4f545f5354414b45525f4f525f4f50455241544f525f4f525f42454e45464943494152593b43616c6c6572206d7573742062652065697468657220746865207374616b65722c206f70657261746f722c206f722062656e65666963696172792e09000000000000002a454f50455241544f525f42454e45464943494152595f4348414e47455f4e4f545f535550504f52544544364368616e67696e672062656e6566696369617269657320666f72206f70657261746f7273206973206e6f7420737570706f727465642e0d084164645374616b650104000a446973747269627574650104000b52657365744c6f636b75700104000b556e6c6f636b5374616b650104000b557064617465566f7465720104000e5377697463684f70657261746f720104000f416464446973747269627574696f6e01040010557064617465436f6d6d697373696f6e0104001152657175657374436f6d6d697373696f6e010400154372656174655374616b696e67436f6e7472616374010400155374616b696e6747726f7570436f6e7461696e6572010201076d6f64756c655f1953657442656e6566696369617279466f724f70657261746f72010400215374616b696e6747726f7570557064617465436f6d6d697373696f6e4576656e740103012c3078313a3a7374616b696e675f636f6e74726163743a3a5374616b696e6747726f7570436f6e7461696e6572090e7374616b65725f61646472657373010100127374616b655f706f6f6c5f6164647265737301010015636f6d6d697373696f6e5f70657263656e74616765010100176c6173745f7265636f726465645f7072696e636970616c010100177374616b696e675f636f6e74726163745f6578697374730101001862656e65666963696172795f666f725f6f70657261746f72010100187374616b696e675f636f6e74726163745f616d6f756e74730101001b70656e64696e675f646973747269627574696f6e5f636f756e74730101001f6765745f65787065637465645f7374616b655f706f6f6c5f61646472657373010100000203020503050403010203020503050403020204020503050403070303020402050305040307030402010a0505020302050c050d0506020302050305040307020302050305040308020502051105030512031303090205020511050305120313030a020402050305160504030b020402050305160504030c02040205030519031a030d02040205030519031a030e0202020503050f0202020503051002011f051102061203030521081213032408132708141502012b011602012d0b1701081819020a320b1a02050811350b17010809360b1701081b380b1701080f390b170108013a0b1701080d3b0b170108033c0b1701081c3e0b170108073f0b1701080b1d02034105420503051c02034105420503051e02041f050205440345031802041f050205440345031f020402050305470548051b02040205030547054805000104011411340a0011010c030a030a0111020b032a140c040a040f000e0138000c050b000a0238010c060a0510010b0611050a051002140a02160a050f02150b051003140c031106042c0b04010b010b030b0212003802020b040f040b010b030b0212013803052b0901000104010a0a00290404080b002b04100514020b00020a000000130f0e0038040c030d030e01380438050d03070038050d030b0238050b03020d01000001090a000b010b02110a0c020e000b02110e020f010401041b241110041f0a0011010c020a0211090c030a022904041a0b00010a022a040f050c040a010b04150b020b030b0112053806020b000a0112042d0405140b00010609000000000000001111271201000114010b0a000a0111020b002b1410000e0138071006140214000000242e0a010f070c050a0110031411150c060101010a050b060a000a0110061411160b050b020a031117010b011003140c02110604250b04010b000b020b0312063808020b000b020b0312070c070b040b0738090524020000011401100a002914040d0b002b1410000e01380a040a020604000000000000001119270603000000000000001119271a0000002b170a0011010a010b03110a0c030b000b03111b0c040c050e050600000000000000000b010b02111c0e05111d0c060b050b040b06021e010401142e0d0a000b0338010c060b000b010b020b060b040b05111f01021f0100011438770a040600000000000000002604740a04066400000000000000250c060b06046f11200c070e071121010c080e03380b0c090a090b0826046a0a0011010c0a0a0a2914041e05220a000a0011232d140a0a2a140c0b0a0b0f000c0c0a0c2e0e01380a03610b000a010a020b05111a0c0d0c0e0c0f0e0d0b0311050e0f0b0a12102d100e0f11010c100b0c0a010a090a100b0d0a0406140000000000000011240b0e1211380c110604570b0b010b010b020a100b090b041208380d0b10020b0b0f080b010b020a100b090b041209380e05550b00010b0b010b0c010606000000000000001126270b00010601000000000000001127270b0001060200000000000000112727090c0605082801040204143a120a000a0111020a002a140c020a020f000e0138000c030b000b010b030b020f09112902290000010444750a021003140c040a0411150c05010b05160c060a0210010b06112a0c070e07380b0c060a06060000000000000000210c08010b0804210b02010b03010b07380f020a020f070c090a090b060a010b0210061411160a092e112c0600000000000000002404620a092e112d0c0a0e0a0600000000000000004203140c0b0a092e0a0b112e0c060a090a0b0b06112f0c060a0b0a01210349054c0a0111090c0b0a0b0d070a06381038111106045a0a010a040b0b0b06120a3812052b0a030a010a040b0b0b06120b3813052b0b03010e07380b0600000000000000002404700b000b0738110b090600000000000000001132020b09010b07380f056f33000000461c0a001003141115010c01010b01160c020a020a00100214170c010a010b00100614180664000000000000001a0c030b020b010b03023401000114010b0a000a0111020b002b1410000e0138071002140223000000011538140a0038150a0038160a0038170a0038180a0038190a00381a0a00381b0a00381c0b00381d1214023701000114010b0a000a0111020b002b1410000e0138071007112c0238010402041450460b0011010c030a030a01210441080c040b04043b080c050b0504380a010a0211020a012a140c060a060f000e0238000c070a071006140600000000000000002104250b06010b0701020b010a020a070a060f0911290b020a060f0a0b060f0b0c080c090b070b090b0811390102060800000000000000113a270b030a021109210c05050d0a030a02210c04050939000000533a0a012e11330c040c050a04170a010f02150a040600000000000000002104160b01010b02010b0301060000000000000000020a000a010a000a040b0211140a040a011001113b0b011003140c06110604300b03010b000b060b050a04120c381e0b04020b000b060b050a04120d0c070b030b07381f052e3c0104011456250b0011010c020a020a0111020b022a140c030a030f000e0138000c040a041003140c020b041001113d1106041e0b03010b010b02120e3820020b030f0c0b010b02120f3821051d3e01000114010b0a000a0111020b002b1410000e013807100314023f01000110010b0a00291004090b002b10100d143822023823024201000114010a0a000a0111020b002b1410000e0138071133024301000114010b0a002914030509020b002b1410000e01380a024401040204145d510b0011010c040a040a0111020a042a140c050a050f000c060a062e0e02380a034a0a060e0138240c07010b040a010d070a050f0911290a010d070a050f0a0a050f0b1139010e0710010a0211460d070f060c080b030b08150e071003140c090b060a020b07380c110604420b05010b090c0a0b010b020b0a12153825020b050f0e0b010b020b091216382605410b05010b06010605000000000000001111274701040204145e100a0011010c030a030a0111020b030a0111120c040b000b010b020b041144024801040204145f110a0011010c020a020a0111020b020a011142170c040b000b010b0411490102490104020414615f0a020600000000000000002104070b0001020b0011010c030a030a0111020a032a140c040a040f000e0138000c050a030a010a050a040f0911290a010a050a040f0a0a040f0b11390c060a0510031411150101010c070a070a0223033005320b070c020a051002140a02170a050f02150a010a050b030a020a040f0a11140a020a051001113b0b051003140c03110604560b04010b030c080b010b080b020b0612023827020b040f0f0b010b030b020b061203382805554a010403041314645b0a020600000000000000002604580a02066400000000000000250c030b0304530a0011010c040a042914044e0a042a140c050a050f000e0138000c060a040a010a060a050f0911290a010a060a050f0a0b050f0b1139010a061006140c070b060f060c080a020b08150a042913034b0a000b00382912132d13110604410b040b010b070b021217382a020a042a130f100b040b010b070b021218382b05400b000105380b00010603000000000000001119270b0001060200000000000000112727090c03050816000000674e0a002e114b0a012104090b0001020a002e112d0c040e040c050600000000000000000c060a0541030c070a060a072304480a050a064203140c080a080a0222032205430a002e0a08112e0c090a002e0a08114c0c0a0a002e0b090a01114d0b0a170a03180664000000000000001a0c090a002e0b090a01114e0c090a000b080a020b09114f0b06060100000000000000160c0605140b05010b000b011132025001040114692d0b0011010c030a030a0111020b032a140c040a040f000e0138000c050a051003140c030a0311510c060b0510010a021152110604240b04010b010b030b060b021219382c020b040f110b010b030b060b02121a382d052314001102110011011404040011031104140114091408140514031000140714061300140200",
    "abi": {
      "address": "0x1",
      "name": "staking_contract",
      "friends": [],
      "exposed_functions": [
        {
          "name": "add_stake",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "beneficiary_for_operator",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_expected_stake_pool_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address",
            "vector<u8>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "set_beneficiary_for_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "commission_percentage",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "create_staking_contract",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address",
            "u64",
            "u64",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "create_staking_contract_with_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address",
            "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>",
            "u64",
            "vector<u8>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "distribute",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "last_recorded_principal",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "pending_distribution_counts",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "request_commission",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "reset_lockup",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "stake_pool_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "staker_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "0x1::option::Option<address>"
          ]
        },
        {
          "name": "staking_contract_amounts",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "u64",
            "u64",
            "u64"
          ]
        },
        {
          "name": "staking_contract_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "switch_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "switch_operator_with_same_commission",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "unlock_rewards",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "unlock_stake",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "update_commision",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "update_voter",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "AddStake",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "AddStakeEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "UnlockStake",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            },
            {
              "name": "commission_paid",
              "type": "u64"
            }
          ]
        },
        {
          "name": "UnlockStakeEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            },
            {
              "name": "commission_paid",
              "type": "u64"
            }
          ]
        },
        {
          "name": "BeneficiaryForOperator",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "beneficiary_for_operator",
              "type": "address"
            }
          ]
        },
        {
          "name": "SetBeneficiaryForOperator",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "old_beneficiary",
              "type": "address"
            },
            {
              "name": "new_beneficiary",
              "type": "address"
            }
          ]
        },
        {
          "name": "AddDistribution",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "AddDistributionEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "CreateStakingContract",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "principal",
              "type": "u64"
            },
            {
              "name": "commission_percentage",
              "type": "u64"
            }
          ]
        },
        {
          "name": "CreateStakingContractEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "principal",
              "type": "u64"
            },
            {
              "name": "commission_percentage",
              "type": "u64"
            }
          ]
        },
        {
          "name": "Distribute",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "recipient",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "DistributeEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "recipient",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "RequestCommission",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "accumulated_rewards",
              "type": "u64"
            },
            {
              "name": "commission_amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "RequestCommissionEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "accumulated_rewards",
              "type": "u64"
            },
            {
              "name": "commission_amount",
              "type": "u64"
            }
          ]
        },
        {
          "name": "ResetLockup",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "ResetLockupEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "Staker",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "staker",
              "type": "address"
            }
          ]
        },
        {
          "name": "StakingContract",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "principal",
              "type": "u64"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "owner_cap",
              "type": "0x1::stake::OwnerCapability"
            },
            {
              "name": "commission_percentage",
              "type": "u64"
            },
            {
              "name": "distribution_pool",
              "type": "0x1::pool_u64::Pool"
            },
            {
              "name": "signer_cap",
              "type": "0x1::account::SignerCapability"
            }
          ]
        },
        {
          "name": "StakingGroupContainer",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "StakingGroupUpdateCommissionEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "update_commission_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::UpdateCommissionEvent>"
            }
          ]
        },
        {
          "name": "Store",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "staking_contracts",
              "type": "0x1::simple_map::SimpleMap<address, 0x1::staking_contract::StakingContract>"
            },
            {
              "name": "create_staking_contract_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::CreateStakingContractEvent>"
            },
            {
              "name": "update_voter_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::UpdateVoterEvent>"
            },
            {
              "name": "reset_lockup_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::ResetLockupEvent>"
            },
            {
              "name": "add_stake_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::AddStakeEvent>"
            },
            {
              "name": "request_commission_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::RequestCommissionEvent>"
            },
            {
              "name": "unlock_stake_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::UnlockStakeEvent>"
            },
            {
              "name": "switch_operator_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::SwitchOperatorEvent>"
            },
            {
              "name": "add_distribution_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::AddDistributionEvent>"
            },
            {
              "name": "distribute_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::DistributeEvent>"
            }
          ]
        },
        {
          "name": "SwitchOperator",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "old_operator",
              "type": "address"
            },
            {
              "name": "new_operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "SwitchOperatorEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "old_operator",
              "type": "address"
            },
            {
              "name": "new_operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "UpdateCommission",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "staker",
              "type": "address"
            },
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "old_commission_percentage",
              "type": "u64"
            },
            {
              "name": "new_commission_percentage",
              "type": "u64"
            }
          ]
        },
        {
          "name": "UpdateCommissionEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "staker",
              "type": "address"
            },
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "old_commission_percentage",
              "type": "u64"
            },
            {
              "name": "new_commission_percentage",
              "type": "u64"
            }
          ]
        },
        {
          "name": "UpdateVoter",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_voter",
              "type": "address"
            },
            {
              "name": "new_voter",
              "type": "address"
            }
          ]
        },
        {
          "name": "UpdateVoterEvent",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_voter",
              "type": "address"
            },
            {
              "name": "new_voter",
              "type": "address"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a08010006030654055a14076ec40208b2032006d203980310ea0698030c820ae602000000020005000100010001010300020001000402030001020604040001000700010001000802010001000902030001000a02010001000b02030001000c00010001000d00010001000e00030001000f0203000100100203000101060c00010501010103090101010101010101011073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b067369676e65720a616464726573735f6f661a69735f6170746f735f6672616d65776f726b5f61646472657373056572726f72117065726d697373696f6e5f64656e696564146173736572745f636f72655f7265736f757263651c6173736572745f636f72655f7265736f757263655f616464726573731869735f636f72655f7265736f757263655f61646472657373196173736572745f6672616d65776f726b5f72657365727665641d69735f6672616d65776f726b5f72657365727665645f61646472657373216173736572745f6672616d65776f726b5f72657365727665645f61646472657373096173736572745f766d0569735f766d1369735f72657365727665645f616464726573730d69735f766d5f616464726573730000000000000000000000000000000000000000000000000000000000000001052000000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000a550c180520000000000000000000000000000000000000000000000000000000000000000a05200000000000000000000000000000000000000000000000000000000000000009052000000000000000000000000000000000000000000000000000000000000000080520000000000000000000000000000000000000000000000000000000000000000705200000000000000000000000000000000000000000000000000000000000000006052000000000000000000000000000000000000000000000000000000000000000050520000000000000000000000000000000000000000000000000000000000000000405200000000000000000000000000000000000000000000000000000000000000003052000000000000000000000000000000000000000000000000000000000000000020520000000000000000000000000000000000000000000000000000000000000000014636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631e4020401000000000000001a454e4f545f434f52455f5245534f555243455f414444524553534354686520616464726573732f6163636f756e7420646964206e6f7420636f72726573706f6e6420746f2074686520636f7265207265736f75726365206164647265737302000000000000000345564d2d546865206f7065726174696f6e2063616e206f6e6c7920626520706572666f726d65642062792074686520564d03000000000000001c454e4f545f4150544f535f4652414d45574f524b5f414444524553534454686520616464726573732f6163636f756e7420646964206e6f7420636f72726573706f6e6420746f2074686520636f7265206672616d65776f726b206164647265737304000000000000001f454e4f545f4652414d45574f524b5f52455345525645445f414444524553532d5468652061646472657373206973206e6f74206672616d65776f726b207265736572766564206164647265737300000001000001080b00110111020405020603000000000000001103270401000001040b0011011105020501000001070b0011060404020601000000000000001103270701000001070b0011080404020604000000000000001103270901000001040b0011011107020a01000001070b00110b0404020602000000000000001103270201000001040b00070021020601000001040b00070121020801000005540a001102044f080c010b01044a080c020b020445080c030b030440080c040b04043b080c050b050436080c060b060431080c070b07042c080c080b080427080c090b09020b000702210c0905250a000703210c0805210a000704210c07051d0a000705210c0605190a000706210c0505150a000707210c0405110a000708210c03050d0a000709210c0205090a00070a210c0105050c010000030b0a0011020407080c010b01020b00110d0c0105050b01000001040b001101110d020d01000001040b00070b210200",
    "abi": {
      "address": "0x1",
      "name": "system_addresses",
      "friends": [],
      "exposed_functions": [
        {
          "name": "assert_aptos_framework",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "assert_core_resource",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "assert_core_resource_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "assert_framework_reserved",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "assert_framework_reserved_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "assert_vm",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "is_aptos_framework_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_core_resource_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_framework_reserved_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_reserved_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_vm",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_vm_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0a01000802080c03143c0550240774ed0108e10220108103c8010ac904080cd1045d0dae0504000000040008000c000107000101070002070200000500010001000603010001020903040001010603050001000a06010001020506070001020b03080001030d09090001000e0b040001000f0b0500010208010501080000010708020105010801010a0201080201010103020802080001060800116665646572617465645f6b65796c657373095075626c69634b65790b6a776b5f61646472657373126b65796c6573735f7075626c69635f6b6579076b65796c657373036e657716646573657269616c697a655f7075626c69635f6b65790942435353747265616d0a6263735f73747265616d13646573657269616c697a655f61646472657373196e65775f7075626c69635f6b65795f66726f6d5f62797465730d6861735f72656d61696e696e67056572726f7210696e76616c69645f617267756d656e740f6765745f6a776b5f61646472657373166765745f6b65796c6573735f7075626c69635f6b6579000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631940101010000000000000032455f494e56414c49445f4645444552415445445f4b45594c4553535f5055424c49435f4b45595f45585452415f42595445535554686572652061726520657874726120627974657320696e2074686520696e707574207768656e20646573657269616c697a696e67206120466564657261746564204b65796c657373207075626c6963206b65792e000000020202050308010001000002040b010b001200020101000000060a0011020b001103120002040100000a0e0b0011050c010d0111010c020d011106030b0b02020601000000000000001107270803000002040b00100014020903000002040b00100114020000000100",
    "abi": {
      "address": "0x1",
      "name": "federated_keyless",
      "friends": [],
      "exposed_functions": [
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::keyless::PublicKey",
            "address"
          ],
          "return": [
            "0x1::federated_keyless::PublicKey"
          ]
        },
        {
          "name": "deserialize_public_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "0x1::federated_keyless::PublicKey"
          ]
        },
        {
          "name": "new_public_key_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::federated_keyless::PublicKey"
          ]
        },
        {
          "name": "get_jwk_address",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::federated_keyless::PublicKey"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_keyless_public_key",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::federated_keyless::PublicKey"
          ],
          "return": [
            "0x1::keyless::PublicKey"
          ]
        }
      ],
      "structs": [
        {
          "name": "PublicKey",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "jwk_address",
              "type": "address"
            },
            {
              "name": "keyless_public_key",
              "type": "0x1::keyless::PublicKey"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d01000c020c1c03285e0486010c0592013b07cd01a60308f304200693054710da05570ab106200cd106d4010da508020fa7080200000006000d000f0011001c00010700000307000105070000080700000a0f00020c0700051b0700000e00010001031000010001041201030104010413010401040100140102000100150102000100160601000100170601000104180401010601001901030001021a07080001051d08090001021e040b010701001f0c02000100200e0200010202030208020c0a0c0d0c0f01060c00010804010101090002080407080402060c0804010608050106080601060a020108000108050208020802010801030802080208020108031172616e646f6d6e6573735f636f6e66696709436f6e6669674f66660b64756d6d795f6669656c6408436f6e666967563111736563726563795f7468726573686f6c640c4669786564506f696e7436340d66697865645f706f696e743634187265636f6e737472756374696f6e5f7468726573686f6c6408436f6e66696756321b666173745f706174685f736563726563795f7468726573686f6c641052616e646f6d6e657373436f6e6669670776617269616e7403416e790c636f707961626c655f616e790c6f6e5f6e65775f65706f63681073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b0d636f6e6669675f6275666665720a646f65735f65786973740a657874726163745f76320763757272656e74076e65775f6f66660a696e697469616c697a65127365745f666f725f6e6578745f65706f63680675707365727407656e61626c656409747970655f6e616d6506537472696e6706737472696e67056279746573047061636b066e65775f7631066e65775f7632187265636f6e66696775726174696f6e5f776974685f646b670000000000000000000000000000000000000000000000000000000000000001052000000000000000000000000000000000000000000000000000000000000000010a0222213078313a3a72616e646f6d6e6573735f636f6e6669673a3a436f6e6669674f666614636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631240101000000000000001745494e56414c49445f434f4e4649475f56415249414e5400000000020102010102020408020708020302030408020708020908020402010b0805000300010305190a0011013800041638010c010700290304120b000107002a030c020b010b0215020b000b012d0305110b000105110401000103020c07002903040907002b03140c000b000211050c00050706010000010c0a0011010700290303090b000b012d03020b000105080701000001050b0011010b013802020901000103031107002903040e07002b031000110a110b140701220c000b0002090c00050c05010000010509120038031203020d01000001060b000b01120138041203020e01000001070b000b010b02120238051203020300002100",
    "abi": {
      "address": "0x1",
      "name": "randomness_config",
      "friends": [
        "0x1::reconfiguration_with_dkg"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "current",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::randomness_config::RandomnessConfig"
          ]
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::randomness_config::RandomnessConfig"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::randomness_config::RandomnessConfig"
          ],
          "return": []
        },
        {
          "name": "enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new_off",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::randomness_config::RandomnessConfig"
          ]
        },
        {
          "name": "new_v1",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::randomness_config::RandomnessConfig"
          ]
        },
        {
          "name": "new_v2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::randomness_config::RandomnessConfig"
          ]
        }
      ],
      "structs": [
        {
          "name": "ConfigOff",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "ConfigV1",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "secrecy_threshold",
              "type": "0x1::fixed_point64::FixedPoint64"
            },
            {
              "name": "reconstruction_threshold",
              "type": "0x1::fixed_point64::FixedPoint64"
            }
          ]
        },
        {
          "name": "ConfigV2",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "secrecy_threshold",
              "type": "0x1::fixed_point64::FixedPoint64"
            },
            {
              "name": "reconstruction_threshold",
              "type": "0x1::fixed_point64::FixedPoint64"
            },
            {
              "name": "fast_path_secrecy_threshold",
              "type": "0x1::fixed_point64::FixedPoint64"
            }
          ]
        },
        {
          "name": "RandomnessConfig",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "variant",
              "type": "0x1::copyable_any::Any"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d0100060206100316960104ac011005bc017d07b902c7010880042010a004770a97050d0ba405020ca605cd020df307040ef7070400000004000c00010402030100010103040203010001000600010203000101060301020300010007040502030401010704060203040100080007020300010108030702030001000908090203000101090a0902030001000a050402030001010b060402030001020d0b0b0001000e0c010203000100050c0b02030001000f080d02030001010f0a0d0203000100100f0402030001011010040203000100110f090203020100120f0402030201010203020502070209020e0210020f0202060b00020900090109000101020900090102060b010209000901090000010b000209000901010b0102090009010106090102070b00020900090109000107090102070b0102090009010900010301060b00020900090101090101070303070b0002090009010900090103070b01020900090109000901020709010703117461626c655f776974685f6c656e6774680f5461626c65576974684c656e67746805696e6e6572055461626c65057461626c65066c656e67746808636f6e7461696e73036e657706626f72726f770a626f72726f775f6d75740d64657374726f795f656d7074791a64657374726f795f6b6e6f776e5f656d7074795f756e73616665056572726f720d696e76616c69645f737461746505656d7074790672656d6f76650361646417626f72726f775f6d75745f776974685f64656661756c7406757073657274000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631440364000000000000000f45414c52454144595f4558495354530065000000000000000a454e4f545f464f554e440066000000000000000a454e4f545f454d505459000000000202020b010209000901050300020001000004050b0037000b0138000202010000040438010600000000000000003900020401000004050b0037000b013802020601000004050b0036000b0138030208010000040e0e0037011406000000000000000021040b0b003a0001380402066600000000000000110a270b01000004060b0037011406000000000000000021020c01000004040b00370114020d0100000e0e0a0036000b0138050b0036010c020a0214060100000000000000170b0215020f0100000e0f0a0036000b010b0238060b0036010c030a0314060100000000000000160b0315021101000011200a0037000a013800040c0b0036000b0138030c030b03020a0036000a010b0238060a0036010c040a0414060100000000000000160b04150b0036000b0138030c03050a1201000009130a0037000a013800030a0b000a010b023807020b0036000b0138030c030b020b03150509000000010002010200",
    "abi": {
      "address": "0x1",
      "name": "table_with_length",
      "friends": [],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::table_with_length::TableWithLength<T0, T1>",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::table_with_length::TableWithLength<T0, T1>"
          ]
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::table_with_length::TableWithLength<T0, T1>",
            "T0"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::table_with_length::TableWithLength<T0, T1>",
            "T0"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::table_with_length::TableWithLength<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::table_with_length::TableWithLength<T0, T1>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::table_with_length::TableWithLength<T0, T1>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::table_with_length::TableWithLength<T0, T1>",
            "T0"
          ],
          "return": [
            "T1"
          ]
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::table_with_length::TableWithLength<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        },
        {
          "name": "borrow_mut_with_default",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::table_with_length::TableWithLength<T0, T1>",
            "T0",
            "T1"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "upsert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::table_with_length::TableWithLength<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "TableWithLength",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "inner",
              "type": "0x1::table::Table<T0, T1>"
            },
            {
              "name": "length",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c01000a020a10031a32044c02054e20076e98020886032006a6032210c803d6010a9e05090ca7057c0fa306040000000400070008000b00010800010304020301000102060400000500010001030903020001000a02010001040c04040001000d05010001040e04040001000f030200010110020702030401070602060c040108020001060c01030207080004020504010b0102090009010108001261676772656761746f725f666163746f72791141676772656761746f72466163746f72790d7068616e746f6d5f7461626c65055461626c65057461626c65116372656174655f61676772656761746f720a41676772656761746f720a61676772656761746f721073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b1a6372656174655f61676772656761746f725f696e7465726e616c056572726f7210696e76616c69645f617267756d656e740e6e65775f61676772656761746f72096e6f745f666f756e641d696e697469616c697a655f61676772656761746f725f666163746f7279036e6577136f7074696f6e616c5f61676772656761746f720767656e6573697300000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631a2010201000000000000001d4541474752454741544f525f464143544f52595f4e4f545f464f554e442841676772656761746f7220666163746f7279206973206e6f74207075626c6973686564207965742e020000000000000018454147475f56315f4c494d49545f444550524543415445442e41676772656761746f72205631206f6e6c7920737570706f727473206c696d6974203d3d204d41585f553132382e0000000201020b010205040001000100020b0b0011010b0132ffffffffffffffffffffffffffffffff2104081102020602000000000000001103270203000100020b07002900040807002a0032ffffffffffffffffffffffffffffffff1104020601000000000000001105270603000008090a001101380012000c010b000b012d0002040002000011001200",
    "abi": {
      "address": "0x1",
      "name": "aggregator_factory",
      "friends": [
        "0x1::optional_aggregator",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "create_aggregator",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u128"
          ],
          "return": [
            "0x1::aggregator::Aggregator"
          ]
        },
        {
          "name": "create_aggregator_internal",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::aggregator::Aggregator"
          ]
        },
        {
          "name": "initialize_aggregator_factory",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "AggregatorFactory",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "phantom_table",
              "type": "0x1::table::Table<address, u128>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0e010026022636035cc302049f032005bf03fe0107bd05930b08d0102006f010890110f911f7040af0162e0c9e17e1060fff1d0211811e0813891e06000000050007000c001300180019001b001f002600270032003400360038003a003f0047004d0001080001040402040004000206070000080400000a0b00030b070200000000000d0600000f06000517070009250300103e070100000012000100010414000100010115030402040401001605010001061a01060001071c00060001021d07080001001e0901000108200a0a000108210a0a000100220501000108230a0a000100240b0c00010a28000d000109290e060001062a01060001092b0e0f0001002c100d0001012d110602070401022e12010001002f130c000108300a0a000100310d0600010b33140d0001032d1606020000010c3518190100010d371b010100010e39191900010f3b190d0001003c1c0d0001003d0d1d000103401e1f020100011041212201000110420122010001004305010001014423010207040100450501000100460001000111482101010601004905010001004a00010001054b19250001024c26060001124d0d0c0001034e0127020000010344280102000001084f0a0a000103502a2b0202000103511e0a0200000108520a0a0001020212021815190819191a1a1f1520202120230226242c152d1526292f15301501060c000208020803030d0d01010b01020900090104060c0508080808010103050808080801080203060c0802010103030c08020809010c01050106080901060a02020802060a0202060b01020900090106090001060802030c08090608020205050208020102060b05020900090106090003050c0501060900010a02010202070a09000a09000405080808080a02010b0a010a080201060b050209000901010a0900010a0802010900010b0a01090003070b0102090009010900090101080601080802060802060802010b05020900090103070b0502090009010900090101080702070b05020900090106090001090105050508020c070b0502080201136163636f756e745f6162737472616374696f6e22446572697661626c65446973706174636861626c6541757468656e74696361746f720256310e617574685f66756e6374696f6e730d4269674f7264657265644d61700f6269675f6f7264657265645f6d61700c46756e6374696f6e496e666f0d66756e6374696f6e5f696e666f16446572697661626c65526567697374657256616c756505456d70747919446973706174636861626c6541757468656e74696361746f720a4f7264657265644d61700b6f7264657265645f6d61701f52656d6f7665446973706174636861626c6541757468656e74696361746f72076163636f756e741f557064617465446973706174636861626c6541757468656e74696361746f72067570646174650d617574685f66756e6374696f6e0a696e697469616c697a651073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b0f6e65775f776974685f636f6e6669671b6164645f61757468656e7469636174696f6e5f66756e6374696f6e06537472696e6706737472696e670866656174757265731e69735f6163636f756e745f6162737472616374696f6e5f656e61626c6564137065726d697373696f6e65645f7369676e65721669735f7065726d697373696f6e65645f7369676e65721e6e65775f66756e6374696f6e5f696e666f5f66726f6d5f61646472657373267570646174655f646973706174636861626c655f61757468656e74696361746f725f696d706c056572726f72117065726d697373696f6e5f64656e6965640d696e76616c69645f7374617465286164645f646973706174636861626c655f61757468656e7469636174696f6e5f66756e6374696f6e0b756e617661696c61626c650c61757468656e746963617465134162737472616374696f6e417574684461746109617574685f64617461067369676e65720a616464726573735f6f660c69735f646572697661626c652869735f646572697661626c655f6163636f756e745f6162737472616374696f6e5f656e61626c65641d646572697661626c655f61627374726163745f7075626c69635f6b6579166465726976655f6163636f756e745f6164647265737308636f6e7461696e73196c6f61645f6d6f64756c655f66726f6d5f66756e6374696f6e19646973706174636861626c655f61757468656e746963617465096e6f745f666f756e64207573696e675f646973706174636861626c655f61757468656e74696361746f72066f626a656374226372656174655f757365725f646572697665645f6f626a6563745f616464726573730362637308746f5f627974657306766563746f7206617070656e64046861736808736861335f3235360866726f6d5f6263730a746f5f616464726573731b6465726976655f6163636f756e745f616464726573735f766965771a646973706174636861626c655f61757468656e74696361746f72064f7074696f6e066f7074696f6e046b65797304736f6d65046e6f6e652a72656769737465725f646572697661626c655f61757468656e7469636174696f6e5f66756e6374696f6e036164641e72656d6f76655f61757468656e7469636174696f6e5f66756e6374696f6e1472656d6f76655f61757468656e74696361746f72056576656e7404656d69742b72656d6f76655f646973706174636861626c655f61757468656e7469636174696f6e5f66756e6374696f6e2172656d6f76655f646973706174636861626c655f61757468656e74696361746f72047574663821636865636b5f64697370617463685f747970655f636f6d7061746962696c6974790d6372656174655f7369676e6572036e65770e616c72656164795f6578697374730672656d6f7665066c656e67746810696e76616c69645f617267756d656e74167472616e73616374696f6e5f76616c69646174696f6e0000000000000000000000000000000000000000000000000000000000000001052000000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000a0a0214136163636f756e745f6162737472616374696f6e0a021a19646973706174636861626c655f61757468656e7469636174650a0204036164640a02070672656d6f766514636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631c3040901000000000000002745444953504154434841424c455f41555448454e54494341544f525f49535f4e4f545f55534544000200000000000000184546554e4354494f4e5f494e464f5f4558495354454e43450003000000000000002145415554485f46554e4354494f4e5f5349474e41545552455f4d49534d4154434800040000000000000012454e4f545f4d41535445525f5349474e45520005000000000000001c45494e434f4e53495354454e545f5349474e45525f414444524553530006000000000000001445444550524543415445445f46554e4354494f4e0007000000000000001d45444552495641424c455f41415f4e4f545f494e495449414c495a454400080000000000000020454143434f554e545f4142535452414354494f4e5f4e4f545f454e41424c45440009000000000000002a45444552495641424c455f4143434f554e545f4142535452414354494f4e5f4e4f545f454e41424c4544000319446973706174636861626c6541757468656e74696361746f72010301183078313a3a6f626a6563743a3a4f626a65637447726f75701f52656d6f7665446973706174636861626c6541757468656e74696361746f720104001f557064617465446973706174636861626c6541757468656e74696361746f72010400031a646973706174636861626c655f61757468656e74696361746f720101001b6465726976655f6163636f756e745f616464726573735f76696577010100207573696e675f646973706174636861626c655f61757468656e74696361746f720101000003010201030b01020802080303030109000403010201030b05020802010602010e050702030e05100a0211080200010400010a0a0011010b0048000048000009380052002d000203000401020117110404120a001105030d0b000b010b020b031106081107020b00010604000000000000001108270b00010608000000000000001109270a01040001050606000000000000000b0001110b270c0000020002174f0e00110d0c030e02110e0436110f04330a030a010e021110111121043007002900042d07002b004e000e013801042a05190e0111130b000b020e0111140c040b030e04110d2104270b04020605000000000000001109270602000000000000001115270607000000000000001115270605000000000000001109270609000000000000001109271104044c0a030c050a05111604490b05070111172b024e010e0138020446051906020000000000000011152706010000000000000011152706080000000000000011092711010000190e0e0038030c020d020b01380438050d023105441a0b02111b111c021d01000001070b000b010b0211060e03111102140002001e010001021d120b00070111170c000a002902040f0b002b024e01380638070c010b010238080c01050d22010401000113110f040e0b00110107002a004f000b010b020b03110652013809020b0001060900000000000000110927240004010201100a001105030b0b000b010b020b031106091107020b00010604000000000000001108272500040102141a0a00110503150b00110d0c010a01070111170c020a022902030e05140b022c02010b011203380a020b00010604000000000000001108272701040001050606000000000000000b0001110b272801040001050606000000000000000b0001110b2707000001022c6b0a00110d0c030a03070111170c040700070211290703112911060c050e050e01112a04660b0204390b00010a042902041a05210a04112b0c060e06380b52022d020b042a024f010c070a072e0e01380203340b070a0108380c0b0307040b011204380d020b0701060200000000000000112e270a04290204610b042a024f010c070a072e0e013802045a0a070e01380e010b0307050b011204380d0b072e380f0600000000000000002104570b00112505330b000105330b00010b07010602000000000000001115270b00010602000000000000001115270b00010603000000000000001131271601000001050b00070111172902020053000001000200010000000100020000",
    "abi": {
      "address": "0x1",
      "name": "account_abstraction",
      "friends": [
        "0x1::transaction_validation"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "add_authentication_function",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "add_dispatchable_authentication_function",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "derive_account_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::function_info::FunctionInfo",
            "&vector<u8>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "derive_account_address_view",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::string::String",
            "0x1::string::String",
            "vector<u8>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "dispatchable_authenticator",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "0x1::option::Option<vector<0x1::function_info::FunctionInfo>>"
          ]
        },
        {
          "name": "register_derivable_authentication_function",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "remove_authentication_function",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "remove_authenticator",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "remove_dispatchable_authentication_function",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "remove_dispatchable_authenticator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "using_dispatchable_authenticator",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "DerivableDispatchableAuthenticator",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": []
        },
        {
          "name": "DerivableRegisterValue",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": []
        },
        {
          "name": "DispatchableAuthenticator",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": []
        },
        {
          "name": "RemoveDispatchableAuthenticator",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            }
          ]
        },
        {
          "name": "UpdateDispatchableAuthenticator",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "update",
              "type": "vector<u8>"
            },
            {
              "name": "auth_function",
              "type": "0x1::function_info::FunctionInfo"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0a01000202020403060c05120407166a0880012010a0011f0abf01050cc401130fd701020000000106000003000100010004000100010001080013676f7665726e616e63655f70726f706f73616c12476f7665726e616e636550726f706f73616c0b64756d6d795f6669656c640f6372656174655f70726f706f73616c156372656174655f656d7074795f70726f706f73616c106170746f735f676f7665726e616e6365000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31000201020100030000000309120002010300000002110002000500",
    "abi": {
      "address": "0x1",
      "name": "governance_proposal",
      "friends": [
        "0x1::aptos_governance"
      ],
      "exposed_functions": [
        {
          "name": "create_proposal",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::governance_proposal::GovernanceProposal"
          ]
        },
        {
          "name": "create_empty_proposal",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::governance_proposal::GovernanceProposal"
          ]
        }
      ],
      "structs": [
        {
          "name": "GovernanceProposal",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c01000a020a12031cbb0104d7011a05f1016107d202b0030882062010a206d1020af308160c8909c3030dcc0c080fd40c04000000070005000b001d000104000004040001060701000002080400000a00010001030c02030001010d0405010001010e0205010001000f0706000100100102000100110800000100120107000100130107000100140902000101150a0001000101160b0c01000102140d02000100170e02000100030f07000100180807000101190a10010001021811070001001a0f070001001b09020001021b0d020001001c0e020001041e12120001001f06020001020311070001012005040100010210030200010121050201000100221502000104231212000102030306030302060a030b030b061003100619031b0619061b03010101080100010803010900010b02010900010800010401060801020708010401060b0201090001070b0201090001070900020708030402070800040106080001060900010608030103030b020108000b0201080304020b020108000401070801136f7074696f6e616c5f61676772656761746f7207496e74656765720576616c7565056c696d6974124f7074696f6e616c41676772656761746f720a61676772656761746f72064f7074696f6e066f7074696f6e0a41676772656761746f7207696e7465676572036e65771261676772656761746f725f666163746f72791a6372656174655f61676772656761746f725f696e7465726e616c04736f6d65046e6f6e650b6e65775f696e74656765720764657374726f791169735f706172616c6c656c697a61626c651b64657374726f795f6f7074696f6e616c5f61676772656761746f721864657374726f795f6f7074696f6e616c5f696e7465676572036164640769735f736f6d650a626f72726f775f6d75740b6164645f696e7465676572047265616406626f72726f770c726561645f696e7465676572037375620b7375625f696e7465676572056572726f720c6f75745f6f665f72616e67650f64657374726f795f696e74656765720c64657374726f795f736f6d650c64657374726f795f6e6f6e65067377697463680d696e76616c69645f73746174650e66756e6769626c655f617373657404636f696e000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76319d02030100000000000000144541474752454741544f525f4f564552464c4f574c5468652076616c7565206f662061676772656761746f7220756e646572666c6f77732028676f65732062656c6f77207a65726f292e20526169736564206279206e617469766520636f64652e0200000000000000154541474752454741544f525f554e444552464c4f573b41676772656761746f722066656174757265206973206e6f7420737570706f727465642e20526169736564206279206e617469766520636f64652e030000000000000012455357495443485f444550524543415445443a4f7074696f6e616c41676772656761746f7220284167672056312920737769746368206e6f7420737570706f7274656420616e79206d6f72652e000000020202040304010202050b02010803090b020108000003000001100b00040911013800380112010c010b0102380232ffffffffffffffffffffffffffffffff1104380312010c01050705010000020b0e00110604070b00110701020b0011080105060901000002100a0010003804040a0b000f0038050b01110c020b000f0138060b01110d05090e00000002040b00100214020f01000007110a0010003804040b0b001000380711110c010b01020b001001380811120c0105091301000002100a0010003804040a0b000f0038050b011114020b000f0138060b01111505090d00000002180a010a001002140a00100314172504130a001003140b01160b000f0315020b00010601000000000000001116271700000002050b00130001010207000000130f0b0013010c010c020e02380711180c030b023809111a0b01380a0b030208000000140d0b0013010c010e013808110e0c020b01380b1117380c0b02020601000002040b00100038040204000000020432000000000000000000000000000000000b001200021200000002040b00100314021500000002140a010a0010031425040f0a001003140b01170b000f0315020b00010602000000000000001116271c01000002050603000000000000000b0001111d2701000101000100000024002500",
    "abi": {
      "address": "0x1",
      "name": "optional_aggregator",
      "friends": [
        "0x1::fungible_asset",
        "0x1::coin"
      ],
      "exposed_functions": [
        {
          "name": "new",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "bool"
          ],
          "return": [
            "0x1::optional_aggregator::OptionalAggregator"
          ]
        },
        {
          "name": "destroy",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::optional_aggregator::OptionalAggregator"
          ],
          "return": []
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::optional_aggregator::OptionalAggregator",
            "u128"
          ],
          "return": []
        },
        {
          "name": "read",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::optional_aggregator::OptionalAggregator"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::optional_aggregator::OptionalAggregator",
            "u128"
          ],
          "return": []
        },
        {
          "name": "is_parallelizable",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::optional_aggregator::OptionalAggregator"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "switch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::optional_aggregator::OptionalAggregator"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Integer",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "value",
              "type": "u128"
            },
            {
              "name": "limit",
              "type": "u128"
            }
          ]
        },
        {
          "name": "OptionalAggregator",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "aggregator",
              "type": "0x1::option::Option<0x1::aggregator::Aggregator>"
            },
            {
              "name": "integer",
              "type": "0x1::option::Option<0x1::optional_aggregator::Integer>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0e01001602162a0340c3020483032005a303c00307e306c40b08a7122010c712a6060aed18350ca21983120da52b020fa72b1811bf2b1c13db2b0a0000000700090016001c0025002f003100330036003d0001080000030800010604020400040002080700000a0700000b0000000e070000100400052407010000001500010001031703030001001800040001001900020001001a00050001001b0602010701041500010001001d00010001021e0708010701011f0a050207040101200b0c0207040100210d02000101220e02020704010023101101070105260713010001052702130100010028150201070100291705010701002a18050001002b1705010701002c0d050001002d1005010701002e001b00010630020500010732020100010833011c000101341d1e0204040100352021000109370203000100381b0200010139230502040401013a242502070401013b1e0202040401003c210200010a3e27280100010a3f290701000100402b02000100411002010701004217020107010043000500010044300200010045320100010046000200010a47293301000100481002010701004936020001004a381c0001004b391c0001004c321c0001080709090a090c090e120f1211071a091e091f09200922012301102c152c2b0101060c0105000103010605010104060c060c0f0900010900010803020803080402060b02020900090106090002070b020209000901060900010901020708040f03070b020209000901090009010801010900080405070b0202080308040803080402060c0900010b08010f010f010b08010900080b08010f05070b020208030804080308040708040f0b08010f03060c060c09000a01010900080405070b02020803080408030804080407080403060c0f0900020608040f0505070b020208030804080308040102070f01010805010c030d0d01010b02020900090102050c02060c030108070305050c01060b02020900090101070b020209000901020900090103050b020208030804070b02020803080402060a090006090002010302070a090003070505070a0503050b020208030804070b02020803080402060c060c01080607080405070b02020803080408030804080407080401070f05080405070b02020803080408030804020708040804030608040f070f01060807010a090005050a05030b020208030804070b0202080308040305070b020208030804080302060c050605070a0503050b020208030804070b02020803080401060805020505137065726d697373696f6e65645f7369676e6572184772616e7465645065726d697373696f6e48616e646c65730e6163746976655f68616e646c6573115065726d697373696f6e53746f72616765025631057065726d730d4269674f7264657265644d61700f6269675f6f7264657265645f6d617003416e790c636f707961626c655f616e791053746f7265645065726d697373696f6e125065726d697373696f6e656448616e646c65136d61737465725f6163636f756e745f61646472187065726d697373696f6e735f73746f726167655f61646472205265766f6b655065726d697373696f6e48616e646c655065726d697373696f6e0b64756d6d795f6669656c641a53746f7261626c655065726d697373696f6e656448616e646c650f65787069726174696f6e5f74696d6509556e6c696d69746564084361706163697479025f300a616464726573735f6f66056572726f72117065726d697373696f6e5f64656e6965640e626f72726f775f61646472657373146173736572745f6d61737465725f7369676e65721669735f7065726d697373696f6e65645f7369676e657212617574686f72697a655f696e637265617365067369676e6572127065726d697373696f6e5f61646472657373047061636b08636f6e7461696e730672656d6f766511696e6372656173655f636170616369747903616464086361706163697479064f7074696f6e066f7074696f6e04736f6d65046e6f6e6513617574686f72697a655f756e6c696d697465641f636865636b5f7065726d697373696f6e5f63617061636974795f61626f76650869735f61626f766518636865636b5f7065726d697373696f6e5f636f6e73756d6510636f6e73756d655f636170616369747917636865636b5f7065726d697373696f6e5f6578697374731a6372656174655f7065726d697373696f6e65645f68616e646c650866656174757265731e69735f7065726d697373696f6e65645f7369676e65725f656e61626c6564137472616e73616374696f6e5f636f6e746578741567656e65726174655f617569645f616464726573730d6372656174655f7369676e65720f6e65775f776974685f636f6e666967236372656174655f73746f7261626c655f7065726d697373696f6e65645f68616e646c650974696d657374616d700b6e6f775f7365636f6e64731b64657374726f795f7065726d697373696f6e65645f68616e646c650869735f656d70747909706f705f66726f6e740d64657374726f795f656d7074792464657374726f795f73746f7261626c655f7065726d697373696f6e65645f68616e646c6506766563746f7208696e6465785f6f660b737761705f72656d6f7665176772616e745f7265766f6b655f7065726d697373696f6e286772616e745f756e6c696d697465645f776974685f7065726d697373696f6e65645f7369676e65720e696e6372656173655f6c696d69741b69735f7065726d697373696f6e65645f7369676e65725f696d706c056d657267651b7065726d697373696f6e735f73746f726167655f61646472657373127265766f6b655f616c6c5f68616e646c65730c7472696d5f72657665727365117265766f6b655f7065726d697373696f6e217265766f6b655f7065726d697373696f6e5f73746f726167655f616464726573731f7369676e65725f66726f6d5f7065726d697373696f6e65645f68616e646c65247369676e65725f66726f6d5f7065726d697373696f6e65645f68616e646c655f696d706c287369676e65725f66726f6d5f73746f7261626c655f7065726d697373696f6e65645f68616e646c65076163636f756e74066f626a6563740e66756e6769626c655f617373657406766f74696e67057374616b65106170746f735f676f7665726e616e636504636f64650f64656c65676174696f6e5f706f6f6c0776657374696e67167472616e73616374696f6e5f76616c69646174696f6e177065726d697373696f6e65645f64656c65676174696f6e0d7374616b696e675f70726f7879000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631f20509010000000000000012454e4f545f4d41535445525f5349474e455233547279696e6720746f206772616e74207065726d697373696f6e207573696e67206e6f6e2d6d6173746572207369676e65722e0200000000000000114543414e4e4f545f415554484f52495a451e43616e6e6f7420617574686f72697a652061207065726d697373696f6e2e030000000000000018454e4f545f5045524d495353494f4e45445f5349474e455233416363657373207065726d697373696f6e20696e666f726d6174696f6e2066726f6d2061206d6173746572207369676e65722e04000000000000001a4543414e4e4f545f455854524143545f5045524d495353494f4e3a7369676e657220646f65736e2774206861766520656e6f75676820636170616369747920746f2065787472616374207065726d697373696f6e2e050000000000000014455f5045524d495353494f4e5f455850495245441e7065726d697373696f6e2068616e646c652068617320657870697265642e060000000000000015455f5045524d495353494f4e5f4d49534d415443483573746f72696e6720657874726163746564207065726d697373696f6e20696e746f206120646966666572656e74207369676e65722e070000000000000014455f5045524d495353494f4e5f5245564f4b45443a7065726d697373696f6e2068616e646c6520686173206265656e207265766f6b656420627920746865206f726967696e616c207369676e65722e08000000000000000c455f4e4f545f4143544956456464657374726f79696e67207065726d697373696f6e2068616e646c6520746861742068617320616c7265616479206265656e207265766f6b6564206f72206e6f74206f776e6564206279207468650a20676976656e206d6173746572207369676e65722e09000000000000001b455045524d495353494f4e5f5349474e45525f44495341424c45442d5065726d697373696f6e6564207369676e65722066656174757265206973206e6f74206163746976617465642e0000000201020a050103010401050b02020803080405030104020c050d050602010f0107030104030c050d05110304030212001301140f0001000002050609000000000000000b00011101270201000002050609000000000000000b00011101270303000002070b00110403040206010000000000000011012705030001010f490a01110404460a001104200c040b0404410b0011060a011106210c050b05043c0b010b030c060a0252000c0711070c080a08290104390b082a014f000c090b0638000c0a0a092e0e0a380104340a090e0a38020c0b0d0b0b02110b0b090b0a0b0b3803020b090b0a0b07380305330608000000000000001101270b01010602000000000000001101270b0001090c05050f090c0405070d0300010114440a00110403080b00014affffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff38040238050c020b0011070c030a03290104410b032a014f000c040b0138000c050a042e0e053801043c0a040e0538020c060d060c070a07560004320b074f01140c080b0838040b040b050b0638030c090b09020b07560104384affffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0c0805290b04010601000bbed9cb26ca270b04010b020c0905300608000000000000001101271003000101164c0a01110404490a001104200c030b0304440b0011060a011106210c040b04043f0b010b020c0552010c0611070c070a072901043c0b072a014f000c080b0538000c090a082e0e09380104370a080e0938020c0a0d0a52010c0b0c0c0b0b0b0c150b080b090b0a3803020b080b090b06380305360608000000000000001101270b01010602000000000000001101270b0001090c04050f090c030507110300010119300a00110403070b000108020b0011070c030a032901042d0b032a014f000c040b0238000c050a042e0e05380104280a040e0538020c060d062e0b0111120b040b050b0638030c070b07020b0401090c0705260608000000000000001101271303000101192f0a00110403070b000108020b0011070c030a032901042c0b032a014f000c040b0238000c050a042e0e05380104270a040e0538020c060d060b0111140b040b050b0638030c070b07020b0401090c070525060800000000000000110127150300010102050b004a01000000000000000000000000000000000000000000000000000000000000000b01380602140000001a220a005600041a0b004f010c020a02140a012604150a02140b01170b0215080c030b03020b0201090c0305130b0056010420080c0305130601000bbed9cb26ca27160100001f1a111704150a00110311180c010b0011060a0111190c020e0248280048230009380752022d010b015203020b00010609000000000000001101271b030001002235111704300a00110311180c020a0011060c03111c0a0123042b0a03290003280b004001000000000000000012002d000a032a000f000a0244010a0211190c040e0448280048230009380752022d010b030b020b015204020b000105140b00010605000000000000001101270b00010609000000000000001101271d0100010126211117041e0b0054030c01010a012901030a051d0b012c0154020c020d020c030a032e380803190a033809010105100b03010b02380a020609000000000000001101272103000200012a360b005404010c010c020a02290004330b022a000f000c030a032e0e01380b0c0404300b030b04380c010b010c050a052901031c052f0b052c0154020c060d060c070a072e3808032b0a073809010105220b07010b06380a020b030105160607000000000000001101272401000101020f111704080b000b01091203380d020b00010b010106090000000000000011012725030001012d320a00110403060b00010252010c020b0011070c030a032901042f0b032a014f000c040b0138000c050a042e0e053801042a0a040e0538020c060d0652010c070c080b070b08150b040b050b063803020b040b050b02380305290608000000000000001101270b0000002e130a005600040d0b004f010c020a02140b01160b0215020b0056010411050c0601000bbed9cb26ca2726030001012f2f0a00110403060b0001020a0152000c030b0011070c040a042901042c0b042a014f000c050b0238000c060a052e0e06380104270a050e0638020c070d070b01110b0b050b060b073803020b050b060b03380305260608000000000000001101271200000005130a005600040b0b004e01140b01260c020b02020b0056010411080c0205090601000bbed9cb26ca27040100000209111703060b000109020b001127022700020028000000312a0e010c020a025600041d0b02010b0154000c030a00560004170b004f010c040a04140b03160b0415020b005601041b05160601000bbed9cb26ca270b02560104260b01540152010b001505160b00010601000bbed9cb26ca27070002002903000002040b004e0214022a01040200013447111704420a00091203380e043d0b0011060c010a012900030e020b012a000f00060000000000000000380f0c020e0241010c030a0306000000000000000024043a0d0245010c010a012901032205350b012c0154020c040d040c050a052e380803310a053809010105280b05010b04380a0b03060100000000000000170c0305170b0246010000000000000000020b00010601000000000000001101270b00010609000000000000001101272c0300010135210a00110403060b0001020b0011070c020a022901030d020b022a014f000c030b0138000c040a032e0e043801041e0b030e04380201020b0301051d2d01040200013747111704420a00091203380e043d0b0011060c020a022900043a0b022a000f000c030a032e0e01380b0c0404350b030b04380c010b010c050a052901032105340b052c0154020c060d060c070a072e380803300a073809010105270b07010b06380a020b03010608000000000000001101270607000000000000001101270b00010601000000000000001101270b00010609000000000000001101272e010000020f1117040a0a004e03140b004e0414112f020b00010609000000000000001101272f0002003003000002241117041f111c0a004e051423041a0a004e0214290104150a004e06140b004e0214112f020b00010607000000000000001101270b00010605000000000000001101270b00010609000000000000001101270000004d004e004f005000510052005300540055005600570058010001000500010104010100020001000201010004020100040001000501050001000200040000",
    "abi": {
      "address": "0x1",
      "name": "permissioned_signer",
      "friends": [
        "0x1::account",
        "0x1::object",
        "0x1::fungible_asset",
        "0x1::voting",
        "0x1::stake",
        "0x1::aptos_governance",
        "0x1::code",
        "0x1::delegation_pool",
        "0x1::vesting",
        "0x1::transaction_validation",
        "0x1::permissioned_delegation",
        "0x1::staking_proxy"
      ],
      "exposed_functions": [
        {
          "name": "address_of",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "borrow_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "&address"
          ]
        },
        {
          "name": "assert_master_signer",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "authorize_increase",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer",
            "&signer",
            "u256",
            "T0"
          ],
          "return": []
        },
        {
          "name": "capacity",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer",
            "T0"
          ],
          "return": [
            "0x1::option::Option<u256>"
          ]
        },
        {
          "name": "authorize_unlimited",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer",
            "&signer",
            "T0"
          ],
          "return": []
        },
        {
          "name": "check_permission_capacity_above",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer",
            "u256",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "check_permission_consume",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer",
            "u256",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "check_permission_exists",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "create_permissioned_handle",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::permissioned_signer::PermissionedHandle"
          ]
        },
        {
          "name": "create_storable_permissioned_handle",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": [
            "0x1::permissioned_signer::StorablePermissionedHandle"
          ]
        },
        {
          "name": "destroy_permissioned_handle",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::permissioned_signer::PermissionedHandle"
          ],
          "return": []
        },
        {
          "name": "destroy_storable_permissioned_handle",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::permissioned_signer::StorablePermissionedHandle"
          ],
          "return": []
        },
        {
          "name": "grant_revoke_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "grant_unlimited_with_permissioned_signer",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer",
            "T0"
          ],
          "return": []
        },
        {
          "name": "increase_limit",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer",
            "u256",
            "T0"
          ],
          "return": []
        },
        {
          "name": "is_permissioned_signer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "permissions_storage_address",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::permissioned_signer::StorablePermissionedHandle"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "revoke_all_handles",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "revoke_permission",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer",
            "T0"
          ],
          "return": []
        },
        {
          "name": "revoke_permission_storage_address",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "signer_from_permissioned_handle",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::permissioned_signer::PermissionedHandle"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "signer_from_storable_permissioned_handle",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::permissioned_signer::StorablePermissionedHandle"
          ],
          "return": [
            "signer"
          ]
        }
      ],
      "structs": [
        {
          "name": "GrantedPermissionHandles",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "active_handles",
              "type": "vector<address>"
            }
          ]
        },
        {
          "name": "PermissionStorage",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": []
        },
        {
          "name": "PermissionedHandle",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": []
        },
        {
          "name": "RevokePermissionHandlePermission",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "StorablePermissionedHandle",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": []
        },
        {
          "name": "StoredPermission",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": []
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0a01000a020a160320c00105e00135079502cd0508e20720108208b6020ab80a230cdb0af6030dd10e1000000007000f00100012000106000003030001060700000b0300020e07010000000400010001031102030001041304040001001402050001001502050001000500060001000a00070001001608010001000d02090001001702090001000800060001001802010001001902010001001a02040001001b02040001001c020a0001001d02010001001e02010001001f020b00010020020b00010021020b000100220c090001002302040001002402040001000c0c0100010025020d00010026020d00010027020e00010028020e0001002902010001002a02010001002b000f000101060801010500010101030102010802010a0a0201060800010b04010801010800010a0201060803010b04010803010a05010a0802137472616e73616374696f6e5f636f6e7465787404415549440e756e697175655f6164647265737314456e74727946756e6374696f6e5061796c6f61640f6163636f756e745f616464726573730b6d6f64756c655f6e616d6506537472696e6706737472696e670d66756e6374696f6e5f6e616d650d74795f617267735f6e616d657304617267730f4d756c74697369675061796c6f6164106d756c74697369675f6164647265737316656e7472795f66756e6374696f6e5f7061796c6f6164064f7074696f6e066f7074696f6e086665617475726573257472616e73616374696f6e5f636f6e746578745f657874656e73696f6e5f656e61626c6564056572726f720d696e76616c69645f737461746508636861696e5f696411636861696e5f69645f696e7465726e616c0c617569645f616464726573731f656e7472795f66756e6374696f6e5f7061796c6f61645f696e7465726e616c096761735f7061796572126761735f70617965725f696e7465726e616c0e6761735f756e69745f7072696365176761735f756e69745f70726963655f696e7465726e616c0d67656e65726174655f617569641767656e65726174655f756e697175655f616464726573731567656e65726174655f617569645f616464726573730f6765745f7363726970745f68617368146765745f7472616e73616374696f6e5f686173680c6765745f74786e5f686173681c696e6e65725f656e7472795f66756e6374696f6e5f7061796c6f61640e6d61785f6761735f616d6f756e74176d61785f6761735f616d6f756e745f696e7465726e616c106d756c74697369675f7061796c6f6164196d756c74697369675f7061796c6f61645f696e7465726e616c117365636f6e646172795f7369676e6572731a7365636f6e646172795f7369676e6572735f696e7465726e616c0673656e6465720f73656e6465725f696e7465726e616c0e747970655f6172675f6e616d6573000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631820202010000000000000022455452414e53414354494f4e5f434f4e544558545f4e4f545f415641494c41424c45665472616e73616374696f6e20636f6e74657874206973206f6e6c7920617661696c61626c6520696e207468652075736572207472616e73616374696f6e2070726f6c6f6775652c20657865637574696f6e2c206f72206570696c6f677565207068617365732e02000000000000002a455452414e53414354494f4e5f434f4e544558545f455854454e53494f4e5f4e4f545f454e41424c454439546865207472616e73616374696f6e20636f6e7465787420657874656e73696f6e2066656174757265206973206e6f7420656e61626c65642e000000020102050102050405050802080802090a08020a0a0a020302020c050d0b0401080100010000020b110104060b00100014020b0001060200000000000000110227030100000207110104041104020602000000000000001102270400020005010000020b110104060b00100114020b000106020000000000000011022706010000020b110104060b00100214020b00010602000000000000001102270701000002040b001003140208010000020711010404110902060200000000000000110227090002000a010000020b110104060b00100414020b00010602000000000000001102270b010000020711010404110c020602000000000000001102270c0002000d010000020711010404110e020602000000000000001102270e0002000f0100000203111012000211010000020211100210000200120102001301000002021114021400020015010000020b110104060b00100514020b0001060200000000000000110227160100000207110104041117020602000000000000001102271700020018010000020b110104060b00100614020b000106020000000000000011022719010000020711010404111a020602000000000000001102271a0002001b010000020711010404111c020602000000000000001102271c0002001d010000020711010404111e020602000000000000001102271e0002001f010000020b110104060b00100714020b00010602000000000000001102270100010101040000010202010200010300",
    "abi": {
      "address": "0x1",
      "name": "transaction_context",
      "friends": [],
      "exposed_functions": [
        {
          "name": "account_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::transaction_context::EntryFunctionPayload"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "chain_id",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u8"
          ]
        },
        {
          "name": "module_name",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::transaction_context::EntryFunctionPayload"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "args",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::transaction_context::EntryFunctionPayload"
          ],
          "return": [
            "vector<vector<u8>>"
          ]
        },
        {
          "name": "auid_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::transaction_context::AUID"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "entry_function_payload",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::option::Option<0x1::transaction_context::EntryFunctionPayload>"
          ]
        },
        {
          "name": "function_name",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::transaction_context::EntryFunctionPayload"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "gas_payer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "address"
          ]
        },
        {
          "name": "gas_unit_price",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "generate_auid",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::transaction_context::AUID"
          ]
        },
        {
          "name": "generate_auid_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_script_hash",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "get_transaction_hash",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "inner_entry_function_payload",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::transaction_context::MultisigPayload"
          ],
          "return": [
            "0x1::option::Option<0x1::transaction_context::EntryFunctionPayload>"
          ]
        },
        {
          "name": "max_gas_amount",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "multisig_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::transaction_context::MultisigPayload"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "multisig_payload",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::option::Option<0x1::transaction_context::MultisigPayload>"
          ]
        },
        {
          "name": "secondary_signers",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "vector<address>"
          ]
        },
        {
          "name": "sender",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "address"
          ]
        },
        {
          "name": "type_arg_names",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::transaction_context::EntryFunctionPayload"
          ],
          "return": [
            "vector<0x1::string::String>"
          ]
        }
      ],
      "structs": [
        {
          "name": "AUID",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "unique_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "EntryFunctionPayload",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account_address",
              "type": "address"
            },
            {
              "name": "module_name",
              "type": "0x1::string::String"
            },
            {
              "name": "function_name",
              "type": "0x1::string::String"
            },
            {
              "name": "ty_args_names",
              "type": "vector<0x1::string::String>"
            },
            {
              "name": "args",
              "type": "vector<vector<u8>>"
            }
          ]
        },
        {
          "name": "MultisigPayload",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_address",
              "type": "address"
            },
            {
              "name": "entry_function_payload",
              "type": "0x1::option::Option<0x1::transaction_context::EntryFunctionPayload>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d0100100210260336630499011005a9016d0796029d0308b3052006d3052210f5058f010a84071b0c9f07ef010d8e09020f90090200000008000d000f0011001a001e002000010700000307000005070001070700000a0e00020c0700051c070200000000061d07010000000e0001000103100001000104120103010401041301040104010014060100010015060100010416040101060100170102000102180408010701001909020001051b010b0204040105160d0e02040401061f100301000107210f0f00010022130c000102020302060208070a0a0b0a0c0f081101060c00010804010101090002080407080402060c0804010800010805010a080202080303010b06020900090101080203070b06020900090109000901020b070109000b07010901010301060b07010900010801060b0602080303060a080203030608020b0701030208030803146a776b5f636f6e73656e7375735f636f6e66696709436f6e6669674f66660b64756d6d795f6669656c6408436f6e66696756310e6f6964635f70726f7669646572730c4f49444350726f7669646572046e616d6506537472696e6706737472696e670a636f6e6669675f75726c124a574b436f6e73656e737573436f6e6669670776617269616e7403416e790c636f707961626c655f616e790c6f6e5f6e65775f65706f63681073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b0d636f6e6669675f6275666665720a646f65735f65786973740a657874726163745f76320a696e697469616c697a65127365745f666f725f6e6578745f65706f636806757073657274076e65775f6f6666047061636b066e65775f76310a73696d706c655f6d6170036e65770953696d706c654d6170064f7074696f6e066f7074696f6e0769735f736f6d65056572726f7210696e76616c69645f617267756d656e74116e65775f6f6964635f70726f7669646572187265636f6e66696775726174696f6e5f776974685f646b6700000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76315c01010000000000000014454455504c49434154455f50524f5649444552533b60436f6e666967563160206372656174696f6e206661696c65642077697468206475706c6963617465642070726f76696465727320676976656e2e00000002010201010201040a08020202020608030908030402010b0805000300010305190a0011013800041638010c010700290304120b000107002a030c020b010b0215020b000b012d0305110b0001051104010000010c0a0011010700290303090b000b012d03020b000105080501000001050b0011010b01380202070100000105091200380312030209010000122d38040c010e000c020600000000000000000c030a02410c0c040a030a042304260a020a03420c0c050d010b0510001406000000000000000038050c06010e06380604210b0201060100000000000000110d270b03060100000000000000160c0305090b02010b00120138071203020e01000001040b000b011202020200002300",
    "abi": {
      "address": "0x1",
      "name": "jwk_consensus_config",
      "friends": [
        "0x1::reconfiguration_with_dkg"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::jwk_consensus_config::JWKConsensusConfig"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::jwk_consensus_config::JWKConsensusConfig"
          ],
          "return": []
        },
        {
          "name": "new_off",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::jwk_consensus_config::JWKConsensusConfig"
          ]
        },
        {
          "name": "new_v1",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::jwk_consensus_config::OIDCProvider>"
          ],
          "return": [
            "0x1::jwk_consensus_config::JWKConsensusConfig"
          ]
        },
        {
          "name": "new_oidc_provider",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": [
            "0x1::jwk_consensus_config::OIDCProvider"
          ]
        }
      ],
      "structs": [
        {
          "name": "ConfigOff",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "ConfigV1",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "oidc_providers",
              "type": "vector<0x1::jwk_consensus_config::OIDCProvider>"
            }
          ]
        },
        {
          "name": "OIDCProvider",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "name",
              "type": "0x1::string::String"
            },
            {
              "name": "config_url",
              "type": "0x1::string::String"
            }
          ]
        },
        {
          "name": "JWKConsensusConfig",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "variant",
              "type": "0x1::copyable_any::Any"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b01000802081e0326f601049c021405b002c10107f103df0608d00a2010f00a1f0a8f0b180ca70bb2040dd90f0a00000004001d00250001020001030200000607000107070000080700032407010000012d0700000a00010001010b03040001000c05020001010d06070001000e08030001000f080100010110090400010011000a00010112030a000100130b0c000100140d0100010015010d0001001600010001011703040001001805020001011906070001001a080e0001011b090f0001011c100e0001021e1202010001001f080c000100201401000101211004000100220809000100230e150001032602160100010227171801000101280e19000103291a0a010001032a1b1c010001032b1c16010001002c1e010001012e1e040001012f0204000100300e1f000101310e2000010032230e000101330f0e00010034230f0001003523040001131119011a111c041d041e011c0f1d0f1e2119210206080006080001080000020608010608010108010207080006080002070801060801010708010106080001060801010102080308030108020208010801010a0201080301060803010202070a09000a09000508030a0208030a020a0201060802010b05010800010b0501090002070a090003010a0900010b0501080101060b0501090001070b05010900010900040b050108010b05010801010b0501080001060806010b05010804010b05010803010804020b050108030b05010804010608041472697374726574746f3235355f656c67616d616c0a43697068657274657874046c6566740e52697374726574746f506f696e740c72697374726574746f32353505726967687414436f6d707265737365644369706865727465787413436f6d7072657373656452697374726574746f10436f6d707265737365645075626b657905706f696e740e636970686572746578745f61646409706f696e745f61646415636970686572746578745f6164645f61737369676e10706f696e745f6164645f61737369676e14636970686572746578745f61735f706f696e747310636970686572746578745f636c6f6e650b706f696e745f636c6f6e6511636970686572746578745f657175616c730c706f696e745f657175616c7321636970686572746578745f66726f6d5f636f6d707265737365645f706f696e747316636970686572746578745f66726f6d5f706f696e747316636970686572746578745f696e746f5f706f696e74730e636970686572746578745f73756209706f696e745f73756215636970686572746578745f7375625f61737369676e10706f696e745f7375625f61737369676e13636970686572746578745f746f5f62797465730e706f696e745f636f6d70726573730e706f696e745f746f5f627974657306766563746f7206617070656e6413636f6d70726573735f63697068657274657874156465636f6d70726573735f6369706865727465787410706f696e745f6465636f6d7072657373136765745f76616c75655f636f6d706f6e656e74196e65775f636970686572746578745f66726f6d5f6279746573064f7074696f6e066f7074696f6e046e6f6e65047472696d146e65775f706f696e745f66726f6d5f62797465730769735f736f6d65076578747261637404736f6d651c6e65775f636970686572746578745f6e6f5f72616e646f6d6e657373065363616c61720d62617365706f696e745f6d756c0e706f696e745f6964656e74697479156e65775f7075626b65795f66726f6d5f62797465731f6e65775f636f6d707265737365645f706f696e745f66726f6d5f62797465730f7075626b65795f746f5f627974657319636f6d707265737365645f706f696e745f746f5f62797465731a7075626b65795f746f5f636f6d707265737365645f706f696e740f7075626b65795f746f5f706f696e74000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e3100020202080105080102020202080305080304020109080300010000020c0a0010000a01100011010b0010010b01100111011200020201000006150a000f000c020a0110000c030b020b031103010b000f010c020b0110010c030b020b03110301020401000002050a0010000b001001020501000002080a00100011060b0010011106120002070100000a150a0010000a0110001108040e0b0010010b01100111080c020b02020b00010b0101090c02050c0901000002040b000b011201020a01000002040b000b011200020b0100000d030b001300020c010000020c0a0010000a011000110d0b0010010b011001110d1200020e01000006150a000f000c020a0110000c030b020b03110f010b000f010c020b0110010c030b020b03110f01021001000013180a00100011110c010e0111120c020b00100111110c030e0311120c04401100000000000000000c050d050b0238000d050b0438000b05021401000002080a00100011110b00100111111201021501000002080a00100211160b00100311161200021701000002030b00100002180100001d260e0041110640000000000000002204073801020d0006200000000000000038020b00111b0c01111b0c020e01380304230e0238030c030b0304200d0138040d023804120038050c040b040238010c04051e090c0305151f01000002050b00112011211200022201000022100b0011230c010e013806040d0d013807120238080c020b020238090c02050b2401000002050b001004141125022601000002040b00100414022701000002040b0010041116020000000101000101020000",
    "abi": {
      "address": "0x1",
      "name": "ristretto255_elgamal",
      "friends": [],
      "exposed_functions": [
        {
          "name": "ciphertext_add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::Ciphertext",
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": [
            "0x1::ristretto255_elgamal::Ciphertext"
          ]
        },
        {
          "name": "ciphertext_add_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255_elgamal::Ciphertext",
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": []
        },
        {
          "name": "ciphertext_as_points",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": [
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "ciphertext_clone",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": [
            "0x1::ristretto255_elgamal::Ciphertext"
          ]
        },
        {
          "name": "ciphertext_equals",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::Ciphertext",
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "ciphertext_from_compressed_points",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ristretto255::CompressedRistretto",
            "0x1::ristretto255::CompressedRistretto"
          ],
          "return": [
            "0x1::ristretto255_elgamal::CompressedCiphertext"
          ]
        },
        {
          "name": "ciphertext_from_points",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ristretto255::RistrettoPoint",
            "0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255_elgamal::Ciphertext"
          ]
        },
        {
          "name": "ciphertext_into_points",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint",
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "ciphertext_sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::Ciphertext",
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": [
            "0x1::ristretto255_elgamal::Ciphertext"
          ]
        },
        {
          "name": "ciphertext_sub_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255_elgamal::Ciphertext",
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": []
        },
        {
          "name": "ciphertext_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "compress_ciphertext",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": [
            "0x1::ristretto255_elgamal::CompressedCiphertext"
          ]
        },
        {
          "name": "decompress_ciphertext",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::CompressedCiphertext"
          ],
          "return": [
            "0x1::ristretto255_elgamal::Ciphertext"
          ]
        },
        {
          "name": "get_value_component",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": [
            "&0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "new_ciphertext_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255_elgamal::Ciphertext>"
          ]
        },
        {
          "name": "new_ciphertext_no_randomness",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::ristretto255_elgamal::Ciphertext"
          ]
        },
        {
          "name": "new_pubkey_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255_elgamal::CompressedPubkey>"
          ]
        },
        {
          "name": "pubkey_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::CompressedPubkey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "pubkey_to_compressed_point",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::CompressedPubkey"
          ],
          "return": [
            "0x1::ristretto255::CompressedRistretto"
          ]
        },
        {
          "name": "pubkey_to_point",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::CompressedPubkey"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        }
      ],
      "structs": [
        {
          "name": "Ciphertext",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "left",
              "type": "0x1::ristretto255::RistrettoPoint"
            },
            {
              "name": "right",
              "type": "0x1::ristretto255::RistrettoPoint"
            }
          ]
        },
        {
          "name": "CompressedCiphertext",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "left",
              "type": "0x1::ristretto255::CompressedRistretto"
            },
            {
              "name": "right",
              "type": "0x1::ristretto255::CompressedRistretto"
            }
          ]
        },
        {
          "name": "CompressedPubkey",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "point",
              "type": "0x1::ristretto255::CompressedRistretto"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d01000c020c14032056047606057c2a07a601fb0208a1042006c1047a10bb05590a9406100ca406ff010da308040fa7080600000004000a0011001500180001080001030700000507000007070003100700000900010001020b00010001010c0304010701000d00010001000e01050001010f06070001031207080001001301050001001401010001041609090001001701010001051901090001000601090001011a04030100010202020b0d0b01060c000108030109000108010101010608010106080401060a02010301070800010802020608000802157265636f6e66696775726174696f6e5f73746174650553746174650776617269616e7403416e790c636f707961626c655f616e790b53746174654163746976650f73746172745f74696d655f736563730d5374617465496e6163746976650b64756d6d795f6669656c640a696e697469616c697a651073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b047061636b16696e697469616c697a655f666f725f74657374696e670e69735f696e5f70726f677265737309747970655f6e616d6506537472696e6706737472696e670562797465730e69735f696e697469616c697a6564126f6e5f7265636f6e6669675f66696e697368056572726f720d696e76616c69645f7374617465116f6e5f7265636f6e6669675f73746172740974696d657374616d700b6e6f775f7365636f6e647306756e7061636b057374616b650f7265636f6e66696775726174696f6e187265636f6e66696775726174696f6e5f776974685f646b670000000000000000000000000000000000000000000000000000000000000001052000000000000000000000000000000000000000000000000000000000000000010a0228273078313a3a7265636f6e66696775726174696f6e5f73746174653a3a53746174654163746976650a022a293078313a3a7265636f6e66696775726174696f6e5f73746174653a3a5374617465496e61637469766514636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76312601010000000000000019455245434f4e4649475f4e4f545f494e5f50524f47524553530000000002010208010202010603030201080100010000010f0a00110107002900030c0b00091202380012002d00020b0001050b0301000001030b001100020403000100010e070029000305090207002b001000110511061407012102070100000103070029000208030001000a1b070029000304051507002a000c000a0010001105110614070121041609120238000b000f0015020b00010601000000000000001109270a030001000a19070029000304051507002a000c000a00100011051106140702210416110b120138010b000f0015020b000105150c030001000c1907002b000c000a001000110511061407012104140b0010001438020c010e01100114020b000106010000000000000011092700000100001b001c001d00",
    "abi": {
      "address": "0x1",
      "name": "reconfiguration_state",
      "friends": [
        "0x1::stake",
        "0x1::reconfiguration",
        "0x1::reconfiguration_with_dkg"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize_for_testing",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "is_in_progress",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_initialized",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "on_reconfig_finish",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        },
        {
          "name": "on_reconfig_start",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        },
        {
          "name": "start_time_secs",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": [
        {
          "name": "State",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "variant",
              "type": "0x1::copyable_any::Any"
            }
          ]
        },
        {
          "name": "StateActive",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "start_time_secs",
              "type": "u64"
            }
          ]
        },
        {
          "name": "StateInactive",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c010006020616031cd00104ec010805f4019901078d03e20508ef0820068f092410b3091f0ad209060cd809cc020da40c020000000400220001020001030200010a0700011d0700022107010000000500010001010603040001000705020001010806070001000908090001010b0a090001000c080a0001000d08010001010e0a040001000f000b00010110030b000100110c01000101120c040001001304010001001401090001001501040001001600010001011703040001001805020001011906070001001a080d0001011b0c0d0001001c0e010001011e0e040001001f0f01000101200d1000010223111201000101241304000100250d1500010226160b0100010227121701000102280217010001002919010001002a020400011a041d041e011f010206080006080001080000020608010608010108010207080006080002070801060801010708010106080001080201060801010101060802010a020406080306080106080306080102060803060803010b0401080101070b0401090001090003060803060801060803020b040108010801010b0401080001060b04010900010b04010900020b040108010b04010800030608030608030608011572697374726574746f3235355f706564657273656e0a436f6d6d69746d656e7405706f696e740e52697374726574746f506f696e740c72697374726574746f3235350e636f6d6d69746d656e745f61646409706f696e745f61646415636f6d6d69746d656e745f6164645f61737369676e10706f696e745f6164645f61737369676e1e636f6d6d69746d656e745f61735f636f6d707265737365645f706f696e7413436f6d7072657373656452697374726574746f0e706f696e745f636f6d707265737313636f6d6d69746d656e745f61735f706f696e7410636f6d6d69746d656e745f636c6f6e650b706f696e745f636c6f6e6511636f6d6d69746d656e745f657175616c730c706f696e745f657175616c731a636f6d6d69746d656e745f66726f6d5f636f6d7072657373656410706f696e745f6465636f6d707265737315636f6d6d69746d656e745f66726f6d5f706f696e7420636f6d6d69746d656e745f696e746f5f636f6d707265737365645f706f696e7415636f6d6d69746d656e745f696e746f5f706f696e740e636f6d6d69746d656e745f73756209706f696e745f73756215636f6d6d69746d656e745f7375625f61737369676e10706f696e745f7375625f61737369676e13636f6d6d69746d656e745f746f5f62797465730e706f696e745f746f5f62797465730e6e65775f636f6d6d69746d656e74065363616c617211646f75626c655f7363616c61725f6d756c1e6e65775f636f6d6d69746d656e745f666f725f62756c6c657470726f6f66146e65775f706f696e745f66726f6d5f6279746573064f7074696f6e066f7074696f6e07657874726163741462617365706f696e745f646f75626c655f6d756c196e65775f636f6d6d69746d656e745f66726f6d5f62797465730769735f736f6d6504736f6d65046e6f6e651d6e65775f636f6d6d69746d656e745f776974685f62617365706f696e741f72616e646f6d6e6573735f626173655f666f725f62756c6c657470726f6f6600000000000000000000000000000000000000000000000000000000000000010a0221208c9240b456a9e6dc65c377a1048d745f94a08cdb7f44cbcd7b46f3404887113414636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e310002010208010001000002070b0010000b011000110112000202010000060b0b000f000c020b0110000c030b020b03110301020401000002040b0010001105020601000002030b001000020701000002050b00100011081200020901000002060b0010000b011000110a020b01000002040b00110c1200020d01000002030b001200020e01000002040e0010001105020f01000002030b001300021001000002070b0010000b011000111112000212010000060b0b000f000c020b0110000c030b020b03111301021401000009070b00100011050c010e011115021601000002070b000b010b020b03111712000218010000140c070011190c020d0238000c030b010e030b00111b1200021c01000018100b0011190c010e013801040d0d013800120038020c020b020238030c02050b2001000002060b010b020b00111b120002210100001006070011190c000d00380002000000",
    "abi": {
      "address": "0x1",
      "name": "ristretto255_pedersen",
      "friends": [],
      "exposed_functions": [
        {
          "name": "commitment_add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_pedersen::Commitment",
            "&0x1::ristretto255_pedersen::Commitment"
          ],
          "return": [
            "0x1::ristretto255_pedersen::Commitment"
          ]
        },
        {
          "name": "commitment_add_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255_pedersen::Commitment",
            "&0x1::ristretto255_pedersen::Commitment"
          ],
          "return": []
        },
        {
          "name": "commitment_as_compressed_point",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_pedersen::Commitment"
          ],
          "return": [
            "0x1::ristretto255::CompressedRistretto"
          ]
        },
        {
          "name": "commitment_as_point",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_pedersen::Commitment"
          ],
          "return": [
            "&0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "commitment_clone",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_pedersen::Commitment"
          ],
          "return": [
            "0x1::ristretto255_pedersen::Commitment"
          ]
        },
        {
          "name": "commitment_equals",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_pedersen::Commitment",
            "&0x1::ristretto255_pedersen::Commitment"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "commitment_from_compressed",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::CompressedRistretto"
          ],
          "return": [
            "0x1::ristretto255_pedersen::Commitment"
          ]
        },
        {
          "name": "commitment_from_point",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255_pedersen::Commitment"
          ]
        },
        {
          "name": "commitment_into_compressed_point",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ristretto255_pedersen::Commitment"
          ],
          "return": [
            "0x1::ristretto255::CompressedRistretto"
          ]
        },
        {
          "name": "commitment_into_point",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ristretto255_pedersen::Commitment"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "commitment_sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_pedersen::Commitment",
            "&0x1::ristretto255_pedersen::Commitment"
          ],
          "return": [
            "0x1::ristretto255_pedersen::Commitment"
          ]
        },
        {
          "name": "commitment_sub_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255_pedersen::Commitment",
            "&0x1::ristretto255_pedersen::Commitment"
          ],
          "return": []
        },
        {
          "name": "commitment_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_pedersen::Commitment"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "new_commitment",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255_pedersen::Commitment"
          ]
        },
        {
          "name": "new_commitment_for_bulletproof",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::ristretto255_pedersen::Commitment"
          ]
        },
        {
          "name": "new_commitment_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255_pedersen::Commitment>"
          ]
        },
        {
          "name": "new_commitment_with_basepoint",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255_pedersen::Commitment"
          ]
        },
        {
          "name": "randomness_base_for_bulletproof",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        }
      ],
      "structs": [
        {
          "name": "Commitment",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "point",
              "type": "0x1::ristretto255::RistrettoPoint"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c0100140214220336830104b9011005c9017d07c602f50308bb062006db062b108607b3030ab90a150cce0af5010dc30c0200000006000c000d0011001300150017001900200001060000030800010506000007060000080600010a07010001020b0e00011c020000090001000102090001000101020304010801030e0601010601000f070100010210080100010412010900010514080400010616040a000107180d0c010001081a0e01010001011b0f100001011d11120001021e07010001011f1114000109210a0a00010022160100010123170901080101241812000109250a0a000109260a0a000102020305090c0a0b090a03131102031902060c0b050108060001080601060b05010900010501080001090003060c0a020a0a0201060c010101030102010a020106090002070a09000a090002060c0a0201080701060807010c01080301080208030a020a020a0208070608070c060c04060c0a020a0a020b05010806020b05010900050106080201080402050c166f626a6563745f636f64655f6465706c6f796d656e7406467265657a650e6f626a6563745f616464726573730c4d616e6167696e67526566730a657874656e645f72656609457874656e64526566066f626a656374075075626c697368075570677261646512667265657a655f636f64655f6f626a656374064f626a6563740f5061636b616765526567697374727904636f6465056576656e7404656d6974077075626c69736820636865636b5f636f64655f7075626c697368696e675f7065726d697373696f6e0866656174757265732169735f6f626a6563745f636f64655f6465706c6f796d656e745f656e61626c6564067369676e65720a616464726573735f6f66076163636f756e74136765745f73657175656e63655f6e756d6265720362637308746f5f627974657306766563746f7206617070656e64136372656174655f6e616d65645f6f626a6563740e436f6e7374727563746f725265660f67656e65726174655f7369676e6572137075626c6973685f7061636b6167655f74786e1367656e65726174655f657874656e645f726566056572726f720b756e617661696c61626c6507757067726164650869735f6f776e65721d67656e65726174655f7369676e65725f666f725f657874656e64696e67096e6f745f666f756e64117065726d697373696f6e5f64656e69656400000000000000000000000000000000000000000000000000000000000000010a0228276170746f735f6672616d65776f726b3a3a6f626a6563745f636f64655f6465706c6f796d656e7414636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631ff0204010000000000000025454f424a4543545f434f44455f4445504c4f594d454e545f4e4f545f535550504f525445442d4f626a65637420636f6465206465706c6f796d656e742066656174757265206e6f7420737570706f727465642e020000000000000016454e4f545f434f44455f4f424a4543545f4f574e4552224e6f7420746865206f776e6572206f66207468652060636f64655f6f626a6563746003000000000000001b45434f44455f4f424a4543545f444f45535f4e4f545f45584953541d60636f64655f6f626a6563746020646f6573206e6f742065786973742e040000000000000013454e4f5f434f44455f5045524d495353494f4e3643757272656e74207065726d697373696f6e6564207369676e65722063616e6e6f74206465706c6f79206f626a65637420636f64652e0406467265657a65010400075075626c69736801040007557067726164650104000c4d616e6167696e6752656673010301183078313a3a6f626a6563743a3a4f626a65637447726f7570000002010205010201040802030201020504020102050001040001080b000a0111010e01380012003801020401040015360a001105110604310a0011071108060100000000000000160c03400b00000000000000000c040d0407000c050e05380238030d040e03380438030b040c060b000b06110b0c070e070c080a08110c0c090e090c0a0a0a0b010b02110d0a0a1107120238050b0a0b08110e12012d01020b0001060100000000000000110f2710010401011a250a0011050b0011070c040a030b04380604220e0338000c040a042901041f0b042b01100011120c050e050c000a000b010b02110d0b0011071203380702060300000000000000111327060200000000000000111427010000",
    "abi": {
      "address": "0x1",
      "name": "object_code_deployment",
      "friends": [],
      "exposed_functions": [
        {
          "name": "freeze_code_object",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::code::PackageRegistry>"
          ],
          "return": []
        },
        {
          "name": "publish",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "upgrade",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<vector<u8>>",
            "0x1::object::Object<0x1::code::PackageRegistry>"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Freeze",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "object_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "ManagingRefs",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "extend_ref",
              "type": "0x1::object::ExtendRef"
            }
          ]
        },
        {
          "name": "Publish",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "object_address",
              "type": "address"
            }
          ]
        },
        {
          "name": "Upgrade",
          "is_native": false,
          "is_event": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "object_address",
              "type": "address"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c01000e020e380346fa0204c0033605f6039e03079407c20808d60f2006f60f22109810d1010ae911060cef11df050dce1702000000040007000f001700360038000108000103060002060600010907010001020a0b00020c080002190600021f000002260600013002000119060005350701000006370700000500010001020802030001000b0506010801020d0801010801000e090101080103100a0b000101110d0b01080101120e0b000102130f010001001411010108010015050601080100161201000104141301010801001815010001021a1603000102181701010801001b0518010801001c0519010801041d1a18010801001e1b01000102201c030001041e1d0101080100211e01000102211f0101080100222019010801042321190108010024051901080102241a190108010025220100010227230300010228240101080100292501000102292601010801002a2728010801042a2728010801002b29280001022b2a28010801002c2b01010801042c2c01010801002d0506010801012e0b1a010801012f2d2e000101312f30000101323101000102333206010801003434010001023934030001013a2f350001013b2f360001003c37010001023d1c180001023e1c030001023f380100010040050b01080102410b19000100423b01000101431a1901080101443c0101080102040307060c0a0c0c070a040f07110c020c12071507170719071b071e07200722072407260728042c0c0604350c2807270c380739070306080205030001060802010b0301080401080402050b03010900010b03010805010805030608020b030109000304060c060c0b030109000301060c010501090001060b0301090002050504060c060c0503030b03010900050504060c0b03010900050302060c0b0301080504060c0b030109000b0301090003020b030108050b030108050406080605050301060806040608060b030109000b030109000301030101010b030109000205080701060807020b03010900080703060806050807030608060b03010900080703050b0301090003020b030109000303060808050301060808030608080b0301090003030608060501030608060b030109000103060c0b0301090003010807030608060503030608060b030109000305060c0b0301090005030305060c0b030109000b03010900030302050608010108090106080901080a0106080a020608090b0301090005050608010809060809080a070608090b0b0104080c080c02080c080c010c01080102060c080703060c0305040b0301080405050b0301080402050b0301080503060c060c0302060c0b03010900167072696d6172795f66756e6769626c655f73746f72650c446572697665526566506f64136d657461646174615f6465726976655f72656609446572697665526566066f626a656374046275726e074275726e5265660e66756e6769626c655f6173736574116275726e5f7265665f6d65746164617461064f626a656374084d657461646174610d7072696d6172795f73746f72650d46756e6769626c6553746f7265096275726e5f66726f6d106772616e745f7065726d697373696f6e067369676e65720a616464726573735f6f660e6f626a6563745f61646472657373226372656174655f757365725f646572697665645f6f626a6563745f616464726573731b6772616e745f7065726d697373696f6e5f62795f61646472657373087472616e736665721b656e737572655f7072696d6172795f73746f72655f6578697374730d6d61795f62655f756e6275726e1b646973706174636861626c655f66756e6769626c655f6173736574117472616e736665725f776974685f7265660b5472616e73666572526566157472616e736665725f7265665f6d657461646174610762616c616e6365147072696d6172795f73746f72655f6578697374730f646572697665645f62616c616e6365076465706f7369740d46756e6769626c6541737365740e61737365745f6d65746164617461106465706f7369745f776974685f7265661369735f62616c616e63655f61745f6c656173741b69735f646572697665645f62616c616e63655f61745f6c656173740969735f66726f7a656e046d696e74074d696e74526566116d696e745f7265665f6d65746164617461076d696e745f746f0f7365745f66726f7a656e5f666c61670877697468647261771177697468647261775f776974685f7265661f7472616e736665725f6173736572745f6d696e696d756d5f6465706f736974146372656174655f7072696d6172795f73746f726511616464726573735f746f5f6f626a6563741a6372656174655f757365725f646572697665645f6f626a6563740e436f6e7374727563746f725265661567656e65726174655f7472616e736665725f7265661864697361626c655f756e67617465645f7472616e736665720c6372656174655f73746f72652b6372656174655f7072696d6172795f73746f72655f656e61626c65645f66756e6769626c655f6173736574064f7074696f6e066f7074696f6e06537472696e6706737472696e670f6164645f66756e676962696c6974790f67656e65726174655f7369676e65721367656e65726174655f6465726976655f726566136465706f7369745f776974685f7369676e657206616d6f756e74136d657461646174615f66726f6d5f617373657411726566696c6c5f7065726d697373696f6e157072696d6172795f73746f72655f616464726573730c73746f72655f657869737473146772616e745f6170745f7065726d697373696f6e0869735f6275726e7406756e6275726e00000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000a14636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76319d0100010c446572697665526566506f64010301183078313a3a6f626a6563743a3a4f626a65637447726f7570060762616c616e63650101000969735f66726f7a656e0101000d7072696d6172795f73746f72650101001369735f62616c616e63655f61745f6c65617374010100147072696d6172795f73746f72655f657869737473010100157072696d6172795f73746f72655f6164647265737301010000020102080100010000060a0b010a00110138000c030b000b030b0238010204010000100c0b000a010b0111050b020c040e04380211070b03110802090104010014120a0011050a0138030c040a000a04110b0b020b0138030c050b000b040b050b033804020d0100010014100b010a00110e38000c040b020a00110e38050c050b000b040b050b0338060210010000180e0a000a013807040b0b000b01380838090c020b02020600000000000000000c020509130100010003090e0111140c020b000b0238050b01380a021601000100060a0b010a00110e38050c030b000b030b02380b021801000019110a000a013807040c0b000b0138080b02380c0c030b03020b02060000000000000000210c03050a1a010000190e0a000a013807040b0b000b013808380d0c020b0202090c0205091c01000100060a0b010a00111d38050c030b000b030b02380e021f01000100060a0b010a00110e38050c030b000b030b02380f022101000100060d0a0011050b0138030c030a000a03110b0b000b030b0238100223010000060a0b010a00110e38000c030b000b030b02381102250104010014130a0011050a0138030c050a000a05110b0b020b0138030c060b000b050b060b030b04381202270100010033190e0138020c020a023813010b022b0010000c030b000b0311290c040e040c050a05112a0c060e06112b0b050b013814022d01000035120a000b010b020b030b040b050b06112e010a00112f0c070e070b00113012002d0002310100010039160a000e0111320a0011050e0111330c020e023815110711340e0111140c050b0011050b0538050b01380a020a010001003a110a000a0138160c020a021136040c0b0238170c030b03020b000b0138180c03050a3701000001090b000a010b011105070011070b021108020b000000010a0a01381904070b000b01381a020b000105060201000001050b000b013816381702350100000b070e0138020c020b000b021107021101000001050b000b013816113602000000",
    "abi": {
      "address": "0x1",
      "name": "primary_fungible_store",
      "friends": [],
      "exposed_functions": [
        {
          "name": "burn",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::BurnRef",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "grant_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "&signer",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "transfer",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "transfer_with_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::TransferRef",
            "address",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "balance",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "deposit",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "deposit_with_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::TransferRef",
            "address",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "is_balance_at_least",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_frozen",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "mint",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::MintRef",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "set_frozen_flag",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::TransferRef",
            "address",
            "bool"
          ],
          "return": []
        },
        {
          "name": "withdraw",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "withdraw_with_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::TransferRef",
            "address",
            "u64"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "transfer_assert_minimum_deposit",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "address",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "create_primary_store",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::FungibleStore>"
          ]
        },
        {
          "name": "create_primary_store_enabled_fungible_asset",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef",
            "0x1::option::Option<u128>",
            "0x1::string::String",
            "0x1::string::String",
            "u8",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "deposit_with_signer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "ensure_primary_store_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::FungibleStore>"
          ]
        },
        {
          "name": "grant_apt_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "primary_store",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::FungibleStore>"
          ]
        },
        {
          "name": "primary_store_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "primary_store_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "DeriveRefPod",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata_derive_ref",
              "type": "0x1::object::DeriveRef"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d010024022416033ae80204a2031805ba03900407ca07f10c08bb142006db145e10b915750aae16240cd2169c130fee290213f029040000000f0012001400160019001d002000260028002d002e00320033003700410046004a0001070000030000000708000a2c08000d3507010000000e00010001011002010001001103010001021301040001031503050001041704040001001806010001051a07050001051b07040001041c04040001061e01050001001f0901000107210207000100220a01000100230b01000100240c01000106250105000108270d05000109290d010001052a07010001092b0d0100010b2f0d050100010030100100010631010500010c32071100010d3413140100010036150100010e381701010001003918010001053a07120001043b04040001003c1a0100010d3d1b050100010d3e1b1c0100010e3f1e050100010040200100010f4222010107010d431b05010001064401050001064501050001104707050001004824010001004926010001114b011d00010f4c2805010701044d04040001004e020100010f4f2a0101070100502b01000100512c01000100522d01000100532e0100010f5428050107010f552801010701005630010001005731010001005832010001005933010001150e19121b1220122112221d242125122c212f213421352105060c0a020a020a020a020001060c03050303010301010305050301050401010103050c03030303060c0503030303060c0303030301070c0503030303010205030108030503030501030b0c030a020a050a0a02050a0203030302010c010a02010900010b0401090009060c060c08010b04010a020303030201010b04010a0201070a0900030a050a0b04010a0201090c0a050a0b04010a020a0a020a0a02030a02010a0b04010a020c0c030a020a050a0a02050a02030303020101060b0401090001060900010201060a09000b0c0a050a0b04010a020a0a020a0a02030a020a0b04010a020b04010a02060b04010a020103060c060c0301080004060c060c0f090008030305060b04010a020b04010a02010501090c030a020a050a0a0203030302050a0b04010a020a0a020a0a02010a0b04010a020a0c030a020a050a0a020303030201040a0b04010a020a0a020a0a020a0b04010a0203060c0f09000a0505060b04010a0201010106080103050102060c0900080c030a02030303020a02090c030a02030303020a0201070c0c0303030301080c0c030303030101060303050501030a0c0b04010a02030a050a0b04010a0203030302010a0c0b04010a0208010a050a0b04010a0203030302010c0c0c0b04010a020b04010a02030a050a0b04010a0203030302010c0c0c0b04010a020b04010a0208010a050a0b04010a02030303020103060b04010a020501167472616e73616374696f6e5f76616c69646174696f6e0d4761735065726d697373696f6e0b64756d6d795f6669656c640f5265706c617950726f746563746f72054e6f6e6365025f300e53657175656e63654e756d626572155472616e73616374696f6e56616c69646174696f6e0b6d6f64756c655f616464720b6d6f64756c655f6e616d65147363726970745f70726f6c6f6775655f6e616d65146d6f64756c655f70726f6c6f6775655f6e616d65196d756c74695f6167656e745f70726f6c6f6775655f6e616d6512757365725f6570696c6f6775655f6e616d650a696e697469616c697a651073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b29636865636b5f666f725f7265706c61795f70726f74656374696f6e5f6f726465726c6573735f74786e0974696d657374616d700b6e6f775f7365636f6e6473106e6f6e63655f76616c69646174696f6e16636865636b5f616e645f696e736572745f6e6f6e6365056572726f7210696e76616c69645f617267756d656e7427636865636b5f666f725f7265706c61795f70726f74656374696f6e5f726567756c61725f74786e076163636f756e74096578697374735f6174136765745f73657175656e63655f6e756d6265720c6f75745f6f665f72616e67650866656174757265732c73706f6e736f7265645f6175746f6d617469635f6163636f756e745f6372656174696f6e5f656e61626c6564086570696c6f677565067369676e65720a616464726573735f6f66126570696c6f6775655f6761735f7061796572116570696c6f6775655f657874656e6465641b6570696c6f6775655f6761735f70617965725f657874656e6465642a6f7065726174696f6e735f64656661756c745f746f5f66615f6170745f73746f72655f656e61626c65640d6170746f735f6163636f756e741c69735f66756e6769626c655f62616c616e63655f61745f6c656173740f7472616e73616374696f6e5f666565086275726e5f66656519696e6372656d656e745f73657175656e63655f6e756d6265720f6d696e745f616e645f726566756e64094170746f73436f696e0a6170746f735f636f696e04636f696e1369735f62616c616e63655f61745f6c65617374196665655f70617965725f7363726970745f70726f6c6f677565116665655f70617965725f656e61626c65640d6372656174655f7369676e6572066f7074696f6e04736f6d65064f7074696f6e0f70726f6c6f6775655f636f6d6d6f6e06766563746f7207726576657273651b6d756c74695f6167656e745f636f6d6d6f6e5f70726f6c6f677565166765745f61757468656e7469636174696f6e5f6b65790d696e76616c69645f7374617465226665655f70617965725f7363726970745f70726f6c6f6775655f657874656e6465640769735f6e6f6e6506626f72726f770869735f656d707479146772616e745f6761735f7065726d697373696f6e137065726d697373696f6e65645f7369676e657212617574686f72697a655f696e6372656173650769735f736f6d652869735f646572697661626c655f6163636f756e745f6162737472616374696f6e5f656e61626c65641e69735f6163636f756e745f6162737472616374696f6e5f656e61626c6564136163636f756e745f6162737472616374696f6e207573696e675f646973706174636861626c655f61757468656e74696361746f721b6d756c74695f6167656e745f7363726970745f70726f6c6f677565246d756c74695f6167656e745f7363726970745f70726f6c6f6775655f657874656e64656408636861696e5f6964036765741f636865636b5f7065726d697373696f6e5f63617061636974795f61626f7665117065726d697373696f6e5f64656e696564157265766f6b655f6761735f7065726d697373696f6e117265766f6b655f7065726d697373696f6e0f7363726970745f70726f6c6f677565187363726970745f70726f6c6f6775655f657874656e64656410756e69666965645f6570696c6f67756513756e69666965645f6570696c6f6775655f763218636865636b5f7065726d697373696f6e5f636f6e73756d650e696e6372656173655f6c696d697410756e69666965645f70726f6c6f67756513756e69666965645f70726f6c6f6775655f76321a756e69666965645f70726f6c6f6775655f6665655f70617965721d756e69666965645f70726f6c6f6775655f6665655f70617965725f76320767656e657369730000000000000000000000000000000000000000000000000000000000000001052000000000000000000000000000000000000000000000000000000000000000010a0217167472616e73616374696f6e5f76616c69646174696f6e0520000000000000000000000000000000000000000000000000000000000000000014636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631420106000000000000000b454f55545f4f465f4741532a5472616e73616374696f6e2065786365656465642069747320616c6c6f6361746564206d6178206761730000000201020101030204010503060105030202060805090a020a0a020b0a020c0a020d0a0200030000010c0a0011010b00070007010b010b020b030b0412022d02020200000001120a0211030641000000000000001625040f0b000b010b021104040c0206f40300000000000011052706f5030000000000001105270600000008450a000b01210441080c030b03043d080c040b040438080c050b0504300a001107042d0b0011080c060a0206000000000000008023042a0a020a062604270b020b0621042405230206eb0300000000000011052706ea0300000000000011052706f00300000000000011092706ec030000000000001105270b02060000000000000000210435052306eb030000000000001105270a02060000000000000000240c05050e110a200c04050a0a0011070c0305060b000000070b0e00110c0c050b000b050b010b020b030b04110d020e000000070c0e00110c0c060b000b060b010b020b030b040b05110f020d00000001090b000b010b020b030b040b0509110f020f0000000f560a040a052604530b040b05170c070a03350a07351832ffffffffffffffff00000000000000002504500b030b07180c080b060a010c09044d0b090702210c0a0b0a041f0531111004450a010a081111044205260a080a022404350b080b02170c0b0b010b0b11120e00110c1113020a080a0223033a05310b020b08170c0b0b010b0b1114053106ed030000000000001109270a010a083800044a052606ed03000000000000110927090c0a051c0606000000000000001109270606000000000000001105271600000019421117043f0e000a0511180c0b0e0b0b0152000b0238010b070b080b090b0a09111a0b030c0c0b04401600000000000000000c0d0c0e0d0e38020b0e0c0f0e0f41120c100a1006000000000000000024042e0d0f45120c110d0d0b11380144160b10060100000000000000170c10051e0b0f461200000000000000000b0d0c130b0c0b1309111c0b060b05111d21043c0206e90300000000000011052706f203000000000000111e271f0000001f5e1117045b0e000a0511180c0c0e0c0b0152000b0238010b070b080b090b0a0a0b111a0b030c0d0b04401600000000000000000c0e0c0f0d0f38020b0f0c100e1041120c110a1106000000000000000024042e0d1045120c120d0e0b12380144160b11060100000000000000170c11051e0b10461200000000000000000b0e0c130b0d0b130a0b111c0b0b0a0638010c140e140c1504560a15380304510b1501080c160b160447054d0b060b05111d21044e054d0206e9030000000000001105270b15380438050c1605440b1501090c16054406f203000000000000111e272301000001080b000b010b024d0912003806021c00000023610e0041070c030e0141160a0321045e0600000000000000000c040a040a0323045d0e000a044207140c050a051107045a0e010a044216140c070a020e070c0604550a06380304500b0601080c080b08042905330e073807043b0b070b05111d380121043805330b04060100000000000000160c04050a06e9030000000000001105270b050c0911260447080c0a0b0a0444053306e9030000000000001105271127044d0b0911280c0a0541090c0a05410b06380438050c0805260b0601090c08052606ec030000000000001105270206f1030000000000001105272900000025300e000e000b0152000b0238010b050b060b070b0809111a401600000000000000000c090b040c0a0d0a38020b0a0c0b0e0b41120c010a010600000000000000002404270d0b45120c020d090b02380144160b01060100000000000000170c0105170b0b461200000000000000000b090c0d0b030b0d09111c022a00000027300e000e000b0152000b0238010b050b060b070b080a09111a401600000000000000000c0a0b040c0b0d0b38020b0b0c0c0e0c41120c010a010600000000000000002404270d0c45120c020d0a0b02380144160b01060100000000000000170c0105170b0c461200000000000000000b0a0c0d0b030b0d0b09111c021a00000029b9010b00110c0c090a01110c0c0a11030a062304b401112b0b072104af010a080e030c0b04aa010a0b380304a5010b0b01080c0c0b0c041c05330e033807048e010a090a0a21048a01080c0d0b0d048601080c0e0b0e032c05330b030a09111d38012104810105330e020c0f0a0f560004720b0f010b0254000c100b090a0a0b1011060b040b05180c100b080a0a0c11046f0b110702210c120b12036c0b010a104d09120038080469111004610b0a0b101111045e055d0206ed030000000000001105270b0a0b1038000466055d06ed0300000000000011052706f303000000000000112d270b0101055d090c12054d0b0f5601047d0b0254010c100b090b100b06110205410b01010601000bbed9cb26ca270b010106e903000000000000110527110a200c0e05290a0911070c0d05250a090c111126049c01080c0d0b0d04970105330b010106e903000000000000110527112704a2010b1111280c0d059401090c0d0594010b0b380438050c0c05190b0b01090c0c05190b010106ef030000000000001105270b010106ee030000000000001105272e01000001050b0009120038090230000000010d0e000e000b0152000b0238010b030b040b050b0609111a0231000000010d0e000e000b0152000b0238010b030b040b050b060b08111a0232000000010a0b000b010b020b030b040b050b0609113302330000002f690a040a052604660b040b05170c080a03350a08351832ffffffffffffffff00000000000000002504630b030b08180c090e01110c0c0a0b060a0a0c0b04600b0b0702210c0c0b0c0422053b111004580a0a0a091111045505290a090a022404420b090b02170c0d0b0a0a0d11120e010b0d4d091200380a010b07043e05410e00110c1113020a090a02230347053b0b020b09170c0d0b0a0a0d11140e010b0d4d091200380b053b06ed030000000000001109270a0a0a093800045d052906ed03000000000000110927090c0c051f06060000000000000011092706060000000000000011052736000000010d0b000b010b0252000b030b040b050b060b070b080b0911370238000000010f0b000b010b020b030b0452000b050b060b070b080b090b0a0b0b11390239000000344a0e000e010b040b020b070b080b090b0a0a0b111a0b050b060a0b111c0e030c0c0b0b04450a0c380304400b0c01080c0b0b0b041c05290e01110c0c0d0e033807042d0b030b0d111d380121042a05290206e90300000000000011052711260437080c0e0b0e0434052906e9030000000000001105271127043d0b0d11280c0e0531090c0e05310b0c380438050c0b05190b0c01090c0b051937000000010f0e000e000b020b010b050b060b070b080a09111a0b030b040b09111c02005a0101010000",
    "abi": {
      "address": "0x1",
      "name": "transaction_validation",
      "friends": [
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "grant_gas_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "revoke_gas_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "GasPermission",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ]
        },
        {
          "name": "ReplayProtector",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": []
        },
        {
          "name": "TransactionValidation",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "module_addr",
              "type": "address"
            },
            {
              "name": "module_name",
              "type": "vector<u8>"
            },
            {
              "name": "script_prologue_name",
              "type": "vector<u8>"
            },
            {
              "name": "module_prologue_name",
              "type": "vector<u8>"
            },
            {
              "name": "multi_agent_prologue_name",
              "type": "vector<u8>"
            },
            {
              "name": "user_epilogue_name",
              "type": "vector<u8>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0d0100140214320346c601048c020e059a02980207b204880708ba0b2010da0be1010abb0d210cdc0da8070d84150211861508138e15040000000500080006000e0012001500160019002b000104000104040002070701000003090f00000a0700040d0700000f0800051104020400040006140300081b020004200700001300010001071703040001061805060001081a07080001081c090a0001081d090b0001041e070c0001041f070d000106210506000104220e0f00010523110f0207040105241213020704010225150f010001022616170100010327180f000105281902020704010529111a02070401012a1b010001092c0a0a0001002d1d010001012e030f0001052f1e1f0204040101302021000109310a0a000100320c23000100332404000101341b04000100352601000100362602000101372102000109380a0a00010a100b100c140d140f1010101510020c0808010c0001060c01050106080801060a02010a02010809010708090103010201080501080a0306080a0608050a020101020804080002060b07020900090106090002070b07020900090106090001090101080301060b0201090001070b0201090001070900020708030303070b07020900090109000901010609010106080114050809070809030a0203010708090805030a020301080a050804070b0702080408000800070b020108030104060c08040b0201080303030d0d01010b07020900090102060c030108010305070b070208040800080101080402050804050804070b0702080408000800070b020108030102060c080406050804070b0702080408000800070b020108030102070b0702080408000800177065726d697373696f6e65645f64656c65676174696f6e114163636f756e7444656c65676174696f6e0256310668616e646c651a53746f7261626c655065726d697373696f6e656448616e646c65137065726d697373696f6e65645f7369676e65720c726174655f6c696d69746572064f7074696f6e066f7074696f6e0b526174654c696d697465720d44656c65676174696f6e4b657910456432353531395075626c69634b6579025f3014556e76616c6964617465645075626c69634b65790765643235353139155265676973746572656444656c65676174696f6e730b64656c65676174696f6e730d4269674f7264657265644d61700f6269675f6f7264657265645f6d61700c61757468656e746963617465134162737472616374696f6e417574684461746109617574685f64617461067369676e65720a616464726573735f6f660d61757468656e74696361746f720a6263735f73747265616d036e65770942435353747265616d13646573657269616c697a655f756c65623132380e646573657269616c697a655f7538256e65775f756e76616c6964617465645f7075626c69635f6b65795f66726f6d5f6279746573186e65775f7369676e61747572655f66726f6d5f6279746573095369676e617475726506646967657374177369676e61747572655f7665726966795f73747269637408636f6e7461696e730672656d6f76650769735f736f6d650a626f72726f775f6d757407726571756573740361646406626f72726f77287369676e65725f66726f6d5f73746f7261626c655f7065726d697373696f6e65645f68616e646c65056572726f72117065726d697373696f6e5f64656e696564176164645f7065726d697373696f6e65645f68616e646c651669735f7065726d697373696f6e65645f7369676e65720f6e65775f776974685f636f6e666967236372656174655f73746f7261626c655f7065726d697373696f6e65645f68616e646c650e616c72656164795f6578697374730f67656e5f656432353531395f6b65791568616e646c655f616464726573735f62795f6b65791b7065726d697373696f6e735f73746f726167655f616464726573731a7065726d697373696f6e65645f7369676e65725f62795f6b65791a72656d6f76655f7065726d697373696f6e65645f68616e646c652464657374726f795f73746f7261626c655f7065726d697373696f6e65645f68616e646c65096e6f745f666f756e64000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631ad0106010000000000000012454e4f545f4d41535445525f5349474e45520002000000000000001345494e56414c49445f5055424c49435f4b455900030000000000000015455055424c49435f4b45595f4e4f545f464f554e440004000000000000001245494e56414c49445f5349474e4154555245000500000000000000154544454c45474154494f4e5f4558495354454e43450006000000000000000d45524154455f4c494d495445440000000003010202030801060b020108030403010b010c0805060201100b07020804080000010001021c9e010e0011010c020e0111021411030c030d030c040a0411040c05400b00000000000000000c060600000000000000000c07090c080a080498010b07060100000000000000160c070a070a052304220d060a041105440b05130b04010b0611060c0a0d030c090a0911040c0b400b00000000000000000c0c0600000000000000000c0d090c0e0a0e0492010b0d060100000000000000160c0d0a0d0a0b2304410d0c0a091105440b05320b09010b0c11070c0f0e0f0e0a0e011108141109048f010b020c100b0a52000c110a102902048c010b102a020f000c120a122e0e1138000487010a120e1138010c130d134f000c140a142e38020c150b150481010b143803060100000000000000110e047c05710a120a110b1338040b122e0e1138054e011111020b12010606000000000000001112270b14010571090c1505690b1201060400000000000000111227060400000000000000111227060400000000000000111227080c0e05380b09010543080c0805190b04010524130100010222330a001114032e0a0011010c040a042902040a05110a0048320048140009380612022d020b042a020f000c050a052e0e01380003270b000b0311160c060e0611110b050b010b060b0252013804020b00010b05010605000000000000001117270b00010601000000000000001112271801000002030b00520002190100010225400b010c020a002902043d0b002a020f000c030a032e0e02380004380a030e0238010c040d044f000c0505350a052e38020c060b0604320b053803060100000000000000110e042d05220a030a020b0438040b032e0e0238054e01111a020b03010606000000000000001112270b05010522090c06051a0b03010604000000000000001112270604000000000000001112271b01000102274b0a00111403460b0011010c020b010c030a02290204430b022a020f000c040a042e0e033800043e0a040e0338010c050d054f000c06053b0a062e38020c070b0704380b063803060100000000000000110e043305280a040a030b0538040b042e0e0338054e011111020b04010606000000000000001112270b06010528090c0705200b04010604000000000000001112270604000000000000001112270b00010601000000000000001112271c0100010228250a00111403200b0011012a020f000c020a022e0e013800041b0b020e0138010c030e03560104190b03540101111d020601000bbed9cb26ca270b0201060500000000000000111e270b0001060100000000000000111227020000010100000001000100000000",
    "abi": {
      "address": "0x1",
      "name": "permissioned_delegation",
      "friends": [],
      "exposed_functions": [
        {
          "name": "authenticate",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "signer",
            "0x1::auth_data::AbstractionAuthData"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "add_permissioned_handle",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::permissioned_delegation::DelegationKey",
            "0x1::option::Option<0x1::rate_limiter::RateLimiter>",
            "u64"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "gen_ed25519_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "0x1::permissioned_delegation::DelegationKey"
          ]
        },
        {
          "name": "handle_address_by_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::permissioned_delegation::DelegationKey"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "permissioned_signer_by_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::permissioned_delegation::DelegationKey"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "remove_permissioned_handle",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::permissioned_delegation::DelegationKey"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "AccountDelegation",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": []
        },
        {
          "name": "DelegationKey",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": []
        },
        {
          "name": "RegisteredDelegations",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "delegations",
              "type": "0x1::big_ordered_map::BigOrderedMap<0x1::permissioned_delegation::DelegationKey, 0x1::permissioned_delegation::AccountDelegation>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0f010008020822032afd0104a7022e05d502970207ec04f90408e5092010850aa0010aa50b300cd50b9f060df4110411f811181290120c139c120614a212060000000c000e002800010401040000060000000804010400010b07010000020d040203010001001304000014000101040101150304010001001606070104010116080701000102160a0b0203000100170c0d01040101170e0d01000102170f10020300010018010301040100191112010401011a0800010001011b04050100010218130302030001011c0403010001001d1505010401001e16120001001f0c170104010020180301040100211a1b0104010022111c01040100231d0301040100241f03010401022120030203000100250c030104010026111201040100270c03010401032912120001002a2223010401002b12000001002c12000001002d0c24010401012e08000100010214031302030401012f2703010001021d0f290203000100302a1200010102030204090602070909050a020b020c090d02100511051305140516091805190515051e051f022009210222090101010b02010900010b0402030b0001090000010b0301090001090002060b02010900030106090001060b0301090002030b0001090002060b04020900090109000106090102070b02010900030107090001070b0301090002070b04020900090109000107090101070b020109000103010b04020900090102030b03010b0402030b0001090002070b02010900080501060805020801090003070b0201090008010805020900080102070b020109000900010805020805080103070b020109000801090001080103070b02010900030b0001090003070b04020900090109000901040301030301060b02010900010e010b000109000203070e030b000109000703070e02070b03010900090002030703010901010608011773746f726167655f736c6f74735f616c6c6f6361746f72044c696e6b084f636375706965640576616c756506566163616e74046e6578740c5265736572766564536c6f740a736c6f745f696e6465781553746f72616765536c6f7473416c6c6f6361746f7202563105736c6f7473064f7074696f6e066f7074696f6e0f5461626c65576974684c656e677468117461626c655f776974685f6c656e6774680e6e65775f736c6f745f696e6465780c73686f756c645f72657573651072657573655f686561645f696e6465781172657573655f73706172655f636f756e740a53746f726564536c6f74036e6577046e6f6e6506626f72726f770a626f72726f775f6d75740d64657374726f795f656d7074791a6d617962655f706f705f66726f6d5f72657573655f71756575650769735f736f6d650c64657374726f795f736f6d650c64657374726f795f6e6f6e650672656d6f76650f73746f7265645f746f5f696e6465781272656d6f76655f616e645f7265736572766512667265655f72657365727665645f736c6f74036164640c726573657276655f736c6f741266696c6c5f72657365727665645f736c6f74086164645f6c696e6b14616c6c6f636174655f73706172655f736c6f74730f6e6578745f736c6f745f696e646578196d617962655f707573685f746f5f72657573655f7175657565056572726f7210696e76616c69645f617267756d656e74186765745f6e756d5f73706172655f736c6f745f636f756e740d69735f6e756c6c5f696e6465781769735f7370656369616c5f756e757365645f696e6465780b72656d6f76655f6c696e6b0769735f6e6f6e650466696c6c1172657365727665645f746f5f696e646578000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76316d0301000000000000001145494e56414c49445f415247554d454e54000200000000000000214543414e4e4f545f484156455f5350415245535f574954484f55545f52455553450007000000000000001a45494e5445524e414c5f494e56415249414e545f42524f4b454e000000000302020103090004010503010201070302030109050a0b03010b0402030b000109000f0310011103120e05020107030001000003073800060a000000000000000b0006000000000000000049000000005300020201000003070b00500038010b0138025001020501000003070b00510038030b0138045101020801000014210d0038050600000000000000002104000e005700041f0b005500010c0101010c020b0106000000000000000021041d0e023806041a0b0238073808020b0238090519060700000000000000270601000bbed9cb26ca270e010000190c0a000e01110f380a0c020c030b000b030b01380b0b0202120100001e080a00380c0c020b000b020b01380d021500000003070b00510038030b010b02380e021701000021290a0050021404240600000000000000000c02090c030b010c040a03041e0b02060100000000000000160c020a020a0423041b0a00380f0c050a000b053810050a0b000102080c0305100b0001051d0b0001060200000000000000111a271401000012090b0113010c030b000b030b0253013811021101000012140b0113010c030a030e021000142104100b021303010b000b033810020b0001060100000000000000271b010000030d0a0050021404080b00500314020b0001060200000000000000111a271c01000003040b0006000000000000000021021d010000000d0a0006000000000000000022040a0b00060a00000000000000230c010b0102090c01050809000000251d0a005004140c010a0106000000000000000022041a0a000a01381255020a005104150b0051030c020a02144901000000170b02150b01020b000105181900000026200a00500214041d0a0050041453020c020a000a010b0238110a0051040c030b010b03150b0051030c040a04144901000000160b0415020b0001051c18000000281a0a005005140c010a0051050c020a0214060100000000000000160b02150a005000381304170b005100381438150b01020b000105151001000019090b000a01381255010c020b0112010b02021e00000003060b00510038030b013816021301000012120a0038050c010a0106000000000000000021040f0b00380f0c010a0112030b011201020b0001050a2301000003040b00100114020f01000003040b00100014020300010002000100000001000202010002040100020301000201010000050105020503050405050502000000000100050105020500",
    "abi": {
      "address": "0x1",
      "name": "storage_slots_allocator",
      "friends": [],
      "exposed_functions": [
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "bool"
          ],
          "return": [
            "0x1::storage_slots_allocator::StorageSlotsAllocator<T0>"
          ]
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::storage_slots_allocator::StorageSlotsAllocator<T0>",
            "u64"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slots_allocator::StorageSlotsAllocator<T0>",
            "u64"
          ],
          "return": [
            "&mut T0"
          ]
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::storage_slots_allocator::StorageSlotsAllocator<T0>"
          ],
          "return": []
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slots_allocator::StorageSlotsAllocator<T0>",
            "0x1::storage_slots_allocator::StoredSlot"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slots_allocator::StorageSlotsAllocator<T0>",
            "T0"
          ],
          "return": [
            "0x1::storage_slots_allocator::StoredSlot"
          ]
        },
        {
          "name": "allocate_spare_slots",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slots_allocator::StorageSlotsAllocator<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "fill_reserved_slot",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slots_allocator::StorageSlotsAllocator<T0>",
            "0x1::storage_slots_allocator::ReservedSlot",
            "T0"
          ],
          "return": []
        },
        {
          "name": "free_reserved_slot",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slots_allocator::StorageSlotsAllocator<T0>",
            "0x1::storage_slots_allocator::ReservedSlot",
            "0x1::storage_slots_allocator::StoredSlot"
          ],
          "return": []
        },
        {
          "name": "get_num_spare_slot_count",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::storage_slots_allocator::StorageSlotsAllocator<T0>"
          ],
          "return": [
            "u32"
          ]
        },
        {
          "name": "is_null_index",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_special_unused_index",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "remove_and_reserve",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slots_allocator::StorageSlotsAllocator<T0>",
            "u64"
          ],
          "return": [
            "0x1::storage_slots_allocator::ReservedSlot",
            "T0"
          ]
        },
        {
          "name": "reserve_slot",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slots_allocator::StorageSlotsAllocator<T0>"
          ],
          "return": [
            "0x1::storage_slots_allocator::StoredSlot",
            "0x1::storage_slots_allocator::ReservedSlot"
          ]
        },
        {
          "name": "reserved_to_index",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::storage_slots_allocator::ReservedSlot"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "stored_to_index",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::storage_slots_allocator::StoredSlot"
          ],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": [
        {
          "name": "Link",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "fields": []
        },
        {
          "name": "ReservedSlot",
          "is_native": false,
          "is_event": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "slot_index",
              "type": "u64"
            }
          ]
        },
        {
          "name": "StorageSlotsAllocator",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "fields": []
        },
        {
          "name": "StoredSlot",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "slot_index",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c01000a020a0e03183904510c055d2c078901ba0208c3032006e303221085041f0aa4040d0cb10494010fc50502000000060008000a000e00010e0000030e00010507010000000700010001020900010001030b0103010401030c0104010401000d07010001040f010100010010080100010311040101060100120901000102020302020503050702070501060c000108010101010900010800040801070801080007080003060c0801080002060c0b02010302060c011872616e646f6d6e6573735f6170695f76305f636f6e66696715416c6c6f77437573746f6d4d6178476173466c61670576616c75651252657175697265644761734465706f7369740a6761735f616d6f756e74064f7074696f6e066f7074696f6e0c6f6e5f6e65775f65706f63681073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b0d636f6e6669675f6275666665720a646f65735f65786973740a657874726163745f76320a696e697469616c697a650c636861696e5f7374617475730e6173736572745f67656e65736973127365745f666f725f6e6578745f65706f636806757073657274257365745f616c6c6f775f6d61785f6761735f666c61675f666f725f6e6578745f65706f6368187265636f6e66696775726174696f6e5f776974685f646b6700000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e310002010201010201040b020103000100020001062b0a00110138000305051038010c0107002901042707002a010c020b010b02153802042438030c030700290004200b000107002a000c040b030b0415020b000b032d00051f0b0001051f0a000b012d01051004000000010a0a00110111050a000b012d010b000b022d00020601000001060b0011010b0112013804020801000001060b0011010b011200380502001300",
    "abi": {
      "address": "0x1",
      "name": "randomness_api_v0_config",
      "friends": [
        "0x1::reconfiguration_with_dkg"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::option::Option<u64>"
          ],
          "return": []
        },
        {
          "name": "set_allow_max_gas_flag_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "bool"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "AllowCustomMaxGasFlag",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "value",
              "type": "bool"
            }
          ]
        },
        {
          "name": "RequiredGasDeposit",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "gas_amount",
              "type": "0x1::option::Option<u64>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c010006020604030a2d043706053d160753cf0108a2022006c2022210e4021f0a8303050c88036b0ff3030200000004000600010e000003000100010105000100010207010301040102080104010401000900010001000a06010001020b040101060102020302060201060c00010800010101090002080007080002060c031872616e646f6d6e6573735f636f6e6669675f7365716e756d1652616e646f6d6e657373436f6e6669675365714e756d077365715f6e756d0c6f6e5f6e65775f65706f63681073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b0d636f6e6669675f6275666665720a646f65735f65786973740a657874726163745f76320a696e697469616c697a65127365745f666f725f6e6578745f65706f636806757073657274187265636f6e66696775726174696f6e5f776974685f646b6700000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e310002010203000300010005190a0011013800041638010c010700290004120b000107002a000c020b010b0215020b000b012d0005110b0001051104010000010d0a00110107002900030a0b0006000000000000000012002d00020b000105090501000001060b0011010b011200380202000c00",
    "abi": {
      "address": "0x1",
      "name": "randomness_config_seqnum",
      "friends": [
        "0x1::reconfiguration_with_dkg"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "RandomnessConfigSeqNum",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "seq_num",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0a0100260226120338aa0104e2010405e60139079f02950508b4072010d4071f0cf307790fec0804000000020004000600080009000a000b000c000d000e000f0010001100120018001e002200250f1707010000021907000c210f00122407000001000100010103000100010205000100010307000100010407000100010507000100010607000100010707000100010807000100010907000100010a07000100010b07000100010c07000100010d07000100010e13010100010014020100010201030100010015010100010216010400010f1a06070100010f1b0608010001021c090a00010e1d010a0001101f010100010c20010b00011123010c00011126010c000102270d0100011305140501060c0002060c0a02010a02010b0001080101080101060b00010900010101060900010608010103010802010a0803040308020a08030a0803187265636f6e66696775726174696f6e5f776974685f646b670666696e6973681073797374656d5f616464726573736573166173736572745f6170746f735f6672616d65776f726b03646b671c7472795f636c6561725f696e636f6d706c6574655f73657373696f6e10636f6e73656e7375735f636f6e6669670c6f6e5f6e65775f65706f636810657865637574696f6e5f636f6e6669670c6761735f7363686564756c650776657273696f6e086665617475726573146a776b5f636f6e73656e7375735f636f6e666967046a776b730f6b65796c6573735f6163636f756e741872616e646f6d6e6573735f636f6e6669675f7365716e756d1172616e646f6d6e6573735f636f6e6669671872616e646f6d6e6573735f6170695f76305f636f6e6669670f7265636f6e66696775726174696f6e0b7265636f6e6669677572651666696e6973685f776974685f646b675f726573756c74097472795f737461727412696e636f6d706c6574655f73657373696f6e064f7074696f6e066f7074696f6e0f444b4753657373696f6e53746174650769735f736f6d6506626f72726f771473657373696f6e5f6465616c65725f65706f63680d63757272656e745f65706f6368157265636f6e66696775726174696f6e5f7374617465116f6e5f7265636f6e6669675f73746172740763757272656e741052616e646f6d6e657373436f6e666967057374616b651d6375725f76616c696461746f725f636f6e73656e7375735f696e666f731656616c696461746f72436f6e73656e737573496e666f1876616c696461746f725f636f6e73656e7375735f696e666f1e6e6578745f76616c696461746f725f636f6e73656e7375735f696e666f73057374617274106170746f735f676f7665726e616e636505626c6f636b000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e3100030000011c0a0011010a0011020a0011030a0011040a0011050a0011060a0011070a0011080a0011090a00110a0a00110b0a00110c0b00110d110e020f00000001050b0111100b0011000211030000041511120c000e0038000306050e0e0038011115111621030d050e021117111611181119111a111b020028002900",
    "abi": {
      "address": "0x1",
      "name": "reconfiguration_with_dkg",
      "friends": [
        "0x1::aptos_governance",
        "0x1::block"
      ],
      "exposed_functions": [
        {
          "name": "finish",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "try_start",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        }
      ],
      "structs": []
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0c010014021426033aa20104dc011005ec01eb0107d703830608da092006fa099a0210940cad030ac10f080cc90f940713dd160200000005000a000b000e00120018001b001d002a0001020002090300040d07010000030f0300071a0700081f07000824070008260700092c02000004000100010106030401000101070506010001000808090001030c060a000104100c0d01000104110e0f01000105131001000100141106000102151300000100160014000102171300000106191516010001071c17000001081e011800010220130000010021001a000100221b0100010823011c00010825191d000108271e0d000101282006010001052906010001092b01220001092d23240001092e2302000101020202050b060b0c0105190619150201060a02010a02010202060a090006090002010301070a090000090a0203020a0203030d0d01020c0801010c010b0201080301080301060b020109000101010b0201090001090001060803020801060a02030b0201080308030a0201060801020a020a020106090001080401060804010b0201080501080501080004060a02060a02060a02060a02010806010807030608060608070a0209060a020a020a0208040b0201080508000a020806080702070a09000a0900030a02070a020a020108080107080801030e0808070808030a0203010708080a02030a0203010a020a02060808070808030a02030118736f6c616e615f646572697661626c655f6163636f756e74155349575341627374726163745369676e6174757265094d6573736167655631097369676e617475726513746f5f7075626c69635f6b65795f627974657306766563746f7208696e6465785f6f6607726576657273650c61757468656e746963617465134162737472616374696f6e417574684461746109617574685f64617461137472616e73616374696f6e5f636f6e7465787416656e7472795f66756e6374696f6e5f7061796c6f6164064f7074696f6e066f7074696f6e14456e74727946756e6374696f6e5061796c6f61640769735f736f6d650c64657374726f795f736f6d6521636f6d6d6f6e5f6163636f756e745f6162737472616374696f6e735f7574696c7313656e7472795f66756e6374696f6e5f6e616d651661757468656e7469636174655f617574685f646174611d646572697661626c655f61627374726163745f7075626c69635f6b65791f646573657269616c697a655f61627374726163745f7075626c69635f6b6579066469676573740c737472696e675f7574696c7309746f5f737472696e6706537472696e6706737472696e670562797465730765643235353139236e65775f76616c6964617465645f7075626c69635f6b65795f66726f6d5f62797465731256616c6964617465645075626c69634b65791c646572697661626c655f61627374726163745f7369676e61747572651e646573657269616c697a655f61627374726163745f7369676e617475726511636f6e7374727563745f6d657373616765186e65775f7369676e61747572655f66726f6d5f6279746573095369676e61747572651b7075626c69635f6b65795f696e746f5f756e76616c69646174656414556e76616c6964617465645075626c69634b6579177369676e61747572655f7665726966795f73747269637406617070656e640c6e6574776f726b5f6e616d650a6263735f73747265616d036e65770942435353747265616d13646573657269616c697a655f756c65623132380e646573657269616c697a655f753800000000000000000000000000000000000000000000000000000000000000010a020201000a023b3a31323334353637383941424344454647484a4b4c4d4e505152535455565758595a6162636465666768696a6b6d6e6f707172737475767778797a0a0231302077616e747320796f7520746f207369676e20696e207769746820796f757220536f6c616e61206163636f756e743a0a0a023d3c0a0a506c6561736520636f6e6669726d20796f75206578706c696369746c7920696e69746961746564207468697320726571756573742066726f6d200a0202012e0a022b2a20596f752061726520617070726f76696e6720746f2065786563757465207472616e73616374696f6e200a021514206f6e204170746f7320626c6f636b636861696e0a02030220280a020201290a020a090a0a4e6f6e63653a2014636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631f9020601000000000000001245494e56414c49445f5349474e41545552451b5369676e6174757265206661696c656420746f207665726966792e02000000000000001b45494e56414c49445f424153455f35385f5055424c49435f4b4559294e6f6e206261736535382063686172616374657220666f756e6420696e207075626c6963206b65792e03000000000000001f454d495353494e475f454e5452595f46554e4354494f4e5f5041594c4f414422456e7472792066756e6374696f6e207061796c6f6164206973206d697373696e672e04000000000000001745494e56414c49445f5349474e41545552455f5459504517496e76616c6964207369676e617475726520747970652e05000000000000001345494e56414c49445f5055424c49435f4b455913496e76616c6964207075626c6963206b65792e06000000000000001a45494e56414c49445f5055424c49435f4b45595f4c454e4754481a496e76616c6964207075626c6963206b6579206c656e6774682e00000003010201030a0200000000077b07000c010600000000000000000c020a020a0041022304530a000a024202140c0307010c040e040e0338000c05044f0600000000000000000c060b054b0c070a060e014102230320053b0e010a064202144b483a00180b07160c080a0848ff001c330d010a064302150b083108300c070b06060100000000000000160c06051a0a0748000024044a0d010a0748ff001c3344020b073108300c07053b0b02060100000000000000160c0205040b0001060200000000000000270600000000000000000c020a020a0041022304780a000a024202143131210c090b09046b0d01310044020b02060100000000000000160c0205550b00010d0138010e0141020620000000000000002104760b010206060000000000000027090c09056103010000121211040c020e02380204100b0238030c030e0311070c040b010e0411080b000206030000000000000027080000001f3c0e001109110a0c030c040e00110b38040c050e05110d0c020e041100110e0c060e06380504360e00110f11100c070e07560004300b0754000e040e030b010b0211110c0811120c090e090b06380611130c0a0e0a0b081114042e02060100000000000000270b01010b02010601000bbed9cb26ca270b01010b02010605000000000000002711000000213b400200000000000000000c040d040c050a050a011438070a05070238070a050b001438070a05070338070a050b011438070a05070438070a05070538070a050b021438070a050706380711160c060a05070738070a050b0638070a05070838070a05070438070a05070938070a050b031438070b0514020a000000254f0b001411170c010d010c020a0211180c03400200000000000000000c040600000000000000000c05090c060a0604490b05060100000000000000160c050a050a0323041e0d040a0211194402050f0b02010b040c080d010c070a0711180c09400200000000000000000c0a0600000000000000000c0b090c0c0a0c04430b0b060100000000000000160c0b0a0b0a0923043c0d0a0a0711194402052d0b07010b0a0c0d0b080b0d02080c0c05330b0701053e080c0605150b020105201000000026300b001411170c010d011119310021042e0d010c020a0211180c03400200000000000000000c040600000000000000000c05090c060a0604280b05060100000000000000160c050a050a032304230d040a021119440205140b02010b04520002080c06051a0b0201052506040000000000000027000000",
    "abi": {
      "address": "0x1",
      "name": "solana_derivable_account",
      "friends": [],
      "exposed_functions": [
        {
          "name": "authenticate",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "signer",
            "0x1::auth_data::AbstractionAuthData"
          ],
          "return": [
            "signer"
          ]
        }
      ],
      "structs": [
        {
          "name": "SIWSAbstractSignature",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": []
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b01000202020403061e052416073a7e08b8012006d8012210fa011f0a99020a0ca302510df4020600000001070000050001000100060201000100070405000100080406000100090407000103050a0203010800000102010608000105010a0201031876616c696461746f725f636f6e73656e7375735f696e666f1656616c696461746f72436f6e73656e737573496e666f046164647208706b5f62797465730c766f74696e675f706f776572036e65770764656661756c74086765745f616464720c6765745f706b5f6279746573106765745f766f74696e675f706f77657200000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000014636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e310002030205030a0204030001000002050b000b010b021200020101000002050700400300000000000000000600000000000000001200020201000002040b00100014020301000002040b00100114020401000002040b001002140200000001000200",
    "abi": {
      "address": "0x1",
      "name": "validator_consensus_info",
      "friends": [],
      "exposed_functions": [
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "vector<u8>",
            "u64"
          ],
          "return": [
            "0x1::validator_consensus_info::ValidatorConsensusInfo"
          ]
        },
        {
          "name": "default",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::validator_consensus_info::ValidatorConsensusInfo"
          ]
        },
        {
          "name": "get_addr",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::validator_consensus_info::ValidatorConsensusInfo"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_pk_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::validator_consensus_info::ValidatorConsensusInfo"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "get_voting_power",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::validator_consensus_info::ValidatorConsensusInfo"
          ],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": [
        {
          "name": "ValidatorConsensusInfo",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "addr",
              "type": "address"
            },
            {
              "name": "pk_bytes",
              "type": "vector<u8>"
            },
            {
              "name": "voting_power",
              "type": "u64"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0a01000a020a10031a72058c019d0107a9029c0408c5062010e506d6050abb0c060cc10cc9030d8a1002000000080009000f00140001070001070200010c070004130200000300010001000402030001000504020001000605060001020a00060001010b090a0001010d0b020001000e0c06000103100101000103110101000100120e060001041510090001011609080001011700080001011800080001001912060001021a00060001001b13060001001c14060001000103010a020108000106080006060a0801060801060801060800030a02010101020108010106080101080201060802060a0a020608010608010a02030a0206060a08010a0a020303060801080204060a0803060800030a0201080301060803070a080103030608030a08010801080106060801060801060801060800030a02060a020608010608010a02030a0204060803060800030a0202080108011972697374726574746f3235355f62756c6c657470726f6f66730a52616e676550726f6f66056279746573126765745f6d61785f72616e67655f626974731672616e67655f70726f6f665f66726f6d5f62797465731472616e67655f70726f6f665f746f5f6279746573187665726966795f62617463685f72616e67655f70726f6f660e52697374726574746f506f696e740c72697374726574746f3235350866656174757265731a62756c6c657470726f6f66735f62617463685f656e61626c65640e706f696e745f636f6d707265737313436f6d7072657373656452697374726574746f0e706f696e745f746f5f6279746573217665726966795f62617463685f72616e67655f70726f6f665f696e7465726e616c056572726f7210696e76616c69645f617267756d656e740d696e76616c69645f7374617465217665726966795f62617463685f72616e67655f70726f6f665f706564657273656e0a436f6d6d69746d656e741572697374726574746f3235355f706564657273656e13636f6d6d69746d656e745f61735f706f696e740b706f696e745f636c6f6e650962617365706f696e7412686173685f746f5f706f696e745f62617365127665726966795f72616e67655f70726f6f661462756c6c657470726f6f66735f656e61626c65641b7665726966795f72616e67655f70726f6f665f696e7465726e616c1b7665726966795f72616e67655f70726f6f665f706564657273656e000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f7631a20507010000000000000019455f444553455249414c495a455f52414e47455f50524f4f463154686572652077617320616e206572726f7220646573657269616c697a696e67207468652072616e67652070726f6f662e020000000000000015455f56414c55455f4f5554534944455f52414e47453554686520636f6d6d69747465642076616c756520676976656e20746f207468652070726f76657220697320746f6f206c617267652e030000000000000015455f52414e47455f4e4f545f535550504f52544544675468652072616e67652070726f6f662073797374656d206f6e6c7920737570706f7274732070726f76696e672072616e676573206f66207479706520245b302c20325e622924207768657265202462205c696e205c7b382c2031362c2033322c2036345c7d242e04000000000000001a455f42415443485f53495a455f4e4f545f535550504f52544544475468652072616e67652070726f6f662073797374656d206f6e6c7920737570706f7274732062617463682073697a6573206f6620312c20322c20342c20382c20616e642031362e050000000000000019455f564543544f525f4c454e475448535f4d49534d415443483f54686520766563746f72206c656e67746873206f662076616c75657320616e6420626c696e64696e6720666163746f727320646f206e6f74206d617463682e06000000000000000e455f4453545f544f4f5f4c4f4e473654686520646f6d61696e2073657061726174696f6e2074616720657863656564656420746865203235362d62797465206c696d69742e07000000000000001a455f4e41544956455f46554e5f4e4f545f415641494c41424c4532546865206e61746976652066756e6374696f6e732068617665206e6f74206265656e20726f6c6c6564206f7574207965742e0000000201020a02000100000002064000000000000000020101000000030b001200020201000000040b0010001402030100000d461104043b0e0541070600010000000000002504300b000c06400200000000000000000c070600000000000000000c080a0641080c090a080a092304240a060a0842080c0a0d070b0a11050c0b0e0b110644020b08060100000000000000160c0805100b06010b070b010b020b031000140b040b051107020b00010b01010b02010b03010606000000000000001108270b00010b01010b02010b0301060700000000000000110927070002000a0100001129400800000000000000000c040600000000000000000c050a00410f0c060a050a062304190a000a05420f0c070d040b07110b110c44080b05060100000000000000160c0505070b00010b040c080e08110d0c090e09110e0c0a0e0a0b010b020b031103020f0100000a2b111004200e0541070600010000000000002504150b0011050c060e0611060b010b020b031000140b040b051111020b00010b01010b02010b03010606000000000000001108270b00010b01010b02010b03010607000000000000001109271100020012010000150d0b00110b110d0c040e04110e0c050e050b010b020b03110f02000000",
    "abi": {
      "address": "0x1",
      "name": "ristretto255_bulletproofs",
      "friends": [],
      "exposed_functions": [
        {
          "name": "get_max_range_bits",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "range_proof_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::ristretto255_bulletproofs::RangeProof"
          ]
        },
        {
          "name": "range_proof_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_bulletproofs::RangeProof"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "verify_batch_range_proof",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&vector<0x1::ristretto255::RistrettoPoint>",
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255_bulletproofs::RangeProof",
            "u64",
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "verify_batch_range_proof_pedersen",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&vector<0x1::ristretto255_pedersen::Commitment>",
            "&0x1::ristretto255_bulletproofs::RangeProof",
            "u64",
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "verify_range_proof",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255_bulletproofs::RangeProof",
            "u64",
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "verify_range_proof_pedersen",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_pedersen::Commitment",
            "&0x1::ristretto255_bulletproofs::RangeProof",
            "u64",
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "RangeProof",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0e01001a021a260340b40104f40112058602a90207af04d40608830b2006a30bb60210d90dc4020a9d101f0cbc10ec0a0da81b0411ac1b1413c01b0400000008000e000f00120016001c002200250027002b002d0033000102000004020001070700020d0300041107010000031303000b2f02000c3507000c370700000c0001000103100203000104140506010001041507080100010517090a000100180b02000102190d0e0001001a0e0f0001021b0d0e0001061d1011010001011e120e0001021f0d0e000100200e1300010021140a000107230a0a00010024150a00010826171801010109280a0a000108291a02010001052a020a00010a2c021600010b2e0a1d00010b301e1b00010b311e16000101320a1100010c340a2100010c3622230001043805100100010c39250a000102040304090a101612160916091b02241b24020c0803010c00010b0401080501080501060b040109000101010b0401090001090001060805010a02020803060a02030b0401080508050a020106080301060a02010800010609000108020106080201080106060a02060a02060a02060a02060a02060a0202060a02060a02010203060a09000303010a09000e08000802060a020801060801060802060a02060a020a020608010a020a020a020a0202070a09000a09000103090a02070a020a020208020308020a02070a02010806010708060d0806070806030a0203010708060a02030a0203010a0217080607080602030a0203010708060a02030a0203010708060a0208010a020a02030a0203010a02010807030a0202060807010b0401080801080801060808080a02020108070b040108080a020a02070a021a657468657265756d5f646572697661626c655f6163636f756e74155349574541627374726163745075626c69634b657910657468657265756d5f6164647265737306646f6d61696e155349574541627374726163745369676e6174757265094d6573736167655631096973737565645f617406537472696e6706737472696e67097369676e6174757265094d657373616765563206736368656d650c61757468656e746963617465134162737472616374696f6e417574684461746109617574685f64617461137472616e73616374696f6e5f636f6e7465787416656e7472795f66756e6374696f6e5f7061796c6f6164064f7074696f6e066f7074696f6e14456e74727946756e6374696f6e5061796c6f61640769735f736f6d650c64657374726f795f736f6d6521636f6d6d6f6e5f6163636f756e745f6162737472616374696f6e735f7574696c7313656e7472795f66756e6374696f6e5f6e616d651661757468656e7469636174655f617574685f646174611d646572697661626c655f61627374726163745f7075626c69635f6b65791f646573657269616c697a655f61627374726163745f7075626c69635f6b6579066469676573740c737472696e675f7574696c7309746f5f737472696e670562797465731c646572697661626c655f61627374726163745f7369676e61747572651e646573657269616c697a655f61627374726163745f7369676e617475726511636f6e7374727563745f6d6573736167650a6170746f735f68617368096b656363616b323536127265636f7665725f7075626c69635f6b657906766563746f7205736c69636506626173653136156261736531365f757466385f746f5f7665635f753806617070656e640c6e6574776f726b5f6e616d6508636861696e5f6964036765740a6263735f73747265616d036e65770942435353747265616d13646573657269616c697a655f756c65623132380e646573657269616c697a655f7538047574663809736563703235366b311a65636473615f7369676e61747572655f66726f6d5f62797465730e45434453415369676e61747572650d65636473615f7265636f7665721145434453415261775075626c69634b657906626f72726f771d65636473615f7261775f7075626c69635f6b65795f746f5f627974657300000000000000000000000000000000000000000000000000000000000000010a0233322077616e747320796f7520746f207369676e20696e207769746820796f757220457468657265756d206163636f756e743a0a0a023d3c0a0a506c6561736520636f6e6669726d20796f75206578706c696369746c7920696e69746961746564207468697320726571756573742066726f6d200a0202012e0a022b2a20596f752061726520617070726f76696e6720746f2065786563757465207472616e73616374696f6e200a021514206f6e204170746f7320626c6f636b636861696e0a02030220280a020201290a0208070a0a5552493a200a0204033a2f2f0a020c0b0a56657273696f6e3a20310a020c0b0a436861696e2049443a200a0209080a4e6f6e63653a200a020d0c0a4973737565642041743a200a021b1a19457468657265756d205369676e6564204d6573736167653a0a14636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f763190020501000000000000001245494e56414c49445f5349474e41545552451b5369676e6174757265206661696c656420746f207665726966792e02000000000000001f454d495353494e475f454e5452595f46554e4354494f4e5f5041594c4f414422456e7472792066756e6374696f6e207061796c6f6164206973206d697373696e672e03000000000000001745494e56414c49445f5349474e41545552455f5459504517496e76616c6964207369676e617475726520747970652e04000000000000000e45414444525f4d49534d415443481141646472657373206d69736d617463682e05000000000000000d45554e45585045435445445f5613556e657870656374656420762076616c75652e0000000202020a02030a020103020502060802090a020a030b0802060802090a02000100000c1211010c020e02380004100b0238010c030e0311040c040b010e0411050b0002060200000000000000270500000019570e00110611070c020e00110838020c030e03110a0c040e00110b110c0c050e050c060a06560003530b064e000c070b07110a0c080e054e01110a0c090e0210000e0210010b010b040b080b09110d110e0c0a0e050c0b0a0b5600034f0b0b4e020c080e0a0c090b080b09110f0c0c0e0c0601000000000000000e0c41163803110e0c0d0e0d060c0000000000000006200000000000000038030e0210000602000000000000000e02100041163803111121044d02060400000000000000270b0b4e030c0805310b064e040c0705170d0000001c79401600000000000000000c060d060c070a070a011438040a07070038040a070b001438040a07070138040a070a011438040a07070238040a07070338040a070b021438040a070704380411130c080a07070538040a070b0838040a07070638040a07070238040a07070738040a070b051438040a07070838040a070b011438040a07070938040a07070a38040a0711140c090e0938050c0a0e0a110a1438040a07070b38040a070b031438040a07070c38040a070b041438040a072e41160c0b0e0b38060c0c0e0c110a0c00401600000000000000000c0d0d0d0c0e0a0e070d38040a0e0b001438040a0e0b071438040b0e1402070000001f500b001411150c010d010c020a0211160c03401600000000000000000c040600000000000000000c05090c060a06044a0b05060100000000000000160c050a050a0323041e0d040a0211174416050f0b02010b040c080d010c070a0711160c09401600000000000000000c0a0600000000000000000c0b090c0c0a0c04440b0b060100000000000000160c0b0a0b0a0923043c0d0a0a0711174416052d0b07010b0a0c0d0b080b0d120002080c0c05330b0701053e080c0605150b020105200c00000020d4010b001411150c010d0111170c030a03310021045a0d010c020a0211160c04401600000000000000000c050600000000000000000c06090c070a0704540b06060100000000000000160c060a060a042304250d050a021117441605160b02010b050c090d010c080a0811160c0a401600000000000000000c0b0600000000000000000c0c090c0d0a0d044e0b0c060100000000000000160c0c0a0c0a0a2304430d0b0a081117441605340b08010b0b0c0f0b0911180b0f52010c100b1002080c0d053a0b08010545080c07051c0b020105270b0331012104d2010d010c020a0211160c04401600000000000000000c110600000000000000000c06090c070a0704cc010b06060100000000000000160c060a060a042304780d110a021117441605690b02010b110c090d010c080a0811160c0a401600000000000000000c120600000000000000000c0c090c0d0a0d04c6010b0c060100000000000000160c0c0a0c0a0a230496010d120a08111744160587010b08010b120c0f0d010c0e0a0e11160c13401600000000000000000c140600000000000000000c15090c160a1604c0010b15060100000000000000160c150a150a132304b4010d140a0e1117441605a5010b0e010b140c170b0911180b0f11180b1752000c10054c080c1605ab010b0e0105b601080c0d058d010b0801059801080c07056f0b0201057a060300000000000000270f000000263c0a0006000000000000000006400000000000000038030c020b000640000000000000004216140c030a03311b210437080c040b0404330b0211190c050b01140b03311b170e05111a0c060e06380704310e063808111c0c07401600000000000000000c080d080c090a09310444160a090b0738040b091402060100000000000000270b0101060500000000000000270a03311c210c0405100000000101000100010001010101010001020101010101010101010000",
    "abi": {
      "address": "0x1",
      "name": "ethereum_derivable_account",
      "friends": [],
      "exposed_functions": [
        {
          "name": "authenticate",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "signer",
            "0x1::auth_data::AbstractionAuthData"
          ],
          "return": [
            "signer"
          ]
        }
      ],
      "structs": [
        {
          "name": "SIWEAbstractPublicKey",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "ethereum_address",
              "type": "vector<u8>"
            },
            {
              "name": "domain",
              "type": "vector<u8>"
            }
          ]
        },
        {
          "name": "SIWEAbstractSignature",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": []
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b01000e020e240332f70104a9022a05d302ad02078005870708870c2010a70cbb030ae20f060ce80fce040db61402000000040007000e00100012001a000108000103060002060701000101090000030d07010000040f070001170b00021f02000005000101080100080304010801000a0501010801010b0601010801010c070801080103110a0b0100010513010b000103140a0c01000104150d0100010116070e0108010218101101080100191201010801061b13130001061c13130001011d14010001001e16010001011e160100010020170100010120170100010221181900010122181a000101231b01010801012403010108010125070801080100261c0401080101271d0400010028071301080101290708010801002a1f13010801012b0713010801002c0721010801012d0708010801002e1f21010801012f07210108010030230b0108010131230b0108010032250101080101020202030204020509070909020a0f0b020a0215021602170218021b021c021d021f0220022102230204060c0b020109000b02010900030001090003060c0b0201090003010803020b020109000803020b0201090001010b02010900010b0401080501080501060b0401090001010106090001060805010b0201080601080601060b020109000105040b020109000803060801060805010302050803070b040108050608050b0201090008030b0201080605060801020608070b04010805040608070b040108050b040108050b0401080501060807010c01080103060c0b0201090001040b0201090003060801060805020503080b040108050608050b02010900030b02010806050608010803020b02010900060805030b0401080506080503010b040104030b040108050608050b040104020b0201090003030b040108050608050105060c0b020109000b020109000303020308031b646973706174636861626c655f66756e6769626c655f6173736574105472616e7366657252656653746f72650c7472616e736665725f7265660b5472616e736665725265660e66756e6769626c655f6173736574087472616e73666572064f626a656374066f626a6563740877697468647261770d46756e6769626c654173736574076465706f736974146465706f7369745f73616e6974795f636865636b196465706f7369745f64697370617463685f66756e6374696f6e064f7074696f6e066f7074696f6e0c46756e6374696f6e496e666f0d66756e6374696f6e5f696e666f0769735f736f6d6508666561747572657323646973706174636861626c655f66756e6769626c655f61737365745f656e61626c656406626f72726f77196c6f61645f6d6f64756c655f66726f6d5f66756e6374696f6e0e73746f72655f6d65746164617461084d657461646174610e6f626a6563745f6164647265737314646973706174636861626c655f6465706f736974056572726f72096e6f745f666f756e640761626f7274656411756e636865636b65645f6465706f7369742872656769737465725f6465726976655f737570706c795f64697370617463685f66756e6374696f6e0e436f6e7374727563746f725265661b72656769737465725f64697370617463685f66756e6374696f6e730f67656e65726174655f7369676e65721567656e65726174655f7472616e736665725f7265661577697468647261775f73616e6974795f636865636b1977697468647261775f7065726d697373696f6e5f636865636b1a77697468647261775f64697370617463685f66756e6374696f6e15646973706174636861626c655f776974686472617712756e636865636b65645f77697468647261770f646572697665645f62616c616e636521646572697665645f62616c616e63655f64697370617463685f66756e6374696f6e1c646973706174636861626c655f646572697665645f62616c616e63650762616c616e63650e646572697665645f737570706c7920646572697665645f737570706c795f64697370617463685f66756e6374696f6e1b646973706174636861626c655f646572697665645f737570706c7906737570706c791b69735f646572697665645f62616c616e63655f61745f6c656173741369735f62616c616e63655f61745f6c656173741f7472616e736665725f6173736572745f6d696e696d756d5f6465706f736974000000000000000000000000000000000000000000000000000000000000000114636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31126170746f733a3a6d657461646174615f76318703040100000000000000104553544f52455f4e4f545f464f554e443a5472616e7366657252656653746f726520646f65736e2774206578697374206f6e207468652066756e6769626c6520617373657420747970652e02000000000000001045414d4f554e545f4d49534d415443482e526563697069656e74206973206e6f742067657474696e67207468652067756172616e746565642076616c75653b03000000000000000e454e4f545f4143544956415445442c46656174757265206973206e6f742061637469766174656420796574206f6e20746865206e6574776f726b2e04000000000000000b454e4f545f4c4f414445441e446973706174636820746172676574206973206e6f74206c6f616465642e01105472616e7366657252656653746f7265010301183078313a3a6f626a6563743a3a4f626a65637447726f7570030e646572697665645f737570706c790101000f646572697665645f62616c616e63650101001b69735f646572697665645f62616c616e63655f61745f6c65617374010100000201020801000104010004090b000b010b0338000c040b020b04380102020100010015340a000938020a0038030c020e023804042f1106042c0e0238050c030a0311080a000c040b010c050b0038060c060e0638070c070a07290004270b072b0010000c080b040b050b080b033808020b0301060100000000000000110c27060300000000000000110d270e0038090b01110e05260f01000001040b000b0111100211010000190e0a000b010b020b0311120a0011130c040e040b00111412002d000201010001001e3c0a000a0109380a0b000a010a02380b0a01380c0c030e0338040436110604330e0338050c040a0411080a010c050b020c060b0138060c070e0738070c080a082900042e0b082b0010000c090b050b060b090b04380d0c0a0b0a020b0401060100000000000000110c27060300000000000000110d270e0138090b0211190c0a052c1a010000201a0a00380e0c010e0138040416110604130e0138050c020a0211080b000b02380f0c030b0302060300000000000000110d270b0038100c0305111e010000221a0a0038110c010e0138040416110604130e0138050c020a0211080b000b0238120c030b0302060300000000000000110d270b0038130c0305110b0002001c000200200002001800020022010000241d0a00380e0c020e0238040418110604150e0238050c030a0311080b000b03380f0b01260c040b0402060300000000000000110d270b000b0138140c040513240104010026160a0238100c050b000b010b0338000c060a020b0638010b0238100b05170b0426041302060200000000000000110d27000000",
    "abi": {
      "address": "0x1",
      "name": "dispatchable_fungible_asset",
      "friends": [],
      "exposed_functions": [
        {
          "name": "transfer",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "deposit",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "register_derive_supply_dispatch_function",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef",
            "0x1::option::Option<0x1::function_info::FunctionInfo>"
          ],
          "return": []
        },
        {
          "name": "register_dispatch_functions",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef",
            "0x1::option::Option<0x1::function_info::FunctionInfo>",
            "0x1::option::Option<0x1::function_info::FunctionInfo>",
            "0x1::option::Option<0x1::function_info::FunctionInfo>"
          ],
          "return": []
        },
        {
          "name": "withdraw",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "derived_balance",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "derived_supply",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::option::Option<u128>"
          ]
        },
        {
          "name": "is_derived_balance_at_least",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "transfer_assert_minimum_deposit",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "0x1::object::Object<T0>",
            "u64",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "TransferRefStore",
          "is_native": false,
          "is_event": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "transfer_ref",
              "type": "0x1::fungible_asset::TransferRef"
            }
          ]
        }
      ]
    }
  },
  {
    "bytecode": "0xa11ceb0b0700000a0b01000c020c0803143f045308055b4907a401960208ba032006da03391093041f0cb204c9010ffb05040000000300050008000a0010010203000307070000010001000101040004000102060506010001030907080001040b090a010101040c0b03010001010d00060001010e00060001000f03010001051103020001020404020502020201060800010a020102000105010609000108010106080101060a0203060a09000303010a090002070a09000a0900070a02070a02050801060a020801080105020a020a02070a02080121636f6d6d6f6e5f6163636f756e745f6162737472616374696f6e735f7574696c7313656e7472795f66756e6374696f6e5f6e616d6514456e74727946756e6374696f6e5061796c6f6164137472616e73616374696f6e5f636f6e746578740f6163636f756e745f616464726573730c737472696e675f7574696c7309746f5f737472696e6706537472696e6706737472696e6705627974657306766563746f7205736c69636506617070656e640b6d6f64756c655f6e616d650d66756e6374696f6e5f6e616d650c6e6574776f726b5f6e616d6508636861696e5f6964036765741a657468657265756d5f646572697661626c655f6163636f756e7418736f6c616e615f646572697661626c655f6163636f756e7400000000000000000000000000000000000000000000000000000000000000010a0203023a3a0a0208076d61696e6e65740a020807746573746e65740a0206056c6f63616c0a021110637573746f6d206e6574776f726b3a2014636f6d70696c6174696f6e5f6d65746164617461090003322e3003322e31000300000c2d400200000000000000000c010d010c020a0011010c030e0338000c040e0411030c050a020a050601000000000000000b054102380138020a02070038020a020a0011060c060e0611031438020a02070038020a020b0011070c070e0711031438020b021402080300000d2b11090c000a00310121040a07010c010b01020a00310221041107020c0105080a00310421041807030c010508400200000000000000000c020d020c030a03070438020a030e0038030c040e0411031438020b03140c0105080012001300",
    "abi": {
      "address": "0x1",
      "name": "common_account_abstractions_utils",
      "friends": [
        "0x1::ethereum_derivable_account",
        "0x1::solana_derivable_account"
      ],
      "exposed_functions": [
        {
          "name": "entry_function_name",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::transaction_context::EntryFunctionPayload"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "network_name",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "vector<u8>"
          ]
        }
      ],
      "structs": []
    }
  }
]