Skip to content

Latest commit

 

History

History
203 lines (151 loc) · 59.9 KB

digital_signature.md

File metadata and controls

203 lines (151 loc) · 59.9 KB

Generating Signatures

CAI Technical Spec mentions signing is done by hashing Claim JSON and doing standard CMS-based signature using private key of individual or organization.

General Public / Private Key Detached Signature

  1. Generate Public and Private Key with the following: openssl req -new -x509 -newkey rsa:2048 -keyout Privkey.out -pubkey -out Pubkey.out -days 365 -nodes -sha256

    Output will be the following:

    Privkey.out
    
    Pubkey.out
    
  2. Open Pubkey.out and delete the Certificate portion. Current implementation does not work if certificate is included.

  3. Generate Detached Signature with:

    python digital_signature.py -s Privkey.out <claim JSON> <name of signature file.sig>

  4. Verify Signature with:

    python digital_signature.py -v Pubkey.out <claim JSON> <signature file .sig>

Converting .sig to Hex Text

  1. Open .sig file in 010 Editor.

  2. Select hex text. Edit -> Copy As -> Hex Text

  3. Import into cai_tool.py script

  4. Run python cai_tool.py to generate CAI injection comlete with digital signature metadata

Example CAI injection with Digital Signature

['FF', 'EB', '1d', 'f3', '4a', '50', '00', '01', '00', '00', '00', '01', '00', '00', '1d', 'e9', '6a', '75', '6d', '62', '00', '00', '00', '1d', '6a', '75', '6d', '64', '63', '61', '63', '62', '00', '11', '00', '10', '80', '00', '00', 'aa', '00', '38', '9b', '71', '03', '63', '61', '69', '00', '00', '00', '1d', 'c4', '6a', '75', '6d', '62', '00', '00', '00', '27', '6a', '75', '6d', '64', '63', '61', '73', '74', '00', '11', '00', '10', '80', '00', '00', 'aa', '00', '38', '9b', '71', '03', '63', '62', '2e', '73', '74', '61', '72', '6c', '69', '6e', '67', '5f', '31', '00', '00', '00', '17', '77', '6a', '75', '6d', '62', '00', '00', '00', '28', '6a', '75', '6d', '64', '63', '61', '61', '73', '00', '11', '00', '10', '80', '00', '00', 'aa', '00', '38', '9b', '71', '03', '63', '61', '69', '2e', '61', '73', '73', '65', '72', '74', '69', '6f', '6e', '73', '00', '00', '00', '01', 'e6', '6a', '75', '6d', '62', '00', '00', '00', '33', '6a', '75', '6d', '64', '6A', '73', '6F', '6E', '00', '11', '00', '10', '80', '00', '00', 'aa', '00', '38', '9b', '71', '03', '73', '74', '61', '72', '6c', '69', '6e', '67', '2e', '6c', '6f', '63', '61', '74', '69', '6f', '6e', '2e', '70', '72', '65', '63', '69', '73', '65', '00', '00', '00', '01', 'ab', '6a', '73', '6f', '6e', '7b', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '47', '50', '53', '41', '63', '63', '75', '72', '61', '63', '79', '22', '3a', '20', '22', '31', '31', '2e', '37', '39', '32', '22', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '47', '50', '53', '41', '6c', '74', '69', '74', '75', '64', '65', '22', '3a', '20', '2d', '34', '2e', '36', '31', '37', '32', '37', '39', '30', '35', '33', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '47', '50', '53', '42', '61', '72', '69', '6e', '67', '22', '3a', '20', '32', '31', '32', '2e', '39', '34', '39', '30', '35', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '47', '50', '53', '42', '65', '61', '72', '69', '6e', '67', '41', '63', '63', '75', '72', '61', '63', '79', '22', '3a', '20', '30', '2e', '30', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '47', '50', '53', '4c', '61', '74', '69', '74', '75', '64', '65', '22', '3a', '20', '22', '32', '35', '2c', '32', '2c', '34', '32', '2e', '38', '34', '32', '4e', '22', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '47', '50', '53', '4c', '6f', '6e', '67', '69', '74', '75', '64', '65', '22', '3a', '20', '22', '31', '32', '31', '2c', '33', '31', '2c', '35', '30', '2e', '38', '36', '31', '45', '22', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '47', '50', '53', '53', '70', '65', '65', '64', '22', '3a', '20', '30', '2e', '32', '30', '32', '34', '38', '34', '35', '36', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '47', '50', '53', '53', '70', '65', '65', '64', '41', '63', '63', '75', '72', '61', '63', '79', '22', '3a', '20', '30', '2e', '32', '30', '32', '34', '38', '34', '35', '36', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '47', '50', '53', '54', '69', '6d', '65', '22', '3a', '20', '31', '35', '38', '33', '32', '36', '36', '30', '35', '35', '30', '30', '30', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '47', '50', '53', '54', '69', '6d', '65', '53', '74', '61', '6d', '70', '22', '3a', '20', '22', '32', '30', '32', '30', '2d', '30', '33', '2d', '30', '33', '54', '32', '30', '3a', '30', '37', '3a', '33', '35', '5a', '22', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '47', '50', '53', '56', '65', '72', '74', '69', '63', '61', '6c', '41', '63', '63', '75', '72', '61', '63', '79', '22', '3a', '20', '38', '2e', '30', '7d', '00', '00', '02', 'be', '6a', '75', '6d', '62', '00', '00', '00', '29', '6a', '75', '6d', '64', '6A', '73', '6F', '6E', '00', '11', '00', '10', '80', '00', '00', 'aa', '00', '38', '9b', '71', '03', '73', '74', '61', '72', '6c', '69', '6e', '67', '2e', '64', '65', '76', '69', '63', '65', '00', '00', '00', '02', '8d', '6a', '73', '6f', '6e', '7b', '22', '61', '6e', '64', '72', '6f', '69', '64', '3a', '41', '6e', '64', '72', '6f', '69', '64', '49', '64', '48', '61', '73', '68', '22', '3a', '20', '22', '38', '62', '34', '36', '61', '61', '62', '38', '32', '63', '33', '38', '36', '37', '63', '37', '62', '64', '61', '33', '32', '36', '38', '32', '62', '31', '35', '33', '34', '31', '37', '38', '64', '37', '66', '63', '65', '39', '35', '64', '63', '65', '37', '34', '39', '61', '61', '32', '30', '63', '63', '63', '37', '64', '38', '33', '37', '30', '38', '64', '64', '62', '37', '61', '22', '2c', '20', '22', '61', '6e', '64', '72', '6f', '69', '64', '3a', '42', '75', '69', '6c', '64', '49', '64', '22', '3a', '20', '22', '50', '51', '32', '41', '2e', '31', '39', '30', '32', '30', '35', '2e', '30', '30', '33', '20', '72', '65', '6c', '65', '61', '73', '65', '2d', '6b', '65', '79', '73', '22', '2c', '20', '22', '61', '6e', '64', '72', '6f', '69', '64', '3a', '42', '75', '69', '6c', '64', '54', '61', '67', '73', '22', '3a', '20', '22', '72', '65', '6c', '65', '61', '73', '65', '2d', '6b', '65', '79', '73', '22', '2c', '20', '22', '61', '6e', '64', '72', '6f', '69', '64', '3a', '42', '75', '69', '6c', '64', '54', '69', '6d', '65', '22', '3a', '20', '31', '35', '38', '33', '32', '36', '36', '30', '35', '35', '30', '30', '30', '2c', '20', '22', '61', '6e', '64', '72', '6f', '69', '64', '3a', '42', '75', '69', '6c', '64', '54', '69', '6d', '65', '73', '74', '61', '6d', '70', '22', '3a', '20', '22', '32', '30', '32', '30', '2d', '30', '34', '2d', '31', '32', '54', '30', '34', '3a', '33', '33', '3a', '30', '30', '5a', '22', '2c', '20', '22', '61', '6e', '64', '72', '6f', '69', '64', '3a', '42', '75', '69', '6c', '64', '54', '79', '70', '65', '22', '3a', '20', '22', '75', '73', '65', '72', '22', '2c', '20', '22', '61', '6e', '64', '72', '6f', '69', '64', '3a', '44', '65', '76', '69', '63', '65', '42', '6f', '61', '72', '64', '22', '3a', '20', '22', '73', '64', '6d', '38', '34', '35', '22', '2c', '20', '22', '61', '6e', '64', '72', '6f', '69', '64', '3a', '44', '65', '76', '69', '63', '65', '42', '72', '61', '6e', '64', '22', '3a', '20', '22', '68', '74', '63', '22', '2c', '20', '22', '61', '6e', '64', '72', '6f', '69', '64', '3a', '44', '65', '76', '69', '63', '65', '4e', '61', '6d', '65', '22', '3a', '20', '22', '68', '74', '63', '5f', '65', '78', '6f', '64', '75', '67', '6c', '22', '2c', '20', '22', '61', '6e', '64', '72', '6f', '69', '64', '3a', '45', '6e', '64', '50', '72', '6f', '64', '75', '63', '74', '4e', '61', '6d', '65', '22', '3a', '20', '22', '45', '58', '4f', '44', '55', '53', '20', '31', '22', '2c', '20', '22', '61', '6e', '64', '72', '6f', '69', '64', '3a', '46', '69', '6e', '67', '65', '72', '70', '72', '69', '6e', '74', '22', '3a', '20', '22', '68', '74', '63', '2f', '65', '78', '6f', '64', '75', '67', '6c', '5f', '30', '30', '37', '30', '39', '2f', '68', '74', '63', '5f', '65', '78', '6f', '64', '75', '67', '6c', '3a', '39', '2f', '50', '51', '32', '41', '2e', '31', '39', '30', '32', '30', '35', '2e', '30', '30', '33', '2f', '31', '31', '30', '39', '31', '39', '31', '2e', '32', '3a', '75', '73', '65', '72', '2f', '72', '65', '6c', '65', '61', '73', '65', '2d', '6b', '65', '79', '73', '22', '2c', '20', '22', '61', '6e', '64', '72', '6f', '69', '64', '3a', '48', '61', '72', '64', '77', '61', '72', '65', '22', '3a', '20', '22', '68', '74', '63', '5f', '65', '78', '6f', '22', '2c', '20', '22', '61', '6e', '64', '72', '6f', '69', '64', '3a', '4d', '61', '6e', '75', '66', '61', '63', '74', '75', '72', '65', '72', '22', '3a', '20', '22', '48', '54', '43', '22', '2c', '20', '22', '61', '6e', '64', '72', '6f', '69', '64', '3a', '4f', '76', '65', '72', '61', '6c', '6c', '50', '72', '6f', '64', '75', '63', '74', '4e', '61', '6d', '65', '22', '3a', '20', '22', '65', '78', '6f', '64', '75', '67', '6c', '5f', '30', '30', '37', '30', '39', '22', '7d', '00', '00', '05', 'ee', '6a', '75', '6d', '62', '00', '00', '00', '29', '6a', '75', '6d', '64', '6A', '73', '6F', '6E', '00', '11', '00', '10', '80', '00', '00', 'aa', '00', '38', '9b', '71', '03', '73', '74', '61', '72', '6c', '69', '6e', '67', '2e', '73', '65', '6e', '73', '6f', '72', '00', '00', '00', '05', 'bd', '6a', '73', '6f', '6e', '7b', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '53', '65', '6e', '73', '6f', '72', '41', '63', '63', '65', '6c', '65', '72', '6f', '6d', '65', '74', '65', '72', '22', '3a', '20', '22', '53', '65', '6e', '73', '6f', '72', '44', '61', '74', '61', '28', '61', '63', '63', '75', '72', '61', '63', '79', '3d', '33', '2e', '30', '2c', '20', '76', '61', '6c', '75', '65', '3d', '5b', '2d', '32', '2e', '32', '35', '38', '34', '34', '39', '38', '2c', '20', '35', '2e', '35', '34', '34', '36', '36', '39', '2c', '20', '37', '2e', '37', '36', '39', '35', '32', '31', '37', '5d', '29', '22', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '53', '65', '6e', '73', '6f', '72', '41', '63', '63', '65', '6c', '65', '72', '6f', '6d', '65', '74', '65', '72', '55', '6e', '63', '61', '6c', '69', '62', '72', '61', '74', '65', '64', '22', '3a', '20', '22', '53', '65', '6e', '73', '6f', '72', '44', '61', '74', '61', '28', '61', '63', '63', '75', '72', '61', '63', '79', '3d', '33', '2e', '30', '2c', '20', '76', '61', '6c', '75', '65', '3d', '5b', '2d', '31', '2e', '38', '32', '30', '32', '36', '37', '2c', '20', '35', '2e', '35', '34', '36', '38', '37', '34', '35', '2c', '20', '37', '2e', '37', '38', '31', '32', '38', '37', '2c', '20', '30', '2e', '30', '2c', '20', '30', '2e', '30', '2c', '20', '30', '2e', '30', '5d', '29', '22', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '53', '65', '6e', '73', '6f', '72', '47', '61', '6d', '65', '52', '6f', '74', '61', '74', '69', '6f', '6e', '56', '65', '63', '74', '6f', '72', '22', '3a', '20', '22', '53', '65', '6e', '73', '6f', '72', '44', '61', '74', '61', '28', '61', '63', '63', '75', '72', '61', '63', '79', '3d', '33', '2e', '30', '2c', '20', '76', '61', '6c', '75', '65', '3d', '5b', '30', '2e', '32', '38', '38', '39', '34', '30', '32', '38', '2c', '20', '30', '2e', '30', '38', '39', '39', '32', '36', '31', '31', '36', '2c', '20', '2d', '30', '2e', '30', '37', '37', '35', '36', '35', '38', '33', '34', '2c', '20', '30', '2e', '39', '34', '39', '39', '35', '31', '33', '35', '5d', '29', '22', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '53', '65', '6e', '73', '6f', '72', '47', '65', '6f', '6d', '61', '67', '6e', '65', '74', '69', '63', '52', '6f', '74', '61', '74', '69', '6f', '6e', '56', '65', '63', '74', '6f', '72', '22', '3a', '20', '22', '53', '65', '6e', '73', '6f', '72', '44', '61', '74', '61', '28', '61', '63', '63', '75', '72', '61', '63', '79', '3d', '33', '2e', '30', '2c', '20', '76', '61', '6c', '75', '65', '3d', '5b', '30', '2e', '31', '33', '30', '31', '38', '37', '36', '36', '2c', '20', '30', '2e', '32', '38', '34', '36', '39', '36', '30', '37', '2c', '20', '30', '2e', '36', '37', '35', '33', '35', '34', '30', '36', '2c', '20', '30', '2e', '36', '36', '37', '37', '36', '39', '31', '33', '2c', '20', '30', '2e', '30', '5d', '29', '22', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '53', '65', '6e', '73', '6f', '72', '47', '72', '61', '76', '69', '74', '79', '22', '3a', '20', '22', '53', '65', '6e', '73', '6f', '72', '44', '61', '74', '61', '28', '61', '63', '63', '75', '72', '61', '63', '79', '3d', '4e', '4f', '5f', '55', '50', '44', '41', '54', '45', '5f', '52', '45', '43', '45', '49', '56', '45', '44', '5f', '44', '55', '52', '49', '4e', '47', '5f', '53', '4e', '41', '50', '2c', '20', '76', '61', '6c', '75', '65', '3d', '5b', '2d', '32', '2e', '31', '31', '37', '33', '34', '38', '37', '2c', '20', '35', '2e', '32', '34', '33', '36', '37', '38', '36', '2c', '20', '38', '2e', '30', '31', '31', '38', '30', '32', '5d', '29', '22', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '53', '65', '6e', '73', '6f', '72', '47', '79', '72', '6f', '73', '63', '6f', '70', '65', '22', '3a', '20', '22', '53', '65', '6e', '73', '6f', '72', '44', '61', '74', '61', '28', '61', '63', '63', '75', '72', '61', '63', '79', '3d', '33', '2e', '30', '2c', '20', '76', '61', '6c', '75', '65', '3d', '5b', '30', '2e', '30', '30', '39', '30', '35', '34', '36', '33', '37', '35', '2c', '20', '30', '2e', '30', '30', '32', '36', '36', '33', '31', '33', '37', '36', '2c', '20', '30', '2e', '30', '31', '31', '37', '31', '38', '32', '39', '37', '5d', '29', '22', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '53', '65', '6e', '73', '6f', '72', '47', '79', '72', '6f', '73', '63', '6f', '70', '65', '55', '6e', '63', '61', '6c', '69', '62', '72', '61', '74', '65', '64', '22', '3a', '20', '22', '53', '65', '6e', '73', '6f', '72', '44', '61', '74', '61', '28', '61', '63', '63', '75', '72', '61', '63', '79', '3d', '33', '2e', '30', '2c', '20', '76', '61', '6c', '75', '65', '3d', '5b', '2d', '30', '2e', '30', '30', '37', '34', '35', '37', '30', '32', '31', '2c', '20', '30', '2e', '30', '30', '34', '32', '36', '31', '30', '32', '31', '2c', '20', '2d', '30', '2e', '30', '30', '36', '39', '32', '34', '32', '36', '36', '35', '2c', '20', '30', '2e', '30', '2c', '20', '30', '2e', '30', '2c', '20', '30', '2e', '30', '5d', '29', '22', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '53', '65', '6e', '73', '6f', '72', '4c', '69', '67', '68', '74', '22', '3a', '20', '22', '53', '65', '6e', '73', '6f', '72', '44', '61', '74', '61', '28', '61', '63', '63', '75', '72', '61', '63', '79', '3d', '33', '2e', '30', '2c', '20', '76', '61', '6c', '75', '65', '3d', '5b', '34', '37', '37', '2e', '30', '2c', '20', '30', '2e', '30', '2c', '20', '30', '2e', '30', '5d', '29', '22', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '53', '65', '6e', '73', '6f', '72', '4c', '69', '6e', '65', '61', '72', '41', '63', '63', '65', '6c', '65', '72', '61', '74', '69', '6f', '6e', '22', '3a', '20', '22', '53', '65', '6e', '73', '6f', '72', '44', '61', '74', '61', '28', '61', '63', '63', '75', '72', '61', '63', '79', '3d', '4e', '4f', '5f', '55', '50', '44', '41', '54', '45', '5f', '52', '45', '43', '45', '49', '56', '45', '44', '5f', '44', '55', '52', '49', '4e', '47', '5f', '53', '4e', '41', '50', '2c', '20', '76', '61', '6c', '75', '65', '3d', '5b', '30', '2e', '31', '39', '34', '39', '32', '37', '33', '35', '2c', '20', '30', '2e', '30', '35', '39', '36', '38', '30', '30', '33', '37', '2c', '20', '30', '2e', '32', '30', '30', '36', '34', '32', '30', '32', '5d', '29', '22', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '53', '65', '6e', '73', '6f', '72', '4d', '61', '67', '6e', '65', '74', '69', '63', '46', '69', '65', '6c', '64', '22', '3a', '20', '22', '53', '65', '6e', '73', '6f', '72', '44', '61', '74', '61', '28', '61', '63', '63', '75', '72', '61', '63', '79', '3d', '4e', '4f', '5f', '55', '50', '44', '41', '54', '45', '5f', '52', '45', '43', '45', '49', '56', '45', '44', '5f', '44', '55', '52', '49', '4e', '47', '5f', '53', '4e', '41', '50', '2c', '20', '76', '61', '6c', '75', '65', '3d', '5b', '31', '30', '36', '2e', '37', '32', '33', '39', '33', '2c', '20', '2d', '31', '38', '2e', '31', '38', '33', '31', '30', '34', '2c', '20', '2d', '31', '32', '2e', '38', '37', '38', '31', '34', '38', '5d', '29', '22', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '53', '65', '6e', '73', '6f', '72', '4d', '61', '67', '6e', '65', '74', '69', '63', '46', '69', '65', '6c', '64', '55', '6e', '63', '61', '6c', '69', '62', '72', '61', '74', '65', '64', '22', '3a', '20', '22', '53', '65', '6e', '73', '6f', '72', '44', '61', '74', '61', '28', '61', '63', '63', '75', '72', '61', '63', '79', '3d', '33', '2e', '30', '2c', '20', '76', '61', '6c', '75', '65', '3d', '5b', '31', '30', '35', '2e', '30', '39', '38', '30', '37', '2c', '20', '32', '37', '2e', '38', '34', '35', '33', '38', '33', '2c', '20', '2d', '31', '32', '2e', '33', '32', '32', '33', '31', '39', '2c', '20', '39', '2e', '34', '37', '37', '34', '32', '34', '45', '2d', '33', '38', '2c', '20', '34', '36', '2e', '35', '31', '31', '38', '39', '38', '2c', '20', '30', '2e', '32', '30', '36', '32', '39', '39', '34', '37', '5d', '29', '22', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '53', '65', '6e', '73', '6f', '72', '52', '6f', '74', '61', '74', '69', '6f', '6e', '56', '65', '63', '74', '6f', '72', '22', '3a', '20', '22', '53', '65', '6e', '73', '6f', '72', '44', '61', '74', '61', '28', '61', '63', '63', '75', '72', '61', '63', '79', '3d', '33', '2e', '30', '2c', '20', '76', '61', '6c', '75', '65', '3d', '5b', '30', '2e', '31', '34', '38', '34', '34', '38', '31', '38', '2c', '20', '30', '2e', '32', '36', '33', '36', '38', '30', '32', '32', '2c', '20', '30', '2e', '35', '39', '35', '34', '31', '35', '33', '35', '2c', '20', '30', '2e', '37', '34', '34', '32', '35', '39', '32', '2c', '20', '30', '2e', '30', '5d', '29', '22', '7d', '00', '00', '0c', 'b5', '6a', '75', '6d', '62', '00', '00', '00', '2c', '6a', '75', '6d', '64', '6A', '73', '6F', '6E', '00', '11', '00', '10', '80', '00', '00', 'aa', '00', '38', '9b', '71', '03', '73', '74', '61', '72', '6c', '69', '6e', '67', '2e', '69', '6e', '74', '65', '67', '72', '69', '74', '79', '00', '00', '00', '0c', '81', '6a', '73', '6f', '6e', '7b', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '50', '75', '62', '6c', '69', '63', '4b', '65', '79', '22', '3a', '20', '22', '2d', '2d', '2d', '2d', '2d', '42', '45', '47', '49', '4e', '20', '50', '47', '50', '20', '50', '55', '42', '4c', '49', '43', '20', '4b', '45', '59', '20', '42', '4c', '4f', '43', '4b', '2d', '2d', '2d', '2d', '2d', '56', '65', '72', '73', '69', '6f', '6e', '3a', '20', '42', '43', '50', '47', '20', '76', '40', '52', '45', '4c', '45', '41', '53', '45', '5f', '4e', '41', '4d', '45', '40', '6d', '51', '49', '4e', '42', '46', '35', '65', '6d', '52', '51', '42', '45', '41', '43', '30', '59', '4c', '4d', '79', '6f', '6e', '72', '78', '41', '54', '47', '52', '34', '66', '65', '59', '6b', '63', '48', '2b', '63', '54', '57', '4f', '6e', '6e', '71', '55', '50', '70', '36', '6b', '51', '32', '42', '34', '38', '52', '41', '55', '6f', '64', '67', '6c', '43', '55', '78', '72', '69', '76', '6a', '59', '54', '36', '6e', '6a', '69', '55', '7a', '50', '4b', '66', '2b', '32', '57', '47', '31', '38', '2b', '2f', '4d', '37', '62', '6e', '59', '6a', '2b', '5a', '34', '50', '35', '42', '30', '62', '5a', '55', '64', '61', '37', '37', '7a', '5a', '72', '4e', '6d', '38', '42', '41', '4d', '42', '61', '69', '47', '78', '74', '63', '44', '49', '35', '38', '75', '62', '50', '5a', '31', '6e', '6f', '30', '6a', '78', '39', '44', '61', '43', '6d', '56', '56', '32', '6e', '59', '63', '71', '67', '78', '4c', '75', '73', '76', '2f', '65', '65', '58', '52', '4e', '57', '31', '45', '2f', '55', '57', '46', '71', '74', '5a', '67', '4c', '6b', '69', '50', '4a', '37', '7a', '6a', '77', '74', '34', '38', '5a', '6a', '51', '34', '70', '41', '31', '55', '79', '63', '30', '30', '58', '61', '58', '70', '4b', '33', '48', '34', '64', '45', '57', '50', '46', '5a', '69', '4c', '48', '76', '38', '68', '6e', '59', '4f', '36', '4f', '32', '4d', '4d', '69', '62', '2f', '74', '69', '75', '50', '58', '38', '65', '32', '52', '43', '57', '79', '46', '67', '54', '35', '33', '54', '35', '46', '71', '37', '49', '2b', '79', '65', '64', '4d', '78', '62', '43', '61', '67', '4f', '33', '32', '53', '47', '49', '61', '33', '79', '56', '37', '32', '66', '73', '5a', '53', '76', '39', '49', '74', '51', '39', '61', '34', '42', '2b', '53', '73', '69', '64', '71', '56', '41', '4c', '65', '69', '68', '41', '2f', '76', '38', '36', '43', '78', '38', '75', '46', '31', '78', '46', '51', '48', '54', '7a', '4a', '35', '76', '78', '52', '66', '71', '59', '74', '59', '56', '6f', '4b', '49', '7a', '41', '61', '50', '69', '7a', '58', '4c', '35', '49', '69', '44', '58', '6e', '66', '66', '52', '54', '59', '39', '79', '66', '4d', '72', '37', '4e', '58', '53', '48', '30', '6c', '49', '32', '70', '39', '6f', '7a', '73', '78', '73', '77', '5a', '56', '63', '59', '45', '75', '4c', '72', '66', '66', '2b', '4a', '4e', '30', '5a', '45', '4b', '74', '6f', '42', '64', '6b', '4c', '65', '6a', '4f', '50', '73', '66', '31', '6e', '6a', '71', '46', '39', '49', '78', '45', '71', '45', '48', '34', '6d', '73', '4f', '32', '37', '6b', '6e', '64', '76', '54', '55', '51', '6b', '66', '71', '57', '75', '57', '37', '53', '6e', '33', '6c', '70', '32', '34', '78', '57', '51', '66', '4b', '64', '55', '70', '4d', '4a', '59', '33', '63', '2f', '6f', '69', '56', '53', '6d', '58', '67', '50', '79', '75', '37', '55', '2f', '66', '4b', '72', '4f', '6a', '59', '72', '67', '56', '6a', '2f', '77', '43', '46', '39', '74', '36', '4e', '38', '39', '38', '52', '61', '5a', '31', '74', '47', '30', '52', '74', '64', '55', '74', '6a', '68', '4c', '7a', '4e', '43', '41', '4c', '51', '6c', '4d', '33', '44', '79', '30', '56', '58', '30', '49', '4b', '71', '6f', '6c', '42', '76', '43', '4c', '32', '38', '33', '44', '69', '42', '4f', '6f', '68', '45', '50', '2b', '6b', '70', '73', '54', '35', '71', '64', '33', '6e', '6d', '64', '35', '5a', '38', '30', '35', '55', '4e', '77', '4d', '37', '4d', '47', '50', '50', '63', '72', '7a', '79', '34', '71', '4c', '46', '37', '34', '51', '64', '47', '6a', '67', '56', '70', '59', '71', '50', '69', '75', '41', '54', '77', '57', '32', '6d', '53', '65', '44', '79', '63', '48', '6f', '42', '4d', '53', '53', '35', '31', '79', '68', '36', '62', '68', '4c', '70', '43', '64', '47', '55', '66', '56', '66', '4b', '50', '33', '33', '78', '47', '67', '6c', '66', '30', '53', '37', '43', '4e', '41', '4a', '6f', '4c', '30', '4f', '53', '52', '65', '54', '49', '32', '64', '36', '5a', '34', '50', '44', '52', '39', '6c', '6c', '57', '68', '78', '6b', '53', '62', '4b', '68', '52', '57', '32', '44', '41', '49', '61', '65', '51', '4b', '66', '76', '68', '2b', '48', '52', '6c', '2f', '64', '78', '65', '6b', '44', '43', '2f', '50', '7a', '2b', '31', '44', '55', '38', '4e', '64', '64', '67', '6f', '4a', '51', '41', '52', '41', '51', '41', '42', '74', '42', '74', '75', '62', '32', '39', '75', '5a', '55', '42', '77', '63', '6d', '39', '76', '5a', '6d', '31', '76', '5a', '47', '55', '75', '64', '32', '6c', '30', '62', '6d', '56', '7a', '63', '79', '35', '76', '63', '6d', '65', '4a', '41', '69', '34', '45', '45', '77', '45', '43', '41', '42', '67', '46', '41', '6c', '35', '65', '6d', '52', '59', '43', '47', '34', '4d', '45', '43', '77', '6b', '49', '42', '77', '59', '56', '43', '41', '49', '4a', '43', '67', '73', '43', '48', '67', '45', '41', '43', '67', '6b', '51', '6a', '2b', '55', '71', '50', '6f', '44', '45', '75', '34', '6d', '58', '55', '77', '2f', '2f', '51', '49', '4c', '53', '50', '55', '2f', '4f', '36', '6b', '66', '72', '46', '68', '2f', '57', '62', '6c', '71', '6a', '43', '45', '38', '38', '5a', '59', '56', '39', '2b', '54', '43', '2b', '41', '6e', '6d', '56', '55', '73', '33', '39', '72', '49', '69', '49', '7a', '54', '6f', '63', '6e', '6f', '74', '4a', '49', '79', '63', '62', '7a', '58', '44', '43', '56', '42', '46', '37', '7a', '53', '4f', '4b', '44', '4b', '4e', '32', '30', '38', '56', '6f', '49', '71', '43', '37', '62', '6f', '46', '51', '67', '67', '6f', '54', '50', '4f', '74', '4c', '43', '39', '62', '6f', '44', '4d', '49', '6a', '61', '37', '37', '34', '69', '47', '47', '56', '62', '4c', '68', '65', '65', '58', '72', '4e', '52', '4c', '4b', '6d', '72', '43', '77', '6c', '69', '65', '64', '4e', '78', '6b', '52', '55', '68', '53', '42', '33', '62', '6c', '6a', '54', '53', '4d', '6f', '51', '4f', '61', '52', '54', '32', '4b', '32', '4e', '4d', '63', '6d', '37', '4d', '68', '4a', '73', '64', '70', '53', '5a', '36', '37', '4f', '42', '6e', '58', '76', '79', '7a', '58', '31', '72', '77', '75', '62', '4b', '4f', '51', '4d', '55', '7a', '46', '67', '44', '44', '45', '52', '4e', '58', '54', '33', '68', '6d', '79', '50', '67', '67', '32', '77', '64', '44', '4c', '45', '54', '77', '75', '47', '73', '52', '32', '64', '4e', '73', '6f', '6a', '73', '70', '2f', '2b', '73', '58', '56', '34', '33', '66', '36', '58', '33', '76', '4e', '6c', '5a', '6b', '51', '55', '6a', '71', '73', '58', '63', '55', '30', '53', '62', '5a', '68', '41', '41', '70', '41', '2f', '53', '45', '59', '45', '6d', '56', '78', '2f', '58', '6f', '65', '56', '48', '6c', '70', '33', '6e', '6a', '6e', '34', '71', '51', '45', '38', '69', '30', '76', '2f', '31', '79', '43', '69', '56', '4c', '39', '46', '66', '66', '6d', '62', '4f', '58', '53', '78', '74', '4a', '53', '6e', '43', '35', '4a', '37', '6a', '49', '75', '48', '56', '69', '41', '71', '37', '50', '74', '54', '5a', '64', '45', '5a', '4c', '38', '6c', '4a', '66', '4b', '47', '57', '2f', '53', '74', '2f', '71', '76', '71', '30', '39', '7a', '66', '30', '79', '57', '67', '39', '54', '4f', '39', '4d', '30', '61', '6a', '4d', '4d', '64', '44', '78', '75', '66', '61', '44', '39', '2b', '55', '50', '6b', '64', '69', '33', '4e', '78', '54', '35', '58', '37', '78', '4c', '46', '7a', '6c', '4e', '32', '78', '7a', '55', '49', '41', '62', '52', '57', '68', '37', '64', '69', '48', '2b', '42', '48', '78', '37', '75', '68', '43', '36', '69', '6c', '4a', '36', '79', '42', '48', '62', '79', '6f', '72', '38', '57', '44', '36', '61', '76', '7a', '4d', '4c', '52', '4c', '38', '56', '63', '4c', '34', '48', '34', '44', '4c', '63', '52', '2b', '33', '6f', '2f', '2b', '65', '7a', '48', '45', '54', '73', '6c', '4d', '61', '53', '6f', '7a', '72', '72', '37', '32', '75', '38', '79', '78', '6a', '67', '4d', '2b', '4f', '72', '39', '79', '78', '4d', '6a', '53', '4a', '61', '35', '77', '4d', '62', '6d', '2b', '73', '61', '31', '2b', '68', '33', '46', '6b', '68', '41', '37', '57', '30', '36', '76', '36', '61', '53', '74', '5a', '2f', '63', '47', '56', '2b', '6d', '58', '30', '31', '39', '57', '73', '34', '4d', '36', '39', '58', '53', '6b', '54', '5a', '53', '6d', '78', '36', '59', '58', '4f', '73', '30', '78', '71', '64', '4d', '6c', '48', '30', '41', '36', '31', '6b', '59', '49', '55', '51', '49', '57', '6e', '53', '55', '41', '78', '74', '54', '38', '31', '2f', '79', '47', '31', '4a', '48', '55', '69', '6e', '32', '69', '4c', '38', '54', '67', '44', '6f', '58', '38', '7a', '45', '4a', '59', '4f', '30', '55', '77', '50', '2b', '63', '75', '66', '38', '4a', '56', '41', '78', '31', '48', '30', '55', '75', '65', '4e', '33', '46', '62', '46', '36', '72', '45', '41', '51', '78', '52', '38', '63', '38', '54', '49', '76', '56', '78', '68', '6f', '34', '31', '6e', '70', '56', '55', '4c', '34', '49', '45', '37', '62', '39', '4d', '53', '33', '73', '33', '49', '4a', '2b', '48', '48', '64', '69', '67', '46', '5a', '6e', '57', '4d', '44', '6d', '75', '52', '6a', '35', '5a', '4e', '46', '67', '37', '7a', '6c', '7a', '68', '55', '62', '42', '36', '65', '61', '31', '32', '43', '30', '56', '61', '35', '41', '67', '30', '45', '58', '6c', '36', '5a', '46', '67', '45', '51', '41', '4f', '74', '73', '35', '33', '78', '59', '63', '61', '4c', '53', '39', '74', '59', '55', '77', '43', '56', '69', '38', '42', '72', '37', '50', '34', '79', '65', '46', '34', '36', '78', '6b', '58', '69', '62', '42', '72', '55', '76', '76', '57', '56', '30', '44', '6a', '46', '4e', '42', '35', '6e', '4e', '32', '69', '6f', '61', '58', '30', '6e', '56', '6f', '31', '6b', '53', '48', '2b', '43', '2b', '75', '68', '43', '2f', '79', '34', '32', '44', '58', '37', '42', '4c', '4f', '5a', '72', '52', '64', '6a', '35', '74', '73', '51', '65', '42', '4e', '47', '43', '43', '52', '61', '59', '70', '38', '39', '48', '39', '37', '6c', '75', '62', '79', '54', '45', '51', '6f', '51', '50', '4f', '79', '54', '59', '6a', '57', '6b', '34', '76', '67', '44', '6c', '68', '7a', '52', '42', '30', '4d', '30', '55', '6e', '76', '75', '6a', '39', '61', '46', '68', '79', '57', '43', '68', '52', '4f', '6a', '44', '58', '72', '54', '6b', '70', '36', '78', '4f', '6b', '61', '46', '76', '4b', '76', '65', '56', '5a', '46', '37', '44', '38', '47', '61', '62', '56', '78', '2b', '48', '66', '67', '4b', '68', '77', '6e', '54', '39', '4d', '67', '66', '36', '61', '58', '34', '41', '70', '49', '4f', '4f', '72', '6f', '45', '35', '54', '2f', '4b', '61', '33', '41', '4e', '59', '79', '30', '63', '7a', '69', '4b', '57', '64', '75', '6f', '63', '53', '66', '52', '49', '46', '6c', '48', '64', '52', '78', '33', '4a', '58', '4e', '47', '77', '67', '69', '77', '63', '48', '56', '70', '70', '4d', '57', '69', '55', '72', '49', '55', '6a', '73', '78', '61', '65', '56', '47', '54', '4c', '67', '2b', '39', '4f', '4f', '4c', '66', '71', '4a', '45', '43', '35', '70', '61', '39', '5a', '34', '62', '33', '30', '58', '4a', '57', '56', '44', '73', '55', '6c', '36', '35', '66', '68', '68', '53', '5a', '72', '31', '62', '44', '77', '41', '78', '30', '2f', '55', '73', '61', '77', '69', '42', '6f', '67', '4c', '42', '59', '30', '70', '33', '41', '47', '43', '32', '71', '63', '69', '68', '61', '69', '67', '4f', '53', '57', '59', '54', '75', '50', '31', '5a', '61', '57', '38', '51', '59', '4c', '37', '7a', '36', '56', '59', '2b', '5a', '41', '6a', '66', '39', '2f', '43', '50', '54', '72', '64', '69', '65', '48', '72', '38', '6c', '76', '30', '44', '39', '70', '30', '2b', '6d', '65', '70', '45', '72', '64', '6b', '75', '76', '59', '76', '62', '37', '52', '38', '31', '39', '4a', '6c', '43', '31', '64', '6c', '45', '41', '39', '33', '53', '35', '58', '53', '70', '2b', '4e', '56', '34', '72', '59', '59', '66', '56', '5a', '66', '46', '34', '51', '73', '70', '35', '33', '6e', '46', '61', '76', '73', '48', '79', '6c', '77', '38', '52', '39', '48', '30', '70', '67', '71', '56', '76', '72', '35', '31', '4f', '78', '67', '6a', '72', '71', '31', '52', '47', '73', '47', '72', '70', '32', '2b', '38', '4c', '61', '6d', '2f', '4b', '56', '6f', '41', '6c', '33', '2f', '41', '5a', '2b', '4c', '55', '63', '4f', '57', '53', '4a', '58', '32', '63', '30', '68', '68', '7a', '4c', '45', '33', '42', '6b', '6d', '4e', '78', '6b', '57', '6b', '72', '49', '44', '39', '4f', '72', '32', '50', '4e', '6d', '4d', '49', '6d', '35', '77', '53', '45', '59', '58', '34', '47', '6d', '57', '2b', '67', '67', '54', '45', '75', '51', '4b', '66', '6a', '57', '56', '41', '71', '32', '48', '58', '4d', '4b', '72', '59', '77', '6b', '43', '53', '61', '42', '4f', '44', '61', '59', '5a', '64', '39', '48', '39', '4e', '4f', '35', '57', '67', '39', '4a', '62', '77', '32', '48', '79', '4c', '4f', '61', '62', '77', '6a', '62', '67', '4c', '48', '64', '37', '2b', '73', '63', '53', '44', '71', '66', '52', '32', '4a', '34', '72', '61', '71', '7a', '64', '6b', '6c', '44', '73', '57', '33', '32', '46', '61', '6e', '50', '6f', '77', '70', '42', '39', '42', '66', '4a', '66', '35', '33', '4e', '6c', '54', '59', '56', '6e', '6f', '61', '52', '35', '77', '6e', '37', '6a', '45', '35', '5a', '69', '62', '57', '7a', '41', '51', '4e', '4f', '63', '79', '70', '2b', '64', '36', '2b', '4a', '38', '46', '62', '50', '79', '6f', '33', '44', '70', '55', '54', '7a', '41', '64', '72', '51', '4e', '33', '71', '55', '7a', '31', '5a', '6f', '37', '31', '4a', '41', '42', '45', '42', '41', '41', '47', '4a', '41', '68', '38', '45', '47', '41', '45', '43', '41', '41', '6b', '46', '41', '6c', '35', '65', '6d', '52', '59', '43', '47', '77', '77', '41', '43', '67', '6b', '51', '6a', '2b', '55', '71', '50', '6f', '44', '45', '75', '34', '6d', '6a', '66', '51', '2f', '2f', '54', '65', '33', '41', '33', '6e', '61', '5a', '62', '53', '34', '42', '62', '41', '74', '7a', '31', '42', '35', '6d', '4d', '66', '38', '4b', '69', '34', '4e', '7a', '4e', '36', '36', '68', '37', '37', '5a', '41', '4e', '59', '4c', '38', '63', '62', '66', '78', '74', '4c', '38', '64', '52', '32', '46', '51', '35', '56', '4c', '76', '44', '74', '39', '56', '6d', '46', '6b', '65', '72', '69', '6c', '46', '74', '59', '7a', '70', '47', '73', '54', '56', '6a', '2f', '38', '36', '52', '54', '55', '79', '43', '6d', '45', '68', '6b', '35', '6b', '56', '57', '5a', '52', '75', '54', '53', '65', '6d', '6d', '67', '76', '59', '74', '53', '75', '35', '31', '62', '54', '78', '61', '63', '56', '43', '6c', '56', '6a', '5a', '4d', '39', '53', '77', '62', '2b', '51', '73', '65', '68', '4d', '4d', '53', '35', '6a', '56', '72', '59', '4b', '34', '36', '5a', '77', '48', '33', '62', '7a', '6c', '36', '31', '67', '77', '6f', '75', '34', '70', '77', '78', '72', '4a', '6c', '55', '4b', '6c', '47', '48', '46', '43', '2b', '64', '54', '44', '6e', '36', '71', '45', '77', '62', '2b', '51', '51', '74', '4c', '66', '37', '62', '61', '43', '57', '78', '34', '74', '74', '72', '4f', '49', '51', '63', '48', '6a', '46', '36', '2b', '51', '6e', '34', '37', '55', '6d', '30', '34', '72', '79', '55', '74', '5a', '48', '50', '30', '38', '2b', '51', '52', '76', '54', '63', '6d', '46', '75', '76', '75', '44', '53', '6c', '30', '4a', '4a', '48', '59', '32', '4b', '36', '57', '38', '6c', '6f', '2f', '57', '44', '70', '32', '34', '39', '6e', '50', '65', '4d', '43', '77', '48', '64', '63', '36', '2b', '66', '47', '55', '61', '45', '66', '48', '6b', '45', '75', '4b', '61', '43', '54', '34', '44', '49', '46', '6d', '35', '56', '37', '2f', '4a', '75', '6a', '2f', '6d', '66', '65', '72', '6f', '73', '59', '32', '35', '42', '46', '6f', '6f', '65', '56', '4b', '70', '53', '6e', '6a', '42', '6f', '6a', '72', '75', '42', '4d', '41', '5a', '58', '4a', '51', '7a', '6e', '63', '71', '6a', '65', '47', '51', '49', '64', '54', '53', '32', '6b', '57', '7a', '41', '66', '4f', '63', '30', '36', '48', '63', '34', '35', '71', '41', '62', '61', '6a', '71', '6c', '38', '75', '42', '55', '33', '31', '7a', '59', '42', '7a', '4a', '6c', '43', '4c', '6d', '47', '6a', '30', '5a', '57', '44', '7a', '59', '61', '62', '33', '6d', '77', '77', '48', '37', '55', '52', '2b', '6d', '6b', '4d', '4f', '7a', '48', '39', '7a', '4a', '4a', '2b', '6b', '42', '43', '63', '6d', '61', '48', '6a', '59', '4b', '71', '6c', '4f', '76', '61', '4d', '2b', '42', '52', '38', '49', '5a', '48', '69', '62', '62', '71', '42', '30', '61', '64', '5a', '48', '37', '54', '64', '6a', '64', '65', '2f', '36', '2b', '65', '6b', '66', '79', '33', '57', '33', '50', '62', '49', '37', '78', '41', '47', '34', '57', '31', '43', '50', '41', '49', '34', '6a', '69', '69', '76', '31', '4d', '63', '42', '66', '69', '59', '77', '47', '4b', '32', '4a', '7a', '77', '2b', '49', '6d', '54', '44', '6e', '67', '42', '39', '36', '71', '73', '45', '41', '36', '47', '35', '6b', '61', '71', '69', '76', '77', '6f', '4e', '78', '70', '2f', '79', '57', '31', '69', '4d', '78', '77', '57', '41', '6c', '45', '68', '72', '53', '53', '73', '36', '61', '37', '4b', '55', '7a', '32', '4e', '2f', '69', '33', '4e', '6c', '73', '38', '59', '65', '53', '4a', '44', '47', '77', '66', '32', '38', '6d', '37', '67', '2f', '77', '71', '4b', '79', '63', '39', '43', '2b', '59', '51', '66', '73', '2f', '69', '56', '73', '71', '2f', '35', '36', '68', '77', '79', '4c', '64', '66', '30', '71', '46', '64', '39', '79', '62', '39', '44', '6b', '56', '74', '6f', '7a', '48', '4f', '52', '6e', '67', '67', '65', '37', '39', '30', '6d', '78', '72', '78', '6d', '33', '53', '4e', '73', '77', '46', '7a', '31', '58', '66', '50', '63', '4b', '48', '38', '4f', '4a', '49', '6d', '79', '54', '73', '6f', '52', '30', '4a', '33', '6f', '75', '4a', '46', '2b', '72', '4b', '64', '33', '4f', '33', '51', '67', '6d', '6c', '44', '45', '5a', '6c', '71', '7a', '38', '4d', '6f', '6e', '73', '78', '32', '75', '73', '78', '71', '76', '38', '74', '79', '43', '58', '37', '76', '2b', '70', '30', '4e', '34', '3d', '3d', '59', '65', '54', '44', '2d', '2d', '2d', '2d', '2d', '45', '4e', '44', '20', '50', '47', '50', '20', '50', '55', '42', '4c', '49', '43', '20', '4b', '45', '59', '20', '42', '4c', '4f', '43', '4b', '2d', '2d', '2d', '2d', '2d', '22', '2c', '20', '22', '73', '74', '61', '72', '6c', '69', '6e', '67', '3a', '4d', '65', '64', '69', '61', '48', '61', '73', '68', '22', '3a', '20', '22', '62', '61', '35', '31', '62', '30', '66', '31', '35', '34', '62', '62', '37', '35', '64', '33', '65', '35', '66', '35', '35', '37', '35', '36', '39', '65', '34', '36', '31', '32', '62', '32', '65', '31', '65', '30', '34', '63', '35', '35', '36', '65', '35', '62', '65', '61', '66', '32', '37', '62', '66', '63', '64', '65', '30', '34', '30', '34', '31', '32', '64', '65', '35', '32', '22', '2c', '20', '22', '73', '74', '61', '72', '69', '6c', '6e', '67', '3a', '4d', '65', '64', '69', '61', '4b', '65', '79', '22', '3a', '20', '22', '62', '61', '35', '31', '62', '30', '66', '31', '35', '34', '5f', '31', '35', '38', '33', '32', '35', '38', '36', '35', '39', '34', '35', '39', '22', '7d', '00', '00', '04', 'd7', '6a', '75', '6d', '62', '00', '00', '00', '23', '6a', '75', '6d', '64', '63', '61', '63', '6c', '00', '11', '00', '10', '80', '00', '00', 'aa', '00', '38', '9b', '71', '03', '63', '61', '69', '2e', '63', '6c', '61', '69', '6d', '00', '00', '00', '04', 'ac', '6a', '73', '6f', '6e', '7b', '22', '72', '65', '63', '6f', '72', '64', '65', '72', '22', '3a', '20', '22', '53', '74', '61', '72', '6c', '69', '6e', '67', '20', '43', '61', '70', '74', '75', '72', '65', '22', '2c', '20', '22', '73', '69', '67', '6e', '61', '74', '75', '72', '65', '22', '3a', '20', '22', '73', '65', '6c', '66', '23', '6a', '75', '6d', '62', '66', '3d', '63', '61', '69', '2f', '63', '62', '2e', '73', '74', '61', '72', '6c', '69', '6e', '67', '5f', '31', '2f', '63', '61', '69', '2e', '73', '69', '67', '6e', '61', '74', '75', '72', '65', '22', '2c', '20', '22', '61', '73', '73', '65', '72', '74', '69', '6f', '6e', '73', '22', '3a', '20', '5b', '22', '73', '65', '6c', '66', '23', '6a', '75', '6d', '62', '66', '3d', '63', '61', '69', '2f', '63', '62', '2e', '73', '74', '61', '72', '6c', '69', '6e', '67', '5f', '31', '2f', '63', '61', '69', '2e', '61', '73', '73', '65', '72', '74', '69', '6f', '6e', '73', '2f', '73', '74', '61', '72', '6c', '69', '6e', '67', '2e', '6c', '6f', '63', '61', '74', '69', '6f', '6e', '2e', '70', '72', '65', '63', '69', '73', '65', '3f', '68', '6c', '3d', '7a', '32', '36', '79', '63', '41', '4e', '52', '67', '74', '57', '62', '71', '59', '58', '39', '63', '64', '73', '57', '44', '34', '72', '73', '54', '71', '7a', '38', '52', '59', '48', '51', '41', '72', '72', '71', '34', '43', '5a', '4a', '77', '5a', '6e', '31', '63', '78', '58', '37', '33', '6b', '54', '50', '36', '78', '33', '72', '52', '63', '42', '73', '55', '66', '4d', '6f', '42', '55', '41', '56', '62', '54', '45', '42', '37', '4b', '22', '2c', '20', '22', '73', '65', '6c', '66', '23', '6a', '75', '6d', '62', '66', '3d', '63', '61', '69', '2f', '63', '62', '2e', '73', '74', '61', '72', '6c', '69', '6e', '67', '5f', '31', '2f', '63', '61', '69', '2e', '61', '73', '73', '65', '72', '74', '69', '6f', '6e', '73', '2f', '73', '74', '61', '72', '6c', '69', '6e', '67', '2e', '73', '65', '6e', '73', '6f', '72', '73', '3f', '68', '6c', '3d', '7a', '32', '36', '79', '63', '41', '4e', '52', '67', '74', '57', '62', '71', '59', '58', '39', '63', '64', '73', '57', '44', '34', '72', '73', '54', '71', '7a', '38', '52', '59', '48', '51', '41', '72', '72', '71', '34', '43', '5a', '4a', '77', '5a', '6e', '31', '63', '78', '58', '37', '33', '6b', '54', '50', '36', '78', '33', '72', '52', '63', '42', '73', '55', '66', '4d', '76', '59', '34', '51', '46', '45', '4e', '33', '39', '37', '33', '22', '2c', '20', '22', '73', '65', '6c', '66', '23', '6a', '75', '6d', '62', '66', '3d', '63', '61', '69', '2f', '63', '62', '2e', '73', '74', '61', '72', '6c', '69', '6e', '67', '5f', '31', '2f', '63', '61', '69', '2e', '61', '73', '73', '65', '72', '74', '69', '6f', '6e', '73', '2f', '73', '74', '61', '72', '6c', '69', '6e', '67', '2e', '64', '65', '76', '69', '63', '65', '3f', '68', '6c', '3d', '7a', '32', '36', '79', '63', '41', '4e', '52', '67', '74', '57', '62', '71', '59', '58', '39', '63', '64', '73', '57', '44', '34', '72', '73', '54', '71', '7a', '38', '52', '59', '48', '51', '41', '72', '72', '71', '34', '43', '5a', '4a', '77', '5a', '6e', '31', '63', '78', '58', '37', '33', '6b', '54', '50', '36', '78', '33', '72', '52', '63', '42', '73', '55', '66', '4d', '77', '45', '6f', '42', '6f', '6a', '5a', '63', '55', '72', '5a', '22', '2c', '20', '22', '73', '65', '6c', '66', '23', '6a', '75', '6d', '62', '66', '3d', '63', '61', '69', '2f', '63', '62', '2e', '73', '74', '61', '72', '6c', '69', '6e', '67', '5f', '31', '2f', '63', '61', '69', '2e', '61', '73', '73', '65', '72', '74', '69', '6f', '6e', '73', '2f', '73', '74', '61', '72', '6c', '69', '6e', '67', '2e', '69', '6e', '74', '65', '67', '72', '69', '74', '79', '3f', '68', '6c', '3d', '7a', '32', '36', '79', '63', '41', '4e', '52', '67', '74', '57', '62', '71', '59', '58', '39', '63', '64', '73', '57', '44', '34', '72', '73', '54', '71', '7a', '38', '52', '59', '48', '51', '41', '72', '72', '71', '34', '43', '5a', '4a', '77', '5a', '6e', '31', '63', '78', '58', '37', '33', '6b', '54', '50', '36', '78', '33', '72', '52', '63', '42', '73', '55', '66', '4d', '6f', '33', '53', '47', '37', '32', '73', '5a', '67', '31', '33', '22', '5d', '2c', '20', '22', '61', '73', '73', '65', '74', '5f', '68', '61', '73', '68', '65', '73', '22', '3a', '20', '5b', '7b', '22', '73', '74', '61', '72', '74', '22', '3a', '20', '22', '30', '78', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '22', '2c', '20', '22', '6c', '65', '6e', '67', '74', '68', '22', '3a', '20', '22', '30', '78', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '39', '39', '35', '39', '22', '2c', '20', '22', '6e', '61', '6d', '65', '22', '3a', '20', '22', '4a', '46', '49', '46', '20', '53', '4f', '49', '2d', '41', '50', '50', '30', '22', '2c', '20', '22', '75', '72', '6c', '22', '3a', '20', '22', '22', '2c', '20', '22', '76', '61', '6c', '75', '65', '22', '3a', '20', '22', '45', '69', '41', '75', '78', '6a', '74', '6d', '61', '78', '34', '36', '63', '43', '32', '4e', '33', '59', '39', '61', '46', '6d', '42', '4f', '39', '4a', '66', '61', '79', '38', '4c', '45', '77', '4a', '57', '7a', '42', '55', '74', '5a', '30', '73', '55', '4d', '38', '67', '41', '3d', '22', '7d', '2c', '20', '7b', '22', '73', '74', '61', '72', '74', '22', '3a', '20', '22', '30', '78', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '39', '39', '35', '39', '22', '2c', '20', '22', '6c', '65', '6e', '67', '74', '68', '22', '3a', '20', '22', '30', '78', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '32', '37', '64', '22', '2c', '20', '22', '6e', '61', '6d', '65', '22', '3a', '20', '22', '4a', '46', '49', '46', '20', '41', '50', '50', '31', '2f', '58', '4d', '50', '22', '2c', '20', '22', '75', '72', '6c', '22', '3a', '20', '22', '22', '2c', '20', '22', '76', '61', '6c', '75', '65', '22', '3a', '20', '22', '45', '69', '44', '6a', '5a', '69', '66', '43', '67', '47', '32', '69', '4b', '78', '63', '59', '65', '43', '68', '4b', '54', '4f', '63', '57', '6c', '4a', '39', '49', '2f', '55', '43', '39', '2f', '63', '35', '58', '46', '69', '4a', '52', '45', '71', '4a', '46', '70', '77', '41', '3d', '22', '7d', '2c', '20', '7b', '22', '73', '74', '61', '72', '74', '22', '3a', '20', '22', '30', '78', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '61', '39', '30', '63', '22', '2c', '20', '22', '6c', '65', '6e', '67', '74', '68', '22', '3a', '20', '22', '30', '78', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '30', '32', '31', '35', '65', '36', '22', '2c', '20', '22', '6e', '61', '6d', '65', '22', '3a', '20', '22', '4a', '46', '49', '46', '20', '44', '51', '54', '2d', '45', '4f', '49', '22', '2c', '20', '22', '75', '72', '6c', '22', '3a', '20', '22', '22', '2c', '20', '22', '76', '61', '6c', '75', '65', '22', '3a', '20', '22', '45', '69', '41', '72', '78', '30', '33', '31', '6f', '41', '30', '4e', '35', '4b', '4f', '45', '47', '36', '6e', '39', '52', '2f', '62', '4a', '4a', '46', '59', '4a', '76', '6d', '47', '6c', '44', '6f', '4c', '74', '75', '77', '62', '52', '69', '70', '4c', '54', '4b', '41', '41', '3d', '22', '7d', '5d', '7d', '00', '00', '01', '47', '6a', '75', '6d', '62', '00', '00', '00', '27', '6a', '75', '6d', '64', '63', '61', '73', '67', '00', '11', '00', '10', '80', '00', '00', 'aa', '00', '38', '9b', '71', '03', '63', '61', '69', '2e', '73', '69', '67', '6e', '61', '74', '75', '72', '65', '00', '00', '00', '01', '18', '75', '75', '69', '64', '63', '61', '73', '67', '00', '11', '00', '10', '80', '00', '00', 'aa', '00', '38', '9b', '71', '00', '87', '65', '0C', '94', '6D', 'EE', '53', '05', 'B2', 'D8', '87', '19', 'AD', '30', 'A9', '9C', 'AB', 'CF', '3D', 'A2', '00', 'C2', '3D', '61', '71', '0B', 'EB', 'E7', '24', 'D0', 'CD', 'B1', 'CC', 'E5', '0C', '3A', '74', '26', '71', '5A', '86', '04', 'DB', '36', '55', 'C5', '30', '62', '7D', 'F1', '6F', 'C0', '33', 'A9', '1A', 'BF', '72', 'E2', '41', 'FD', 'BC', 'D1', '2C', '14', 'F2', 'AB', 'BD', '93', '2B', '20', '52', '86', '7B', '3F', '73', '14', '18', 'C9', '3E', '2A', '5B', 'B9', 'B1', 'E0', '8A', '82', 'E0', '1F', 'B3', 'FA', '69', '6C', '25', 'E0', '40', 'D7', 'B3', '5A', '96', '6A', 'D0', '09', '55', 'A4', 'CA', '04', '36', '0C', '13', '00', '2A', 'BD', '79', '62', '1C', '95', '17', '9D', '26', '04', '91', 'E4', '94', '7C', '5C', 'DF', 'A7', '90', 'A0', 'A9', '2E', 'F6', '34', '2D', 'EB', 'B4', '7C', 'E5', '9C', '12', 'DD', 'C5', '5F', '74', 'CF', 'BB', '6C', 'FB', 'C5', 'D8', '8C', 'EA', 'A5', 'DF', '7A', '53', '18', '15', '19', 'A3', '67', '5D', '38', '33', '85', '8B', 'BF', '8C', 'EE', '3E', '33', '30', '86', '12', '92', 'E4', 'A8', 'BF', '76', 'F3', 'C5', 'F3', 'A4', 'D1', '6E', '4B', 'CB', 'C0', 'F1', '35', '80', '5F', 'E7', 'AB', '59', '18', '90', '3F', '2F', 'DC', 'DE', 'CC', '2E', 'D0', '59', '32', 'F8', 'E0', '84', 'E0', 'B8', 'BB', '7A', 'CF', '3E', '9E', 'F1', '91', '19', '13', '39', '33', 'CF', '6D', '99', 'C2', 'CA', '6C', 'F9', 'CA', 'A6', '7F', '41', 'BB', '96', 'B4', '8D', 'E4', '50', '81', 'BB', 'E4', '96', 'C4', 'ED', '91', '31', 'AA', '17', 'C1', '45', '07', '1F', '59', '11']

