diff --git a/mina-tx/src/transactions.rs b/mina-tx/src/transactions.rs index d25adaf..a95039d 100644 --- a/mina-tx/src/transactions.rs +++ b/mina-tx/src/transactions.rs @@ -89,19 +89,26 @@ impl TransactionEnvelope { pub fn from_str_network(s: &str, network_id: NetworkIdEnvelope) -> Result { let s = s.trim(); - // Try parsing as ZkApp transaction first - if let Ok(zkapp) = serde_json::from_str::(s) { - return Ok(Self::new_zkapp(network_id.0, zkapp)); - } - - // Try parsing as Legacy transaction - if let Ok(legacy) = serde_json::from_str::(s) { - return Ok(Self::new_legacy(network_id.0, legacy)); - } + // Try parsing as ZkApp transaction first, then Legacy. + // IMPORTANT: Do NOT silently swallow parse errors here. If both fail, the caller + // needs to see the actual serde errors to diagnose the problem — not a generic + // "unknown transaction type" message that tells them nothing. + let zkapp_err = match serde_json::from_str::(s) { + Ok(zkapp) => return Ok(Self::new_zkapp(network_id.0, zkapp)), + Err(e) => e, + }; + + let legacy_err = match serde_json::from_str::(s) { + Ok(legacy) => return Ok(Self::new_legacy(network_id.0, legacy)), + Err(e) => e, + }; - // Neither worked, return an error Err(MinaTxError::UnknownTransactionType( - "Unable to parse transaction. Expected a valid legacy transaction or ZkApp transaction JSON.".to_string() + alloc::format!( + "Unable to parse transaction as ZkApp or Legacy.\n ZkApp parse error: {}\n Legacy parse error: {}", + zkapp_err, + legacy_err + ) )) } @@ -270,6 +277,89 @@ mod tests { assert_eq!(envelope.network_id(), NetworkId::Mainnet); } + /// Regression test: deploy-v0.0.4-unsigned.json fails to parse because ZkappUri and + /// TokenSymbol use derive(Serialize, Deserialize) on Vec, which expects a JSON + /// array of integers. But o1js serializes these as plain strings. + /// e.g. "zkappUri": "https://..." and "tokenSymbol": "MOCKnE" + #[cfg(not(feature = "mesa-hardfork"))] + #[test] + fn test_parse_deploy_v004_zkapp_uri_as_string() { + let json = include_str!("../tests/data/deploy-v0.0.4-unsigned.json"); + let result = TransactionEnvelope::from_str_network( + json, + NetworkIdEnvelope::from(NetworkId::Testnet), + ); + assert!( + result.is_ok(), + "Failed to parse deploy-v0.0.4-unsigned.json: {:?}", + result.unwrap_err() + ); + let envelope = result.unwrap(); + assert!(!envelope.is_legacy()); + } + + /// Minimal reproduction: zkappUri as a string should parse, not require a byte array + #[cfg(not(feature = "mesa-hardfork"))] + #[test] + fn test_zkapp_uri_string_field() { + let json = include_str!("../tests/data/deploy-contract.json"); + // First ensure the base parses fine (zkappUri: null) + let base_result = serde_json::from_str::(json); + assert!( + base_result.is_ok(), + "Base deploy-contract.json should parse" + ); + + // Now inject a string zkappUri value like o1js produces + let modified = json.replace( + "\"zkappUri\": null", + "\"zkappUri\": \"https://example.com\"", + ); + let result = serde_json::from_str::(&modified); + assert!( + result.is_ok(), + "ZkApp with string zkappUri should parse but got: {}", + result.unwrap_err() + ); + } + + /// ZkappUri with more than 32 characters should parse — the 32-char limit is wrong, + /// o1js and the Mina protocol don't enforce it. + #[cfg(not(feature = "mesa-hardfork"))] + #[test] + fn test_zkapp_uri_longer_than_32_chars() { + let json = include_str!("../tests/data/deploy-contract.json"); + let long_uri = "https://github.com/nori-zk/mock-nori-bridge"; // 45 chars + assert!(long_uri.len() > 32); + + let modified = json.replace( + "\"zkappUri\": null", + &alloc::format!("\"zkappUri\": \"{}\"", long_uri), + ); + let result = serde_json::from_str::(&modified); + assert!( + result.is_ok(), + "ZkApp with >32 char zkappUri should parse but got: {}", + result.unwrap_err() + ); + } + + /// Minimal reproduction: tokenSymbol as a string should parse, not require a byte array + #[cfg(not(feature = "mesa-hardfork"))] + #[test] + fn test_token_symbol_string_field() { + let json = include_str!("../tests/data/deploy-contract.json"); + + // Inject a string tokenSymbol value like o1js produces + let modified = json.replace("\"tokenSymbol\": null", "\"tokenSymbol\": \"MOCK\""); + let result = serde_json::from_str::(&modified); + assert!( + result.is_ok(), + "ZkApp with string tokenSymbol should parse but got: {}", + result.unwrap_err() + ); + } + #[test] fn test_from_str_network_invalid_json() { let result = TransactionEnvelope::from_str_network( diff --git a/mina-tx/src/transactions/zkapp_tx.rs b/mina-tx/src/transactions/zkapp_tx.rs index 6a8f520..abe75f8 100644 --- a/mina-tx/src/transactions/zkapp_tx.rs +++ b/mina-tx/src/transactions/zkapp_tx.rs @@ -469,9 +469,32 @@ impl AuthRequired { } } -#[derive(Clone, Debug, Serialize, Deserialize, Default, PartialEq, Eq)] +// NOTE: TokenSymbol is serialized by o1js as a JSON string (e.g. "MOCK"), NOT as a byte array. +// derive(Serialize, Deserialize) on Vec expects a JSON array like [77,79,67,75] which +// doesn't match what o1js produces. Custom serde handles the string <-> bytes conversion. +#[derive(Clone, Debug, Default, PartialEq, Eq)] pub struct TokenSymbol(pub Vec); +impl Serialize for TokenSymbol { + fn serialize(&self, serializer: S) -> Result + where + S: serde::Serializer, + { + let s = core::str::from_utf8(&self.0).map_err(serde::ser::Error::custom)?; + serializer.serialize_str(s) + } +} + +impl<'de> Deserialize<'de> for TokenSymbol { + fn deserialize(deserializer: D) -> Result + where + D: serde::Deserializer<'de>, + { + let s = String::deserialize(deserializer)?; + s.parse().map_err(serde::de::Error::custom) + } +} + impl TokenSymbol { pub fn to_bytes(&self, bytes: &mut [u8]) { if self.0.is_empty() { @@ -496,17 +519,38 @@ impl core::str::FromStr for TokenSymbol { // Default is derived for TokenSymbol -#[derive(Clone, Debug, Serialize, Deserialize, Default, PartialEq, Eq)] +// NOTE: Same issue as TokenSymbol — o1js serializes zkappUri as a plain JSON string +// (e.g. "https://github.com/..."), not a byte array. Custom serde required. +#[derive(Clone, Debug, Default, PartialEq, Eq)] pub struct ZkappUri(pub Vec); +impl Serialize for ZkappUri { + fn serialize(&self, serializer: S) -> Result + where + S: serde::Serializer, + { + let s = core::str::from_utf8(&self.0).map_err(serde::ser::Error::custom)?; + serializer.serialize_str(s) + } +} + +impl<'de> Deserialize<'de> for ZkappUri { + fn deserialize(deserializer: D) -> Result + where + D: serde::Deserializer<'de>, + { + let s = String::deserialize(deserializer)?; + s.parse().map_err(serde::de::Error::custom) + } +} + impl core::str::FromStr for ZkappUri { type Err = String; fn from_str(s: &str) -> Result { - if s.len() <= 32 { - Ok(Self(s.as_bytes().to_vec())) - } else { - Err("Zkapp URI must be at most 32 characters".to_string()) - } + // The previous 32-char limit was wrong — o1js doesn't enforce it and real deploy + // transactions routinely have longer URIs (e.g. GitHub URLs). The packing/hashing + // logic handles arbitrary-length URIs fine. + Ok(Self(s.as_bytes().to_vec())) } } diff --git a/mina-tx/tests/data/deploy-v0.0.4-unsigned.json b/mina-tx/tests/data/deploy-v0.0.4-unsigned.json new file mode 100644 index 0000000..a8100c2 --- /dev/null +++ b/mina-tx/tests/data/deploy-v0.0.4-unsigned.json @@ -0,0 +1 @@ +{"feePayer":{"body":{"publicKey":"B62qrpX8gianx6Yifq2r2F1UvX175917h5i2tgvsPwHz5KEcxnFpy8f","fee":"100000000","validUntil":null,"nonce":"0"},"authorization":"7mWxjLYgbJUkZNcGouvhVj5tJ8yu9hoexb9ntvPK8t5LHqzmrL6QJjjKtf5SgmxB4QWkDw7qoMMbbNGtHVpsbJHPyTy2EzRQ"},"accountUpdates":[{"body":{"publicKey":"B62qrpX8gianx6Yifq2r2F1UvX175917h5i2tgvsPwHz5KEcxnFpy8f","tokenId":"wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf","update":{"appState":[null,null,null,null,null,null,null,null],"delegate":null,"verificationKey":null,"permissions":null,"zkappUri":null,"tokenSymbol":null,"timing":null,"votingFor":null},"balanceChange":{"magnitude":"3000000000","sgn":"Negative"},"incrementNonce":false,"events":[],"actions":[],"callData":"0","callDepth":0,"preconditions":{"network":{"snarkedLedgerHash":null,"blockchainLength":null,"minWindowDensity":null,"totalCurrency":null,"globalSlotSinceGenesis":null,"stakingEpochData":{"ledger":{"hash":null,"totalCurrency":null},"seed":null,"startCheckpoint":null,"lockCheckpoint":null,"epochLength":null},"nextEpochData":{"ledger":{"hash":null,"totalCurrency":null},"seed":null,"startCheckpoint":null,"lockCheckpoint":null,"epochLength":null}},"account":{"balance":null,"nonce":null,"receiptChainHash":null,"delegate":null,"state":[null,null,null,null,null,null,null,null],"actionState":null,"provedState":null,"isNew":null},"validWhile":null},"useFullCommitment":true,"implicitAccountCreationFee":false,"mayUseToken":{"parentsOwnToken":false,"inheritFromParent":false},"authorizationKind":{"isSigned":true,"isProved":false,"verificationKeyHash":"3392518251768960475377392625298437850623664973002200885669375116181514017494"}},"authorization":{"proof":null,"signature":null}},{"body":{"publicKey":"B62qpNrriZPQFXpP8STSQB5ZWGZYtmtocFA2o4eNyfywGXgCPEKapya","tokenId":"wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf","update":{"appState":["4475388221226663692060610547284522291100509421044398301718376319312029792944","0","0","0","0","0","0","0"],"delegate":null,"verificationKey":{"data":"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","hash":"10833354212263389027599650981763278145007964749554529919477288951272577280911"},"permissions":{"editState":"Proof","access":"Proof","send":"Proof","receive":"None","setDelegate":"Signature","setPermissions":"Impossible","setVerificationKey":{"auth":"Either","txnVersion":"3"},"setZkappUri":"Signature","editActionState":"Proof","setTokenSymbol":"Signature","incrementNonce":"Signature","setVotingFor":"Signature","setTiming":"Signature"},"zkappUri":null,"tokenSymbol":null,"timing":null,"votingFor":null},"balanceChange":{"magnitude":"0","sgn":"Positive"},"incrementNonce":true,"events":[],"actions":[],"callData":"0","callDepth":0,"preconditions":{"network":{"snarkedLedgerHash":null,"blockchainLength":null,"minWindowDensity":null,"totalCurrency":null,"globalSlotSinceGenesis":null,"stakingEpochData":{"ledger":{"hash":null,"totalCurrency":null},"seed":null,"startCheckpoint":null,"lockCheckpoint":null,"epochLength":null},"nextEpochData":{"ledger":{"hash":null,"totalCurrency":null},"seed":null,"startCheckpoint":null,"lockCheckpoint":null,"epochLength":null}},"account":{"balance":null,"nonce":{"lower":"0","upper":"0"},"receiptChainHash":null,"delegate":null,"state":[null,null,null,null,null,null,null,null],"actionState":null,"provedState":false,"isNew":null},"validWhile":null},"useFullCommitment":true,"implicitAccountCreationFee":false,"mayUseToken":{"parentsOwnToken":false,"inheritFromParent":false},"authorizationKind":{"isSigned":true,"isProved":false,"verificationKeyHash":"3392518251768960475377392625298437850623664973002200885669375116181514017494"}},"authorization":{"proof":null,"signature":null}},{"body":{"publicKey":"B62qntaKodiAjVbLPT5H8SptyGZLSn3gtaoHkbRJTQtPmdkjh5wcB2S","tokenId":"wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf","update":{"appState":["0","0","0","1","0","0","0","0"],"delegate":null,"verificationKey":{"data":"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","hash":"23201557837946751436900003530150306698256090671102950512608863974580219475914"},"permissions":{"editState":"Proof","access":"Proof","send":"Proof","receive":"None","setDelegate":"Signature","setPermissions":"Impossible","setVerificationKey":{"auth":"Proof","txnVersion":"3"},"setZkappUri":"Signature","editActionState":"Proof","setTokenSymbol":"Signature","incrementNonce":"Signature","setVotingFor":"Signature","setTiming":"Signature"},"zkappUri":"https://github.com/nori-zk/mock-nori-bridge","tokenSymbol":"MOCKnE","timing":null,"votingFor":null},"balanceChange":{"magnitude":"0","sgn":"Positive"},"incrementNonce":true,"events":[],"actions":[],"callData":"0","callDepth":0,"preconditions":{"network":{"snarkedLedgerHash":null,"blockchainLength":null,"minWindowDensity":null,"totalCurrency":null,"globalSlotSinceGenesis":null,"stakingEpochData":{"ledger":{"hash":null,"totalCurrency":null},"seed":null,"startCheckpoint":null,"lockCheckpoint":null,"epochLength":null},"nextEpochData":{"ledger":{"hash":null,"totalCurrency":null},"seed":null,"startCheckpoint":null,"lockCheckpoint":null,"epochLength":null}},"account":{"balance":null,"nonce":{"lower":"0","upper":"0"},"receiptChainHash":null,"delegate":null,"state":[null,null,null,null,null,null,null,null],"actionState":null,"provedState":false,"isNew":true},"validWhile":null},"useFullCommitment":true,"implicitAccountCreationFee":false,"mayUseToken":{"parentsOwnToken":false,"inheritFromParent":false},"authorizationKind":{"isSigned":true,"isProved":false,"verificationKeyHash":"3392518251768960475377392625298437850623664973002200885669375116181514017494"}},"authorization":{"proof":null,"signature":null}},{"body":{"publicKey":"B62qntaKodiAjVbLPT5H8SptyGZLSn3gtaoHkbRJTQtPmdkjh5wcB2S","tokenId":"wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf","update":{"appState":["6","4475388221226663692060610547284522291100509421044398301718376319312029792944","0","0",null,null,null,null],"delegate":null,"verificationKey":null,"permissions":null,"zkappUri":null,"tokenSymbol":null,"timing":null,"votingFor":null},"balanceChange":{"magnitude":"0","sgn":"Positive"},"incrementNonce":false,"events":[],"actions":[],"callData":"11399476992132725793934827655386258979026087046078722372338668491545082533734","callDepth":0,"preconditions":{"network":{"snarkedLedgerHash":null,"blockchainLength":null,"minWindowDensity":null,"totalCurrency":null,"globalSlotSinceGenesis":null,"stakingEpochData":{"ledger":{"hash":null,"totalCurrency":null},"seed":null,"startCheckpoint":null,"lockCheckpoint":null,"epochLength":null},"nextEpochData":{"ledger":{"hash":null,"totalCurrency":null},"seed":null,"startCheckpoint":null,"lockCheckpoint":null,"epochLength":null}},"account":{"balance":null,"nonce":null,"receiptChainHash":null,"delegate":null,"state":[null,null,null,null,null,null,null,null],"actionState":null,"provedState":false,"isNew":null},"validWhile":null},"useFullCommitment":true,"implicitAccountCreationFee":false,"mayUseToken":{"parentsOwnToken":false,"inheritFromParent":false},"authorizationKind":{"isSigned":false,"isProved":true,"verificationKeyHash":"23201557837946751436900003530150306698256090671102950512608863974580219475914"}},"authorization":{"proof":"KChzdGF0ZW1lbnQoKHByb29mX3N0YXRlKChkZWZlcnJlZF92YWx1ZXMoKHBsb25rKChhbHBoYSgoaW5uZXIoMDJlYWZjYmE4MTcwNmVkNCA0ZGVhYTJiYjMzN2VlZWFiKSkpKShiZXRhKGVlZjUzNmY0MGRiZWFiYTAgZTlkNmMxZWZkZWRmM2YzMikpKGdhbW1hKGE1MGU1MzI2ZDJhYTA2OTUgOTQ2MGEzNDQwODhjYTk1NikpKHpldGEoKGlubmVyKGM5YWM1ZTZhZTFiMDEwN2EgNGQzYjRhMjRlMGE4OTQ1NSkpKSkoam9pbnRfY29tYmluZXIoKSkoZmVhdHVyZV9mbGFncygocmFuZ2VfY2hlY2swIGZhbHNlKShyYW5nZV9jaGVjazEgZmFsc2UpKGZvcmVpZ25fZmllbGRfYWRkIGZhbHNlKShmb3JlaWduX2ZpZWxkX211bCBmYWxzZSkoeG9yIGZhbHNlKShyb3QgZmFsc2UpKGxvb2t1cCBmYWxzZSkocnVudGltZV90YWJsZXMgZmFsc2UpKSkpKShidWxsZXRwcm9vZl9jaGFsbGVuZ2VzKCgocHJlY2hhbGxlbmdlKChpbm5lcig1NTYxMzFiN2VjZTEyYjZlIGE1MzNlYTJmZmMxZDU5ZjQpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcihmZjNiZGQxZGZhZWY0NGRjIDdkY2JmMzEzZTUwYTdkYWMpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig4ZDkxZWNiNzIzNWU0NDM0IDQ2M2U2YWEwNTg3NWZiNTUpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig1OTE5MjYwMDRiMTQ1MWNhIGYxZTQyNDEyZjA5Y2MyNTEpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig4NTIwYjI2Y2U5ZWM5NWYzIDJlYmY1MTBhZTk0YTFmNTMpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig0NzNhMjgwMDFiNDA5NjQzIDg3ZjA1YzMwMDFiMzA1NzYpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcihiODY5NmYwNWY5YTM1YzVmIDM5OTdiODI0NGUzNTFkNGYpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcigxM2Y3NzUzM2M3MGU3MDc5IDQ0ZjgwODA2ODU1NWM1ZGUpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig5YWM5YzIxMzVjNmM0NmU5IDgyNTlkZDNjODUyNzVmM2YpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcigxZTBlZTdiOGY5MDdmNjlhIGUyZmI0ZDJhNDg4ZDJhODMpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcihhYjMyYjBlOGM0MmQ3NzQ3IDI1NTYwZDk3NDc5ZWVmMWEpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig5N2Y3MWMwNjVjNzgxNWY2IGVmNDVmMDBlZTlkODNlMDApKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcihmNGY0NGZjM2IwOTlkNzE1IGZmYjg4YmFhODM1NDkwZmIpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcihiZmIyNTkzOGEwY2YxZjA5IDZlMTEzYTNkNGMyZWM0NDcpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig0NzVjZTNkMWE2YTMzZDc4IGVkNzI0ZTI2MmExMDhjYzQpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcihiMzYwODdjZmNkOGI0OGYzIDY4Y2MwMTVhMjA1ZTIxMmQpKSkpKSkpKGJyYW5jaF9kYXRhKChwcm9vZnNfdmVyaWZpZWQgTjApKGRvbWFpbl9sb2cyIlwwMTEiKSkpKSkoc3BvbmdlX2RpZ2VzdF9iZWZvcmVfZXZhbHVhdGlvbnMoMzkwZDkxZDZkNmY1ZDFmMyBhOTNjN2Y0Mjg3YTQ3NjQ0IGNmNDNkYjc5MDc5OTEyZmUgM2RlNDc0NjYzOWZmZWM0NCkpKG1lc3NhZ2VzX2Zvcl9uZXh0X3dyYXBfcHJvb2YoKGNoYWxsZW5nZV9wb2x5bm9taWFsX2NvbW1pdG1lbnQoMHgwMTBFQUQyOTBBOEY5NDA4OUE3MTI2RUYyQjg0NEQzOENGMDhDN0Q3MDBEOEFGRTQ3MUQwRkYwNkFDRTNBMkFDIDB4MTAxMUE3ODMzMEYzMkJGQjFCRkFFREM5Q0E0MzU0NDgwRTk2NkU1MTM0RUU5QjQzNUY0OEZBMjNCQzIyN0ZBOCkpKG9sZF9idWxsZXRwcm9vZl9jaGFsbGVuZ2VzKCgoKHByZWNoYWxsZW5nZSgoaW5uZXIoMzM4MmIzYzlhY2U2YmY2ZiA3OTk3NDM1OGY5NzYxODYzKSkpKSkoKHByZWNoYWxsZW5nZSgoaW5uZXIoZGQzYTJiMDZlOTg4ODc5NyBkZDdhZTY0MDI5NDRhMWM3KSkpKSkoKHByZWNoYWxsZW5nZSgoaW5uZXIoYzZlOGU1MzBmNDljOWZjYiAwN2RkYmI2NWNkYTA5Y2RkKSkpKSkoKHByZWNoYWxsZW5nZSgoaW5uZXIoNTMyYzU5YTI4NzY5MWExMyBhOTIxYmNiMDJhNjU2ZjdiKSkpKSkoKHByZWNoYWxsZW5nZSgoaW5uZXIoZTI5Yzc3YjE4ZjEwMDc4YiBmODVjNWYwMGRmNmIwY2VlKSkpKSkoKHByZWNoYWxsZW5nZSgoaW5uZXIoMWRiZGE3MmQwN2IwOWM4NyA0ZDFiOTdlMmU5NWYyNmEwKSkpKSkoKHByZWNoYWxsZW5nZSgoaW5uZXIoOWM3NTc0N2M1NjgwNWYxMSBhMWZlNjM2OWZhY2VmMWU4KSkpKSkoKHByZWNoYWxsZW5nZSgoaW5uZXIoNWMyYjhhZGZkYmU5NjA0ZCA1YThjNzE4Y2YyMTBmNzliKSkpKSkoKHByZWNoYWxsZW5nZSgoaW5uZXIoMjJjMGIzNWM1MWUwNmI0OCBhNjg4OGI3MzQwYTk2ZGVkKSkpKSkoKHByZWNoYWxsZW5nZSgoaW5uZXIoOTAwN2Q3YjU1ZTc2NjQ2ZSBjMWM2OGIzOWRiNGU4ZTEyKSkpKSkoKHByZWNoYWxsZW5nZSgoaW5uZXIoNDQ0NWUzNWUzNzNmMmJjOSA5ZDQwYzcxNWZjOGNjZGU1KSkpKSkoKHByZWNoYWxsZW5nZSgoaW5uZXIoNDI5ODgyODQ0YmJjYWE0ZSA5N2E5MjdkN2QwYWZiN2JjKSkpKSkoKHByZWNoYWxsZW5nZSgoaW5uZXIoOTljYTNkNWJmZmZkNmU3NyBlZmU2NmE1NTE1NWM0Mjk0KSkpKSkoKHByZWNoYWxsZW5nZSgoaW5uZXIoNGI3ZGIyNzEyMTk3OTk1NCA5NTFmYTJlMDYxOTNjODQwKSkpKSkoKHByZWNoYWxsZW5nZSgoaW5uZXIoMmNkMWNjYmViMjA3NDdiMyA1YmQxZGUzY2YyNjQwMjFkKSkpKSkpKCgocHJlY2hhbGxlbmdlKChpbm5lcigzMzgyYjNjOWFjZTZiZjZmIDc5OTc0MzU4Zjk3NjE4NjMpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcihkZDNhMmIwNmU5ODg4Nzk3IGRkN2FlNjQwMjk0NGExYzcpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcihjNmU4ZTUzMGY0OWM5ZmNiIDA3ZGRiYjY1Y2RhMDljZGQpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig1MzJjNTlhMjg3NjkxYTEzIGE5MjFiY2IwMmE2NTZmN2IpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcihlMjljNzdiMThmMTAwNzhiIGY4NWM1ZjAwZGY2YjBjZWUpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcigxZGJkYTcyZDA3YjA5Yzg3IDRkMWI5N2UyZTk1ZjI2YTApKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig5Yzc1NzQ3YzU2ODA1ZjExIGExZmU2MzY5ZmFjZWYxZTgpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig1YzJiOGFkZmRiZTk2MDRkIDVhOGM3MThjZjIxMGY3OWIpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcigyMmMwYjM1YzUxZTA2YjQ4IGE2ODg4YjczNDBhOTZkZWQpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig5MDA3ZDdiNTVlNzY2NDZlIGMxYzY4YjM5ZGI0ZThlMTIpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig0NDQ1ZTM1ZTM3M2YyYmM5IDlkNDBjNzE1ZmM4Y2NkZTUpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig0Mjk4ODI4NDRiYmNhYTRlIDk3YTkyN2Q3ZDBhZmI3YmMpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig5OWNhM2Q1YmZmZmQ2ZTc3IGVmZTY2YTU1MTU1YzQyOTQpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig0YjdkYjI3MTIxOTc5OTU0IDk1MWZhMmUwNjE5M2M4NDApKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcigyY2QxY2NiZWIyMDc0N2IzIDViZDFkZTNjZjI2NDAyMWQpKSkpKSkpKSkpKSkobWVzc2FnZXNfZm9yX25leHRfc3RlcF9wcm9vZigoYXBwX3N0YXRlKCkpKGNoYWxsZW5nZV9wb2x5bm9taWFsX2NvbW1pdG1lbnRzKCkpKG9sZF9idWxsZXRwcm9vZl9jaGFsbGVuZ2VzKCkpKSkpKShwcmV2X2V2YWxzKChldmFscygocHVibGljX2lucHV0KDB4MzYyMkQyNzUyODgyRkEzMzAzRjYwNUNFREY2QzE0NkRFNThDODg1QzU2RDdENjkzQjIwNjA0MzczMzNDQ0E0NyAweDFDMTY2QjQ4REZDQzQyNDQyQzM5NTUxQTcxMEExN0Y1RjhEQjFCNEM1MTEyQjc0Njg2RTg3NzE2NzJFRUU5RTMpKShldmFscygodygoKDB4MEU4MEYxQzYwOTQ1RUUxNTg5MjFEMkQ5N0NCMzdENjBDMkJFRDE0NTgyQjI0RDFENDM5REJDOTMwMjdGMTMxQSkoMHgxNTM3MTdENjkxMzAzOEYwOUIwRUJDREM5NDQ0NjU3RjJBNDkxNzRERDQ5MUEzQjc2MDc4RERFMzUzMkFENUE0KSkoKDB4M0Q4MTVBNkRDRDA4RTAxQjFCQ0UzMkE0QUVBMzA0Q0I5RjNGOTEyMEFGNTdGOTY4NzkyQjI0NkU1Q0RDOTUwQSkoMHgzQTQwN0IwMDFGRDcxMDgyNTY5MDFDMzRCMTg5MzU0MTlENjc2OTIzQkFGNkE5N0JCOEJCNkQ0Mzk1Mzg3MkEyKSkoKDB4MDk0M0I1QUIzQTVBRDU3MDU3QUNGMTdGMDE1QTQ4QUU2RENGQjcwRjVBREZGMDc1QzAyNjFFQTAxNjU0ODg4NikoMHgyMjcwQUFEQzY4QTc0ODE5QjMzNzgxQTRFMDY3RDYyQ0I0ODhCRTUwMzRDMTM4OTE1MEQ3MEE0Q0YwM0JENUJCKSkoKDB4MzIwOEQzMEI1QzZFOTUzQUFBNTVDMjQwMzc4QjU4OERBMUI0Rjg2NjE0MTU5Q0E5REY5REFBNzMxNkFEODU5RSkoMHgyODY4MDNDMTZCRUQ4MjBDRjMzRTVFNDBDQzVEOEUzRDYwNUU4ODYxRUE4RTU0QzM4ODc4RTEwOTMwM0I4RDRDKSkoKDB4MEY3MjI1QkU5REE4RjMxMzM1MTc2OEMyNTk2QzdBMTQ5MkU5REZCQjQxMTFBQUZDNTcyQTZERTQ3NUFDMTVGMykoMHgwQzdEM0M2MEJGMTczMzdGQzVBRjM1OEY4MDNDRkRCMkQwNUM3MzBBN0JEN0YyMTc2QzBBNDQ3REE1ODVDREQxKSkoKDB4MEE4MTUyOUQ0RkU2Q0Y5MDlEN0YzMzhEQjg4OTdBODgzMTk2N0VGNDdFQkJCODUxRDVEQzM0RDJBNjM5RjAwRikoMHgwOEYwQkVEQTg1RTU1NjlBNzMxRDhCMUI3OTc3Mzc5NThFMkMzOENFMjgzMUM4NUY0NTZEQ0E5QzQ4RTNENEY5KSkoKDB4MTkwOEEyM0FFNkQwNDg3QkU3RjZFMzk5RjQyQkM3MDRGNzZFRUMxQ0ZENDFEQUUwMjI3MkQ1MTEwNjY1NkQ2OSkoMHgyMkZDMjVFODNBNDM2RTgwQkFEMjJCQTgzMjQyRkVEQjdCQTMwRjJEQkRFMkI3NDMzRkE3QTQwNzA2ODhGNzAyKSkoKDB4MkJGRjI2M0I5MUQ1NTA1NDA5QzE5NzQ4MTMzNTlCNjY2RTQxMUJDOENGNEEzQzAxNEFGNEIyRjdBMjJGQkE0MCkoMHgzMzgwNzYxNjdCOTY0REI0NjY1OTU4N0FBRDFGNzUzOTVEOEY5RERFNzc4QUY2M0RGMzQzRDdFNkNFNjk2NzIwKSkoKDB4MEM1OTgxMTZDNjQwMzQ2NDdGREZCNkFCMEIyRUVGQTBGNTkyMTNFODNBMDg2QkZGREU5MjBCRkRFNzYyOTIyRCkoMHgyN0IxNDE5MzkwNDNGRjZGMjMxRTBFNEE2MDE2NDY5REU5RTlBMEJCNDM0NjYxOTIzODk4NkEwOEIzOEVENDc5KSkoKDB4MDFCMUU3RDUyRTcxQTJDMkNFQ0JDRkYxRTQ2Q0VEODI5NDI1RTM0NzJFMDQxRDFCRUI1NjhDQUM0N0VEQzg1OSkoMHgxRTQwOEFFN0NBMEJGQ0VGOTkzQzcwNjFFNkM5QzVDMzI2NDk1NDM0MDZGRjg2ODdBOEQ5NkYzMjc3MjRGMzE5KSkoKDB4M0I1NjJCQjlEMkE0NEZBMTIxNEI5MDA5MzQ1QjE3OUE1RjQyNUVFQkRCQkZBODQwQkE2N0RDNkVGRkVDRkYxMikoMHgzNUNGQUIzMjBBNDVCODg4RUVBNEEzMUFEOUM5MEZGRDM1QTA1NkY2QTkwNUE0NTZCMjk3Q0ZCQzQwOUE4MDZCKSkoKDB4MEVCNjdEMTE0MDg2MUUwQjk0OUZDN0UzMUVDRkRERDc2MDM1RDRBQjVEN0Y5MzcyOTNBODQyODc1N0FFRUZCQykoMHgxN0U3Q0U0MjIzRDQzQUJDNDRFM0ZGRjU0RTQ0RjMyN0Q2MzEwNjU0NzJEMjA0RTA4NjIwRDIwMTU5MjBFNUVCKSkoKDB4MEUzQTkxODEzNjlGMTk0NUI0RDVGNkNFQzNCMEFGMjE3Q0JDMDVEMTNFNjhBRjM4MTJBQzlDRTA2NUI1NTA5QykoMHgzMDk4MTBGQTIxMjgyQjlFMUJCNDY2MEU2OTdERUM1QjZBNDYyRjNERkY4MUJCNTQ0QzYwRTIxQURCMzdDMDQ1KSkoKDB4MUJERTU1OURBRUQ5NjMzRjI1NkFGRDA2MkQ5RUI2OTA0NjI5RTIzRjFEMEJFMDMxRDJBMDM0QUJFQzg5MTAyOCkoMHgwRTY5NTFBQTY0ODVGRkY0QjUzMEM0NTcyM0E5NjNCMUEzN0E0QzA3RjI2RTQ2MTg3NUNCMTExRDc2NThFRDZCKSkoKDB4MjQ1RDQ2MDBENDhEQ0IzQ0Q3QjE1MEM4RDBCODRBOEIwNTUwMjY1MTc4RDE1MjUzOUQxNEREODkzQzhGNjIwNikoMHgyRDZDQ0RENDFBOUUxNzgzMENGRTlDQTUyNTRBNDY0NEI1NkM0QTM2OEQwQkI3NEM4QzVEQjZDMUQ3RTk3Nzc4KSkpKShjb2VmZmljaWVudHMoKCgweDBFRUM2QzQ5MjI4RjFDMTIyODc0QTQwRTg4RDJDQjBDNDFFMjE0OEE5MzZDRUI2RjhEMURBNDRGMzA3RURDODIpKDB4MjlGNjVCRThCQTFFMUVGMzFDMjIxQjVDQjc4M0M0MUVBMDQ4NDM2MDBFMUU3QTQwNDA5QjJGOTJFNTdENjVGMCkpKCgweDJBQUMzNEZCRDI0RTc3NzYwQ0JGNzJBNDhCQjNCQ0M3N0E0MjAzQTQxQkQ4MkZFNkRCRjgyNjkzOEZDRDY1NjYpKDB4Mzk4QzFBMzFENEIxRDA4NkE4RTdGMDJBODIyNjhCQkI5MkZFRThDNzJDOEM1QTlGNTU4NTVCN0VCRUQ2NzI0RCkpKCgweDEyQUZBRjU3NkRENzZFN0U2NzRCODBENkYwREVEMjA2MUZBQzRENjk2QUFEMzhGNkY1QUJCOTA3NDU1OTAzODkpKDB4MTUzQThDQzU3ODg5QzhBOTM2MDk5RDE3MEI3NDRCNTc3QzQ4OUVFNjg2M0UxRDBBODAxMDNBMTkyMDgxRTUyRikpKCgweDExMTVGQzdBMTk2OTlFQzczNTk2RjJCMTU2QjY0N0Q5OERCMzA5OUQxOUUxNjg2NEUyNDhBNjQ1Q0NGMDUwNTcpKDB4MTA5M0FFN0REODRGQjQzNURFRkZBOTA1ODM0NzA3OTgzNzQ2QzlFNDAwNjdDOTNCMTk1RkY4N0NFMzNCQTJEQikpKCgweDNDQzE1QUZGMURCQ0UzMDNERTM2NjM5MTE5NDM1REFBOTBERjM2NDMwRDY2MkQzRDZDRjVENkFGMDIwMkVFREUpKDB4MzZFM0UzNjE5REJEMUZFNDBDOUMyM0UwOUI4QzEyRkQ2NjYyQjc0RTc3MDc4M0JCQUNEQ0Y4NUVGODg2NDlENykpKCgweDNEQ0U3QzMwOTZCMTVDMDc5QjEwMDNBOENFN0I3RDVBNzRCNjMwRjc4RjRDRkNEMTQyNEU2ODA5QzM3REJCNDIpKDB4MjRFQ0YwMzVGOThFRTIxRTZBRTU0QzEwM0U5MEI1OTI3NTVDOEY3RTM5MTc2MjBCRTEwOUZDQUM0Mzc2MzRERCkpKCgweDNFOEQ5OTkzMzlGMUU2QzkyOTIzMEJGNDY1NzIxNDk3OTY5OTM1RDcwMjVDNUY5NTlGNjA0NkJFOTJDRTc5NjEpKDB4MUMyOTM5QTNBRjc5OTE3NTM1MTYzODlDRjVCQzU1OUQ5Q0MzNUIwN0IxMTAyOUYxRDlCNjZCM0I0QUVFMEZCMikpKCgweDFFRjNFRUQyNzFBREJDNzIyRTc4OUNBODgxNDU0MTc5QzQyQTYxNEEzNjUxNkVERjcwRDJDNDU1NTdFMEQ0RjQpKDB4MzA3OEQzMkM2QkQ3NjU4RjQ2OTk1NzI2OTM0RTIyNjQzMjIzNEYyQUU1OTA4RDAwNTg2NkNCMjk3RTY5RkFBNykpKCgweDMyRTExMDFCNzA4ODRENjBDMEVFQkI4Rjc3OEI4OTdDMTI2OEJBMEVDQzQwMUQxMDJBNzlCQThFNEFCOTU2NzkpKDB4MDVBRUJGODBFMjg1QzZGNUMzRjc1Mjk5MkEzODZFMUFCMDlDRDUxQkE3QkZEMkQ4QjNFNzRGQTM2NEI1MThBNikpKCgweDJCRTQyRjI1NzM1MUU0OTk2RkU0MDkyMDU3OUY1RTU0OTI1M0NCMEU5N0FBRUExMTBDMDhBNDYzRUM0MDRCRkQpKDB4MDFGQzNBOTUzMDU5NTU4RTYyQzZGMzRGNkI1QzNCMjFFMTA1QkUyMjhFQjUxRDlFNzIwM0JBMkM1RTlGMTI0MCkpKCgweDFDOEM2NTgzMzkxRTZGNDQ2NkM1REM2RUIyRUNCNzJGODg2RDhBNzM0REE5RTZFM0NFMjEwNUY4QUM4QkRDOUEpKDB4MzczRkVDNEM4NkZCMTc3ODZFMzdGNEFBQzE0QTYyNDczODUyRDFCMDkxRjVCQ0VGMTEyQzMwMjk4NTMzRURFOSkpKCgweDEwQ0VBMDVDOENGRTFEN0FGQkRBQUIyM0E5NkE5MzBDQzZGRDIzNjJDM0ZEQzVDOUI4MEVDQzc2OUI2NjVEQ0MpKDB4MkJBQTNFRTVCQzRFRDQwREFFQUI5NEIxRThBNUM5QkRDNEQzQUVCQzcyREU4MUJBODI4N0M1NzFGODNFNDk3RSkpKCgweDBCN0VBOUZDQkNFOTFDRUU1OEM0QzJBRTdBRTI0OUE1MjY3MzRENDMwRkI1MTQzOThERTNGOTE0REY2MjJDMTIpKDB4M0M0QThBRUFDOUY4NzlDREFBMkUyNjBEN0VDQjEyRkQxRTAzNzNFQzUxMkNFRjk3MkE0NzIxOTU4QUE0ODQzNykpKCgweDAwQjVFREZGOEU4MzRCQzY1QzYxNjE0RjdDODJCOTg3MEE3REZDMUVCRDM3MjI2MzRCQUJBQTdBREE5NUE2QjIpKDB4MDg1Qjc5OTRFQ0U3NDZGQTAyREI2RTAyNzA4MkM2MjUzQUE5NTBGQ0VDMTQxOUYyRDk0NDgxNENBNDlEMTdEMykpKCgweDI0MTRCNzU5RDlEODg4NTIyOUVERjY1QUE0MjU3RjUwNjk3RTYxNDBDQUI5MjIxRTg1MTE5OEMzMjg5MEQzRjQpKDB4M0I5NzRGQzRCQzM3NERCRTJBOThCOTA1OTA1MDJERkJFQkE3MzNDQTYzRUI3MEYzMzc2OEFBREVGODVEMUE4NCkpKSkoeigoMHgwNjU0MzQ1NEVBQjlBNkUxMTFCMTJGOUVCNTFGMTA4RDU1MTk0QUFDMjFBNEQxRDEyMTE4RjdBQzhERDNERUJFKSgweDIwNTZDNDNGNDVFMTFFMUE1QzY1MkMyNTM3NjFENjFGQUJBMzNEMTA1MEFDN0U3NEJBREI4OUJCOUVBQjU0NjUpKSkocygoKDB4MzM3RUY3RjM2NEI3MjU4MzE3OTg1MjhENThGMjhFMkZFNDczMTRBOEMxNjRBNjkxN0M3N0YzQUJENUZFNDFDMikoMHgwMDI0OUE5OEQ1RUFDN0MzNzI2NDQxNDY3OUZEMEQwREMzQUEyMUI4NkM4OTdDQzJGNjU5QjAzOTczMjE2MEEyKSkoKDB4MkRDQTI3NEM1NkRERUU1NkU4RTE5QzA5NkIwNkM4N0NCRkJFMzY1QzI4MTBBQzE3QTAxMEM5MzAzNkMzRjlCMSkoMHgwMUJCMTBENkZGQjQ4RjBBOTA4RDJEQTk3ODgyRTNFQUQ0Nzc5MEE3OEM1MTVGRjY1NjUwMEU1MzY0Q0Y3RUFFKSkoKDB4MDkwMEU4MTkyMTlFRTgwN0U5N0Q3OTg2RkNEMEVDRDAyRTlFNDdDM0Q0RTJERTIyMTVGMDBBNEM3RTVDNDBDNikoMHgyODkzMDQyRUJBRjRBNzZERDdFMjY0NzM4N0U3NTc4MEVFMEU5QkRCMkU0MzI3OTM3NTYzQzYyNTBGNUU2MUQyKSkoKDB4MjA3NkIzODU0RjM0MTdEQUFFQUQ3RTg1NjMyMThENEMyQ0EyQTYwMzhBMkYyMjBFNTJENkJCNkU0MjA0RTdGQykoMHgyOEJDQzE0RjI2RTA3MjEzQjQ1NDVGRDkyMjEzNjlDQTQwRTNFNjRGQzhGRThGQTBCQUI3RjA3QjgwN0YwNzQ2KSkoKDB4MkUzNjk0OUU3NjMzOEVBNUZEOUNCQjk0OTU0MTgzOTRCMzYwRjJCNkNBQTEzNkVGMzlGNTNDRDZENUIyQzFCNCkoMHgxQTQ2RTZBODQwQjhBRDQ3RTZDM0Y4ODRCQTI1QjAzRTJCQTY4RTE0MUNFM0FGRjZGRDg0QjA2NzgzMkU0NzhFKSkoKDB4MkQ4OUMzQ0VGRjZGMTBDMTkxMjE2QkU0N0Q2MDVBOERERTI4QjM1Mzk2MERENzdBMEYzNDg0RDlFM0JFNTFBMCkoMHgzNjI3QTI2MTEzNjUyM0Q1QkQwMkNFNkIxREQ1MzNFQzM2N0ZGRjY4NUExRTBCMTA2Mjk5OUM0QzdBQThCMzlFKSkpKShnZW5lcmljX3NlbGVjdG9yKCgweDE5QTU1RUIyNDg0MzlDNjY0Q0U0Njc3QjAwQkI2RkQ4REQ3QUFFQjdEM0RFQzczMDA0Mjc4ODM5QzQzRUVFNkEpKDB4MDczMkMwNjBBNUZBMDA4M0FFQUZEMUY4REMyQjk3OUZDOTBBNkE0MEQ1QTgxNjI3NzhEQjAwNzJDNDJFQkQyOSkpKShwb3NlaWRvbl9zZWxlY3RvcigoMHgyRjY3OUJGNTg3QUE2MkU2RkQ5QkZDQ0M2NDIyRjE2RUU1QTRENEUxRkQyNEVFRTkyRjE4NEMxMjFDQUVDM0UxKSgweDA3ODVEQkU2RDU3NzI4NkMzM0I2OEMxQUU2RTA2NTExNzdENjM0RTgxRTQxRUQxNEFEMDI5NjRCODA4QUMwQjMpKSkoY29tcGxldGVfYWRkX3NlbGVjdG9yKCgweDM1Rjg3QTY4ODM1MEUwREVGNDREQjVDQTc5QTg3NzIwQjU3NkU0OTJGRUYwMDYxOUNBRkNDNjc4Q0U1MEVDNDMpKDB4MDUwRDFFQjBEMDlFNThFNjVDRkM1MTBBRkZFMDkzMDA0QkU4MjVEODc0MzIzNTdENUQ4NjQ3MTA0MEI5ODlDOSkpKShtdWxfc2VsZWN0b3IoKDB4MThFQUE1NUNEQjhBQ0RCQUYyMDFCMzZFOENEQUU5NUUwQjIyNkM0RjlDRDFCNTQ4RDM2MEQ3RDM1Rjg0RjU0MikoMHgwQURFMjMzQTdEQkFCREJBNDM4RDIxQkY4QUI2OTVFNzIwOEFENTQxMEZBNTNEOTNENDAwMjQ0QzYwQzQ1OUQzKSkpKGVtdWxfc2VsZWN0b3IoKDB4MjZBN0JDRkZGNjRCM0Y1QzFGQzYwMEZENDc5OEM3OUU3MDYyMDc3NzA1QjY2MjAxOUIzRkNGNjcxQ0M4QzNBNykoMHgwNDREN0RGQzQwRTVCRDA0OERGQ0U1MjA4OEYzNjQ2MDY2MkZCOTgyOTVGNjQwQTc2M0JCNTVGMkVENzFBMjAyKSkpKGVuZG9tdWxfc2NhbGFyX3NlbGVjdG9yKCgweDA5NTdGRjM1Q0ZCQTcwM0RBOERGOUNBMzBGREM5MUJFOEY0RjZFOTk2NkQxQTIyQjk4MUYzRTRBQkFDNENBNzgpKDB4MkU3OTBFREZFNUVENkFDNTQ2NDM4MjZBMUFDRjBBNUExOUE0QTMwOUIzMDk0RDREM0ZDMEMzODA5MzNDNkFBNykpKShyYW5nZV9jaGVjazBfc2VsZWN0b3IoKSkocmFuZ2VfY2hlY2sxX3NlbGVjdG9yKCkpKGZvcmVpZ25fZmllbGRfYWRkX3NlbGVjdG9yKCkpKGZvcmVpZ25fZmllbGRfbXVsX3NlbGVjdG9yKCkpKHhvcl9zZWxlY3RvcigpKShyb3Rfc2VsZWN0b3IoKSkobG9va3VwX2FnZ3JlZ2F0aW9uKCkpKGxvb2t1cF90YWJsZSgpKShsb29rdXBfc29ydGVkKCgpKCkoKSgpKCkpKShydW50aW1lX2xvb2t1cF90YWJsZSgpKShydW50aW1lX2xvb2t1cF90YWJsZV9zZWxlY3RvcigpKSh4b3JfbG9va3VwX3NlbGVjdG9yKCkpKGxvb2t1cF9nYXRlX2xvb2t1cF9zZWxlY3RvcigpKShyYW5nZV9jaGVja19sb29rdXBfc2VsZWN0b3IoKSkoZm9yZWlnbl9maWVsZF9tdWxfbG9va3VwX3NlbGVjdG9yKCkpKSkpKShmdF9ldmFsMSAweDJFMzgyOEVCRTQwNzg2QUY1QjgyNDlCQ0VBM0NCREM1ODBBRjZGMTBEMjE1MzE0RTYxNzEwNUU1MEJCQkY5NjUpKSkocHJvb2YoKGNvbW1pdG1lbnRzKCh3X2NvbW0oKDB4MTIyNEM4NUI5OTc4QTc1NzEyQzQ2QzM0ODNGODJBMzA0QjY1RDM0QUZFOTZEMjcwQjQ0MUM5QkFGMkZGMjA3MiAweDI4Mjg4RDMyREJBREY1NzEzRkM5QUIxQUEzODcwQjBCRkU1OEU2QTI5MDVBMkFFNUU0MEQ4Nzg2RTA3MTdEQ0UpKDB4MjBFRUI5NDc0RDFENEI3QjgzODRCNTg0Njk2RjlCMzAyMjUzRTQ3MzJCRjA1NDRBMENCQTYwNDQ2MjY3MjFENCAweDBCNTM5RjYzNkYxRDhFNTZBMTlGQTMwQkM4QkY1MzdDNUM1RjUyQjVDQzA0NTMzNEIyQThCRkM5OEUxMEQxRDIpKDB4MURBMDIzMjI3MENGODgzRDgxQkIwOTI3RUI2NzBGRkUxNkREMjE1MzI3Q0IwNDI1RUEzRDM1QzA3Q0M4NEEwQSAweDFCMDU2MEIyMDhDMzc1OUZCQUQzOTc3MURGODFCMDM3MzdFOEQ4QzFDOTZGRkYzQTA5QkI1ODQzNUMxQzREN0UpKDB4MUY1ODFEOTA4MTI3QjE3NzdDMDZDNDg3N0VFODA1QTZGQTA5MjcxODYwOTQ5MkE3QUI3OTdBNkY5REVFNEVCNiAweDEyNzY5QzgwRkVDNjFDMUE1Q0NBNTI2ODhBQjE2Nzk0MEM3QUY1NEZBREYyMEMzMzIwMjUwNzYyQjVERjlEOTUpKDB4MDI2Q0M0RTkyNDQxNUZCNTE5QUQxOTY2NUI5NjI1QzMzQURCQTUxRkQyMzNGNjY1OEVCOTgzRjAzRTNGQ0Q3RiAweDFENTZDQzVCMDFCNjM4OEQyMzQ2MEUzQUQxQzZCMUFDRTMxODdFNUM5RjQ5ODBGMzQ3NEU2MjBFRUMxNEQ2RjcpKDB4MDcxNDgyQzY5MENCOTRERThCNjQyRTBBOTUyNTI3NkU1QjAyMEMzMDFFNzJGMTQ5REY1ODhGNjRFNjE3ODU3NCAweDM2NkM2REMxMzMzRTUwMEFDREY1NUQ2NjlFRkZBRTQ2ODVFRUI4QzRFMkU3RDRCMjQwOTAwRDdBOUVGQUFFNjgpKDB4MDhDMTFBNzg1RTc3MTk4RTEzRTJFNjlFN0NDMTA5QjIwOEUyMUVGQzgyOEJDOEMyRUU5QTkxQUI3REI2NUYxQSAweDBCM0M3NDQxOEYxRjM2QzRCRDQwQ0EzQzU3MDRBOTg2NUExNERBODZCNjVFRTg3NzBBQTBCQzZFRDE5NzhCMTUpKDB4MDc0MzY3NDIxQzExNDA2MjY3RjRFOUJEMjMxMkQwRDgxREQzMkVFMjZBODE4OTQwRUEyNDZCRTU4ODNCMkVGMSAweDFBMzlBMEM4RUM4NTFGOUU5MzM2QjUxNkExMDlCN0FEMjkyMTdBREYwNDM3NEU4QzZFRkNDNTJGOTlBMUNCRjQpKDB4MkY0MjA4RjlBOTY4NzE4NTNBMUI1QzE5NTA2Q0Y5NTJDMzJCOTVGRjkwRjZENEJCQjkxQ0REOTRBMkRDNUE5NiAweDM1OTM0QTE1MUExMkE3QkFERERGMjdBRUEwQTRCMTZDRjI3QkRGNjVDQzQ5ODFBNTA2NEIyQkYzRDRBNTA0NjgpKDB4MjU0MEUyRkY4Q0RGMzg2N0QxQzlDMTQ3M0Y1NjU1MDMzRUMzRDhGNjhGQTE4NjEyRTg3NDA1MUQzMzdDQUIwMyAweDA0ODE4OTBGNzk3QkNEQ0JBMjUwQTEwNUMzQkRDNTJDNDkwRDc3RTE4RUJDM0E4NkQ3RDVERDlDOTk4Mzk2RUMpKDB4MUY1QUU4NTc5NTg1NzhBMERCREU1Mjc4MEI0MzEwNDg3RTg2MDI3MjFGQkE0QUM3QjM3MjkzOTYxQUM4REQ1MyAweDI0NThENkRGRUU1MTYxQzY0Q0RDREUxNzJDMTE5MDIyQzlFRkFENEU4OEM2ODkxOTJDMEI3QUJBQzNCNjMwODEpKDB4MUU1NkI3ODFDOUJCRjQ2QjlFNEM3NTRERDEwQUU0RTYzRDcwRDQ0NjdENDUyMkM3RjYzMEVDODI4RTk1MUYzMyAweDMyRDg2MjM2MUNDNzdCQjA4NzdDMUREOTg2OTZBQTIxRURFRDc5RDZCRENDOEQ0NzgwQ0JDMDU1MDAxOEU3MjMpKDB4MDg3NzA0QTUwMzMyRUNGQTMyN0JEMjA1OTBDQTYzMjdGNTlDM0QzM0M1MDczREQ3NzkyOUY2NDNFN0MwQzgyMSAweDA5REY1NDQzNTQ2NDQzMTM1QTY4OEIwRDFDRjAxQTFBNkZDNzU3QjMzQzIzMUU3RjE3NjM0RjYzMDE0NjEwMDgpKDB4MjEyMDkzQTNGQzBERDdDMzk5RTkyRUFFNjRBODFDNUU5N0NCRTY1NDE4NkU1MzdDMjNFNzQ3NkE5RUQzNDBEQyAweDM5MkFGMTkwRUU5Q0FFNjdERTY5RDRDRTE4OERFM0I5NkFGN0VBNURENDJFMkJGODE2NTBENTYxQzBEQ0VDQjUpKDB4Mzk4RDIzRkJBQjhGNjk2RDEyMzZEM0EwNUFBMzczMzc2ODFDMEM3ODY4NzgwMkJDMDA4QTk0MzkyNEE1MTc5RSAweDI0MUJCQjUxRDQ5MTYyNURDQzBGMDdDMzRFNEIzMjRBNjEyOUVCQTI2RTlBMEU3Nzc3M0Q4NTNERkQ5MERBRjIpKSkoel9jb21tKDB4MkM4MjVFMzJCNUU0QkFENTMxMDgyNjYxQzVCQ0E0RTBGMUVGNENEQzI2RTk2MTgwMjNFMDcxNUNENzQwRkU5MCAweDE5RTUyQjM2ODE1NjlCRkE2MjU5NkY3MTFCMkQyMDA1MjM2QjFBNDczRkYzRjAzNzNCMzg1RkNEQzg2RTQ5NzkpKSh0X2NvbW0oKDB4M0Y3MTUwRkI0QjcxQTAyODUwQTU1OTREMTA0RjUyREExNUE4MkY4ODVBRjk4NzY5MjJBMDA1OEM5NEQ3MjA0QiAweDNGODlGN0JGOURGNzlGNzYwMzA2RDg2ODEwRkUzNTE3RjA1OTlERDgzQUQxNEE5NTNFRkRCNzYwNDhBMTI5MUMpKDB4MENBNDczMDc1MTNGRDE5NkQyNkVEMThCOTBGMjE2Q0ZERjZBMTk1RUM5MDFCRTYxOThBQjg3MUMyMTk3MzNGRCAweDE2QkY2N0YwMjkzMDNDQzc2QkM4MkEyQjNBNkFDNUM4MEQzOUM3QjIxQ0MwNzVFNUU4OUZGMEExQ0Q5OUUzNDApKDB4MjExNUJENTE5QjgwNUFGQzIwRkM0Qzg1RTI1ODhCNjY2QjcwMDRDMUZENjk0NDI5OEEwREU0QTE2NTJFOTVGOCAweDAyNzZGODFGMDdCMTcxQ0YzMEQ2NDA5QjVCNzU2MzJCNDhGQzExREFDRjlDNjIxMUYyOUQyM0JBRjkyODBFMEMpKDB4MTZCNTg3RTYyQzkzRjRCQkJCMEYyMjNCMzI4QTFGNzVERUFEOTEyMDIxNUY1QjVFOUJBMDA2NzkzNDA1OTU2NiAweDE4OTE1RDE5M0Y5MjA4QzNERTk4QjQyNzE2NkFBNTlBMzgwMzg1NkM3MDREQzBFRUUzREYwMDlFMzlDRDY2MzApKDB4MzBFNjA0OEZCRjhDRjQ0MDkwRkM4MkE3RkQ0QjBFRERCQUMzM0I0OTYzRTExRkQ2NkI5Rjc2QjI1RERDMTJDNCAweDNCMUJBMjAwNTcxNUEwNjNFQTk5MDVENTE1NTM3NDZFNjAzRTMwQjVENkIzMDU2MDNENkUyQTk5M0I3QUNGNkQpKDB4MzEzRTZCQkU0MTI3MDBENUYyNTA0MTM1ODcwQTI0MjcwN0NFRTE0QjY2MzUyMTUyQzYzOUJFMDA0NDlCNDEyMyAweDAwQzJGNzdGMEJEMEU4MDBCNzI5NUY5ODgzOTQ5QjY5QTg3MzZFODEzNzM4NzgxNTdDQUUyMjFERUZBMjZBQzQpKDB4MDIzNkM4QzI1MzQ1OTlGNjMxNjc0RjFBMTNDOTQyMkZBM0Y1MjNEM0UyNjVGM0E5QUQ1NkNBNDA2MzFFNTlCRCAweDI0MDUxN0FGNTM4QkQxMTUwQ0EyOUJFRjI5RTg1MTQ1QTc2Rjg2NDMwRjExNjNCNUZEMjJCQzVCNzg3NEEwQTEpKSkpKShldmFsdWF0aW9ucygodygoMHgyNTA1NjdBRTc5OUY4NjA5NzI1RDUxODY4MTM2RkQ5NDE5MUExNjA0QkIzODU2MDhBNDFBQkYyOURBNDc3QzhDIDB4MTlBNzY1Q0Y5MDk1QTAxNjVDMDdBOTRDQjQzQUM0QTEzNTUxN0UyQ0M5M0M1OEQzOTZCQzk5MDY1MUFGRUE0NikoMHgxNUY1RTlCMkU4MjgyNzFDOURFQ0IxNTc1RDkzMkFCN0NENDkwNzlFMkE1MUYyNEE4RTE2MDIyQTg1OTc3RkFCIDB4MDE0QUVFRjdCNTFERDM1NUM1NUM2NjNDQjdGMzVEMDMzNEJFMjc2REJEQzU4RkUxNkVERjIxNzQ0MzA5NzcxRSkoMHgyNzM1OUIwQTg2Q0YxMTNFQkJBQzFFOTIzMzM0MDhEOUY4MkM1NDMwRjY1NEEzNTIxMjgwODc2QUI5RjE4M0NDIDB4MzAzQ0M5NzFFOEEzNDJENDFDQzlENEU3MzI1RTVBNzlDQUM0OTFBRjlFRUVDNDNFQjE1ODg0ODE1ODhFQ0QxMCkoMHgyQTA1NkU0NDRDRDNDNzlFNEI2ODA4QkU0M0U5NjI1NDVBNDZDNDQ1OUREOUI4RjI1MEE3RjM4QjJDNzYzQTcwIDB4M0QyMzM5MThFQzhCNUQzQURDRUFDNkNCMDQ2QUYzMDAzMjVDRUFFQUI4Q0I2Nzc0QUJGREMyQTkzODdEQzY2MykoMHgzRTVFNTcyQzI4ODc3NjI2Mjc2N0NGODI0MzI0NTYwODBFMjI0QTA2MThFQUU0QURDRkY4RTI1N0Q0QzlENkZGIDB4MTlFNTUxMzQ5NDIyOEYyN0ZCNjBDRThGQTNENEIwQTI0M0REMDczMUY2ODFEQzg5REI0MThBOTVBQkQ5ODY1OCkoMHgwNkFCOTQ4Q0ExMzU2RERDMkYxRENGNEEzMzJBMEIyRUM2QTNGNkVFREMxMDg5MTA2NkU0QzcwMkQzNzc1QjA1IDB4MUUwNURFQTA0RDVCMDc0NEU2RkRFOTRCQTBFOTQ0NzZENzlFMjIyNkJDN0ZGRjFDMEIyN0YwQzQ2RENGNDY4OSkoMHgyRUEzREJBNTQyRDQ4QkYzRjhGQ0MyQzVGMzdBRUEwRDFCRUY4ODgzNDVGODg3NDY2QUQ3ODFGMkI1MUY2Mjk5IDB4MTcyQ0Y3MEQ5NzMxNDM0QzNGNjRDN0NBMTM4M0JFMkJCNDBFRDQyNkM5QzVGMTcyMkUyODhBRjE0MDY1NjYxMikoMHgxNzZGOTQ2RTVCNTkxM0IyOTg0RDQ4MUVCMTRENTNFMDg4RkM3MjI5N0NGNEE0MDIzREQwQUQyNUI5MzZBRTk5IDB4MEYwMENCNjI4NDlBQUQ3RDE0MzExQjY5RTU0N0Y4NEM0RDRCQTQzNDhCMzMzNzdDMDNBMDIwQTExNjJDNDQ4QykoMHgzQkYzODdFMkJDNjkxRkJFQzkzQ0FBMzhEMEYxOEM0QzBGQTgyMzQwMEYwNEY5QTc1MTM3OURDRUVFNDA2NUY2IDB4MEU5OTVERUZFQTdENTEzNDY0RjUzMUU1OUZCMDc4Q0NFMzAxMTQ3NTM3Q0MyMEI4QURGMkJGOEUzMTE3Q0YyRSkoMHgxOEYxRDBEM0FDQkRFQzlDRkRFNTIyMTc2QTA2MzM5QjI2NjQyODUyNEMxN0JFOEVEOEU3NUU0ODQ5M0MwQTk0IDB4Mzg0MjQ3QTIxOUI3OUI2RjNENkEwOUQ3OEY5RUM5QzAxRDk1NDE1MURDRDBGRUQyQzY0QjY4NzAyRkVGMjVEMikoMHgwRjk3ODEyMTBFQTkzQ0U2Rjc5OTRBOUYxNjlGQkE1RTU5MTA4NUREQTNFMThEMjM2QjdDQTUwMzczRjE4QTQ5IDB4MUVGRkQ1RTVCMDk3NjkwRDdCNzQ0MkRENzEwMjM1RDUwRDhBRDg0MzE2ODBGNkJCNUNCQzI5RTkzRjUyMjU3NikoMHgwQ0VBMUEzMUYzMkM0NDg1QkJFMjA0QzZGQUVCRDhFOTY0RUZBN0JENEMyNjBGNzNCMjJERTYxMUVFRDhEQ0UxIDB4MzU5QjgzQjA0OEU4RjgxRDExRkZFMTUxQzQ5NEYxOUM1NDJEMTVBRDFBQjUzQTdBOTk2MDY5Q0E5ODcwQkQzQikoMHgyMjdENUI4MTY4RjYwMTQwQTlFNjUyQTlFOEY0ODZFRERFMzRCMUQ4NTc4MTE1NDExRjU0QTNFRUZCQzQ2QkM5IDB4M0FGODBDRDM3Q0UzMzk4NTY2N0UwNUVCMUUzNEE3RUY4MDQyMjFEQTg0MUQxM0FBMzRERTVGNUE4NTQ0OTY0QikoMHgyQ0Y5RDdCODY2REQ1MUE0QTQzMkEyREYzQTg3NjgxQTZDMUMwRjc0QTYzQzBDOUNFNkZEOEI4MTY5M0YzRjhFIDB4M0YxMTNGMUJDQjEyREZFQjYzRTgxOENFODg1RkU4OTZFNTdCM0I4MEUyNzQzM0RCRTNEMzEzNjg4MEI4RkI5RSkoMHgxQTVBODk5Q0I4Nzg2Mjg4MkUxQzdBODhBMzhBQTg3OERGRTcwMjRBRTE1N0NFMTQxODY1NzE0Q0M2RDU2QTdGIDB4MEQ3OUY2MDg3MzlBRjAwNDU0QUZDOEMzMzgzOEVFQzgxN0Y3RjM4NjJEOTU0RUNGRDRENzkwNUFGNTBBNTM5RSkpKShjb2VmZmljaWVudHMoKDB4MkRCQjYyQ0EyRjEyOEU4NkE2OTQ3M0ZGMEI5MUQyMUZERDMwNDJFQ0FBNTAwOEM5MTQyMEQ2QkQ4QkVDMTk4RSAweDMyMEU5NEMwOTJCQkUyQTg1NTlGMDkxRTRDMkExNTRBNkQ1QUYxQ0M0MEQ3RjM1NDNFM0ZDNTM2Q0VBMjQ1RjcpKDB4MDdGNzlEMDk1Q0YxMTU3QTkzMUQxQ0NBRTJBNUE0RDBGMkZENkQ2QjM3MDNFQ0VFMjI4NjkzRkRGRDExQjBFQyAweDExMzZGRTU3MUMwQTk0Q0FCN0RBRjY1OTc2MUJEQ0RFRTAyRjQ3QzNFRTc1QzQxOUUyOThGRjE1M0EwRUVFNUUpKDB4MzNDQTEzMTA1NDVBMkZBRDY4MEY2ODY5QzI5RTA4NUFFNzQ0NkEwOTZCMjc0N0Q5NDQxNTI2ODQ3NUQyOUQ0MyAweDNBNkVCQ0NBOEY0M0Y2QjI2NUQwNDMzQzg5QkVENTYyNjQyQzY4MjBFMDgwRDUwNkRDREUwMEU2N0ZEMTk4RjQpKDB4MDYxMEEwMjg5NkQ4QkM2MkZFQjlFQjlBMEVGNzQ1NDI2RkJCNkQ2MTc2OEMyOTc0Qzg2NkQ2NUI4NEE2ODcxQyAweDI4ODhDMDkyRTgyNjFDQUUzMTFDQUFFNjk1NDVGMTZCODIzOUE1NENGNjZGNDg2NkJDMjA3NTk3OTE0MkJFMTkpKDB4MjIyOUZBRURDNTAzMEExMzc0MDlDN0IzMEUwMUQ1QjVBQ0IxNEEwQzM3MjVGQTkyMzg1MTEwN0Y2NURGMUNBMSAweDAyMUQxRDVENjI4QzdCRTY5OTQ3MEQzMTU3N0I1NzVENkYyQjY1QkM5RUU3RjU3M0I3MzNCODFDQkM0NkYxOEIpKDB4MDJBNzVCM0QyQjVBNjg2NkI2NjU5MDBGMjlGM0RENzkwRUUzQ0RCRjQ3NjlDNjU3MzREMEE5RTMwMkRBODlCNCAweDEyNjBCRDI4QjZBNzJEMTQ3NzI4NzU2MUEyREE1RDdDOEVEOTNEODkzQkFBNEVFMzRERDNEOEMzMTMyRjdFQjQpKDB4Mjk3NUJCNkVFNzYxQTJFOUNFQUZCMzAwMkE2NDBCNzQ0QzM2MjFFNTAzNDhBRkI4M0U4QkNGMjYwNTg4ODI0MSAweDFGRTBFOUE5OEM2ODI5QTI1RTI2MUY2Q0ZEMUE1M0E1RThDMkY2NEJCNzUzMzc3MEQwOThFNzNFQTk2QTlFQzgpKDB4MEM0Q0VEMERFMUFCODg0QTJDRkQyMEVDNDgwQzQyRjA0QjZFN0YyMjhBNUM5Rjg5OEVCNDg3MUJEMzRBQUQ3QSAweDBDREVENTY2NDE0RUQzQkRDRUE1RjIzNzMyMkYyQTlCRkFBNzE3QUYxOTMwRUQ5Q0IwQTI2OERGMTRFODU3MDQpKDB4MkI4RDI2NEZERDg0RkFEQTgwM0ZEQTA0QTU0MTFEREY0QjU1RUY2NjgxQTA3Mjg5OTQzNTBEQ0Q2MkQ3QzEyMCAweDE5Q0MxMDFBRjQ1MkY0OUUwQjUzQ0VGMDRDRTQ5NkU0N0RBNzUzRDIyRTlCRUI2QjRDREY5OEUwOUYyOTRDNzYpKDB4MUE0QUQ4MjExQzdEMTMyNkI3ODA1ODg5MTJDNkM5MkUwNURGNzFFNjEwN0RCQUQxOUNCMThCNjBGODY3QjU0QSAweDEzRjZDOTg5NThCRTNEMzQwMUFBRENFRDcyRTVERTY3QTUzOUFGOENCODlBQUE2REVCQzZGMkU4QTlGNjBEMkEpKDB4MUUzMEU2MkU3NkUzNEQ1RENDMTA5MDVENjU1NDMxNUM5MTcxRjZGNDQzQkEyQjU0QTlBQzIwMkYzQjRBMTZEQiAweDBBMkVGM0U1MkE1QUIxOUFEREFERjZDRDJFNEZGNDQzMEFFRUIyMkFDNzNERDY5MzU1Q0Y1MzJDQjdBRjBBQUIpKDB4MjU4QkEwNzU0REMxNjY1MERDRDE5NzU1QThGQURGNTZCRDQwMDIzRUE3NjA0RUJDNjQ1ODNGMkQ4NkE0RUM4NSAweDNBQzRGQzEzMENFNzkxNzZCRUY5M0NFNUVBM0Q3RjVEQjUzQkEzNzc4MDk0MUI4NkZDQTQ3NkIxNjY0OUI5ODMpKDB4M0ZCMEY0MkNCRkRBQTQ1NjY5MEZDMDVDNDFDN0Q4QTlEOENBOUMxODE2RjJENDg2ODJCOTg3MUJCMDk4Nzc4OCAweDFFMUI3QzczRDQyQjIzRjBGQ0QzQjRCREEzMEQ2Q0FFMjI1MUYyOUQyRDJBQkZFRTlCMTcyM0FBQUY2REYzQUQpKDB4M0Q4MUY2MkU2NjhDMkMzRjM2NUY5QUQ4MUMzNkRFMkY3NkM0QjJBNUFEM0IzOUI5OEE5ODk0MERGMThGNENBNyAweDIyOTJCRkE3RURDNzE0NUJFMThCQTg4NjBFMTIwNTU4MTY1Nzg2RjY0QzQ5MTdGM0QwREQ1QTFGQ0MyMEQxNzEpKDB4MjYxRkU1MkU0MUI5QTQwOEJDNDE5RkVCMjBGQTIzOEM5MjI3NjMxMDcxODEwRUMzOTI5RENDOUJGMzZFNDQ1RCAweDM1NDlEQjkzMThBN0YwMUZGMkI2Q0VFMzc5OUE1RTZFRkU4MUZEMzMzNDQ4QjRBMTUzRjBENkQ4N0Y1QkIzQzEpKSkoeigweDE2RjZBODRFNTYxMzNGODU2QkE0RTczOUNCRjFERTMyMDY5RDgxRDhDNzJFRjRENTEwQURERUQ2RDAxNENBQjEgMHgxQ0IyRTg0MkU5MTExNTZGOEFBRjZGRTE5RTkzQTYwRkE1Q0FFOEU4N0I1QTEyRDQzQjZENTJCRDkwOTI4N0UzKSkocygoMHgzMzZCRTI2Qjc3Mjk2MTg4MDQ2NjlFNDc5RjY0RjREOTEzNUNEODQwRDFBNjgyOTIzOUZFRUEzODk2NzhCRUE3IDB4MDEyNzcwREZFQTQxQ0M2MEM3QkU3MERFQjdDNjM3OThEOUFGNEUwRDA1MjEzNzU0MTgxMEE4RDlGQ0I0ODY0RCkoMHgxODNEQkQ5QUM1NkNDQzAyNjk2MTY2NzE4REExNDcxMENCQzdGMTFFQTI0QkMwQTk0NzZDQUJBNkFFMEYzODQxIDB4MTFERkVERjRBRjY0MDZBNEVFMjVCQjA1QzFGOTkzMzRGQTBBMkRDMEU2QzAyNTA5NURERTBEMkMwNTAxNjYyQikoMHgwRjhBMjcxNjkzRjc0QjY5MDFGRjgzNEE2QTA5M0FDMUMzNjQ5N0Y5QkYzMjA1OTM5QTU3NzI1RjRDN0M2QzBEIDB4MzA4NTFDQTNEOTA3MTJBOUM2MEI2N0FCN0VENTc2MEUxOEZDODVFMERCMEVENTZBQjIxQzUwQzM2RkY3ODU3OCkoMHgwM0Q3RkVFODlBQTQxNzI0QUIxOUExM0M2MjdGODk2REUyNUY5OTI2N0E2QjEzMjY5Mjc3RjM2QjBFMkRENzU1IDB4MjJCODZGMjY5RjcwNUYzMzlBMUY1QkRGQjZGODJDMDNCMzI4MzNGMjE5MEY0QjE1MTlDRjIxRDg3NENDNjRBMCkoMHgxQjRFOUFENDRGRjIwOTNEQzUxRjJBM0FENEIzQ0M2QkZEOUE3RUY5MDdERkNENDZDN0U4RjhENTkzODkwQUU1IDB4MjUxNjk3NTc1NTYwRjdEQjZCMkM0RjY0RDAzMEYwQTc5MkIzQzlBODc1Nzk4NjRDRTg1QjE5OEY0MDFDN0YzMCkoMHgyNDE0RUZEQkMxQzUzNzM2RjY1NzRGOTM4RTUyRUZBQkRBNzRFQTMyRjgzRjBFQ0UxNUVENDU4RERDNkU1NkIyIDB4MEIyQ0FFQTAzRDczNEZEOUQzQ0JEMERCMkFGMkQ5QjYzNzE4QkU1MTUxQTY4QkNFNzQ5Q0E1NkExMkQ5NkIyRSkpKShnZW5lcmljX3NlbGVjdG9yKDB4MjlDOTBFQjdBOEYxRTk5OUQyRDQ4REI1NDlGMDZFQUY5RDc5NDUzM0ZGNTk4REQyMjA4QzU3M0QzREI3M0RBNCAweDNCRDBEQkRDNTE0OTNDQTA5QkZBNDYxQkUyMkM3MzA3Qjc0RDcyMzZENUNCNTU1RDJDODE5OEU1RkQ4RDM0RTgpKShwb3NlaWRvbl9zZWxlY3RvcigweDBBMkNGNjc1NjRCNDI0QkI1OTJBRUEwNDhFRTgzM0JGNUVENzczNkE0NzJEMjYxRjRBM0JDREUzNjE5OEY0MjcgMHgzRUFFRDNCNkNFMzE1RDYzRkMyRUYwNzU1RjFFNkY1REUzNzRGQkI5NDUyOTVDQzI3ODEyRjVFNUM3NEVEQTY3KSkoY29tcGxldGVfYWRkX3NlbGVjdG9yKDB4MzI2NDNCQTA3RDQyNTk2MzZBREMxMTUzQjcyMTlEMjhGRjY4NkVEMzU3NDlEODhBNThCNTAyREU5M0UyOUNDQyAweDA5Q0Q5QTU3OUFCMjNBQjJBNkE0MTZFMjc1MjUyMTdCRTVEMjIyQ0NERDQ5MDVGMjBGQzExMTE5ODgxNEZBMUEpKShtdWxfc2VsZWN0b3IoMHgzQzlEMzdBRUREMTdDMTgwRUUwNjk3MUY3RTU5M0UyMzU0ODVBQjA3NzIzNTcxQTAwOUE4RkFGQzI4MzVGMjE2IDB4MDZCMjg2QkRFNjJBQjRGQTQ4NjYwOUI3QjEwMjEyMUQzRDA0MTExRDc4NDQ0RDk0MTQzRUFBNjVEQTdFNkFCQykpKGVtdWxfc2VsZWN0b3IoMHgwMEYwMkFGMUMwNDE4RTg4NDZBRDdCMUFBMzY1RjVEQzg2NDFFQ0FBM0Q1MDk3RTE5QUExNjQ4MDM4MUJCRThFIDB4MzBBODlGREQ5ODJDRTI4ODNDMUY0OEUxRkQ1MzY3NkFDNzhDMEE5RDM2RTUwNjY4QzE1NDdBMzVEREM4Nzc4NSkpKGVuZG9tdWxfc2NhbGFyX3NlbGVjdG9yKDB4MjRCMzRGQjI1RkE5NTZGRTY3OTUyQ0Q1MzM0OUJDNDM2NEZBMkZDRkZBMjRBOTBGNEY2RTIzNkU0NkIzODhGMiAweDBBMERDODE0MkU1Nzk4QTJGQkFERDBGNDRGOUUwN0UzRTA5RkRFNEI4MThGMTU2RTIxODAyMjNENEI2QTQ5QUYpKSkpKGZ0X2V2YWwxIDB4MzAxRjc0MTAxMjg0QTk0MjgyQ0FCNjQxODY0NjZGRDg5QTg4MDBEMzQyOTExNDczRTNFQkQ1MDIyNkIxN0RFNCkoYnVsbGV0cHJvb2YoKGxyKCgoMHgzNDU2ODVDNTA5MkZFQTQzOTIyNkYzMzBGRTc2REYxRkM1OUNDMzM5MDkzODZEQUFDOEUyMUY0REY0OEExOTQ4IDB4MzUxNDk2RDQwQUE2QkIzMTk3MjdFNkE5OUE2QzFDNUE3QkQ2N0JFOUU2OENDQkVFRTc5MzFEN0UzNzdDMkVDQikoMHgwQzhBREQ5NzBBMzc0MTFDQjZBRDkxRDgzRTZDQjk2NzRERENFRkE1RUIwODc0NDVGMkU0NDIxMzEwMjdBQTBCIDB4MkYwQkY5MUM3MjMyQ0ZFRTZDQkRBRjJCNTc2RDhGOTc0MjBFQTQyQzE0NDYxQTI0MDg1QTFCRjMwNTgxRkNBMSkpKCgweDFEMjYwRjE2MzNENzg0NUZCQTJBREFCNDk3NzAxMTc1QTg4RjY2MjNENERDMzU0MUE0OEUzRkRFQUQ2RjUwRjIgMHgwNEZCNjc5RTA4MTgxQzYyRjlEQjg2NDdDNTZBMEZFRjc3RDU5Q0E3MjYwQjVBODVDRkE3NkYxMTM5NEE5MUQwKSgweDE1NEY1RjcwQjE4MkMwMjQ1ODAwQkNDRjgzNTgyOTI2QjIwRUQxQUYxMjg5MzI5QjBCQTdGMTJCRjFCRTdDMDMgMHgzRUI0RUEwMEZCRDQ1OTg2N0ZGQjkxNDUwREI5RjFEOTNEOEI4NjM4NzEzMzY1RkYxMzMxRDQxNEYwMEIwMkY0KSkoKDB4MzBCRDU2MjlBNzVENzRGRDc0MTVBMThBMzEwNzczMjkwOTM2QzhCNjRBOEEwNjMzRENEMTRDMkU1MTJDQjdDRCAweDM1NDhCODUxNTEwRDcxNDhEQzBGRTRFMTdDOUFGODIzNTAwMEIzQTMwNjI4ODYwQTYyQTgzNjA2OEUzMDBBOEYpKDB4MUFBQTc4NTZBNTFCQUE5RkM2QzM5Qjc3NDIwODdCRkU1OTBCQUFEQkQ3QzRGMzNDNUI1QTVDN0Y2QTlDNDUxRCAweDM5MDU0NDI5QUI0NjNDOENENjhENURDMjUxOTA2Q0YxREYzNTY0MjREQUQ5RjZENTJCQkJBQzZEODU5N0FGRDgpKSgoMHgyNTQ3OEVGN0VCMEFFNTZCRkE1NjlENENDNjIzMENGQkU4QTREMEVDNTQ4OTk3RjZFRTczOTgwQzM4QTk3MTQyIDB4MUIyREFDMDdDRjM3QzU1QUJCRDI5ODIyRkUxRkM5QTJGQzIzNEZCMjNCN0NFOUM0RDE1RTA3RTExMjMwMURBOCkoMHgwMzIzNjA3OTU4OTEwMDM0RTg0RkM0OEQ4NDhCOURDODZCQzM3NzVGQ0Y2MTIwQjVFRjdEQzA2NTA1NDYzQzMyIDB4MzIxRkY5OUREOEQwRDg1QjcwOERERTFCRDI3NTM1RTk5RkRCMDFGNTVCRTlCOUFERDI5Mzg4RTU2QkM2QjQ1NCkpKCgweDI5ODc5NENFMDc1RDBCMUNDNEEyNzI2NEVFRkMyRDI0MjU4RTAzNzgyODI2MDY2N0IyOUU1QzQyNUNGNTAzRDUgMHgyNUEzMjdGQzUxQjNBREE3MTdFMzQ2QjlENDFCQzFGNDE3MDgyQzRCNUM5NEMzRkU4OTg5OTYwQjg0NjkxMUM5KSgweDAyN0VDNDM3M0Q4QURBRjgxNUU1MDNGQzRBOUIyODVFQjYwNDA3NjA0QkNGNTNGREY3MUMwNkZBQjhCMzZEOEQgMHgzQUJEODVDQThEQzVCMUEyNzBDMkQ1NEU1RTYxNTAyNDZDRUY1OTE0OTE3NjJGN0VBNUVCNDkwQzhGMzg2RDUyKSkoKDB4MDFFOEQ4OEJCOTYxRTk2REQ1NUVENUYxNzE0MDlEMTlDQTI5RUQ2NUY0NEJGQkQ0NEFDRjhCODEwMzQzMDU2MSAweDM0NDZBMDM1QjcwOEI0Q0NGQUYxQjM1MEU0MzU5MEYzQjc3Nzk3NjZBQjBGNzBBNUZCOTE2RkFCNjEzMzkxODkpKDB4MjRBN0VFOEQwN0YwQzE3N0IzNTYwOTM1NUMwMUJFNzQ0RTQ0RDA1N0Q2MzIwMkJGQ0NFOTVBOUE4ODQ3MjU3NyAweDI5RUQ4NDM4MTMzOUJEMjI4RUIxNkZERjkyRkFERjdGRTMyQTcxQjIzNEIzQjBEQ0RENDQ0Q0VFQ0I1MTFGQzkpKSgoMHgxQTczNzMxMDlBMjZGMDFENTY1ODkzNjRCNkQyMjMxMjFBQzkzNzhBOTA0MzM5RjdBQUE5RTVEOTRCMjhDM0JEIDB4M0E1NTcxOTJDQUY3ODg0QzVCRDQzMzQ3RUNEQTJEOUU4QkMzNTk3RUJEOUM5N0Y3MEMxRDA1RTJEMjhFOTJFQSkoMHgwNzY4M0I3OTgwMTc5MzM2MkVBOURFOTA4MjNFRjQ5NTlFRjgwQjU1M0QzMkUzRUU5NjVBQzNGNEREREVFQkJEIDB4MTY1QUI3RUYyN0VGMzNGMzg1OEQ2RDZDQTg3Q0FDM0NFNjVENzUxMkEzOUNCMkYwQTZDQjNCMEZFMzFFNjQwOSkpKCgweDA1OUI3QzNEQTZGMTgyMTBGQkQ3N0YyOUQ5REVFNzFFNDkyRkU5OEE5MDJBMzIwOTY3RTIzMzMxRUExMkI0MzAgMHgwRkM2RkU2NDM4NTQ2ODVDRjMwNTc3MTZCN0ZEOTYzNURBRTYxRkY4RDZBQTc4MTc0NzRGRjI2MTUxNUE2MTE4KSgweDFBNEMwMjMxM0Q3MjM4NTQwNkVDQTgzMEUyMjNENzgxRTg5OTJBRjc1ODgwODcyM0QyRTIwNTYzMUNBQTlFQjEgMHgyRDU4QkVFNUQ4MzkwMTQ4QjVBNzgyNjRBNUEzRkVGMTZEQ0FCNTRGM0FDNENGNjU4NjA4NzI0OTdCNTEyRTY4KSkoKDB4MDA3MEZFQURCMkMwNDE0NzcwNDg1QUVDRjZCMzQ5MEUxNUQ3NDY3NTc2RUI3NThDQjlCMjMwMzYyNkFBRUVGMiAweDExQ0U4REI3NUNFN0ZERjgyOTkyMzA5QjJCMTkyNDRFRjhCMEQwOEI0NkNCODYyRTEyNkU1NENCMjhBN0I5OUQpKDB4MjdGOTlGN0M5QTc4MzNDNDhEQTUxN0ZGMTMwNTVDQjMxMDAwOEZCRjE1MTNDMkFENDEwOUQ0RDI4RTY0MjUxOCAweDA1RjdCNUE4NDQyRjQ3MTNENjRFQzQ2RERCNkQ5QTNGOEJDQzM2NjJDRjM4NUI5RjgzQUM0RTNGMDI1OTIyNjUpKSgoMHgzMjM5OTIyM0VCQzlEMzY2QUY4RDY0RUMxNUM4RjgyRjkxNTZBMTI3OTVCRjlDREUwODI4MDg2MUM2NDFDRjRGIDB4M0QzMkIxNkNCRkQ5QkUzNjhCQkM2QTI5MDU0MjdBRTRCQkZBNkEyODg2QjYxRTg1MzhFRjRDMDA1NkQyOTY2QykoMHgxNkM2OUU0OTU4QkNBRDVEOTFENUNEQzkzMDIwM0NCNzFGQTUwMDFFNEU5MUZGRjgyOTYzOTk5QjVCM0VEOTU3IDB4MDY3MEY2QkIzQjAxN0ZFRjQxMUEzNUE0QUY0QjJFMDhBRUNGQ0NGRUQwNjk0NzU3ODhCREE4NEMzQjRBOTk0RSkpKCgweDA5QTc5MUQxRjg2RDk0NDVFMzI1QzQ2OTlCNTQ2NEU3RTlCRjlBMjIxOTg2QjIzRjlFQkI5QjA2RDFFRDUyODQgMHgyMDkzMkQ4NzNDNzU1OTkzQTUxQjhCOTI0MjU1RTQ3QjUzRTEwRjMwQzQyQjJBQ0U4NzExRTM0OEI4RkJBODNGKSgweDM1RkMzNzk2NzQ5QUU2NjUwRkQ1OEMwRUJCMjE1RkM1RjRCQjIzMTE0NTM4OUM0MjBBQkUzRjY4MkU3RUE4QzAgMHgxMEJCNUE4Rjc0NDZBM0RCNUJCNzMzNjMxNTAyRjUxRTVCQzVGQUUwNTgwOTEzOEE2N0Q0NTM1MDg5OUU1MzMyKSkoKDB4MDBCQjMwMTZDNDg1QUEzQUYwNkI5ODQzMzBEMzMxNTU0MUU2NUEwMUI2RjgwRUFGMzM3ODA3NjQyM0ZBNDBDMSAweDBCQzZEMDU0QzVEQzkxM0FCNEE0QkU3NjcxNTIxQTJDRTNFRDIwMTBCMTUzNDc4OUMyQkQ1MDM5N0RDRTk0MDUpKDB4MDBFODg0OEYwRTVDQUQzNzdCOTBBM0QyMjc3MzI4RkYxMzc5RkE3NDc5RDQwOEQ0ODMzQUM4Nzg3NDdGQzkwNCAweDJBRTVBRThGMDhCRTc0MUZFQTI4QkM0RDJGQUEwQTkxOUU4RjREMDlEODRFNTkxNDRFRDU3ODg3MjNDMUFBREUpKSgoMHgyMUM4MzlGMEFFNUQzMUY5QTM4MjFBRDRFQjZFRkNFQjIwRDQwRjAxMDBDNzQ0NjdCRjgyNkVCNjY1NTZFQUQwIDB4MzA2OUM0QUNENDMzODFERjE4OUI1RDUxQkJGRTNCRDk2QjkzRkZDQjY3OEVCMUIxRTI2ODdCMkMzMTU4MDM4QykoMHgzNDhENUM5QjZCNDgyRjg3MjcyRDMzNzJDNTMwOUM1RDdFODlDMkExQzQwNTFEODZERUQyNTVCQjEzMzIzNEMzIDB4MTM3N0RCODhFNjBCNEYzOUY5RUM0QTVDNzc3MUJDNUY3QjE3MzBBQzUxNTFGODU5QUMzNEMwNjc4Q0JFMzI3NykpKCgweDMxMzVCQTFEOTAyNTc5NTNFRkU2NjQ4MkYzMUMwMDVFNzM4OUUwMDhFRERERjVCNzE2RTAxOTIzRjIzRDgxN0EgMHgyQTk3OTYwOEI5OEY2MTAwOTc0MTVGQUM0MEMyRDVCNDk1ODM3OTgyQjk2NDJCNjNFM0M2QUJERDExN0QwNzYxKSgweDA3MDEzRkM1RjhDNDVFMjJEOTg3MTMyQTAyN0IwODg4OTIzOUM3MDEzMTcxRDc4OUJCNTNBNDc5QzZDNkRFRUMgMHgwODgwRDZCQzJFMTkzOUMwRDJEODAzODhGRjQwMTMzQThBMjE1MzBGRTNBREU5QkM1QjI1QjQwRUI2NjVGMjMyKSkoKDB4MkJCNEZCRjM3RkJDODQ5N0JEODRFQTM0MEJDMjNGNjQ0NzAyMjM4NUU1MTU1NjZCNjE2RTQ1NTNGMDc5QTUzRiAweDIwNjVBQjBENUMzOEYwNTI0RTUzREFCRDEyNkZFQjk5OEJDQjUxRTQ4RjcxRjM2RTg1NUMxNzk0ODVENTREMUQpKDB4MDA3RjI5NjNDMzNFMTc2RTgwRTQ4NEQyQ0M1MjQyMjI3RDc4QUY2OUZBRjIzNURCQkU1MzU0MDM3RkU4QkQyNyAweDFGQjIxNzc4Njc2MTdBNDI3N0Q0N0JCMDgyNzhCQUI0N0VGQzk3NzRBMTcyRTY2OThGRTA0QUE1MTI2MzNCRUYpKSkpKHpfMSAweDAxODhGQTgxMjQ1QzQxNjREM0MxOEE4OEY1NkRFRTY4MDRBQzg0QTNEMEY2QzY0NkY4MEFERjM1N0IzMEVGMDApKHpfMiAweDI2NjY1QjNGQTM2MTgxRTU1QTIzQjY3NUQ2RTYwNkVFMUY0RDczOEMzNEIyMUUxRjZEREUzQzNCN0EwQUU4MjkpKGRlbHRhKDB4MUU0QUVGNTU1NTUxMzA5RkVBOTRBMDI0RDNGRkU0OEI1Njc3RDk1MkNCRkFBMDAxRDM4QzNEQzg1QUE1NzVGOCAweDJGMDk1QTZDRkQwM0M1MEM1NzgzNzQwRTQ0MzExNUJCRDIzRUNFQjBCODJBQzQ5QkEzMEIyMjcwRDY3REJDOEMpKShjaGFsbGVuZ2VfcG9seW5vbWlhbF9jb21taXRtZW50KDB4M0FGNEY0MDYyNTdENjM5QkU1OUU2RDEzNEE1OThDOTFEM0Q5RkFGMzkzOTIzN0VEMEIzNUMwMUJBRTgzQ0Q5NiAweDJFQTA2NDA5MEQ0NDBGMDc1MkU5MzgyNjY0MTc5ODhGM0JBQkExMEYwOTA0QkJBMDQxMzFCRDQ0RTNGNEQzMUYpKSkpKSkp","signature":null}},{"body":{"publicKey":"B62qntaKodiAjVbLPT5H8SptyGZLSn3gtaoHkbRJTQtPmdkjh5wcB2S","tokenId":"wm5vpHbpEsSeE5ADDSbjKEd6s6jUaTX6EDohi3oeXYSuLSadto","update":{"appState":[null,null,null,null,null,null,null,null],"delegate":null,"verificationKey":null,"permissions":{"editState":"Proof","access":"None","send":"None","receive":"None","setDelegate":"Signature","setPermissions":"Impossible","setVerificationKey":{"auth":"Signature","txnVersion":"3"},"setZkappUri":"Signature","editActionState":"Proof","setTokenSymbol":"Signature","incrementNonce":"Signature","setVotingFor":"Signature","setTiming":"Signature"},"zkappUri":null,"tokenSymbol":null,"timing":null,"votingFor":null},"balanceChange":{"magnitude":"0","sgn":"Positive"},"incrementNonce":true,"events":[],"actions":[],"callData":"0","callDepth":1,"preconditions":{"network":{"snarkedLedgerHash":null,"blockchainLength":null,"minWindowDensity":null,"totalCurrency":null,"globalSlotSinceGenesis":null,"stakingEpochData":{"ledger":{"hash":null,"totalCurrency":null},"seed":null,"startCheckpoint":null,"lockCheckpoint":null,"epochLength":null},"nextEpochData":{"ledger":{"hash":null,"totalCurrency":null},"seed":null,"startCheckpoint":null,"lockCheckpoint":null,"epochLength":null}},"account":{"balance":null,"nonce":{"lower":"0","upper":"0"},"receiptChainHash":null,"delegate":null,"state":[null,null,null,null,null,null,null,null],"actionState":null,"provedState":null,"isNew":null},"validWhile":null},"useFullCommitment":true,"implicitAccountCreationFee":false,"mayUseToken":{"parentsOwnToken":true,"inheritFromParent":false},"authorizationKind":{"isSigned":true,"isProved":false,"verificationKeyHash":"3392518251768960475377392625298437850623664973002200885669375116181514017494"}},"authorization":{"proof":null,"signature":null}}],"memo":"E4YM2vTHhWEg66xpj52JErHUBU4pZ1yageL4TVDDpTTSsv8mK6YaH"} \ No newline at end of file