From ee0d570946f802b126e0a12b92a4deda827bcd07 Mon Sep 17 00:00:00 2001 From: Leemon Baird Date: Sun, 9 May 2021 03:31:30 -0500 Subject: [PATCH] added implementations in more languages --- HIP/hip-15.md | 23 ++++++---- assets/hip-15/AddressChecksums.java | 35 ++++++++------- assets/hip-15/AddressChecksums.java.zip | Bin 3691 -> 0 bytes assets/hip-15/HIP-15-all.zip | Bin 0 -> 50026 bytes assets/hip-15/HIP-15-javascript.html | 37 +++++++-------- assets/hip-15/HIP-15-javascript.html.zip | Bin 3516 -> 0 bytes assets/hip-15/HIP-15-mathematica.nb.txt | 55 +++++++++++++++++++++++ assets/hip-15/HIP-15-pseudocode.md | 54 ++++++++++++++++++++++ assets/hip-15/HIP-15-spreadsheet.xlsx | Bin 0 -> 215391 bytes 9 files changed, 160 insertions(+), 44 deletions(-) delete mode 100644 assets/hip-15/AddressChecksums.java.zip create mode 100644 assets/hip-15/HIP-15-all.zip delete mode 100644 assets/hip-15/HIP-15-javascript.html.zip create mode 100644 assets/hip-15/HIP-15-mathematica.nb.txt create mode 100644 assets/hip-15/HIP-15-pseudocode.md create mode 100644 assets/hip-15/HIP-15-spreadsheet.xlsx diff --git a/HIP/hip-15.md b/HIP/hip-15.md index 2a3645824..d784b0a07 100644 --- a/HIP/hip-15.md +++ b/HIP/hip-15.md @@ -73,13 +73,13 @@ d = int array for the digits of a (using 10 to represent "."), so 0.0.123 is [0, h = unsigned byte array containing the ledger ID followed by 6 zero bytes p3 = 26 * 26 * 26 p5 = 26 * 26 * 26 * 26 * 26 -s0 = (d[0] + d[2] + d[4] + d[6] + ...) mod 11 -s1 = (d[1] + d[3] + d[5] + d[7] + ...) mod 11 -s = (...((((d[0] * 31) + d[1]) * 31) + d[2]) * 31 + ... ) * 31 + d[d.length-1]) mod p3 +sd0 = (d[0] + d[2] + d[4] + d[6] + ...) mod 11 +sd1 = (d[1] + d[3] + d[5] + d[7] + ...) mod 11 +sd = (...((((d[0] * 31) + d[1]) * 31) + d[2]) * 31 + ... ) * 31 + d[d.length-1]) mod p3 sh = (...(((h[0] * 31) + h[1]) * 31) + h[2]) * 31 + ... ) * 31 + h[h.length-1]) mod p5 -c = (((d.length mod 5) * 11 + s0) * 11 + s1) * p3 + s + sh ) mod p5 -c = (c * 1000003) % p5 -checksum = c, written as 5 digits in base 26, using a-z +c = (((d.length mod 5) * 11 + sd0) * 11 + sd1) * p3 + sd + sh ) mod p5 +cp = (c * 1000003) % p5 +checksum = cp, written as 5 digits in base 26, using a-z ``` The checksum is a function of the ledger ID, so that the same address will have different checksums if it is on different ledgers. Cryptographically secure ledger IDs will be implemented as part of state proofs. But for now, the following three ledgers will each have a ledger ID consisting of a single byte: @@ -151,10 +151,15 @@ When calculating checksums for all accounts of the form `0.0.x` as `x` counts up ## Reference Implementation -Example code can be downloaded for these languages: +Example code can be downloaded for these languages (the reference implementation is the Java version): +- Pseudocode: [HIP-15-pseudocode.md](https://github.com/hashgraph/hedera-improvement-proposal/assets/hip-15/HIP-15-pseudocode.md) +- Java: [AddressChecksums.java](https://github.com/hashgraph/hedera-improvement-proposal/assets/hip-15/AddressChecksums.java) +- Javascript: [HIP-15-javascript.html](https://github.com/hashgraph/hedera-improvement-proposal/assets/hip-15/HIP-15-javascript.html) +- Spreadsheet: [HIP-15-spreadsheet.xlsx](https://github.com/hashgraph/hedera-improvement-proposal/assets/hip-15/HIP-15-spreadsheet.xlsx) +- Mathematica: [HIP-15-mathematica.nb.txt](https://github.com/hashgraph/hedera-improvement-proposal/assets/hip-15/HIP-15-mathematica.nb.txt) +- All of the above: [HIP-15-all.zip](https://github.com/hashgraph/hedera-improvement-proposal/assets/hip-15/HIP-15-all.zip) + -- [AddressChecksums.java.zip](https://github.com/hashgraph/hedera-improvement-proposal/assets/hip-15/AddressChecksums.java.zip) -- [HIP-15-javascript.html.zip](https://github.com/hashgraph/hedera-improvement-proposal/assets/hip-15/HIP-15-javascript.html.zip) ## Rejected Ideas diff --git a/assets/hip-15/AddressChecksums.java b/assets/hip-15/AddressChecksums.java index 474060d87..2a91931fe 100644 --- a/assets/hip-15/AddressChecksums.java +++ b/assets/hip-15/AddressChecksums.java @@ -102,13 +102,13 @@ public static ParsedAddress parseAddress(byte[] ledgerId, String addr) { * h = unsigned byte array containing the ledger ID followed by 6 zero bytes * p3 = 26 * 26 * 26 * p5 = 26 * 26 * 26 * 26 * 26 - * s0 = (d[0] + d[2] + d[4] + d[6] + ...) mod 11 - * s1 = (d[1] + d[3] + d[5] + d[7] + ...) mod 11 - * s = (...((((d[0] * 31) + d[1]) * 31) + d[2]) * 31 + ... ) * 31 + d[d.length-1]) mod p3 + * sd0 = (d[0] + d[2] + d[4] + d[6] + ...) mod 11 + * sd1 = (d[1] + d[3] + d[5] + d[7] + ...) mod 11 + * sd = (...((((d[0] * 31) + d[1]) * 31) + d[2]) * 31 + ... ) * 31 + d[d.length-1]) mod p3 * sh = (...(((h[0] * 31) + h[1]) * 31) + h[2]) * 31 + ... ) * 31 + h[h.length-1]) mod p5 - * c = (((d.length mod 5) * 11 + s0) * 11 + s1) * p3 + s + sh ) mod p5 - * c = (c * 1000003) mod p5 - * checksum = c, written as 5 digits in base 26, using a-z + * c = (((d.length mod 5) * 11 + sd0) * 11 + sd1) * p3 + sd + sh ) mod p5 + * cp = (c * 1000003) mod p5 + * checksum = cp, written as 5 digits in base 26, using a-z * } * * @param ledgerId @@ -121,11 +121,12 @@ public static String checksum(byte[] ledgerId, String addr) { String a = addr; //address, such as "0.0.123" int[] d = new int[addr.length()]; //digits of address, with 10 for '.', such as [0,10,0,10,1,2,3] byte[] h = ledgerId; //ledger ID as an array of unsigned bytes - int s0 = 0; //sum of even positions (mod 11) - int s1 = 0; //sum of odd positions (mod 11) - int s = 0; //weighted sum of all positions (mod p3) + int sd0 = 0; //sum of even positions (mod 11) + int sd1 = 0; //sum of odd positions (mod 11) + int sd = 0; //weighted sum of all positions (mod p3) int sh = 0; //hash of the ledger ID - long c = 0; //the checksum, as a single number (it's a long, to prevent overflow in c * m) + long c = 0; //the checksum, before the final permutation + long cp = 0; //the checksum, as a single number (it's a long, to prevent overflow) String checksum = ""; //the answer to return final int p3 = 26 * 26 * 26; //3 digits base 26 final int p5 = 26 * 26 * 26 * 26 * 26; //5 digits base 26 @@ -138,11 +139,11 @@ public static String checksum(byte[] ledgerId, String addr) { d[i] = (a.charAt(i) == '.' ? 10 : (a.charAt(i) - ascii_0)); } for (int i = 0; i < d.length; i++) { - s = (w * s + d[i]) % p3; + sd = (w * sd + d[i]) % p3; if (i % 2 == 0) { - s0 = (s0 + d[i]) % 11; + sd0 = (sd0 + d[i]) % 11; } else { - s1 = (s1 + d[i]) % 11; + sd1 = (sd1 + d[i]) % 11; } } for (byte sb : h) { @@ -151,11 +152,11 @@ public static String checksum(byte[] ledgerId, String addr) { for (int i = 0; i < 6; i++) { //process 6 zeros as if they were appended to the ledger ID sh = (w * sh + 0) % p5; } - c = ((((a.length() % 5) * 11 + s0) * 11 + s1) * p3 + s + sh) % p5; - c = (c * m) % p5; + c = ((((a.length() % 5) * 11 + sd0) * 11 + sd1) * p3 + sd + sh) % p5; + cp = (c * m) % p5; for (int i = 0; i < 5; i++) { - checksum = Character.toString(ascii_a + (int)(c % 26)) + checksum; - c /= 26; + checksum = Character.toString(ascii_a + (int)(cp % 26)) + checksum; + cp /= 26; } return checksum; diff --git a/assets/hip-15/AddressChecksums.java.zip b/assets/hip-15/AddressChecksums.java.zip deleted file mode 100644 index 12c3a50e156ab5fe52e8a97fc0c1e4b174ab95be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3691 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:alw2lADwyhCp8NetwiAxxJ(GgB>>L$J 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 literal 0 HcmV?d00001 diff --git a/assets/hip-15/HIP-15-javascript.html b/assets/hip-15/HIP-15-javascript.html index 3df5868f9..32ac7b5b8 100644 --- a/assets/hip-15/HIP-15-javascript.html +++ b/assets/hip-15/HIP-15-javascript.html @@ -46,7 +46,7 @@

HIP-15 Address Checksum Format



-Last updated May 5, 2021. +Last updated May 9, 2021.

(c) 2020-2021 Hedera Hashgraph, released under Apache 2.0 license. @@ -139,23 +139,24 @@

HIP-15 Address Checksum Format

// h = unsigned byte array containing the ledger ID followed by 6 zero bytes // p3 = 26 * 26 * 26 // p5 = 26 * 26 * 26 * 26 * 26 -// s0 = (d[0] + d[2] + d[4] + d[6] + ...) mod 11 -// s1 = (d[1] + d[3] + d[5] + d[7] + ...) mod 11 -// s = (...((((d[0] * 31) + d[1]) * 31) + d[2]) * 31 + ... ) * 31 + d[d.length-1]) mod p3 +// sd0 = (d[0] + d[2] + d[4] + d[6] + ...) mod 11 +// sd1 = (d[1] + d[3] + d[5] + d[7] + ...) mod 11 +// sd = (...((((d[0] * 31) + d[1]) * 31) + d[2]) * 31 + ... ) * 31 + d[d.length-1]) mod p3 // sh = (...(((h[0] * 31) + h[1]) * 31) + h[2]) * 31 + ... ) * 31 + h[h.length-1]) mod p5 -// c = (((d.length mod 5) * 11 + s0) * 11 + s1) * p3 + s + sh ) mod p5 -// c = (c * 1000003) mod p5 -// checksum = c, written as 5 digits in base 26, using a-z +// c = (((d.length mod 5) * 11 + sd0) * 11 + sd1) * p3 + sd + sh ) mod p5 +// cp = (c * 1000003) mod p5 +// checksum = cp, written as 5 digits in base 26, using a-z // //in ports to other languages, answer can be a string, digits an int32[] and the rest int32 (or uint32[] and uint32) function checksum(ledgerId, addr) { let answer = ""; let d = []; //digits with 10 for ".", so if addr == "0.0.123" then d == [0, 10, 0, 10, 1, 2, 3] - let s0 = 0; //sum of even positions (mod 11) - let s1 = 0; //sum of odd positions (mod 11) - let s = 0; //weighted sum of all positions (mod p3) + let sd0 = 0; //sum of even positions (mod 11) + let sd1 = 0; //sum of odd positions (mod 11) + let sd = 0; //weighted sum of all positions (mod p3) let sh = 0; //hash of the ledger ID - let c = 0; //the checksum, as a single number + let c = 0; //the checksum, before the final permutation + let cp = 0; //the checksum, as a single number const p3 = 26 * 26 * 26; //3 digits in base 26 const p5 = 26 * 26 * 26 * 26 * 26; //5 digits in base 26 const ascii_a = "a".charCodeAt(); //97 @@ -171,22 +172,22 @@

HIP-15 Address Checksum Format

d.push(addr[i]=="." ? 10 : parseInt(addr[i],10)); } for (let i=0; iS+SQ42~mj4(gOJ$iv%AS3#iLviX zi)ExxAxk9t7Q&PFyw7=`^PKlR&xiNA&wcLS@5_Ckb6sDq3u$r+$O~ZpQ~E6hmVo~T zn*;y=21o!5jgU$z>Pp_Ow_R_!2jT*PU|vDKc(gS;fXOu^#RdJRPi8QI6~F-8VE_RB z>;eFqgbp7}P`AJDRT8*Vt<5ogH8a3V5kOo9j46M)3d=xRD$jwA|7A|mMqTWw|8m^C zYiOK{pLBc(;t8M_HlJ(uSA7DVlXl#~J^-Bx$kRz6c9~TK^BeVjud;vd$V})~^ikFymBhfO@np-? zJuqcYMk38%fzf7d|D&@`<6ckLIK=qYJ656+&iX6#r6g3dy+{9DtTXGBagz2-m8)IX za8M-!7sFNUcu0-b@uG95ZXkyn;y01#L%E->Cab!=sOL{*@4Wy)2w!T(yh)`u*uL$@ zsIV@)*kcY55)CSJ-r_p9g6|P+gk0C$PvU*PH|AAys1_XA%y8(h z8kGInpDTa%xiOQzc1TTQ5;%4THT`W+e1F>Or=qvC%v@N{jC#rP?;d{{lM=&cJ>^no zdjpbd3u$Hjssm58=8z(WoHGcHi;=1upH<$^?qp5f+o3uR?!RzYnUISux==11aP7D#BJlTo$Nbe|+1%MT7SNe5R6Inw_L(Y@6s4ZMq@fW%&JKuZo~694ay+ z7HTUJ8R3@c+kYwL6jqAD?QsCd?)26mO+HO=7dn@6Y^@y+ z_e#iIyR(oe&2z3%-Rs_JFq*d)@&%%xhQh&q~L5Lx&FAOQ_ zdT~fiM|PYxr45-*^?Eig!CgZ$4nHbOb+_-Yw3;^36fE1+K9a7jE_h%y!T^Xf+Kysa^|Nfg{>xLRJNIH2EYDcbIc;f@suZq(7*I!9OM zmbeZq4wc(5Fir8u-Dg}*BQ2N&3@q|)WN8x9H)4CZlQ1YxS_>R3nC6NwbKaz%@nh+= z5KRfR9s&Nree|2d9bxyMgh`s2adc!yjI-!)nB3qjZDlpaFKWi<2X z&CBI;mlQLp;>9$YUibK4841+^7#>v&2i{+*x1k<8-Z~k!GSb^q>>ZjA-d{N(MVFfi zezn8foQ30LO4GL4Y!<3(Yxy!A@#V26|Mb+so5>lO!=u%sj`MJVI)41x-Uc>sVznh) z#Mbd61ThBtnMIi?BzN$2-0M3Zb(16(VIn+<>V4w!WWcqE4$OTV{Id*b;f@P-PwxmU zt6{&Ka#!um#g32B%Bj=3azC{d9HC1H0{PC8i(inNU-($dQ);T4)b{#1dxL<}*ZnPy zcVR(y4yt3~WqE|@!DV!R*MLfwbnS-Dy94O67Q4us;!bYFXHmkBbi4&JL}&2u<=MwG zV2jM@bBUwnJ!rF=pLT`bsZ*=O#$Z-zA^Z$pyP|PJD*B&d1jO|c6ywY}g$F|?lv2r^ z91fUjO=hDTo;Mrri3EH0Q`VQK*3E(rP+^H0gHe}@14C)KVk7T6=&6#OkWEdD&?Y z8I;9uctcbsfrooy&M8E9KeVo1unUCi8%QwzbXWikIzLnx1_9()s<}24OmG%e0^O>? z+f7CGLn>nJlIx0au`cKi-_$P-lDyv-C#3ou$qBwSVzH3exDLIU{W&CeE(hY%r*H6* z?BQd6FuYwaug7AB?o>)^9lAxZJTB_%Yr}-tS)xMR69fn>Di@nVFVQQ%Z*AOdIV+6! z=|D;ng(OEL+z&GrKE_)y10URi>D(XS5s1BeI?3q0P~uy|lt?V6bLYMOT6K!Bu0+4R zhuD*s`8=6{!#Phs8)?=XCdpdFsm@*F{#aI$b|xo=C>^`(Y52T|@H@W+nAEEe)XMk# zY*%{7dA|C^%9_c2hchYTZ3}AU@2v+e4f>Jh%(T>DzMHw$ACK#QoU)>nD^TZ?Y3TaA zFhW9T0(ul)Cs|6X4b-O9;rDN#`$wee7G~3$DwysrY0O!FL83*omGp0rG~wpkVvmoyK1#ht41RW};M;C*VGVT|u>FmIT_f~+qF-OFP8@;9my1%c=eR55**q#a& z+q5Z|uzB%t)!DX+mt|U9K<3v4>0#l(OY{W3R;Qbq0 zzBLSWuB)*9S=6Y~H!Ufh>se>)3_Sdyuba=ZFmz~-83!U-2w9XO;teQ=5W3PEG}({CT&KhjiJrR#|{w2nRUrut$KSNIfv`wn$fH5q8qHmu<# z*uFK`(=d(X&-IV;$Bc4~$z%N(7OZ|kqSY*jRzS`N@?5duHmF+p0^MA0|%`qu1C;e|0+ueoF-P6U* zWzEd=`r6s+amYxsl%pJ8ULzTB&XhOYTQ)urac+Su(3@lDnVq9Bb&}Wfip#8sd6iR5ew0&R5M%Uh+31XfS#kV@ zV&%xYj`vo)5Tv?;aUJ!-4a?P80+!U$@R6o?xFSS7UXQ9*cr^;=;*pBk2Z6xdqgW8d zK&}vn8*L-w$cQJSU~>?N;zt3|DA;*0O}c_IPcxs#QfMGhw{&55k~FviCe8L=)En4M zK4AMp?g_z269z`!Q~wic{#BNfQ1egZN1eR>1ONX=#QFCd|9byK;C~`N%9a)I|CbwS SavF59lJQT`|4cgD$?qS2cRii} diff --git a/assets/hip-15/HIP-15-mathematica.nb.txt b/assets/hip-15/HIP-15-mathematica.nb.txt new file mode 100644 index 000000000..041c148db --- /dev/null +++ b/assets/hip-15/HIP-15-mathematica.nb.txt @@ -0,0 +1,55 @@ +(* (c) 2020-2021 Hedera Hashgraph,released under Apache 2.0 license.*) + +(* find the HIP-15 checksum for a given Hedera address and ledger ID *) + +checksum[ledgerId_, address_] := + Module[{h, d, p3, p5, s0, s1, s, sh, c, cp}, + h = Join[ledgerId, {0, 0, 0, 0, 0, 0}]; + d = (ToCharacterCode[address] //. {46 -> 10 + 48}) - 48; (* "." is 46, "0" is 48 *) + p3 = 26^3; + p5 = 26^5; + sd0 = Mod[Total[d[[1 ;; Length[d] ;; 2]]], 11]; + sd1 = Mod[Total[d[[2 ;; Length[d] ;; 2]]], 11]; + sd = Fold[Mod[#1*31 + #2, p3] &, d]; + sh = Fold[Mod[#1*31 + #2, p5] &, h]; + c = Mod[((Mod[Length[d], 5]*11 + sd0)*11 + sd1)*p3 + sd + sh, p5]; + cp = Mod[c*1000003, p5]; + StringJoin @@ + FromCharacterCode[(IntegerDigits[cp, 26, 5] + + ToCharacterCode["a"][[1]])]]; + +(* Output the given ledger ID and address along with the calculated \ +checksum *) + +output[ledgerId_, address_] := + Print["ledger: ", ledgerId, " address: ", address, "-", + checksum[ledgerId, address]]; + +(* Output checksums for all the examples given in HIP-15 *) + +addresses = {"0.0.1", "0.0.4", "0.0.5", "0.0.6", "0.0.12", "0.0.123", + "0.0.1234567890", "12.345.6789", "1.23.456"}; +output[{0}, #] & /@ addresses; +output[{161, 255, 1}, #] & /@ addresses; + +(* +OUTPUT: +ledger:{0} address:0.0.1-dfkxr +ledger:{0} address:0.0.4-cjcuq +ledger:{0} address:0.0.5-ktach +ledger:{0} address:0.0.6-tcxjy +ledger:{0} address:0.0.12-uuuup +ledger:{0} address:0.0.123-vfmkw +ledger:{0} address:0.0.1234567890-zbhlt +ledger:{0} address:12.345.6789-aoyyt +ledger:{0} address:1.23.456-adpbr +ledger:{161,255,1} address:0.0.1-xzlgq +ledger:{161,255,1} address:0.0.4-xdddp +ledger:{161,255,1} address:0.0.5-fnalg +ledger:{161,255,1} address:0.0.6-nwxsx +ledger:{161,255,1} address:0.0.12-povdo +ledger:{161,255,1} address:0.0.123-pzmtv +ledger:{161,255,1} address:0.0.1234567890-tvhus +ledger:{161,255,1} address:12.345.6789-vizhs +ledger:{161,255,1} address:1.23.456-uxpkq +*) diff --git a/assets/hip-15/HIP-15-pseudocode.md b/assets/hip-15/HIP-15-pseudocode.md new file mode 100644 index 000000000..5d370ee09 --- /dev/null +++ b/assets/hip-15/HIP-15-pseudocode.md @@ -0,0 +1,54 @@ +# HIP-15 Checksum calculation Pseudocode + +The checksum (such as `vfmkw`) is calculated from the no-checksum address (such as `0.0.123` ) by this algorithm: + +``` +a = a valid no-checksum address string, such as 0.0.123 +d = int array for the digits of a (using 10 to represent "."), so 0.0.123 is [0,10,0,10,1,2,3] +h = unsigned byte array containing the ledger ID followed by 6 zero bytes +p3 = 26 * 26 * 26 +p5 = 26 * 26 * 26 * 26 * 26 +sd0 = (d[0] + d[2] + d[4] + d[6] + ...) mod 11 +sd1 = (d[1] + d[3] + d[5] + d[7] + ...) mod 11 +sd = (...((((d[0] * 31) + d[1]) * 31) + d[2]) * 31 + ... ) * 31 + d[d.length-1]) mod p3 +sh = (...(((h[0] * 31) + h[1]) * 31) + h[2]) * 31 + ... ) * 31 + h[h.length-1]) mod p5 +c = (((d.length mod 5) * 11 + sd0) * 11 + sd1) * p3 + sd + sh ) mod p5 +cp = (c * 1000003) % p5 +checksum = cp, written as 5 digits in base 26, using a-z +``` + +Cryptographically secure ledger IDs will be implemented as part of state proofs. But for now, the following three ledgers will each have a ledger ID consisting of a single byte: + +``` +0 = Hedera mainnet +1 = stable testnet +2 = preview net +``` + +Test vectors: + +``` +For ledger ID 0x00: + 0.0.1-dfkxr + 0.0.4-cjcuq + 0.0.5-ktach + 0.0.6-tcxjy + 0.0.12-uuuup + 0.0.123-vfmkw + 0.0.1234567890-zbhlt + 12.345.6789-aoyyt + 1.23.456-adpbr + +For ledger ID 0xa1ff01: + 0.0.1-xzlgq + 0.0.4-xdddp + 0.0.5-fnalg + 0.0.6-nwxsx + 0.0.12-povdo + 0.0.123-pzmtv + 0.0.1234567890-tvhus + 12.345.6789-vizhs + 1.23.456-uxpkq +``` + +(c) 2020-2021 Hedera Hashgraph,released under Apache 2.0 license. diff --git a/assets/hip-15/HIP-15-spreadsheet.xlsx b/assets/hip-15/HIP-15-spreadsheet.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0956a063c584f1295712b94ec266587feb138d40 GIT binary patch literal 215391 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 Z7;1_rx4ChbXjp)@+k}gixqb40{{ZCbykh_W literal 0 HcmV?d00001