Code Stream Parser Output:

###############################################################
# JP2 file format log file generated by jp2file.py            #
###############################################################

0       : New marker: SOI (Start of image)


2       : New marker: APP11 (JPEG XT Extension Marker)

    0       : Sub Box: "jumb" JUMBF Box
      8       : Sub Box: "jumd"         JUMBF Description box
        TYPE: 63 61 63 62 00 11 00 10 80 00 00 aa 00 38 9b 71
        TOGGLES: 0b11
        LABEL: cai
        No ID
        No Signature

      37      : Sub Box: "jumb" JUMBF Box
        45      : Sub Box: "jumd"           JUMBF Description box
          TYPE: 63 61 73 74 00 11 00 10 80 00 00 aa 00 38 9b 71
          TOGGLES: 0b11
          LABEL: cb.starling_1
          No ID
          No Signature

        84      : Sub Box: "jumb" JUMBF Box
          92      : Sub Box: "jumd"             JUMBF Description box
            TYPE: 63 61 61 73 00 11 00 10 80 00 00 aa 00 38 9b 71
            TOGGLES: 0b11
            LABEL: cai.assertions
            No ID
            No Signature

          132     : Sub Box: "jumb" JUMBF Box
            140     : Sub Box: "jumd"               JUMBF Description box
              TYPE: 6a 73 6f 6e 00 11 00 10 80 00 00 aa 00 38 9b 71
              TOGGLES: 0b11
              LABEL: starling.location.precise
              No ID
              No Signature

            191     : Sub Box: "json" JSON box
              Data:
              {"starling:GPSAccuracy": "11.792", "starling:GPSAltitude": -4.617279053, "starling:GPSBaring": 212.94905, "starling:GPSBearingAccuracy": 0.0, "starling:GPSLatitude": "25,2,42.842N", "starling:GPSLongitude": "121,31,50.861E", "starling:GPSSpeed": 0.20248456, "starling:GPSSpeedAccuracy": 0.20248456, "starling:GPSTime": 1583266055000, "starling:GPSTimeStamp": "2020-03-03T20:07:35Z", "starling:GPSVerticalAccuracy": 8.0}


          618     : Sub Box: "jumb" JUMBF Box
            626     : Sub Box: "jumd"               JUMBF Description box
              TYPE: 6a 73 6f 6e 00 11 00 10 80 00 00 aa 00 38 9b 71
              TOGGLES: 0b11
              LABEL: starling.device
              No ID
              No Signature

            667     : Sub Box: "json" JSON box
              Data:
              {"android:AndroidIdHash": "8b46aab82c3867c7bda32682b1534178d7fce95dce749aa20ccc7d83708ddb7a", "android:BuildId": "PQ2A.190205.003 release-keys", "android:BuildTags": "release-keys", "android:BuildTime": 1583266055000, "android:BuildTimestamp": "2020-04-12T04:33:00Z", "android:BuildType": "user", "android:DeviceBoard": "sdm845", "android:DeviceBrand": "htc", "android:DeviceName": "htc_exodugl", "android:EndProductName": "EXODUS 1", "android:Fingerprint": "htc/exodugl_00709/htc_exodugl:9/PQ2A.190205.003/1109191.2:user/release-keys", "android:Hardware": "htc_exo", "android:Manufacturer": "HTC", "android:OverallProductName": "exodugl_00709"}


          1320    : Sub Box: "jumb" JUMBF Box
            1328    : Sub Box: "jumd"               JUMBF Description box
              TYPE: 6a 73 6f 6e 00 11 00 10 80 00 00 aa 00 38 9b 71
              TOGGLES: 0b11
              LABEL: starling.sensor
              No ID
              No Signature

            1369    : Sub Box: "json" JSON box
              Data:
              {"starling:SensorAccelerometer": "SensorData(accuracy=3.0, value=[-2.2584498, 5.544669, 7.7695217])", "starling:SensorAccelerometerUncalibrated": "SensorData(accuracy=3.0, value=[-1.820267, 5.5468745, 7.781287, 0.0, 0.0, 0.0])", "starling:SensorGameRotationVector": "SensorData(accuracy=3.0, value=[0.28894028, 0.089926116, -0.077565834, 0.94995135])", "starling:SensorGeomagneticRotationVector": "SensorData(accuracy=3.0, value=[0.13018766, 0.28469607, 0.67535406, 0.66776913, 0.0])", "starling:SensorGravity": "SensorData(accuracy=NO_UPDATE_RECEIVED_DURING_SNAP, value=[-2.1173487, 5.2436786, 8.011802])", "starling:SensorGyroscope": "SensorData(accuracy=3.0, value=[0.0090546375, 0.0026631376, 0.011718297])", "starling:SensorGyroscopeUncalibrated": "SensorData(accuracy=3.0, value=[-0.007457021, 0.004261021, -0.0069242665, 0.0, 0.0, 0.0])", "starling:SensorLight": "SensorData(accuracy=3.0, value=[477.0, 0.0, 0.0])", "starling:SensorLinearAcceleration": "SensorData(accuracy=NO_UPDATE_RECEIVED_DURING_SNAP, value=[0.19492735, 0.059680037, 0.20064202])", "starling:SensorMagneticField": "SensorData(accuracy=NO_UPDATE_RECEIVED_DURING_SNAP, value=[106.72393, -18.183104, -12.878148])", "starling:SensorMagneticFieldUncalibrated": "SensorData(accuracy=3.0, value=[105.09807, 27.845383, -12.322319, 9.477424E-38, 46.511898, 0.20629947])", "starling:SensorRotationVector": "SensorData(accuracy=3.0, value=[0.14844818, 0.26368022, 0.59541535, 0.7442592, 0.0])"}


          2838    : Sub Box: "jumb" JUMBF Box
            2846    : Sub Box: "jumd"               JUMBF Description box
              TYPE: 6a 73 6f 6e 00 11 00 10 80 00 00 aa 00 38 9b 71
              TOGGLES: 0b11
              LABEL: starling.integrity
              No ID
              No Signature

            2890    : Sub Box: "json" JSON box
              Data:
              {"starling:PublicKey": "-----BEGIN PGP PUBLIC KEY BLOCK-----Version: BCPG v@RELEASE_NAME@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YeTD-----END PGP PUBLIC KEY BLOCK-----", "starling:MediaHash": "ba51b0f154bb75d3e5f557569e4612b2e1e04c556e5beaf27bfcde040412de52", "starilng:MediaKey": "ba51b0f154_1583258659459"}



        6091    : Sub Box: "jumb" JUMBF Box
          6099    : Sub Box: "jumd"             JUMBF Description box
            TYPE: 63 61 63 6c 00 11 00 10 80 00 00 aa 00 38 9b 71
            TOGGLES: 0b11
            LABEL: cai.claim
            No ID
            No Signature

          6134    : Sub Box: "json" JSON box
            Data:
            {"recorder": "Starling Capture", "signature": "self#jumbf=cai/cb.starling_1/cai.signature", "assertions": ["self#jumbf=cai/cb.starling_1/cai.assertions/starling.location.precise?hl=z26ycANRgtWbqYX9cdsWD4rsTqz8RYHQArrq4CZJwZn1cxX73kTP6x3rRcBsUfMoBUAVbTEB7K", "self#jumbf=cai/cb.starling_1/cai.assertions/starling.sensors?hl=z26ycANRgtWbqYX9cdsWD4rsTqz8RYHQArrq4CZJwZn1cxX73kTP6x3rRcBsUfMvY4QFEN3973", "self#jumbf=cai/cb.starling_1/cai.assertions/starling.device?hl=z26ycANRgtWbqYX9cdsWD4rsTqz8RYHQArrq4CZJwZn1cxX73kTP6x3rRcBsUfMwEoBojZcUrZ", "self#jumbf=cai/cb.starling_1/cai.assertions/starling.integrity?hl=z26ycANRgtWbqYX9cdsWD4rsTqz8RYHQArrq4CZJwZn1cxX73kTP6x3rRcBsUfMo3SG72sZg13"], "asset_hashes": [{"start": "0x0000000000000000", "length": "0x0000000000009959", "name": "JFIF SOI-APP0", "url": "", "value": "EiAuxjtmax46cC2N3Y9aFmBO9Jfay8LEwJWzBUtZ0sUM8gA="}, {"start": "0x0000000000009959", "length": "0x000000000000027d", "name": "JFIF APP1/XMP", "url": "", "value": "EiDjZifCgG2iKxcYeChKTOcWlJ9I/UC9/c5XFiJREqJFpwA="}, {"start": "0x000000000000a90c", "length": "0x00000000000215e6", "name": "JFIF DQT-EOI", "url": "", "value": "EiArx031oA0N5KOEG6n9R/bJJFYJvmGlDoLtuwbRipLTKAA="}]}


        7330    : Sub Box: "jumb" JUMBF Box
          7338    : Sub Box: "jumd"             JUMBF Description box
            TYPE: 63 61 73 67 00 11 00 10 80 00 00 aa 00 38 9b 71
            TOGGLES: 0b11
            LABEL: cai.signature
            No ID
            No Signature

          7377    : Sub Box: "uuid" UUID box
            UUID      : 63 61 73 67 00 11 00 10 80 00 00 aa 00 38 9b 71
            UUID Data :

            00 87 65 0c 94 6d ee 53 05 b2 d8 87 19 ad 30 a9    ..e..m.S......0.
            9c ab cf 3d a2 00 c2 3d 61 71 0b eb e7 24 d0 cd    ...=...=aq...$..
            b1 cc e5 0c 3a 74 26 71 5a 86 04 db 36 55 c5 30    ....:t&qZ...6U.0
            62 7d f1 6f c0 33 a9 1a bf 72 e2 41 fd bc d1 2c    b}.o.3...r.A...,
            14 f2 ab bd 93 2b 20 52 86 7b 3f 73 14 18 c9 3e    .....+ R.{?s...>
            2a 5b b9 b1 e0 8a 82 e0 1f b3 fa 69 6c 25 e0 40    *[.........il%.@
            d7 b3 5a 96 6a d0 09 55 a4 ca 04 36 0c 13 00 2a    ..Z.j..U...6...*
            bd 79 62 1c 95 17 9d 26 04 91 e4 94 7c 5c df a7    .yb....&....|\..
            90 a0 a9 2e f6 34 2d eb b4 7c e5 9c 12 dd c5 5f    .....4-..|....._
            74 cf bb 6c fb c5 d8 8c ea a5 df 7a 53 18 15 19    t..l.......zS...
            a3 67 5d 38 33 85 8b bf 8c ee 3e 33 30 86 12 92    .g]83.....>30...
            e4 a8 bf 76 f3 c5 f3 a4 d1 6e 4b cb c0 f1 35 80    ...v.....nK...5.
            5f e7 ab 59 18 90 3f 2f dc de cc 2e d0 59 32 f8    _..Y..?/.....Y2.
            e0 84 e0 b8 bb 7a cf 3e 9e f1 91 19 13 39 33 cf    .....z.>.....93.
            6d 99 c2 ca 6c f9 ca a6 7f 41 bb 96 b4 8d e4 50    m...l....A.....P
            81 bb e4 96 c4 ed 91 31 aa 17 c1 45 07 1f 59 11    .......1...E..Y.

Adobe Way to Verify Signature

# Extract claim to signed-claim.json
# Extract signature to starling-signed.der

-----
# Verify SHA-1 Hash
$ openssl sha1 signed-claim.json
SHA1(signed-claim.json)= de6417bdb2b9374a3ad42d34cb5bf6c017aa5eb7

# Verify file size
$ ls -al signed-claim.json
-rw-r--r--  1 macuser  staff  1627 Mar  2 09:53 signed-claim.json

-----
# Verify Signature

# 1. Convert Signature from DER to PEM encoding
$ openssl pkcs7 -inform der -in starling-signed.der -out starling.der.pkcs7

# 2. Extract X.509 certificate from signature
$ openssl pkcs7 -print_certs -in starling.der.pkcs7 -out starling.der.cert

# 3. Verify CMS Signature against detached data (claim)
$ openssl smime -verify -binary -inform der -in starling-signed.der -content signed-claim.json -certfile starling.der.cert -noverify
Verification successful
{"assertions":["self#jumbf=cai/cb.starling_1/cai.assertions/adobe.asset.info?hl=mEiCm/aYUgYWjwC0emm90PWK2qxpbXxqC6/bMJMkKevY1LA","self#jumbf=cai/cb.starling_1/cai.assertions/cai.acquisition.thumbnail.jpg?hl=mEiCE0uHOfHV7htFrlpSi3L3Mvjah1yqcbvsUjniRxHxvqg","self#jumbf=cai/cb.starling_1/cai.assertions/cai.claim.thumbnail.jpg?hl=mEiCE0uHOfHV7htFrlpSi3L3Mvjah1yqcbvsUjniRxHxvqg","self#jumbf=cai/cb.starling_1/cai.assertions/cai.location.broad?hl=mEiAiWeYKpcrzcEZUwo1l1J09GPElaDfnEarwHnJvlAh/oA","self#jumbf=cai/cb.starling_1/cai.assertions/cai.rights?hl=mEiDz9sNp/tzDru0T9PjM6InZBzjMLlg0XX6kYTbs8DtdJw","self#jumbf=cai/cb.starling_1/cai.assertions/starling.device?hl=mEiBti71cp2yyhOgbeqqXlcGa3IxsEeCIlG1hF69hafp43w","self#jumbf=cai/cb.starling_1/cai.assertions/starling.integrity?hl=mEiBX5zocwF840JwzsiC+LHPubE9MTn93t8utThK/kguMsg","self#jumbf=cai/cb.starling_1/cai.assertions/starling.location.precise?hl=mEiDOn7ELvwlJq0A1S+E0ZvsmjZv79QMEfGUeL/ypYEDMcw","self#jumbf=cai/cb.starling_1/cai.assertions/starling.sensors?hl=mEiApTQ+MSKK+o0vjuURm11/7phdMygI8Nl/wjgFtWO64YQ"],"asset_hashes":[{"length":"0x0000000000009959","name":"JFIF SOI-APP0","start":"0x0000000000000000","url":"","value":"EiAuxjtmax46cC2N3Y9aFmBO9Jfay8LEwJWzBUtZ0sUM8gA="},{"length":"0x000000000000027d","name":"JFIF APP1/XMP","start":"0x0000000000009959","url":"","value":"EiDjZifCgG2iKxcYeChKTOcWlJ9I/UC9/c5XFiJREqJFpwA="},{"length":"0x00000000000215e6","name":"JFIF DQT-EOI","start":"0x000000000000a90c","url":"","value":"EiArx031oA0N5KOEG6n9R/bJJFYJvmGlDoLtuwbRipLTKAA="}],"recorder":"Starling Capture","signature":"self#jumbf=cai/cb.starling_1/cai.signature"}