[{"data":1,"prerenderedAt":2714},["ShallowReactive",2],{"navigation-docsDE":3,"navigation-blogDE":484,"docs-DE-\u002Fde\u002Fdocs\u002Fevent-hash-generator":485,"docsNav-DE-\u002Fdocs":1654,"docsSecNav-DE-\u002Fde\u002Fdocs\u002Fevent-hash-generator":1793},[4],{"title":5,"path":6,"stem":7,"children":8},"Docs","\u002Fdocs","docs",[9,22,40,52,73,87,113,127,154,165,180,204,392,468],{"title":10,"path":6,"stem":11,"description":12,"icon":13,"tags":14},"Documentation","docs\u002Findex","Introduction to documentation on EPCIS and OpenEPCIS tools","heroicons-outline:document-text",[15,16,17,18,19,20,21],"openepcis","epcis-2-0","epcis-documentation","epcis-standard","open-core","open-source","epcis-tools",{"title":23,"path":24,"stem":25,"children":26,"description":28,"icon":29,"tags":39},"Introduction","\u002Fdocs\u002Fintroduction","docs\u002F01.introduction\u002Findex",[27],{"title":23,"path":24,"stem":25,"description":28,"icon":29,"tags":30},"Why EPCIS is necessary and how it can help organizations of all sizes and types.","heroicons-outline:globe-alt",[16,31,32,33,34,35,36,37,38],"epcis","epcis-1-2","gs1-epcis-standard","supply-chain","traceability","data-sharing","tracking","tracing",[16,31,32,33,34,35,36,37,38],{"title":41,"path":42,"stem":43,"children":44,"description":46,"icon":47,"tags":51},"EPCIS","\u002Fdocs\u002Fepcis","docs\u002F02.epcis\u002Findex",[45],{"title":41,"path":42,"stem":43,"description":46,"icon":47,"tags":48},"Discover the specifics of EPCIS, how it works, and what OpenEPCIS is.","i-custom-open-epcis",[16,31,32,33,49,50],"iso-iec-19987","iso-iec-19988",[16,31,32,33,49,50],{"title":53,"path":54,"stem":55,"children":56,"description":58,"icon":59,"tags":72},"Format Converter","\u002Fdocs\u002Fformat-converter","docs\u002F03.format-converter\u002Findex",[57],{"title":53,"path":54,"stem":55,"description":58,"icon":59,"tags":60},"OpenEPCIS solution to convert EPCIS 2.0 and 1.2 document or single event from XML to JSON\u002FJSON-LD and vice versa.","heroicons-outline:arrows-right-left",[16,61,62,63,64,65,66,21,67,68,69,70,71],"json","json-ld","xml","events","format-converter","convert","convert-epcis-events","format","converter","epcis-tool","tools",[16,61,62,63,64,65,66,21,67,68,69,70,71],{"title":74,"path":75,"stem":76,"children":77,"description":79,"icon":80,"tags":86},"Version Converter","\u002Fdocs\u002Fversion-converter","docs\u002F04.version-converter\u002Findex",[78],{"title":74,"path":75,"stem":76,"description":79,"icon":80,"tags":81},"OpenEPCIS solution to convert EPCIS XML document from version 1.2 to 2.0 and vice versa.","heroicons:arrows-up-down",[16,32,61,62,63,64,82,66,21,83,84,85,69,70,71],"version-converter","convert-epcis-version","version","epcis-version",[16,32,61,62,63,64,82,66,21,83,84,85,69,70,71],{"title":88,"path":89,"stem":90,"children":91,"description":93,"icon":94,"tags":112},"Identifier Converter","\u002Fdocs\u002Fidentifier-converter","docs\u002F05.identifier-converter\u002Findex",[92],{"title":88,"path":89,"stem":90,"description":93,"icon":94,"tags":95},"OpenEPCIS solution to convert EPCIS instance or class identifier from URN to digital link WebURI and vice versa.","i-heroicons-link",[16,96,97,98,99,100,21,101,102,103,104,105,106,107,108,109,110,111],"gs1-digital-link","urn-format","epc-uri","epc","weburi","gs1-standard","gs1","sscc","gtin","giai","grai","gdti","lgtin","sgtin","gln","gcp",[16,96,97,98,99,100,21,101,102,103,104,105,106,107,108,109,110,111],{"title":114,"path":115,"stem":116,"children":117,"description":119,"icon":120,"tags":126},"Event Hash Generator","\u002Fdocs\u002Fevent-hash-generator","docs\u002F06.event-hash-generator\u002Findex",[118],{"title":114,"path":115,"stem":116,"description":119,"icon":120,"tags":121},"OpenEPCIS solution to generate unique event hash for EPCIS XML or JSON\u002FJSON-LD document or event list.","heroicons-outline:finger-print",[16,122,61,62,63,64,21,123,124,125,70,71],"event-hash","event","hash","generator",[16,122,61,62,63,64,21,123,124,125,70,71],{"title":128,"path":129,"stem":130,"children":131,"description":133,"icon":134,"tags":153},"Test Data Generator","\u002Fdocs\u002Ftest-data-generator","docs\u002F07.test-data-generator\u002Findex",[132,136],{"title":128,"path":129,"stem":130,"description":133,"icon":134,"tags":135},"OpenEPCIS solution to generate a large set of EPCIS test data events for all use cases\u002Fsupply chain requirements.","heroicons-outline:cog",[16,122,61,62,63,64,21,123,124,125,70,71],{"title":137,"path":138,"stem":139,"children":140,"description":133,"icon":142,"tags":152},"EPCIS Implementation Guidelines","\u002Fdocs\u002Ftest-data-generator\u002Fgs1-epcis-implementation-guidelines","docs\u002F07.test-data-generator\u002F01.gs1-epcis-implementation-guidelines\u002Findex",[141],{"title":137,"path":138,"stem":139,"description":133,"icon":142,"tags":143},"heroicons-outline:badge-check",[16,61,62,144,21,145,146,147,35,148,149,150,151],"testing","test-data-generator","design","design-template","process-automation","compliance","supply-chain-management","load-tests",[16,61,62,144,21,145,146,147,35,148,149,150,151],[16,122,61,62,63,64,21,123,124,125,70,71],{"title":155,"path":156,"stem":157,"children":158,"description":160,"icon":161,"tags":164},"Test Resource Management","\u002Fdocs\u002Ftest-resource-management","docs\u002F08.test-resource-management\u002Findex",[159],{"title":155,"path":156,"stem":157,"description":160,"icon":161,"tags":162},"Collection of EPCIS 1.2\u002F2.0 documents\u002Fevents in XML\u002FJSON\u002FJSON-LD formats, intended for various testing purposes","heroicons-outline:archive-box",[16,61,62,144,21,163,35,148,149,150,151],"performance-tests",[16,61,62,144,21,163,35,148,149,150,151],{"title":166,"path":167,"stem":168,"children":169,"description":171,"icon":172,"tags":179},"Vocabulary Management","\u002Fdocs\u002Fvocabulary-management","docs\u002F09.vocabulary-management\u002Findex",[170],{"title":166,"path":167,"stem":168,"description":171,"icon":172,"tags":173},"Collection of standardized constants and strings for EPCIS event data.","heroicons-outline:book-open",[16,174,15,175,21,176,35,177,149,150,178],"constants","centralization","standardization","vocabulary","data-dictionary",[16,174,15,175,21,176,35,177,149,150,178],{"title":181,"path":182,"stem":183,"children":184,"description":186,"icon":187,"tags":203},"Dependency Management","\u002Fdocs\u002Fdependency-management","docs\u002F10.dependency-management\u002Findex",[185],{"title":181,"path":182,"stem":183,"description":186,"icon":187,"tags":188},"Centralized Maven Bill of Materials (BOM) for all the OpenEPCIS modules.","heroicons-outline:folder",[189,15,190,191,192,193,194,31,195,196,197,198,199,200,201,202],"maven-bom","dependency-management","java-dependencies","pom","software-dependencies","version-control","open-source-java","build-management","modular-software","dependency-resolution","java-libraries","maven-project","centralized-dependencies","dependency-consistency",[189,15,190,191,192,193,194,31,195,196,197,198,199,200,201,202],{"title":205,"path":206,"stem":207,"children":208,"description":210,"icon":211,"tags":391},"Digital Product Passport","\u002Fdocs\u002Fdigital-product-passport","docs\u002F11.digital-product-passport\u002Findex",[209,218,230,262,296,323,337,346,354,364],{"title":205,"path":206,"stem":207,"description":210,"icon":211,"tags":212},"Introduction to Digital Product Passport and how EPCIS enables product traceability for DPP compliance.","heroicons-outline:identification",[213,214,215,31,216,35,217],"digital-product-passport","dpp","eu-regulation","sustainability","circular-economy",{"title":219,"path":220,"stem":221,"children":222,"description":224,"icon":225,"tags":229},"ESPR Framework","\u002Fdocs\u002Fdigital-product-passport\u002Fespr-framework","docs\u002F11.digital-product-passport\u002F00.espr-framework\u002Findex",[223],{"title":219,"path":220,"stem":221,"description":224,"icon":225,"tags":226},"Guide to the EU Ecodesign for Sustainable Products Regulation (ESPR) 2024\u002F1781 and how OpenEPCIS supports Digital Product Passport requirements.","heroicons-outline:shield-check",[227,228,216,214,215],"espr","ecodesign",[227,228,216,214,215],{"title":231,"path":232,"stem":233,"children":234,"description":236,"icon":237,"tags":261},"Battery DPP","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002Findex",[235,241,246,252],{"title":231,"path":232,"stem":233,"description":236,"icon":237,"tags":238},"GS1-native implementation of EU Battery Regulation 2023\u002F1542 Digital Product Passport using EPCIS 2.0","heroicons:battery-100",[239,240,214,31,102,35,216],"battery","eu-battery-regulation",{"title":242,"path":243,"stem":244,"description":245,"icon":172},"Implementation Guide","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002F01.implementation-guide","Step-by-step guide for implementing a GS1-native Battery Digital Product Passport with OpenEPCIS extensions",{"title":247,"path":248,"stem":249,"description":250,"icon":251},"Event Types","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp\u002Fevent-types","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002F02.event-types","Complete reference for all EPCIS event types and sensor measurements in the Battery DPP","heroicons-outline:collection",{"title":253,"path":254,"stem":255,"description":256,"icon":13,"tags":257},"Complete Examples","\u002Fdocs\u002Fdigital-product-passport\u002Fbattery-dpp\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F01.battery-dpp\u002F05.complete-examples","Reference Battery Digital Product Passport examples mapped to EU Battery Regulation 2023\u002F1542 Annex XIII",[239,258,259,62,260],"examples","annex-xiii","carbon-footprint",[239,240,214,31,102,35,216],{"title":263,"path":264,"stem":265,"children":266,"description":268,"icon":269,"tags":295},"EUDR","\u002Fdocs\u002Fdigital-product-passport\u002Feudr","docs\u002F11.digital-product-passport\u002F02.eudr\u002Findex",[267,274,279,283,288],{"title":263,"path":264,"stem":265,"description":268,"icon":269,"tags":270},"GS1-native implementation of EU Deforestation Regulation 2023\u002F1115 compliance using EPCIS 2.0","heroicons-outline:globe-europe-africa",[271,272,273,214,31,102,35,216],"eudr","deforestation","timber",{"title":242,"path":275,"stem":276,"description":277,"icon":278},"\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F02.eudr\u002F01.implementation-guide","Step-by-step guide for implementing EU Deforestation Regulation compliance using GS1 standards",null,{"title":247,"path":280,"stem":281,"description":282,"icon":278},"\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Fevent-types","docs\u002F11.digital-product-passport\u002F02.eudr\u002F02.event-types","EPCIS event types for EU Deforestation Regulation compliance",{"title":284,"path":285,"stem":286,"description":287,"icon":278},"URL Patterns","\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Furl-patterns","docs\u002F11.digital-product-passport\u002F02.eudr\u002F03.url-patterns","GS1 Digital Link URL patterns for EUDR implementations",{"title":253,"path":289,"stem":290,"description":291,"icon":13,"tags":292},"\u002Fdocs\u002Fdigital-product-passport\u002Feudr\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F02.eudr\u002F04.complete-examples","Reference EUDR examples — timber product passport, derived product, regulatory notification, harvesting \u002F origin-declaration \u002F processing \u002F supply-chain-transfer \u002F exemption events",[271,258,273,293,294],"due-diligence","geolocation",[271,272,273,214,31,102,35,216],{"title":297,"path":298,"stem":299,"children":300,"description":302,"icon":303,"tags":322},"Textile DPP","\u002Fdocs\u002Fdigital-product-passport\u002Ftextile","docs\u002F11.digital-product-passport\u002F03.textile\u002Findex",[301,309,316],{"title":297,"path":298,"stem":299,"description":302,"icon":303,"tags":304},"Digital Product Passport vocabulary for textiles and apparel under the EU Sustainable Textiles Strategy and ESPR 2024\u002F1781.","heroicons-outline:sparkles",[305,306,307,214,216,308],"textile","apparel","footwear","fibre-composition",{"title":242,"path":310,"stem":311,"description":312,"icon":313,"tags":314},"\u002Fdocs\u002Fdigital-product-passport\u002Ftextile\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F03.textile\u002F01.implementation-guide","How to assemble a Textile Digital Product Passport against the published openepcis-dpp-ready textile vocabulary","heroicons-outline:scissors",[305,306,307,315],"implementation",{"title":253,"path":317,"stem":318,"description":319,"icon":13,"tags":320},"\u002Fdocs\u002Fdigital-product-passport\u002Ftextile\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F03.textile\u002F02.complete-examples","Reference Textile Digital Product Passport documents covering apparel and footwear",[305,258,306,307,321,62],"fiber-composition",[305,306,307,214,216,308],{"title":324,"path":325,"stem":326,"children":327,"description":329,"icon":59,"tags":336},"Interoperability","\u002Fdocs\u002Fdigital-product-passport\u002Finteroperability","docs\u002F11.digital-product-passport\u002F04.interoperability\u002Findex",[328],{"title":324,"path":325,"stem":326,"description":329,"icon":59,"tags":330},"Guide to OpenEPCIS DPP interoperability with GS1, UNTP, CIRPASS2, and ESPR standards.",[331,332,102,333,227,334,335],"interoperability","untp","cirpass2","standards","alignment",[331,332,102,333,227,334,335],{"title":338,"path":339,"stem":340,"description":341,"icon":29,"tags":342},"DPP Resolution Flow","\u002Fdocs\u002Fdigital-product-passport\u002Fdpp-resolution-flow","docs\u002F11.digital-product-passport\u002F05.dpp-resolution-flow","How OpenEPCIS combined GS1 Digital Link, the IETF linkset format and content negotiation into one DPP resolution flow",[343,96,344,345],"walkthrough","linkset","content-negotiation",{"title":347,"path":348,"stem":349,"description":350,"icon":351,"tags":352},"Resolver Setup","\u002Fdocs\u002Fdigital-product-passport\u002Fresolver-setup","docs\u002F11.digital-product-passport\u002F06.resolver-setup","How to expose your DPP behind a GS1 Digital Link resolver","heroicons-outline:server",[353,96,344],"resolver",{"title":355,"path":356,"stem":357,"description":358,"icon":359,"tags":360},"Multi-Component Example","\u002Fdocs\u002Fdigital-product-passport\u002Fmulti-component-example","docs\u002F11.digital-product-passport\u002F07.multi-component-example","How a composite product references separately-passported components via standard GS1 Digital Link and EPCIS aggregation","heroicons-outline:puzzle-piece",[361,362,363,333],"example","components","aggregation",{"title":365,"path":366,"stem":367,"children":368,"description":370,"icon":371,"tags":390},"Electronics DPP","\u002Fdocs\u002Fdigital-product-passport\u002Felectronics","docs\u002F11.digital-product-passport\u002F08.electronics\u002Findex",[369,378,383],{"title":365,"path":366,"stem":367,"description":370,"icon":371,"tags":372},"Digital Product Passport vocabulary for electronic devices under ESPR, the French Repairability Index, EU Right to Repair and WEEE.","heroicons-outline:device-phone-mobile",[373,374,375,376,377],"electronics","repairability","weee","energy-label","right-to-repair",{"title":242,"path":379,"stem":380,"description":381,"icon":172,"tags":382},"\u002Fdocs\u002Fdigital-product-passport\u002Felectronics\u002Fimplementation-guide","docs\u002F11.digital-product-passport\u002F08.electronics\u002F01.implementation-guide","How to assemble an Electronics Digital Product Passport against the published openepcis-dpp-ready electronics vocabulary",[373,315,374,375,376],{"title":253,"path":384,"stem":385,"description":386,"icon":13,"tags":387},"\u002Fdocs\u002Fdigital-product-passport\u002Felectronics\u002Fcomplete-examples","docs\u002F11.digital-product-passport\u002F08.electronics\u002F02.complete-examples","Reference Electronics Digital Product Passport documents covering smartphone, laptop, display and server",[373,258,388,389,62],"smartphone","laptop",[373,374,375,376,377],[213,214,215,31,216,35,217],{"title":393,"path":394,"stem":395,"children":396,"description":398,"icon":399},"OpenEPCIS Overview","\u002Fdocs\u002Fplatform-overview","docs\u002F14.platform-overview\u002Findex",[397,400,406,412,418],{"title":393,"path":394,"stem":395,"description":398,"icon":399},"A GS1-conformant supply-chain data platform — Resolver, Masterdata, EPCIS Events — in open source and business editions.","lucide:layout-dashboard",{"title":401,"path":402,"stem":403,"description":404,"icon":405},"Architecture","\u002Fdocs\u002Fplatform-overview\u002Farchitecture","docs\u002F14.platform-overview\u002F01.architecture","How OpenEPCIS handles identity, isolation, events, and GS1 conformance — the four things that distinguish the platform.","lucide:cpu",{"title":407,"path":408,"stem":409,"description":410,"icon":411},"Feature Matrix","\u002Fdocs\u002Fplatform-overview\u002Ffeature-matrix","docs\u002F14.platform-overview\u002F02.feature-matrix","OpenEPCIS capabilities by edition, aligned to the relevant GS1 standards.","lucide:check-square",{"title":413,"path":414,"stem":415,"description":416,"icon":417},"Roadmap","\u002Fdocs\u002Fplatform-overview\u002Froadmap","docs\u002F14.platform-overview\u002F03.roadmap","Three horizons — Now, Next, Later. Skeleton awaiting user-confirmed dates.","lucide:map",{"title":419,"path":420,"stem":421,"children":422,"description":424,"icon":425},"Modules","\u002Fdocs\u002Fplatform-overview\u002Fmodules","docs\u002F14.platform-overview\u002Fmodules\u002Findex",[423,426,432,438,444,450,456,462],{"title":419,"path":420,"stem":421,"description":424,"icon":425},"Seven module families that organise the OpenEPCIS platform — Resolver, Masterdata, EPCIS Events, Formats & Validation, Integration, Testdata, Platform.","lucide:layers",{"title":427,"path":428,"stem":429,"description":430,"icon":431},"GS1 Conformant Resolver","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fresolver","docs\u002F14.platform-overview\u002Fmodules\u002F01.resolver","Resolves GS1 Digital Link URIs to product information, masterdata, EPCIS endpoints, and twelve more standard link types.","lucide:link-2",{"title":433,"path":434,"stem":435,"description":436,"icon":437},"GS1 Web Vocabulary & Masterdata","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fmasterdata","docs\u002F14.platform-overview\u002Fmodules\u002F02.masterdata","Web Vocabulary models, masterdata-to-resolver REST pattern, GS1 Germany Activate Plus \u002F GEPIR sync, and the event-driven masterdata bus.","lucide:database",{"title":439,"path":440,"stem":441,"description":442,"icon":443},"EPCIS Events — Capture, Query, Subscriptions","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fepcis-events","docs\u002F14.platform-overview\u002Fmodules\u002F03.epcis-events","EPCIS 2.0 REST and SOAP, live streaming subscriptions, resilient pagination, OpenSearch event store.","lucide:activity",{"title":445,"path":446,"stem":447,"description":448,"icon":449},"Formats, Validation & Identity","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fformats","docs\u002F14.platform-overview\u002Fmodules\u002F04.formats","XML ↔ JSON-LD conversion, multi-layer validation, identifier translation, idempotent event hashing.","lucide:file-check",{"title":451,"path":452,"stem":453,"description":454,"icon":455},"Integration & Gateways","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fintegration","docs\u002F14.platform-overview\u002Fmodules\u002F05.integration","Cloud storage, file service, natural-language AI assistant.","lucide:plug",{"title":457,"path":458,"stem":459,"description":460,"icon":461},"Testdata & Developer Tooling","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Ftestdata","docs\u002F14.platform-overview\u002Fmodules\u002F06.testdata","Synthetic EPCIS test event generation, reference event collections, conformance test suite, SDKs.","lucide:wrench",{"title":463,"path":464,"stem":465,"description":466,"icon":467},"Platform, Build & Observability","\u002Fdocs\u002Fplatform-overview\u002Fmodules\u002Fplatform","docs\u002F14.platform-overview\u002Fmodules\u002F07.platform","How OpenEPCIS is built, deployed, and observed.","lucide:server",{"title":469,"path":470,"stem":471,"children":472,"description":474,"icon":29,"tags":483},"Vision","\u002Fdocs\u002Fvision","docs\u002F15.vision\u002Findex",[473],{"title":469,"path":470,"stem":471,"description":474,"icon":29,"tags":475},"How UNTP, DIDs, Verifiable Credentials, and EPCIS work together to create unified product identity infrastructure for the connected supply chain.",[476,477,478,479,332,480,481,482],"vision","digital-twin","did","verifiable-credentials","rfid","industry-4-0","web-3-0",[476,477,478,479,332,480,481,482],[],{"doc":486,"usedFallback":1653},{"id":487,"title":488,"body":489,"description":119,"extension":1633,"icon":120,"lastUpdated":278,"meta":1634,"navigation":1645,"path":115,"seo":1647,"sitemap":1648,"stem":116,"__hash__":1652},"docsEN\u002Fdocs\u002F06.event-hash-generator\u002Findex.md","EPCIS 2.0 Event Hash Generator",{"type":490,"value":491,"toc":1618},"minimark",[492,497,501,510,517,524,531,538,541,544,547,551,554,559,567,571,577,581,593,1011,1015,1021,1025,1032,1196,1200,1207,1316,1320,1329,1596,1600,1614],[493,494,496],"h2",{"id":495},"quick-links","Quick links",[498,499,500],"p",{},"Please find below the links to the OpenEPCIS tools and codes referenced on this documentation page. To enhance your understanding and gain practical experience with these tools, we\nrecommend visiting and utilizing them:",[498,502,503,504],{},"• Hash generator web application : ",[505,506,507],"a",{"href":507,"rel":508},"https:\u002F\u002Ftools.openepcis.io\u002Fui\u002Fevent-hash-generator",[509],"nofollow",[498,511,512,513],{},"• Hash generator API endpoint : ",[505,514,515],{"href":515,"rel":516},"https:\u002F\u002Ftools.openepcis.io\u002Fq\u002Fswagger-ui\u002F#\u002FEvent%20Hash%20Generator",[509],[498,518,519,520],{},"• Hash generator core application code : ",[505,521,522],{"href":522,"rel":523},"https:\u002F\u002Fgithub.com\u002Fopenepcis\u002Fopenepcis-event-hash-generator",[509],[498,525,526,527],{},"• Hash generator cli application\ncode : ",[505,528,529],{"href":529,"rel":530},"https:\u002F\u002Fgithub.com\u002Fopenepcis\u002Fopenepcis-event-hash-generator\u002Ftree\u002Fmain\u002Fcli",[509],[498,532,533,534],{},"• Hash generator rest api application\ncode : ",[505,535,536],{"href":536,"rel":537},"https:\u002F\u002Fgithub.com\u002Fopenepcis\u002Fopenepcis-event-hash-generator\u002Ftree\u002Fmain\u002Frest-api",[509],[493,539,23],{"id":540},"introduction",[498,542,543],{},"EPCIS standard consists of events that are triggered when objects involved progress through different steps in the supply chain. These events are sent to other organizations,\nstored in organization-specific repositories, or used for other purposes. There are times when the same event is triggered multiple times due to faulty hardware, poor\nimplementations, or human mistake. Organizations typically do not want to send or store duplicate events. Consequently, a system that would allow each event to be identified\nindividually was required. OpenEPCIS has developed the Event Hash Generator tool as a solution to this problem. Using the data contained in each event, this tool will create\nHash-IDs for each EPCIS event.",[498,545,546],{},"The tool follows a predetermined order for properties, and all event data is always canonicalized. Therefore, even if the attributes are in a different order or the information is\nin URN\u002FWebURI format, it is always guaranteed that the events will have the same Hash-Ids and be considered duplicate events. Storing unique data in the repository and avoiding\nconfusion caused by several copies of the same event, would substantially help organizations. Currently, the tool supports the generation following Hash Ids: sha-256, sha-224,\nsha-384, sha-512, sha3-224, sha3-256, and sha3-512.",[493,548,550],{"id":549},"usage","Usage",[498,552,553],{},"Following section provides quick overview of how to generate hash ids for EPCIS document:",[555,556,558],"h3",{"id":557},"web-application","Web Application",[498,560,561,562,566],{},"Users can quickly access the tool on their browser and generate Hash-Ids for EPCIS events or documents in XML\u002FJSON format. Additionally, users have the option to view the Pre-Hash\nstring and select multiple hash algorithm types in accordance with their needs. You can access the web application from ",[505,563,565],{"href":507,"rel":564},[509],"here",".",[555,568,570],{"id":569},"api-endpoint","API Endpoint",[498,572,573,574,566],{},"With their XML\u002FJSON documents serving as request, users\u002Fdevelopers can use the API to send requests to OpenEPCIS's Hash Generator API and receive back the converted document as a\nresponse. These API's can also be used directly online or from within another application code. Users can access the REST endpoint using Swagger-UI\nfrom ",[505,575,565],{"href":515,"rel":576},[509],[555,578,580],{"id":579},"command-line","Command Line",[498,582,583,584,588,589,592],{},"Client URL or popularly known as cURL is a command-line utility that is used to send and receive data from or to a server. As many developers and users prefer using this utility\nover normal web applications, OpenEPCIS Event Hash Generator supports the generation of hash ids using the cURL command. Users can make requests to the\nservice ",[585,586,587],"code",{},"https:\u002F\u002Ftools.openepcis.io\u002Fapi\u002Fgenerate\u002Fevent-hash\u002Fdocument"," using their preferred document or if you have list of EPCIS events then make request\nto ",[585,590,591],{},"https:\u002F\u002Ftools.openepcis.io\u002Fapi\u002Fgenerate\u002Fevent-hash\u002Fevents",". Following is an example of a cURL request to generate hash ids for JSON document:",[594,595,599],"pre",{"className":596,"code":597,"language":61,"meta":598,"style":598},"language-json shiki shiki-themes material-theme-lighter github-light github-dark monokai","curl -X 'POST' \\\n'https:\u002F\u002Ftools.openepcis.io\u002Fapi\u002Fgenerate\u002Fevent-hash\u002Fdocument' \\\n-H 'accept: application\u002Fjson' \\\n-H 'Content-Type: application\u002Fjson' \\\n-d '{\n\"@context\": [\n{\n\"example\": \"http:\u002F\u002Fns.example.com\u002Fepcis\u002F\"\n}\n],\n\"type\": \"EPCISDocument\",\n\"schemaVersion\": \"2.0\",\n\"creationDate\": \"2005-07-11T11:30:47.0Z\",\n\"epcisBody\": {\n\"eventList\": [\n{\n\"type\": \"ObjectEvent\",\n\"eventTime\": \"2005-04-04T04:33:31.116+02:00\",\n\"eventTimeZoneOffset\": \"-06:00\",\n\"action\": \"ADD\",\n\"bizStep\": \"commissioning\",\n\"disposition\": \"in_transit\",\n\"epcList\":[\"urn:epc:id:grai:4012345.55555.987\"],\n\"readPoint\": {\n\"id\": \"urn:epc:id:sgln:0614141.07346.1234\"\n}\n}\n]\n}\n}'\n","",[585,600,601,610,620,626,632,642,661,666,689,695,701,723,744,765,780,794,799,820,841,862,883,904,925,947,961,981,986,991,997,1002],{"__ignoreMap":598},[602,603,606],"span",{"class":604,"line":605},"line",1,[602,607,609],{"class":608},"ss--_","curl -X 'POST' \\\n",[602,611,613,616],{"class":604,"line":612},2,[602,614,615],{"class":608},"'https:",[602,617,619],{"class":618},"ss7Ak","\u002F\u002Ftools.openepcis.io\u002Fapi\u002Fgenerate\u002Fevent-hash\u002Fdocument' \\\n",[602,621,623],{"class":604,"line":622},3,[602,624,625],{"class":608},"-H 'accept: application\u002Fjson' \\\n",[602,627,629],{"class":604,"line":628},4,[602,630,631],{"class":608},"-H 'Content-Type: application\u002Fjson' \\\n",[602,633,635,638],{"class":604,"line":634},5,[602,636,637],{"class":608},"-d '",[602,639,641],{"class":640},"swvn1","{\n",[602,643,645,649,653,655,658],{"class":604,"line":644},6,[602,646,648],{"class":647},"saDeg","\"",[602,650,652],{"class":651},"sEff5","@context",[602,654,648],{"class":647},[602,656,657],{"class":640},":",[602,659,660],{"class":640}," [\n",[602,662,664],{"class":604,"line":663},7,[602,665,641],{"class":640},[602,667,669,671,674,676,678,682,686],{"class":604,"line":668},8,[602,670,648],{"class":647},[602,672,361],{"class":673},"s_MOj",[602,675,648],{"class":647},[602,677,657],{"class":640},[602,679,681],{"class":680},"sh1VR"," \"",[602,683,685],{"class":684},"sINAO","http:\u002F\u002Fns.example.com\u002Fepcis\u002F",[602,687,688],{"class":680},"\"\n",[602,690,692],{"class":604,"line":691},9,[602,693,694],{"class":640},"}\n",[602,696,698],{"class":604,"line":697},10,[602,699,700],{"class":640},"],\n",[602,702,704,706,709,711,713,715,718,720],{"class":604,"line":703},11,[602,705,648],{"class":647},[602,707,708],{"class":651},"type",[602,710,648],{"class":647},[602,712,657],{"class":640},[602,714,681],{"class":680},[602,716,717],{"class":684},"EPCISDocument",[602,719,648],{"class":680},[602,721,722],{"class":640},",\n",[602,724,726,728,731,733,735,737,740,742],{"class":604,"line":725},12,[602,727,648],{"class":647},[602,729,730],{"class":651},"schemaVersion",[602,732,648],{"class":647},[602,734,657],{"class":640},[602,736,681],{"class":680},[602,738,739],{"class":684},"2.0",[602,741,648],{"class":680},[602,743,722],{"class":640},[602,745,747,749,752,754,756,758,761,763],{"class":604,"line":746},13,[602,748,648],{"class":647},[602,750,751],{"class":651},"creationDate",[602,753,648],{"class":647},[602,755,657],{"class":640},[602,757,681],{"class":680},[602,759,760],{"class":684},"2005-07-11T11:30:47.0Z",[602,762,648],{"class":680},[602,764,722],{"class":640},[602,766,768,770,773,775,777],{"class":604,"line":767},14,[602,769,648],{"class":647},[602,771,772],{"class":651},"epcisBody",[602,774,648],{"class":647},[602,776,657],{"class":640},[602,778,779],{"class":640}," {\n",[602,781,783,785,788,790,792],{"class":604,"line":782},15,[602,784,648],{"class":647},[602,786,787],{"class":673},"eventList",[602,789,648],{"class":647},[602,791,657],{"class":640},[602,793,660],{"class":640},[602,795,797],{"class":604,"line":796},16,[602,798,641],{"class":640},[602,800,802,804,807,809,811,813,816,818],{"class":604,"line":801},17,[602,803,648],{"class":647},[602,805,708],{"class":806},"sTC9v",[602,808,648],{"class":647},[602,810,657],{"class":640},[602,812,681],{"class":680},[602,814,815],{"class":684},"ObjectEvent",[602,817,648],{"class":680},[602,819,722],{"class":640},[602,821,823,825,828,830,832,834,837,839],{"class":604,"line":822},18,[602,824,648],{"class":647},[602,826,827],{"class":806},"eventTime",[602,829,648],{"class":647},[602,831,657],{"class":640},[602,833,681],{"class":680},[602,835,836],{"class":684},"2005-04-04T04:33:31.116+02:00",[602,838,648],{"class":680},[602,840,722],{"class":640},[602,842,844,846,849,851,853,855,858,860],{"class":604,"line":843},19,[602,845,648],{"class":647},[602,847,848],{"class":806},"eventTimeZoneOffset",[602,850,648],{"class":647},[602,852,657],{"class":640},[602,854,681],{"class":680},[602,856,857],{"class":684},"-06:00",[602,859,648],{"class":680},[602,861,722],{"class":640},[602,863,865,867,870,872,874,876,879,881],{"class":604,"line":864},20,[602,866,648],{"class":647},[602,868,869],{"class":806},"action",[602,871,648],{"class":647},[602,873,657],{"class":640},[602,875,681],{"class":680},[602,877,878],{"class":684},"ADD",[602,880,648],{"class":680},[602,882,722],{"class":640},[602,884,886,888,891,893,895,897,900,902],{"class":604,"line":885},21,[602,887,648],{"class":647},[602,889,890],{"class":806},"bizStep",[602,892,648],{"class":647},[602,894,657],{"class":640},[602,896,681],{"class":680},[602,898,899],{"class":684},"commissioning",[602,901,648],{"class":680},[602,903,722],{"class":640},[602,905,907,909,912,914,916,918,921,923],{"class":604,"line":906},22,[602,908,648],{"class":647},[602,910,911],{"class":806},"disposition",[602,913,648],{"class":647},[602,915,657],{"class":640},[602,917,681],{"class":680},[602,919,920],{"class":684},"in_transit",[602,922,648],{"class":680},[602,924,722],{"class":640},[602,926,928,930,933,935,938,940,943,945],{"class":604,"line":927},23,[602,929,648],{"class":647},[602,931,932],{"class":806},"epcList",[602,934,648],{"class":647},[602,936,937],{"class":640},":[",[602,939,648],{"class":680},[602,941,942],{"class":684},"urn:epc:id:grai:4012345.55555.987",[602,944,648],{"class":680},[602,946,700],{"class":640},[602,948,950,952,955,957,959],{"class":604,"line":949},24,[602,951,648],{"class":647},[602,953,954],{"class":806},"readPoint",[602,956,648],{"class":647},[602,958,657],{"class":640},[602,960,779],{"class":640},[602,962,964,966,970,972,974,976,979],{"class":604,"line":963},25,[602,965,648],{"class":647},[602,967,969],{"class":968},"sogGa","id",[602,971,648],{"class":647},[602,973,657],{"class":640},[602,975,681],{"class":680},[602,977,978],{"class":684},"urn:epc:id:sgln:0614141.07346.1234",[602,980,688],{"class":680},[602,982,984],{"class":604,"line":983},26,[602,985,694],{"class":640},[602,987,989],{"class":604,"line":988},27,[602,990,694],{"class":640},[602,992,994],{"class":604,"line":993},28,[602,995,996],{"class":640},"]\n",[602,998,1000],{"class":604,"line":999},29,[602,1001,694],{"class":640},[602,1003,1005,1008],{"class":604,"line":1004},30,[602,1006,1007],{"class":640},"}",[602,1009,1010],{"class":608},"'\n",[493,1012,1014],{"id":1013},"application-code","Application Code",[498,1016,1017,1018,566],{},"The utility has been developed using Java. The code is available at the OpenEPCIS GitHub account and can be accessed directly or as dependencies for other projects. The complete\ncode can be found ",[505,1019,565],{"href":522,"rel":1020},[509],[555,1022,1024],{"id":1023},"generating-hash-ids-from-xml-document","Generating Hash IDs from XML Document",[498,1026,1027,1028,1031],{},"If the users have EPCIS documents in XML format, then they can be provided as InputStream, which serves as the first parameter to the ",[585,1029,1030],{},"fromXml"," method, and the second parameter\nspecifies the type of hash algorithm needed (by default sha-256 algorithm is used):",[594,1033,1037],{"className":1034,"code":1035,"language":1036,"meta":598,"style":598},"language-java shiki shiki-themes material-theme-lighter github-light github-dark monokai","final InputStream xmlStream=getClass().getResourceAsStream(\"\u002FXmlEpcisDocument.xml\");\nfinal EventHashGenerator eventHashGenerator=new EventHashGenerator();\n        eventHashGenerator.prehashJoin(\"\\\\n\");\nfinal Multi\u003CMap\u003CString, String>>documentEventHash=eventHashGenerator.fromXml(xmlStream,\"prehash\",\"sha-256\");\n\u002F\u002Ffinal List\u003CString> xmlHashIds = eventHashGenerator.fromXml(xmlStream, \"sha-512\").subscribe().asStream().toList();\n","java",[585,1038,1039,1081,1102,1127,1191],{"__ignoreMap":598},[602,1040,1041,1045,1049,1052,1056,1060,1063,1066,1069,1072,1076,1078],{"class":604,"line":605},[602,1042,1044],{"class":1043},"sTNss","final",[602,1046,1048],{"class":1047},"syw9h"," InputStream",[602,1050,1051],{"class":608}," xmlStream",[602,1053,1055],{"class":1054},"sGXK2","=",[602,1057,1059],{"class":1058},"sD0ED","getClass",[602,1061,1062],{"class":640},"().",[602,1064,1065],{"class":1058},"getResourceAsStream",[602,1067,1068],{"class":640},"(",[602,1070,648],{"class":1071},"siCPE",[602,1073,1075],{"class":1074},"sLACW","\u002FXmlEpcisDocument.xml",[602,1077,648],{"class":1071},[602,1079,1080],{"class":640},");\n",[602,1082,1083,1085,1088,1091,1093,1097,1099],{"class":604,"line":612},[602,1084,1044],{"class":1043},[602,1086,1087],{"class":1047}," EventHashGenerator",[602,1089,1090],{"class":608}," eventHashGenerator",[602,1092,1055],{"class":1054},[602,1094,1096],{"class":1095},"sRxSC","new",[602,1098,1087],{"class":1058},[602,1100,1101],{"class":640},"();\n",[602,1103,1104,1107,1109,1112,1114,1116,1120,1123,1125],{"class":604,"line":622},[602,1105,1106],{"class":608},"        eventHashGenerator",[602,1108,566],{"class":640},[602,1110,1111],{"class":1058},"prehashJoin",[602,1113,1068],{"class":640},[602,1115,648],{"class":1071},[602,1117,1119],{"class":1118},"sQeA1","\\\\",[602,1121,1122],{"class":1074},"n",[602,1124,648],{"class":1071},[602,1126,1080],{"class":640},[602,1128,1129,1131,1134,1137,1140,1142,1145,1148,1151,1154,1157,1159,1162,1164,1166,1168,1171,1173,1175,1178,1180,1182,1184,1187,1189],{"class":604,"line":628},[602,1130,1044],{"class":1043},[602,1132,1133],{"class":1047}," Multi",[602,1135,1136],{"class":1054},"\u003C",[602,1138,1139],{"class":1047},"Map",[602,1141,1136],{"class":1054},[602,1143,1144],{"class":608},"String",[602,1146,1147],{"class":640},",",[602,1149,1150],{"class":608}," String",[602,1152,1153],{"class":1054},">>",[602,1155,1156],{"class":608},"documentEventHash",[602,1158,1055],{"class":1054},[602,1160,1161],{"class":608},"eventHashGenerator",[602,1163,566],{"class":640},[602,1165,1030],{"class":1058},[602,1167,1068],{"class":640},[602,1169,1170],{"class":608},"xmlStream",[602,1172,1147],{"class":640},[602,1174,648],{"class":1071},[602,1176,1177],{"class":1074},"prehash",[602,1179,648],{"class":1071},[602,1181,1147],{"class":640},[602,1183,648],{"class":1071},[602,1185,1186],{"class":1074},"sha-256",[602,1188,648],{"class":1071},[602,1190,1080],{"class":640},[602,1192,1193],{"class":604,"line":634},[602,1194,1195],{"class":618},"\u002F\u002Ffinal List\u003CString> xmlHashIds = eventHashGenerator.fromXml(xmlStream, \"sha-512\").subscribe().asStream().toList();\n",[555,1197,1199],{"id":1198},"generating-hash-ids-from-json-document","Generating Hash IDs from JSON Document",[498,1201,1202,1203,1206],{},"If the users have the EPCIS documents in JSON\u002FJSON-LD format, then they can be provided as InputStream, which serves as the first argument to the ",[585,1204,1205],{},"fromJson"," method, and the second\nparameter specifies the type of hash algorithm needed (by default sha-256 algorithm is used):",[594,1208,1210],{"className":1034,"code":1209,"language":1036,"meta":598,"style":598},"final InputStream jsonStream=getClass().getResourceAsStream(\"\u002FJsonEpcisDocument.json\");\nfinal EventHashGenerator eventHashGenerator=new EventHashGenerator();\nfinal Multi\u003CMap\u003CString, String>>jsonEventHash=eventHashGenerator.fromJson(jsonStream,\"prehash\",\"sha3-512\");\n\u002F\u002Ffinal List\u003CString> jsonHashIds = eventHashGenerator.fromJson(jsonStream, \"sha-256\").subscribe().asStream().toList();\n",[585,1211,1212,1240,1256,1311],{"__ignoreMap":598},[602,1213,1214,1216,1218,1221,1223,1225,1227,1229,1231,1233,1236,1238],{"class":604,"line":605},[602,1215,1044],{"class":1043},[602,1217,1048],{"class":1047},[602,1219,1220],{"class":608}," jsonStream",[602,1222,1055],{"class":1054},[602,1224,1059],{"class":1058},[602,1226,1062],{"class":640},[602,1228,1065],{"class":1058},[602,1230,1068],{"class":640},[602,1232,648],{"class":1071},[602,1234,1235],{"class":1074},"\u002FJsonEpcisDocument.json",[602,1237,648],{"class":1071},[602,1239,1080],{"class":640},[602,1241,1242,1244,1246,1248,1250,1252,1254],{"class":604,"line":612},[602,1243,1044],{"class":1043},[602,1245,1087],{"class":1047},[602,1247,1090],{"class":608},[602,1249,1055],{"class":1054},[602,1251,1096],{"class":1095},[602,1253,1087],{"class":1058},[602,1255,1101],{"class":640},[602,1257,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1279,1281,1283,1285,1287,1289,1292,1294,1296,1298,1300,1302,1304,1307,1309],{"class":604,"line":622},[602,1259,1044],{"class":1043},[602,1261,1133],{"class":1047},[602,1263,1136],{"class":1054},[602,1265,1139],{"class":1047},[602,1267,1136],{"class":1054},[602,1269,1144],{"class":608},[602,1271,1147],{"class":640},[602,1273,1150],{"class":608},[602,1275,1153],{"class":1054},[602,1277,1278],{"class":608},"jsonEventHash",[602,1280,1055],{"class":1054},[602,1282,1161],{"class":608},[602,1284,566],{"class":640},[602,1286,1205],{"class":1058},[602,1288,1068],{"class":640},[602,1290,1291],{"class":608},"jsonStream",[602,1293,1147],{"class":640},[602,1295,648],{"class":1071},[602,1297,1177],{"class":1074},[602,1299,648],{"class":1071},[602,1301,1147],{"class":640},[602,1303,648],{"class":1071},[602,1305,1306],{"class":1074},"sha3-512",[602,1308,648],{"class":1071},[602,1310,1080],{"class":640},[602,1312,1313],{"class":604,"line":628},[602,1314,1315],{"class":618},"\u002F\u002Ffinal List\u003CString> jsonHashIds = eventHashGenerator.fromJson(jsonStream, \"sha-256\").subscribe().asStream().toList();\n",[555,1317,1319],{"id":1318},"subscription-logic","Subscription logic",[498,1321,1322,1323,1325,1326,1328],{},"If users have a large EPCIS document in XML or JSON\u002FJSON-LD consisting of millions of events, they may supply it to the corresponding ",[585,1324,1030],{}," or ",[585,1327,1205],{}," of the\nEventHashGenerator class, as previously mentioned. Additionally, users can subscribe to the method so that they can print or utilize generated HashIds for additional processing as\nsoon as they are generated and returned using the Reactive Stream approach. A simple illustration of how the HashIds may be printed using the subscription logic is shown in the\nfollowing lines of code. In this simple example, when HashId is generated it is printed out to the console. By using this approach it is not required for the process to wait until\nall events are completed. Hence making this approach much faster and efficient.",[594,1330,1332],{"className":1034,"code":1331,"language":1036,"meta":598,"style":598},"final InputStream xmlStream=getClass().getResourceAsStream(\"\u002FXmlEpcisDocument.xml\");\nfinal InputStream jsonStream=getClass().getResourceAsStream(\"\u002FJsonEpcisDocument.json\");\nfinal EventHashGenerator eventHashGenerator=new EventHashGenerator();\n\n        eventHashGenerator.fromXml(xmlStream,\"sha-256\").subscribe().with(\n        xmlHashId->System.out.println(xmlHashId),\n        failure->System.out.println(\"XML HashId Generation Failed with : \"+failure));\n\n        eventHashGenerator.fromJson(jsonStream,\"sha-256\").subscribe().with(\n        jsonHashId->System.out.println(jsonHashId),\n        failure->System.out.println(\"JSON HashId Generation Failed with \"+failure));\n",[585,1333,1334,1360,1386,1402,1408,1442,1472,1507,1511,1541,1565],{"__ignoreMap":598},[602,1335,1336,1338,1340,1342,1344,1346,1348,1350,1352,1354,1356,1358],{"class":604,"line":605},[602,1337,1044],{"class":1043},[602,1339,1048],{"class":1047},[602,1341,1051],{"class":608},[602,1343,1055],{"class":1054},[602,1345,1059],{"class":1058},[602,1347,1062],{"class":640},[602,1349,1065],{"class":1058},[602,1351,1068],{"class":640},[602,1353,648],{"class":1071},[602,1355,1075],{"class":1074},[602,1357,648],{"class":1071},[602,1359,1080],{"class":640},[602,1361,1362,1364,1366,1368,1370,1372,1374,1376,1378,1380,1382,1384],{"class":604,"line":612},[602,1363,1044],{"class":1043},[602,1365,1048],{"class":1047},[602,1367,1220],{"class":608},[602,1369,1055],{"class":1054},[602,1371,1059],{"class":1058},[602,1373,1062],{"class":640},[602,1375,1065],{"class":1058},[602,1377,1068],{"class":640},[602,1379,648],{"class":1071},[602,1381,1235],{"class":1074},[602,1383,648],{"class":1071},[602,1385,1080],{"class":640},[602,1387,1388,1390,1392,1394,1396,1398,1400],{"class":604,"line":622},[602,1389,1044],{"class":1043},[602,1391,1087],{"class":1047},[602,1393,1090],{"class":608},[602,1395,1055],{"class":1054},[602,1397,1096],{"class":1095},[602,1399,1087],{"class":1058},[602,1401,1101],{"class":640},[602,1403,1404],{"class":604,"line":628},[602,1405,1407],{"emptyLinePlaceholder":1406},true,"\n",[602,1409,1410,1412,1414,1416,1418,1420,1422,1424,1426,1428,1431,1434,1436,1439],{"class":604,"line":634},[602,1411,1106],{"class":608},[602,1413,566],{"class":640},[602,1415,1030],{"class":1058},[602,1417,1068],{"class":640},[602,1419,1170],{"class":608},[602,1421,1147],{"class":640},[602,1423,648],{"class":1071},[602,1425,1186],{"class":1074},[602,1427,648],{"class":1071},[602,1429,1430],{"class":640},").",[602,1432,1433],{"class":1058},"subscribe",[602,1435,1062],{"class":640},[602,1437,1438],{"class":1058},"with",[602,1440,1441],{"class":640},"(\n",[602,1443,1444,1447,1451,1454,1456,1459,1461,1464,1466,1469],{"class":604,"line":644},[602,1445,1446],{"class":608},"        xmlHashId",[602,1448,1450],{"class":1449},"srJo8","->",[602,1452,1453],{"class":608},"System",[602,1455,566],{"class":640},[602,1457,1458],{"class":608},"out",[602,1460,566],{"class":640},[602,1462,1463],{"class":1058},"println",[602,1465,1068],{"class":640},[602,1467,1468],{"class":608},"xmlHashId",[602,1470,1471],{"class":640},"),\n",[602,1473,1474,1477,1479,1481,1483,1485,1487,1489,1491,1493,1496,1498,1501,1504],{"class":604,"line":663},[602,1475,1476],{"class":608},"        failure",[602,1478,1450],{"class":1449},[602,1480,1453],{"class":608},[602,1482,566],{"class":640},[602,1484,1458],{"class":608},[602,1486,566],{"class":640},[602,1488,1463],{"class":1058},[602,1490,1068],{"class":640},[602,1492,648],{"class":1071},[602,1494,1495],{"class":1074},"XML HashId Generation Failed with : ",[602,1497,648],{"class":1071},[602,1499,1500],{"class":1054},"+",[602,1502,1503],{"class":608},"failure",[602,1505,1506],{"class":640},"));\n",[602,1508,1509],{"class":604,"line":668},[602,1510,1407],{"emptyLinePlaceholder":1406},[602,1512,1513,1515,1517,1519,1521,1523,1525,1527,1529,1531,1533,1535,1537,1539],{"class":604,"line":691},[602,1514,1106],{"class":608},[602,1516,566],{"class":640},[602,1518,1205],{"class":1058},[602,1520,1068],{"class":640},[602,1522,1291],{"class":608},[602,1524,1147],{"class":640},[602,1526,648],{"class":1071},[602,1528,1186],{"class":1074},[602,1530,648],{"class":1071},[602,1532,1430],{"class":640},[602,1534,1433],{"class":1058},[602,1536,1062],{"class":640},[602,1538,1438],{"class":1058},[602,1540,1441],{"class":640},[602,1542,1543,1546,1548,1550,1552,1554,1556,1558,1560,1563],{"class":604,"line":697},[602,1544,1545],{"class":608},"        jsonHashId",[602,1547,1450],{"class":1449},[602,1549,1453],{"class":608},[602,1551,566],{"class":640},[602,1553,1458],{"class":608},[602,1555,566],{"class":640},[602,1557,1463],{"class":1058},[602,1559,1068],{"class":640},[602,1561,1562],{"class":608},"jsonHashId",[602,1564,1471],{"class":640},[602,1566,1567,1569,1571,1573,1575,1577,1579,1581,1583,1585,1588,1590,1592,1594],{"class":604,"line":703},[602,1568,1476],{"class":608},[602,1570,1450],{"class":1449},[602,1572,1453],{"class":608},[602,1574,566],{"class":640},[602,1576,1458],{"class":608},[602,1578,566],{"class":640},[602,1580,1463],{"class":1058},[602,1582,1068],{"class":640},[602,1584,648],{"class":1071},[602,1586,1587],{"class":1074},"JSON HashId Generation Failed with ",[602,1589,648],{"class":1071},[602,1591,1500],{"class":1054},[602,1593,1503],{"class":608},[602,1595,1506],{"class":640},[493,1597,1599],{"id":1598},"further-references","Further References",[498,1601,1602,1603,1608,1609,566],{},"For more information on Event Hash Generation, ordering of elements, or canonicalization, please refer to the detailed Documentation\nat ",[505,1604,1607],{"href":1605,"rel":1606},"https:\u002F\u002Fgithub.com\u002FRalphTro\u002Fepcis-event-hash-generator",[509],"GitHub"," by Ralph Tröger or on official ",[505,1610,1613],{"href":1611,"rel":1612},"https:\u002F\u002Fref.gs1.org\u002Fstandards\u002Fcbv\u002F2.0.0\u002F#page=93",[509],"GS1 EPCIS documentation",[1615,1616,1617],"style",{},"html pre.shiki code .ss--_, html code.shiki .ss--_{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .ss7Ak, html code.shiki .ss7Ak{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-sepia:#88846F;--shiki-sepia-font-style:inherit}html pre.shiki code .swvn1, html code.shiki .swvn1{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .saDeg, html code.shiki .saDeg{--shiki-light:#39ADB5;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .sEff5, html code.shiki .sEff5{--shiki-light:#9C3EDA;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .s_MOj, html code.shiki .s_MOj{--shiki-light:#E2931D;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .sh1VR, html code.shiki .sh1VR{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#CFCFC2}html pre.shiki code .sINAO, html code.shiki .sINAO{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#CFCFC2}html pre.shiki code .sTC9v, html code.shiki .sTC9v{--shiki-light:#F76D47;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .sogGa, html code.shiki .sogGa{--shiki-light:#E53935;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html pre.shiki code .sTNss, html code.shiki .sTNss{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .syw9h, html code.shiki .syw9h{--shiki-light:#9C3EDA;--shiki-light-font-style:inherit;--shiki-default:#24292E;--shiki-default-font-style:inherit;--shiki-dark:#E1E4E8;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .sGXK2, html code.shiki .sGXK2{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .sD0ED, html code.shiki .sD0ED{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .siCPE, html code.shiki .siCPE{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .sLACW, html code.shiki .sLACW{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .sRxSC, html code.shiki .sRxSC{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-sepia:#F92672;--shiki-sepia-font-style:inherit}html pre.shiki code .sQeA1, html code.shiki .sQeA1{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html pre.shiki code .srJo8, html code.shiki .srJo8{--shiki-light:#9C3EDA;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}",{"title":598,"searchDepth":612,"depth":612,"links":1619},[1620,1621,1622,1627,1632],{"id":495,"depth":612,"text":496},{"id":540,"depth":612,"text":23},{"id":549,"depth":612,"text":550,"children":1623},[1624,1625,1626],{"id":557,"depth":622,"text":558},{"id":569,"depth":622,"text":570},{"id":579,"depth":622,"text":580},{"id":1013,"depth":612,"text":1014,"children":1628},[1629,1630,1631],{"id":1023,"depth":622,"text":1024},{"id":1198,"depth":622,"text":1199},{"id":1318,"depth":622,"text":1319},{"id":1598,"depth":612,"text":1599},"md",{"head":1635,"readingTime":1640},{"meta":1636},[1637],{"name":1638,"content":1639},"keywords","EPCIS 2.0, event hash, json, json-ld, xml, events, EPCIS tools, event, hash, generator, epcis tool, tools",{"text":1641,"minutes":1642,"time":1643,"words":1644},"5 min read",4.31,258600,862,{"title":114,"tags":1646},[16,122,61,62,63,64,21,123,124,125,70,71],{"title":488,"description":119},{"loc":115,"lastmod":1649,"changefreq":1650,"priority":1651},"2024-08-31","monthly",0.9,"bhmHC2FPkRk7XNIcTZp1g9o7UnVMZ26YAOiXZskPyxY",false,[1655],{"title":5,"path":6,"stem":7,"children":1656},[1657,1659,1664,1669,1674,1679,1684,1689,1699,1704,1709,1714,1772,1788],{"title":10,"path":6,"stem":11,"description":12,"icon":13,"tags":1658},[15,16,17,18,19,20,21],{"title":23,"path":24,"stem":25,"children":1660,"description":28,"icon":29,"tags":1663},[1661],{"title":23,"path":24,"stem":25,"description":28,"icon":29,"tags":1662},[16,31,32,33,34,35,36,37,38],[16,31,32,33,34,35,36,37,38],{"title":41,"path":42,"stem":43,"children":1665,"description":46,"icon":47,"tags":1668},[1666],{"title":41,"path":42,"stem":43,"description":46,"icon":47,"tags":1667},[16,31,32,33,49,50],[16,31,32,33,49,50],{"title":53,"path":54,"stem":55,"children":1670,"description":58,"icon":59,"tags":1673},[1671],{"title":53,"path":54,"stem":55,"description":58,"icon":59,"tags":1672},[16,61,62,63,64,65,66,21,67,68,69,70,71],[16,61,62,63,64,65,66,21,67,68,69,70,71],{"title":74,"path":75,"stem":76,"children":1675,"description":79,"icon":80,"tags":1678},[1676],{"title":74,"path":75,"stem":76,"description":79,"icon":80,"tags":1677},[16,32,61,62,63,64,82,66,21,83,84,85,69,70,71],[16,32,61,62,63,64,82,66,21,83,84,85,69,70,71],{"title":88,"path":89,"stem":90,"children":1680,"description":93,"icon":94,"tags":1683},[1681],{"title":88,"path":89,"stem":90,"description":93,"icon":94,"tags":1682},[16,96,97,98,99,100,21,101,102,103,104,105,106,107,108,109,110,111],[16,96,97,98,99,100,21,101,102,103,104,105,106,107,108,109,110,111],{"title":114,"path":115,"stem":116,"children":1685,"description":119,"icon":120,"tags":1688},[1686],{"title":114,"path":115,"stem":116,"description":119,"icon":120,"tags":1687},[16,122,61,62,63,64,21,123,124,125,70,71],[16,122,61,62,63,64,21,123,124,125,70,71],{"title":128,"path":129,"stem":130,"children":1690,"description":133,"icon":134,"tags":1698},[1691,1693],{"title":128,"path":129,"stem":130,"description":133,"icon":134,"tags":1692},[16,122,61,62,63,64,21,123,124,125,70,71],{"title":137,"path":138,"stem":139,"children":1694,"description":133,"icon":142,"tags":1697},[1695],{"title":137,"path":138,"stem":139,"description":133,"icon":142,"tags":1696},[16,61,62,144,21,145,146,147,35,148,149,150,151],[16,61,62,144,21,145,146,147,35,148,149,150,151],[16,122,61,62,63,64,21,123,124,125,70,71],{"title":155,"path":156,"stem":157,"children":1700,"description":160,"icon":161,"tags":1703},[1701],{"title":155,"path":156,"stem":157,"description":160,"icon":161,"tags":1702},[16,61,62,144,21,163,35,148,149,150,151],[16,61,62,144,21,163,35,148,149,150,151],{"title":166,"path":167,"stem":168,"children":1705,"description":171,"icon":172,"tags":1708},[1706],{"title":166,"path":167,"stem":168,"description":171,"icon":172,"tags":1707},[16,174,15,175,21,176,35,177,149,150,178],[16,174,15,175,21,176,35,177,149,150,178],{"title":181,"path":182,"stem":183,"children":1710,"description":186,"icon":187,"tags":1713},[1711],{"title":181,"path":182,"stem":183,"description":186,"icon":187,"tags":1712},[189,15,190,191,192,193,194,31,195,196,197,198,199,200,201,202],[189,15,190,191,192,193,194,31,195,196,197,198,199,200,201,202],{"title":205,"path":206,"stem":207,"children":1715,"description":210,"icon":211,"tags":1771},[1716,1718,1723,1732,1742,1751,1756,1758,1760,1762],{"title":205,"path":206,"stem":207,"description":210,"icon":211,"tags":1717},[213,214,215,31,216,35,217],{"title":219,"path":220,"stem":221,"children":1719,"description":224,"icon":225,"tags":1722},[1720],{"title":219,"path":220,"stem":221,"description":224,"icon":225,"tags":1721},[227,228,216,214,215],[227,228,216,214,215],{"title":231,"path":232,"stem":233,"children":1724,"description":236,"icon":237,"tags":1731},[1725,1727,1728,1729],{"title":231,"path":232,"stem":233,"description":236,"icon":237,"tags":1726},[239,240,214,31,102,35,216],{"title":242,"path":243,"stem":244,"description":245,"icon":172},{"title":247,"path":248,"stem":249,"description":250,"icon":251},{"title":253,"path":254,"stem":255,"description":256,"icon":13,"tags":1730},[239,258,259,62,260],[239,240,214,31,102,35,216],{"title":263,"path":264,"stem":265,"children":1733,"description":268,"icon":269,"tags":1741},[1734,1736,1737,1738,1739],{"title":263,"path":264,"stem":265,"description":268,"icon":269,"tags":1735},[271,272,273,214,31,102,35,216],{"title":242,"path":275,"stem":276,"description":277,"icon":278},{"title":247,"path":280,"stem":281,"description":282,"icon":278},{"title":284,"path":285,"stem":286,"description":287,"icon":278},{"title":253,"path":289,"stem":290,"description":291,"icon":13,"tags":1740},[271,258,273,293,294],[271,272,273,214,31,102,35,216],{"title":297,"path":298,"stem":299,"children":1743,"description":302,"icon":303,"tags":1750},[1744,1746,1748],{"title":297,"path":298,"stem":299,"description":302,"icon":303,"tags":1745},[305,306,307,214,216,308],{"title":242,"path":310,"stem":311,"description":312,"icon":313,"tags":1747},[305,306,307,315],{"title":253,"path":317,"stem":318,"description":319,"icon":13,"tags":1749},[305,258,306,307,321,62],[305,306,307,214,216,308],{"title":324,"path":325,"stem":326,"children":1752,"description":329,"icon":59,"tags":1755},[1753],{"title":324,"path":325,"stem":326,"description":329,"icon":59,"tags":1754},[331,332,102,333,227,334,335],[331,332,102,333,227,334,335],{"title":338,"path":339,"stem":340,"description":341,"icon":29,"tags":1757},[343,96,344,345],{"title":347,"path":348,"stem":349,"description":350,"icon":351,"tags":1759},[353,96,344],{"title":355,"path":356,"stem":357,"description":358,"icon":359,"tags":1761},[361,362,363,333],{"title":365,"path":366,"stem":367,"children":1763,"description":370,"icon":371,"tags":1770},[1764,1766,1768],{"title":365,"path":366,"stem":367,"description":370,"icon":371,"tags":1765},[373,374,375,376,377],{"title":242,"path":379,"stem":380,"description":381,"icon":172,"tags":1767},[373,315,374,375,376],{"title":253,"path":384,"stem":385,"description":386,"icon":13,"tags":1769},[373,258,388,389,62],[373,374,375,376,377],[213,214,215,31,216,35,217],{"title":393,"path":394,"stem":395,"children":1773,"description":398,"icon":399},[1774,1775,1776,1777,1778],{"title":393,"path":394,"stem":395,"description":398,"icon":399},{"title":401,"path":402,"stem":403,"description":404,"icon":405},{"title":407,"path":408,"stem":409,"description":410,"icon":411},{"title":413,"path":414,"stem":415,"description":416,"icon":417},{"title":419,"path":420,"stem":421,"children":1779,"description":424,"icon":425},[1780,1781,1782,1783,1784,1785,1786,1787],{"title":419,"path":420,"stem":421,"description":424,"icon":425},{"title":427,"path":428,"stem":429,"description":430,"icon":431},{"title":433,"path":434,"stem":435,"description":436,"icon":437},{"title":439,"path":440,"stem":441,"description":442,"icon":443},{"title":445,"path":446,"stem":447,"description":448,"icon":449},{"title":451,"path":452,"stem":453,"description":454,"icon":455},{"title":457,"path":458,"stem":459,"description":460,"icon":461},{"title":463,"path":464,"stem":465,"description":466,"icon":467},{"title":469,"path":470,"stem":471,"children":1789,"description":474,"icon":29,"tags":1792},[1790],{"title":469,"path":470,"stem":471,"description":474,"icon":29,"tags":1791},[476,477,478,479,332,480,481,482],[476,477,478,479,332,480,481,482],{"id":487,"title":488,"body":1794,"description":119,"extension":1633,"icon":120,"lastUpdated":278,"meta":2705,"navigation":2710,"path":115,"seo":2712,"sitemap":2713,"stem":116,"__hash__":1652},{"type":490,"value":1795,"toc":2690},[1796,1798,1800,1805,1810,1815,1820,1825,1827,1829,1831,1833,1835,1837,1842,1844,1849,1851,1857,2183,2185,2190,2192,2196,2318,2320,2324,2426,2428,2434,2678,2680,2688],[493,1797,496],{"id":495},[498,1799,500],{},[498,1801,503,1802],{},[505,1803,507],{"href":507,"rel":1804},[509],[498,1806,512,1807],{},[505,1808,515],{"href":515,"rel":1809},[509],[498,1811,519,1812],{},[505,1813,522],{"href":522,"rel":1814},[509],[498,1816,526,1817],{},[505,1818,529],{"href":529,"rel":1819},[509],[498,1821,533,1822],{},[505,1823,536],{"href":536,"rel":1824},[509],[493,1826,23],{"id":540},[498,1828,543],{},[498,1830,546],{},[493,1832,550],{"id":549},[498,1834,553],{},[555,1836,558],{"id":557},[498,1838,561,1839,566],{},[505,1840,565],{"href":507,"rel":1841},[509],[555,1843,570],{"id":569},[498,1845,573,1846,566],{},[505,1847,565],{"href":515,"rel":1848},[509],[555,1850,580],{"id":579},[498,1852,583,1853,588,1855,592],{},[585,1854,587],{},[585,1856,591],{},[594,1858,1859],{"className":596,"code":597,"language":61,"meta":598,"style":598},[585,1860,1861,1865,1871,1875,1879,1885,1897,1901,1917,1921,1925,1943,1961,1979,1991,2003,2007,2025,2043,2061,2079,2097,2115,2133,2145,2161,2165,2169,2173,2177],{"__ignoreMap":598},[602,1862,1863],{"class":604,"line":605},[602,1864,609],{"class":608},[602,1866,1867,1869],{"class":604,"line":612},[602,1868,615],{"class":608},[602,1870,619],{"class":618},[602,1872,1873],{"class":604,"line":622},[602,1874,625],{"class":608},[602,1876,1877],{"class":604,"line":628},[602,1878,631],{"class":608},[602,1880,1881,1883],{"class":604,"line":634},[602,1882,637],{"class":608},[602,1884,641],{"class":640},[602,1886,1887,1889,1891,1893,1895],{"class":604,"line":644},[602,1888,648],{"class":647},[602,1890,652],{"class":651},[602,1892,648],{"class":647},[602,1894,657],{"class":640},[602,1896,660],{"class":640},[602,1898,1899],{"class":604,"line":663},[602,1900,641],{"class":640},[602,1902,1903,1905,1907,1909,1911,1913,1915],{"class":604,"line":668},[602,1904,648],{"class":647},[602,1906,361],{"class":673},[602,1908,648],{"class":647},[602,1910,657],{"class":640},[602,1912,681],{"class":680},[602,1914,685],{"class":684},[602,1916,688],{"class":680},[602,1918,1919],{"class":604,"line":691},[602,1920,694],{"class":640},[602,1922,1923],{"class":604,"line":697},[602,1924,700],{"class":640},[602,1926,1927,1929,1931,1933,1935,1937,1939,1941],{"class":604,"line":703},[602,1928,648],{"class":647},[602,1930,708],{"class":651},[602,1932,648],{"class":647},[602,1934,657],{"class":640},[602,1936,681],{"class":680},[602,1938,717],{"class":684},[602,1940,648],{"class":680},[602,1942,722],{"class":640},[602,1944,1945,1947,1949,1951,1953,1955,1957,1959],{"class":604,"line":725},[602,1946,648],{"class":647},[602,1948,730],{"class":651},[602,1950,648],{"class":647},[602,1952,657],{"class":640},[602,1954,681],{"class":680},[602,1956,739],{"class":684},[602,1958,648],{"class":680},[602,1960,722],{"class":640},[602,1962,1963,1965,1967,1969,1971,1973,1975,1977],{"class":604,"line":746},[602,1964,648],{"class":647},[602,1966,751],{"class":651},[602,1968,648],{"class":647},[602,1970,657],{"class":640},[602,1972,681],{"class":680},[602,1974,760],{"class":684},[602,1976,648],{"class":680},[602,1978,722],{"class":640},[602,1980,1981,1983,1985,1987,1989],{"class":604,"line":767},[602,1982,648],{"class":647},[602,1984,772],{"class":651},[602,1986,648],{"class":647},[602,1988,657],{"class":640},[602,1990,779],{"class":640},[602,1992,1993,1995,1997,1999,2001],{"class":604,"line":782},[602,1994,648],{"class":647},[602,1996,787],{"class":673},[602,1998,648],{"class":647},[602,2000,657],{"class":640},[602,2002,660],{"class":640},[602,2004,2005],{"class":604,"line":796},[602,2006,641],{"class":640},[602,2008,2009,2011,2013,2015,2017,2019,2021,2023],{"class":604,"line":801},[602,2010,648],{"class":647},[602,2012,708],{"class":806},[602,2014,648],{"class":647},[602,2016,657],{"class":640},[602,2018,681],{"class":680},[602,2020,815],{"class":684},[602,2022,648],{"class":680},[602,2024,722],{"class":640},[602,2026,2027,2029,2031,2033,2035,2037,2039,2041],{"class":604,"line":822},[602,2028,648],{"class":647},[602,2030,827],{"class":806},[602,2032,648],{"class":647},[602,2034,657],{"class":640},[602,2036,681],{"class":680},[602,2038,836],{"class":684},[602,2040,648],{"class":680},[602,2042,722],{"class":640},[602,2044,2045,2047,2049,2051,2053,2055,2057,2059],{"class":604,"line":843},[602,2046,648],{"class":647},[602,2048,848],{"class":806},[602,2050,648],{"class":647},[602,2052,657],{"class":640},[602,2054,681],{"class":680},[602,2056,857],{"class":684},[602,2058,648],{"class":680},[602,2060,722],{"class":640},[602,2062,2063,2065,2067,2069,2071,2073,2075,2077],{"class":604,"line":864},[602,2064,648],{"class":647},[602,2066,869],{"class":806},[602,2068,648],{"class":647},[602,2070,657],{"class":640},[602,2072,681],{"class":680},[602,2074,878],{"class":684},[602,2076,648],{"class":680},[602,2078,722],{"class":640},[602,2080,2081,2083,2085,2087,2089,2091,2093,2095],{"class":604,"line":885},[602,2082,648],{"class":647},[602,2084,890],{"class":806},[602,2086,648],{"class":647},[602,2088,657],{"class":640},[602,2090,681],{"class":680},[602,2092,899],{"class":684},[602,2094,648],{"class":680},[602,2096,722],{"class":640},[602,2098,2099,2101,2103,2105,2107,2109,2111,2113],{"class":604,"line":906},[602,2100,648],{"class":647},[602,2102,911],{"class":806},[602,2104,648],{"class":647},[602,2106,657],{"class":640},[602,2108,681],{"class":680},[602,2110,920],{"class":684},[602,2112,648],{"class":680},[602,2114,722],{"class":640},[602,2116,2117,2119,2121,2123,2125,2127,2129,2131],{"class":604,"line":927},[602,2118,648],{"class":647},[602,2120,932],{"class":806},[602,2122,648],{"class":647},[602,2124,937],{"class":640},[602,2126,648],{"class":680},[602,2128,942],{"class":684},[602,2130,648],{"class":680},[602,2132,700],{"class":640},[602,2134,2135,2137,2139,2141,2143],{"class":604,"line":949},[602,2136,648],{"class":647},[602,2138,954],{"class":806},[602,2140,648],{"class":647},[602,2142,657],{"class":640},[602,2144,779],{"class":640},[602,2146,2147,2149,2151,2153,2155,2157,2159],{"class":604,"line":963},[602,2148,648],{"class":647},[602,2150,969],{"class":968},[602,2152,648],{"class":647},[602,2154,657],{"class":640},[602,2156,681],{"class":680},[602,2158,978],{"class":684},[602,2160,688],{"class":680},[602,2162,2163],{"class":604,"line":983},[602,2164,694],{"class":640},[602,2166,2167],{"class":604,"line":988},[602,2168,694],{"class":640},[602,2170,2171],{"class":604,"line":993},[602,2172,996],{"class":640},[602,2174,2175],{"class":604,"line":999},[602,2176,694],{"class":640},[602,2178,2179,2181],{"class":604,"line":1004},[602,2180,1007],{"class":640},[602,2182,1010],{"class":608},[493,2184,1014],{"id":1013},[498,2186,1017,2187,566],{},[505,2188,565],{"href":522,"rel":2189},[509],[555,2191,1024],{"id":1023},[498,2193,1027,2194,1031],{},[585,2195,1030],{},[594,2197,2198],{"className":1034,"code":1035,"language":1036,"meta":598,"style":598},[585,2199,2200,2226,2242,2262,2314],{"__ignoreMap":598},[602,2201,2202,2204,2206,2208,2210,2212,2214,2216,2218,2220,2222,2224],{"class":604,"line":605},[602,2203,1044],{"class":1043},[602,2205,1048],{"class":1047},[602,2207,1051],{"class":608},[602,2209,1055],{"class":1054},[602,2211,1059],{"class":1058},[602,2213,1062],{"class":640},[602,2215,1065],{"class":1058},[602,2217,1068],{"class":640},[602,2219,648],{"class":1071},[602,2221,1075],{"class":1074},[602,2223,648],{"class":1071},[602,2225,1080],{"class":640},[602,2227,2228,2230,2232,2234,2236,2238,2240],{"class":604,"line":612},[602,2229,1044],{"class":1043},[602,2231,1087],{"class":1047},[602,2233,1090],{"class":608},[602,2235,1055],{"class":1054},[602,2237,1096],{"class":1095},[602,2239,1087],{"class":1058},[602,2241,1101],{"class":640},[602,2243,2244,2246,2248,2250,2252,2254,2256,2258,2260],{"class":604,"line":622},[602,2245,1106],{"class":608},[602,2247,566],{"class":640},[602,2249,1111],{"class":1058},[602,2251,1068],{"class":640},[602,2253,648],{"class":1071},[602,2255,1119],{"class":1118},[602,2257,1122],{"class":1074},[602,2259,648],{"class":1071},[602,2261,1080],{"class":640},[602,2263,2264,2266,2268,2270,2272,2274,2276,2278,2280,2282,2284,2286,2288,2290,2292,2294,2296,2298,2300,2302,2304,2306,2308,2310,2312],{"class":604,"line":628},[602,2265,1044],{"class":1043},[602,2267,1133],{"class":1047},[602,2269,1136],{"class":1054},[602,2271,1139],{"class":1047},[602,2273,1136],{"class":1054},[602,2275,1144],{"class":608},[602,2277,1147],{"class":640},[602,2279,1150],{"class":608},[602,2281,1153],{"class":1054},[602,2283,1156],{"class":608},[602,2285,1055],{"class":1054},[602,2287,1161],{"class":608},[602,2289,566],{"class":640},[602,2291,1030],{"class":1058},[602,2293,1068],{"class":640},[602,2295,1170],{"class":608},[602,2297,1147],{"class":640},[602,2299,648],{"class":1071},[602,2301,1177],{"class":1074},[602,2303,648],{"class":1071},[602,2305,1147],{"class":640},[602,2307,648],{"class":1071},[602,2309,1186],{"class":1074},[602,2311,648],{"class":1071},[602,2313,1080],{"class":640},[602,2315,2316],{"class":604,"line":634},[602,2317,1195],{"class":618},[555,2319,1199],{"id":1198},[498,2321,1202,2322,1206],{},[585,2323,1205],{},[594,2325,2326],{"className":1034,"code":1209,"language":1036,"meta":598,"style":598},[585,2327,2328,2354,2370,2422],{"__ignoreMap":598},[602,2329,2330,2332,2334,2336,2338,2340,2342,2344,2346,2348,2350,2352],{"class":604,"line":605},[602,2331,1044],{"class":1043},[602,2333,1048],{"class":1047},[602,2335,1220],{"class":608},[602,2337,1055],{"class":1054},[602,2339,1059],{"class":1058},[602,2341,1062],{"class":640},[602,2343,1065],{"class":1058},[602,2345,1068],{"class":640},[602,2347,648],{"class":1071},[602,2349,1235],{"class":1074},[602,2351,648],{"class":1071},[602,2353,1080],{"class":640},[602,2355,2356,2358,2360,2362,2364,2366,2368],{"class":604,"line":612},[602,2357,1044],{"class":1043},[602,2359,1087],{"class":1047},[602,2361,1090],{"class":608},[602,2363,1055],{"class":1054},[602,2365,1096],{"class":1095},[602,2367,1087],{"class":1058},[602,2369,1101],{"class":640},[602,2371,2372,2374,2376,2378,2380,2382,2384,2386,2388,2390,2392,2394,2396,2398,2400,2402,2404,2406,2408,2410,2412,2414,2416,2418,2420],{"class":604,"line":622},[602,2373,1044],{"class":1043},[602,2375,1133],{"class":1047},[602,2377,1136],{"class":1054},[602,2379,1139],{"class":1047},[602,2381,1136],{"class":1054},[602,2383,1144],{"class":608},[602,2385,1147],{"class":640},[602,2387,1150],{"class":608},[602,2389,1153],{"class":1054},[602,2391,1278],{"class":608},[602,2393,1055],{"class":1054},[602,2395,1161],{"class":608},[602,2397,566],{"class":640},[602,2399,1205],{"class":1058},[602,2401,1068],{"class":640},[602,2403,1291],{"class":608},[602,2405,1147],{"class":640},[602,2407,648],{"class":1071},[602,2409,1177],{"class":1074},[602,2411,648],{"class":1071},[602,2413,1147],{"class":640},[602,2415,648],{"class":1071},[602,2417,1306],{"class":1074},[602,2419,648],{"class":1071},[602,2421,1080],{"class":640},[602,2423,2424],{"class":604,"line":628},[602,2425,1315],{"class":618},[555,2427,1319],{"id":1318},[498,2429,1322,2430,1325,2432,1328],{},[585,2431,1030],{},[585,2433,1205],{},[594,2435,2436],{"className":1034,"code":1331,"language":1036,"meta":598,"style":598},[585,2437,2438,2464,2490,2506,2510,2540,2562,2592,2596,2626,2648],{"__ignoreMap":598},[602,2439,2440,2442,2444,2446,2448,2450,2452,2454,2456,2458,2460,2462],{"class":604,"line":605},[602,2441,1044],{"class":1043},[602,2443,1048],{"class":1047},[602,2445,1051],{"class":608},[602,2447,1055],{"class":1054},[602,2449,1059],{"class":1058},[602,2451,1062],{"class":640},[602,2453,1065],{"class":1058},[602,2455,1068],{"class":640},[602,2457,648],{"class":1071},[602,2459,1075],{"class":1074},[602,2461,648],{"class":1071},[602,2463,1080],{"class":640},[602,2465,2466,2468,2470,2472,2474,2476,2478,2480,2482,2484,2486,2488],{"class":604,"line":612},[602,2467,1044],{"class":1043},[602,2469,1048],{"class":1047},[602,2471,1220],{"class":608},[602,2473,1055],{"class":1054},[602,2475,1059],{"class":1058},[602,2477,1062],{"class":640},[602,2479,1065],{"class":1058},[602,2481,1068],{"class":640},[602,2483,648],{"class":1071},[602,2485,1235],{"class":1074},[602,2487,648],{"class":1071},[602,2489,1080],{"class":640},[602,2491,2492,2494,2496,2498,2500,2502,2504],{"class":604,"line":622},[602,2493,1044],{"class":1043},[602,2495,1087],{"class":1047},[602,2497,1090],{"class":608},[602,2499,1055],{"class":1054},[602,2501,1096],{"class":1095},[602,2503,1087],{"class":1058},[602,2505,1101],{"class":640},[602,2507,2508],{"class":604,"line":628},[602,2509,1407],{"emptyLinePlaceholder":1406},[602,2511,2512,2514,2516,2518,2520,2522,2524,2526,2528,2530,2532,2534,2536,2538],{"class":604,"line":634},[602,2513,1106],{"class":608},[602,2515,566],{"class":640},[602,2517,1030],{"class":1058},[602,2519,1068],{"class":640},[602,2521,1170],{"class":608},[602,2523,1147],{"class":640},[602,2525,648],{"class":1071},[602,2527,1186],{"class":1074},[602,2529,648],{"class":1071},[602,2531,1430],{"class":640},[602,2533,1433],{"class":1058},[602,2535,1062],{"class":640},[602,2537,1438],{"class":1058},[602,2539,1441],{"class":640},[602,2541,2542,2544,2546,2548,2550,2552,2554,2556,2558,2560],{"class":604,"line":644},[602,2543,1446],{"class":608},[602,2545,1450],{"class":1449},[602,2547,1453],{"class":608},[602,2549,566],{"class":640},[602,2551,1458],{"class":608},[602,2553,566],{"class":640},[602,2555,1463],{"class":1058},[602,2557,1068],{"class":640},[602,2559,1468],{"class":608},[602,2561,1471],{"class":640},[602,2563,2564,2566,2568,2570,2572,2574,2576,2578,2580,2582,2584,2586,2588,2590],{"class":604,"line":663},[602,2565,1476],{"class":608},[602,2567,1450],{"class":1449},[602,2569,1453],{"class":608},[602,2571,566],{"class":640},[602,2573,1458],{"class":608},[602,2575,566],{"class":640},[602,2577,1463],{"class":1058},[602,2579,1068],{"class":640},[602,2581,648],{"class":1071},[602,2583,1495],{"class":1074},[602,2585,648],{"class":1071},[602,2587,1500],{"class":1054},[602,2589,1503],{"class":608},[602,2591,1506],{"class":640},[602,2593,2594],{"class":604,"line":668},[602,2595,1407],{"emptyLinePlaceholder":1406},[602,2597,2598,2600,2602,2604,2606,2608,2610,2612,2614,2616,2618,2620,2622,2624],{"class":604,"line":691},[602,2599,1106],{"class":608},[602,2601,566],{"class":640},[602,2603,1205],{"class":1058},[602,2605,1068],{"class":640},[602,2607,1291],{"class":608},[602,2609,1147],{"class":640},[602,2611,648],{"class":1071},[602,2613,1186],{"class":1074},[602,2615,648],{"class":1071},[602,2617,1430],{"class":640},[602,2619,1433],{"class":1058},[602,2621,1062],{"class":640},[602,2623,1438],{"class":1058},[602,2625,1441],{"class":640},[602,2627,2628,2630,2632,2634,2636,2638,2640,2642,2644,2646],{"class":604,"line":697},[602,2629,1545],{"class":608},[602,2631,1450],{"class":1449},[602,2633,1453],{"class":608},[602,2635,566],{"class":640},[602,2637,1458],{"class":608},[602,2639,566],{"class":640},[602,2641,1463],{"class":1058},[602,2643,1068],{"class":640},[602,2645,1562],{"class":608},[602,2647,1471],{"class":640},[602,2649,2650,2652,2654,2656,2658,2660,2662,2664,2666,2668,2670,2672,2674,2676],{"class":604,"line":703},[602,2651,1476],{"class":608},[602,2653,1450],{"class":1449},[602,2655,1453],{"class":608},[602,2657,566],{"class":640},[602,2659,1458],{"class":608},[602,2661,566],{"class":640},[602,2663,1463],{"class":1058},[602,2665,1068],{"class":640},[602,2667,648],{"class":1071},[602,2669,1587],{"class":1074},[602,2671,648],{"class":1071},[602,2673,1500],{"class":1054},[602,2675,1503],{"class":608},[602,2677,1506],{"class":640},[493,2679,1599],{"id":1598},[498,2681,1602,2682,1608,2685,566],{},[505,2683,1607],{"href":1605,"rel":2684},[509],[505,2686,1613],{"href":1611,"rel":2687},[509],[1615,2689,1617],{},{"title":598,"searchDepth":612,"depth":612,"links":2691},[2692,2693,2694,2699,2704],{"id":495,"depth":612,"text":496},{"id":540,"depth":612,"text":23},{"id":549,"depth":612,"text":550,"children":2695},[2696,2697,2698],{"id":557,"depth":622,"text":558},{"id":569,"depth":622,"text":570},{"id":579,"depth":622,"text":580},{"id":1013,"depth":612,"text":1014,"children":2700},[2701,2702,2703],{"id":1023,"depth":622,"text":1024},{"id":1198,"depth":622,"text":1199},{"id":1318,"depth":622,"text":1319},{"id":1598,"depth":612,"text":1599},{"head":2706,"readingTime":2709},{"meta":2707},[2708],{"name":1638,"content":1639},{"text":1641,"minutes":1642,"time":1643,"words":1644},{"title":114,"tags":2711},[16,122,61,62,63,64,21,123,124,125,70,71],{"title":488,"description":119},{"loc":115,"lastmod":1649,"changefreq":1650,"priority":1651},1782689021739]