Piñata Vision barcode/Name bits
Matching names
The following cards have similar second barcode rows and matching last bytes for row 2, raising the possibility that row 2 is obfuscated differently from row 1's obfuscation (set).
These cards also share pinata names.
Ava
9FBEF59DCF5DD656 8683F11D287FC206 Bunnycomb-TroubleInParadise-BrightPink-PV.jpg A2F8D48C480E9EFA 8683F11D2DED9606 Buzzenge-TroubleInParadise-Black-Ava-PV.jpg
Harley
97B6A3855B66CF88 5168F4494A171D81 Elephanilla-TroubleInParadise-PaleBlue-PV.jpg D37649004D560805 5168F44A4A161D91 Dragumfly-TroubleInParadise-PaleBlueRed-PV.jpg D1EBE85E5810F7AE 5168F4594AA61BF1 Mothdrop-TroubleInParadise-Black-PV.jpg
Aimee
9A586E134C0BCD3C D26B28D7670ED64E Roario-TroubleInParadise-Pink-PV.jpg E17EC6B36C459649 D26B68C6F50ED64E Tartridge-TroubleInParadise-Black-PV.jpg
Mia
836195952A2BC52B E6769697BF19E6FC DesertRaisant-TroubleInParadise-Black-Mia-PV.jpg E4653B3B3F14538F E676CF169F09E6FC Sherbat-TroubleInParadise-Blue-PV.jpg
Non-matching names
The following cards have similar second barcode rows and matching last bytes for row 2, but their pinata names are different. However, their names are all the same length, raising the possibility that a) there is a length "byte" for the name field, and b) the row 2 obfuscation set selection involves bits from that field.
D4FBCA4E0F98F7AE 945FD18B2F50D4AC Pretztail-TroubleInParadise-Black-Rhys-PV.jpg D772B9106F1F0425 945FD4B86C41E59C Fizzlybear-TroubleInParadise-Black-Maya-PV.jpg 9A586E134D21E62C 945FD5B17C41D49C Vulchurro-TroubleInParadise-Green-Evie-PV.jpg
E7BCB0A0D0C52D37 F283E298458F17B2 ArcticBunnycomb-TroubleInParadise-Black-(Leo-)PV.jpg C02EFAB3FC45C649 F29EE298258F17B2 Horstachio-TroubleInParadise-Black-(Kai-)PV.jpg EE89E1A8D8E56D27 F2D5E29D458F37B2 DesertSyrupent-TroubleInParadise-Black-Ben-PV.jpg
Decoded names
Drop row 1 from the barcode to focus on row 2. Change IDs to match the ASCII value of the name's 2nd character (e.g., Kieran, i = 105 decimal).
% grep Blackariants barcodes.txt | cut -d" " -f2 | egrep '^[0-9A-F]{15}C' | sort | ./barcodetxt2bitdiff.pl --short Black_unicorn 114 1098FCBC0C65C0AC Francesca Black_snailpest 105 144263E69C8B58AC Kieran Black_bluebottle 101 2754CB15FAFBD6AC Henry Black_chameleon 105 30B040B6BFBB599C Finlay Black_pony 101 35542B15FBEBC7AC Keira Black_orangebutterfl 101 71B6E394DCDEE3BC Benjamin Black_whitebutterfly 117 909008F68F9B18BC Summer Black_fox 104 945FD18B2F50D4AC Rhys Black_bear 97 945FD4B86C41E59C Maya Black_penguin 97 94826266BE9B188C Daniel Black_snowtiger 121 95B02B15FBF9F3AC Lydia Black_cow 108 C1802815F8CAC3AC Ellie Black_sandant 105 E6769697BF19E6FC Mia
The reader script decodes the columns holding character 2 of the name, and the decoded values are a match.
% ./reader.pl black_variant_names_c.txt Black_unicorn 114 1098FCBC0C65C0AC ID = 01110010 114 Black_snailpest 105 144263E69C8B58AC ID = 01101001 105 Black_bluebottle 101 2754CB15FAFBD6AC ID = 01100101 101 Black_chameleon 105 30B040B6BFBB599C ID = 01101001 105 Black_pony 101 35542B15FBEBC7AC ID = 01100101 101 Black_orangebutterfl 101 71B6E394DCDEE3BC ID = 01100101 101 Black_whitebutterfly 117 909008F68F9B18BC ID = 01110101 117 Black_fox 104 945FD18B2F50D4AC ID = 01101000 104 Black_bear 97 945FD4B86C41E59C ID = 01100001 97 Black_penguin 97 94826266BE9B188C ID = 01100001 97 Black_snowtiger 121 95B02B15FBF9F3AC ID = 01111001 121 Black_cow 108 C1802815F8CAC3AC ID = 01101100 108 Black_sandant 105 E6769697BF19E6FC ID = 01101001 105
Repeating the same process to look for columns matching ASCII values for the following 3 characters, we can read name data from the barcode. It looks like the name field has an (undiscovered) length "byte," since the name data does not appear to be zero-terminated.
% ./reader.pl --names black_variant_names_character5_c.txt Black_unicorn 99 1098FCBC0C65C0AC Francesca Name = ranc Black_snailpest 97 144263E69C8B58AC Kieran Name = iera Black_bluebottle 121 2754CB15FAFBD6AC Henry Name = enry Black_chameleon 97 30B040B6BFBB599C Finlay Name = inla Black_pony 97 35542B15FBEBC7AC Keira Name = eira Black_orangebutterfl 97 71B6E394DCDEE3BC Benjamin Name = enja Black_whitebutterfly 101 909008F68F9B18BC Summer Name = umme Black_fox 0 945FD18B2F50D4AC Rhys Name = hysb Black_bear 0 945FD4B86C41E59C Maya Name = ayaf Black_penguin 101 94826266BE9B188C Daniel Name = anie Black_snowtiger 97 95B02B15FBF9F3AC Lydia Name = ydia Black_cow 101 C1802815F8CAC3AC Ellie Name = llie Black_sandant 0 E6769697BF19E6FC Mia Name = iag}
Unfortunately, the good (other) variants don't appear to keep their name data in the same location. One possibility is that the GoodVariant cards have additional data located before the name data, which shifts the underlying name data in the structure.
./reader.pl --names names_c.txt Black_unicorn 114 1098FCBC0C65C0AC Francesca Name = ranc Black_snailpest 105 144263E69C8B58AC Kieran Name = iera Black_bluebottle 101 2754CB15FAFBD6AC Henry Name = enry Good_hydra 97 308023D28DBA80AC Jayden Name = tll` Black_chameleon 105 30B040B6BFBB599C Finlay Name = inla Black_pony 101 35542B15FBEBC7AC Keira Name = eira Good_chameleon 109 36B268A68FBBB0BC Amelia Name = ilhy Black_orangebutterfl 101 71B6E394DCDEE3BC Benjamin Name = enja Black_whitebutterfly 117 909008F68F9B18BC Summer Name = umme Black_fox 104 945FD18B2F50D4AC Rhys Name = hysb Black_bear 97 945FD4B86C41E59C Maya Name = ayaf Good_vulture 118 945FD5B17C41D49C Evie Name = a}ab Black_penguin 97 94826266BE9B188C Daniel Name = anie Black_snowtiger 121 95B02B15FBF9F3AC Lydia Name = ydia Good_armadillo 116 97913855FD31E78C Ethan Name = yriy Black_cow 108 C1802815F8CAC3AC Ellie Name = llie Good_snail 108 C1926815FC94F7AC Alice Name = u`ie Black_sandant 105 E6769697BF19E6FC Mia Name = iag} Good_bat 105 E676CF169F09E6FC Mia Name = icgy