{
  "arcs": [],
  "name": "dualSTAKE Contract",
  "structs": {
    "ContractListing": [
      {
        "name": "rate",
        "type": "uint64"
      },
      {
        "name": "algo_balance",
        "type": "uint64"
      },
      {
        "name": "asa_balance",
        "type": "uint64"
      },
      {
        "name": "staked",
        "type": "uint64"
      },
      {
        "name": "lst_id",
        "type": "uint64"
      },
      {
        "name": "lst_name",
        "type": "string"
      },
      {
        "name": "asa_id",
        "type": "uint64"
      },
      {
        "name": "asa_name",
        "type": "string"
      },
      {
        "name": "asa_unit_name",
        "type": "string"
      },
      {
        "name": "asa_decimals",
        "type": "uint16"
      },
      {
        "name": "need_swap",
        "type": "bool"
      },
      {
        "name": "incentive_eligible",
        "type": "bool"
      },
      {
        "name": "is_online",
        "type": "bool"
      },
      {
        "name": "upgrading",
        "type": "bool"
      },
      {
        "name": "user_protesting_stake",
        "type": "uint64"
      }
    ]
  },
  "methods": [
    {
      "name": "queue_update_fees",
      "desc": "Fee admin method. Changes enforced to +/- 2.5% delta max\nIf increasing fees, schedules an update of the node+platform fees in bps. Decreasing fees are applied immediately. Return timestamp of applicability as uint64",
      "args": [
        {
          "name": "new_platform_fee_bps",
          "type": "uint64"
        },
        {
          "name": "new_noderunner_fee_bps",
          "type": "uint64"
        }
      ],
      "returns": {
        "type": "uint64"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "reset_update_fees",
      "desc": "Fee admin method. Cancel a scheudled params update",
      "args": [],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "configure",
      "desc": "Admin or fee admin method. Bootstrap; configure global storage except LST ID.",
      "args": [
        {
          "name": "asa_id",
          "type": "uint64"
        },
        {
          "name": "lp_type",
          "type": "byte[]"
        },
        {
          "name": "lp_id",
          "type": "byte[]"
        },
        {
          "name": "platform_fee_bps",
          "type": "uint64"
        },
        {
          "name": "noderunner_fee_bps",
          "type": "uint64"
        },
        {
          "name": "admin_addr",
          "type": "address"
        },
        {
          "name": "fee_admin_addr",
          "type": "address"
        },
        {
          "name": "noderunner_addr",
          "type": "address"
        },
        {
          "name": "delay_optin",
          "type": "bool"
        },
        {
          "name": "max_balance",
          "type": "uint64"
        },
        {
          "name": "upgrade_period",
          "type": "uint64"
        },
        {
          "name": "fee_update_period",
          "type": "uint64"
        },
        {
          "name": "fee_update_max_delta",
          "type": "uint64"
        },
        {
          "name": "rate_precision",
          "type": "uint64"
        },
        {
          "name": "tm2_app_id",
          "type": "uint64"
        },
        {
          "name": "arc59_app_id",
          "type": "uint64"
        }
      ],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "configure2",
      "args": [
        {
          "name": "lst_asa_name",
          "type": "byte[]"
        },
        {
          "name": "lst_unit_name",
          "type": "byte[]"
        },
        {
          "name": "lst_url",
          "type": "byte[]"
        }
      ],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "change_admin_1",
      "desc": "admin method. first of 2-step admin change process.",
      "args": [
        {
          "name": "new_admin",
          "type": "address"
        }
      ],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "change_admin_2",
      "desc": "public method. second of 2-step admin change process. called by new admin in atomic group after change_admin_1",
      "args": [],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "change_noderunner",
      "desc": "fee admin/node runner method. change node runner address.\nnode runner fees must be withdrawn before this, otherwise fee admin could steal node runner fees.",
      "args": [
        {
          "name": "new_noderunner",
          "type": "address"
        }
      ],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "change_feeaddr",
      "desc": "admin/fee admin method. change fee admin address",
      "args": [
        {
          "name": "new_feeaddr",
          "type": "address"
        }
      ],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "update_max_balance",
      "desc": "Fee admin method. Updates max algo stake",
      "args": [
        {
          "name": "new_max_balance",
          "type": "uint64"
        }
      ],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "withdraw_ds_surplus",
      "desc": "Fee admin method. Withdraws any dualSTAKE surplus, which would result if tokens are accidentally sent to the escrow account.\nExpected dualSTAKE *circulation* at any time should be exactly (staked amount) - (total protesting amount) Expected dualSTAKE balance is (Total Supply, 10B) - (circulating)",
      "args": [],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "verify_nfdomains",
      "args": [
        {
          "name": "registry_app_id",
          "type": "uint64"
        },
        {
          "name": "nfd_app_id",
          "type": "uint64"
        },
        {
          "name": "name",
          "type": "byte[]"
        }
      ],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "withdraw_node_runner_fees",
      "desc": "fee admin/node runner method. withdraw node runner fees. hard coded to send to node runner address.\nthe fee admin may call this to pay out the current node runner before changing node runner address",
      "args": [
        {
          "name": "amount",
          "type": "uint64"
        }
      ],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "withdraw_platform_fees",
      "desc": "fee admin method. withdraw platform fees",
      "args": [
        {
          "name": "amount",
          "type": "uint64"
        }
      ],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "keyreg_online",
      "desc": "Fee admin or node runner only. Send keyreg online.\nRequired payment if fee is not zero. Fee must be 2A if escrow is not account eligible, otherwise zero (paid by outer) Fee amount is validated against Global eligibility fee parameter",
      "args": [
        {
          "name": "selection_key",
          "type": "byte[]"
        },
        {
          "name": "voting_key",
          "type": "byte[]"
        },
        {
          "name": "sp_key",
          "type": "byte[]"
        },
        {
          "name": "first_round",
          "type": "uint64"
        },
        {
          "name": "last_round",
          "type": "uint64"
        },
        {
          "name": "key_dilution",
          "type": "uint64"
        },
        {
          "name": "fee",
          "type": "uint64"
        }
      ],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "keyreg_offline",
      "desc": "Fee admin or noderunner only. Send keyreg offline for an escrow account",
      "args": [],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "protest_stake",
      "desc": "public method. locks dualSTAKE LST stake on the contract as \"upgrade protest\".\nThis blocks upgrading unless it is dissolved (redeemed & returned to user) The upgrade can also be cancelled, whereafter the dualSTAKE tokens can be returned to the user unchanged",
      "args": [],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "unprotest_stake",
      "desc": "public method. revoke protesting stake for self. Returns dualSTAKE tokens to user who protested with them.",
      "args": [],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "admin_unprotest_stake",
      "desc": "fee admin method. callable when there is no upgrade scheduled. returns the protesting dualSTAKE tokens to user $user. If the user has opted out of the dualSTAKE asset, this fails and the user can undo the protest stake themselves.",
      "args": [
        {
          "name": "user",
          "type": "address"
        }
      ],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "dissolve_protesting_stake",
      "desc": "fee admin method. called before upgrading to dissolve protesting stake for user $user. Redeems & returns ALGO and ASA to user.\nIf the user has opted out of the ASA: 1) ARC59 asset inbox is used to send the ASA and 2) the transaction and MBR fees for asset inbox are subtractd from the ALGO amount.",
      "args": [
        {
          "name": "user",
          "type": "address"
        }
      ],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "queue_upgrade",
      "desc": "admin method only.\nstage a contract upgrade. time applicability 1 week from current timestamp. hashes are variable length, 32b each, corresponding to SHA512_256 of approval program pages",
      "args": [
        {
          "name": "hashes",
          "type": "byte[]"
        }
      ],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "reset_upgrade",
      "desc": "admin or fee admin only.\nclear a staged contract upgrade",
      "args": [],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "mint",
      "desc": "Public method. Mint dualSTAKE lst\nNEXT transaction in group must be payment in ALGO if rate != 0, 2 txns after must be payment in ASA will swap and apply fee updates if needed sends dualSTAKE tokens to caller",
      "args": [],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "redeem",
      "desc": "Public method. Redeem dualSTAKE tokens back to ALGO+ASA.\ndualSTAKE:ALGO is always 1:1 dualSTAKE:ASA is (ASA balance):(global staked) will swap and apply fee updates if needed",
      "args": [],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "get_rate",
      "desc": "Public method. Returns the current rate as ABI uint64:\n(rate_precision global var, default 1e10) * (ASA Balance) / (global staked) Returns zero if staked == 0 will swap and apply fee updates if needed",
      "args": [],
      "returns": {
        "type": "uint64"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "get_contract_listing",
      "desc": "Public method. Returns ABI struct ContractListing:\nrate (see get_rate)     escrow algo balance     escrow asa balance     staked balance     dualstake token ID     dualstake asset name     asa asset ID     asa asset name     asa unit name     asa decimals     need_swap     incentive_eligible     is_online     user_protesting_stake will swap and apply fee updates if needed",
      "args": [
        {
          "name": "user",
          "type": "address"
        }
      ],
      "returns": {
        "type": "(uint64,uint64,uint64,uint64,uint64,string,uint64,string,string,uint16,bool,bool,bool,bool,uint64)",
        "struct": "ContractListing"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "get_rate_and_balances",
      "desc": "Public method. Returns ABI tuple[3]:\nrate (see get_rate)     escrow algo balance     escrow asa balance will swap and apply fee updates if needed",
      "args": [],
      "returns": {
        "type": "(uint64,uint64,uint64)"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "get_need_swap",
      "desc": "Public method. Returns whether the contract thinks it needs to swap",
      "args": [],
      "returns": {
        "type": "bool"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "swap_or_fail",
      "desc": "Public method. Perform swap or fail",
      "args": [],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    },
    {
      "name": "nullun",
      "desc": "Public empty method for opcode budget increase",
      "args": [],
      "returns": {
        "type": "void"
      },
      "events": [],
      "actions": {
        "create": [],
        "call": [
          "NoOp"
        ]
      }
    }
  ],
  "state": {
    "schema": {
      "global": {
        "ints": 32,
        "bytes": 32
      },
      "local": {
        "ints": 0,
        "bytes": 0
      }
    },
    "keys": {
      "global": {
        "version": {
          "key": "dg==",
          "keyType": "AVMString",
          "valueType": "AVMUint64"
        },
        "asa_id": {
          "key": "YXNhX2lk",
          "keyType": "AVMString",
          "valueType": "AVMUint64"
        },
        "lst_id": {
          "key": "bHN0X2lk",
          "keyType": "AVMString",
          "valueType": "AVMUint64"
        },
        "staked": {
          "key": "c3Rha2Vk",
          "keyType": "AVMString",
          "valueType": "AVMUint64"
        },
        "platform_fees": {
          "key": "cGxhdGZvcm1fZmVlcw==",
          "keyType": "AVMString",
          "valueType": "AVMUint64"
        },
        "noderunner_fees": {
          "key": "bm9kZXJ1bm5lcl9mZWVz",
          "keyType": "AVMString",
          "valueType": "AVMUint64"
        },
        "platform_fee_bps": {
          "key": "cGxhdGZvcm1fZmVlX2Jwcw==",
          "keyType": "AVMString",
          "valueType": "AVMUint64"
        },
        "noderunner_fee_bps": {
          "key": "bm9kZXJ1bm5lcl9mZWVfYnBz",
          "keyType": "AVMString",
          "valueType": "AVMUint64"
        },
        "admin_addr": {
          "key": "YWRtaW5fYWRkcg==",
          "keyType": "AVMString",
          "valueType": "AVMBytes"
        },
        "fee_admin_addr": {
          "key": "ZmVlX2FkbWluX2FkZHI=",
          "keyType": "AVMString",
          "valueType": "AVMBytes"
        },
        "noderunner_addr": {
          "key": "bm9kZXJ1bm5lcl9hZGRy",
          "keyType": "AVMString",
          "valueType": "AVMBytes"
        },
        "lp_type": {
          "key": "bHBfdHlwZQ==",
          "keyType": "AVMString",
          "valueType": "AVMBytes"
        },
        "lp_id": {
          "key": "bHBfaWQ=",
          "keyType": "AVMString",
          "valueType": "AVMBytes"
        },
        "delay_optin": {
          "key": "ZGVsYXlfb3B0aW4=",
          "keyType": "AVMString",
          "valueType": "AVMUint64"
        },
        "fee_update": {
          "key": "ZmVlX3VwZGF0ZQ==",
          "keyType": "AVMString",
          "valueType": "AVMBytes"
        },
        "contract_upgrade": {
          "key": "Y29udHJhY3RfdXBncmFkZQ==",
          "keyType": "AVMString",
          "valueType": "AVMBytes"
        },
        "protest_count": {
          "key": "cHJvdGVzdF9jbnQ=",
          "keyType": "AVMString",
          "valueType": "AVMUint64"
        },
        "protest_sum": {
          "key": "cHJvdGVzdF9zdW0=",
          "keyType": "AVMString",
          "valueType": "AVMUint64"
        },
        "upgrade_period": {
          "key": "dXBncmFkZV9wZXJpb2Q=",
          "keyType": "AVMString",
          "valueType": "AVMUint64"
        },
        "fee_update_period": {
          "key": "ZmVlX3VwZGF0ZV9wZXJpb2Q=",
          "keyType": "AVMString",
          "valueType": "AVMUint64"
        },
        "fee_update_max_delta": {
          "key": "ZmVlX3VwZGF0ZV9tYXhfZGVsdGE=",
          "keyType": "AVMString",
          "valueType": "AVMUint64"
        },
        "max_balance": {
          "key": "bWF4X2JhbGFuY2U=",
          "keyType": "AVMString",
          "valueType": "AVMUint64"
        },
        "rate_precision": {
          "key": "cmF0ZV9wcmVjaXNpb24=",
          "keyType": "AVMString",
          "valueType": "AVMUint64"
        },
        "tm2_app_id": {
          "key": "dG0yX2FwcF9pZA==",
          "keyType": "AVMString",
          "valueType": "AVMUint64"
        },
        "arc59_app_id": {
          "key": "YXJjNTlfYXBwX2lk",
          "keyType": "AVMString",
          "valueType": "AVMUint64"
        }
      },
      "local": {},
      "box": {}
    },
    "maps": {
      "global": {},
      "local": {},
      "box": {}
    }
  },
  "source": {
    "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCnR4biBOdW1BcHBBcmdzCmludCAwCj09CmJueiBtYWluX2w2MAp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCm1ldGhvZCAicXVldWVfdXBkYXRlX2ZlZXModWludDY0LHVpbnQ2NCl1aW50NjQiCj09CmJueiBtYWluX2w1OQp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCm1ldGhvZCAicmVzZXRfdXBkYXRlX2ZlZXMoKXZvaWQiCj09CmJueiBtYWluX2w1OAp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCm1ldGhvZCAiY29uZmlndXJlKHVpbnQ2NCxieXRlW10sYnl0ZVtdLHVpbnQ2NCx1aW50NjQsYWRkcmVzcyxhZGRyZXNzLGFkZHJlc3MsYm9vbCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKPT0KYm56IG1haW5fbDU3CnR4bmEgQXBwbGljYXRpb25BcmdzIDAKbWV0aG9kICJjb25maWd1cmUyKGJ5dGVbXSxieXRlW10sYnl0ZVtdKXZvaWQiCj09CmJueiBtYWluX2w1Ngp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCm1ldGhvZCAiY2hhbmdlX2FkbWluXzEoYWRkcmVzcyl2b2lkIgo9PQpibnogbWFpbl9sNTUKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAptZXRob2QgImNoYW5nZV9hZG1pbl8yKCl2b2lkIgo9PQpibnogbWFpbl9sNTQKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAptZXRob2QgImNoYW5nZV9ub2RlcnVubmVyKGFkZHJlc3Mpdm9pZCIKPT0KYm56IG1haW5fbDUzCnR4bmEgQXBwbGljYXRpb25BcmdzIDAKbWV0aG9kICJjaGFuZ2VfZmVlYWRkcihhZGRyZXNzKXZvaWQiCj09CmJueiBtYWluX2w1Mgp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCm1ldGhvZCAidXBkYXRlX21heF9iYWxhbmNlKHVpbnQ2NCl2b2lkIgo9PQpibnogbWFpbl9sNTEKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAptZXRob2QgIndpdGhkcmF3X2RzX3N1cnBsdXMoKXZvaWQiCj09CmJueiBtYWluX2w1MAp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCm1ldGhvZCAidmVyaWZ5X25mZG9tYWlucyh1aW50NjQsdWludDY0LGJ5dGVbXSl2b2lkIgo9PQpibnogbWFpbl9sNDkKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAptZXRob2QgIndpdGhkcmF3X25vZGVfcnVubmVyX2ZlZXModWludDY0KXZvaWQiCj09CmJueiBtYWluX2w0OAp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCm1ldGhvZCAid2l0aGRyYXdfcGxhdGZvcm1fZmVlcyh1aW50NjQpdm9pZCIKPT0KYm56IG1haW5fbDQ3CnR4bmEgQXBwbGljYXRpb25BcmdzIDAKbWV0aG9kICJrZXlyZWdfb25saW5lKGJ5dGVbXSxieXRlW10sYnl0ZVtdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkIgo9PQpibnogbWFpbl9sNDYKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAptZXRob2QgImtleXJlZ19vZmZsaW5lKCl2b2lkIgo9PQpibnogbWFpbl9sNDUKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAptZXRob2QgInByb3Rlc3Rfc3Rha2UoKXZvaWQiCj09CmJueiBtYWluX2w0NAp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCm1ldGhvZCAidW5wcm90ZXN0X3N0YWtlKCl2b2lkIgo9PQpibnogbWFpbl9sNDMKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAptZXRob2QgImFkbWluX3VucHJvdGVzdF9zdGFrZShhZGRyZXNzKXZvaWQiCj09CmJueiBtYWluX2w0Mgp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCm1ldGhvZCAiZGlzc29sdmVfcHJvdGVzdGluZ19zdGFrZShhZGRyZXNzKXZvaWQiCj09CmJueiBtYWluX2w0MQp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCm1ldGhvZCAicXVldWVfdXBncmFkZShieXRlW10pdm9pZCIKPT0KYm56IG1haW5fbDQwCnR4bmEgQXBwbGljYXRpb25BcmdzIDAKbWV0aG9kICJyZXNldF91cGdyYWRlKCl2b2lkIgo9PQpibnogbWFpbl9sMzkKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAptZXRob2QgIm1pbnQoKXZvaWQiCj09CmJueiBtYWluX2wzOAp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCm1ldGhvZCAicmVkZWVtKCl2b2lkIgo9PQpibnogbWFpbl9sMzcKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAptZXRob2QgImdldF9yYXRlKCl1aW50NjQiCj09CmJueiBtYWluX2wzNgp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCm1ldGhvZCAiZ2V0X2NvbnRyYWN0X2xpc3RpbmcoYWRkcmVzcykodWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCxzdHJpbmcsdWludDY0LHN0cmluZyxzdHJpbmcsdWludDE2LGJvb2wsYm9vbCxib29sLGJvb2wsdWludDY0KSIKPT0KYm56IG1haW5fbDM1CnR4bmEgQXBwbGljYXRpb25BcmdzIDAKbWV0aG9kICJnZXRfcmF0ZV9hbmRfYmFsYW5jZXMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCkiCj09CmJueiBtYWluX2wzNAp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCm1ldGhvZCAiZ2V0X25lZWRfc3dhcCgpYm9vbCIKPT0KYm56IG1haW5fbDMzCnR4bmEgQXBwbGljYXRpb25BcmdzIDAKbWV0aG9kICJzd2FwX29yX2ZhaWwoKXZvaWQiCj09CmJueiBtYWluX2wzMgp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCm1ldGhvZCAibnVsbHVuKCl2b2lkIgo9PQpibnogbWFpbl9sMzEKZXJyCm1haW5fbDMxOgp0eG4gT25Db21wbGV0aW9uCmludCBOb09wCj09CnR4biBBcHBsaWNhdGlvbklECmludCAwCiE9CiYmCmFzc2VydApjYWxsc3ViIG51bGx1bmNhc3Rlcl84MQppbnQgMQpyZXR1cm4KbWFpbl9sMzI6CnR4biBPbkNvbXBsZXRpb24KaW50IE5vT3AKPT0KdHhuIEFwcGxpY2F0aW9uSUQKaW50IDAKIT0KJiYKYXNzZXJ0CmNhbGxzdWIgc3dhcG9yZmFpbGNhc3Rlcl84MAppbnQgMQpyZXR1cm4KbWFpbl9sMzM6CnR4biBPbkNvbXBsZXRpb24KaW50IE5vT3AKPT0KdHhuIEFwcGxpY2F0aW9uSUQKaW50IDAKIT0KJiYKYXNzZXJ0CmNhbGxzdWIgZ2V0bmVlZHN3YXBjYXN0ZXJfNzkKaW50IDEKcmV0dXJuCm1haW5fbDM0Ogp0eG4gT25Db21wbGV0aW9uCmludCBOb09wCj09CnR4biBBcHBsaWNhdGlvbklECmludCAwCiE9CiYmCmFzc2VydApjYWxsc3ViIGdldHJhdGVhbmRiYWxhbmNlc2Nhc3Rlcl83OAppbnQgMQpyZXR1cm4KbWFpbl9sMzU6CnR4biBPbkNvbXBsZXRpb24KaW50IE5vT3AKPT0KdHhuIEFwcGxpY2F0aW9uSUQKaW50IDAKIT0KJiYKYXNzZXJ0CmNhbGxzdWIgZ2V0Y29udHJhY3RsaXN0aW5nY2FzdGVyXzc3CmludCAxCnJldHVybgptYWluX2wzNjoKdHhuIE9uQ29tcGxldGlvbgppbnQgTm9PcAo9PQp0eG4gQXBwbGljYXRpb25JRAppbnQgMAohPQomJgphc3NlcnQKY2FsbHN1YiBnZXRyYXRlY2FzdGVyXzc2CmludCAxCnJldHVybgptYWluX2wzNzoKdHhuIE9uQ29tcGxldGlvbgppbnQgTm9PcAo9PQp0eG4gQXBwbGljYXRpb25JRAppbnQgMAohPQomJgphc3NlcnQKY2FsbHN1YiByZWRlZW1jYXN0ZXJfNzUKaW50IDEKcmV0dXJuCm1haW5fbDM4Ogp0eG4gT25Db21wbGV0aW9uCmludCBOb09wCj09CnR4biBBcHBsaWNhdGlvbklECmludCAwCiE9CiYmCmFzc2VydApjYWxsc3ViIG1pbnRjYXN0ZXJfNzQKaW50IDEKcmV0dXJuCm1haW5fbDM5Ogp0eG4gT25Db21wbGV0aW9uCmludCBOb09wCj09CnR4biBBcHBsaWNhdGlvbklECmludCAwCiE9CiYmCmFzc2VydApjYWxsc3ViIHJlc2V0dXBncmFkZWNhc3Rlcl83MwppbnQgMQpyZXR1cm4KbWFpbl9sNDA6CnR4biBPbkNvbXBsZXRpb24KaW50IE5vT3AKPT0KdHhuIEFwcGxpY2F0aW9uSUQKaW50IDAKIT0KJiYKYXNzZXJ0CmNhbGxzdWIgcXVldWV1cGdyYWRlY2FzdGVyXzcyCmludCAxCnJldHVybgptYWluX2w0MToKdHhuIE9uQ29tcGxldGlvbgppbnQgTm9PcAo9PQp0eG4gQXBwbGljYXRpb25JRAppbnQgMAohPQomJgphc3NlcnQKY2FsbHN1YiBkaXNzb2x2ZXByb3Rlc3RpbmdzdGFrZWNhc3Rlcl83MQppbnQgMQpyZXR1cm4KbWFpbl9sNDI6CnR4biBPbkNvbXBsZXRpb24KaW50IE5vT3AKPT0KdHhuIEFwcGxpY2F0aW9uSUQKaW50IDAKIT0KJiYKYXNzZXJ0CmNhbGxzdWIgYWRtaW51bnByb3Rlc3RzdGFrZWNhc3Rlcl83MAppbnQgMQpyZXR1cm4KbWFpbl9sNDM6CnR4biBPbkNvbXBsZXRpb24KaW50IE5vT3AKPT0KdHhuIEFwcGxpY2F0aW9uSUQKaW50IDAKIT0KJiYKYXNzZXJ0CmNhbGxzdWIgdW5wcm90ZXN0c3Rha2VjYXN0ZXJfNjkKaW50IDEKcmV0dXJuCm1haW5fbDQ0Ogp0eG4gT25Db21wbGV0aW9uCmludCBOb09wCj09CnR4biBBcHBsaWNhdGlvbklECmludCAwCiE9CiYmCmFzc2VydApjYWxsc3ViIHByb3Rlc3RzdGFrZWNhc3Rlcl82OAppbnQgMQpyZXR1cm4KbWFpbl9sNDU6CnR4biBPbkNvbXBsZXRpb24KaW50IE5vT3AKPT0KdHhuIEFwcGxpY2F0aW9uSUQKaW50IDAKIT0KJiYKYXNzZXJ0CmNhbGxzdWIga2V5cmVnb2ZmbGluZWNhc3Rlcl82NwppbnQgMQpyZXR1cm4KbWFpbl9sNDY6CnR4biBPbkNvbXBsZXRpb24KaW50IE5vT3AKPT0KdHhuIEFwcGxpY2F0aW9uSUQKaW50IDAKIT0KJiYKYXNzZXJ0CmNhbGxzdWIga2V5cmVnb25saW5lY2FzdGVyXzY2CmludCAxCnJldHVybgptYWluX2w0NzoKdHhuIE9uQ29tcGxldGlvbgppbnQgTm9PcAo9PQp0eG4gQXBwbGljYXRpb25JRAppbnQgMAohPQomJgphc3NlcnQKY2FsbHN1YiB3aXRoZHJhd3BsYXRmb3JtZmVlc2Nhc3Rlcl82NQppbnQgMQpyZXR1cm4KbWFpbl9sNDg6CnR4biBPbkNvbXBsZXRpb24KaW50IE5vT3AKPT0KdHhuIEFwcGxpY2F0aW9uSUQKaW50IDAKIT0KJiYKYXNzZXJ0CmNhbGxzdWIgd2l0aGRyYXdub2RlcnVubmVyZmVlc2Nhc3Rlcl82NAppbnQgMQpyZXR1cm4KbWFpbl9sNDk6CnR4biBPbkNvbXBsZXRpb24KaW50IE5vT3AKPT0KdHhuIEFwcGxpY2F0aW9uSUQKaW50IDAKIT0KJiYKYXNzZXJ0CmNhbGxzdWIgdmVyaWZ5bmZkb21haW5zY2FzdGVyXzYzCmludCAxCnJldHVybgptYWluX2w1MDoKdHhuIE9uQ29tcGxldGlvbgppbnQgTm9PcAo9PQp0eG4gQXBwbGljYXRpb25JRAppbnQgMAohPQomJgphc3NlcnQKY2FsbHN1YiB3aXRoZHJhd2Rzc3VycGx1c2Nhc3Rlcl82MgppbnQgMQpyZXR1cm4KbWFpbl9sNTE6CnR4biBPbkNvbXBsZXRpb24KaW50IE5vT3AKPT0KdHhuIEFwcGxpY2F0aW9uSUQKaW50IDAKIT0KJiYKYXNzZXJ0CmNhbGxzdWIgdXBkYXRlbWF4YmFsYW5jZWNhc3Rlcl82MQppbnQgMQpyZXR1cm4KbWFpbl9sNTI6CnR4biBPbkNvbXBsZXRpb24KaW50IE5vT3AKPT0KdHhuIEFwcGxpY2F0aW9uSUQKaW50IDAKIT0KJiYKYXNzZXJ0CmNhbGxzdWIgY2hhbmdlZmVlYWRkcmNhc3Rlcl82MAppbnQgMQpyZXR1cm4KbWFpbl9sNTM6CnR4biBPbkNvbXBsZXRpb24KaW50IE5vT3AKPT0KdHhuIEFwcGxpY2F0aW9uSUQKaW50IDAKIT0KJiYKYXNzZXJ0CmNhbGxzdWIgY2hhbmdlbm9kZXJ1bm5lcmNhc3Rlcl81OQppbnQgMQpyZXR1cm4KbWFpbl9sNTQ6CnR4biBPbkNvbXBsZXRpb24KaW50IE5vT3AKPT0KdHhuIEFwcGxpY2F0aW9uSUQKaW50IDAKIT0KJiYKYXNzZXJ0CmNhbGxzdWIgY2hhbmdlYWRtaW4yY2FzdGVyXzU4CmludCAxCnJldHVybgptYWluX2w1NToKdHhuIE9uQ29tcGxldGlvbgppbnQgTm9PcAo9PQp0eG4gQXBwbGljYXRpb25JRAppbnQgMAohPQomJgphc3NlcnQKY2FsbHN1YiBjaGFuZ2VhZG1pbjFjYXN0ZXJfNTcKaW50IDEKcmV0dXJuCm1haW5fbDU2Ogp0eG4gT25Db21wbGV0aW9uCmludCBOb09wCj09CnR4biBBcHBsaWNhdGlvbklECmludCAwCiE9CiYmCmFzc2VydApjYWxsc3ViIGNvbmZpZ3VyZTJjYXN0ZXJfNTYKaW50IDEKcmV0dXJuCm1haW5fbDU3Ogp0eG4gT25Db21wbGV0aW9uCmludCBOb09wCj09CnR4biBBcHBsaWNhdGlvbklECmludCAwCiE9CiYmCmFzc2VydApjYWxsc3ViIGNvbmZpZ3VyZWNhc3Rlcl81NQppbnQgMQpyZXR1cm4KbWFpbl9sNTg6CnR4biBPbkNvbXBsZXRpb24KaW50IE5vT3AKPT0KdHhuIEFwcGxpY2F0aW9uSUQKaW50IDAKIT0KJiYKYXNzZXJ0CmNhbGxzdWIgcmVzZXR1cGRhdGVmZWVzY2FzdGVyXzU0CmludCAxCnJldHVybgptYWluX2w1OToKdHhuIE9uQ29tcGxldGlvbgppbnQgTm9PcAo9PQp0eG4gQXBwbGljYXRpb25JRAppbnQgMAohPQomJgphc3NlcnQKY2FsbHN1YiBxdWV1ZXVwZGF0ZWZlZXNjYXN0ZXJfNTMKaW50IDEKcmV0dXJuCm1haW5fbDYwOgp0eG4gT25Db21wbGV0aW9uCmludCBOb09wCj09CmJueiBtYWluX2w4OQp0eG4gT25Db21wbGV0aW9uCmludCBPcHRJbgo9PQpibnogbWFpbl9sODgKdHhuIE9uQ29tcGxldGlvbgppbnQgQ2xvc2VPdXQKPT0KYm56IG1haW5fbDg3CnR4biBPbkNvbXBsZXRpb24KaW50IFVwZGF0ZUFwcGxpY2F0aW9uCj09CmJueiBtYWluX2w3Mwp0eG4gT25Db21wbGV0aW9uCmludCBEZWxldGVBcHBsaWNhdGlvbgo9PQpibnogbWFpbl9sNjYKZXJyCm1haW5fbDY2Ogp0eG4gQXBwbGljYXRpb25JRAppbnQgMAohPQphc3NlcnQKY2FsbHN1YiBhc3NlcnRhZG1pbl80CmJ5dGUgInN0YWtlZCIKYXBwX2dsb2JhbF9nZXQKaW50IDAKPT0KIQpibnogbWFpbl9sNzIKYnl0ZSAibm9kZXJ1bm5lcl9mZWVzIgphcHBfZ2xvYmFsX2dldAppbnQgMAo9PQohCmJueiBtYWluX2w3MQppdHhuX2JlZ2luCmludCBhY2ZnCml0eG5fZmllbGQgVHlwZUVudW0KYnl0ZSAibHN0X2lkIgphcHBfZ2xvYmFsX2dldAppdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0Cml0eG5fc3VibWl0Cmdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCmJ5dGUgImFzYV9pZCIKYXBwX2dsb2JhbF9nZXQKYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCnN0b3JlIDMKc3RvcmUgMgpsb2FkIDMKYm56IG1haW5fbDcwCm1haW5fbDY5OgppdHhuX2JlZ2luCmludCBwYXkKaXR4bl9maWVsZCBUeXBlRW51bQppbnQgMAppdHhuX2ZpZWxkIEFtb3VudAp0eG4gU2VuZGVyCml0eG5fZmllbGQgQ2xvc2VSZW1haW5kZXJUbwp0eG4gU2VuZGVyCml0eG5fZmllbGQgUmVjZWl2ZXIKaXR4bl9zdWJtaXQKaW50IDEKcmV0dXJuCm1haW5fbDcwOgppdHhuX2JlZ2luCmludCBheGZlcgppdHhuX2ZpZWxkIFR5cGVFbnVtCmJ5dGUgImFzYV9pZCIKYXBwX2dsb2JhbF9nZXQKaXR4bl9maWVsZCBYZmVyQXNzZXQKdHhuIFNlbmRlcgppdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKdHhuIFNlbmRlcgppdHhuX2ZpZWxkIEFzc2V0Q2xvc2VUbwppbnQgMAppdHhuX2ZpZWxkIEFzc2V0QW1vdW50Cml0eG5fc3VibWl0CmIgbWFpbl9sNjkKbWFpbl9sNzE6CmJ5dGUgIkVSUiBORiIKbG9nCmVycgptYWluX2w3MjoKYnl0ZSAiRVJSIFNUSyIKbG9nCmVycgptYWluX2w3MzoKdHhuIEFwcGxpY2F0aW9uSUQKaW50IDAKIT0KYXNzZXJ0CmNhbGxzdWIgYXNzZXJ0YWRtaW5vcmZlZWFkbWluXzYKYnl0ZSAiY29udHJhY3RfdXBncmFkZSIKYXBwX2dsb2JhbF9nZXQKYnl0ZSAiIgohPQohCmJueiBtYWluX2w4NgpieXRlICJjb250cmFjdF91cGdyYWRlIgphcHBfZ2xvYmFsX2dldAppbnQgMApleHRyYWN0X3VpbnQzMgpnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCjwKIQpibnogbWFpbl9sODUKYnl0ZSAicHJvdGVzdF9zdW0iCmFwcF9nbG9iYWxfZ2V0CmludCAwCj09CiEKYm56IG1haW5fbDg0CmJ5dGUgImNvbnRyYWN0X3VwZ3JhZGUiCmFwcF9nbG9iYWxfZ2V0CmV4dHJhY3QgNCAwCnN0b3JlIDAKYnl0ZSAweDQyNTEzN2FjCmxvYWQgMApsZW4KaW50IDMyCi8KaXRvYgpjb25jYXQKdHhuIE51bUFwcHJvdmFsUHJvZ3JhbVBhZ2VzCml0b2IKY29uY2F0CmxvZwp0eG4gTnVtQXBwcm92YWxQcm9ncmFtUGFnZXMKbG9hZCAwCmxlbgppbnQgMzIKLwo9PQohCmJueiBtYWluX2w4MwppbnQgMApzdG9yZSAxCm1haW5fbDc4Ogpsb2FkIDEKdHhuIE51bUFwcHJvdmFsUHJvZ3JhbVBhZ2VzCjwKYm56IG1haW5fbDgwCmJ5dGUgImNvbnRyYWN0X3VwZ3JhZGUiCmJ5dGUgIiIKYXBwX2dsb2JhbF9wdXQKaW50IDEKcmV0dXJuCm1haW5fbDgwOgpsb2FkIDAKaW50IDMyCmxvYWQgMQoqCmludCAzMgpleHRyYWN0Mwpsb2FkIDEKdHhuYXMgQXBwcm92YWxQcm9ncmFtUGFnZXMKc2hhNTEyXzI1Ngo9PQohCmJueiBtYWluX2w4MgpieXRlIDB4Mjg4MmI0MGUKbG9hZCAxCml0b2IKY29uY2F0CmxvZwpsb2FkIDEKaW50IDEKKwpzdG9yZSAxCmIgbWFpbl9sNzgKbWFpbl9sODI6CmJ5dGUgIkVSUiBIQVNIIgpsb2cKZXJyCm1haW5fbDgzOgpieXRlICJFUlIgU0laRSIKbG9nCmVycgptYWluX2w4NDoKYnl0ZSAiRVJSIFBSVFNUIgpsb2cKZXJyCm1haW5fbDg1OgpieXRlICJFUlIgRUFSTFkiCmxvZwplcnIKbWFpbl9sODY6CmJ5dGUgIkVSUiBOTyBVUEciCmxvZwplcnIKbWFpbl9sODc6CmludCAwCnJldHVybgptYWluX2w4ODoKaW50IDAKcmV0dXJuCm1haW5fbDg5Ogp0eG4gQXBwbGljYXRpb25JRAppbnQgMAo9PQphc3NlcnQKY2FsbHN1YiBjcmVhdGVzdG9yYWdlXzgKaW50IDEKcmV0dXJuCgovLyBpbnRfdG9fYXNjaWkKaW50dG9hc2NpaV8wOgpwcm90byAxIDEKYnl0ZSAiMDEyMzQ1Njc4OSIKZnJhbWVfZGlnIC0xCmludCAxCmV4dHJhY3QzCnJldHN1YgoKLy8gaXRvYQppdG9hXzE6CnByb3RvIDEgMQpmcmFtZV9kaWcgLTEKaW50IDAKPT0KYm56IGl0b2FfMV9sNQpmcmFtZV9kaWcgLTEKaW50IDEwCi8KaW50IDAKPgpibnogaXRvYV8xX2w0CmJ5dGUgIiIKaXRvYV8xX2wzOgpmcmFtZV9kaWcgLTEKaW50IDEwCiUKY2FsbHN1YiBpbnR0b2FzY2lpXzAKY29uY2F0CmIgaXRvYV8xX2w2Cml0b2FfMV9sNDoKZnJhbWVfZGlnIC0xCmludCAxMAovCmNhbGxzdWIgaXRvYV8xCmIgaXRvYV8xX2wzCml0b2FfMV9sNToKYnl0ZSAiMCIKaXRvYV8xX2w2OgpyZXRzdWIKCi8vIHNlbmRfYWxnbwpzZW5kYWxnb18yOgpwcm90byAzIDAKaXR4bl9iZWdpbgppbnQgcGF5Cml0eG5fZmllbGQgVHlwZUVudW0KZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKaXR4bl9maWVsZCBTZW5kZXIKZnJhbWVfZGlnIC0zCml0eG5fZmllbGQgUmVjZWl2ZXIKZnJhbWVfZGlnIC0yCml0eG5fZmllbGQgQW1vdW50CmZyYW1lX2RpZyAtMQppdHhuX2ZpZWxkIEZlZQppdHhuX3N1Ym1pdApyZXRzdWIKCi8vIHNlbmRfYXNhCnNlbmRhc2FfMzoKcHJvdG8gNCAwCml0eG5fYmVnaW4KaW50IGF4ZmVyCml0eG5fZmllbGQgVHlwZUVudW0KZnJhbWVfZGlnIC0zCml0eG5fZmllbGQgWGZlckFzc2V0CmZyYW1lX2RpZyAtNAppdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKZnJhbWVfZGlnIC0yCml0eG5fZmllbGQgQXNzZXRBbW91bnQKZnJhbWVfZGlnIC0xCml0eG5fZmllbGQgRmVlCml0eG5fc3VibWl0CnJldHN1YgoKLy8gYXNzZXJ0X2FkbWluCmFzc2VydGFkbWluXzQ6CnByb3RvIDAgMAp0eG4gU2VuZGVyCmJ5dGUgImFkbWluX2FkZHIiCmFwcF9nbG9iYWxfZ2V0Cj09CiEKYnogYXNzZXJ0YWRtaW5fNF9sMgpieXRlICJFUlIgVU5BVVRIIgpsb2cKZXJyCmFzc2VydGFkbWluXzRfbDI6CnJldHN1YgoKLy8gYXNzZXJ0X2ZlZV9hZG1pbgphc3NlcnRmZWVhZG1pbl81Ogpwcm90byAwIDAKdHhuIFNlbmRlcgpieXRlICJmZWVfYWRtaW5fYWRkciIKYXBwX2dsb2JhbF9nZXQKPT0KIQpieiBhc3NlcnRmZWVhZG1pbl81X2wyCmJ5dGUgIkVSUiBVTkFVVEgiCmxvZwplcnIKYXNzZXJ0ZmVlYWRtaW5fNV9sMjoKcmV0c3ViCgovLyBhc3NlcnRfYWRtaW5fb3JfZmVlX2FkbWluCmFzc2VydGFkbWlub3JmZWVhZG1pbl82Ogpwcm90byAwIDAKdHhuIFNlbmRlcgpieXRlICJmZWVfYWRtaW5fYWRkciIKYXBwX2dsb2JhbF9nZXQKPT0KYm56IGFzc2VydGFkbWlub3JmZWVhZG1pbl82X2wyCmNhbGxzdWIgYXNzZXJ0YWRtaW5fNApiIGFzc2VydGFkbWlub3JmZWVhZG1pbl82X2wzCmFzc2VydGFkbWlub3JmZWVhZG1pbl82X2wyOgpyZXRzdWIKYXNzZXJ0YWRtaW5vcmZlZWFkbWluXzZfbDM6CnJldHN1YgoKLy8gYXNzZXJ0X2ZlZV9hZG1pbl9vcl9ub2RlX3J1bm5lcgphc3NlcnRmZWVhZG1pbm9ybm9kZXJ1bm5lcl83Ogpwcm90byAwIDAKdHhuIFNlbmRlcgpieXRlICJub2RlcnVubmVyX2FkZHIiCmFwcF9nbG9iYWxfZ2V0Cj09CmJueiBhc3NlcnRmZWVhZG1pbm9ybm9kZXJ1bm5lcl83X2wyCmNhbGxzdWIgYXNzZXJ0ZmVlYWRtaW5fNQpiIGFzc2VydGZlZWFkbWlub3Jub2RlcnVubmVyXzdfbDMKYXNzZXJ0ZmVlYWRtaW5vcm5vZGVydW5uZXJfN19sMjoKcmV0c3ViCmFzc2VydGZlZWFkbWlub3Jub2RlcnVubmVyXzdfbDM6CnJldHN1YgoKLy8gY3JlYXRlX3N0b3JhZ2UKY3JlYXRlc3RvcmFnZV84Ogpwcm90byAwIDAKYnl0ZSAiYXNhX2lkIgphcHBfZ2xvYmFsX2dldAppbnQgMAo9PQohCmJ6IGNyZWF0ZXN0b3JhZ2VfOF9sMgpieXRlICJFUlIgSSIKbG9nCmVycgpjcmVhdGVzdG9yYWdlXzhfbDI6CmJ5dGUgInYiCmludCAxCmFwcF9nbG9iYWxfcHV0CmJ5dGUgImFzYV9pZCIKaW50IDAKYXBwX2dsb2JhbF9wdXQKYnl0ZSAibHN0X2lkIgppbnQgMAphcHBfZ2xvYmFsX3B1dApieXRlICJkZWxheV9vcHRpbiIKaW50IDAKYXBwX2dsb2JhbF9wdXQKYnl0ZSAic3Rha2VkIgppbnQgMAphcHBfZ2xvYmFsX3B1dApieXRlICJwbGF0Zm9ybV9mZWVzIgppbnQgMAphcHBfZ2xvYmFsX3B1dApieXRlICJub2RlcnVubmVyX2ZlZXMiCmludCAwCmFwcF9nbG9iYWxfcHV0CmJ5dGUgInBsYXRmb3JtX2ZlZV9icHMiCmludCAwCmFwcF9nbG9iYWxfcHV0CmJ5dGUgIm5vZGVydW5uZXJfZmVlX2JwcyIKaW50IDAKYXBwX2dsb2JhbF9wdXQKYnl0ZSAiYWRtaW5fYWRkciIKdHhuIFNlbmRlcgphcHBfZ2xvYmFsX3B1dApieXRlICJmZWVfYWRtaW5fYWRkciIKdHhuIFNlbmRlcgphcHBfZ2xvYmFsX3B1dApieXRlICJub2RlcnVubmVyX2FkZHIiCnR4biBTZW5kZXIKYXBwX2dsb2JhbF9wdXQKYnl0ZSAibHBfdHlwZSIKYnl0ZSAiIgphcHBfZ2xvYmFsX3B1dApieXRlICJscF9pZCIKYnl0ZSAiIgphcHBfZ2xvYmFsX3B1dApieXRlICJmZWVfdXBkYXRlIgpieXRlICIiCmFwcF9nbG9iYWxfcHV0CmJ5dGUgImNvbnRyYWN0X3VwZ3JhZGUiCmJ5dGUgIiIKYXBwX2dsb2JhbF9wdXQKYnl0ZSAicHJvdGVzdF9jbnQiCmludCAwCmFwcF9nbG9iYWxfcHV0CmJ5dGUgInByb3Rlc3Rfc3VtIgppbnQgMAphcHBfZ2xvYmFsX3B1dApieXRlICJ1cGdyYWRlX3BlcmlvZCIKaW50IDAKYXBwX2dsb2JhbF9wdXQKYnl0ZSAiZmVlX3VwZGF0ZV9wZXJpb2QiCmludCAwCmFwcF9nbG9iYWxfcHV0CmJ5dGUgImZlZV91cGRhdGVfbWF4X2RlbHRhIgppbnQgMAphcHBfZ2xvYmFsX3B1dApieXRlICJtYXhfYmFsYW5jZSIKaW50IDAKYXBwX2dsb2JhbF9wdXQKYnl0ZSAicmF0ZV9wcmVjaXNpb24iCmludCAwCmFwcF9nbG9iYWxfcHV0CmJ5dGUgInRtMl9hcHBfaWQiCmludCAwCmFwcF9nbG9iYWxfcHV0CmJ5dGUgImFyYzU5X2FwcF9pZCIKaW50IDAKYXBwX2dsb2JhbF9wdXQKcmV0c3ViCgovLyBtYXliZV9hcHBseV9mZWVfdXBkYXRlCm1heWJlYXBwbHlmZWV1cGRhdGVfOToKcHJvdG8gMCAwCmJ5dGUgImZlZV91cGRhdGUiCmFwcF9nbG9iYWxfZ2V0CmJ5dGUgIiIKIT0KYnogbWF5YmVhcHBseWZlZXVwZGF0ZV85X2wzCmJ5dGUgImZlZV91cGRhdGUiCmFwcF9nbG9iYWxfZ2V0CmludCAwCmV4dHJhY3RfdWludDY0Cmdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKPApieiBtYXliZWFwcGx5ZmVldXBkYXRlXzlfbDMKYnl0ZSAiZmVlX3VwZGF0ZSIKYXBwX2dsb2JhbF9nZXQKaW50IDgKZXh0cmFjdF91aW50NjQKYnl0ZSAiZmVlX3VwZGF0ZSIKYXBwX2dsb2JhbF9nZXQKaW50IDE2CmV4dHJhY3RfdWludDY0CmNhbGxzdWIgYXBwbHlmZWV1cGRhdGVzXzEwCmJ5dGUgImZlZV91cGRhdGUiCmJ5dGUgIiIKYXBwX2dsb2JhbF9wdXQKbWF5YmVhcHBseWZlZXVwZGF0ZV85X2wzOgpyZXRzdWIKCi8vIGFwcGx5X2ZlZV91cGRhdGVzCmFwcGx5ZmVldXBkYXRlc18xMDoKcHJvdG8gMiAwCmJ5dGUgIm5vZGVydW5uZXJfZmVlX2JwcyIKZnJhbWVfZGlnIC0yCmFwcF9nbG9iYWxfcHV0CmJ5dGUgInBsYXRmb3JtX2ZlZV9icHMiCmZyYW1lX2RpZyAtMQphcHBfZ2xvYmFsX3B1dApieXRlIDB4MDMxMGMyZWQKZnJhbWVfZGlnIC0yCml0b2IKY29uY2F0CmZyYW1lX2RpZyAtMQppdG9iCmNvbmNhdApsb2cKcmV0c3ViCgovLyBxdWV1ZV91cGRhdGVfZmVlcwpxdWV1ZXVwZGF0ZWZlZXNfMTE6CnByb3RvIDIgMQppbnQgMApjYWxsc3ViIGFzc2VydGZlZWFkbWluXzUKYnl0ZSAibm9kZXJ1bm5lcl9mZWVfYnBzIgphcHBfZ2xvYmFsX2dldApmcmFtZV9kaWcgLTEKPgpibnogcXVldWV1cGRhdGVmZWVzXzExX2wxMgpmcmFtZV9kaWcgLTEKYnl0ZSAibm9kZXJ1bm5lcl9mZWVfYnBzIgphcHBfZ2xvYmFsX2dldAotCnF1ZXVldXBkYXRlZmVlc18xMV9sMjoKYnl0ZSAiZmVlX3VwZGF0ZV9tYXhfZGVsdGEiCmFwcF9nbG9iYWxfZ2V0Cjw9CiEKYm56IHF1ZXVldXBkYXRlZmVlc18xMV9sMTEKYnl0ZSAicGxhdGZvcm1fZmVlX2JwcyIKYXBwX2dsb2JhbF9nZXQKZnJhbWVfZGlnIC0yCj4KYm56IHF1ZXVldXBkYXRlZmVlc18xMV9sMTAKZnJhbWVfZGlnIC0yCmJ5dGUgInBsYXRmb3JtX2ZlZV9icHMiCmFwcF9nbG9iYWxfZ2V0Ci0KcXVldWV1cGRhdGVmZWVzXzExX2w1OgpieXRlICJmZWVfdXBkYXRlX21heF9kZWx0YSIKYXBwX2dsb2JhbF9nZXQKPD0KIQpibnogcXVldWV1cGRhdGVmZWVzXzExX2w5CmZyYW1lX2RpZyAtMQpieXRlICJub2RlcnVubmVyX2ZlZV9icHMiCmFwcF9nbG9iYWxfZ2V0Cjw9CmZyYW1lX2RpZyAtMgpieXRlICJwbGF0Zm9ybV9mZWVfYnBzIgphcHBfZ2xvYmFsX2dldAo8PQomJgpibnogcXVldWV1cGRhdGVmZWVzXzExX2w4Cmdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKYnl0ZSAiZmVlX3VwZGF0ZV9wZXJpb2QiCmFwcF9nbG9iYWxfZ2V0CisKc3RvcmUgNApieXRlICJmZWVfdXBkYXRlIgpsb2FkIDQKaXRvYgpmcmFtZV9kaWcgLTEKaXRvYgpjb25jYXQKZnJhbWVfZGlnIC0yCml0b2IKY29uY2F0CmFwcF9nbG9iYWxfcHV0CmJ5dGUgMHg1MDYzOTM0MQpsb2FkIDQKaXRvYgpjb25jYXQKZnJhbWVfZGlnIC0xCml0b2IKY29uY2F0CmZyYW1lX2RpZyAtMgppdG9iCmNvbmNhdApsb2cKbG9hZCA0CmZyYW1lX2J1cnkgMApiIHF1ZXVldXBkYXRlZmVlc18xMV9sMTMKcXVldWV1cGRhdGVmZWVzXzExX2w4OgpmcmFtZV9kaWcgLTEKZnJhbWVfZGlnIC0yCmNhbGxzdWIgYXBwbHlmZWV1cGRhdGVzXzEwCmludCAwCmZyYW1lX2J1cnkgMApiIHF1ZXVldXBkYXRlZmVlc18xMV9sMTMKcXVldWV1cGRhdGVmZWVzXzExX2w5OgpieXRlICJFUlIgREVMVEEgUCIKbG9nCmVycgpxdWV1ZXVwZGF0ZWZlZXNfMTFfbDEwOgpieXRlICJwbGF0Zm9ybV9mZWVfYnBzIgphcHBfZ2xvYmFsX2dldApmcmFtZV9kaWcgLTIKLQpiIHF1ZXVldXBkYXRlZmVlc18xMV9sNQpxdWV1ZXVwZGF0ZWZlZXNfMTFfbDExOgpieXRlICJFUlIgREVMVEEgTiIKbG9nCmVycgpxdWV1ZXVwZGF0ZWZlZXNfMTFfbDEyOgpieXRlICJub2RlcnVubmVyX2ZlZV9icHMiCmFwcF9nbG9iYWxfZ2V0CmZyYW1lX2RpZyAtMQotCmIgcXVldWV1cGRhdGVmZWVzXzExX2wyCnF1ZXVldXBkYXRlZmVlc18xMV9sMTM6CnJldHN1YgoKLy8gcmVzZXRfdXBkYXRlX2ZlZXMKcmVzZXR1cGRhdGVmZWVzXzEyOgpwcm90byAwIDAKY2FsbHN1YiBhc3NlcnRmZWVhZG1pbl81CmJ5dGUgImZlZV91cGRhdGUiCmFwcF9nbG9iYWxfZ2V0CmJ5dGUgIiIKIT0KIQpieiByZXNldHVwZGF0ZWZlZXNfMTJfbDIKYnl0ZSAiRVJSIE5PVSIKbG9nCmVycgpyZXNldHVwZGF0ZWZlZXNfMTJfbDI6CmJ5dGUgImZlZV91cGRhdGUiCmJ5dGUgIiIKYXBwX2dsb2JhbF9wdXQKcmV0c3ViCgovLyBwcmVfbWludF9vcl9yZWRlZW0KcHJlbWludG9ycmVkZWVtXzEzOgpwcm90byAwIDEKaW50IDI1NTI1NTI1NQpzdG9yZSAyNTUKY2FsbHN1YiBtYXliZWFwcGx5ZmVldXBkYXRlXzkKYnl0ZSAiZGVsYXlfb3B0aW4iCmFwcF9nbG9iYWxfZ2V0CmludCAwCj09Cmdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCmJhbGFuY2UKZ2xvYmFsIFBheW91dHNNaW5CYWxhbmNlCj4KfHwKYnl0ZSAic3Rha2VkIgphcHBfZ2xvYmFsX2dldAppbnQgMAo+CiYmCmNhbGxzdWIgZ2V0YWN0dWFsZXhwZWN0ZWRiYWxhbmNlZGVsdGFfMTcKZ2xvYmFsIE1pblR4bkZlZQppbnQgMTAwMAoqCj4KJiYKYm56IHByZW1pbnRvcnJlZGVlbV8xM19sMgppbnQgMApyZXRzdWIKcHJlbWludG9ycmVkZWVtXzEzX2wyOgpjYWxsc3ViIG1heWJlb3B0aW5fMTUKY2FsbHN1YiBzd2FwXzE0CnJldHN1YgoKLy8gc3dhcApzd2FwXzE0Ogpwcm90byAwIDEKY2FsbHN1YiBnZXRhY3R1YWxleHBlY3RlZGJhbGFuY2VkZWx0YV8xNwppbnQgMwpnbG9iYWwgTWluVHhuRmVlCioKLQpzdG9yZSAxMQpieXRlICJwbGF0Zm9ybV9mZWVfYnBzIgphcHBfZ2xvYmFsX2dldApsb2FkIDExCioKaW50IDEwMDAwCi8Kc3RvcmUgMTIKYnl0ZSAicGxhdGZvcm1fZmVlcyIKbG9hZCAxMgpieXRlICJwbGF0Zm9ybV9mZWVzIgphcHBfZ2xvYmFsX2dldAorCmFwcF9nbG9iYWxfcHV0CmJ5dGUgIm5vZGVydW5uZXJfZmVlX2JwcyIKYXBwX2dsb2JhbF9nZXQKbG9hZCAxMQoqCmludCAxMDAwMAovCnN0b3JlIDE0CmJ5dGUgIm5vZGVydW5uZXJfZmVlcyIKbG9hZCAxNApieXRlICJub2RlcnVubmVyX2ZlZXMiCmFwcF9nbG9iYWxfZ2V0CisKYXBwX2dsb2JhbF9wdXQKbG9hZCAxMQpsb2FkIDE0Ci0KbG9hZCAxMgotCnN0b3JlIDE1CmJ5dGUgImxwX3R5cGUiCmFwcF9nbG9iYWxfZ2V0CmJ5dGUgInRtMiIKPT0KYm56IHN3YXBfMTRfbDIKYnl0ZSAiRVJSICFJTVBMIgpsb2cKZXJyCmludCAwCnN3YXBfMTRfbDI6CmJ5dGUgImxwX2lkIgphcHBfZ2xvYmFsX2dldApieXRlICJ0bTJfYXBwX2lkIgphcHBfZ2xvYmFsX2dldApieXRlICJhc3NldF8xX2lkIgphcHBfbG9jYWxfZ2V0X2V4CnN0b3JlIDE4CnN0b3JlIDE3CmJ5dGUgImxwX2lkIgphcHBfZ2xvYmFsX2dldApieXRlICJ0bTJfYXBwX2lkIgphcHBfZ2xvYmFsX2dldApieXRlICJhc3NldF8xX3Jlc2VydmVzIgphcHBfbG9jYWxfZ2V0X2V4CnN0b3JlIDIwCnN0b3JlIDE5CmJ5dGUgImxwX2lkIgphcHBfZ2xvYmFsX2dldApieXRlICJ0bTJfYXBwX2lkIgphcHBfZ2xvYmFsX2dldApieXRlICJhc3NldF8yX3Jlc2VydmVzIgphcHBfbG9jYWxfZ2V0X2V4CnN0b3JlIDIyCnN0b3JlIDIxCmJ5dGUgImxwX2lkIgphcHBfZ2xvYmFsX2dldApieXRlICJ0bTJfYXBwX2lkIgphcHBfZ2xvYmFsX2dldApieXRlICJ0b3RhbF9mZWVfc2hhcmUiCmFwcF9sb2NhbF9nZXRfZXgKc3RvcmUgMjQKc3RvcmUgMjMKbG9hZCAxOApsb2FkIDIyCiYmCmxvYWQgMjAKJiYKbG9hZCAyNAomJgohCmJueiBzd2FwXzE0X2w5CmxvYWQgMTcKaW50IDAKPT0KYm56IHN3YXBfMTRfbDgKbG9hZCAxOQppbnQgMQotCmxvYWQgMjEKbG9hZCAxOQptdWx3CmludCAwCmxvYWQgMjEKbG9hZCAxNQpsb2FkIDIzCmxvYWQgMTUKKgppbnQgMTAwMDAKLwotCisKZGl2bW9kdwpwb3AKcG9wCnN3YXAKIQphc3NlcnQKLQpzd2FwXzE0X2w1OgpzdG9yZSAxNgpsb2FkIDE2CmludCAwCj09CmJueiBzd2FwXzE0X2w3Cml0eG5fYmVnaW4KaW50IHBheQppdHhuX2ZpZWxkIFR5cGVFbnVtCmJ5dGUgImxwX2lkIgphcHBfZ2xvYmFsX2dldAppdHhuX2ZpZWxkIFJlY2VpdmVyCmxvYWQgMTUKaXR4bl9maWVsZCBBbW91bnQKZ2xvYmFsIE1pblR4bkZlZQppdHhuX2ZpZWxkIEZlZQppdHhuX25leHQKaW50IGFwcGwKaXR4bl9maWVsZCBUeXBlRW51bQppbnQgTm9PcAppdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgpieXRlICJ0bTJfYXBwX2lkIgphcHBfZ2xvYmFsX2dldAppdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKYnl0ZSAic3dhcCIKaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKYnl0ZSAiZml4ZWQtaW5wdXQiCml0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCmxvYWQgMTYKaXRvYgppdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwpieXRlICJhc2FfaWQiCmFwcF9nbG9iYWxfZ2V0Cml0eG5fZmllbGQgQXNzZXRzCmJ5dGUgImxwX2lkIgphcHBfZ2xvYmFsX2dldAppdHhuX2ZpZWxkIEFjY291bnRzCmludCAyCmdsb2JhbCBNaW5UeG5GZWUKKgppdHhuX2ZpZWxkIEZlZQppdHhuX3N1Ym1pdApieXRlIDB4OTAwZTViYmIKbG9hZCAxNQppdG9iCmNvbmNhdApsb2FkIDE2Cml0b2IKY29uY2F0CmxvZwpieXRlIDB4M2YyMzVlZTEKZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKYnl0ZSAiYXNhX2lkIgphcHBfZ2xvYmFsX2dldAphc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKc3RvcmUgMjUKaXRvYgpjb25jYXQKbG9nCmludCAxCmIgc3dhcF8xNF9sMTAKc3dhcF8xNF9sNzoKaW50IDAKYiBzd2FwXzE0X2wxMApzd2FwXzE0X2w4Ogpsb2FkIDIxCmludCAxCi0KbG9hZCAxOQpsb2FkIDIxCm11bHcKaW50IDAKbG9hZCAxOQpsb2FkIDE1CmxvYWQgMjMKbG9hZCAxNQoqCmludCAxMDAwMAovCi0KKwpkaXZtb2R3CnBvcApwb3AKc3dhcAohCmFzc2VydAotCmIgc3dhcF8xNF9sNQpzd2FwXzE0X2w5OgpieXRlICJFUlIgTFAiCmxvZwplcnIKc3dhcF8xNF9sMTA6CnJldHN1YgoKLy8gbWF5YmVfb3B0aW4KbWF5YmVvcHRpbl8xNToKcHJvdG8gMCAwCmJ5dGUgImRlbGF5X29wdGluIgphcHBfZ2xvYmFsX2dldApieiBtYXliZW9wdGluXzE1X2wyCmdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCmJ5dGUgImFzYV9pZCIKYXBwX2dsb2JhbF9nZXQKaW50IDAKZ2xvYmFsIE1pblR4bkZlZQpjYWxsc3ViIHNlbmRhc2FfMwpieXRlICJkZWxheV9vcHRpbiIKaW50IDAKYXBwX2dsb2JhbF9wdXQKbWF5YmVvcHRpbl8xNV9sMjoKcmV0c3ViCgovLyBnZXRfZXhwZWN0ZWRfYmFsYW5jZQpnZXRleHBlY3RlZGJhbGFuY2VfMTY6CnByb3RvIDAgMQpieXRlICJzdGFrZWQiCmFwcF9nbG9iYWxfZ2V0CmJ5dGUgInBsYXRmb3JtX2ZlZXMiCmFwcF9nbG9iYWxfZ2V0CisKYnl0ZSAibm9kZXJ1bm5lcl9mZWVzIgphcHBfZ2xvYmFsX2dldAorCmdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCm1pbl9iYWxhbmNlCmJ5dGUgImRlbGF5X29wdGluIgphcHBfZ2xvYmFsX2dldApibnogZ2V0ZXhwZWN0ZWRiYWxhbmNlXzE2X2wyCmludCAwCmIgZ2V0ZXhwZWN0ZWRiYWxhbmNlXzE2X2wzCmdldGV4cGVjdGVkYmFsYW5jZV8xNl9sMjoKZ2xvYmFsIEFzc2V0T3B0SW5NaW5CYWxhbmNlCmdsb2JhbCBNaW5UeG5GZWUKKwpnZXRleHBlY3RlZGJhbGFuY2VfMTZfbDM6CisKKwpyZXRzdWIKCi8vIGdldF9hY3R1YWxfZXhwZWN0ZWRfYmFsYW5jZV9kZWx0YQpnZXRhY3R1YWxleHBlY3RlZGJhbGFuY2VkZWx0YV8xNzoKcHJvdG8gMCAxCmdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCmJhbGFuY2UKc3RvcmUgMjYKY2FsbHN1YiBnZXRleHBlY3RlZGJhbGFuY2VfMTYKc3RvcmUgMjcKbG9hZCAyNgpsb2FkIDI3Cj4KYm56IGdldGFjdHVhbGV4cGVjdGVkYmFsYW5jZWRlbHRhXzE3X2wyCmludCAwCmIgZ2V0YWN0dWFsZXhwZWN0ZWRiYWxhbmNlZGVsdGFfMTdfbDMKZ2V0YWN0dWFsZXhwZWN0ZWRiYWxhbmNlZGVsdGFfMTdfbDI6CmxvYWQgMjYKbG9hZCAyNwotCmdldGFjdHVhbGV4cGVjdGVkYmFsYW5jZWRlbHRhXzE3X2wzOgpyZXRzdWIKCi8vIGNvbmZpZ3VyZQpjb25maWd1cmVfMTg6CnByb3RvIDE2IDAKY2FsbHN1YiBhc3NlcnRhZG1pbm9yZmVlYWRtaW5fNgpieXRlICJsc3RfaWQiCmFwcF9nbG9iYWxfZ2V0CmludCAwCj09CiEKYm56IGNvbmZpZ3VyZV8xOF9sOApieXRlICJhc2FfaWQiCmZyYW1lX2RpZyAtMTYKYXBwX2dsb2JhbF9wdXQKYnl0ZSAibHBfdHlwZSIKZnJhbWVfZGlnIC0xNQpleHRyYWN0IDIgMAphcHBfZ2xvYmFsX3B1dApieXRlICJscF9pZCIKZnJhbWVfZGlnIC0xNApleHRyYWN0IDIgMAphcHBfZ2xvYmFsX3B1dApieXRlICJwbGF0Zm9ybV9mZWVfYnBzIgpmcmFtZV9kaWcgLTEzCmFwcF9nbG9iYWxfcHV0CmJ5dGUgIm5vZGVydW5uZXJfZmVlX2JwcyIKZnJhbWVfZGlnIC0xMgphcHBfZ2xvYmFsX3B1dApieXRlICJhZG1pbl9hZGRyIgpmcmFtZV9kaWcgLTExCmFwcF9nbG9iYWxfcHV0CmJ5dGUgImZlZV9hZG1pbl9hZGRyIgpmcmFtZV9kaWcgLTEwCmFwcF9nbG9iYWxfcHV0CmJ5dGUgIm5vZGVydW5uZXJfYWRkciIKZnJhbWVfZGlnIC05CmFwcF9nbG9iYWxfcHV0CmJ5dGUgImRlbGF5X29wdGluIgpmcmFtZV9kaWcgLTgKYXBwX2dsb2JhbF9wdXQKYnl0ZSAidXBncmFkZV9wZXJpb2QiCmZyYW1lX2RpZyAtNgphcHBfZ2xvYmFsX3B1dApieXRlICJmZWVfdXBkYXRlX3BlcmlvZCIKZnJhbWVfZGlnIC01CmFwcF9nbG9iYWxfcHV0CmJ5dGUgImZlZV91cGRhdGVfbWF4X2RlbHRhIgpmcmFtZV9kaWcgLTQKYXBwX2dsb2JhbF9wdXQKYnl0ZSAibWF4X2JhbGFuY2UiCmZyYW1lX2RpZyAtNwphcHBfZ2xvYmFsX3B1dApieXRlICJyYXRlX3ByZWNpc2lvbiIKZnJhbWVfZGlnIC0zCmFwcF9nbG9iYWxfcHV0CmJ5dGUgInRtMl9hcHBfaWQiCmZyYW1lX2RpZyAtMgphcHBfZ2xvYmFsX3B1dApieXRlICJhcmM1OV9hcHBfaWQiCmZyYW1lX2RpZyAtMQphcHBfZ2xvYmFsX3B1dApmcmFtZV9kaWcgLTgKIQpibnogY29uZmlndXJlXzE4X2w3CmNvbmZpZ3VyZV8xOF9sMjoKZnJhbWVfZGlnIC0xNQpleHRyYWN0IDIgMApieXRlICJ0bTIiCj09CmJueiBjb25maWd1cmVfMThfbDUKY29uZmlndXJlXzE4X2wzOgpmcmFtZV9kaWcgLTEKYXBwX3BhcmFtc19nZXQgQXBwQXBwcm92YWxQcm9ncmFtCnN0b3JlIDUKc2hhNTEyXzI1NgpieXRlIDB4ZTY1MGIyZWQzZjI1NGI3YzhiNzFhOGJkNzU1MGZiNzgzOTExZWRlZWZkNDUxZmU0NmMzNjllYjQyOWZlZjBhNwo9PQohCmJ6IGNvbmZpZ3VyZV8xOF9sOQpieXRlICJFUlIgQVJDNTkiCmxvZwplcnIKY29uZmlndXJlXzE4X2w1OgpmcmFtZV9kaWcgLTE0CmV4dHJhY3QgMiAwCmZyYW1lX2RpZyAtMgpieXRlICJhc3NldF8xX2lkIgphcHBfbG9jYWxfZ2V0X2V4CnN0b3JlIDcKc3RvcmUgNgpmcmFtZV9kaWcgLTE0CmV4dHJhY3QgMiAwCmZyYW1lX2RpZyAtMgpieXRlICJhc3NldF8yX2lkIgphcHBfbG9jYWxfZ2V0X2V4CnN0b3JlIDkKc3RvcmUgOApsb2FkIDYKZnJhbWVfZGlnIC0xNgo9PQpsb2FkIDgKaW50IDAKPT0KJiYKbG9hZCA4CmZyYW1lX2RpZyAtMTYKPT0KbG9hZCA2CmludCAwCj09CiYmCnx8CiEKYnogY29uZmlndXJlXzE4X2wzCmJ5dGUgIkVSUiBUTTIiCmxvZwplcnIKY29uZmlndXJlXzE4X2w3OgpnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwpmcmFtZV9kaWcgLTE2CmludCAwCmdsb2JhbCBNaW5UeG5GZWUKY2FsbHN1YiBzZW5kYXNhXzMKYiBjb25maWd1cmVfMThfbDIKY29uZmlndXJlXzE4X2w4OgpieXRlICJFUlIgQ0ZHRCIKbG9nCmVycgpjb25maWd1cmVfMThfbDk6CnJldHN1YgoKLy8gY29uZmlndXJlMgpjb25maWd1cmUyXzE5Ogpwcm90byAzIDAKYnl0ZSAibHN0X2lkIgphcHBfZ2xvYmFsX2dldAppbnQgMAo9PQohCmJueiBjb25maWd1cmUyXzE5X2wzCnR4biBTZW5kZXIKYnl0ZSAiYWRtaW5fYWRkciIKYXBwX2dsb2JhbF9nZXQKPT0KZ2xvYmFsIENhbGxlckFwcGxpY2F0aW9uSUQKYXBwX3BhcmFtc19nZXQgQXBwQ3JlYXRvcgpzdG9yZSAxMApieXRlICJhZG1pbl9hZGRyIgphcHBfZ2xvYmFsX2dldAo9PQp8fAohCmJ6IGNvbmZpZ3VyZTJfMTlfbDQKYnl0ZSAiRVJSIFVOQVVUSCIKbG9nCmVycgpjb25maWd1cmUyXzE5X2wzOgpieXRlICJFUlIgQ0ZHRCIKbG9nCmVycgpjb25maWd1cmUyXzE5X2w0OgpieXRlICJsc3RfaWQiCml0eG5fYmVnaW4KaW50IGFwcGwKaXR4bl9maWVsZCBUeXBlRW51bQppbnQgRGVsZXRlQXBwbGljYXRpb24KaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KYnl0ZSBiYXNlNjQoQzRFQlF3PT0pCml0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCmJ5dGUgYmFzZTY0KEM0RUJRdz09KQppdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCml0eG5fc3VibWl0Cml0eG5fYmVnaW4KaW50IGFjZmcKaXR4bl9maWVsZCBUeXBlRW51bQpmcmFtZV9kaWcgLTMKZXh0cmFjdCAyIDAKaXR4bl9maWVsZCBDb25maWdBc3NldE5hbWUKZnJhbWVfZGlnIC0yCmV4dHJhY3QgMiAwCml0eG5fZmllbGQgQ29uZmlnQXNzZXRVbml0TmFtZQpmcmFtZV9kaWcgLTEKZXh0cmFjdCAyIDAKaXR4biBDcmVhdGVkQXBwbGljYXRpb25JRAppbnQgMQorCmNhbGxzdWIgaXRvYV8xCmNvbmNhdAppdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VVJMCmludCA2Cml0eG5fZmllbGQgQ29uZmlnQXNzZXREZWNpbWFscwppbnQgMTAwMDAwMDAwMDAwMDAwMDAKaXR4bl9maWVsZCBDb25maWdBc3NldFRvdGFsCmdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCml0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCmdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCml0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCml0eG5fc3VibWl0Cml0eG4gQ3JlYXRlZEFzc2V0SUQKYXBwX2dsb2JhbF9wdXQKcmV0c3ViCgovLyBjaGFuZ2VfYWRtaW5fMQpjaGFuZ2VhZG1pbjFfMjA6CnByb3RvIDEgMApjYWxsc3ViIGFzc2VydGFkbWluXzQKZnJhbWVfZGlnIC0xCnN0b3JlIDEzCnJldHN1YgoKLy8gY2hhbmdlX2FkbWluXzIKY2hhbmdlYWRtaW4yXzIxOgpwcm90byAwIDAKdHhuIEdyb3VwSW5kZXgKaW50IDEKLQpndHhucyBUeXBlRW51bQppbnQgYXBwbAo9PQohCmJueiBjaGFuZ2VhZG1pbjJfMjFfbDkKdHhuIEdyb3VwSW5kZXgKaW50IDEKLQpndHhucyBPbkNvbXBsZXRpb24KaW50IE5vT3AKPT0KIQpibnogY2hhbmdlYWRtaW4yXzIxX2w4CnR4biBHcm91cEluZGV4CmludCAxCi0KZ3R4bnMgQXBwbGljYXRpb25JRApnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uSUQKPT0KIQpibnogY2hhbmdlYWRtaW4yXzIxX2w3CnR4biBHcm91cEluZGV4CmludCAxCi0KZ3R4bnNhIEFwcGxpY2F0aW9uQXJncyAwCm1ldGhvZCAiY2hhbmdlX2FkbWluXzEoYWRkcmVzcyl2b2lkIgo9PQohCmJueiBjaGFuZ2VhZG1pbjJfMjFfbDYKdHhuIFNlbmRlcgpnbG9hZCAwIDEzCj09CiEKYnogY2hhbmdlYWRtaW4yXzIxX2wxMApieXRlICJFUlIgTkEiCmxvZwplcnIKY2hhbmdlYWRtaW4yXzIxX2w2OgpieXRlICJFUlIgQVJHIgpsb2cKZXJyCmNoYW5nZWFkbWluMl8yMV9sNzoKYnl0ZSAiRVJSIEFQSUQiCmxvZwplcnIKY2hhbmdlYWRtaW4yXzIxX2w4OgpieXRlICJFUlIgT0MiCmxvZwplcnIKY2hhbmdlYWRtaW4yXzIxX2w5OgpieXRlICJFUlIgVFhUIgpsb2cKZXJyCmNoYW5nZWFkbWluMl8yMV9sMTA6CmJ5dGUgImFkbWluX2FkZHIiCmdsb2FkIDAgMTMKYXBwX2dsb2JhbF9wdXQKcmV0c3ViCgovLyBjaGFuZ2Vfbm9kZXJ1bm5lcgpjaGFuZ2Vub2RlcnVubmVyXzIyOgpwcm90byAxIDAKY2FsbHN1YiBhc3NlcnRmZWVhZG1pbm9ybm9kZXJ1bm5lcl83CmNhbGxzdWIgcHJlbWludG9ycmVkZWVtXzEzCnBvcApieXRlICJub2RlcnVubmVyX2ZlZXMiCmFwcF9nbG9iYWxfZ2V0CmludCAwCj09CiEKYnogY2hhbmdlbm9kZXJ1bm5lcl8yMl9sMgpieXRlICJFUlIgRkVFIgpsb2cKZXJyCmNoYW5nZW5vZGVydW5uZXJfMjJfbDI6CmJ5dGUgIm5vZGVydW5uZXJfYWRkciIKZnJhbWVfZGlnIC0xCmFwcF9nbG9iYWxfcHV0CnJldHN1YgoKLy8gY2hhbmdlX2ZlZWFkZHIKY2hhbmdlZmVlYWRkcl8yMzoKcHJvdG8gMSAwCmNhbGxzdWIgYXNzZXJ0YWRtaW5vcmZlZWFkbWluXzYKYnl0ZSAiZmVlX2FkbWluX2FkZHIiCmZyYW1lX2RpZyAtMQphcHBfZ2xvYmFsX3B1dApyZXRzdWIKCi8vIHVwZGF0ZV9tYXhfYmFsYW5jZQp1cGRhdGVtYXhiYWxhbmNlXzI0Ogpwcm90byAxIDAKY2FsbHN1YiBhc3NlcnRmZWVhZG1pbl81CmZyYW1lX2RpZyAtMQppbnQgNjU0MzIxMDAwMDAwMDAKPD0KIQpieiB1cGRhdGVtYXhiYWxhbmNlXzI0X2wyCmJ5dGUgIkVSUiBNQVgiCmxvZwplcnIKdXBkYXRlbWF4YmFsYW5jZV8yNF9sMjoKYnl0ZSAibWF4X2JhbGFuY2UiCmZyYW1lX2RpZyAtMQphcHBfZ2xvYmFsX3B1dApyZXRzdWIKCi8vIHdpdGhkcmF3X2RzX3N1cnBsdXMKd2l0aGRyYXdkc3N1cnBsdXNfMjU6CnByb3RvIDAgMApjYWxsc3ViIGFzc2VydGZlZWFkbWluXzUKYnl0ZSAibHN0X2lkIgphcHBfZ2xvYmFsX2dldAphc3NldF9wYXJhbXNfZ2V0IEFzc2V0VG90YWwKc3RvcmUgMzAKYnl0ZSAic3Rha2VkIgphcHBfZ2xvYmFsX2dldAotCmJ5dGUgInByb3Rlc3Rfc3VtIgphcHBfZ2xvYmFsX2dldAorCnN0b3JlIDI4Cmdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCmJ5dGUgImxzdF9pZCIKYXBwX2dsb2JhbF9nZXQKYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCnN0b3JlIDMxCnN0b3JlIDI5CmxvYWQgMjkKbG9hZCAyOAo+CiEKYnogd2l0aGRyYXdkc3N1cnBsdXNfMjVfbDIKYnl0ZSAiRVJSIFpFUk8iCmxvZwplcnIKd2l0aGRyYXdkc3N1cnBsdXNfMjVfbDI6CnR4biBTZW5kZXIKYnl0ZSAibHN0X2lkIgphcHBfZ2xvYmFsX2dldApsb2FkIDI5CmxvYWQgMjgKLQppbnQgMApjYWxsc3ViIHNlbmRhc2FfMwpyZXRzdWIKCi8vIHZlcmlmeV9uZmRvbWFpbnMKdmVyaWZ5bmZkb21haW5zXzI2Ogpwcm90byAzIDAKY2FsbHN1YiBhc3NlcnRmZWVhZG1pbl81Cml0eG5fYmVnaW4KaW50IGFwcGwKaXR4bl9maWVsZCBUeXBlRW51bQppbnQgTm9PcAppdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgpmcmFtZV9kaWcgLTMKaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECmJ5dGUgInZlcmlmeV9uZmRfYWRkciIKaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKZnJhbWVfZGlnIC0xCmV4dHJhY3QgMiAwCmJ5dGUgIi5kdWFsc3Rha2UuYWxnbyIKY29uY2F0Cml0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCmZyYW1lX2RpZyAtMgppdG9iCml0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCmdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCml0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCmZyYW1lX2RpZyAtMgppdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwppbnQgMAppdHhuX2ZpZWxkIEZlZQppdHhuX3N1Ym1pdApyZXRzdWIKCi8vIHdpdGhkcmF3X25vZGVfcnVubmVyX2ZlZXMKd2l0aGRyYXdub2RlcnVubmVyZmVlc18yNzoKcHJvdG8gMSAwCmNhbGxzdWIgYXNzZXJ0ZmVlYWRtaW5vcm5vZGVydW5uZXJfNwpmcmFtZV9kaWcgLTEKaW50IDAKPgohCmJueiB3aXRoZHJhd25vZGVydW5uZXJmZWVzXzI3X2wzCmZyYW1lX2RpZyAtMQpieXRlICJub2RlcnVubmVyX2ZlZXMiCmFwcF9nbG9iYWxfZ2V0Cjw9CiEKYnogd2l0aGRyYXdub2RlcnVubmVyZmVlc18yN19sNApieXRlICJFUlIgT1ZFUiIKbG9nCmVycgp3aXRoZHJhd25vZGVydW5uZXJmZWVzXzI3X2wzOgpieXRlICJFUlIgWkVSTyIKbG9nCmVycgp3aXRoZHJhd25vZGVydW5uZXJmZWVzXzI3X2w0OgpieXRlICJub2RlcnVubmVyX2FkZHIiCmFwcF9nbG9iYWxfZ2V0CmZyYW1lX2RpZyAtMQppbnQgMApjYWxsc3ViIHNlbmRhbGdvXzIKYnl0ZSAibm9kZXJ1bm5lcl9mZWVzIgpieXRlICJub2RlcnVubmVyX2ZlZXMiCmFwcF9nbG9iYWxfZ2V0CmZyYW1lX2RpZyAtMQotCmFwcF9nbG9iYWxfcHV0CnJldHN1YgoKLy8gd2l0aGRyYXdfcGxhdGZvcm1fZmVlcwp3aXRoZHJhd3BsYXRmb3JtZmVlc18yODoKcHJvdG8gMSAwCmNhbGxzdWIgYXNzZXJ0ZmVlYWRtaW5fNQpmcmFtZV9kaWcgLTEKaW50IDAKPgohCmJueiB3aXRoZHJhd3BsYXRmb3JtZmVlc18yOF9sMwpmcmFtZV9kaWcgLTEKYnl0ZSAicGxhdGZvcm1fZmVlcyIKYXBwX2dsb2JhbF9nZXQKPD0KIQpieiB3aXRoZHJhd3BsYXRmb3JtZmVlc18yOF9sNApieXRlICJFUlIgT1ZFUiIKbG9nCmVycgp3aXRoZHJhd3BsYXRmb3JtZmVlc18yOF9sMzoKYnl0ZSAiRVJSIFpFUk8iCmxvZwplcnIKd2l0aGRyYXdwbGF0Zm9ybWZlZXNfMjhfbDQ6CnR4biBTZW5kZXIKZnJhbWVfZGlnIC0xCmludCAwCmNhbGxzdWIgc2VuZGFsZ29fMgpieXRlICJwbGF0Zm9ybV9mZWVzIgpieXRlICJwbGF0Zm9ybV9mZWVzIgphcHBfZ2xvYmFsX2dldApmcmFtZV9kaWcgLTEKLQphcHBfZ2xvYmFsX3B1dApyZXRzdWIKCi8vIHZhbGlkYXRlX2FzYV9wYXltZW50X2FmdGVyCnZhbGlkYXRlYXNhcGF5bWVudGFmdGVyXzI5Ogpwcm90byAyIDEKdHhuIEdyb3VwSW5kZXgKZnJhbWVfZGlnIC0yCisKZ3R4bnMgVHlwZUVudW0KaW50IGF4ZmVyCj09CiEKYm56IHZhbGlkYXRlYXNhcGF5bWVudGFmdGVyXzI5X2w1CnR4biBHcm91cEluZGV4CmZyYW1lX2RpZyAtMgorCmd0eG5zIEFzc2V0UmVjZWl2ZXIKZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKPT0KIQpibnogdmFsaWRhdGVhc2FwYXltZW50YWZ0ZXJfMjlfbDQKdHhuIEdyb3VwSW5kZXgKZnJhbWVfZGlnIC0yCisKZ3R4bnMgWGZlckFzc2V0CmZyYW1lX2RpZyAtMQo9PQohCmJ6IHZhbGlkYXRlYXNhcGF5bWVudGFmdGVyXzI5X2w2CmJ5dGUgIkVSUiBBSUQiCmxvZwplcnIKdmFsaWRhdGVhc2FwYXltZW50YWZ0ZXJfMjlfbDQ6CmJ5dGUgIkVSUiBQQVkiCmxvZwplcnIKdmFsaWRhdGVhc2FwYXltZW50YWZ0ZXJfMjlfbDU6CmJ5dGUgIkVSUiBQQVkiCmxvZwplcnIKdmFsaWRhdGVhc2FwYXltZW50YWZ0ZXJfMjlfbDY6CnR4biBHcm91cEluZGV4CmZyYW1lX2RpZyAtMgorCmd0eG5zIEFzc2V0QW1vdW50CnJldHN1YgoKLy8gdmFsaWRhdGVfYXNhX3BheW1lbnRfYmVmb3JlCnZhbGlkYXRlYXNhcGF5bWVudGJlZm9yZV8zMDoKcHJvdG8gMiAxCnR4biBHcm91cEluZGV4CmZyYW1lX2RpZyAtMgotCmd0eG5zIFR5cGVFbnVtCmludCBheGZlcgo9PQohCmJueiB2YWxpZGF0ZWFzYXBheW1lbnRiZWZvcmVfMzBfbDUKdHhuIEdyb3VwSW5kZXgKZnJhbWVfZGlnIC0yCi0KZ3R4bnMgQXNzZXRSZWNlaXZlcgpnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwo9PQohCmJueiB2YWxpZGF0ZWFzYXBheW1lbnRiZWZvcmVfMzBfbDQKdHhuIEdyb3VwSW5kZXgKZnJhbWVfZGlnIC0yCi0KZ3R4bnMgWGZlckFzc2V0CmZyYW1lX2RpZyAtMQo9PQohCmJ6IHZhbGlkYXRlYXNhcGF5bWVudGJlZm9yZV8zMF9sNgpieXRlICJFUlIgQUlEIgpsb2cKZXJyCnZhbGlkYXRlYXNhcGF5bWVudGJlZm9yZV8zMF9sNDoKYnl0ZSAiRVJSIFBBWSIKbG9nCmVycgp2YWxpZGF0ZWFzYXBheW1lbnRiZWZvcmVfMzBfbDU6CmJ5dGUgIkVSUiBQQVkiCmxvZwplcnIKdmFsaWRhdGVhc2FwYXltZW50YmVmb3JlXzMwX2w2Ogp0eG4gR3JvdXBJbmRleApmcmFtZV9kaWcgLTIKLQpndHhucyBBc3NldEFtb3VudApyZXRzdWIKCi8vIHZhbGlkYXRlX2FsZ29fcGF5bWVudF9hZnRlcgp2YWxpZGF0ZWFsZ29wYXltZW50YWZ0ZXJfMzE6CnByb3RvIDEgMQp0eG4gR3JvdXBJbmRleApmcmFtZV9kaWcgLTEKKwpndHhucyBUeXBlRW51bQppbnQgcGF5Cj09CiEKYm56IHZhbGlkYXRlYWxnb3BheW1lbnRhZnRlcl8zMV9sNQp0eG4gR3JvdXBJbmRleApmcmFtZV9kaWcgLTEKKwpndHhucyBSZWNlaXZlcgpnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwo9PQohCmJueiB2YWxpZGF0ZWFsZ29wYXltZW50YWZ0ZXJfMzFfbDQKdHhuIEdyb3VwSW5kZXgKZnJhbWVfZGlnIC0xCisKZ3R4bnMgQW1vdW50CmludCAxMDAwMDAwCj49CiEKYnogdmFsaWRhdGVhbGdvcGF5bWVudGFmdGVyXzMxX2w2CmJ5dGUgIkVSUiBNSU4gQU1UIgpsb2cKZXJyCnZhbGlkYXRlYWxnb3BheW1lbnRhZnRlcl8zMV9sNDoKYnl0ZSAiRVJSIFBBWSIKbG9nCmVycgp2YWxpZGF0ZWFsZ29wYXltZW50YWZ0ZXJfMzFfbDU6CmJ5dGUgIkVSUiBQQVkiCmxvZwplcnIKdmFsaWRhdGVhbGdvcGF5bWVudGFmdGVyXzMxX2w2Ogp0eG4gR3JvdXBJbmRleApmcmFtZV9kaWcgLTEKKwpndHhucyBBbW91bnQKcmV0c3ViCgovLyBrZXlyZWdfb25saW5lCmtleXJlZ29ubGluZV8zMjoKcHJvdG8gNyAwCmNhbGxzdWIgYXNzZXJ0ZmVlYWRtaW5vcm5vZGVydW5uZXJfNwpnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwphY2N0X3BhcmFtc19nZXQgQWNjdEluY2VudGl2ZUVsaWdpYmxlCnN0b3JlIDMzCnN0b3JlIDMyCmZyYW1lX2RpZyAtMQppbnQgMAo+CmJueiBrZXlyZWdvbmxpbmVfMzJfbDcKa2V5cmVnb25saW5lXzMyX2wxOgpsb2FkIDMyCmludCAxCj09CmJueiBrZXlyZWdvbmxpbmVfMzJfbDUKZnJhbWVfZGlnIC0xCmdsb2JhbCBQYXlvdXRzR29PbmxpbmVGZWUKPT0KIQpibnoga2V5cmVnb25saW5lXzMyX2w0CmJ5dGUgMHg2NTJjYjAwNApieXRlIDB4MDEKY29uY2F0CmxvZwpiIGtleXJlZ29ubGluZV8zMl9sOQprZXlyZWdvbmxpbmVfMzJfbDQ6CmJ5dGUgIkVSUiAhSUUiCmxvZwplcnIKa2V5cmVnb25saW5lXzMyX2w1OgpieXRlIDB4NjUyY2IwMDQKYnl0ZSAweDAwCmNvbmNhdApsb2cKZnJhbWVfZGlnIC0xCmludCAwCj09CiEKYnoga2V5cmVnb25saW5lXzMyX2w5CmJ5dGUgIkVSUiBJRSIKbG9nCmVycgprZXlyZWdvbmxpbmVfMzJfbDc6CmludCAxCmNhbGxzdWIgdmFsaWRhdGVhbGdvcGF5bWVudGFmdGVyXzMxCmZyYW1lX2RpZyAtMQo9PQohCmJ6IGtleXJlZ29ubGluZV8zMl9sMQpieXRlICJFUlIgUEFZIEFNVCIKbG9nCmVycgprZXlyZWdvbmxpbmVfMzJfbDk6Cml0eG5fYmVnaW4KaW50IGtleXJlZwppdHhuX2ZpZWxkIFR5cGVFbnVtCmZyYW1lX2RpZyAtNwpleHRyYWN0IDIgMAppdHhuX2ZpZWxkIFNlbGVjdGlvblBLCmZyYW1lX2RpZyAtNgpleHRyYWN0IDIgMAppdHhuX2ZpZWxkIFZvdGVQSwpmcmFtZV9kaWcgLTUKZXh0cmFjdCAyIDAKaXR4bl9maWVsZCBTdGF0ZVByb29mUEsKZnJhbWVfZGlnIC00Cml0eG5fZmllbGQgVm90ZUZpcnN0CmZyYW1lX2RpZyAtMwppdHhuX2ZpZWxkIFZvdGVMYXN0CmZyYW1lX2RpZyAtMgppdHhuX2ZpZWxkIFZvdGVLZXlEaWx1dGlvbgpmcmFtZV9kaWcgLTEKaXR4bl9maWVsZCBGZWUKaXR4bl9zdWJtaXQKcmV0c3ViCgovLyBrZXlyZWdfb2ZmbGluZQprZXlyZWdvZmZsaW5lXzMzOgpwcm90byAwIDAKY2FsbHN1YiBhc3NlcnRmZWVhZG1pbm9ybm9kZXJ1bm5lcl83CmJ5dGUgMHgyYzlkYWNlNgpsb2cKaXR4bl9iZWdpbgppbnQga2V5cmVnCml0eG5fZmllbGQgVHlwZUVudW0KaW50IDAKaXR4bl9maWVsZCBGZWUKaXR4bl9zdWJtaXQKcmV0c3ViCgovLyBhcmM1OV9zZW5kX2FzYV9hbmRfYWxnbwphcmM1OXNlbmRhc2FhbmRhbGdvXzM0Ogpwcm90byA0IDAKYnl0ZSAiIgppbnQgMApkdXBuIDIKYnl0ZSAiIgpnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwpiYWxhbmNlCnN0b3JlIDQ5Cml0eG5fYmVnaW4KaW50IGFwcGwKaXR4bl9maWVsZCBUeXBlRW51bQpieXRlICJhcmM1OV9hcHBfaWQiCmFwcF9nbG9iYWxfZ2V0Cml0eG5fZmllbGQgQXBwbGljYXRpb25JRAptZXRob2QgImFyYzU5X2dldFNlbmRBc3NldEluZm8oYWRkcmVzcyx1aW50NjQpKHVpbnQ2NCx1aW50NjQsYm9vbCxib29sLHVpbnQ2NCx1aW50NjQpIgppdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwpmcmFtZV9kaWcgLTQKaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKZnJhbWVfZGlnIC0yCml0b2IKaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKaXR4bl9zdWJtaXQKaXR4biBMYXN0TG9nCmludCA0Cml0eG4gTGFzdExvZwpsZW4Kc3Vic3RyaW5nMwpmcmFtZV9idXJ5IDAKZnJhbWVfZGlnIDAKaW50IDAKZXh0cmFjdF91aW50NjQKZnJhbWVfYnVyeSAxCmZyYW1lX2RpZyAwCmludCA4CmV4dHJhY3RfdWludDY0CmZyYW1lX2J1cnkgMgpmcmFtZV9kaWcgMAppbnQgMTI4CmdldGJpdApmcmFtZV9idXJ5IDMKYnl0ZSAiYXJjNTlfYXBwX2lkIgphcHBfZ2xvYmFsX2dldAphcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCnN0b3JlIDQ4CnN0b3JlIDQ3CmZyYW1lX2RpZyAyCmludCAwCj4KYm56IGFyYzU5c2VuZGFzYWFuZGFsZ29fMzRfbDkKYXJjNTlzZW5kYXNhYW5kYWxnb18zNF9sMToKZnJhbWVfZGlnIDMKIQpibnogYXJjNTlzZW5kYXNhYW5kYWxnb18zNF9sOAphcmM1OXNlbmRhc2FhbmRhbGdvXzM0X2wyOgpmcmFtZV9kaWcgMQppbnQgNQo+PQpibnogYXJjNTlzZW5kYXNhYW5kYWxnb18zNF9sNwppdHhuX2JlZ2luCmludCBhcHBsCml0eG5fZmllbGQgVHlwZUVudW0KYnl0ZSAiYXJjNTlfYXBwX2lkIgphcHBfZ2xvYmFsX2dldAppdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKbWV0aG9kICJhcmM1OV9nZXRPckNyZWF0ZUluYm94KGFkZHJlc3MpYWRkcmVzcyIKaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKZnJhbWVfZGlnIC00Cml0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCml0eG5fc3VibWl0Cml0eG4gTGFzdExvZwppbnQgNAppdHhuIExhc3RMb2cKbGVuCnN1YnN0cmluZzMKZnJhbWVfYnVyeSA0CmFyYzU5c2VuZGFzYWFuZGFsZ29fMzRfbDQ6Cml0eG5fYmVnaW4KaW50IGF4ZmVyCml0eG5fZmllbGQgVHlwZUVudW0KbG9hZCA0NwppdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKZnJhbWVfZGlnIC0yCml0eG5fZmllbGQgWGZlckFzc2V0CmZyYW1lX2RpZyAtMQppdHhuX2ZpZWxkIEFzc2V0QW1vdW50Cmdsb2JhbCBNaW5UeG5GZWUKaXR4bl9maWVsZCBGZWUKaXR4bl9uZXh0CmludCBhcHBsCml0eG5fZmllbGQgVHlwZUVudW0KYnl0ZSAiYXJjNTlfYXBwX2lkIgphcHBfZ2xvYmFsX2dldAppdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKbWV0aG9kICJhcmM1OV9zZW5kQXNzZXQoYXhmZXIsYWRkcmVzcyx1aW50NjQpYWRkcmVzcyIKaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKZnJhbWVfZGlnIC00Cml0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCmludCAwCml0b2IKaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKZnJhbWVfZGlnIDQKZnJhbWVfZGlnIC0yCmFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQpzdG9yZSA1MQpzdG9yZSA1MApsb2FkIDUxCmJueiBhcmM1OXNlbmRhc2FhbmRhbGdvXzM0X2w2CmludCA0Cmdsb2JhbCBNaW5UeG5GZWUKKgpiIGFyYzU5c2VuZGFzYWFuZGFsZ29fMzRfbDEwCmFyYzU5c2VuZGFzYWFuZGFsZ29fMzRfbDY6CmludCAyCmdsb2JhbCBNaW5UeG5GZWUKKgpiIGFyYzU5c2VuZGFzYWFuZGFsZ29fMzRfbDEwCmFyYzU5c2VuZGFzYWFuZGFsZ29fMzRfbDc6Cml0eG5fYmVnaW4KaW50IGFwcGwKaXR4bl9maWVsZCBUeXBlRW51bQpieXRlICJhcmM1OV9hcHBfaWQiCmFwcF9nbG9iYWxfZ2V0Cml0eG5fZmllbGQgQXBwbGljYXRpb25JRAptZXRob2QgImFyYzU5X2dldE9yQ3JlYXRlSW5ib3goYWRkcmVzcylhZGRyZXNzIgppdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwpmcmFtZV9kaWcgLTQKaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKaW50IDQKZ2xvYmFsIE1pblR4bkZlZQoqCml0eG5fZmllbGQgRmVlCml0eG5fc3VibWl0Cml0eG4gTGFzdExvZwppbnQgNAppdHhuIExhc3RMb2cKbGVuCnN1YnN0cmluZzMKZnJhbWVfYnVyeSA0CmZyYW1lX2RpZyA0Cmdsb2JhbCBNaW5CYWxhbmNlCmdsb2JhbCBNaW5UeG5GZWUKY2FsbHN1YiBzZW5kYWxnb18yCmIgYXJjNTlzZW5kYXNhYW5kYWxnb18zNF9sNAphcmM1OXNlbmRhc2FhbmRhbGdvXzM0X2w4OgppdHhuX2JlZ2luCmludCBhcHBsCml0eG5fZmllbGQgVHlwZUVudW0KYnl0ZSAiYXJjNTlfYXBwX2lkIgphcHBfZ2xvYmFsX2dldAppdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKbWV0aG9kICJhcmM1OV9vcHRSb3V0ZXJJbih1aW50NjQpdm9pZCIKaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKZnJhbWVfZGlnIC0yCml0b2IKaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKaW50IDIKZ2xvYmFsIE1pblR4bkZlZQoqCml0eG5fZmllbGQgRmVlCml0eG5fc3VibWl0CmIgYXJjNTlzZW5kYXNhYW5kYWxnb18zNF9sMgphcmM1OXNlbmRhc2FhbmRhbGdvXzM0X2w5Ogpsb2FkIDQ3CmZyYW1lX2RpZyAyCmdsb2JhbCBNaW5UeG5GZWUKY2FsbHN1YiBzZW5kYWxnb18yCmIgYXJjNTlzZW5kYXNhYW5kYWxnb18zNF9sMQphcmM1OXNlbmRhc2FhbmRhbGdvXzM0X2wxMDoKaXR4bl9maWVsZCBGZWUKaXR4bl9zdWJtaXQKbG9hZCA0OQpnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwpiYWxhbmNlCi0Kc3RvcmUgNDkKZnJhbWVfZGlnIC00CmZyYW1lX2RpZyAtMwpsb2FkIDQ5Ci0KZ2xvYmFsIE1pblR4bkZlZQotCmdsb2JhbCBNaW5UeG5GZWUKY2FsbHN1YiBzZW5kYWxnb18yCnJldHN1YgoKLy8gcHJvdGVzdF9zdGFrZQpwcm90ZXN0c3Rha2VfMzU6CnByb3RvIDAgMApieXRlICJjb250cmFjdF91cGdyYWRlIgphcHBfZ2xvYmFsX2dldApieXRlICIiCiE9CiEKYm56IHByb3Rlc3RzdGFrZV8zNV9sNgppbnQgMQpieXRlICJsc3RfaWQiCmFwcF9nbG9iYWxfZ2V0CmNhbGxzdWIgdmFsaWRhdGVhc2FwYXltZW50YmVmb3JlXzMwCnN0b3JlIDM0CmxvYWQgMzQKaW50IDEwMDAwMDAKPj0KIQpibnogcHJvdGVzdHN0YWtlXzM1X2w1CnR4biBTZW5kZXIKYm94X2xlbgpzdG9yZSAzNgpzdG9yZSAzNQpsb2FkIDM2CmJueiBwcm90ZXN0c3Rha2VfMzVfbDQKYnl0ZSAicHJvdGVzdF9jbnQiCmludCAxCmJ5dGUgInByb3Rlc3RfY250IgphcHBfZ2xvYmFsX2dldAorCmFwcF9nbG9iYWxfcHV0CnR4biBTZW5kZXIKbG9hZCAzNAppdG9iCmJveF9wdXQKYiBwcm90ZXN0c3Rha2VfMzVfbDcKcHJvdGVzdHN0YWtlXzM1X2w0Ogp0eG4gU2VuZGVyCnR4biBTZW5kZXIKY2FsbHN1YiBnZXR1c2VycHJvdGVzdGluZ3N0YWtlXzQyCmxvYWQgMzQKKwppdG9iCmJveF9wdXQKYiBwcm90ZXN0c3Rha2VfMzVfbDcKcHJvdGVzdHN0YWtlXzM1X2w1OgpieXRlICJFUlIgTUlOIFBSVFNUIgpsb2cKZXJyCnByb3Rlc3RzdGFrZV8zNV9sNjoKYnl0ZSAiRVJSIE5PIFVQRyIKbG9nCmVycgpwcm90ZXN0c3Rha2VfMzVfbDc6CmJ5dGUgMHhiY2NhYTk4Zgpsb2FkIDM0Cml0b2IKY29uY2F0CmxvZwpieXRlICJwcm90ZXN0X3N1bSIKbG9hZCAzNApieXRlICJwcm90ZXN0X3N1bSIKYXBwX2dsb2JhbF9nZXQKKwphcHBfZ2xvYmFsX3B1dApyZXRzdWIKCi8vIHVucHJvdGVzdF9zdGFrZQp1bnByb3Rlc3RzdGFrZV8zNjoKcHJvdG8gMCAwCnR4biBTZW5kZXIKaW50IDEKY2FsbHN1YiBpbnRlcm5hbHVucHJvdGVzdHN0YWtlXzM5CnJldHN1YgoKLy8gYWRtaW5fdW5wcm90ZXN0X3N0YWtlCmFkbWludW5wcm90ZXN0c3Rha2VfMzc6CnByb3RvIDEgMApjYWxsc3ViIGFzc2VydGZlZWFkbWluXzUKYnl0ZSAiY29udHJhY3RfdXBncmFkZSIKYXBwX2dsb2JhbF9nZXQKYnl0ZSAiIgo9PQohCmJ6IGFkbWludW5wcm90ZXN0c3Rha2VfMzdfbDIKYnl0ZSAiRVJSIFVQRyIKbG9nCmVycgphZG1pbnVucHJvdGVzdHN0YWtlXzM3X2wyOgpmcmFtZV9kaWcgLTEKaW50IDAKY2FsbHN1YiBpbnRlcm5hbHVucHJvdGVzdHN0YWtlXzM5CnJldHN1YgoKLy8gZGlzc29sdmVfcHJvdGVzdGluZ19zdGFrZQpkaXNzb2x2ZXByb3Rlc3RpbmdzdGFrZV8zODoKcHJvdG8gMSAwCmNhbGxzdWIgYXNzZXJ0ZmVlYWRtaW5fNQpjYWxsc3ViIHByZW1pbnRvcnJlZGVlbV8xMwpwb3AKYnl0ZSAiY29udHJhY3RfdXBncmFkZSIKYXBwX2dsb2JhbF9nZXQKaW50IDAKZXh0cmFjdF91aW50MzIKZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAo8CiEKYnogZGlzc29sdmVwcm90ZXN0aW5nc3Rha2VfMzhfbDIKYnl0ZSAiRVJSIEVBUkxZIgpsb2cKZXJyCmRpc3NvbHZlcHJvdGVzdGluZ3N0YWtlXzM4X2wyOgpmcmFtZV9kaWcgLTEKY2FsbHN1YiBnZXR1c2VycHJvdGVzdGluZ3N0YWtlXzQyCnN0b3JlIDQwCmZyYW1lX2RpZyAtMQpsb2FkIDQwCmdsb2JhbCBNaW5UeG5GZWUKY2FsbHN1YiBpbnRlcm5hbHJlZGVlbV80MQpmcmFtZV9kaWcgLTEKbG9hZCA0MApjYWxsc3ViIGludGVybmFsdW5wcm90ZXN0YWRqdXN0c3RhdGVfNDAKcmV0c3ViCgovLyBpbnRlcm5hbF91bnByb3Rlc3Rfc3Rha2UKaW50ZXJuYWx1bnByb3Rlc3RzdGFrZV8zOToKcHJvdG8gMiAwCmZyYW1lX2RpZyAtMgpjYWxsc3ViIGdldHVzZXJwcm90ZXN0aW5nc3Rha2VfNDIKc3RvcmUgMzkKZnJhbWVfZGlnIC0yCmJ5dGUgImxzdF9pZCIKYXBwX2dsb2JhbF9nZXQKbG9hZCAzOQppbnQgMApjYWxsc3ViIHNlbmRhc2FfMwpmcmFtZV9kaWcgLTIKbG9hZCAzOQpjYWxsc3ViIGludGVybmFsdW5wcm90ZXN0YWRqdXN0c3RhdGVfNDAKYnl0ZSAweDAyZGEyZTk2CmxvYWQgMzkKaXRvYgpjb25jYXQKZnJhbWVfZGlnIC0xCmJueiBpbnRlcm5hbHVucHJvdGVzdHN0YWtlXzM5X2wyCmJ5dGUgMHgwMApiIGludGVybmFsdW5wcm90ZXN0c3Rha2VfMzlfbDMKaW50ZXJuYWx1bnByb3Rlc3RzdGFrZV8zOV9sMjoKYnl0ZSAweDAxCmludGVybmFsdW5wcm90ZXN0c3Rha2VfMzlfbDM6CmNvbmNhdApsb2cKcmV0c3ViCgovLyBpbnRlcm5hbF91bnByb3Rlc3RfYWRqdXN0X3N0YXRlCmludGVybmFsdW5wcm90ZXN0YWRqdXN0c3RhdGVfNDA6CnByb3RvIDIgMApieXRlICJwcm90ZXN0X2NudCIKYnl0ZSAicHJvdGVzdF9jbnQiCmFwcF9nbG9iYWxfZ2V0CmludCAxCi0KYXBwX2dsb2JhbF9wdXQKYnl0ZSAicHJvdGVzdF9zdW0iCmJ5dGUgInByb3Rlc3Rfc3VtIgphcHBfZ2xvYmFsX2dldApmcmFtZV9kaWcgLTEKLQphcHBfZ2xvYmFsX3B1dApmcmFtZV9kaWcgLTIKYm94X2RlbAohCmJ6IGludGVybmFsdW5wcm90ZXN0YWRqdXN0c3RhdGVfNDBfbDIKYnl0ZSAiRVJSIEJPWCBERUwiCmxvZwplcnIKaW50ZXJuYWx1bnByb3Rlc3RhZGp1c3RzdGF0ZV80MF9sMjoKcmV0c3ViCgovLyBpbnRlcm5hbF9yZWRlZW0KaW50ZXJuYWxyZWRlZW1fNDE6CnByb3RvIDMgMApmcmFtZV9kaWcgLTIKIQpibnogaW50ZXJuYWxyZWRlZW1fNDFfbDEzCmxvYWQgMjU1CmludCAyNTUyNTUyNTUKPT0KIQpibnogaW50ZXJuYWxyZWRlZW1fNDFfbDEyCmJ5dGUgInN0YWtlZCIKYXBwX2dsb2JhbF9nZXQKaW50IDAKPT0KYm56IGludGVybmFscmVkZWVtXzQxX2wxMQpieXRlICJyYXRlX3ByZWNpc2lvbiIKYXBwX2dsb2JhbF9nZXQKZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKYnl0ZSAiYXNhX2lkIgphcHBfZ2xvYmFsX2dldAphc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKc3RvcmUgNDMKbXVsdwppbnQgMApieXRlICJzdGFrZWQiCmFwcF9nbG9iYWxfZ2V0CmRpdm1vZHcKcG9wCnBvcApzd2FwCiEKYXNzZXJ0CmludGVybmFscmVkZWVtXzQxX2w0OgpzdG9yZSA0MQpieXRlIDB4OGE0ZGFmZTcKbG9hZCA0MQppdG9iCmNvbmNhdApsb2cKbG9hZCA0MQppbnQgMAo+CmJueiBpbnRlcm5hbHJlZGVlbV80MV9sNgppbnQgMApzdG9yZSA0MgpmcmFtZV9kaWcgLTMKZnJhbWVfZGlnIC0yCmZyYW1lX2RpZyAtMQotCmZyYW1lX2RpZyAtMQpjYWxsc3ViIHNlbmRhbGdvXzIKYiBpbnRlcm5hbHJlZGVlbV80MV9sMTQKaW50ZXJuYWxyZWRlZW1fNDFfbDY6CmZyYW1lX2RpZyAtMgpsb2FkIDQxCm11bHcKaW50IDAKYnl0ZSAicmF0ZV9wcmVjaXNpb24iCmFwcF9nbG9iYWxfZ2V0CmRpdm1vZHcKcG9wCnBvcApzd2FwCiEKYXNzZXJ0CnN0b3JlIDQyCmZyYW1lX2RpZyAtMwpieXRlICJhc2FfaWQiCmFwcF9nbG9iYWxfZ2V0CmFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQpzdG9yZSA0NQpzdG9yZSA0NApsb2FkIDQ1CmJueiBpbnRlcm5hbHJlZGVlbV80MV9sMTAKZnJhbWVfZGlnIC0xCmludCAwCj4KIQpibnogaW50ZXJuYWxyZWRlZW1fNDFfbDkKZnJhbWVfZGlnIC0zCmZyYW1lX2RpZyAtMgpieXRlICJhc2FfaWQiCmFwcF9nbG9iYWxfZ2V0CmxvYWQgNDIKY2FsbHN1YiBhcmM1OXNlbmRhc2FhbmRhbGdvXzM0CmIgaW50ZXJuYWxyZWRlZW1fNDFfbDE0CmludGVybmFscmVkZWVtXzQxX2w5OgpieXRlICJFUlIgRkVFUyIKbG9nCmVycgppbnRlcm5hbHJlZGVlbV80MV9sMTA6CmZyYW1lX2RpZyAtMwpieXRlICJhc2FfaWQiCmFwcF9nbG9iYWxfZ2V0CmxvYWQgNDIKZnJhbWVfZGlnIC0xCmNhbGxzdWIgc2VuZGFzYV8zCmZyYW1lX2RpZyAtMwpmcmFtZV9kaWcgLTIKaW50IDIKZnJhbWVfZGlnIC0xCioKLQpmcmFtZV9kaWcgLTEKY2FsbHN1YiBzZW5kYWxnb18yCmIgaW50ZXJuYWxyZWRlZW1fNDFfbDE0CmludGVybmFscmVkZWVtXzQxX2wxMToKaW50IDAKYiBpbnRlcm5hbHJlZGVlbV80MV9sNAppbnRlcm5hbHJlZGVlbV80MV9sMTI6CmJ5dGUgIkVSUiBOUCIKbG9nCmVycgppbnRlcm5hbHJlZGVlbV80MV9sMTM6CmJ5dGUgIkVSUiBaRVJPIgpsb2cKZXJyCmludGVybmFscmVkZWVtXzQxX2wxNDoKYnl0ZSAweDYyMzY0N2IwCmZyYW1lX2RpZyAtMgppdG9iCmNvbmNhdApsb2FkIDQyCml0b2IKY29uY2F0CmxvZwpieXRlIDB4M2YyMzVlZTEKZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKYnl0ZSAiYXNhX2lkIgphcHBfZ2xvYmFsX2dldAphc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKc3RvcmUgNDYKaXRvYgpjb25jYXQKbG9nCmJ5dGUgInN0YWtlZCIKYnl0ZSAic3Rha2VkIgphcHBfZ2xvYmFsX2dldApmcmFtZV9kaWcgLTIKLQphcHBfZ2xvYmFsX3B1dApyZXRzdWIKCi8vIGdldF91c2VyX3Byb3Rlc3Rpbmdfc3Rha2UKZ2V0dXNlcnByb3Rlc3RpbmdzdGFrZV80MjoKcHJvdG8gMSAxCmZyYW1lX2RpZyAtMQpib3hfZ2V0CnN0b3JlIDM4CnN0b3JlIDM3CmxvYWQgMzgKIQpieiBnZXR1c2VycHJvdGVzdGluZ3N0YWtlXzQyX2wyCmJ5dGUgIkVSUiBOTyBQUlRTVCIKbG9nCmVycgpnZXR1c2VycHJvdGVzdGluZ3N0YWtlXzQyX2wyOgpsb2FkIDM3CmJ0b2kKcmV0c3ViCgovLyBxdWV1ZV91cGdyYWRlCnF1ZXVldXBncmFkZV80MzoKcHJvdG8gMSAwCmNhbGxzdWIgYXNzZXJ0YWRtaW5fNApmcmFtZV9kaWcgLTEKZXh0cmFjdCAyIDAKbGVuCmludCAzMgolCmludCAwCj09CiEKYnogcXVldWV1cGdyYWRlXzQzX2wyCmJ5dGUgIkVSUiBIQVNIIExFTiIKbG9nCmVycgpxdWV1ZXVwZ3JhZGVfNDNfbDI6CmJ5dGUgImNvbnRyYWN0X3VwZ3JhZGUiCmdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKYnl0ZSAidXBncmFkZV9wZXJpb2QiCmFwcF9nbG9iYWxfZ2V0CisKaXRvYgpleHRyYWN0IDQgNApmcmFtZV9kaWcgLTEKZXh0cmFjdCAyIDAKY29uY2F0CmFwcF9nbG9iYWxfcHV0CnJldHN1YgoKLy8gcmVzZXRfdXBncmFkZQpyZXNldHVwZ3JhZGVfNDQ6CnByb3RvIDAgMApjYWxsc3ViIGFzc2VydGFkbWlub3JmZWVhZG1pbl82CmJ5dGUgImNvbnRyYWN0X3VwZ3JhZGUiCmFwcF9nbG9iYWxfZ2V0CmJ5dGUgIiIKIT0KIQpieiByZXNldHVwZ3JhZGVfNDRfbDIKYnl0ZSAiRVJSIE5PIEMgVVBHUiIKbG9nCmVycgpyZXNldHVwZ3JhZGVfNDRfbDI6CmJ5dGUgImNvbnRyYWN0X3VwZ3JhZGUiCmJ5dGUgIiIKYXBwX2dsb2JhbF9wdXQKcmV0c3ViCgovLyBtaW50Cm1pbnRfNDU6CnByb3RvIDAgMApieXRlICJsc3RfaWQiCmFwcF9nbG9iYWxfZ2V0CmludCAwCiE9CiEKYm56IG1pbnRfNDVfbDEyCmNhbGxzdWIgcHJlbWludG9ycmVkZWVtXzEzCnBvcAppbnQgMQpjYWxsc3ViIHZhbGlkYXRlYWxnb3BheW1lbnRhZnRlcl8zMQpzdG9yZSA1MgpnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwpiYWxhbmNlCmxvYWQgNTIKKwpieXRlICJtYXhfYmFsYW5jZSIKYXBwX2dsb2JhbF9nZXQKPD0KIQpibnogbWludF80NV9sMTEKbG9hZCAyNTUKaW50IDI1NTI1NTI1NQo9PQohCmJueiBtaW50XzQ1X2wxMApieXRlICJzdGFrZWQiCmFwcF9nbG9iYWxfZ2V0CmludCAwCj09CmJueiBtaW50XzQ1X2w5CmJ5dGUgInJhdGVfcHJlY2lzaW9uIgphcHBfZ2xvYmFsX2dldApnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwpieXRlICJhc2FfaWQiCmFwcF9nbG9iYWxfZ2V0CmFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQpzdG9yZSA1NgptdWx3CmludCAwCmJ5dGUgInN0YWtlZCIKYXBwX2dsb2JhbF9nZXQKZGl2bW9kdwpwb3AKcG9wCnN3YXAKIQphc3NlcnQKbWludF80NV9sNToKc3RvcmUgNTMKYnl0ZSAweDhhNGRhZmU3CmxvYWQgNTMKaXRvYgpjb25jYXQKbG9nCmxvYWQgNTMKaW50IDAKPgpibnogbWludF80NV9sNwppbnQgMApzdG9yZSA1NQppbnQgMApzdG9yZSA1NApiIG1pbnRfNDVfbDEzCm1pbnRfNDVfbDc6CmxvYWQgNTIKbG9hZCA1MwptdWx3CmludCAwCmJ5dGUgInJhdGVfcHJlY2lzaW9uIgphcHBfZ2xvYmFsX2dldApkaXZtb2R3CnBvcApwb3AKc3dhcAohCmFzc2VydAppbnQgMQorCnN0b3JlIDU0CmludCAyCmJ5dGUgImFzYV9pZCIKYXBwX2dsb2JhbF9nZXQKY2FsbHN1YiB2YWxpZGF0ZWFzYXBheW1lbnRhZnRlcl8yOQpzdG9yZSA1NQpsb2FkIDU0CmxvYWQgNTUKPD0KIQpieiBtaW50XzQ1X2wxMwpieXRlICJFUlIgUkFURSIKbG9nCmVycgptaW50XzQ1X2w5OgppbnQgMApiIG1pbnRfNDVfbDUKbWludF80NV9sMTA6CmJ5dGUgIkVSUiBOUCIKbG9nCmVycgptaW50XzQ1X2wxMToKYnl0ZSAiRVJSIE1BWCIKbG9nCmVycgptaW50XzQ1X2wxMjoKYnl0ZSAiRVJSICFSRFkiCmxvZwplcnIKbWludF80NV9sMTM6CmJ5dGUgMHg1ZDc3YzIwMwpsb2FkIDUyCml0b2IKY29uY2F0CmxvYWQgNTQKaXRvYgpjb25jYXQKbG9hZCA1NQppdG9iCmNvbmNhdApsb2cKYnl0ZSAweDNmMjM1ZWUxCmdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCmJ5dGUgImFzYV9pZCIKYXBwX2dsb2JhbF9nZXQKYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCnN0b3JlIDU3CmxvYWQgNTUKKwppdG9iCmNvbmNhdApsb2cKYnl0ZSAic3Rha2VkIgpsb2FkIDUyCmJ5dGUgInN0YWtlZCIKYXBwX2dsb2JhbF9nZXQKKwphcHBfZ2xvYmFsX3B1dAp0eG4gU2VuZGVyCmJ5dGUgImxzdF9pZCIKYXBwX2dsb2JhbF9nZXQKbG9hZCA1MgppbnQgMApjYWxsc3ViIHNlbmRhc2FfMwpyZXRzdWIKCi8vIHJlZGVlbQpyZWRlZW1fNDY6CnByb3RvIDAgMApieXRlICJsc3RfaWQiCmFwcF9nbG9iYWxfZ2V0CmludCAwCiE9CiEKYnogcmVkZWVtXzQ2X2wyCmJ5dGUgIkVSUiAhUkRZIgpsb2cKZXJyCnJlZGVlbV80Nl9sMjoKY2FsbHN1YiBwcmVtaW50b3JyZWRlZW1fMTMKcG9wCnR4biBTZW5kZXIKaW50IDEKYnl0ZSAibHN0X2lkIgphcHBfZ2xvYmFsX2dldApjYWxsc3ViIHZhbGlkYXRlYXNhcGF5bWVudGJlZm9yZV8zMAppbnQgMApjYWxsc3ViIGludGVybmFscmVkZWVtXzQxCnJldHN1YgoKLy8gZ2V0X3JhdGUKZ2V0cmF0ZV80NzoKcHJvdG8gMCAxCmludCAwCmJ5dGUgImxzdF9pZCIKYXBwX2dsb2JhbF9nZXQKaW50IDAKIT0KIQpibnogZ2V0cmF0ZV80N19sNgpjYWxsc3ViIHByZW1pbnRvcnJlZGVlbV8xMwpwb3AKbG9hZCAyNTUKaW50IDI1NTI1NTI1NQo9PQohCmJueiBnZXRyYXRlXzQ3X2w1CmJ5dGUgInN0YWtlZCIKYXBwX2dsb2JhbF9nZXQKaW50IDAKPT0KYm56IGdldHJhdGVfNDdfbDQKYnl0ZSAicmF0ZV9wcmVjaXNpb24iCmFwcF9nbG9iYWxfZ2V0Cmdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCmJ5dGUgImFzYV9pZCIKYXBwX2dsb2JhbF9nZXQKYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCnN0b3JlIDU4Cm11bHcKaW50IDAKYnl0ZSAic3Rha2VkIgphcHBfZ2xvYmFsX2dldApkaXZtb2R3CnBvcApwb3AKc3dhcAohCmFzc2VydApiIGdldHJhdGVfNDdfbDcKZ2V0cmF0ZV80N19sNDoKaW50IDAKYiBnZXRyYXRlXzQ3X2w3CmdldHJhdGVfNDdfbDU6CmJ5dGUgIkVSUiBOUCIKbG9nCmVycgpnZXRyYXRlXzQ3X2w2OgpieXRlICJFUlIgIVJEWSIKbG9nCmVycgpnZXRyYXRlXzQ3X2w3OgpmcmFtZV9idXJ5IDAKcmV0c3ViCgovLyBnZXRfY29udHJhY3RfbGlzdGluZwpnZXRjb250cmFjdGxpc3RpbmdfNDg6CnByb3RvIDEgMQpieXRlICIiCmludCAwCmR1cG4gNApieXRlICIiCmludCAwCmJ5dGUgIiIKZHVwCmludCAwCmR1cG4gNwpieXRlICIiCmR1cApieXRlICJsc3RfaWQiCmFwcF9nbG9iYWxfZ2V0CmludCAwCiE9CiEKYm56IGdldGNvbnRyYWN0bGlzdGluZ180OF9sOQpieXRlICJsc3RfaWQiCmFwcF9nbG9iYWxfZ2V0CmFzc2V0X3BhcmFtc19nZXQgQXNzZXROYW1lCnN0b3JlIDYwCnN0b3JlIDU5CmJ5dGUgImFzYV9pZCIKYXBwX2dsb2JhbF9nZXQKYXNzZXRfcGFyYW1zX2dldCBBc3NldE5hbWUKc3RvcmUgNjIKc3RvcmUgNjEKYnl0ZSAiYXNhX2lkIgphcHBfZ2xvYmFsX2dldAphc3NldF9wYXJhbXNfZ2V0IEFzc2V0VW5pdE5hbWUKc3RvcmUgNjQKc3RvcmUgNjMKYnl0ZSAiYXNhX2lkIgphcHBfZ2xvYmFsX2dldAphc3NldF9wYXJhbXNfZ2V0IEFzc2V0RGVjaW1hbHMKc3RvcmUgNjYKc3RvcmUgNjUKZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKYWNjdF9wYXJhbXNfZ2V0IEFjY3RJbmNlbnRpdmVFbGlnaWJsZQpzdG9yZSA2OApzdG9yZSA2NwpnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwp2b3Rlcl9wYXJhbXNfZ2V0IFZvdGVySW5jZW50aXZlRWxpZ2libGUKc3RvcmUgNzAKc3RvcmUgNjkKZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKYmFsYW5jZQpmcmFtZV9idXJ5IDIKZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKYnl0ZSAiYXNhX2lkIgphcHBfZ2xvYmFsX2dldAphc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKc3RvcmUgNzEKZnJhbWVfYnVyeSAzCmJ5dGUgInN0YWtlZCIKYXBwX2dsb2JhbF9nZXQKZnJhbWVfYnVyeSA0CmJ5dGUgImxzdF9pZCIKYXBwX2dsb2JhbF9nZXQKZnJhbWVfYnVyeSA1CmxvYWQgNTkKZnJhbWVfYnVyeSA2CmZyYW1lX2RpZyA2CmxlbgppdG9iCmV4dHJhY3QgNiAwCmZyYW1lX2RpZyA2CmNvbmNhdApmcmFtZV9idXJ5IDYKYnl0ZSAiYXNhX2lkIgphcHBfZ2xvYmFsX2dldApmcmFtZV9idXJ5IDcKbG9hZCA2MQpmcmFtZV9idXJ5IDgKZnJhbWVfZGlnIDgKbGVuCml0b2IKZXh0cmFjdCA2IDAKZnJhbWVfZGlnIDgKY29uY2F0CmZyYW1lX2J1cnkgOApsb2FkIDYzCmZyYW1lX2J1cnkgOQpmcmFtZV9kaWcgOQpsZW4KaXRvYgpleHRyYWN0IDYgMApmcmFtZV9kaWcgOQpjb25jYXQKZnJhbWVfYnVyeSA5CmxvYWQgNjUKZnJhbWVfYnVyeSAxMApmcmFtZV9kaWcgMTAKaW50IDY1NTM2CjwKYXNzZXJ0CmNhbGxzdWIgcHJlbWludG9ycmVkZWVtXzEzCiEKIQpmcmFtZV9idXJ5IDExCmxvYWQgMjU1CmludCAyNTUyNTUyNTUKPT0KIQpibnogZ2V0Y29udHJhY3RsaXN0aW5nXzQ4X2w4CmJ5dGUgInN0YWtlZCIKYXBwX2dsb2JhbF9nZXQKaW50IDAKPT0KYm56IGdldGNvbnRyYWN0bGlzdGluZ180OF9sNwpieXRlICJyYXRlX3ByZWNpc2lvbiIKYXBwX2dsb2JhbF9nZXQKZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKYnl0ZSAiYXNhX2lkIgphcHBfZ2xvYmFsX2dldAphc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKc3RvcmUgNzIKbXVsdwppbnQgMApieXRlICJzdGFrZWQiCmFwcF9nbG9iYWxfZ2V0CmRpdm1vZHcKcG9wCnBvcApzd2FwCiEKYXNzZXJ0CmdldGNvbnRyYWN0bGlzdGluZ180OF9sNDoKZnJhbWVfYnVyeSAxCmxvYWQgNjcKIQohCmZyYW1lX2J1cnkgMTIKbG9hZCA3MAohCiEKZnJhbWVfYnVyeSAxMwpieXRlICJjb250cmFjdF91cGdyYWRlIgphcHBfZ2xvYmFsX2dldApieXRlICIiCiE9CiEKIQpmcmFtZV9idXJ5IDE0CmZyYW1lX2RpZyAtMQpib3hfbGVuCnN0b3JlIDc0CnN0b3JlIDczCmxvYWQgNzQKYm56IGdldGNvbnRyYWN0bGlzdGluZ180OF9sNgppbnQgMApiIGdldGNvbnRyYWN0bGlzdGluZ180OF9sMTAKZ2V0Y29udHJhY3RsaXN0aW5nXzQ4X2w2OgpmcmFtZV9kaWcgLTEKY2FsbHN1YiBnZXR1c2VycHJvdGVzdGluZ3N0YWtlXzQyCmIgZ2V0Y29udHJhY3RsaXN0aW5nXzQ4X2wxMApnZXRjb250cmFjdGxpc3RpbmdfNDhfbDc6CmludCAwCmIgZ2V0Y29udHJhY3RsaXN0aW5nXzQ4X2w0CmdldGNvbnRyYWN0bGlzdGluZ180OF9sODoKYnl0ZSAiRVJSIE5QIgpsb2cKZXJyCmdldGNvbnRyYWN0bGlzdGluZ180OF9sOToKYnl0ZSAiRVJSICFSRFkiCmxvZwplcnIKZ2V0Y29udHJhY3RsaXN0aW5nXzQ4X2wxMDoKZnJhbWVfYnVyeSAxNQpmcmFtZV9kaWcgMQppdG9iCmZyYW1lX2RpZyAyCml0b2IKY29uY2F0CmZyYW1lX2RpZyAzCml0b2IKY29uY2F0CmZyYW1lX2RpZyA0Cml0b2IKY29uY2F0CmZyYW1lX2RpZyA1Cml0b2IKY29uY2F0CmZyYW1lX2RpZyA2CmZyYW1lX2J1cnkgMTkKZnJhbWVfZGlnIDE5CmZyYW1lX2J1cnkgMTgKaW50IDY1CmZyYW1lX2J1cnkgMTYKZnJhbWVfZGlnIDE2CmZyYW1lX2RpZyAxOQpsZW4KKwpmcmFtZV9idXJ5IDE3CmZyYW1lX2RpZyAxNwppbnQgNjU1MzYKPAphc3NlcnQKZnJhbWVfZGlnIDE2Cml0b2IKZXh0cmFjdCA2IDAKY29uY2F0CmZyYW1lX2RpZyA3Cml0b2IKY29uY2F0CmZyYW1lX2RpZyA4CmZyYW1lX2J1cnkgMTkKZnJhbWVfZGlnIDE4CmZyYW1lX2RpZyAxOQpjb25jYXQKZnJhbWVfYnVyeSAxOApmcmFtZV9kaWcgMTcKZnJhbWVfYnVyeSAxNgpmcmFtZV9kaWcgMTYKZnJhbWVfZGlnIDE5CmxlbgorCmZyYW1lX2J1cnkgMTcKZnJhbWVfZGlnIDE3CmludCA2NTUzNgo8CmFzc2VydApmcmFtZV9kaWcgMTYKaXRvYgpleHRyYWN0IDYgMApjb25jYXQKZnJhbWVfZGlnIDkKZnJhbWVfYnVyeSAxOQpmcmFtZV9kaWcgMTgKZnJhbWVfZGlnIDE5CmNvbmNhdApmcmFtZV9idXJ5IDE4CmZyYW1lX2RpZyAxNwpmcmFtZV9idXJ5IDE2CmZyYW1lX2RpZyAxNgppdG9iCmV4dHJhY3QgNiAwCmNvbmNhdApmcmFtZV9kaWcgMTAKaXRvYgpleHRyYWN0IDYgMApjb25jYXQKYnl0ZSAweDAwCmludCAwCmZyYW1lX2RpZyAxMQpzZXRiaXQKaW50IDEKZnJhbWVfZGlnIDEyCnNldGJpdAppbnQgMgpmcmFtZV9kaWcgMTMKc2V0Yml0CmludCAzCmZyYW1lX2RpZyAxNApzZXRiaXQKY29uY2F0CmZyYW1lX2RpZyAxNQppdG9iCmNvbmNhdApmcmFtZV9kaWcgMTgKY29uY2F0CmZyYW1lX2J1cnkgMApyZXRzdWIKCi8vIGdldF9yYXRlX2FuZF9iYWxhbmNlcwpnZXRyYXRlYW5kYmFsYW5jZXNfNDk6CnByb3RvIDAgMQpieXRlICIiCmludCAwCmR1cG4gNApieXRlICIiCmR1cApieXRlICJsc3RfaWQiCmFwcF9nbG9iYWxfZ2V0CmludCAwCiE9CiEKYm56IGdldHJhdGVhbmRiYWxhbmNlc180OV9sNgpjYWxsc3ViIHByZW1pbnRvcnJlZGVlbV8xMwpwb3AKbG9hZCAyNTUKaW50IDI1NTI1NTI1NQo9PQohCmJueiBnZXRyYXRlYW5kYmFsYW5jZXNfNDlfbDUKYnl0ZSAic3Rha2VkIgphcHBfZ2xvYmFsX2dldAppbnQgMAo9PQpibnogZ2V0cmF0ZWFuZGJhbGFuY2VzXzQ5X2w0CmJ5dGUgInJhdGVfcHJlY2lzaW9uIgphcHBfZ2xvYmFsX2dldApnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwpieXRlICJhc2FfaWQiCmFwcF9nbG9iYWxfZ2V0CmFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQpzdG9yZSA3NQptdWx3CmludCAwCmJ5dGUgInN0YWtlZCIKYXBwX2dsb2JhbF9nZXQKZGl2bW9kdwpwb3AKcG9wCnN3YXAKIQphc3NlcnQKYiBnZXRyYXRlYW5kYmFsYW5jZXNfNDlfbDcKZ2V0cmF0ZWFuZGJhbGFuY2VzXzQ5X2w0OgppbnQgMApiIGdldHJhdGVhbmRiYWxhbmNlc180OV9sNwpnZXRyYXRlYW5kYmFsYW5jZXNfNDlfbDU6CmJ5dGUgIkVSUiBOUCIKbG9nCmVycgpnZXRyYXRlYW5kYmFsYW5jZXNfNDlfbDY6CmJ5dGUgIkVSUiAhUkRZIgpsb2cKZXJyCmdldHJhdGVhbmRiYWxhbmNlc180OV9sNzoKZnJhbWVfYnVyeSAxCmdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCmJhbGFuY2UKZnJhbWVfYnVyeSAyCmdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCmJ5dGUgImFzYV9pZCIKYXBwX2dsb2JhbF9nZXQKYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCnN0b3JlIDc2CmZyYW1lX2J1cnkgMwpmcmFtZV9kaWcgMQppdG9iCmZyYW1lX2RpZyAyCml0b2IKY29uY2F0CmZyYW1lX2RpZyAzCml0b2IKY29uY2F0CmZyYW1lX2J1cnkgMApyZXRzdWIKCi8vIGdldF9uZWVkX3N3YXAKZ2V0bmVlZHN3YXBfNTA6CnByb3RvIDAgMQppbnQgMApieXRlICJsc3RfaWQiCmFwcF9nbG9iYWxfZ2V0CmludCAwCiE9CiEKYnogZ2V0bmVlZHN3YXBfNTBfbDIKYnl0ZSAiRVJSICFSRFkiCmxvZwplcnIKZ2V0bmVlZHN3YXBfNTBfbDI6CmJ5dGUgImRlbGF5X29wdGluIgphcHBfZ2xvYmFsX2dldAppbnQgMAo9PQpnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwpiYWxhbmNlCmdsb2JhbCBQYXlvdXRzTWluQmFsYW5jZQo+Cnx8CmJ5dGUgInN0YWtlZCIKYXBwX2dsb2JhbF9nZXQKaW50IDAKPgomJgpjYWxsc3ViIGdldGFjdHVhbGV4cGVjdGVkYmFsYW5jZWRlbHRhXzE3Cmdsb2JhbCBNaW5UeG5GZWUKaW50IDEwMDAKKgo+CiYmCiEKIQpmcmFtZV9idXJ5IDAKcmV0c3ViCgovLyBzd2FwX29yX2ZhaWwKc3dhcG9yZmFpbF81MToKcHJvdG8gMCAwCmJ5dGUgImxzdF9pZCIKYXBwX2dsb2JhbF9nZXQKaW50IDAKIT0KIQpibnogc3dhcG9yZmFpbF81MV9sNQpjYWxsc3ViIG1heWJlYXBwbHlmZWV1cGRhdGVfOQpjYWxsc3ViIG1heWJlb3B0aW5fMTUKYnl0ZSAiZGVsYXlfb3B0aW4iCmFwcF9nbG9iYWxfZ2V0CmludCAwCj09Cmdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCmJhbGFuY2UKZ2xvYmFsIFBheW91dHNNaW5CYWxhbmNlCj4KfHwKYnl0ZSAic3Rha2VkIgphcHBfZ2xvYmFsX2dldAppbnQgMAo+CiYmCmNhbGxzdWIgZ2V0YWN0dWFsZXhwZWN0ZWRiYWxhbmNlZGVsdGFfMTcKZ2xvYmFsIE1pblR4bkZlZQppbnQgMTAwMAoqCj4KJiYKIQpibnogc3dhcG9yZmFpbF81MV9sNApjYWxsc3ViIHN3YXBfMTQKIQpieiBzd2Fwb3JmYWlsXzUxX2w2CmJ5dGUgIkVSUiBTV1AiCmxvZwplcnIKc3dhcG9yZmFpbF81MV9sNDoKYnl0ZSAiRVJSIE5PIFNXUCIKbG9nCmVycgpzd2Fwb3JmYWlsXzUxX2w1OgpieXRlICJFUlIgIVJEWSIKbG9nCmVycgpzd2Fwb3JmYWlsXzUxX2w2OgpyZXRzdWIKCi8vIG51bGx1bgpudWxsdW5fNTI6CnByb3RvIDAgMAppbnQgMQpyZXR1cm4KCi8vIHF1ZXVlX3VwZGF0ZV9mZWVzX2Nhc3RlcgpxdWV1ZXVwZGF0ZWZlZXNjYXN0ZXJfNTM6CnByb3RvIDAgMAppbnQgMApkdXBuIDIKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQpidG9pCmZyYW1lX2J1cnkgMQp0eG5hIEFwcGxpY2F0aW9uQXJncyAyCmJ0b2kKZnJhbWVfYnVyeSAyCmZyYW1lX2RpZyAxCmZyYW1lX2RpZyAyCmNhbGxzdWIgcXVldWV1cGRhdGVmZWVzXzExCmZyYW1lX2J1cnkgMApieXRlIDB4MTUxZjdjNzUKZnJhbWVfZGlnIDAKaXRvYgpjb25jYXQKbG9nCnJldHN1YgoKLy8gcmVzZXRfdXBkYXRlX2ZlZXNfY2FzdGVyCnJlc2V0dXBkYXRlZmVlc2Nhc3Rlcl81NDoKcHJvdG8gMCAwCmNhbGxzdWIgcmVzZXR1cGRhdGVmZWVzXzEyCnJldHN1YgoKLy8gY29uZmlndXJlX2Nhc3Rlcgpjb25maWd1cmVjYXN0ZXJfNTU6CnByb3RvIDAgMAppbnQgMApieXRlICIiCmR1cAppbnQgMApkdXAKYnl0ZSAiIgpkdXBuIDIKaW50IDAKZHVwbiA3CmJ5dGUgIiIKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQpidG9pCmZyYW1lX2J1cnkgMAp0eG5hIEFwcGxpY2F0aW9uQXJncyAyCmZyYW1lX2J1cnkgMQp0eG5hIEFwcGxpY2F0aW9uQXJncyAzCmZyYW1lX2J1cnkgMgp0eG5hIEFwcGxpY2F0aW9uQXJncyA0CmJ0b2kKZnJhbWVfYnVyeSAzCnR4bmEgQXBwbGljYXRpb25BcmdzIDUKYnRvaQpmcmFtZV9idXJ5IDQKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNgpmcmFtZV9idXJ5IDUKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNwpmcmFtZV9idXJ5IDYKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgOApmcmFtZV9idXJ5IDcKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgOQppbnQgMAppbnQgOAoqCmdldGJpdApmcmFtZV9idXJ5IDgKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTAKYnRvaQpmcmFtZV9idXJ5IDkKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTEKYnRvaQpmcmFtZV9idXJ5IDEwCnR4bmEgQXBwbGljYXRpb25BcmdzIDEyCmJ0b2kKZnJhbWVfYnVyeSAxMQp0eG5hIEFwcGxpY2F0aW9uQXJncyAxMwpidG9pCmZyYW1lX2J1cnkgMTIKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTQKYnRvaQpmcmFtZV9idXJ5IDEzCnR4bmEgQXBwbGljYXRpb25BcmdzIDE1CmZyYW1lX2J1cnkgMTYKZnJhbWVfZGlnIDE2CmludCAwCmV4dHJhY3RfdWludDY0CmZyYW1lX2J1cnkgMTQKZnJhbWVfZGlnIDE2CmludCA4CmV4dHJhY3RfdWludDY0CmZyYW1lX2J1cnkgMTUKZnJhbWVfZGlnIDAKZnJhbWVfZGlnIDEKZnJhbWVfZGlnIDIKZnJhbWVfZGlnIDMKZnJhbWVfZGlnIDQKZnJhbWVfZGlnIDUKZnJhbWVfZGlnIDYKZnJhbWVfZGlnIDcKZnJhbWVfZGlnIDgKZnJhbWVfZGlnIDkKZnJhbWVfZGlnIDEwCmZyYW1lX2RpZyAxMQpmcmFtZV9kaWcgMTIKZnJhbWVfZGlnIDEzCmZyYW1lX2RpZyAxNApmcmFtZV9kaWcgMTUKY2FsbHN1YiBjb25maWd1cmVfMTgKcmV0c3ViCgovLyBjb25maWd1cmUyX2Nhc3Rlcgpjb25maWd1cmUyY2FzdGVyXzU2Ogpwcm90byAwIDAKYnl0ZSAiIgpkdXBuIDIKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQpmcmFtZV9idXJ5IDAKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgpmcmFtZV9idXJ5IDEKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwpmcmFtZV9idXJ5IDIKZnJhbWVfZGlnIDAKZnJhbWVfZGlnIDEKZnJhbWVfZGlnIDIKY2FsbHN1YiBjb25maWd1cmUyXzE5CnJldHN1YgoKLy8gY2hhbmdlX2FkbWluXzFfY2FzdGVyCmNoYW5nZWFkbWluMWNhc3Rlcl81NzoKcHJvdG8gMCAwCmJ5dGUgIiIKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQpmcmFtZV9idXJ5IDAKZnJhbWVfZGlnIDAKY2FsbHN1YiBjaGFuZ2VhZG1pbjFfMjAKcmV0c3ViCgovLyBjaGFuZ2VfYWRtaW5fMl9jYXN0ZXIKY2hhbmdlYWRtaW4yY2FzdGVyXzU4Ogpwcm90byAwIDAKY2FsbHN1YiBjaGFuZ2VhZG1pbjJfMjEKcmV0c3ViCgovLyBjaGFuZ2Vfbm9kZXJ1bm5lcl9jYXN0ZXIKY2hhbmdlbm9kZXJ1bm5lcmNhc3Rlcl81OToKcHJvdG8gMCAwCmJ5dGUgIiIKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQpmcmFtZV9idXJ5IDAKZnJhbWVfZGlnIDAKY2FsbHN1YiBjaGFuZ2Vub2RlcnVubmVyXzIyCnJldHN1YgoKLy8gY2hhbmdlX2ZlZWFkZHJfY2FzdGVyCmNoYW5nZWZlZWFkZHJjYXN0ZXJfNjA6CnByb3RvIDAgMApieXRlICIiCnR4bmEgQXBwbGljYXRpb25BcmdzIDEKZnJhbWVfYnVyeSAwCmZyYW1lX2RpZyAwCmNhbGxzdWIgY2hhbmdlZmVlYWRkcl8yMwpyZXRzdWIKCi8vIHVwZGF0ZV9tYXhfYmFsYW5jZV9jYXN0ZXIKdXBkYXRlbWF4YmFsYW5jZWNhc3Rlcl82MToKcHJvdG8gMCAwCmludCAwCnR4bmEgQXBwbGljYXRpb25BcmdzIDEKYnRvaQpmcmFtZV9idXJ5IDAKZnJhbWVfZGlnIDAKY2FsbHN1YiB1cGRhdGVtYXhiYWxhbmNlXzI0CnJldHN1YgoKLy8gd2l0aGRyYXdfZHNfc3VycGx1c19jYXN0ZXIKd2l0aGRyYXdkc3N1cnBsdXNjYXN0ZXJfNjI6CnByb3RvIDAgMApjYWxsc3ViIHdpdGhkcmF3ZHNzdXJwbHVzXzI1CnJldHN1YgoKLy8gdmVyaWZ5X25mZG9tYWluc19jYXN0ZXIKdmVyaWZ5bmZkb21haW5zY2FzdGVyXzYzOgpwcm90byAwIDAKaW50IDAKZHVwCmJ5dGUgIiIKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQpidG9pCmZyYW1lX2J1cnkgMAp0eG5hIEFwcGxpY2F0aW9uQXJncyAyCmJ0b2kKZnJhbWVfYnVyeSAxCnR4bmEgQXBwbGljYXRpb25BcmdzIDMKZnJhbWVfYnVyeSAyCmZyYW1lX2RpZyAwCmZyYW1lX2RpZyAxCmZyYW1lX2RpZyAyCmNhbGxzdWIgdmVyaWZ5bmZkb21haW5zXzI2CnJldHN1YgoKLy8gd2l0aGRyYXdfbm9kZV9ydW5uZXJfZmVlc19jYXN0ZXIKd2l0aGRyYXdub2RlcnVubmVyZmVlc2Nhc3Rlcl82NDoKcHJvdG8gMCAwCmludCAwCnR4bmEgQXBwbGljYXRpb25BcmdzIDEKYnRvaQpmcmFtZV9idXJ5IDAKZnJhbWVfZGlnIDAKY2FsbHN1YiB3aXRoZHJhd25vZGVydW5uZXJmZWVzXzI3CnJldHN1YgoKLy8gd2l0aGRyYXdfcGxhdGZvcm1fZmVlc19jYXN0ZXIKd2l0aGRyYXdwbGF0Zm9ybWZlZXNjYXN0ZXJfNjU6CnByb3RvIDAgMAppbnQgMAp0eG5hIEFwcGxpY2F0aW9uQXJncyAxCmJ0b2kKZnJhbWVfYnVyeSAwCmZyYW1lX2RpZyAwCmNhbGxzdWIgd2l0aGRyYXdwbGF0Zm9ybWZlZXNfMjgKcmV0c3ViCgovLyBrZXlyZWdfb25saW5lX2Nhc3RlcgprZXlyZWdvbmxpbmVjYXN0ZXJfNjY6CnByb3RvIDAgMApieXRlICIiCmR1cG4gMgppbnQgMApkdXBuIDMKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQpmcmFtZV9idXJ5IDAKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgpmcmFtZV9idXJ5IDEKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwpmcmFtZV9idXJ5IDIKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNApidG9pCmZyYW1lX2J1cnkgMwp0eG5hIEFwcGxpY2F0aW9uQXJncyA1CmJ0b2kKZnJhbWVfYnVyeSA0CnR4bmEgQXBwbGljYXRpb25BcmdzIDYKYnRvaQpmcmFtZV9idXJ5IDUKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNwpidG9pCmZyYW1lX2J1cnkgNgpmcmFtZV9kaWcgMApmcmFtZV9kaWcgMQpmcmFtZV9kaWcgMgpmcmFtZV9kaWcgMwpmcmFtZV9kaWcgNApmcmFtZV9kaWcgNQpmcmFtZV9kaWcgNgpjYWxsc3ViIGtleXJlZ29ubGluZV8zMgpyZXRzdWIKCi8vIGtleXJlZ19vZmZsaW5lX2Nhc3RlcgprZXlyZWdvZmZsaW5lY2FzdGVyXzY3Ogpwcm90byAwIDAKY2FsbHN1YiBrZXlyZWdvZmZsaW5lXzMzCnJldHN1YgoKLy8gcHJvdGVzdF9zdGFrZV9jYXN0ZXIKcHJvdGVzdHN0YWtlY2FzdGVyXzY4Ogpwcm90byAwIDAKY2FsbHN1YiBwcm90ZXN0c3Rha2VfMzUKcmV0c3ViCgovLyB1bnByb3Rlc3Rfc3Rha2VfY2FzdGVyCnVucHJvdGVzdHN0YWtlY2FzdGVyXzY5Ogpwcm90byAwIDAKY2FsbHN1YiB1bnByb3Rlc3RzdGFrZV8zNgpyZXRzdWIKCi8vIGFkbWluX3VucHJvdGVzdF9zdGFrZV9jYXN0ZXIKYWRtaW51bnByb3Rlc3RzdGFrZWNhc3Rlcl83MDoKcHJvdG8gMCAwCmJ5dGUgIiIKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQpmcmFtZV9idXJ5IDAKZnJhbWVfZGlnIDAKY2FsbHN1YiBhZG1pbnVucHJvdGVzdHN0YWtlXzM3CnJldHN1YgoKLy8gZGlzc29sdmVfcHJvdGVzdGluZ19zdGFrZV9jYXN0ZXIKZGlzc29sdmVwcm90ZXN0aW5nc3Rha2VjYXN0ZXJfNzE6CnByb3RvIDAgMApieXRlICIiCnR4bmEgQXBwbGljYXRpb25BcmdzIDEKZnJhbWVfYnVyeSAwCmZyYW1lX2RpZyAwCmNhbGxzdWIgZGlzc29sdmVwcm90ZXN0aW5nc3Rha2VfMzgKcmV0c3ViCgovLyBxdWV1ZV91cGdyYWRlX2Nhc3RlcgpxdWV1ZXVwZ3JhZGVjYXN0ZXJfNzI6CnByb3RvIDAgMApieXRlICIiCnR4bmEgQXBwbGljYXRpb25BcmdzIDEKZnJhbWVfYnVyeSAwCmZyYW1lX2RpZyAwCmNhbGxzdWIgcXVldWV1cGdyYWRlXzQzCnJldHN1YgoKLy8gcmVzZXRfdXBncmFkZV9jYXN0ZXIKcmVzZXR1cGdyYWRlY2FzdGVyXzczOgpwcm90byAwIDAKY2FsbHN1YiByZXNldHVwZ3JhZGVfNDQKcmV0c3ViCgovLyBtaW50X2Nhc3RlcgptaW50Y2FzdGVyXzc0Ogpwcm90byAwIDAKY2FsbHN1YiBtaW50XzQ1CnJldHN1YgoKLy8gcmVkZWVtX2Nhc3RlcgpyZWRlZW1jYXN0ZXJfNzU6CnByb3RvIDAgMApjYWxsc3ViIHJlZGVlbV80NgpyZXRzdWIKCi8vIGdldF9yYXRlX2Nhc3RlcgpnZXRyYXRlY2FzdGVyXzc2Ogpwcm90byAwIDAKaW50IDAKY2FsbHN1YiBnZXRyYXRlXzQ3CmZyYW1lX2J1cnkgMApieXRlIDB4MTUxZjdjNzUKZnJhbWVfZGlnIDAKaXRvYgpjb25jYXQKbG9nCnJldHN1YgoKLy8gZ2V0X2NvbnRyYWN0X2xpc3RpbmdfY2FzdGVyCmdldGNvbnRyYWN0bGlzdGluZ2Nhc3Rlcl83NzoKcHJvdG8gMCAwCmJ5dGUgIiIKZHVwCnR4bmEgQXBwbGljYXRpb25BcmdzIDEKZnJhbWVfYnVyeSAxCmZyYW1lX2RpZyAxCmNhbGxzdWIgZ2V0Y29udHJhY3RsaXN0aW5nXzQ4CmZyYW1lX2J1cnkgMApieXRlIDB4MTUxZjdjNzUKZnJhbWVfZGlnIDAKY29uY2F0CmxvZwpyZXRzdWIKCi8vIGdldF9yYXRlX2FuZF9iYWxhbmNlc19jYXN0ZXIKZ2V0cmF0ZWFuZGJhbGFuY2VzY2FzdGVyXzc4Ogpwcm90byAwIDAKYnl0ZSAiIgpjYWxsc3ViIGdldHJhdGVhbmRiYWxhbmNlc180OQpmcmFtZV9idXJ5IDAKYnl0ZSAweDE1MWY3Yzc1CmZyYW1lX2RpZyAwCmNvbmNhdApsb2cKcmV0c3ViCgovLyBnZXRfbmVlZF9zd2FwX2Nhc3RlcgpnZXRuZWVkc3dhcGNhc3Rlcl83OToKcHJvdG8gMCAwCmludCAwCmNhbGxzdWIgZ2V0bmVlZHN3YXBfNTAKZnJhbWVfYnVyeSAwCmJ5dGUgMHgxNTFmN2M3NQpieXRlIDB4MDAKaW50IDAKZnJhbWVfZGlnIDAKc2V0Yml0CmNvbmNhdApsb2cKcmV0c3ViCgovLyBzd2FwX29yX2ZhaWxfY2FzdGVyCnN3YXBvcmZhaWxjYXN0ZXJfODA6CnByb3RvIDAgMApjYWxsc3ViIHN3YXBvcmZhaWxfNTEKcmV0c3ViCgovLyBudWxsdW5fY2FzdGVyCm51bGx1bmNhc3Rlcl84MToKcHJvdG8gMCAwCmNhbGxzdWIgbnVsbHVuXzUyCnJldHN1Yg==",
    "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCmludCAwCnJldHVybg=="
  },
  "bareActions": {
    "create": [
      "NoOp"
    ],
    "call": []
  }
}