{
  "tdt:epcTagDataTranslation": {
    "version": "2.0",
    "date": "2023-03-31T17:30:00Z",
    "epcTDSVersion": "2.0",
    "scheme": {
      "name": "CPI-var",
      "optionKey": "gs1companyprefixlength",
      "level": [
        {
          "type": "BINARY",
          "prefixMatch": "00111101",
          "requiredFormattingParameters": "filter,tagLength",
          "option": [
            {
              "optionKey": "12",
              "pattern": "^00111101([01]{3})000([01]{40})((?:(?!000000)[01]{6})+)000000([01]{40})",
              "grammar": "'00111101' filter '000' gs1companyprefix comppartref '000000' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "7",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 3,
                  "name": "filter"
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 40,
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 3,
                  "characterSet": "[01]*",
                  "compaction": "6-bit",
                  "name": "comppartref"
                },
                {
                  "seq": 4,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 40,
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "11",
              "pattern": "^00111101([01]{3})001([01]{37})((?:(?!000000)[01]{6})+)000000([01]{40})",
              "grammar": "'00111101' filter '001' gs1companyprefix comppartref '000000' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "7",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 3,
                  "name": "filter"
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "99999999999",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 37,
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 3,
                  "characterSet": "[01]*",
                  "compaction": "6-bit",
                  "name": "comppartref"
                },
                {
                  "seq": 4,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 40,
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "10",
              "pattern": "^00111101([01]{3})010([01]{34})((?:(?!000000)[01]{6})+)000000([01]{40})",
              "grammar": "'00111101' filter '010' gs1companyprefix comppartref '000000' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "7",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 3,
                  "name": "filter"
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "9999999999",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 34,
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 3,
                  "characterSet": "[01]*",
                  "compaction": "6-bit",
                  "name": "comppartref"
                },
                {
                  "seq": 4,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 40,
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "9",
              "pattern": "^00111101([01]{3})011([01]{30})((?:(?!000000)[01]{6})+)000000([01]{40})",
              "grammar": "'00111101' filter '011' gs1companyprefix comppartref '000000' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "7",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 3,
                  "name": "filter"
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 30,
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 3,
                  "characterSet": "[01]*",
                  "compaction": "6-bit",
                  "name": "comppartref"
                },
                {
                  "seq": 4,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 40,
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "8",
              "pattern": "^00111101([01]{3})100([01]{27})((?:(?!000000)[01]{6})+)000000([01]{40})",
              "grammar": "'00111101' filter '100' gs1companyprefix comppartref '000000' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "7",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 3,
                  "name": "filter"
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "99999999",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 27,
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 3,
                  "characterSet": "[01]*",
                  "compaction": "6-bit",
                  "name": "comppartref"
                },
                {
                  "seq": 4,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 40,
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "7",
              "pattern": "^00111101([01]{3})101([01]{24})((?:(?!000000)[01]{6})+)000000([01]{40})",
              "grammar": "'00111101' filter '101' gs1companyprefix comppartref '000000' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "7",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 3,
                  "name": "filter"
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "9999999",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 24,
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 3,
                  "characterSet": "[01]*",
                  "compaction": "6-bit",
                  "name": "comppartref"
                },
                {
                  "seq": 4,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 40,
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "6",
              "pattern": "^00111101([01]{3})110([01]{20})((?:(?!000000)[01]{6})+)000000([01]{40})",
              "grammar": "'00111101' filter '110' gs1companyprefix comppartref '000000' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "7",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 3,
                  "name": "filter"
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 20,
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 3,
                  "compaction": "6-bit",
                  "name": "comppartref",
                  "characterSet": "[01]*"
                },
                {
                  "seq": 4,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[01]*",
                  "bitPadDir": "LEFT",
                  "bitLength": 40,
                  "name": "cpiserial"
                }
              ]
            }
          ]
        },
        {
          "type": "TAG_ENCODING",
          "prefixMatch": "urn:epc:tag:cpi-var",
          "requiredFormattingParameters": "filter,tagLength",
          "option": [
            {
              "optionKey": "12",
              "pattern": "^urn:epc:tag:cpi-var:([0-7]{1})\\.([0-9]{12})\\.((?:[A-Z0-9-]|%2F|%23){1,18})\\.([0-9]{1,12})$",
              "grammar": "'urn:epc:tag:cpi-var:' filter '.' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "7",
                  "characterSet": "[0-7]*",
                  "length": 1,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "filter"
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "length": 12,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 3,
                  "compaction": "6-bit",
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "urnEncodedCompPartRef"
                },
                {
                  "seq": 4,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "11",
              "pattern": "^urn:epc:tag:cpi-var:([0-7]{1})\\.([0-9]{11})\\.((?:[A-Z0-9-]|%2F|%23){1,19})\\.([0-9]{1,12})$",
              "grammar": "'urn:epc:tag:cpi-var:' filter '.' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "7",
                  "characterSet": "[0-7]*",
                  "length": 1,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "filter"
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "99999999999",
                  "characterSet": "[0-9]*",
                  "length": 11,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 3,
                  "compaction": "6-bit",
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "urnEncodedCompPartRef"
                },
                {
                  "seq": 4,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "10",
              "pattern": "^urn:epc:tag:cpi-var:([0-7]{1})\\.([0-9]{10})\\.((?:[A-Z0-9-]|%2F|%23){1,20})\\.([0-9]{1,12})$",
              "grammar": "'urn:epc:tag:cpi-var:' filter '.' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "7",
                  "characterSet": "[0-7]*",
                  "length": 1,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "filter"
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "9999999999",
                  "characterSet": "[0-9]*",
                  "length": 10,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 3,
                  "compaction": "6-bit",
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "urnEncodedCompPartRef"
                },
                {
                  "seq": 4,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "9",
              "pattern": "^urn:epc:tag:cpi-var:([0-7]{1})\\.([0-9]{9})\\.((?:[A-Z0-9-]|%2F|%23){1,21})\\.([0-9]{1,12})$",
              "grammar": "'urn:epc:tag:cpi-var:' filter '.' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "7",
                  "characterSet": "[0-7]*",
                  "length": 1,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "filter"
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999",
                  "characterSet": "[0-9]*",
                  "length": 9,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 3,
                  "compaction": "6-bit",
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "urnEncodedCompPartRef"
                },
                {
                  "seq": 4,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "8",
              "pattern": "^urn:epc:tag:cpi-var:([0-7]{1})\\.([0-9]{8})\\.((?:[A-Z0-9-]|%2F|%23){1,22})\\.([0-9]{1,12})$",
              "grammar": "'urn:epc:tag:cpi-var:' filter '.' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "7",
                  "characterSet": "[0-7]*",
                  "length": 1,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "filter"
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "99999999",
                  "characterSet": "[0-9]*",
                  "length": 8,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 3,
                  "compaction": "6-bit",
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "urnEncodedCompPartRef"
                },
                {
                  "seq": 4,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "7",
              "pattern": "^urn:epc:tag:cpi-var:([0-7]{1})\\.([0-9]{7})\\.((?:[A-Z0-9-]|%2F|%23){1,23})\\.([0-9]{1,12})$",
              "grammar": "'urn:epc:tag:cpi-var:' filter '.' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "7",
                  "characterSet": "[0-7]*",
                  "length": 1,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "filter"
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "9999999",
                  "characterSet": "[0-9]*",
                  "length": 7,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 3,
                  "compaction": "6-bit",
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "urnEncodedCompPartRef"
                },
                {
                  "seq": 4,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "6",
              "pattern": "^urn:epc:tag:cpi-var:([0-7]{1})\\.([0-9]{6})\\.((?:[A-Z0-9-]|%2F|%23){1,24})\\.([0-9]{1,12})$",
              "grammar": "'urn:epc:tag:cpi-var:' filter '.' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "7",
                  "characterSet": "[0-7]*",
                  "length": 1,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "filter"
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999",
                  "characterSet": "[0-9]*",
                  "length": 6,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 3,
                  "compaction": "6-bit",
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "urnEncodedCompPartRef"
                },
                {
                  "seq": 4,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            }
          ],
          "rule": [
            {
              "type": "EXTRACT",
              "inputFormat": "STRING",
              "seq": 1,
              "newFieldName": "comppartref",
              "characterSet": "[\\x23\\x2D\\x2F\\x30-\\x39\\x41-\\x5A]*",
              "function": "URNDECODE(urnEncodedCompPartRef)"
            },
            {
              "type": "FORMAT",
              "inputFormat": "STRING",
              "seq": 1,
              "newFieldName": "urnEncodedCompPartRef",
              "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
              "function": "URNENCODE(comppartref)"
            }
          ]
        },
        {
          "type": "PURE_IDENTITY",
          "prefixMatch": "urn:epc:id:cpi",
          "requiredFormattingParameters": "filter,tagLength",
          "option": [
            {
              "optionKey": "12",
              "pattern": "^urn:epc:id:cpi:([0-9]{12})\\.((?:[A-Z0-9-]|%2F|%23){1,18})\\.([0-9]{1,10})$",
              "grammar": "'urn:epc:id:cpi:' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "length": 12,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 2,
                  "compaction": "6-bit",
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "urnEncodedCompPartRef"
                },
                {
                  "seq": 3,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "11",
              "pattern": "^urn:epc:id:cpi:([0-9]{11})\\.((?:[A-Z0-9-]|%2F|%23){1,19})\\.([0-9]{1,10})$",
              "grammar": "'urn:epc:id:cpi:' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "99999999999",
                  "characterSet": "[0-9]*",
                  "length": 11,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 2,
                  "compaction": "6-bit",
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "urnEncodedCompPartRef"
                },
                {
                  "seq": 3,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "10",
              "pattern": "^urn:epc:id:cpi:([0-9]{10})\\.((?:[A-Z0-9-]|%2F|%23){1,20})\\.([0-9]{1,10})$",
              "grammar": "'urn:epc:id:cpi:' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "9999999999",
                  "characterSet": "[0-9]*",
                  "length": 10,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 2,
                  "compaction": "6-bit",
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "urnEncodedCompPartRef"
                },
                {
                  "seq": 3,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "9",
              "pattern": "^urn:epc:id:cpi:([0-9]{9})\\.((?:[A-Z0-9-]|%2F|%23){1,21})\\.([0-9]{1,10})$",
              "grammar": "'urn:epc:id:cpi:' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999",
                  "characterSet": "[0-9]*",
                  "length": 9,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 2,
                  "compaction": "6-bit",
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "urnEncodedCompPartRef"
                },
                {
                  "seq": 3,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "8",
              "pattern": "^urn:epc:id:cpi:([0-9]{8})\\.((?:[A-Z0-9-]|%2F|%23){1,22})\\.([0-9]{1,10})$",
              "grammar": "'urn:epc:id:cpi:' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "99999999",
                  "characterSet": "[0-9]*",
                  "length": 8,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 2,
                  "compaction": "6-bit",
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "urnEncodedCompPartRef"
                },
                {
                  "seq": 3,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "7",
              "pattern": "^urn:epc:id:cpi:([0-9]{7})\\.((?:[A-Z0-9-]|%2F|%23){1,23})\\.([0-9]{1,10})$",
              "grammar": "'urn:epc:id:cpi:' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "9999999",
                  "characterSet": "[0-9]*",
                  "length": 7,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 2,
                  "compaction": "6-bit",
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "urnEncodedCompPartRef"
                },
                {
                  "seq": 3,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "6",
              "pattern": "^urn:epc:id:cpi:([0-9]{6})\\.((?:[A-Z0-9-]|%2F|%23){1,24})\\.([0-9]{1,10})$",
              "grammar": "'urn:epc:id:cpi:' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999",
                  "characterSet": "[0-9]*",
                  "length": 6,
                  "padChar": "0",
                  "padDir": "LEFT",
                  "name": "gs1companyprefix"
                },
                {
                  "seq": 3,
                  "compaction": "6-bit",
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "urnEncodedCompPartRef"
                },
                {
                  "seq": 3,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            }
          ],
          "rule": [
            {
              "type": "EXTRACT",
              "inputFormat": "STRING",
              "seq": 1,
              "newFieldName": "comppartref",
              "characterSet": "[\\x23\\x2D\\x2F\\x30-\\x39\\x41-\\x5A]*",
              "function": "URNDECODE(urnEncodedCompPartRef)"
            },
            {
              "type": "FORMAT",
              "inputFormat": "STRING",
              "seq": 1,
              "newFieldName": "urnEncodedCompPartRef",
              "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
              "function": "URNENCODE(comppartref)"
            }
          ]
        },
        {
          "type": "BARE_IDENTIFIER",
          "prefixMatch": "cpi=",
          "requiredParsingParameters": "gs1companyprefixlength",
          "option": [
            {
              "optionKey": "12",
              "pattern": "^cpi=([0-9]{12}[A-Z0-9/#-]{1,18});cpiserial=([0-9]{1,12})$",
              "grammar": "'cpi=' gs1companyprefix comppartref ';cpiserial=' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "[A-Z0-9/#-]]*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "11",
              "pattern": "^cpi=([0-9]{11}[A-Z0-9/#-]{1,19});cpiserial=([0-9]{1,12})$",
              "grammar": "'cpi=' gs1companyprefix comppartref ';cpiserial=' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "[A-Z0-9/#-]*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "10",
              "pattern": "^cpi=([0-9]{10}[A-Z0-9/#-]{1,20});cpiserial=([0-9]{1,12})$",
              "grammar": "'cpi=' gs1companyprefix comppartref ';cpiserial=' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "[A-Z0-9/#-]*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "9",
              "pattern": "^cpi=([0-9]{9}[A-Z0-9/#-]{1,21});cpiserial=([0-9]{1,12})$",
              "grammar": "'cpi=' gs1companyprefix comppartref ';cpiserial=' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "[A-Z0-9/#-]*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "8",
              "pattern": "^cpi=([0-9]{8}[A-Z0-9/#-]{1,22});cpiserial=([0-9]{1,12})$",
              "grammar": "'cpi=' gs1companyprefix comppartref ';cpiserial=' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "[A-Z0-9/#-]*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "7",
              "pattern": "^cpi=([0-9]{7}[A-Z0-9/#-]{1,23});cpiserial=([0-9]{1,12})$",
              "grammar": "'cpi=' gs1companyprefix comppartref ';cpiserial=' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "[A-Z0-9/#-]*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "6",
              "pattern": "^cpi=([0-9]{6}[A-Z0-9/#-]{1,24});cpiserial=([0-9]{1,12})$",
              "grammar": "'cpi=' gs1companyprefix comppartref ';cpiserial=' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "[A-Z0-9/#-]*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            }
          ],
          "rule": [
            {
              "type": "EXTRACT",
              "inputFormat": "STRING",
              "seq": 1,
              "newFieldName": "comppartref",
              "characterSet": "[A-Z0-9/#-]*",
              "function": "SUBSTR(cpi,gs1companyprefixlength)"
            },
            {
              "type": "EXTRACT",
              "inputFormat": "STRING",
              "seq": 2,
              "newFieldName": "gs1companyprefix",
              "characterSet": "[0-9]*",
              "function": "SUBSTR(cpi,0,gs1companyprefixlength)"
            }
          ]
        },
        {
          "type": "ELEMENT_STRING",
          "prefixMatch": "(8010)",
          "requiredParsingParameters": "gs1companyprefixlength",
          "option": [
            {
              "optionKey": "12",
              "pattern": "^\\(8010\\)([0-9]{12}[A-Z0-9/#-]{1,18})\\(8011\\)([0-9]{1,12})\\b",
              "grammar": "'(8010)' gs1companyprefix comppartref '(8011)' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "[A-Z0-9/#-]*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "11",
              "pattern": "^\\(8010\\)([0-9]{11}[A-Z0-9/#-]{1,19})\\(8011\\)([0-9]{1,12})\\b",
              "grammar": "'(8010)' gs1companyprefix comppartref '(8011)' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "[A-Z0-9/#-]*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "10",
              "pattern": "^\\(8010\\)([0-9]{10}[A-Z0-9/#-]{1,20})\\(8011\\)([0-9]{1,12})\\b",
              "grammar": "'(8010)' gs1companyprefix comppartref '(8011)' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "[A-Z0-9/#-]*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "9",
              "pattern": "^\\(8010\\)([0-9]{9}[A-Z0-9/#-]{1,21})\\(8011\\)([0-9]{1,12})\\b",
              "grammar": "'(8010)' gs1companyprefix comppartref '(8011)' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "[A-Z0-9/#-]*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "8",
              "pattern": "^\\(8010\\)([0-9]{8}[A-Z0-9/#-]{1,22})\\(8011\\)([0-9]{1,12})\\b",
              "grammar": "'(8010)' gs1companyprefix comppartref '(8011)' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "[A-Z0-9/#-]*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "7",
              "pattern": "^\\(8010\\)([0-9]{7}[A-Z0-9/#-]{1,23})\\(8011\\)([0-9]{1,12})\\b",
              "grammar": "'(8010)' gs1companyprefix comppartref '(8011)' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "[A-Z0-9/#-]*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "6",
              "pattern": "^\\(8010\\)([0-9]{6}[A-Z0-9/#-]{1,24})\\(8011\\)([0-9]{1,12})\\b",
              "grammar": "'(8010)' gs1companyprefix comppartref '(8011)' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "[A-Z0-9/#-]*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            }
          ],
          "rule": [
            {
              "type": "EXTRACT",
              "inputFormat": "STRING",
              "seq": 1,
              "newFieldName": "comppartref",
              "characterSet": "[A-Z0-9/#-]*",
              "function": "SUBSTR(cpi,gs1companyprefixlength)"
            },
            {
              "type": "EXTRACT",
              "inputFormat": "STRING",
              "seq": 2,
              "newFieldName": "gs1companyprefix",
              "characterSet": "[0-9]*",
              "function": "SUBSTR(cpi,0,gs1companyprefixlength)"
            }
          ]
        },
        {
          "type": "GS1_DIGITAL_LINK",
          "prefixMatch": "http",
          "requiredFormattingParameters": "uriStem",
          "requiredParsingParameters": "gs1companyprefixlength",
          "option": [
            {
              "optionKey": "12",
              "pattern": "\\/8010\\/([0-9]{12}(?:[A-Z0-9-]|%2F|%23){1,18})\\/8011\\/([0-9]{1,12})\\b",
              "grammar": "uriStem '/8010/' gs1companyprefix urlEncodedCompPartRef '/8011/' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "11",
              "pattern": "\\/8010\\/([0-9]{11}(?:[A-Z0-9-]|%2F|%23){1,19})\\/8011\\/([0-9]{1,12})\\b",
              "grammar": "uriStem '/8010/' gs1companyprefix urlEncodedCompPartRef '/8011/' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "10",
              "pattern": "\\/8010\\/([0-9]{10}(?:[A-Z0-9-]|%2F|%23){1,20})\\/8011\\/([0-9]{1,12})\\b",
              "grammar": "uriStem '/8010/' gs1companyprefix urlEncodedCompPartRef '/8011/' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "9",
              "pattern": "\\/8010\\/([0-9]{9}(?:[A-Z0-9-]|%2F|%23){1,21})\\/8011\\/([0-9]{1,12})\\b",
              "grammar": "uriStem '/8010/' gs1companyprefix urlEncodedCompPartRef '/8011/' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "8",
              "pattern": "\\/8010\\/([0-9]{8}(?:[A-Z0-9-]|%2F|%23){1,22})\\/8011\\/([0-9]{1,12})\\b",
              "grammar": "uriStem '/8010/' gs1companyprefix urlEncodedCompPartRef '/8011/' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "7",
              "pattern": "\\/8010\\/([0-9]{7}(?:[A-Z0-9-]|%2F|%23){1,23})\\/8011\\/([0-9]{1,12})\\b",
              "grammar": "uriStem '/8010/' gs1companyprefix urlEncodedCompPartRef '/8011/' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            },
            {
              "optionKey": "6",
              "pattern": "\\/8010\\/([0-9]{6}(?:[A-Z0-9-]|%2F|%23){1,24})\\/8011\\/([0-9]{1,12})\\b",
              "grammar": "uriStem '/8010/' gs1companyprefix urlEncodedCompPartRef '/8011/' cpiserial",
              "field": [
                {
                  "seq": 1,
                  "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
                  "name": "cpi",
                  "gcpOffset": 0
                },
                {
                  "seq": 2,
                  "decimalMinimum": "0",
                  "decimalMaximum": "999999999999",
                  "characterSet": "[0-9]*",
                  "name": "cpiserial"
                }
              ]
            }
          ],
          "rule": [
            {
              "type": "EXTRACT",
              "inputFormat": "STRING",
              "seq": 1,
              "newFieldName": "urlEncodedCompPartRef",
              "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
              "function": "SUBSTR(cpi,gs1companyprefixlength)"
            },
            {
              "type": "EXTRACT",
              "inputFormat": "STRING",
              "seq": 2,
              "newFieldName": "comppartref",
              "characterSet": "[\\x23\\x2D\\x2F\\x30-\\x39\\x41-\\x5A]*",
              "function": "URLDECODE(urlEncodedCompPartRef)"
            },
            {
              "type": "EXTRACT",
              "inputFormat": "STRING",
              "seq": 3,
              "newFieldName": "gs1companyprefix",
              "characterSet": "[0-9]*",
              "function": "SUBSTR(cpi,0,gs1companyprefixlength)"
            },
            {
              "type": "FORMAT",
              "inputFormat": "STRING",
              "seq": 1,
              "newFieldName": "urlEncodedCompPartRef",
              "characterSet": "(?:[A-Z0-9-]|%2F|%23)*",
              "function": "URLENCODE(comppartref)"
            }
          ]
        }
      ]
    }
  }
}